summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMateusz Majewski <m.majewski2@samsung.com>2024-02-05 15:54:30 +0100
committerMateusz Majewski <m.majewski2@samsung.com>2024-02-05 15:54:30 +0100
commit58ce1bc8b8f39e87aeab4d0707a1d4419ee43c7a (patch)
treee026f97ceb8431d03d2f4e0340d11ddb4b19ad1f
parent52d71e72a8000341fb25d6afc0aa04590b1b925b (diff)
downloadglib-58ce1bc8b8f39e87aeab4d0707a1d4419ee43c7a.tar.gz
glib-58ce1bc8b8f39e87aeab4d0707a1d4419ee43c7a.tar.bz2
glib-58ce1bc8b8f39e87aeab4d0707a1d4419ee43c7a.zip
Imported Upstream version 2.78.4upstream/2.78.4
-rw-r--r--.gitlab-ci.yml229
-rw-r--r--.gitlab-ci/README.md4
-rwxr-xr-x.gitlab-ci/check-missing-install-tag.py19
-rwxr-xr-x.gitlab-ci/coverage-docker.sh8
-rw-r--r--.gitlab-ci/debian-stable.Dockerfile3
-rwxr-xr-x.gitlab-ci/run-docker.sh17
-rwxr-xr-x.gitlab-ci/run-reuse.sh62
-rwxr-xr-x.gitlab-ci/run-tests.sh11
-rw-r--r--.gitlab-ci/test-msvc.bat19
-rwxr-xr-x.gitlab-ci/test-msys2.sh84
-rw-r--r--.gitmodules2
-rw-r--r--.reuse/dep57
-rw-r--r--CONTRIBUTING.md39
-rw-r--r--HACKING17
-rw-r--r--INSTALL.md10
-rw-r--r--LICENSES/LicenseRef-old-glib-tests.txt16
-rw-r--r--NEWS1207
-rw-r--r--README.md16
-rw-r--r--SECURITY.md4
-rw-r--r--docs/CODEOWNERS6
-rw-r--r--docs/backports.md7
-rw-r--r--docs/debugging.txt38
-rw-r--r--docs/issue-and-merge-request-management.md157
-rw-r--r--docs/macros.md73
-rw-r--r--docs/macros.txt58
-rw-r--r--docs/meson-version.md9
-rw-r--r--docs/reference/gio/gdbus-codegen.xml12
-rw-r--r--docs/reference/gio/gdbus-object-manager-example/meson.build2
-rw-r--r--docs/reference/gio/gio-docs.xml132
-rw-r--r--docs/reference/gio/gio-sections-common.txt20
-rw-r--r--docs/reference/gio/gio-sections-win32.txt10
-rw-r--r--docs/reference/gio/meson.build6
-rw-r--r--docs/reference/gio/overview.xml4
-rw-r--r--docs/reference/glib/building.xml31
-rw-r--r--docs/reference/glib/glib-docs.xml171
-rw-r--r--docs/reference/glib/glib-sections.txt.in (renamed from docs/reference/glib/glib-sections.txt)394
-rw-r--r--docs/reference/glib/gvariant-byte-boundaries.svg204
-rw-r--r--docs/reference/glib/gvariant-integer-and-string-structure.svg358
-rw-r--r--docs/reference/glib/gvariant-integer-array.svg255
-rw-r--r--docs/reference/glib/gvariant-specification-1.0.rst1465
-rw-r--r--docs/reference/glib/gvariant-string-array.svg465
-rw-r--r--docs/reference/glib/meson.build47
-rw-r--r--docs/reference/glib/programming.xml65
-rw-r--r--docs/reference/glib/running.xml51
-rw-r--r--docs/reference/gobject/glib-mkenums.xml2
-rw-r--r--docs/reference/gobject/gobject-docs.xml132
-rw-r--r--docs/reference/gobject/gobject-sections.txt12
-rw-r--r--docs/reference/gobject/meson.build4
-rw-r--r--docs/reference/gobject/tut_gobject.xml4
-rw-r--r--docs/reference/gobject/tut_gsignal.xml12
-rw-r--r--docs/reference/gobject/tut_gtype.xml16
-rw-r--r--docs/reference/gobject/tut_howto.xml6
-rw-r--r--docs/reference/gobject/tut_intro.xml2
-rw-r--r--docs/reference/gobject/tut_tools.xml4
-rw-r--r--docs/reference/meson.build16
-rw-r--r--docs/supported-platforms.md24
-rw-r--r--docs/toolchain-requirements.md2
-rw-r--r--docs/win32-build.md (renamed from README.win32.md)21
-rw-r--r--fuzzing/fuzz_utf8_normalize.c48
-rw-r--r--fuzzing/fuzz_utf8_validate.c32
-rw-r--r--fuzzing/fuzz_variant_binary_byteswap.c41
-rw-r--r--fuzzing/meson.build5
-rw-r--r--gio/gaction.c31
-rw-r--r--gio/gaction.h24
-rw-r--r--gio/gactiongroup.c25
-rw-r--r--gio/gactiongroup.h32
-rw-r--r--gio/gactiongroupexporter.h4
-rw-r--r--gio/gactionmap.c48
-rw-r--r--gio/gactionmap.h14
-rw-r--r--gio/gappinfo.c61
-rw-r--r--gio/gappinfo.h102
-rw-r--r--gio/gapplication-tool.c3
-rw-r--r--gio/gapplication.c12
-rw-r--r--gio/gapplication.h76
-rw-r--r--gio/gapplicationcommandline.c4
-rw-r--r--gio/gapplicationcommandline.h28
-rw-r--r--gio/gasyncinitable.h14
-rw-r--r--gio/gasyncresult.h10
-rw-r--r--gio/gbufferedinputstream.c4
-rw-r--r--gio/gbufferedinputstream.h24
-rw-r--r--gio/gbufferedoutputstream.h14
-rw-r--r--gio/gbytesicon.h6
-rw-r--r--gio/gcancellable.c35
-rw-r--r--gio/gcancellable.h30
-rw-r--r--gio/gcharsetconverter.h10
-rw-r--r--gio/gcontenttype.h32
-rw-r--r--gio/gconverter.c15
-rw-r--r--gio/gconverter.h6
-rw-r--r--gio/gconverterinputstream.h6
-rw-r--r--gio/gconverteroutputstream.h6
-rw-r--r--gio/gcredentials.h18
-rw-r--r--gio/gdatagrambased.h12
-rw-r--r--gio/gdatainputstream.c4
-rw-r--r--gio/gdatainputstream.h48
-rw-r--r--gio/gdataoutputstream.h24
-rw-r--r--gio/gdbus-2.0/codegen/codegen.py270
-rw-r--r--gio/gdbus-2.0/codegen/codegen_docbook.py5
-rw-r--r--gio/gdbus-2.0/codegen/codegen_main.py16
-rw-r--r--gio/gdbus-2.0/codegen/codegen_md.py303
-rw-r--r--gio/gdbus-2.0/codegen/codegen_rst.py22
-rw-r--r--gio/gdbus-2.0/codegen/dbustypes.py194
-rw-r--r--gio/gdbus-2.0/codegen/meson.build1
-rw-r--r--gio/gdbus-2.0/codegen/parser.py11
-rw-r--r--gio/gdbus-2.0/codegen/utils.py4
-rw-r--r--gio/gdbus-tool.c13
-rw-r--r--gio/gdbusactiongroup.h4
-rw-r--r--gio/gdbusaddress.c51
-rw-r--r--gio/gdbusaddress.h14
-rw-r--r--gio/gdbusauth.c50
-rw-r--r--gio/gdbusauthmechanismsha1.c6
-rw-r--r--gio/gdbusauthobserver.h8
-rw-r--r--gio/gdbusconnection.c122
-rw-r--r--gio/gdbusconnection.h94
-rw-r--r--gio/gdbusdaemon.c35
-rw-r--r--gio/gdbuserror.h22
-rw-r--r--gio/gdbusinterface.h10
-rw-r--r--gio/gdbusinterfaceskeleton.c30
-rw-r--r--gio/gdbusinterfaceskeleton.h28
-rw-r--r--gio/gdbusintrospection.c6
-rw-r--r--gio/gdbusintrospection.h62
-rw-r--r--gio/gdbusmenumodel.c4
-rw-r--r--gio/gdbusmenumodel.h4
-rw-r--r--gio/gdbusmessage.c167
-rw-r--r--gio/gdbusmessage.h100
-rw-r--r--gio/gdbusmethodinvocation.h42
-rw-r--r--gio/gdbusnameowning.h10
-rw-r--r--gio/gdbusnamewatching.h10
-rw-r--r--gio/gdbusobject.h8
-rw-r--r--gio/gdbusobjectmanager.h10
-rw-r--r--gio/gdbusobjectmanagerclient.c15
-rw-r--r--gio/gdbusobjectmanagerclient.h22
-rw-r--r--gio/gdbusobjectmanagerserver.h16
-rw-r--r--gio/gdbusobjectproxy.h6
-rw-r--r--gio/gdbusobjectskeleton.c16
-rw-r--r--gio/gdbusobjectskeleton.h14
-rw-r--r--gio/gdbusprivate.c82
-rw-r--r--gio/gdbusprivate.h6
-rw-r--r--gio/gdbusproxy.c9
-rw-r--r--gio/gdbusproxy.h52
-rw-r--r--gio/gdbusserver.c9
-rw-r--r--gio/gdbusserver.h16
-rw-r--r--gio/gdbusutils.h24
-rw-r--r--gio/gdebugcontroller.h6
-rw-r--r--gio/gdebugcontrollerdbus.c7
-rw-r--r--gio/gdebugcontrollerdbus.h6
-rw-r--r--gio/gdesktopappinfo.c302
-rw-r--r--gio/gdesktopappinfo.h64
-rw-r--r--gio/gdrive.h58
-rw-r--r--gio/gdtlsclientconnection.h14
-rw-r--r--gio/gdtlsconnection.h56
-rw-r--r--gio/gdtlsserverconnection.h4
-rw-r--r--gio/gemblem.h10
-rw-r--r--gio/gemblemedicon.h12
-rw-r--r--gio/gfile.c383
-rw-r--r--gio/gfile.h284
-rw-r--r--gio/gfileattribute.h14
-rw-r--r--gio/gfiledescriptorbased.h4
-rw-r--r--gio/gfileenumerator.c69
-rw-r--r--gio/gfileenumerator.h26
-rw-r--r--gio/gfileicon.h6
-rw-r--r--gio/gfileinfo-priv.h12
-rw-r--r--gio/gfileinfo.c253
-rw-r--r--gio/gfileinfo.h345
-rw-r--r--gio/gfileinputstream.c5
-rw-r--r--gio/gfileinputstream.h8
-rw-r--r--gio/gfileiostream.c5
-rw-r--r--gio/gfileiostream.h10
-rw-r--r--gio/gfilemonitor.h10
-rw-r--r--gio/gfilenamecompleter.h10
-rw-r--r--gio/gfileoutputstream.h10
-rw-r--r--gio/gfilterinputstream.h8
-rw-r--r--gio/gfilteroutputstream.h8
-rw-r--r--gio/ggtknotificationbackend.c2
-rw-r--r--gio/gicon.c7
-rw-r--r--gio/gicon.h45
-rw-r--r--gio/ginetaddress.h40
-rw-r--r--gio/ginetaddressmask.h18
-rw-r--r--gio/ginetsocketaddress.h14
-rw-r--r--gio/ginitable.h10
-rw-r--r--gio/ginputstream.c25
-rw-r--r--gio/ginputstream.h40
-rw-r--r--gio/gio-querymodules.c9
-rw-r--r--gio/gio-tool-info.c15
-rw-r--r--gio/gio-tool-launch.c6
-rw-r--r--gio/gio-tool-list.c9
-rw-r--r--gio/gio-tool-mount.c26
-rw-r--r--gio/gio-tool-open.c2
-rw-r--r--gio/gio-tool-tree.c11
-rw-r--r--gio/gioenums.h28
-rw-r--r--gio/gioenumtypes.h.template3
-rw-r--r--gio/gioerror.h8
-rw-r--r--gio/giomodule-priv.c2
-rw-r--r--gio/giomodule.c50
-rw-r--r--gio/giomodule.h52
-rw-r--r--gio/gioscheduler.h8
-rw-r--r--gio/giostream.c10
-rw-r--r--gio/giostream.h24
-rw-r--r--gio/giotypes.h40
-rw-r--r--gio/glib-compile-resources.c31
-rw-r--r--gio/glib-compile-schemas.c31
-rw-r--r--gio/glistmodel.c2
-rw-r--r--gio/glistmodel.h12
-rw-r--r--gio/gliststore.c26
-rw-r--r--gio/gliststore.h24
-rw-r--r--gio/gloadableicon.c6
-rw-r--r--gio/gloadableicon.h8
-rw-r--r--gio/glocalfile.c92
-rw-r--r--gio/glocalfileenumerator.c4
-rw-r--r--gio/glocalfileinfo.c288
-rw-r--r--gio/glocalfileinfo.h16
-rw-r--r--gio/glocalfilemonitor.h4
-rw-r--r--gio/glocalfileoutputstream.c18
-rw-r--r--gio/glocalvfs.c14
-rw-r--r--gio/gmarshal-internal.c54
-rw-r--r--gio/gmemoryinputstream.h12
-rw-r--r--gio/gmemorymonitor.h4
-rw-r--r--gio/gmemoryoutputstream.h16
-rw-r--r--gio/gmenu.h70
-rw-r--r--gio/gmenuexporter.c23
-rw-r--r--gio/gmenuexporter.h17
-rw-r--r--gio/gmenumodel.h38
-rw-r--r--gio/gmount.h56
-rw-r--r--gio/gmountoperation.h42
-rw-r--r--gio/gnativesocketaddress.h4
-rw-r--r--gio/gnativevolumemonitor.h2
-rw-r--r--gio/gnetworkaddress.c7
-rw-r--r--gio/gnetworkaddress.h16
-rw-r--r--gio/gnetworking.c24
-rw-r--r--gio/gnetworking.h.in3
-rw-r--r--gio/gnetworkingprivate.h3
-rw-r--r--gio/gnetworkmonitor.c14
-rw-r--r--gio/gnetworkmonitor.h16
-rw-r--r--gio/gnetworkmonitorbase.h8
-rw-r--r--gio/gnetworkservice.c10
-rw-r--r--gio/gnetworkservice.h14
-rw-r--r--gio/gnotification.c18
-rw-r--r--gio/gnotification.h28
-rw-r--r--gio/gosxappinfo.h6
-rw-r--r--gio/gosxcontenttype.m6
-rw-r--r--gio/goutputstream.c40
-rw-r--r--gio/goutputstream.h64
-rw-r--r--gio/gpermission.h22
-rw-r--r--gio/gpollableinputstream.c14
-rw-r--r--gio/gpollableinputstream.h10
-rw-r--r--gio/gpollableoutputstream.c17
-rw-r--r--gio/gpollableoutputstream.h12
-rw-r--r--gio/gpollableutils.h10
-rw-r--r--gio/gpollfilemonitor.c8
-rw-r--r--gio/gportalsupport.c167
-rw-r--r--gio/gpowerprofilemonitor.h6
-rw-r--r--gio/gpropertyaction.c26
-rw-r--r--gio/gpropertyaction.h4
-rw-r--r--gio/gproxy.c2
-rw-r--r--gio/gproxy.h12
-rw-r--r--gio/gproxyaddress.h18
-rw-r--r--gio/gproxyaddressenumerator.c7
-rw-r--r--gio/gproxyaddressenumerator.h2
-rw-r--r--gio/gproxyresolver.c4
-rw-r--r--gio/gproxyresolver.h12
-rw-r--r--gio/gregistrysettingsbackend.c431
-rw-r--r--gio/gregistrysettingsbackend.h4
-rw-r--r--gio/gremoteactiongroup.h6
-rw-r--r--gio/gresolver.c145
-rw-r--r--gio/gresolver.h49
-rw-r--r--gio/gresource.c9
-rw-r--r--gio/gresource.dtd14
-rw-r--r--gio/gresource.h38
-rw-r--r--gio/gresourcefile.c7
-rw-r--r--gio/gsandbox.c141
-rw-r--r--gio/gsandbox.h47
-rw-r--r--gio/gschema.dtd2
-rw-r--r--gio/gseekable.h12
-rw-r--r--gio/gsettings.c5
-rw-r--r--gio/gsettings.h104
-rw-r--r--gio/gsettingsbackend.h24
-rw-r--r--gio/gsettingsbackendinternal.h4
-rw-r--r--gio/gsettingsschema.c32
-rw-r--r--gio/gsettingsschema.h53
-rw-r--r--gio/gsimpleaction.h12
-rw-r--r--gio/gsimpleactiongroup.h12
-rw-r--r--gio/gsimpleasyncresult.c12
-rw-r--r--gio/gsimpleasyncresult.h52
-rw-r--r--gio/gsimpleiostream.h4
-rw-r--r--gio/gsimplepermission.h4
-rw-r--r--gio/gsimpleproxyresolver.h10
-rw-r--r--gio/gsocket.c135
-rw-r--r--gio/gsocket.h116
-rw-r--r--gio/gsocketaddress.h10
-rw-r--r--gio/gsocketaddressenumerator.c6
-rw-r--r--gio/gsocketaddressenumerator.h8
-rw-r--r--gio/gsocketclient.c16
-rw-r--r--gio/gsocketclient.h66
-rw-r--r--gio/gsocketconnectable.h8
-rw-r--r--gio/gsocketconnection.c2
-rw-r--r--gio/gsocketconnection.h22
-rw-r--r--gio/gsocketcontrolmessage.c2
-rw-r--r--gio/gsocketcontrolmessage.h12
-rw-r--r--gio/gsocketlistener.c4
-rw-r--r--gio/gsocketlistener.h28
-rw-r--r--gio/gsocketservice.h10
-rw-r--r--gio/gsrvtarget.h18
-rw-r--r--gio/gsubprocess.h54
-rw-r--r--gio/gsubprocesslauncher.c2
-rw-r--r--gio/gsubprocesslauncher.h38
-rw-r--r--gio/gtask.c198
-rw-r--r--gio/gtask.h99
-rw-r--r--gio/gtcpconnection.c3
-rw-r--r--gio/gtcpconnection.h6
-rw-r--r--gio/gtcpwrapperconnection.h6
-rw-r--r--gio/gtestdbus.c10
-rw-r--r--gio/gtestdbus.h18
-rw-r--r--gio/gthemedicon.h14
-rw-r--r--gio/gthreadedresolver.c632
-rw-r--r--gio/gthreadedresolver.h31
-rw-r--r--gio/gthreadedsocketservice.h4
-rw-r--r--gio/gtlsbackend.h24
-rw-r--r--gio/gtlscertificate.h34
-rw-r--r--gio/gtlsclientconnection.h20
-rw-r--r--gio/gtlsconnection.h52
-rw-r--r--gio/gtlsdatabase.c2
-rw-r--r--gio/gtlsdatabase.h28
-rw-r--r--gio/gtlsfiledatabase.h4
-rw-r--r--gio/gtlsinteraction.h18
-rw-r--r--gio/gtlspassword.h22
-rw-r--r--gio/gtlsserverconnection.h4
-rw-r--r--gio/gunixconnection.c33
-rw-r--r--gio/gunixconnection.h18
-rw-r--r--gio/gunixcredentialsmessage.h10
-rw-r--r--gio/gunixfdlist.h16
-rw-r--r--gio/gunixfdmessage.h12
-rw-r--r--gio/gunixinputstream.h10
-rw-r--r--gio/gunixmounts.c25
-rw-r--r--gio/gunixmounts.h90
-rw-r--r--gio/gunixoutputstream.h10
-rw-r--r--gio/gunixsocketaddress.h18
-rw-r--r--gio/gvfs.h20
-rw-r--r--gio/gvolume.h42
-rw-r--r--gio/gvolumemonitor.h16
-rwxr-xr-xgio/gwin32api-package.h110
-rw-r--r--gio/gwin32appinfo.c394
-rw-r--r--gio/gwin32inputstream.h10
-rw-r--r--gio/gwin32mount.c2
-rw-r--r--gio/gwin32networkmonitor.c24
-rw-r--r--gio/gwin32outputstream.h10
-rwxr-xr-xgio/gwin32packageparser.c34
-rwxr-xr-xgio/gwin32packageparser.h1
-rw-r--r--gio/gwin32registrykey.h74
-rw-r--r--gio/gzlibcompressor.h8
-rw-r--r--gio/gzlibdecompressor.h6
-rw-r--r--gio/inotify/inotify-kernel.c15
-rw-r--r--gio/inotify/inotify-sub.c2
-rw-r--r--gio/inotify/meson.build14
-rw-r--r--gio/kqueue/gkqueuefilemonitor.c6
-rw-r--r--gio/kqueue/meson.build13
-rw-r--r--gio/meson.build102
-rw-r--r--gio/tests/.gitignore146
-rw-r--r--gio/tests/actions.c44
-rw-r--r--gio/tests/appinfo-test-path.desktop.in22
-rw-r--r--gio/tests/appinfo.c20
-rw-r--r--gio/tests/appmonitor.c102
-rw-r--r--gio/tests/async-close-output-stream.c2
-rw-r--r--gio/tests/async-splice-output-stream.c2
-rw-r--r--gio/tests/basic-application.c10
-rw-r--r--gio/tests/buffered-input-stream.c2
-rw-r--r--gio/tests/cancellable.c63
-rw-r--r--gio/tests/codegen.py838
-rw-r--r--gio/tests/contexts.c2
-rw-r--r--gio/tests/converter-stream.c2
-rw-r--r--gio/tests/credentials.c2
-rw-r--r--gio/tests/cxx.cpp47
-rw-r--r--gio/tests/data-input-stream.c2
-rw-r--r--gio/tests/data-output-stream.c2
-rw-r--r--gio/tests/dbus-appinfo.c17
-rw-r--r--gio/tests/de.po3
-rw-r--r--gio/tests/defaultvalue.c3
-rw-r--r--gio/tests/desktop-app-info.c808
-rw-r--r--gio/tests/desktop-files/usr/applications/glade.desktop18
-rw-r--r--gio/tests/fake-document-portal.c2
-rw-r--r--gio/tests/fake-service-name.c2
-rw-r--r--gio/tests/file-thumbnail.c193
-rw-r--r--gio/tests/file.c404
-rw-r--r--gio/tests/g-file-info-filesystem-readonly.c2
-rw-r--r--gio/tests/g-file-info.c62
-rw-r--r--gio/tests/g-file.c2
-rw-r--r--gio/tests/g-icon.c2
-rw-r--r--gio/tests/gapplication-example-open.c10
-rw-r--r--gio/tests/gapplication.c21
-rw-r--r--gio/tests/gdbus-addresses.c2
-rw-r--r--gio/tests/gdbus-auth.c33
-rw-r--r--gio/tests/gdbus-bz627724.c2
-rw-r--r--gio/tests/gdbus-close-pending.c6
-rw-r--r--gio/tests/gdbus-connection-loss.c2
-rw-r--r--gio/tests/gdbus-connection-slow.c12
-rw-r--r--gio/tests/gdbus-connection.c2
-rw-r--r--gio/tests/gdbus-error.c2
-rwxr-xr-xgio/tests/gdbus-example-peer.c11
-rw-r--r--gio/tests/gdbus-example-proxy-subclass.c102
-rw-r--r--gio/tests/gdbus-exit-on-close.c2
-rw-r--r--gio/tests/gdbus-export.c8
-rw-r--r--gio/tests/gdbus-introspection.c2
-rw-r--r--gio/tests/gdbus-message.c2
-rw-r--r--gio/tests/gdbus-method-invocation.c2
-rw-r--r--gio/tests/gdbus-names.c2
-rw-r--r--gio/tests/gdbus-object-manager-example/meson.build25
-rw-r--r--gio/tests/gdbus-overflow.c11
-rw-r--r--gio/tests/gdbus-proxy-threads.c2
-rw-r--r--gio/tests/gdbus-proxy-unique-name.c2
-rw-r--r--gio/tests/gdbus-proxy-well-known-name.c2
-rw-r--r--gio/tests/gdbus-proxy.c2
-rw-r--r--gio/tests/gdbus-serialization.c143
-rw-r--r--gio/tests/gdbus-server-auth.c1
-rw-r--r--gio/tests/gdbus-test-codegen.c122
-rw-r--r--gio/tests/gdbus-test-fixture.c2
-rw-r--r--gio/tests/gdbus-testserver.c2
-rw-r--r--gio/tests/gdbus-threading.c2
-rw-r--r--gio/tests/giomodule.c16
-rw-r--r--gio/tests/glistmodel.c20
-rw-r--r--gio/tests/gmenumodel.c15
-rw-r--r--gio/tests/gsettings.c196
-rw-r--r--gio/tests/gsubprocess-testprog.c66
-rw-r--r--gio/tests/gsubprocess.c143
-rw-r--r--gio/tests/gtlsconsoleinteraction.c5
-rw-r--r--gio/tests/inet-address.c2
-rw-r--r--gio/tests/io-stream.c2
-rw-r--r--gio/tests/live-g-file.c85
-rw-r--r--gio/tests/max-version.c74
-rw-r--r--gio/tests/memory-input-stream.c2
-rw-r--r--gio/tests/memory-output-stream.c2
-rw-r--r--gio/tests/meson.build359
-rw-r--r--gio/tests/modules/symbol-visibility.h2
-rw-r--r--gio/tests/modules/test-module-a.c2
-rw-r--r--gio/tests/modules/test-module-b.c2
-rw-r--r--gio/tests/network-address.c53
-rw-r--r--gio/tests/org.gtk.test.gschema.xml.orig3
-rw-r--r--gio/tests/permission.c2
-rw-r--r--gio/tests/pollable.c4
-rw-r--r--gio/tests/portal-support-env-var.c45
-rw-r--r--gio/tests/portal-support-flatpak-full.c49
-rw-r--r--gio/tests/portal-support-flatpak-gsettings-only.c49
-rw-r--r--gio/tests/portal-support-flatpak-network-only.c49
-rw-r--r--gio/tests/portal-support-flatpak-none.c47
-rw-r--r--gio/tests/portal-support-none.c43
-rw-r--r--gio/tests/portal-support-snap-classic.c122
-rw-r--r--gio/tests/portal-support-snap.c211
-rw-r--r--gio/tests/portal-support-utils.c168
-rw-r--r--gio/tests/portal-support-utils.h39
-rw-r--r--gio/tests/resolver.c16
-rw-r--r--gio/tests/resourceplugin.c2
-rw-r--r--gio/tests/resources.c4
-rw-r--r--gio/tests/sandbox.c88
-rw-r--r--gio/tests/socket-common.c2
-rw-r--r--gio/tests/socket-testclient.c (renamed from gio/tests/socket-client.c)0
-rw-r--r--gio/tests/socket-testserver.c (renamed from gio/tests/socket-server.c)0
-rw-r--r--gio/tests/srvtarget.c2
-rw-r--r--gio/tests/task.c139
-rw-r--r--gio/tests/test-codegen.xml2
-rw-r--r--gio/tests/testfilemonitor.c31
-rw-r--r--gio/tests/thumbnail-verification.c2
-rw-r--r--gio/tests/unix-fd.c2
-rw-r--r--gio/tests/unix-streams.c34
-rw-r--r--gio/tests/vfs.c30
-rw-r--r--gio/tests/win32-appinfo.c2
-rw-r--r--gio/tests/win32-streams.c7
-rw-r--r--gio/win32/gwin32fsmonitorutils.c1
-rw-r--r--gio/win32/meson.build12
-rw-r--r--gio/xdgmime/meson.build4
-rw-r--r--gio/xdgmime/xdgmime.c70
-rw-r--r--gio/xdgmime/xdgmime.h21
-rw-r--r--gio/xdgmime/xdgmimealias.c18
-rw-r--r--gio/xdgmime/xdgmimealias.h18
-rw-r--r--gio/xdgmime/xdgmimecache.c148
-rw-r--r--gio/xdgmime/xdgmimecache.h21
-rw-r--r--gio/xdgmime/xdgmimeglob.c18
-rw-r--r--gio/xdgmime/xdgmimeglob.h18
-rw-r--r--gio/xdgmime/xdgmimeicon.c18
-rw-r--r--gio/xdgmime/xdgmimeicon.h18
-rw-r--r--gio/xdgmime/xdgmimeint.c20
-rw-r--r--gio/xdgmime/xdgmimeint.h18
-rw-r--r--gio/xdgmime/xdgmimemagic.c23
-rw-r--r--gio/xdgmime/xdgmimemagic.h18
-rw-r--r--gio/xdgmime/xdgmimeparent.c18
-rw-r--r--gio/xdgmime/xdgmimeparent.h18
-rw-r--r--glib.doap6
-rw-r--r--glib/deprecated/gthread-deprecated.c2
-rw-r--r--glib/docs.c531
-rw-r--r--glib/garray.c449
-rw-r--r--glib/garray.h34
-rw-r--r--glib/gatomic.h11
-rw-r--r--glib/gbacktrace.c4
-rw-r--r--glib/gbookmarkfile.c138
-rw-r--r--glib/gbookmarkfile.h3
-rw-r--r--glib/gbytes.c8
-rw-r--r--glib/gcharset.c5
-rw-r--r--glib/gconstructor.h2
-rw-r--r--glib/gconvert.c59
-rw-r--r--glib/gdataset.c24
-rw-r--r--glib/gdate.c69
-rw-r--r--glib/gdatetime.c142
-rw-r--r--glib/gerror.c10
-rw-r--r--glib/gfileutils.c227
-rw-r--r--glib/ggettext.c6
-rw-r--r--glib/ghash.c181
-rw-r--r--glib/ghash.h10
-rw-r--r--glib/ghook.c6
-rw-r--r--glib/ghook.h6
-rw-r--r--glib/giochannel.c30
-rw-r--r--glib/giochannel.h2
-rw-r--r--glib/giounix.c8
-rw-r--r--glib/giowin32.c2
-rw-r--r--glib/gkeyfile.c258
-rw-r--r--glib/glib-autocleanups.h2
-rw-r--r--glib/glib-init.c38
-rw-r--r--glib/glib-private.c82
-rw-r--r--glib/glib-private.h44
-rw-r--r--glib/glib-typeof.h5
-rw-r--r--glib/glib-unix.c104
-rw-r--r--glib/glib-unixprivate.h117
-rw-r--r--glib/glib.h1
-rw-r--r--glib/glib.stp.in203
-rw-r--r--glib/glib_gdb.py19
-rw-r--r--glib/glib_probes.d11
-rw-r--r--glib/glibconfig.h.in22
-rw-r--r--glib/gmacros.h173
-rw-r--r--glib/gmain.c770
-rw-r--r--glib/gmain.h12
-rw-r--r--glib/gmappedfile.c6
-rw-r--r--glib/gmarkup.c20
-rw-r--r--glib/gmem.c78
-rw-r--r--glib/gmem.h18
-rw-r--r--glib/gmessages.c228
-rw-r--r--glib/gmessages.h4
-rw-r--r--glib/gnode.c4
-rw-r--r--glib/gnode.h4
-rw-r--r--glib/gnulib/meson.build18
-rw-r--r--glib/goption.c9
-rw-r--r--glib/goption.h32
-rw-r--r--glib/gpathbuf.c598
-rw-r--r--glib/gpathbuf.h90
-rw-r--r--glib/gprintf.c11
-rw-r--r--glib/gqsort.c18
-rw-r--r--glib/gquark.c4
-rw-r--r--glib/grand.c2
-rw-r--r--glib/grefcount.h54
-rw-r--r--glib/gregex.c104
-rw-r--r--glib/gsequence.c2
-rw-r--r--glib/gsequence.h2
-rw-r--r--glib/gslice.c1563
-rw-r--r--glib/gspawn-private.h22
-rw-r--r--glib/gspawn-win32-helper.c51
-rw-r--r--glib/gspawn-win32.c105
-rw-r--r--glib/gspawn.c334
-rw-r--r--glib/gspawn.h4
-rw-r--r--glib/gstdio.c151
-rw-r--r--glib/gstdio.h48
-rw-r--r--glib/gstdioprivate.h31
-rw-r--r--glib/gstrfuncs.c41
-rw-r--r--glib/gstrfuncs.h146
-rw-r--r--glib/gstring.c111
-rw-r--r--glib/gstring.h112
-rw-r--r--glib/gtester.c2
-rw-r--r--glib/gtestutils.c483
-rw-r--r--glib/gtestutils.h59
-rw-r--r--glib/gthread-posix.c236
-rw-r--r--glib/gthread-win32.c24
-rw-r--r--glib/gthread.c18
-rw-r--r--glib/gthread.h4
-rw-r--r--glib/gthreadpool.c89
-rw-r--r--glib/gthreadprivate.h69
-rw-r--r--glib/gtimer.c3
-rw-r--r--glib/gtimezone.c9
-rw-r--r--glib/gtree.c113
-rw-r--r--glib/gtree.h6
-rw-r--r--glib/gtypes.h37
-rw-r--r--glib/gunicode.h6
-rw-r--r--glib/gunicollate.c2
-rw-r--r--glib/gunidecomp.c41
-rw-r--r--glib/guniprop.c8
-rw-r--r--glib/guri.c14
-rw-r--r--glib/gutf8.c76
-rw-r--r--glib/gutils.c245
-rw-r--r--glib/gutils.h16
-rw-r--r--glib/gutilsprivate.h7
-rw-r--r--glib/gvariant-core.c25
-rw-r--r--glib/gvariant-serialiser.c6
-rw-r--r--glib/gvariant.c82
-rw-r--r--glib/gvariant.h10
-rw-r--r--glib/gvarianttypeinfo.c11
-rw-r--r--glib/gversionmacros.h1213
-rw-r--r--glib/gversionmacros.h.in140
-rw-r--r--glib/gwakeup.c29
-rw-r--r--glib/gwin32.c8
-rw-r--r--glib/libcharset/meson.build4
-rw-r--r--glib/meson.build83
-rw-r--r--glib/msvc_recommended_pragmas.h (renamed from msvc_recommended_pragmas.h)0
-rw-r--r--glib/tests/.gitignore89
-rw-r--r--glib/tests/NormalizationTest.txt92
-rw-r--r--glib/tests/array-test.c1060
-rw-r--r--glib/tests/assert-msg-test.c32
-rwxr-xr-xglib/tests/assert-msg-test.py13
-rw-r--r--glib/tests/asyncqueue.c11
-rw-r--r--glib/tests/autoptr.c25
-rw-r--r--glib/tests/bookmarkfile.c104
-rw-r--r--glib/tests/cond.c2
-rw-r--r--glib/tests/convert.c34
-rw-r--r--glib/tests/cxx.cpp355
-rw-r--r--glib/tests/environment.c16
-rw-r--r--glib/tests/error.c38
-rw-r--r--glib/tests/fileutils.c270
-rw-r--r--glib/tests/gdatetime.c8
-rw-r--r--glib/tests/getpwuid-preload.c62
-rw-r--r--glib/tests/gpoll.c32
-rw-r--r--glib/tests/gutils-user-database.c4
-rw-r--r--glib/tests/gvariant.c18
-rw-r--r--glib/tests/gwakeuptest.c19
-rw-r--r--glib/tests/hash.c197
-rw-r--r--glib/tests/hook.c2
-rw-r--r--glib/tests/keyfile.c119
-rw-r--r--glib/tests/logging.c123
-rw-r--r--glib/tests/macros.c85
-rw-r--r--glib/tests/mainloop.c79
-rw-r--r--glib/tests/markup-example.c168
-rw-r--r--glib/tests/markup-subparser.c8
-rw-r--r--glib/tests/markup.c2
-rw-r--r--glib/tests/max-version.c50
-rw-r--r--glib/tests/mem-overflow.c2
-rw-r--r--glib/tests/memchunks.c603
-rw-r--r--glib/tests/meson.build330
-rw-r--r--glib/tests/messages-low-memory.c91
-rw-r--r--glib/tests/messages-low-memory.py101
-rw-r--r--glib/tests/mutex.c62
-rw-r--r--glib/tests/once.c2
-rw-r--r--glib/tests/onceinit.c10
-rw-r--r--glib/tests/option-argv0.c2
-rw-r--r--glib/tests/option-context.c2
-rw-r--r--glib/tests/path-test-subdir/meson.build17
-rw-r--r--glib/tests/pathbuf.c258
-rw-r--r--glib/tests/private.c2
-rw-r--r--glib/tests/protocol.c2
-rw-r--r--glib/tests/queue.c344
-rw-r--r--glib/tests/rand.c2
-rw-r--r--glib/tests/rec-mutex.c106
-rw-r--r--glib/tests/regex.c74
-rw-r--r--glib/tests/rwlock.c2
-rw-r--r--glib/tests/sequence.c3
-rw-r--r--glib/tests/slice-color.c135
-rw-r--r--glib/tests/slice-concurrent.c132
-rw-r--r--glib/tests/slice-eager-freeing.c158
-rw-r--r--glib/tests/slice-glib.c154
-rw-r--r--glib/tests/slice-known-pages.c173
-rw-r--r--glib/tests/slice-malloc.c153
-rw-r--r--glib/tests/slice-memchunk.c167
-rw-r--r--glib/tests/slice-slab.c154
-rw-r--r--glib/tests/slice.c64
-rw-r--r--glib/tests/spawn-multithreaded.c13
-rw-r--r--glib/tests/spawn-singlethread.c38
-rw-r--r--glib/tests/spawn-test-win32-gui.c18
-rw-r--r--glib/tests/spawn-test.c349
-rw-r--r--glib/tests/strfuncs.c236
-rw-r--r--glib/tests/string.c222
-rw-r--r--glib/tests/strvbuilder.c2
-rw-r--r--glib/tests/test-printf.c2
-rw-r--r--glib/tests/test-spawn-echo.c2
-rw-r--r--glib/tests/test-spawn-sleep.c2
-rw-r--r--glib/tests/testing-helper.c99
-rw-r--r--glib/tests/testing.c1271
-rw-r--r--glib/tests/thread-pool.c2
-rw-r--r--glib/tests/thread.c5
-rw-r--r--glib/tests/timeout.c20
-rw-r--r--glib/tests/timer.c38
-rw-r--r--glib/tests/tree.c104
-rw-r--r--glib/tests/unicode-normalize.c52
-rw-r--r--glib/tests/unicode.c54
-rw-r--r--glib/tests/unix.c131
-rw-r--r--glib/tests/uri.c13
-rw-r--r--glib/tests/utf8-misc.c55
-rw-r--r--glib/tests/utils-isolated.c114
-rw-r--r--glib/tests/utils.c197
-rw-r--r--glib/tests/win32.c2
-rw-r--r--glib/win_iconv.c2
l---------gmodule/COPYING2
-rw-r--r--gmodule/gmodule-ar.c15
-rw-r--r--gmodule/gmodule-deprecated.c32
-rw-r--r--gmodule/gmodule-dl.c19
-rw-r--r--gmodule/gmodule.c144
-rw-r--r--gmodule/gmodule.h41
-rw-r--r--gmodule/meson.build31
-rw-r--r--gmodule/tests/max-version.c46
-rw-r--r--gmodule/tests/meson.build85
-rw-r--r--gobject/gatomicarray.c7
-rw-r--r--gobject/gatomicarray.h11
-rw-r--r--gobject/gbinding.c88
-rw-r--r--gobject/gbinding.h26
-rw-r--r--gobject/gbindinggroup.h14
-rw-r--r--gobject/gboxed.c5
-rw-r--r--gobject/gboxed.h22
-rw-r--r--gobject/gclosure.c36
-rw-r--r--gobject/gclosure.h40
-rw-r--r--gobject/genums.h38
-rw-r--r--gobject/glib-enumtypes.h.template2
-rwxr-xr-xgobject/glib-genmarshal.in2
-rwxr-xr-xgobject/glib-mkenums.in31
-rw-r--r--gobject/glib-types.h76
-rw-r--r--gobject/gmarshal.c42
-rw-r--r--gobject/gmarshal.h88
-rw-r--r--gobject/gobject.c242
-rw-r--r--gobject/gobject.h140
-rw-r--r--gobject/gobject_gdb.py27
-rw-r--r--gobject/gobjectnotifyqueue.c4
-rw-r--r--gobject/gparam.c6
-rw-r--r--gobject/gparam.h74
-rw-r--r--gobject/gparamspecs.h76
-rw-r--r--gobject/gsignal.c575
-rw-r--r--gobject/gsignal.h92
-rw-r--r--gobject/gsignalgroup.c9
-rw-r--r--gobject/gsignalgroup.h24
-rw-r--r--gobject/gsourceclosure.h4
-rw-r--r--gobject/gtype.c489
-rw-r--r--gobject/gtype.h683
-rw-r--r--gobject/gtypemodule.c31
-rw-r--r--gobject/gtypemodule.h16
-rw-r--r--gobject/gtypeplugin.h10
-rw-r--r--gobject/gvalue.c22
-rw-r--r--gobject/gvalue.h26
-rw-r--r--gobject/gvaluearray.h24
-rw-r--r--gobject/gvaluetypes.c6
-rw-r--r--gobject/gvaluetypes.h86
-rw-r--r--gobject/meson.build33
-rw-r--r--gobject/tests/.gitignore18
-rw-r--r--gobject/tests/autoptr.c2
-rw-r--r--gobject/tests/binding.c2
-rw-r--r--gobject/tests/closure-refcount.c2
-rw-r--r--gobject/tests/custom-dispatch.c2
-rw-r--r--gobject/tests/dynamictests.c2
-rw-r--r--gobject/tests/dynamictype.c26
-rw-r--r--gobject/tests/genmarshal.py6
-rw-r--r--gobject/tests/gobject-query.py3
-rw-r--r--gobject/tests/max-version.c48
-rw-r--r--gobject/tests/meson.build84
-rw-r--r--gobject/tests/mkenums.py56
-rw-r--r--gobject/tests/notify-init.c2
-rw-r--r--gobject/tests/notify-init2.c2
-rw-r--r--gobject/tests/objects-refcount1.c19
-rw-r--r--gobject/tests/performance/meson.build9
-rw-r--r--gobject/tests/performance/performance.c352
-rw-r--r--gobject/tests/properties.c2
-rw-r--r--gobject/tests/reference.c400
-rw-r--r--gobject/tests/signalgroup.c2
-rw-r--r--gobject/tests/signals.c270
-rw-r--r--gobject/tests/threadtests.c2
-rw-r--r--gobject/tests/type-flags.c160
-rw-r--r--gobject/tests/type.c17
-rw-r--r--gobject/tests/value.c1
-rw-r--r--gthread/meson.build7
-rw-r--r--gthread/tests/init.c75
-rw-r--r--gthread/tests/meson.build73
-rw-r--r--m4macros/attributes.m4288
-rw-r--r--m4macros/glibtests.m431
-rw-r--r--meson.build441
-rw-r--r--meson_options.txt17
-rw-r--r--po/POTFILES.in1
-rw-r--r--po/ab.po4135
-rw-r--r--po/be.po321
-rw-r--r--po/bg.po1078
-rw-r--r--po/ca.po1573
-rw-r--r--po/cs.po1583
-rw-r--r--po/da.po1576
-rw-r--r--po/de.po1600
-rw-r--r--po/en_GB.po1373
-rw-r--r--po/eo.po5136
-rw-r--r--po/es.po1578
-rw-r--r--po/eu.po1631
-rw-r--r--po/fa.po1757
-rw-r--r--po/fr.po1575
-rw-r--r--po/gl.po1747
-rw-r--r--po/he.po1586
-rw-r--r--po/hu.po1593
-rw-r--r--po/id.po1695
-rw-r--r--po/it.po2852
-rw-r--r--po/ka.po3969
-rw-r--r--po/kk.po1550
-rw-r--r--po/ko.po1566
-rw-r--r--po/lt.po1674
-rw-r--r--po/lv.po3081
-rw-r--r--po/pa.po4206
-rw-r--r--po/pl.po1568
-rw-r--r--po/pt.po1555
-rw-r--r--po/pt_BR.po1358
-rw-r--r--po/ro.po3008
-rw-r--r--po/ru.po1577
-rw-r--r--po/sk.po3181
-rw-r--r--po/sl.po1574
-rw-r--r--po/sr.po936
-rw-r--r--po/sv.po1588
-rw-r--r--po/tr.po1673
-rw-r--r--po/uk.po1616
-rw-r--r--po/zh_CN.po1571
-rw-r--r--subprojects/libffi.wrap3
-rw-r--r--subprojects/pcre2.wrap24
-rw-r--r--subprojects/proxy-libintl.wrap9
-rwxr-xr-xtools/check-abis.sh23
-rwxr-xr-xtools/gen-visibility-macros.py204
-rw-r--r--tools/generate-uac-manifest.py137
-rw-r--r--tools/glib.supp25
-rw-r--r--tools/meson.build14
804 files changed, 73992 insertions, 47983 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3846535e4..bd10823a2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,25 +4,33 @@ stages:
- coverage
- analysis
- deploy
+ - report
cache:
paths:
- _ccache/
variables:
- FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/glib/fedora:v19"
+ FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/glib/fedora:v20"
COVERITY_IMAGE: "registry.gitlab.gnome.org/gnome/glib/coverity:v7"
- DEBIAN_IMAGE: "registry.gitlab.gnome.org/gnome/glib/debian-stable:v13"
- MINGW_IMAGE: "registry.gitlab.gnome.org/gnome/glib/mingw:v9"
- MESON_TEST_TIMEOUT_MULTIPLIER: 2
+ DEBIAN_IMAGE: "registry.gitlab.gnome.org/gnome/glib/debian-stable:v14"
+ MINGW_IMAGE: "registry.gitlab.gnome.org/gnome/glib/mingw:v10"
+ MESON_TEST_TIMEOUT_MULTIPLIER: 4
G_MESSAGES_DEBUG: all
MESON_COMMON_OPTIONS: "--buildtype debug --wrap-mode=nodownload --fatal-meson-warnings"
+# Default CI job setup; contrast with `.only-origin`.
+#
+# Don’t execute the pipeline when a merge request is merged into `main`, as it
+# will have already been tested
.only-default:
only:
- branches
except:
- - tags
+ refs:
+ - tags
+ variables:
+ - $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
# Some jobs run on CI runners which don’t have good isolation between CI jobs,
# and don’t have much available resource. Limit those jobs to only ones on the
@@ -48,17 +56,46 @@ variables:
- bash .gitlab-ci/show-execution-environment.sh
- cp -r $HOME/subprojects/* subprojects/
-style-check-diff:
+# FIXME: Work around https://gitlab.com/gitlab-org/gitlab/-/issues/391756
+.only-default-with-git:
extends: .only-default
+ before_script:
+ - rm -rf subprojects/gvdb
+ - git submodule update --init --depth 1
+ variables:
+ GIT_SUBMODULE_STRATEGY: "none"
+ GIT_SUBMODULE_DEPTH: 1
+
+style-check-advisory:
+ extends: .only-default-with-git
image: $DEBIAN_IMAGE
stage: style-check
allow_failure: true
script:
- .gitlab-ci/run-style-check-diff.sh
+ - .gitlab-ci/run-check-todos.sh
+
+sh-and-py-check:
+ extends: .only-default
+ image: $DEBIAN_IMAGE
+ stage: style-check
+ allow_failure: false
+ script:
- .gitlab-ci/run-shellcheck.sh
- .gitlab-ci/run-black.sh
- .gitlab-ci/run-flake8.sh
- - .gitlab-ci/run-check-todos.sh
+ only:
+ changes:
+ - "**/*.py"
+ - "**/*.sh"
+
+style-check-mandatory:
+ extends: .only-default-with-git
+ image: $DEBIAN_IMAGE
+ stage: style-check
+ allow_failure: false
+ script:
+ - .gitlab-ci/run-reuse.sh
fedora-x86_64:
extends:
@@ -70,7 +107,7 @@ fedora-x86_64:
variables:
CFLAGS: "-coverage -ftest-coverage -fprofile-arcs"
script:
- - meson ${MESON_COMMON_OPTIONS}
+ - meson setup ${MESON_COMMON_OPTIONS}
--werror
--default-library=both
--prefix=$HOME/glib-installed
@@ -81,19 +118,20 @@ fedora-x86_64:
-Dinstalled_tests=true
-Dgtk_doc=true
_build
- - ninja -C _build
+ - meson compile -C _build
- mkdir -p _coverage
- lcov --config-file .lcovrc --directory _build --capture --initial --output-file "_coverage/${CI_JOB_NAME}-baseline.lcov"
- .gitlab-ci/run-tests.sh
- lcov --config-file .lcovrc --directory _build --capture --output-file "_coverage/${CI_JOB_NAME}.lcov"
artifacts:
reports:
- junit: "_build/meson-logs/testlog.junit.xml"
+ junit:
+ - _build/meson-logs/testlog.junit.xml
+ - _build/meson-logs/testlog-*.junit.xml
name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
expire_in: 1 week
paths:
- - "_build/docs/reference/"
- "_build/config.h"
- "_build/glib/glibconfig.h"
- "_build/meson-logs"
@@ -116,7 +154,7 @@ debian-stable-x86_64:
stage: build
needs: []
script:
- - meson ${MESON_COMMON_OPTIONS}
+ - meson setup ${MESON_COMMON_OPTIONS}
--werror
--default-library=both
--prefix=$HOME/glib-installed
@@ -124,13 +162,14 @@ debian-stable-x86_64:
--libdir=lib
-Dsystemtap=true
-Ddtrace=true
- -Dinstalled_tests=true
_build
- - ninja -C _build
+ - meson compile -C _build
- .gitlab-ci/run-tests.sh
artifacts:
reports:
- junit: "_build/meson-logs/testlog.junit.xml"
+ junit:
+ - _build/meson-logs/testlog.junit.xml
+ - _build/meson-logs/testlog-*.junit.xml
name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
expire_in: 1 week
@@ -148,15 +187,15 @@ installed-tests:
needs: []
script:
# dtrace is disabled because it breaks the static-link.py test
- - meson ${MESON_COMMON_OPTIONS}
+ - meson setup ${MESON_COMMON_OPTIONS}
--werror
--prefix=/usr --libdir=/usr/lib64
-Dinstalled_tests=true
-Ddefault_library=both
-Ddtrace=false
_build
- - ninja -C _build
- - sudo ninja -C _build install
+ - meson compile -C _build
+ - sudo meson install -C _build
# Remove old headers, possibly present in current installation
- sudo rm -f /usr/include/glib-2.0/glib/gurifuncs.h
- sudo chown -R `id -un`:`id -gn` _build/
@@ -185,18 +224,20 @@ G_DISABLE_ASSERT:
stage: build
needs: []
script:
- - meson ${MESON_COMMON_OPTIONS}
+ - meson setup ${MESON_COMMON_OPTIONS}
--werror
-Dsystemtap=true
-Ddtrace=true
-Dinstalled_tests=true
-Dglib_assert=false
_build
- - ninja -C _build
+ - meson compile -C _build
- bash -x ./.gitlab-ci/run-tests.sh
artifacts:
reports:
- junit: "_build/meson-logs/testlog.junit.xml"
+ junit:
+ - _build/meson-logs/testlog.junit.xml
+ - _build/meson-logs/testlog-*.junit.xml
name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
expire_in: 1 week
@@ -215,13 +256,13 @@ valgrind:
variables:
MESON_TEST_TIMEOUT_MULTIPLIER: 15
script:
- - meson ${MESON_COMMON_OPTIONS}
+ - meson setup ${MESON_COMMON_OPTIONS}
--werror
-Dsystemtap=true
-Ddtrace=true
-Dinstalled_tests=true
_build
- - ninja -C _build
+ - meson compile -C _build
# Valgrind doesn’t work when the soft FD limit is set too high
# See https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2710
- ulimit -Sn 1024
@@ -257,21 +298,25 @@ cross-android_arm64:
image: $FEDORA_IMAGE
script:
# FIXME: add --werror
- - meson ${MESON_COMMON_OPTIONS} --cross-file=.gitlab-ci/cross_file_android_arm64_31.txt _build
- - ninja -C _build
+ - meson setup ${MESON_COMMON_OPTIONS} --cross-file=.gitlab-ci/cross_file_android_arm64_31.txt _build
+ - meson compile -C _build
cross-mingw64:
extends:
- .cross-build-linux
- .only-default
image: $MINGW_IMAGE
+ variables:
+ PYTHONUTF8: "1"
script:
# FIXME: Add --werror
- - meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_mingw64.txt _build
- - ninja -C _build
+ - meson setup ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_mingw64.txt _build
+ - meson compile -C _build
artifacts:
reports:
- junit: "_build/meson-logs/testlog.junit.xml"
+ junit:
+ - _build/meson-logs/testlog.junit.xml
+ - _build/meson-logs/testlog-*.junit.xml
name: "glib-${env:CI_JOB_NAME}-${env:CI_COMMIT_REF_NAME}"
when: always
expire_in: 1 week
@@ -292,13 +337,21 @@ msys2-mingw32:
variables:
MSYSTEM: "MINGW32"
CHERE_INVOKING: "yes"
+ CFLAGS: -coverage -ftest-coverage -fprofile-arcs
+ PYTHONUTF8: "1"
+ # FIXME: For some reason enabling jit debugging "fixes" random python crashes
+ # see https://github.com/msys2/MINGW-packages/issues/11864 and
+ # https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3280#note_1678973
+ MSYS: "winjitdebug"
script:
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu --ask 20
- C:\msys64\usr\bin\bash .gitlab-ci/show-execution-environment.sh
- C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2.sh"
artifacts:
reports:
- junit: "_build/meson-logs/testlog.junit.xml"
+ junit:
+ - _build/meson-logs/testlog.junit.xml
+ - _build/meson-logs/testlog-*.junit.xml
name: "glib-${env:CI_JOB_NAME}-${env:CI_COMMIT_REF_NAME}"
when: always
expire_in: 1 week
@@ -306,12 +359,41 @@ msys2-mingw32:
- _build/meson-logs
- _coverage/
+msys2-clang64:
+ extends: .only-schedules
+ stage: build
+ tags:
+ - win32-ps
+ needs: []
+ variables:
+ MSYSTEM: "CLANG64"
+ CHERE_INVOKING: "yes"
+ PYTHONUTF8: "1"
+ # FIXME: For some reason enabling jit debugging "fixes" random python crashes
+ # see https://github.com/msys2/MINGW-packages/issues/11864 and
+ # https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3280#note_1678973
+ MSYS: "winjitdebug"
+ script:
+ - C:\msys64\usr\bin\pacman --noconfirm -Syyuu --ask 20
+ - C:\msys64\usr\bin\bash .gitlab-ci/show-execution-environment.sh
+ - C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2.sh"
+ artifacts:
+ reports:
+ junit: "_build/meson-logs/testlog.junit.xml"
+ name: "glib-${env:CI_JOB_NAME}-${env:CI_COMMIT_REF_NAME}"
+ when: always
+ expire_in: 1 week
+ paths:
+ - _build/meson-logs
+
vs2017-x64:
extends: .only-default
stage: build
tags:
- win32-ps
needs: []
+ variables:
+ PYTHONUTF8: "1"
script:
# FIXME: These should use --wrap-mode=nodownload but the Windows CI machines
# aren’t currently set up for that.
@@ -321,7 +403,9 @@ vs2017-x64:
--python.purelibdir=C:\Python37\site-packages
artifacts:
reports:
- junit: "_build/meson-logs/testlog.junit.xml"
+ junit:
+ - _build/meson-logs/testlog.junit.xml
+ - _build/meson-logs/testlog-*.junit.xml
name: "glib-${env:CI_JOB_NAME}-${env:CI_COMMIT_REF_NAME}"
when: always
expire_in: 1 week
@@ -339,6 +423,8 @@ vs2017-x64-static:
tags:
- win32-ps
needs: []
+ variables:
+ PYTHONUTF8: "1"
script:
# FIXME: These should use --wrap-mode=nodownload but the Windows CI machines
# aren’t currently set up for that.
@@ -349,7 +435,9 @@ vs2017-x64-static:
--python.purelibdir=C:\Python37\site-packages
artifacts:
reports:
- junit: "_build/meson-logs/testlog.junit.xml"
+ junit:
+ - _build/meson-logs/testlog.junit.xml
+ - _build/meson-logs/testlog-*.junit.xml
name: "glib-${env:CI_JOB_NAME}-${env:CI_COMMIT_REF_NAME}"
when: always
expire_in: 1 week
@@ -386,12 +474,14 @@ freebsd-12-x86_64:
# FreeBSD supports xattr, but its API is different from Linux xattr.
# FIXME: extattr(2) support: https://gitlab.gnome.org/GNOME/glib/issues/1404
# localstatedir is needed for access to /var/lib/dbus/machine-id
- - meson ${MESON_COMMON_OPTIONS} --localstatedir=/var -Db_lundef=false -Dxattr=false _build
- - ninja -C _build
+ - meson setup ${MESON_COMMON_OPTIONS} --localstatedir=/var -Db_lundef=false -Dxattr=false _build
+ - meson compile -C _build
- bash -x ./.gitlab-ci/run-tests.sh
artifacts:
reports:
- junit: "_build/meson-logs/testlog.junit.xml"
+ junit:
+ - _build/meson-logs/testlog.junit.xml
+ - _build/meson-logs/testlog-*.junit.xml
name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
expire_in: 1 week
@@ -413,12 +503,14 @@ freebsd-13-x86_64:
before_script:
- bash .gitlab-ci/show-execution-environment.sh
script:
- - meson ${MESON_COMMON_OPTIONS} --localstatedir=/var -Db_lundef=false -Dxattr=false _build
- - ninja -C _build
+ - meson setup ${MESON_COMMON_OPTIONS} --localstatedir=/var -Db_lundef=false -Dxattr=false _build
+ - meson compile -C _build
- bash -x ./.gitlab-ci/run-tests.sh
artifacts:
reports:
- junit: "_build/meson-logs/testlog.junit.xml"
+ junit:
+ - _build/meson-logs/testlog.junit.xml
+ - _build/meson-logs/testlog-*.junit.xml
name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
expire_in: 1 week
@@ -427,38 +519,55 @@ freebsd-13-x86_64:
- "_build/glib/glibconfig.h"
- "_build/meson-logs"
-macos:
+macos-x86_64:
extends: .only-origin
stage: build
tags:
- - macos
+ - macosintel
needs: []
+ cache: []
variables:
GIT_SUBMODULE_STRATEGY: normal
+ # -Wno-overlength-strings
# libpcre2 gets built as a subproject, but the default Clang options on
# macOS limit string lengths to 4095B — pcre2_error.c has a string of length
# 4380B
- CFLAGS: '-Wno-overlength-strings'
+ CFLAGS: "-Wno-overlength-strings"
+ # redirect to the runner's volatile temporary directory
+ TMPDIR: /Users/Shared/work/tmp
+ # keep the user profile clean
+ PIP_CACHE_DIR: /Users/Shared/build/cache
+ PIPENV_CACHE_DIR: $PIP_CACHE_DIR
+ PYTHONPYCACHEPREFIX: $PIP_CACHE_DIR
+ # target OS X 10.9 Mavericks for backward compatibility
+ SDKROOT: /opt/sdks/MacOSX10.9.sdk
+ # use the runner's ccache directory
+ CCACHE_DIR: /Users/Shared/work/ccache
before_script:
- bash .gitlab-ci/show-execution-environment.sh
- - pip3 install --user meson==0.60.1
- - pip3 install --user ninja
- - export PATH=/Users/gitlabrunner/Library/Python/3.7/bin:$PATH
+ - python3 -m venv .venv
+ - ln -s /opt/cmake/CMake.app/Contents/bin/cmake .venv/bin
+ - ln -s /opt/ccache/ccache .venv/bin
+ - source .venv/bin/activate
+ - pip3 install meson==1.2.0
+ - pip3 install ninja==1.11.1
script:
# FIXME: Use --wrap-mode=default so we download dependencies each time,
# until the macOS runner is a VM where we can use a pre-made image which
# already contains the dependencies. See:
# - https://gitlab.gnome.org/GNOME/glib/merge_requests/388
# - https://gitlab.gnome.org/Infrastructure/Infrastructure/issues/225
- - meson ${MESON_COMMON_OPTIONS}
+ - meson setup ${MESON_COMMON_OPTIONS}
--wrap-mode=default
--werror
_build
- - ninja -C _build
+ - meson compile -C _build
- .gitlab-ci/run-tests.sh
artifacts:
reports:
- junit: "_build/meson-logs/testlog.junit.xml"
+ junit:
+ - _build/meson-logs/testlog.junit.xml
+ - _build/meson-logs/testlog-*.junit.xml
name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
expire_in: 1 week
@@ -497,7 +606,7 @@ scan-build:
stage: analysis
needs: []
script:
- - meson ${MESON_COMMON_OPTIONS}
+ - meson setup ${MESON_COMMON_OPTIONS}
--werror
--default-library=both
--prefix=$HOME/glib-installed
@@ -515,7 +624,7 @@ scan-build:
paths:
- "_scan_build/meson-logs/scanbuild"
-coverity:
+.coverity:
extends:
- .build-linux
- .only-schedules
@@ -526,7 +635,7 @@ coverity:
# cov-build doesn’t like GLIB_DEPRECATED_ENUMERATOR
CFLAGS: '-DGLIB_DISABLE_DEPRECATION_WARNINGS'
script:
- - meson ${MESON_COMMON_OPTIONS}
+ - meson setup ${MESON_COMMON_OPTIONS}
--werror
--default-library=both
--prefix=$HOME/glib-installed
@@ -536,7 +645,7 @@ coverity:
-Ddtrace=true
-Dinstalled_tests=true
_coverity_build
- - $HOME/cov-analysis-linux64-*/bin/cov-build --dir cov-int ninja -C _coverity_build
+ - $HOME/cov-analysis-linux64-*/bin/cov-build --dir cov-int meson compile -C _coverity_build
- tar cfz cov-int.tar.gz cov-int
- curl https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME
--form token=$COVERITY_SCAN_TOKEN --form email=$GITLAB_USER_EMAIL
@@ -550,10 +659,9 @@ coverity:
- "cov-int/build-log.txt"
pages:
+ extends: .only-schedules
stage: deploy
- only:
- - main
- needs: ['coverage', 'style-check-diff']
+ needs: ['coverage', 'style-check-advisory']
script:
- mv _coverage/ public/
artifacts:
@@ -571,10 +679,9 @@ dist-job:
- git submodule update --init
- for m in $(git submodule foreach -q 'echo $path'); do git config --global --add safe.directory "${PWD}/${m}"; done
- meson subprojects download
- - meson ${MESON_COMMON_OPTIONS} --buildtype release -Dgtk_doc=true -Dman=true _build
- - cd _build
- - ninja dist
- - ninja glib-doc gobject-doc gio-doc
+ - meson setup ${MESON_COMMON_OPTIONS} --buildtype release -Dgtk_doc=true -Dman=true _build
+ - meson dist -C _build
+ - ninja -C _build glib-doc gobject-doc gio-doc
- tar -c -J -f "glib-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/glib html
- tar -c -J -f "gobject-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gobject html
- tar -c -J -f "gio-docs-$CI_COMMIT_TAG.tar.xz" -C docs/reference/gio html
@@ -584,3 +691,11 @@ dist-job:
- "${CI_PROJECT_DIR}/_build/gobject-docs-$CI_COMMIT_TAG.tar.xz"
- "${CI_PROJECT_DIR}/_build/gio-docs-$CI_COMMIT_TAG.tar.xz"
- "${CI_PROJECT_DIR}/_build/meson-dist/glib-*.tar.xz"
+
+issue-bot:
+ stage: report
+ image: registry.gitlab.com/gitlab-org/distribution/issue-bot:latest
+ script: /issue-bot
+ rules:
+ - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule"
+ when: on_failure
diff --git a/.gitlab-ci/README.md b/.gitlab-ci/README.md
index 15df442a8..3a1ffe409 100644
--- a/.gitlab-ci/README.md
+++ b/.gitlab-ci/README.md
@@ -5,7 +5,7 @@
GitLab CI jobs run in a Docker image, defined here. To update that image
(perhaps to install some more packages):
-1. Edit `.gitlab-ci/Dockerfile` with the changes you want
+1. Edit `.gitlab-ci/*.Dockerfile` with the changes you want
1. Run `.gitlab-ci/run-docker.sh build --base=debian-stable --base-version=1` to
build the new image (bump the version from the latest listed for that `base`
on https://gitlab.gnome.org/GNOME/glib/container_registry). If rebuilding the
@@ -23,5 +23,5 @@ GitLab CI jobs run in a Docker image, defined here. To update that image
1. Edit `.gitlab-ci.yml` (in the root of this repository) to use your new
image
-[pat]: https://gitlab.gnome.org/profile/personal_access_tokens
+[pat]: https://gitlab.gnome.org/-/profile/personal_access_tokens
[cs]: https://scan.coverity.com/
diff --git a/.gitlab-ci/check-missing-install-tag.py b/.gitlab-ci/check-missing-install-tag.py
index dd122e8e5..d9e53e16d 100755
--- a/.gitlab-ci/check-missing-install-tag.py
+++ b/.gitlab-ci/check-missing-install-tag.py
@@ -6,6 +6,7 @@ missing installation tag.
"""
import argparse
+import json
from pathlib import Path
@@ -14,14 +15,16 @@ def main():
parser.add_argument("builddir", type=Path)
args = parser.parse_args()
- logfile = args.builddir / "meson-logs" / "meson-log.txt"
- with logfile.open(encoding="utf-8") as f:
- if "Failed to guess install tag" in f.read():
- print(
- f"Some files are missing install_tag, see {logfile} for details." # no-qa
- )
- return 1
- return 0
+ success = True
+ path = args.builddir / "meson-info" / "intro-install_plan.json"
+ with path.open(encoding="utf-8") as f:
+ install_plan = json.load(f)
+ for target in install_plan.values():
+ for info in target.values():
+ if not info["tag"]:
+ print("Missing install_tag for", info["destination"])
+ success = False
+ return 0 if success else 1
if __name__ == "__main__":
diff --git a/.gitlab-ci/coverage-docker.sh b/.gitlab-ci/coverage-docker.sh
index 0b9abc017..6367f5e14 100755
--- a/.gitlab-ci/coverage-docker.sh
+++ b/.gitlab-ci/coverage-docker.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-set -e
+set -ex
# Fixup Windows paths
python3 ./.gitlab-ci/fixup-cov-paths.py _coverage/*.lcov
@@ -10,6 +10,12 @@ for path in _coverage/*.lcov; do
lcov --config-file .lcovrc -r "${path}" '*/_build/*' -o "$(pwd)/${path}"
# Remove any coverage from system files
lcov --config-file .lcovrc -e "${path}" "$(pwd)/*" -o "$(pwd)/${path}"
+ # Remove coverage from the fuzz tests, since they are run on a separate CI system
+ lcov --config-file .lcovrc -r "${path}" "*/fuzzing/*" -o "$(pwd)/${path}"
+ # Remove coverage from copylibs and subprojects
+ for lib in xdgmime libcharset gnulib; do
+ lcov --config-file .lcovrc -r "${path}" "*/${lib}/*" -o "$(pwd)/${path}"
+ done
# Convert to cobertura format for gitlab integration
cobertura_base="${path/.lcov}-cobertura"
diff --git a/.gitlab-ci/debian-stable.Dockerfile b/.gitlab-ci/debian-stable.Dockerfile
index 5dcf2d3c2..b2559cad6 100644
--- a/.gitlab-ci/debian-stable.Dockerfile
+++ b/.gitlab-ci/debian-stable.Dockerfile
@@ -68,6 +68,9 @@ ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
RUN pip3 install meson==0.60.3
+# FIXME: Once we use Debian Bookworm, we can just install the `reuse` package
+RUN pip3 install reuse==1.0.0
+
ARG HOST_USER_ID=5555
ENV HOST_USER_ID ${HOST_USER_ID}
RUN useradd -u $HOST_USER_ID -ms /bin/bash user
diff --git a/.gitlab-ci/run-docker.sh b/.gitlab-ci/run-docker.sh
index 33a0ae5d1..625f13ee7 100755
--- a/.gitlab-ci/run-docker.sh
+++ b/.gitlab-ci/run-docker.sh
@@ -15,16 +15,17 @@ read_arg() {
fi
}
-SUDO_CMD="sudo"
-if docker -v |& grep -q podman; then
+if type -p podman; then
# Using podman
- SUDO_CMD=""
+ DOCKER_CMD="podman"
# Docker is actually implemented by podman, and its OCI output
# is incompatible with some of the dockerd instances on GitLab
# CI runners.
export BUILDAH_FORMAT=docker
elif getent group docker | grep -q "\b${USER}\b"; then
- SUDO_CMD=""
+ DOCKER_CMD="docker"
+else
+ DOCKER_CMD="sudo docker"
fi
set -e
@@ -103,7 +104,7 @@ TAG="registry.gitlab.gnome.org/gnome/glib/${base}:${base_version}"
if [ $build == 1 ]; then
echo -e "\\e[1;32mBUILDING\\e[0m: ${base} as ${TAG}"
- $SUDO_CMD docker build \
+ $DOCKER_CMD build \
--build-arg HOST_USER_ID="$UID" \
--build-arg COVERITY_SCAN_PROJECT_NAME="${COVERITY_SCAN_PROJECT_NAME}" \
--build-arg COVERITY_SCAN_TOKEN="${COVERITY_SCAN_TOKEN}" \
@@ -116,16 +117,16 @@ if [ $push == 1 ]; then
echo -e "\\e[1;32mPUSHING\\e[0m: ${base} as ${TAG}"
if [ $no_login == 0 ]; then
- $SUDO_CMD docker login registry.gitlab.gnome.org
+ $DOCKER_CMD login registry.gitlab.gnome.org
fi
- $SUDO_CMD docker push $TAG
+ $DOCKER_CMD push $TAG
exit $?
fi
if [ $run == 1 ]; then
echo -e "\\e[1;32mRUNNING\\e[0m: ${base} as ${TAG}"
- $SUDO_CMD docker run \
+ $DOCKER_CMD run \
--rm \
--volume "$(pwd)/..:/home/user/app" \
--workdir "/home/user/app" \
diff --git a/.gitlab-ci/run-reuse.sh b/.gitlab-ci/run-reuse.sh
new file mode 100755
index 000000000..6d0a44c56
--- /dev/null
+++ b/.gitlab-ci/run-reuse.sh
@@ -0,0 +1,62 @@
+#!/bin/bash
+#
+# Copyright 2022 Endless OS Foundation, LLC
+#
+# SPDX-License-Identifier: LGPL-2.1-or-later
+#
+# Original author: Philip Withnall
+
+set -e
+
+# We need to make sure the submodules are up to date, or `reuse lint` will fail
+# when it tries to run `git status` internally
+git submodule update --init
+
+# Run `reuse lint` on the code base and see if the number of files without
+# suitable copyright/licensing information has increased from a baseline
+# FIXME: Eventually this script can check whether *any* files are missing
+# information. But for now, let’s slowly improve the baseline.
+files_without_copyright_information_max=407
+files_without_license_information_max=559
+
+# The || true is because `reuse lint` will exit with status 1 if the project is not compliant
+# FIXME: Once https://github.com/fsfe/reuse-tool/issues/512 or
+# https://github.com/fsfe/reuse-tool/issues/183 land, we can check only files
+# which have changed in this merge request, and confidently parse structured
+# output rather than the current human-readable output.
+lint_output="$(reuse lint || true)"
+
+files_with_copyright_information="$(echo "${lint_output}" | awk '/^\* Files with copyright information: / { print $6 }')"
+files_with_license_information="$(echo "${lint_output}" | awk '/^\* Files with license information: / { print $6 }')"
+total_files="$(echo "${lint_output}" | awk '/^\* Files with copyright information: / { print $8 }')"
+error=0
+
+files_without_copyright_information="$(( total_files - files_with_copyright_information ))"
+files_without_license_information="$(( total_files - files_with_license_information ))"
+
+if [ "${files_without_copyright_information}" -gt "${files_without_copyright_information_max}" ] || \
+ [ "${files_without_license_information}" -gt "${files_without_license_information_max}" ]; then
+ echo "${lint_output}"
+fi
+
+if [ "${files_without_copyright_information}" -gt "${files_without_copyright_information_max}" ]; then
+ echo ""
+ echo "Error: New files added without REUSE-compliant copyright information"
+ echo "Please make sure that all files added in this branch/merge request have correct copyright information"
+ error=1
+fi
+
+if [ "${files_without_license_information}" -gt "${files_without_license_information_max}" ]; then
+ echo ""
+ echo "Error: New files added without REUSE-compliant licensing information"
+ echo "Please make sure that all files added in this branch/merge request have correct license information"
+ error=1
+fi
+
+if [ "${error}" -eq "1" ]; then
+ echo ""
+ echo "See https://reuse.software/tutorial/#step-2 for information on how to add REUSE information"
+ echo "Also see https://gitlab.gnome.org/GNOME/glib/-/issues/1415"
+fi
+
+exit "${error}" \ No newline at end of file
diff --git a/.gitlab-ci/run-tests.sh b/.gitlab-ci/run-tests.sh
index 634f861eb..1189493ba 100755
--- a/.gitlab-ci/run-tests.sh
+++ b/.gitlab-ci/run-tests.sh
@@ -1,9 +1,16 @@
#!/bin/bash
+set -ex
+
./.gitlab-ci/check-missing-install-tag.py _build
-meson test \
+meson test -v \
-C _build \
--timeout-multiplier "${MESON_TEST_TIMEOUT_MULTIPLIER}" \
- --no-suite flaky \
"$@"
+
+# Run only the flaky tests, so we can log the failures but without hard failing
+meson test -v \
+ -C _build \
+ --timeout-multiplier "${MESON_TEST_TIMEOUT_MULTIPLIER}" \
+ "$@" --setup=unstable_tests --suite=failing --suite=flaky || true
diff --git a/.gitlab-ci/test-msvc.bat b/.gitlab-ci/test-msvc.bat
index 82e445e00..aee77d33d 100644
--- a/.gitlab-ci/test-msvc.bat
+++ b/.gitlab-ci/test-msvc.bat
@@ -12,16 +12,25 @@ for %%x in (%*) do (
set args=%args:~1%
:: FIXME: make warnings fatal
-pip3 install --upgrade --user meson==0.60.3 || goto :error
-meson %args% _build || goto :error
+pip3 install --upgrade --user meson==1.0.0 || goto :error
+meson setup %args% _build || goto :error
python .gitlab-ci/check-missing-install-tag.py _build || goto :error
-ninja -C _build || goto :error
+meson compile -C _build || goto :error
-:: FIXME: dont ignore test errors
-meson test -C _build --timeout-multiplier %MESON_TEST_TIMEOUT_MULTIPLIER% --no-suite flaky
+meson test -v -C _build --timeout-multiplier %MESON_TEST_TIMEOUT_MULTIPLIER% || goto :error
+meson test -v -C _build --timeout-multiplier %MESON_TEST_TIMEOUT_MULTIPLIER% --setup=unstable_tests --suite=failing --suite=flaky
+
+:: Workaround meson issue https://github.com/mesonbuild/meson/issues/9894
+python -c "n = '_build/meson-logs/testlog.junit.xml'; c = open(n, 'rb').read().replace(b'\x1b', b''); open(n, 'wb').write(c)" || goto :error
+python -c "n = '_build/meson-logs/testlog-unstable_tests.junit.xml'; c = open(n, 'rb').read().replace(b'\x1b', b''); open(n, 'wb').write(c)"
:: FIXME: can we get code coverage support?
goto :EOF
:error
+
+:: Workaround meson issue https://github.com/mesonbuild/meson/issues/9894
+python -c "n = '_build/meson-logs/testlog.junit.xml'; c = open(n, 'rb').read().replace(b'\x1b', b''); open(n, 'wb').write(c)"
+python -c "n = '_build/meson-logs/testlog-unstable_tests.junit.xml'; c = open(n, 'rb').read().replace(b'\x1b', b''); open(n, 'wb').write(c)"
+
exit /b 1
diff --git a/.gitlab-ci/test-msys2.sh b/.gitlab-ci/test-msys2.sh
index a345fda6a..aaeff165e 100755
--- a/.gitlab-ci/test-msys2.sh
+++ b/.gitlab-ci/test-msys2.sh
@@ -1,29 +1,24 @@
#!/bin/bash
-set -e
+set -ex
export PATH="/c/msys64/$MSYSTEM/bin:$PATH"
-if [[ "$MSYSTEM" == "MINGW32" ]]; then
- export MSYS2_ARCH="i686"
-else
- export MSYS2_ARCH="x86_64"
-fi
pacman --noconfirm -Suy
pacman --noconfirm -S --needed \
base-devel \
lcov \
- mingw-w64-$MSYS2_ARCH-ccache \
- mingw-w64-$MSYS2_ARCH-gettext \
- mingw-w64-$MSYS2_ARCH-libffi \
- mingw-w64-$MSYS2_ARCH-meson \
- mingw-w64-$MSYS2_ARCH-pcre2 \
- mingw-w64-$MSYS2_ARCH-python3 \
- mingw-w64-$MSYS2_ARCH-python-pip \
- mingw-w64-$MSYS2_ARCH-toolchain \
- mingw-w64-$MSYS2_ARCH-zlib \
- mingw-w64-$MSYS2_ARCH-libelf
+ "${MINGW_PACKAGE_PREFIX}"-ccache \
+ "${MINGW_PACKAGE_PREFIX}"-gettext \
+ "${MINGW_PACKAGE_PREFIX}"-libffi \
+ "${MINGW_PACKAGE_PREFIX}"-meson \
+ "${MINGW_PACKAGE_PREFIX}"-pcre2 \
+ "${MINGW_PACKAGE_PREFIX}"-python3 \
+ "${MINGW_PACKAGE_PREFIX}"-python-pip \
+ "${MINGW_PACKAGE_PREFIX}"-toolchain \
+ "${MINGW_PACKAGE_PREFIX}"-zlib \
+ "${MINGW_PACKAGE_PREFIX}"-libelf
mkdir -p _coverage
mkdir -p _ccache
@@ -31,31 +26,42 @@ CCACHE_BASEDIR="$(pwd)"
CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
export CCACHE_BASEDIR CCACHE_DIR
-pip3 install --upgrade --user meson==0.60.3
+pip3 install --upgrade --user meson==1.0.0
PATH="$(cygpath "$USERPROFILE")/.local/bin:$HOME/.local/bin:$PATH"
-CFLAGS="-coverage -ftest-coverage -fprofile-arcs"
DIR="$(pwd)"
export PATH CFLAGS
-meson --werror --buildtype debug _build
-cd _build
-ninja
-
-lcov \
- --quiet \
- --config-file "${DIR}"/.lcovrc \
- --directory "${DIR}/_build" \
- --capture \
- --initial \
- --output-file "${DIR}/_coverage/${CI_JOB_NAME}-baseline.lcov"
-
-# FIXME: fix the test suite
-meson test --timeout-multiplier "${MESON_TEST_TIMEOUT_MULTIPLIER}" --no-suite flaky || true
-
-lcov \
- --quiet \
- --config-file "${DIR}"/.lcovrc \
- --directory "${DIR}/_build" \
- --capture \
- --output-file "${DIR}/_coverage/${CI_JOB_NAME}.lcov"
+if [[ "$MSYSTEM" == "CLANG64" ]]; then
+ # FIXME: fix the clang build warnings
+ # shellcheck disable=SC2086
+ meson setup ${MESON_COMMON_OPTIONS} _build
+else
+ # shellcheck disable=SC2086
+ meson setup ${MESON_COMMON_OPTIONS} --werror _build
+fi
+
+meson compile -C _build
+
+if [[ "$CFLAGS" == *"-coverage"* ]]; then
+ lcov \
+ --quiet \
+ --config-file "${DIR}"/.lcovrc \
+ --directory "${DIR}/_build" \
+ --capture \
+ --initial \
+ --output-file "${DIR}/_coverage/${CI_JOB_NAME}-baseline.lcov"
+fi
+
+meson test -C _build -v --timeout-multiplier "${MESON_TEST_TIMEOUT_MULTIPLIER}"
+meson test -C _build -v --timeout-multiplier "${MESON_TEST_TIMEOUT_MULTIPLIER}" \
+ --setup=unstable_tests --suite=failing --suite=flaky || true
+
+if [[ "$CFLAGS" == *"-coverage"* ]]; then
+ lcov \
+ --quiet \
+ --config-file "${DIR}"/.lcovrc \
+ --directory "${DIR}/_build" \
+ --capture \
+ --output-file "${DIR}/_coverage/${CI_JOB_NAME}.lcov"
+fi
diff --git a/.gitmodules b/.gitmodules
index c1f97ee42..749950b93 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,5 +1,5 @@
[submodule "subprojects/gvdb"]
path = subprojects/gvdb
- url = https://gitlab.gnome.org/GNOME/gvdb.git
+ url = ../../GNOME/gvdb.git
branch = 0854af0fdb6d527a8d1999835ac2c5059976c210
shallow = true
diff --git a/.reuse/dep5 b/.reuse/dep5
index ce8c61ef2..979f2ea98 100644
--- a/.reuse/dep5
+++ b/.reuse/dep5
@@ -34,3 +34,10 @@ Files:
subprojects/*.wrap
Copyright: Meson Wrap Database (wrapdb) contributors
License: CC0-1.0
+
+# SVG files do contain the licensing metadata, but `reuse` can’t extract it
+# yet. The canonical licensing information for these files is in their internal
+# metadata.
+Files: docs/reference/glib/gvariant-*.svg
+Copyright: 2022 Philip Withnall
+License: CC-BY-SA-3.0
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9f2cdc984..0466c178c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -22,7 +22,7 @@ many things that we value:
Please, do not use the issue tracker for support questions. If you have
questions on how to use GLib effectively, you can use:
- - the `#gtk` IRC channel on irc.gnome.org
+ - the `#gtk` channel on [Matrix](https://wiki.gnome.org/GettingInTouch/Matrix)
- the [`glib` tag on GNOME's Discourse](https://discourse.gnome.org/tags/glib)
You can also look at the [`glib` tag on Stack
@@ -34,10 +34,9 @@ The issue tracker is meant to be used for actionable issues only.
### Security issues
-You should not open a new issue for security related questions.
+You **must not** open a new public issue for security related concerns.
-When in doubt, send an email to the [security](mailto:security@gnome.org)
-mailing list.
+Instead, see the [`SECURITY.md` documentation](./SECURITY.md).
### Bug reports
@@ -93,13 +92,20 @@ A common way to introduce new APIs or data types to GLib is to prototype them in
another code base for a while, to gain real-life experience with them before
they are imported into GLib and marked as stable.
+Many APIs and features may be best implemented in another library, unless they
+will be useful for a significant number of applications. GLib does not, and
+cannot, grow its API surface forever. APIs which integrate well with existing
+GLib API, or which extend it to allow it to be integrated better with other
+libraries, are more likely to be accepted than self-contained new APIs or
+features which can easily exist outside of GLib.
+
Each feature should also come fully documented, and with tests which approach
full branch coverage of the new code. GLib’s CI system generates code coverage
reports which are viewable for each merge request. See
[the testing policy](./docs/testing.md) for more details.
If proposing a large feature or change, it’s better to discuss it (on the
-`#gtk` IRC channel or on [Discourse](https://discourse.gnome.org) before
+`#gtk` Matrix channel or on [Discourse](https://discourse.gnome.org) before
putting time into writing an actionable issue — and certainly before putting
time into writing a merge request.
@@ -114,7 +120,7 @@ development tools appropriate for your operating system, including:
- Meson
- Ninja
- Gettext (19.7 or newer)
- - a [C99 compatible compiler](https://wiki.gnome.org/Projects/GLib/CompilerRequirements)
+ - a [C99 compatible compiler](./docs/toolchain-requirements.md)
Up-to-date instructions about developing GNOME applications and libraries
can be found on [the GNOME Developer Center](https://developer.gnome.org).
@@ -133,21 +139,12 @@ $ git clone https://gitlab.gnome.org/yourusername/glib.git
$ cd glib
```
-**Note**: if you plan to push changes to back to the main repository and
-have a GNOME account, you can skip the fork, and use the following instead:
-
-```sh
-$ git clone git@gitlab.gnome.org:GNOME/glib.git
-$ cd glib
-```
-
To compile the Git version of GLib on your system, you will need to
configure your build using Meson:
```sh
-$ meson _builddir .
-$ cd _builddir
-$ ninja
+$ meson setup _builddir .
+$ meson compile -C _builddir
```
Typically, you should work on your own branch:
@@ -177,7 +174,7 @@ of each commit between at least two people.
With each code review, we intend to:
0. Identify if this is a desirable change or new feature. Ideally for larger
- features this will have been discussed (in an issue, on IRC, or on Discourse)
+ features this will have been discussed (in an issue, on Matrix, or on Discourse)
already, so that effort isn’t wasted on putting together merge requests
which will be rejected.
0. Check the design of any new API.
@@ -187,7 +184,7 @@ With each code review, we intend to:
adequately tested, either through requiring tests to be submitted at the
same time, or as a follow-up.
0. Ensure that all new APIs are documented and have [introspection
- annotations](https://wiki.gnome.org/Projects/GObjectIntrospection/Annotations).
+ annotations](https://gi.readthedocs.io/en/latest/annotations/giannotations.html).
0. Check that the contribution is split into logically separate commits, each
with a good commit message.
0. Encourage further high quality contributions.
@@ -195,7 +192,7 @@ With each code review, we intend to:
If a code review is stalled (due to not receiving comments for two or more
weeks; or due to a technical disagreement), please ping another GLib core
-developer on the merge request, or on IRC, to ask for a second opinion.
+developer on the merge request, or on Matrix, to ask for a second opinion.
### Commit messages
@@ -272,4 +269,4 @@ GLib to follow a few rules:
If you have been contributing to GLib for a while and you don’t have commit
access to the repository, you may ask to obtain it following the [GNOME account
-process](https://wiki.gnome.org/AccountsTeam/NewAccounts).
+process](https://wiki.gnome.org/Infrastructure/NewAccounts).
diff --git a/HACKING b/HACKING
deleted file mode 100644
index ddeac5889..000000000
--- a/HACKING
+++ /dev/null
@@ -1,17 +0,0 @@
-If you want to hack on the GLib project, you'll need to have the
-following packages installed:
-
- - Meson 0.48.0
- - GNU gettext 0.10.40
- - pkg-config 0.16
- - gtk-doc
- - libffi 3.0.0
-
-To compile a Git version of glib on your system, you will need to take
-several steps to setup the tree for compilation. You can do all these
-steps at once by running:
-
- checkout/glib# meson _build
-
-For information about submitting patches see the CONTRIBUTING.md file. For
-information about major design decisions, see the docs/README.rationale file.
diff --git a/INSTALL.md b/INSTALL.md
index 7683b4cb0..df811fc92 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -4,12 +4,12 @@ Simple install procedure
```sh
tar xf glib-*.tar.gz # unpack the sources
cd glib-* # change to the toplevel directory
-meson _build # configure the build
-ninja -C _build # build GLib
+meson setup _build # configure the build
+meson compile -C _build # build GLib
# Become root if necessary
-ninja -C _build install # install GLib
+meson install -C _build # install GLib
```
Requirements
@@ -87,7 +87,7 @@ in the file:
Or online at:
- https://developer.gnome.org/glib/stable/glib-building.html
+ https://docs.gtk.org/glib/building.html
Installation directories
@@ -127,4 +127,4 @@ in the file:
Or online at:
- https://developer.gnome.org/glib/stable/glib-cross-compiling.html
+ https://docs.gtk.org/glib/cross-compiling.html
diff --git a/LICENSES/LicenseRef-old-glib-tests.txt b/LICENSES/LicenseRef-old-glib-tests.txt
new file mode 100644
index 000000000..d78b44306
--- /dev/null
+++ b/LICENSES/LicenseRef-old-glib-tests.txt
@@ -0,0 +1,16 @@
+This work is provided "as is"; redistribution and modification
+in whole or in part, in any medium, physical or electronic is
+permitted without restriction.
+
+This work 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.
+
+In no event shall the authors or contributors be liable for any
+direct, indirect, incidental, special, exemplary, or consequential
+damages (including, but not limited to, procurement of substitute
+goods or services; loss of use, data, or profits; or business
+interruption) however caused and on any theory of liability, whether
+in contract, strict liability, or tort (including negligence or
+otherwise) arising in any way out of the use of this software, even
+if advised of the possibility of such damage.
diff --git a/NEWS b/NEWS
index 5397eb6d5..a6202af40 100644
--- a/NEWS
+++ b/NEWS
@@ -1,104 +1,982 @@
-Overview of changes in GLib 2.74.4
-==================================
+Overview of changes in GLib 2.78.4, 2024-01-21
+==============================================
+
+* Bugs fixed:
+ - !3754 Backport !3751 “Fix generated RST anchors for methods, signals and
+ properties” to glib-2-78
+ - !3756 docs/reference: depend on a native gtk-doc
+ - !3759 Backport !3753 “gobject_gdb.py: Do not break bt on optimized build” to
+ glib-2-78
+ - !3766 Backport !3750 “gregex: clean up usage of _GRegex.jit_status” to
+ glib-2-78
+
+
+Overview of changes in GLib 2.78.3, 2023-12-06
+==============================================
+
+* Fix a crash-causing regression in xdgmime (#3191, work by Philip Withnall)
+
+* Bugs fixed:
+ - #3191 Crash in __gio_xdg_cache_mime_type_subclass (Philip Withnall)
+ - !3747 Backport !3742 “xdgmime: Update to upstream commit c2c814d4051f232” to
+ glib-2-78
+
+
+Overview of changes in GLib 2.78.2, 2023-12-05
+==============================================
+
+* Bugs fixed:
+ - #3156 check for #ifdef PTRACE_O_EXITKILL will always fail since it isn't a
+ macro (Alessandro Bono)
+ - #3157 gsubprocess build-time test intermittently timing out since 2.78.1
+ (Simon McVittie)
+ - !3673 Backport !3669 “meson: Improve PTRACE_O_EXITKILL presence check” to
+ glib-2-78
+ - !3680 Backport !3677 “Make GQuark register intentional leaks” to glib-2-78
+ - !3681 Backport 3678 “gsignalgroup: Avoid function call with side effect in
+ g_return_* macro” to glib-2-78
+ - !3686 Backport !3685 “tests: Don't assume that sh optimizes simple commands
+ into exec” to glib-2-78
+ - !3718 Backport !3714 “xdgmime: Handle buggy type definitions with circular
+ inheritance” to glib-2-78
+ - !3727 Backport !3725 “collate: Don't segfault on bad input” to glib-2-78
+
+* Translation updates:
+ - Ukrainian (Yuri Chornoivan)
+
+
+Overview of changes in GLib 2.78.1, 2023-10-25
+==============================================
+
+* Fix truncating files when `g_file_set_contents_full()` is called without
+ `G_FILE_SET_CONTENTS_CONSISTENT` (#3144, work by Philip Withnall)
+
+* Fix `-Dlibelf=disabled` on Linux (#3120, work by Philip Withnall)
+
+* Bugs fixed:
+ - #3105 NetworkManager 1.44.0 crashes repeatedly with glib 2.78.0 (Philip
+ Withnall)
+ - #3111 gsubprocess-testprog.c: build error with cygwin (sys/ptrace.h: No such
+ file or directory) (Philip Withnall)
+ - #3116 gio clears modification time in microseconds when setting with
+ `set_modification_date_time` (Lukáš Tyrychtr)
+ - #3120 Build of glib 2.78.0 ignores -Dlibelf=disabled (Philip Withnall)
+ - #3128 glib-2.78.0 fails at gio/tests/gsubprocess.p/gsubprocess.c.o
+ - #3130 Segfault when creating GIO GPropertyAction without properties
+ - #3144 `g_file_set_contents_full()` doesn't truncate the file (without
+ `G_FILE_SET_CONTENTS_CONSISTENT`) (Philip Withnall)
+ - !3576 guniprop.c: Avoid creating (temporarily) out-of-bounds pointers
+ - !3579 Fixes for integer cast warnings when targeting CHERI
+ - !3580 Fix test_find_program on FreeBSD
+ - !3589 gconstructor.h: Ensure [c|d]tor prototypes are present for MSVC (Chun-
+ wei Fan)
+ - !3594 Fix gutils-user-database test on macOS
+ - !3596 Add value annotation to G_TYPE_FUNDAMENTAL_MAX
+ - !3601 meson: Fix Windows build with PCRE2 as sibling subproject
+ - !3604 Backport !3589 “gconstructor.h: Ensure [c|d]tor prototypes are present
+ for MSVC” to glib-2-78
+ - !3608 Backport !3587 “glocalfileinfo: Preserve microseconds for
+ access/modify times” to glib-2-78
+ - !3609 Backport !3607 “Make sure the `GTask` is freed on a graceful
+ disconnect” to glib-2-78 (Pavel Sobolev)
+ - !3614 Backport !3582 “Buffer needs to be aligned correctly to receive
+ linux_dirent64.” to glib-2-78
+ - !3616 Backport !3590 “gtestutils.h: Fix warning with -Wsign-conversion
+ caused by g_assert_cmpint” to glib-2-78
+ - !3619 Backport !3617 “tests: Drop unnecessary include from gsubprocess-
+ testprog.c” to glib-2-78
+ - !3622 Backport !3621 “wakeup: do single read when using eventfd()” to
+ glib-2-78
+ - !3625 Backport !3624 “wakeup: Fix g_wakeup_acknowledge if signal comes in”
+ to glib-2-78
+ - !3644 Backport !3633 “Use g_task_return in task threads” to glib-2-78
+ - !3649 Backport !3648 “build: Fix -Dlibelf=disabled on Linux” to glib-2-78
+ - !3659 Backport !3650 “gfileutils: Add a missing ftruncate() call when
+ writing files” to glib-2-78
+
+* Translation updates:
+ - Catalan (Jordi Mas i Hernandez)
+ - Chinese (China) (Boyuan Yang)
+ - Czech (Daniel Rusek)
+ - Esperanto (Kristjan SCHMIDT)
+ - French (Alexandre Franke)
+ - Georgian (Ekaterine Papava)
+ - Italian (Milo Casagrande)
+ - Latvian (Rūdolfs Mazurs)
+ - Portuguese (Brazil) (Rafael Fontenelle)
+ - Romanian (Daniel Șerbănescu)
+ - Russian (Artur S0)
+ - Slovenian (Matej Urbančič)
+ - Spanish (Daniel Mustieles)
+ - Turkish (Sabri Ünal)
+
+
+Overview of changes in GLib 2.78.0, 2023-09-08
+==============================================
+
+* Bugs fixed:
+ - #3095 Error handling of invalid GKeyFile string escape sequences changed in
+ GLib 2.77.3 (Philip Withnall)
+ - !3559 gdb: Workaround optimized out quark_seq_id
+ - !3561 meson: fix `gnetworking.h` install tag
+ - !3562 gthread: Annotate g_thread_exit() with G_NORETURN
+ - !3564 Fix gutils-user-database unit test
+
+* Translation updates:
+ - Basque (Asier Sarasua Garmendia)
+ - Czech (Vojtěch Perník)
+ - Danish (Alan Mortensen)
+ - English (United Kingdom) (Bruce Cowan)
+ - Galician (Fran Dieguez)
+ - Georgian (Ekaterine Papava)
+ - German (Philipp Kiemle, Jürgen Benvenuti)
+ - Hebrew (Yosef Or Boczko)
+ - Hungarian (Balázs Úr)
+ - Indonesian (Andika Triwidada)
+ - Korean (Changwoo Ryu)
+ - Lithuanian (Aurimas Černius)
+ - Persian (Danial Behzadi)
+ - Polish (Piotr Drąg)
+ - Swedish (Anders Jonsson)
+ - Turkish (Emin Tufan Çetin)
+ - Ukrainian (Yuri Chornoivan)
+
+
+Overview of changes in GLib 2.77.3, 2023-08-31
+==============================================
+
+* Bugs fixed:
+ - #2575 GSettings schemas default value translations don't work when using
+ l10n=time (Michael Catanzaro)
+ - #3032 gdbus-codegen eats indentation in RST in XML comments (André)
+ - #3051 g_dbus_connection_export_menu_model() is not thread_safe
+ - #3061 Possible SEGV (null pointer deref) in distribute_method_call() (Philip
+ Withnall)
+ - #3083 `arg_data` in GOptionEntry is not a list (Philip Withnall)
+ - #3090 Possible SEGV (null pointer deref) in _g_resource_file_new() (Philip
+ Withnall)
+ - !3459 glib-unix: Clean up use of O_NONBLOCK
+ - !3503 interim solution for macOS CI
+ - !3519 meson: warn if -mms-bitfields is necessary
+ - !3526 gnetworkaddress: use reentrant getservbyname_r() if available
+ - !3527 tests: Use g_assert_*() rather than g_assert() in tree tests
+ - !3528 gio-tool-info: Move translator comments so they’re visible
+ - !3530 gregex: set default max stack size for PCRE2 JIT compiler to 512KiB
+ - !3532 tests: Disable use of ptrace() in tests on BSD and macOS
+ - !3533 ci: Only run pages CI job on scheduled job runs
+ - !3534 ci: Further fix to pages CI job
+ - !3535 Use 'meson setup' to configure
+ - !3538 glib-unix: Accept O_CLOEXEC as well as FD_CLOEXEC in
+ g_unix_open_pipe()
+ - !3540 gio: Add gresource.dtd
+ - !3541 gtestutils: Mention not ignoring SIGCHLD in g_test_trap_subprocess()
+ docs
+ - !3542 [th/gchildwatch-fail-message] gmain: improve g_warning() for failure
+ in g_child_watch_dispatch()
+ - !3543 [th/use-localtime-r] use localtime_r() in g_log_writer_format_fields()
+ - !3545 gregex: if JIT stack limit is reached, fall back to interpretive
+ matching
+ - !3547 glib/gfileutils.c: use 64 bits for value in get_tmp_file()
+ - !3550 glib/tests/asyncqueue.c: skip test_async_queue_timed in 2038 or later
+ - !3553 Generate missing docs for out arguments
+ - !3555 gkeyfile: Fix overwriting of GError
+
+* Translation updates:
+ - Basque (Asier Sarasua Garmendia)
+ - Kazakh (Baurzhan Muftakhidinov)
+ - Panjabi (Amn Alam)
+ - Persian (Danial Behzadi)
+ - Swedish (Anders Jonsson)
+
+
+Overview of changes in GLib 2.77.2, 2023-08-12
+==============================================
+
+* Bugs fixed:
+ - #3071 g_test_trap_subprocess and g_test_subprocess broken in 2.77.1 (Jonas
+ Ådahl)
+ - !3432 ci: Don’t run pipeline after merging a MR
+ - !3520 Fix typos
+ - !3521 GTree: Handle node counter overflow and return it as an unsigned value
+ - !3523 gspawn, gdataset: Restore nullable callback functions
+
+* Translation updates:
+ - Chinese (China) (Luming Zh)
+ - Galician (Fran Dieguez)
+ - Indonesian (Kukuh Syafaat)
+ - Polish (Piotr Drąg)
+ - Portuguese (Hugo Carvalho)
+ - Russian (Artur So)
+ - Spanish (Daniel Mustieles)
+ - Turkish (Sabri Ünal)
+
+
+Overview of changes in GLib 2.77.1, 2023-07-30
+==============================================
+
+* Fix some regressions with `GKeyFile` comment handling (#3047, work by Gaël Bonithon)
+
+* Improve handling of query and fragment components in `file:` URIs (#3050, work by Lukáš Tyrychtr)
+
+* Bugs fixed:
+ - #473 systemtap probes for gvariant (Allison Karlitskaya)
+ - #623 g_type_query() doesn't work for dynamic types (Philip Withnall)
+ - #931 Optimise GPrivate by removing one malloc (Allison Karlitskaya)
+ - #2929 gio: Failing build due to race generating glib/gversionmacros.h (Eric
+ van Gyzen)
+ - #3045 2.77.0: gio pkg-config test has incorrect install location for gio-
+ querymodules & glib-compile-schemas (Philip Withnall)
+ - #3047 2.77.0 changes formatting of keyfiles (Gaël Bonithon)
+ - #3048 Forcing fallback for libintl does not work (Brendan Shanks)
+ - #3050 g_file_new_for_uri() handles query strings incorrectly ("?") (Lukáš
+ Tyrychtr)
+ - #3054 Fedora installer (anaconda) crashes early with glib 2.77.0 due to
+ "Attempt to unlock mutex that was not locked", when it runs `hwclock` and
+ changes the system time (Thomas Haller, Philip Withnall)
+ - !3287 Audit and fix incorrect use of (closure) in glib
+ - !3461 gfileinfo: add file_path methods for language bindings
+ - !3485 docs: Expand supported platforms documentation a little
+ - !3494 ci: Manually fetch submodules for style-check CI jobs
+ - !3495 gdbus-codegen: Error on invalid dbus types
+ - !3496 garray: Fix typo in doc comment of g_ptr_array_sort[_with_data]()
+ - !3499 strfuncs: Add missing ownership annotations for returned string
+ vectors
+ - !3504 Revert "build/gmodule-2.0.pc: Move compiler flags from Libs to Cflags"
+ - !3505 meson: help gobject-introspection locate source and build dirs
+ - !3509 build-sys: drop -mms-bitfields GCC flag
+ - !3510 testutils: Use prctl PR_SET_DUMPABLE to silence core dumps on Linux
+ - !3514 Revert "build-sys: drop -mms-bitfields GCC flag"
+ - !3515 gnetworkmonitor: Expand guidelines for metered data use
+ - !3517 tests: Add some more tests for g_type_query()
+ - !3518 m4macros: drop unused m4 files
+
+* Translation updates:
+ - Georgian (Ekaterine Papava)
+ - Hebrew (Yosef Or Boczko)
+ - Hungarian (Balázs Úr)
+ - Persian (Danial Behzadi)
+ - Slovenian (Matej Urbančič)
+ - Ukrainian (Yuri Chornoivan)
+
+
+Overview of changes in GLib 2.77.0, 2023-07-06
+==============================================
+
+* Fix `GSocketClient` connecting to a proxy if the port is not specified
+ (#2832, work by Michael Catanzaro)
+
+* Support using `copy_file_range()` in `g_file_copy()`, if available (#2863,
+ work by Philip Withnall)
+
+* Improve handling of comments above groups in key files (#2927,
+ work by Gaël Bonithon)
+
+* Re-upgrade missing attribute debugs to criticals in `GFileInfo` (#2951,
+ work by Philip Withnall)
+
+* Do not redefine NULL on C++ (#2973, work by Marco Trevisan)
+
+* Make `g_signal_handlers_block_matched()` work for `G_SIGNAL_MATCH_ID`
+ (#2980, work by Przemyslaw Gorszkowski)
+
+* Fixes to support building with bionic libc better (#3008, work by Øyvind Kolås)
+
+* Fix potential stack overflow in gspawn on macOS if open file limit is very
+ high (#3024, work by Dario Saccavino)
+
+* Fix support for `--force-fallback-for libpcre` in meson configuration (#3025,
+ work by Marius Kintel)
+
+* Generate specific marshallers in `gdbus-codegen` (#3028, work by Marco Trevisan)
+
+* Fix build failure on Android with `statx()` support (#3039, work by Philip Withnall)
+
+* Improve locking performance of `GSignal` (!2824, work by Marco Trevisan)
+
+* Improve locking performance of `g_main_context_iterate()` (!3235, work by
+ Marco Trevisan)
+
+* Add an inline definition of `g_free()` to automatically use `g_free_sized()`
+ if available (!3252, work by Marco Trevisan)
+
+* Fix race with `waitpid()` and `GChildWatchSource` (!3353, work by Thomas Haller)
+
+* Add `glib_valgrind_suppressions` variable to glib pkg-config file (!3361, work
+ by Marco Trevisan)
+
+* Fix build on macOS SDK 10.11 (!3385, work by Peter Williams)
+
+* Switch to using a separate thread pool and support timeouts in
+ `GThreadedResolver` (!3397, work by Philip Withnall)
+
+* Track pending `GTask`s if `G_ENABLE_DEBUG` is defined (!3404, work by Philip Withnall)
+
+* Support GSignal fast path and more marshallers in `gobject_gdb.py` (!3437,
+ work by Nelson Ben)
+
+* Disable the macOS CI because it’s too unreliable — if you rely on GLib working
+ on macOS, please get in touch and do something to help! (!3463, decision taken
+ by Philip Withnall)
+
+* Bugs fixed:
+ - #65 glib-mkenums: parse_trigraph() chokes on quoted commas (Emmanuel Fleury)
+ - #95 GMarkupParser documentation completion (David King)
+ - #98 g_get_current_dir SIGSEGV on long path (Philip Withnall)
+ - #104 Invocation of the interface "g_key_file_remove_comment" does not remove
+ comment in specific case (Gaël Bonithon)
+ - #116 Document UTF-8 behaviour and requirements throughout GLib (Philip
+ Withnall)
+ - #252 Disagreement between runtime and docs on whether interfaces are
+ "classed" (Philip Withnall)
+ - #322 gdbus-example-proxy-subclass.c is not complete. (Colin Walters)
+ - #799 GAppInfoMonitor documentation deficiencies (Philip Withnall)
+ - #1264 Use-after-free under
+ send_message_with_reply_cleanup():gdbusconnection.c:1792 (Philip Withnall)
+ - #2289 Document clearly that libgio is not guaranteed to be safe to use in
+ setuid processes (Philip Withnall)
+ - #2307 mainloop test leaks a GMainLoop object (Philip Withnall)
+ - #2829 "glib-compile-resources --dependency-file=DEPFILE" creates wrong set
+ of dependencies (Michael Catanzaro)
+ - #2832 GSocketClient cannot proxy connect unless default port is explicitly
+ specified in proxy URL (Michael Catanzaro)
+ - #2855 gio/tests/socket-client.c name is too confusing because it does not
+ use GSocketClient (Mike Salmela)
+ - #2861 Check for __kernel_long_t when enabling futex()
+ - #2863 Use copy_file_range() whenever possible in g_file_copy (Philip
+ Withnall)
+ - #2864 Documentation mentions non-existing function `g_value_free` (Philip
+ Withnall)
+ - #2879 Job #2498619 failed: gio/tests/socket.c:1654:test_reuse_tcp: assertion
+ failed (error == (g-io-error-quark, 33)): error is NULL (Philip Withnall)
+ - #2927 GKeyFile: Inconsistent behavior of comment writing above a group (Gaël
+ Bonithon)
+ - #2939 mkenums.py test fails on FreeBSD (Philip Withnall)
+ - #2951 Re-upgrade missing attribute debugs to criticals in GFileInfo (Philip
+ Withnall)
+ - #2952 Not clear that GPollableInputStream methods are undefined if
+ can_poll() returns FALSE (Philip Withnall)
+ - #2953 Missing docs for GOption (commandline parser) (Sam Thursfield)
+ - #2958 nbd server fails with glib 2.76.0
+ - #2960 GDebugControllerDBus wrong default in documentation (Philip Withnall)
+ - #2963 Probably wrong information regarding G_PLATFORM_WIN32 in
+ README.win32.md
+ - #2965 test_measure fails with coreutils 9.2 (Joan Bruguera)
+ - #2966 Multiple Definition Error When Generating gio/tests/test5.gresource
+ (Dan Yeaw)
+ - #2969 user docs: GLib.DateTime.format: broken highlighting (Philip Withnall)
+ - #2972 GtkFileLauncher: generated paths not recognized on Win32 (Luca Bacci)
+ - #2973 Build failed due to NULL pointer redefinition in C++ (Marco Trevisan
+ (Treviño))
+ - #2980 g_signal_handlers_block_matched does not work for G_SIGNAL_MATCH_ID
+ (Przemyslaw Gorszkowski)
+ - #2982 Build randomly fails with: 'gmodule/gmodule-visibility.h' file not
+ found (Marco Trevisan (Treviño))
+ - #2993 g_dbus_interface_skeleton_get_vtable misses transfer annotation and is
+ not introspectable
+ - #2997 g_assert_cmpuint() should display positive, not negative values (Eric
+ Blake)
+ - #3003 glib-compile-schemas failed on directory name with no Latin symbols
+ (Daniyar Tleulin)
+ - #3007 GOptionContext group headings missing colon at the end (Philip
+ Withnall)
+ - #3008 Adaptations for building with bionic libc under termux (Øyvind Kolås)
+ - #3020 Races in gio/tests/portal-support-snap* tests
+ - #3024 Possible stack overflow in gspawn on MacOS
+ - #3025 libpcre and libintl cannot be chosen to use the builtins
+ - #3027 action exporter fails in the presence of actions with maybe parameter
+ types (Matthias Clasen)
+ - #3028 gdbus-codegen should generate marshallers (Marco Trevisan (Treviño))
+ - #3030 Document GListModel requiring unique instance pointers from
+ GListModelInterface.get_item (Christian Hergert)
+ - #3034 futex based g_mutex_lock sometimes splatters errno with EAGAIN on
+ contended locks
+ - #3039 Build failure due to statx fields with NDK r25.c (Philip Withnall)
+ - #3040 gtester in custom_target() run against system rather than built
+ libglib during build
+ - !2824 gsignal: Reduce lock/unlock pairs and ensure we always work on valid
+ signal nodes
+ - !3146 Make GVariant/GHash opaque types compatible with CHERI
+ - !3235 gmain: Avoid some lock/unlock dance during g_main_context_iterate
+ - !3252 gmem: Add an inline definition of g_free() to automatically use
+ g_free_sized()
+ - !3289 Work around an UCRT issue with _wspawn() functions taking an envp
+ block
+ - !3306 gregistrysettingsbackend: Allow a different root key path
+ - !3308 doc: Workaround missing API index
+ - !3314 gmain: More explicitly document g_main_context_release() prereqs
+ - !3326 unicode: add tests for g_utf8_normalize() and empty strings
+ - !3333 build: Drop old .gitignore files from test directories
+ - !3335 meson: allow -Dlibelf=enabled without pkg-config
+ - !3337 gio-tool-info: Fix a duplicate attribute name in the UI
+ - !3340 meson: Move msvc_recommended_pragmas.h to a subdirectory
+ - !3341 g_utf8_normalize: don't read past the end of the buffer
+ - !3342 Add fuzzing harness for g_utf8_normalize()
+ - !3344 tools: Drop check-abis.sh script
+ - !3345 docs: Drop section about default branch renaming from README.md
+ - !3347 gsocket/inotify/gwakeup: Use SOCK_NONBLOCK and O_NONBLOCK to avoid
+ fcntl() syscalls where possible
+ - !3351 tests: Update Unicode normalisation tests from Unicode 15
+ - !3352 meson: Fix detection of a system-provided proxy-libintl
+ - !3353 [th/child-watch-waitpid] fix race with waitpid() and child watcher
+ sources
+ - !3356 build/gmodule-2.0.pc: Move compiler flags from Libs to Cflags
+ - !3357 Make clang++ happier when using G_STATIC_ASSERT
+ - !3361 meson: Add glib_valgrind_suppressions variable to glib pkg-config file
+ - !3365 gwin32: Avoid use of function call with side effect in g_return_*
+ macro
+ - !3366 Add init macros for refcounting types
+ - !3367 actiongroup: Add a compiler warning
+ - !3371 Explicitly mark size parameter as (in)
+ - !3377 gsignal: Clarify documentation for GSignalMatchType matching
+ - !3378 build: Post-release version bump
+ - !3381 gtimer: Avoid doing anything on g_usleep (0)
+ - !3382 gsocket: Explicitly mark size parameter as (in)
+ - !3383 add g_timeout_add_seconds_once
+ - !3384 Test g_signal_handlers_disconnect_matched for G_SIGNAL_MATCH_ID match
+ - !3385 gio: fix build on older macOS SDKs
+ - !3388 appmonitor: Skip the test under OSX
+ - !3389 glib/tests/[rec-]mutex: Allow each thread to work
+ - !3390 Fix error format in gio/gunixconnection.c (part 2)
+ - !3392 gvariant: Fix doc for g_variant_new_object_path
+ - !3393 Fix small issues in docs
+ - !3395 gtask: Document that g_task_run_in_thread() uses a shared resource
+ - !3396 glib-unix: Improve documentation for g_unix_fd_source_new()
+ - !3397 gthreadedresolver: Switch to using a separate thread pool and support
+ timeouts
+ - !3398 Avoid having g_futex_simple() inadvertently modify errno
+ - !3399 meson: wrap html documentation generation with gtk_doc option
+ - !3400 restore error messages in gunixconnection while maintaining older
+ compiler support
+ - !3401 ci: Disable the Coverity CI job
+ - !3404 gtask: Track pending GTasks if G_ENABLE_DEBUG is defined
+ - !3405 gthreadedresolver: Remove some incorrect assertions
+ - !3406 gthreadpool: Clarify that item_free_func is not normally called
+ - !3407 gregistrysettingsbackend: Remove translatable pspec nick/blurb
+ - !3408 docs: Update/Drop txt documents from docs directory
+ - !3409 docs: Don’t ignore gunixfdlist.h when building docs on Windows
+ - !3410 tests: Add descriptions to environment tests
+ - !3416 gtestutils: Fix section marker in documentation
+ - !3418 docs: Add lb90 as a Windows maintainer
+ - !3419 docs: Update various broken/redirected links and fix list formatting
+ - !3420 gtestutils: print timing information per test case in TAP output
+ - !3421 glib/tests/fileutils:fix asserts when running as root
+ - !3422 Check for linux/netlink.h buildability
+ - !3423 gstring: add g_string_new_take
+ - !3425 gwin32networkmonitor: Fix returning address of local variable
+ - !3426 gdataset, gobject: Use atomic compare and exchange full to set
+ pointers
+ - !3429 Rename GTK+ to GTK (mostly comments and documentation)
+ - !3430 gobject_gdb.py: fix regression caused by bfbe7127d5
+ - !3431 gfile: Ensure loff_t is defined on FreeBSD
+ - !3435 Ignore g_task_print_alive_task() when introspecting GIO
+ - !3437 gobject_gdb.py: support gsignal fastpath and detect more marshallers
+ - !3438 gio: Check cancellable iterating local file enumerator
+ - !3439 gstring: Add `Since` marker to `g_string_new_take()`
+ - !3440 gutf8: Add a g_utf8_truncate_middle() function
+ - !3441 Allow proper introspection of GTypeValueTable
+ - !3442 gio: Add g_file_new_build_filenamev
+ - !3448 meson: try iconv in libintl lookup
+ - !3449 docs: Move README.win32.md to the docs folder and update
+ CONTRIBUTING.md
+ - !3450 gactionmap: Add g_action_map_remove_action_entries()
+ - !3453 docs: Use the type name as the section name for GKeyFile
+ - !3455 gfileinfo: add (type filename) annotation to symlink_target functions
+ - !3456 gmain: Document that g_steal_fd() preserves errno
+ - !3458 gstdio: Improve documentation of some functions as async-signal safe
+ - !3462 tests: Reduce thread and iteration count on CI for /thread/rec-mutex3
+ - !3463 ci: Disable the macOS CI
+ - !3465 gobject_gdb.py: adapt to recent gsignal changes
+ - !3466 resolver: Add space in documentations
+ - !3470 pcre subproject fixes: Allow fallback & static build
+ - !3471 gio-tool-mount: Add option to show progress when unmounting
+ - !3472 tests: Fix an intermittent timing error with testing g_usleep(0)
+ - !3477 gdbus-codegen: Fix some minor typos in the documentation
+ - !3484 docs: Fix a typo in the backports policy
+ - !3486 docs: Document issue and merge request triaging and review guidelines
+ - !3488 codegen: Use g_signal_emit to emit signals
+ - !3489 guniprop: fix param direction in g_unichar_get_mirror_char(), for
+ introspection
+ - !3490 gobject/tests: Fix running on 32-bit Windows
+
+* Translation updates:
+ - Bulgarian (Alexander Shopov)
+ - Chinese (China) (Boyuan Yang)
+ - English (United Kingdom) (Bruce Cowan)
+ - Galician (Fran Dieguez)
+ - Portuguese (Brazil) (Leônidas Araújo)
+ - Slovak (Dušan Kazik)
+ - Swedish (Anders Jonsson)
+ - Turkish (Sabri Ünal)
+
+
+Overview of changes in GLib 2.76.1, 2023-03-22
+==============================================
+
+* Fix build failures in third party C++ projects using `g_strdup()` via C++
+ qualified symbol lookup (#2936, work by Xi Ruoyao)
+
+* Downgrade critical warnings from `GFileInfo` about missing attributes to debug
+ messages, as it was affecting too many apps; the critical warnings will be
+ reinstated early in the 2.78 cycle, so apps should continue to fix their
+ ambiguous use of `GFileInfo` API (#2948, work by Philip Withnall)
+
+* Bugs fixed:
+ - #159 g_strstr_len() ignores haystack_len (Philip Withnall)
+ - #352 Docs for g_file_enumerator_next_files_async () are unclear about end
+ condition (Owen Taylor)
+ - #919 g_variant_dict_lookup is unclear about what happens on failure (Philip
+ Withnall)
+ - #2922 GWin32AppInfo: Missing NULL string check (Luca Bacci)
+ - #2936 Possible regression in 2.75.3 when used from C++ due to g_strdup
+ becoming a macro
+ - #2943 Meson fails TAP test when g_test_message is called before g_test_init
+ (Philip Withnall)
+ - #2948 gio list triggers 'GFileInfo created without …' warnings for trash,
+ smb and google-drive GVFS backends (Philip Withnall)
+ - !3241 inotify: Avoid empty root directory string
+ - !3315 tests: Change the time function used in the bookmark tests
+ - !3318 gmacros: Add GCC < 5 fallback for __always_inline__
+ - !3319 fuzzing: do not build tests if build_tests is false
+ - !3321 tests: only build messages-low-memory if RTLD_NEXT is available
+ - !3323 tests: Fix timeout sources in gdbus-auth and gapplication tests
+ - !3324 tests: Reduce number of iterations in queue test
+ - !3325 gdesktopappinfo: Add a missing NULL check
+ - !3330 tests: Check a few results in strfuncs tests
+ - !3338 gfileinfo: Temporarily downgrade missing attribute criticals to debugs
+
+* Translation updates:
+ - French (Guillaume Bernard)
+ - Persian (Danial Behzadi)
+ - Turkish (Sabri Ünal)
+
+
+Overview of changes in GLib 2.76.0, 2023-03-10
+==============================================
+
+* Fix several regressions in handling `GFileInfo` attributes (#2932, #2934,
+ work by Ondrej Holy and Philip Withnall)
+
+* Bugs fixed:
+ - #2932 ETAG_VALUE not set in GFileInfo when requested (Philip Withnall)
+ - #2934 File attributes are not set when their value is FALSE/NULL (Philip
+ Withnall)
+ - !3309 gfile: Fix file size detection when copying on btrfs
+ - !3310 glocalfileinfo: Mark the lost+found dir as hidden again
+ - !3311 glocalfileinfo: Ensure that is-backup is always set
+
+* Translation updates:
+ - Bulgarian (Alexander Shopov)
+ - Catalan (Jordi Mas i Hernandez)
+ - Czech (Marek Černocký)
+ - German (Tim Sabsch)
+ - Korean (Changwoo Ryu)
+ - Polish (Piotr Drąg)
+ - Russian (Aleksandr Melman)
+ - Turkish (Sabri Ünal)
+
+
+Overview of changes in GLib 2.75.4, 2023-03-03
+==============================================
+
+* Emit a critical warning when acquiring the notification queue during GObject
+ finalization. A type's `finalize()` implementation should not call public
+ API that emits property notifications. (!3119, work by Marco Trevisan and Emmanuele Bassi)
+
+* Bugs fixed:
+ - #2720 Fails to create resource.o with LLVM ld
+ - #2905 [MSVC] gstring.h: warning C4141: 'inline': used more than once
+ - #2907 g_file_info_get_name returns NULL in contradiction to docs (Philip
+ Withnall)
+ - #2913 `glib:glib / error` fails with Glibc-2.37 (Philip Withnall)
+ - #2915 Python tests fail on Windows when an environment variable contains
+ non-ASCII characters (Luca Bacci)
+ - #2916 gdbus: Never buffer reads during server authentication
+ - #2918 2.75.3: array-test fails on big-endian CPUs (Simon McVittie)
+ - #2919 2.75.3: g_string_append_len_inline: error: implicit conversion changes
+ signedness
+ - #2924 Use-after-free of GDBusMethodInvocation in GDBusInterfaceSkeleton
+ (Philip Withnall)
+ - !3168 GWin32AppInfo: Retrieve display name for UWP / Packaged apps
+ - !3273 Revert "Revert "tests: Temporarily disable socket test due to a kernel
+ bug""
+ - !3275 tests: Add a -Wsign-conversion test for gstring.h
+ - !3279 tests: Don’t run the GObject performance tests under valgrind
+ - !3280 ci: Use Meson 1.0.0 on Windows and macOS CI builds
+ - !3281 tests: Remove custom printerr logging from live-g-file
+ - !3282 spawn-test: Use an absolute path to the system sort.exe on Windows
+ - !3283 Make sure new file descriptors have close-on-exec flag set on them in
+ a race-free way
+ - !3284 Allow passing a `NULL` item to `g_list_store_find_with_equal_func()`
+ - !3288 spawn-test: Fix running on non-English Windows
+ - !3290 g_type_name: Fix return annotation
+ - !3292 Close-on-exec flag few missed places
+ - !3294 gio/tests/cxx.cpp: fix missing sentinel for musl
+ - !3295 tests: Add some missing g_thread_join() calls to onceinit test
+ - !3296 gdbusconnection: Explicitly destroy an idle source on cleanup
+ - !3299 Update the NEWS file
+ - !3301 GObject: Add nullable annotations
+ - !3304 tests: Skip assert-msg-test.py if gdb fails
+ - !3305 Fix a memory leak in g_strerror
+
+* Translation updates:
+ - Basque (Asier Sarasua Garmendia)
+ - Danish (Alan Mortensen)
+ - Galician (Fran Dieguez)
+ - Georgian (Ekaterine Papava)
+ - German (Tim Sabsch)
+ - Hebrew (Yaron Shahrabani)
+ - Hungarian (Balázs Úr)
+ - Indonesian (Kukuh Syafaat)
+ - Lithuanian (Aurimas Černius)
+ - Portuguese (Hugo Carvalho)
+ - Serbian (Марко Костић)
+ - Slovenian (Matej Urbančič)
+ - Spanish (Daniel)
+ - Swedish (Anders Jonsson)
+ - Turkish (Sabri Ünal, Emin Tufan Çetin)
+ - Ukrainian (Yuri Chornoivan)
+
+
+Overview of changes in GLib 2.75.3, 2023-02-13
+==============================================
+
+* Drop the implementation of GSlice, and make the API use the system `malloc()`
+ internally (#1079) (based on investigation work by multiple people)
+
+* Use a thread-spawning thread to keep thread scheduler settings consistent;
+ fixes GThreadPool critical warnings due to failing to set scheduler settings
+ in some situations (#2769, work by Sebastian Dröge and others)
+
+* GIR annotation improvements for multiple APIs (#2827, #2894, #2895, #2897,
+ !3198, !3234, !3236, !3238, !3245, !3266, work by multiple people)
+
+* Optimise printing of nested maybes in `g_variant_print()` (#2862, work by Philip Withnall)
+
+* Use `tap` test protocol within GLib, and support TAP 13/14 (!3140, work by Marco Trevisan)
+
+* Fix a regression in glib-compile-schemas 2.75.2 causing schemas and override
+ files to be sorted incorrectly (!3188, spotted by John Wudrick, work by Philip Withnall)
+
+* Support per-desktop overrides in `GSettingsAction` (!3193, work by Philip Withnall)
+
+* Various optimisations to `GString` (!3199, work by Matthias Clasen and Marco Trevisan)
+
+* Reduce allocations in message printing functions if there’s nothing to format (!3205, work by Marco Trevisan)
+
+* Add inline version of `g_strdup()`, allowing the compiler to do `NULL` folding
+ and constant folding on `strlen()` calls (!3209, work by Marco Trevisan)
+
+* Add a `GPathBuf` API for building and manipulating file paths (!3216, work by Emmanuele Bassi)
+
+* Add `g_string_free_and_steal()` and use it to warn on unused results from
+ `g_string_free (_, FALSE)` (!3219, !3226, work by Matthias Clasen and Sergey Bugaev)
+
+* Add `g_free_sized()` and `g_aligned_free_sized()` to mirror the upcoming
+ `free_sized()` function in C23; use these if porting away from `g_slice_free()`
+ (!3231, work by Philip Withnall)
+
+* Fix underspecified dependencies on generated headers in `meson.build`, which
+ should reduce spurious build failures (!3260, work by Eli Schwartz)
+
+* Bugs fixed:
+ - #1079 Investigate dropping or deprecating the GSlice allocator (Natanael
+ Copa)
+ - #2769 GThreadPool crashes with: Failed to set scheduler settings: Operation
+ not permitted (Sebastian Dröge)
+ - #2827 Callback parameters get wrong attributes in gir files
+ - #2862 fuzz_variant_text: Timeout in fuzz_variant_text when printing nested
+ maybes
+ - #2876 g_find_program_for_path is public ABI but not declared in a public
+ header (Philip Withnall)
+ - #2877 glib/tests/array-
+ test.c:1828:pointer_array_new_from_null_terminated_array_from_gstrv:
+ 'g_ptr_array_index (gparray, 4)' should be NULL (Simon McVittie)
+ - #2881 Invalid read of size 4 in get_matched_substring_number (Philip
+ Withnall)
+ - #2883 g_file_set_contents fails on mingw64 with "no error" if file size >
+ INT_MAX (CCode)
+ - #2890 g_string_append() macro evaluates arguments multiple times (Marco
+ Trevisan (Treviño))
+ - #2891 Memory leak in "gio/win32/gwin32fsmonitorutils.c" (Philip Withnall)
+ - #2892 Memory leak in "gio/gwin32mount.c" (Philip Withnall)
+ - #2894 g_value_take_string: wrong ownership transfer info in GIR (Lukáš
+ Tyrychtr)
+ - #2895 g_io_channel_get_line_term: wrong GIR (Bart Jacobs)
+ - #2897 g_time_zone_adjust_time: GIR says gint64 but it's gint64* (Bart
+ Jacobs)
+ - #2898 g_print replaces non-ascii characters with question mark
+ - #2900 msys2-clang64: g_spawn_[a]sync() fails in clang builds when envp is
+ not NULL
+ - #2901 g_app_info_get_executable doesn't work well on latest Ubuntu with
+ Firefox installed as snap
+ - #2908 Crash when creating GtkTextView with G_DEBUG=gc-friendly (Marco
+ Trevisan (Treviño))
+ - #2914 Should GPathBuf split on both directions of slashes on Windows? (Simon
+ McVittie)
+ - GNOME/gimp#9094 devel: None of the extensions and plugins load in Clang
+ builds
+ - !3140 meson: Use 'tap' test protocol and support TAP 13/14
+ - !3184 build: Don't overwrite build variables
+ - !3185 Include gobject-visibility.h in glib-types.h
+ - !3187 tests/desktop-app-info: fix stack-use-after-scope
+ - !3188 glib-compile-schemas: Fix typo in comparison function
+ - !3189 docs: Fix return type in cmpint
+ - !3191 tests: Improve error message if setting max processes to 1 fails
+ - !3192 garray: Avoid calling memcpy with no items
+ - !3193 gsettings: Support per-desktop overrides in GSettingsAction
+ - !3196 gio/tests/file.c:Fix expectations when running as root
+ - !3198 Fix a couple of `closure` annotations
+ - !3199 Some GString optimizations
+ - !3203 GTask: Document issues
+ - !3205 gmessages: Avoid strings duplication if there's nothing to format
+ - !3206 tests: Add a test print to spawn-test on Windows
+ - !3207 tests: Fix a minor leak in the GString tests
+ - !3209 gstrfuncs: Add inline version of g_strdup()
+ - !3216 Add GPathBuf
+ - !3219 Add g_string_free_and_steal
+ - !3221 TAP: some further cleanups
+ - !3223 Add a few suppressions to glib.supp and fix a minor bug in
+ gapplication test
+ - !3224 gtestutils: Fix a potential NULL pointer dereference in g_test_log()
+ - !3225 tests: Temporarily disable socket test due to a kernel bug
+ - !3226 Make g_string_free (_, FALSE) warn on unused result
+ - !3231 gmem: Add g_free_sized() and g_aligned_free_sized()
+ - !3234 GMainContext: Use nullable context in docs (and in some missing code)
+ - !3236 g_regex_escape_string: bad GIR: utf8[] -> utf8
+ - !3238 Fix GIR: gunichar -> gunichar[]
+ - !3242 GAtomicArray: Ensure metadata does not misalign the payload
+ - !3243 Allow using msort_r CHERI-enabled architectures
+ - !3245 gio: converter: Forbid null out arguments
+ - !3246 tests: Fix a few minor leaks in gdbus-example-peer
+ - !3247 tests: Fix a minor leak in the cxx string append tests
+ - !3248 timezone: Fix a compiler warning
+ - !3249 gstring: Avoid warnings from inline functions
+ - !3250 ci: Temporarily only run the FreeBSD 13 CI on a schedule
+ - !3251 Revert "gtype: Use the system allocator on UNIX" and use g_free_sized
+ instead
+ - !3256 Remove n_preallocs field from InstanceData
+ - !3258 Revert "ci: Temporarily only run the FreeBSD 13 CI on a schedule"
+ - !3259 gmessages: use g_atomic_pointer to access handlers for
+ g_print()/g_printerr()
+ - !3260 fix underspecified dependencies on generated headers
+ - !3262 Add a (temporary) assertion that sizeof(gsize) == sizeof(guintptr)
+ - !3263 Revert "glib-init: Add more static assertions for gintptr, guintptr"
+ - !3265 fileutils: Make some sample code detect symlinks as intended
+ - !3266 Avoid some warnings from GObject-Introspection
+ - !3268 po: Add missing header file to POTFILES.in
+
+* Translation updates:
+ - Belarusian (Vasil Pupkin)
+ - Galician (Fran Dieguez)
+ - Georgian (Ekaterine Papava)
+ - Hebrew (Yosef Or Boczko)
+ - Indonesian (Kukuh Syafaat)
+ - Portuguese (Hugo Carvalho)
+ - Russian (Aleksandr Melman)
+ - Turkish (Sabri Ünal, Emin Tufan Çetin)
+ - Ukrainian (Yuri Chornoivan)
+
+
+Overview of changes in GLib 2.75.2, 2023-01-06
+==============================================
+
+* Add `g_ptr_array_sort_values()` and `g_ptr_array_sort_values_with_data()` APIs
+ (work by Marco Trevisan) (!3155)
+
+* Some fixes for activation of UWP apps on Windows (work by Luca Bacci) (#2843, !3167)
+
+* Support Markdown output from `gdbus-codegen` (work by Guido Günther) (!3171)
+
+* Bugs fixed:
+ - #2871 Leak in g_find_program_for_path() (Philip Withnall)
+ - #2843 gtk_show_uri can't open browser on MSYS2 on Windows (Luca Bacci)
+ - #2857 Grammar issue in documentation glib stpcpy (Peter Bloomfield)
+ - !3155 garray: Add g_ptr_array_sort_values[_with_data]() wrappers
+ - !3162 gobject: Add a missing NULL check for the return from
+ lookup_type_node_I()
+ - !3167 GWin32AppInfo: Fixes for UWP (packaged) apps activation
+ - !3169 GLocalFile: Delete redundant error saving statement
+ - !3170 GLocalFile: add error handle for trash info file writing
+ - !3171 codegen: Support markdown suitable for gi-docgen
+ - !3173 gdesktopappinfo: Drop an unnecessary NULL check
+ - !3174 garray: Add some additional length assertions
+ - !3175 codegen: Check parameter before calling its interface method
+ - !3177 Various fixes for how we interact with subproject dependencies
+ - !3178 glocalfileinfo: Don't reset mtime tv_sec when setting tv_usec
+ - !3181 INSTALL.md,README.win32.md: Actualize links
+
+* Translation updates:
+ - Turkish (Sabri Ünal)
+
+
+Overview of changes in GLib 2.75.1, 2022-12-21
+==============================================
+
+* Add new `GFileInfo` properties for large thumbnails (work by Matthias Clasen) (#621)
* Fix missing input validation in `GDBusMenuModel` (work by Lars Uebernickel) (#861)
+* Change default `g_desktop_app_info_search()` algorithm to include substring
+ matches (work by Alynx Zhou) (#1152)
+
* Various GVariant security fixes when handling untrusted data (work by
William Manley, Philip Withnall, Simon McVittie) (#2121, #2540, #2794, #2797,
#2839, #2840, #2841)
+* Add support for XDG Activation protocol in `GAppLaunchContext` (work by
+ Ilya Fedin) (#2709)
+
+* Return `application/x-zerosize` rather than `text/plain` as content type for
+ empty files (work by Philip Withnall) (#2777)
+
+* Deprecate `-Druntime_libdir` configure option because it was unused (work by
+ Philip Withnall) (#2786)
+
+* Check for snap plugs when accessing portals (work by Robert Ancell) (!3020)
+
+* Add `GArray` and `GPtrArray` constructors to take or copy C arrays (work by
+ Marco Trevisan) (!3128)
+
+* Add `GHashTable` methods to get and steal hash table keys and values as
+ `GPtrArray`s (work by Marco Trevisan) (!3130)
+
+* Change the default D-Bus system bus socket address from
+ `/var/run/dbus/system_bus_socket` to `/run/dbus/system_bus_socket`, in line
+ with changes in dbus.git. This can now be overridden by passing
+ `-Druntime_dir=/some/path` at configure time — the default is `/run`, which
+ should work for all users except distributions where `/run` is not equivalent
+ to `/var/run`. OS distributors should check that this configured path matches
+ the runtime directory configured for their D-Bus daemon. (work by
+ Roman Stratiienko, Philip Withnall) (!3095, !3101)
+
* Bugs fixed:
+ - #621 file-info: catch thumbnail files in large directory as well (Matthias
+ Clasen)
- #861 insufficient input validation in GDBusMenuModel (Lars Uebernickel)
+ - #1152 Application search algorithm (g_desktop_app_info_search()) should use
+ fuzzy matching (Alynx Zhou)
+ - #1904 gaction: remote triggered crashes
- #2121 GVariant deserialisation does not match spec for non-normal data
- (William Manley, Philip Withnall)
+ (Philip Withnall, William Manley)
- #2540 Parsing serialized GVariants can blow up run-time and memory (Philip
Withnall)
+ - #2709 Add support for XDG_ACTIVATION_TOKEN/XDG Activation protocol in
+ GAppLaunchContext (Ilya Fedin)
+ - #2777 Return application/x-zerosize for empty file content types rather than
+ text/plain (Philip Withnall)
+ - #2786 runtime_libdir and iconv options documented and exposed but not
+ effective? (Philip Withnall)
+ - #2793 Introspection annotations for g_clear_pointer() and g_clear_fd() might
+ not be correct (Philip Withnall)
- #2794 GVariant offset table entry size is not checked in is_normal() (Philip
Withnall)
- #2797 g_variant_byteswap() can take a long time with some non-normal inputs
(Philip Withnall)
+ - #2809 g_str_equal switched to stricter API (typing) (Philip Withnall)
+ - #2811 Internal inotify symbols exposed in 2.75.0 ABI (Simon McVittie)
+ - #2812 CI failing on macOS: -Werror,-Wmissing-field-initializers (Simon
+ McVittie)
+ - #2820 g_str_equal: New macro version breaks compilation in C++ projects
+ (Philip Withnall)
+ - #2821 GObject webpage documentation is mis-formatted during generation
+ (Emmanuele Bassi)
- #2835 gio/gapplication test fails with test_dbus_activate: assertion failed
(n_activations == 2): (1 == 2) (Philip Withnall)
+ - #2836 Conditional jump on uninitialised value in spawn-singlethread (Philip
+ Withnall)
+ - #2837 Assertion failure in contexts test (Philip Withnall)
- #2839 [bisected] GVariant test regression on big-endian architectures (Simon
McVittie)
- #2840 fuzz_variant_binary_byteswap: Heap-buffer-overflow in
g_variant_serialised_get_child (Philip Withnall)
- #2841 fuzz_variant_text: Timeout in fuzz_variant_text (Philip Withnall)
+ - #2845 MSVC: Build failure with g_array_append_val() in C++ mode
+ - #2846 Follow-up from "garray: Add support adding literal values" — doesn’t
+ work with clang (Emmanuele Bassi)
- #2852 alpine/musl: catching signals from a subprocess triggers
GLib:ERROR:../glib/gmain.c:5569:siginfo_t_to_wait_status: code should not be
reached (Philip Withnall)
- - !3114 Backport !3113 “gaction: Validate actions activated over D-Bus” to
- glib-2-74
- - !3126 Backport !3125 “Various fixes to normal form handling in GVariant” to
- glib-2-74
- - !3134 Backport !3133 “gmenumodel: disallow exporting large menus on the bus”
- to glib-2-74
- - !3138 Backport !3136 “gvariant-serialiser: Convert endianness of offsets” to
- glib-2-74
- - !3153 Backport !3120 “glib/gthread-posix: Conditionally use `futex` and/or
- `futex_time64` syscalls...” to glib-2-74
- - !3161 Backport !3158 ”gmain: Define fallback values for siginfo_t constants
- for musl” to glib-2-74
- - !3164 Backport !3163 “gvariant: Check offset table doesn’t fall outside
- variant bounds and speed up text parsing” to glib-2-74
+ - !385 gtask: Warn if a GTask is finalised without returning
+ - !2479 glib/spawn: check user source_fds doesn't contain private fds
+ - !2728 gtype: Speed up type checking for final types
+ - !2764 GCancellable: Ensure it is always cancelled on connect callback
+ - !2886 gtestutils: Use $G_TEST_TMPDIR as temporary directory when defined
+ - !2895 Expose C and C++ standard versions and add macros to check them
+ - !2917 meson: Use gnome.mkenum_simple()
+ - !2992 glib/tests: Add test to check that we abort on low-memory
+ - !3020 portal: Check for snap plugs before accessing portals
+ - !3042 gdesktopappinfo: Fail early if trying to launch an invalid executable
+ and always use desktop Path and context $PATH
+ - !3064 ci: Exclude copylibs and fuzz tests from code coverage
+ - !3065 tests: Add some trivial tests for g_thread_init()
+ - !3067 tests/meson.build: do not use can_run_host_binaries()
+ - !3068 gio: Fix missing visibility header dependency
+ - !3070 type-flags test: Force G_ENABLE_DIAGNOSTIC=1 to be set
+ - !3073 Misc docs fixes and test improvements in GAction and
+ GNotificationBackend
+ - !3075 gmodule: Fix redeclaration of symbol
+ - !3076 gspawn: Ignore invalid FDs when using safe_fdwalk()
+ - !3077 build: Bump Meson dependency to 0.64.0
+ - !3078 build: Move -Wnonnull flag to meson.build
+ - !3079 giochannel: Clarify assertions in g_io_channel_write_chars()
+ - !3080 A few test improvements for scan-build
+ - !3081 gthreadpool: Mark an explicit leak as to be ignored
+ - !3083 tests: Remove a manual timeout from desktop-app-info test
+ - !3086 gmacros: Use C++ namespaces attribute specifier sequences for msvc
+ - !3088 tests: Add G_TEST_OPTION_ISOLATE_DIRS to almost all gdbus tests
+ - !3089 Revert dependency bump to use Meson 0.64
+ - !3091 Fix doc typo in g_dbus_connection_signal_subscribe
+ - !3092 Fix gmodule/COPYING symlink path
+ - !3095 gdbusaddress: Form default system dbus path using meson definitions
+ - !3097 garray: Add assertions to help static analysis
+ - !3098 gobject: Use compare and exchange full to re-read old ref value
+ - !3099 gsocketcontrolmessage: add nullable annotation to deserialize return
+ - !3100 gsimpleproxyresolver: Make explicit that a port is needed for
+ HTTP/HTTPS
+ - !3101 gdbusaddress: Use runstatedir rather than localstatedir
+ - !3103 gclosure: Documentation improvements around floating closures
+ - !3105 gsocket: use socklen_t in more places to fix build under cygwin
+ - !3106 gobject: Check for valid ref counting via g_return_if_fail
+ - !3107 gdesktopappinfo: Group search results by both categories and match
+ types
+ - !3108 gwakeuptest: Do not rely on alarm() to stop tests on timeout
+ - !3112 docs: Remove a stray > in the glib-mkenums man page
+ - !3115 ci: Don’t fail if testlog-unstable_tests.junit.xml doesn’t exist on
+ MSVC
+ - !3116 docs: Remove HACKING
+ - !3117 tests: fix assert-msg-test with custom gdbinit
+ - !3119 Improve notification queue warning
+ - !3120 glib/gthread-posix: Conditionally use `futex` and/or `futex_time64`
+ syscalls...
+ - !3124 More gobject performance tests
+ - !3127 docs: Update SECURITY to stop mentioning a deprecated mailing list
+ - !3128 garray: Add more G(Ptr)Array constructors to take or copy C arrays
+ - !3129 garray: Add support adding literal values
+ - !3130 ghash: Add APIs to get (and steal) hash table keys and values as
+ GPtrArray
+ - !3132 gtestutils: Check for failure to setenv() and return
+ - !3139 gtype: avoid "-Wcast-align" warning with optimized
+ G_TYPE_CHECK_INSTANCE_CAST()
+ - !3141 tests/slice-concurrent.c: avoid using rand() from multiple threads
+ - !3142 tests/gdbus-method-invocation: Fix missing g_variant_new() argument
+ - !3144 gspawn.c: prefer close_range() on FreeBSD if available
+ - !3145 tests/gvariant.c: ensure posix_memalign alignment argument is correct
+ - !3147 ci: Temporarily only run the FreeBSD 13 CI on a schedule
+ - !3148 ghash: Use unsigned types for number of nodes and occupied ones
+ - !3151 Revert "ci: Temporarily only run the FreeBSD 13 CI on a schedule"
+ - !3152 tests: Fix stall/deadlock in slice-concurrent on macOS CI
+ - !3156 gobject: Some GValue setting code cleanups
+ - !3157 gthread-posix: need to #include <errno.h>
+ - !3159 gmenuexporter: Fix warning of unused n_items when building with
+ G_DISABLE_ASSERT
* Translation updates:
- - Abkhazian (Nart Tlisha)
- - Belarusian (Vasil Pupkin)
- - Georgian (Ekaterine Papava)
- Interlingue (Olga Smirnova)
-
-
-Overview of changes in GLib 2.74.3
-==================================
-
-* Fix regression in type checking `g_str_equal()` from C++ projects (#2820)
-
-* Bugs fixed:
- - #2820 g_str_equal: New macro version breaks compilation in C++ projects
- (Philip Withnall)
- - !3096 Backport !3094 “gstrfuncs: Fix regression in C++ types accepted by
- g_str_equal()” to glib-2-74
-
-
-Overview of changes in GLib 2.74.2
-==================================
-
-* Fix `GVariant` type depths checks on text format variants (work by Philip Withnall) (#2782)
-
-* Fix an obscure corner case with FD handling in `g_spawn_*()` when a process
- has already closed the standard I/O FDs (work by Ray Strode) (#2795)
-
-* Fix regression in type checking on `const` arguments to `g_str_equal()` (#2809)
-
-* Bugs fixed:
- - #2782 GVariant type depth not checked on typedecls in text format variants
- (Philip Withnall)
- - #2795 [regression] gnome-keyring-daemon uses 100% CPU with glib-2.74.1 (Ray
- Strode)
- - #2799 Wrong GTask tag on error return path in
- g_proxy_resolver_lookup_async() (Michael Catanzaro)
- - #2809 g_str_equal switched to stricter API (typing) (Philip Withnall)
- - !3017 Backport !3008 “gio/gdesktopappinfo: Free the wrapped argv array on
- launch failure” to glib-2-74
- - !3038 Backport !3035 “portal: Fix broken header guard” to glib-2-74
- - !3039 Backport !3029 “Revert "Handling collision between standard i/o file
- descriptors and newly created ones" ” to glib-2-74
- - !3046 Backport !3045 “gproxyresolver: lookup_finish() should better parallel
- lookup_async()” to glib-2-74
- - !3063 Backport !3061 “gvariant-parser: Speed up maybe_wrapper() by an order
- of magnitude” to glib-2-74
- - !3084 Backport !3082 “gstrfuncs: Fix regression in types accepted by
- g_str_equal()” to glib-2-74
-
-* Translation updates:
- - Abkhazian (Nart Tlisha)
- - Dutch (Nathan Follens)
- Serbian (Мирослав Николић)
-Overview of changes in GLib 2.74.1
-==================================
+Overview of changes in GLib 2.75.0, 2022-11-10
+==============================================
* Update Unicode data to version 15 (work by Marco Trevisan) (#2735)
@@ -115,6 +993,8 @@ Overview of changes in GLib 2.74.1
* Add inline optimised version of `g_str_equal()` (work by Xavier Claessens) (#2775)
+* Add inline optimised version of `g_str_has_{prefix,suffix}()` (work by Emmanuel Fleury) (#24)
+
* Fix `GVariant` type depths checks on text format variants (work by Philip Withnall) (#2782)
* Fix regression with int64 and double hashing functions on big-endian architectures
@@ -127,15 +1007,60 @@ Overview of changes in GLib 2.74.1
* Avoid `EINTR` races when closing FDs in `g_spawn_*()` (work by Thomas Haller) (!2988)
+* Deprecate `G_MODULE_SUFFIX` and improve `g_module_open()` to automatically find
+ modules better on different platforms (work by Nirbheek Chauhan) (#520, #1413)
+
+* Soft-deprecate sized integer types in favour of C99 `stdint.h` types (work by Simon McVittie) (#1484)
+
+* Correctly mark sshfs file systems as `G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE` (work by Philip Withnall) (#2726)
+
+* Add `g_set_string()` function for setting strings simply (work by Christian Hergert) (#2747)
+
+* Add support for `xdg-terminal-exec` for handling desktop applications using
+ `Terminal=true` (work by Max Gautier) (!2839)
+
+* Change various configure-time defaults for cast checks and related
+ (work by Michael Catanzaro) (!2850, !2894)
+
+* Set Meson’s `install_tag` on installed files (work by Xavier Claessens) (!2905)
+
+* Add `G_TYPE_FLAG_DEPRECATED` for tagging deprecated `GType`s/`GObject`s
+ (work by Matthias Clasen) (!2993)
+
+* Add `g_clear_fd()` and `g_autofd` for automatically closing FDs when exiting a
+ scope (work by Simon McVittie) (!3007)
+
+* Convert GVariant Specification to reStructuredText and host it at
+ https://developer.gnome.org/documentation/specifications/gvariant-specification-1.0.html
+ (work by Philip Withnall) (!3044)
+
* Bugs fixed:
- - #16 gspawn.c file descriptor handling (Emmanuel Fleury)
+ - #16 gspawn.c file descriptor handling (Emmanuel Fleury, Ray Strode)
+ - #19 Workaround dlopen(NULL, 0) brokenness
+ - #24 inlined g_str_has optimisations (Emmanuel Fleury)
- #333 Make GLib valgrind friendly (Marco Trevisan (Treviño))
+ - #520 g_module_build_path builds incorrect paths on macOS and Windows (MSVC)
+ (Nirbheek Chauhan)
+ - #1211 macros: generate uniq variable name in _G_BOOLEAN_EXPR()/G_LIKELY()
+ (Thomas Haller)
+ - #1413 Meson build defines G_MODULE_SUFFIX to `dylib` on macOS but autotools
+ uses `so` (Nirbheek Chauhan)
+ - #1484 Deprecate sized integer types in favour of C99 stdint.h (Simon
+ McVittie)
+ - #2622 GThreadedResolver incorrectly expands domain names in SRV records
+ (Philip Withnall)
+ - #2726 G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE not set for sshfs (Philip Withnall)
- #2735 Update unicode data to version 15
- #2740 gio-launch-desktop: clang compiler can't compile with commit 813ce7f0b
(Kjell Ahlstedt)
- #2742 glib:gio / file test fails after update to 2.73.3. (Marco Trevisan
(Treviño))
+ - #2747 Add g_set_string for simplified and correct property setters
+ (Christian Hergert)
- #2748 construct properties always trigger the deprecated property warning
+ (Simon McVittie)
+ - #2753 Infinite recursion on ENOMEM in g_vasprintf() (Philip Withnall)
+ - #2754 `glib / spawn-test` fails with non-English locale (Philip Withnall)
- #2758 gmessages.c compile failure with -Werror=unused-result (Marco Trevisan
(Treviño))
- #2759 gosxcontenttype.m compile failure with -Werror=declaration-after-
@@ -150,10 +1075,36 @@ Overview of changes in GLib 2.74.1
- #2775 Add an inline version of g_str_equal (Xavier Claessens)
- #2782 GVariant type depth not checked on typedecls in text format variants
(Philip Withnall)
+ - #2783 Enable no-interrupt close() on macOS
+ - #2784 Remove workaround to avoid false-positive -Werror=nonnull in
+ g_str_has_*() macro versions
+ - #2785 Invalid FD assertion in g_close() triggers test failures on macOS (Ray
+ Strode)
- #2787 new int64, double hash functions always hash to 0 on big-endian (Simon
McVittie)
- - #2788 GObject warnings: keep or revert warning -> critical change in 2.74.x
- branch? (Philip Withnall)
+ - #2791 function name typo in comment explaining the private struct memory
+ layout (gtype.c) (sunce)
+ - #2795 [regression] gnome-keyring-daemon uses 100% CPU with glib-2.74.1 (Ray
+ Strode)
+ - #2796 _g_clear_fd_ignore_error() breaks with GLIB_VERSION_MAX_ALLOWED (Simon
+ McVittie)
+ - #2798 msys2-clang64 fails to compile cxx tests on versions < 11 (Marco
+ Trevisan (Treviño))
+ - #2799 Wrong GTask tag on error return path in
+ g_proxy_resolver_lookup_async() (Michael Catanzaro)
+ - #2800 fileutils test regression on vs2017-x64 builds:
+ appcrt\lowio\commit.cpp(19) : Assertion failed: (_osfile(fh) & FOPEN)
+ - #2802 Remove G_OS_DARWIN in favour of platform-specific defines (Philip
+ Withnall)
+ - #2805 g_task_set_name() should not use g_task_set_static_name() unless
+ permitted by GLIB_VERSION_MAX_ALLOWED (Michael Catanzaro)
+ - #2807 ../glib/gstrfuncs.h:186:41: error: argument 1 null where non-null
+ expected [-Werror=nonnull] (Ray Strode)
+ - !2799 Use the system allocator on UNIX when creating GTypeInstances
+ - !2839 Add support for xdg-terminal-exec for handling desktop applications
+ using 'Terminal=true'
+ - !2848 giomodule: Automatically detect modules on macOS
+ - !2850 Automatically disable cast checks when building with optimization
- !2852 Replace most GObject warnings with criticals
- !2857 glib-mkenums: Specify output encoding as UTF-8 explicitly for non-
English locale
@@ -161,9 +1112,14 @@ Overview of changes in GLib 2.74.1
standard versions
- !2866 tests: skip g-file-info test if atime unsupported
- !2867 tests: skip shared libs if default_library=static
+ - !2869 task: Don't overwrite source names
- !2880 gbacktrace: Don't truncate gdb output
+ - !2884 tests/desktop-app-info: Add tests to verify if launching with terminal
+ works
- !2885 tests/desktop-app-info: Use unique temporary paths for action files
+ - !2889 Run tests with G_ENABLE_DIAGNOSTIC=1
- !2892 tests/unix-streams: Free the cancelled error on cancelled cancellable
+ - !2894 Disable cast checks in plain builds
- !2896 Build API docs only with shared libraries
- !2899 gio: make g_task_get_cancellable return value (nullable)
- !2901 glocalfileoutputstream: Do not double-close an fd on unlink error
@@ -183,43 +1139,104 @@ Overview of changes in GLib 2.74.1
- !2928 build: Let Meson figure out Python installation
- !2931 gdatetime: add missing g_return_() check in g_date_time_format_iso8601
- !2933 Fix style warning in gvariant.c
+ - !2936 Fix symbol visibility macros on Windows
+ - !2937 gicon: Add introspection for to_tokens / from_tokens vfunc's
- !2938 gdatetime: add NULL guard in g_date_time_new_now()
- !2939 gobject/tests/param: Add unit test for handling invalid NULL param
spec
+ - !2942 gbookmarkfile: Add copy function and define it as boxed type for
+ introspection
+ - !2945 gmessages: Add missing trailing newline in fallback log handler
- !2946 tests: Check the return value of fwrite() in a test
+ - !2947 gspawn: avoid race due to retry with EINTR on close()
- !2948 ghash: document g_hash_table_steal_extended() behavior for sets
- !2949 doc: Correctly annotate g_async_queue_push()
- - !2958 Backport !2952 “Various win32 test fixes” to glib-2-74
- - !2960 Backport !2959 “Some leaks fixes” to glib-2-74
- - !2973 Backport !2955 “gtimezone: Reject weird /etc/localtime configurations”
- to glib-2-74
- - !2975 Backport !2974 “gvariant-parser: Reject deeply-nested typedecls in
- text form variants” to glib-2-74
- - !2982 Backport !2887 “glocalfileinfo: Ensure we always sniff some data to
- get the content type” to glib-2-74
- - !2983 Backport !2910 “gmessages: Handle unused results from fputs and
- fwrite” to glib-2-74
- - !2988 Backport !2947 “gspawn: avoid race due to retry with EINTR on close()”
- to glib-2-74
- - !2989 Backport !2978 “A couple of test fixes on OS X” to glib-2-74
- - !2995 Revert !2924 in 2.74.x branch
- - !2996 Revert "Replace most GObject warnings with criticals" on glib-2-74
- - !2998 Backport !2934 “gobject: Always ref-sink variants in g_object_set” to
- glib-2-74
- - !3010 Backport !3009 “gtimezone: Fix symlink checks on relative link
- targets” to glib-2-74
+ - !2951 meson: Don't explicitly disable mixed declarations and statements
+ - !2952 Various win32 test fixes
+ - !2953 build: Post-release version bump to 2.75.0
+ - !2954 tools: Fix code style warnings in gen-visibility-macros.py
+ - !2955 gtimezone: Reject weird /etc/localtime configurations
+ - !2956 gstrfuncs: Fix a compiler warning in g_strerror()
+ - !2957 Fix include order of glib-visibility.h
+ - !2959 Some leaks fixes
+ - !2961 tests: Remove an unnecessary sleep from desktop-app-info test
+ - !2963 tests: Fix race condition on cancellation in unix-streams test
+ - !2964 gstdio: fail assertion in g_close() for invalid file descriptor
+ (EBADF)
+ - !2965 ghash: comment g_hash_table_steal_extended() about not destroying
+ key/value
+ - !2967 Fix build when G_DISABLE_CAST_CHECKS is defined to empty string
+ - !2968 tests: Fix minor race in desktop-app-info terminals test
+ - !2969 tests/desktop-app-info: Make sure scripts writes to the right end of
+ the pipe
+ - !2970 Fix GIOModule regression from !2959
+ - !2972 tests: Temporarily disable desktop-app-info terminal test on FreeBSD
+ - !2976 Fix a couple of minor Coverity issues
+ - !2977 gstdio: Temporarily disable g_close() warning on macOS
+ - !2978 A couple of test fixes on OS X
+ - !2979 gtask: Use unsigned bit-field struct values to avoid warnings
+ - !2981 meson: Define G_OS_DARWIN when compiling under OSX or iOS
+ - !2984 tests: Fix code style in Python files to satisfy black and flake8
+ - !2985 ci: Do not store docs artifacts
+ - !2987 meson, ci: Support tests that can fail under certain conditions
+ - !2990 gio/tests/g-file-info: don't assume million-in-one events don't happen
+ - !2991 glib, gmodule, gobject: Add generated headers to the lib dependency
+ - !2993 Add G_TYPE_FLAG_DEPRECATED
+ - !2997 docs: Mention platform-specific predefined macros
+ - !2999 Soft-deprecate G_VA_COPY in favour of va_copy
+ - !3000 docs: Stop claiming that gsize is wide enough to hold a pointer
+ - !3001 Improve documentation and static assertions around g(s)size,
+ g(u)intptr
+ - !3002 docs: Soft-deprecate G_STRUCT_OFFSET in favour of offsetof
+ - !3003 docs: Soft-deprecate types that are just aliases for a standard C type
+ - !3004 build: Mark the g-file-info test as succeeding
+ - !3005 Fix sandbox escape in GDBusServer
+ - !3007 gstdio: Add g_clear_fd() and g_autofd
+ - !3008 gio/gdesktopappinfo: Free the wrapped argv array on launch failure
+ - !3009 gtimezone: Fix symlink checks on relative link targets
+ - !3011 meson: Cleanup and fix include files paths, using base path without
+ repetitions
+ - !3012 meson: Handle various build system FIXME's
+ - !3013 tests: Fix few new clang warnings
+ - !3015 test/meson: Add tests dependencies on built programs, libraries and
+ modules
+ - !3018 Install gversionmacros.h in the right place
+ - !3019 ci: Fix check for missing install tag
+ - !3021 Add kgx (gnome console) to known terminals lists
+ - !3022 Fix coding style issue in .gitlab-ci/check-missing-install-tag.py
+ - !3023 ci: Move shellcheck/black/flake8 checks to a new CI job which can fail
+ - !3025 fuzzing: Add a new fuzz test for g_variant_byteswap()
+ - !3027 gstdio: Preserve errno in g_autofd, document async-signal safety
+ - !3033 glib/gmacros: Always define NULL as nullptr in C++11 and newer
+ - !3034 ci: Open issues when scheduled pipelines fail
+ - !3035 portal: Fix broken header guard
+ - !3037 gio: Create a sandbox checking function
+ - !3040 gspawn: Provide less brute force fdwalk implementation on macOS
+ - !3043 glib-mkenums: feature use of previous symbols in evaluation
+ - !3044 docs: Convert GVariant Specification to reStructuredText
+ - !3048 docs: Add licensing/copyright data to GVariant specification and fix
+ various formatting issues
+ - !3049 Add a SPDX LicenseRef for the license historically used for tests
+ - !3050 tests: Shorten internal codegen test timeout
+ - !3051 ci: Add a CI check for REUSE-compliant licensing/copyright headers
+ - !3055 fileutils test: Use no-op invalid-parameter handler when exercising
+ EBADF
+ - !3058 ci: Build with -Wnonnull
+ - !3060 fuzzing: Add a fuzz test for g_utf8_validate()
+ - !3062 tests: Fix a small leak in the GVariant tests and some minor
+ documentation typos
* Translation updates:
- Abkhazian (Nart Tlisha)
+ - Dutch (Nathan Follens)
- Friulian (Fabio Tomat)
- German (Christian Kirbach)
- Hebrew (Yaron Shahrabani)
- Kazakh (Baurzhan Muftakhidinov)
- Occitan (post 1500) (Quentin PAGÈS)
- - Turkish (Sabri Ünal)
-Overview of changes in GLib 2.74.0, 17-09-2022
+Overview of changes in GLib 2.74.0, 2022-09-17
==============================================
* Use EPOLL_CLOEXEC by default (Colin Walters)
@@ -289,7 +1306,7 @@ Overview of changes in GLib 2.74.0, 17-09-2022
- Turkish (Emin Tufan Çetin)
- Ukrainian (Yuri Chornoivan)
-Overview of changes in GLib 2.73.3, 05-08-2022
+Overview of changes in GLib 2.73.3, 2022-08-05
==============================================
* Revitalize G_REGEX_OPTIMIZE flag and use it to enable PCRE JIT compiler (work
@@ -401,7 +1418,7 @@ Overview of changes in GLib 2.73.3, 05-08-2022
Nart Tlisha, Owen Rafferty, Philip Withnall, Ryan Hope, Simon McVittie,
Yosef Or Boczko, Yuri Chornoivan, Zurab Kargareteli.
-Overview of changes in GLib 2.73.2, 12-07-2022
+Overview of changes in GLib 2.73.2, 2022-07-12
==============================================
* Replace PCRE1 with PCRE2: This is a major change to drop the libpcre1
diff --git a/README.md b/README.md
index e78a28c2c..13f8aa2f3 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,9 @@ The official web site is:
## Installation
-See the file '[INSTALL.md](INSTALL.md)'
+See the file ‘[INSTALL.md](INSTALL.md)’. There is
+[separate and more in-depth documentation](./docs/win32-build.md) for building
+GLib on Windows.
## Supported versions
@@ -79,15 +81,3 @@ Closes: #123
Otherwise, create a new merge request that introduces the change. Filing a
separate issue is not required.
-## Default branch renamed to `main`
-
-The default development branch of GLib has been renamed to `main`. To update
-your local checkout, use:
-```sh
-git checkout master
-git branch -m master main
-git fetch
-git branch --unset-upstream
-git branch -u origin/main
-git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
-```
diff --git a/SECURITY.md b/SECURITY.md
index e49460a1f..c7fb8162c 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -63,9 +63,7 @@ are then:
## Security Announcements
Security announcements are made publicly via the
-[`distributor` tag on discourse.gnome.org](https://discourse.gnome.org/tag/distributor)
-and cross-posted to the
-[distributor-list](https://mail.gnome.org/mailman/listinfo/distributor-list).
+[`distributor` tag on discourse.gnome.org](https://discourse.gnome.org/tag/distributor).
Announcements for security issues with wide applicability or high impact may
additionally be made via
diff --git a/docs/CODEOWNERS b/docs/CODEOWNERS
index 41e657dfb..cd4ef7391 100644
--- a/docs/CODEOWNERS
+++ b/docs/CODEOWNERS
@@ -38,13 +38,13 @@ subprojects/ @xclaesse @nirbheek @pwithnall
*.m @jralls @pwithnall @sdroege
# Windows support
-*win32* @lrn @creiter @fanc999 @pwithnall @sdroege @nirbheek
+*win32* @lrn @creiter @fanc999 @pwithnall @sdroege @nirbheek @lb90
# Windows support (MSVC-specific)
-*msvc* @fanc999 @creiter @pwithnall @sdroege @nirbheek
+*msvc* @fanc999 @creiter @pwithnall @sdroege @nirbheek @lb90
# Windows support (UWP-specific)
-*uwp* @nirbheek
+*uwp* @nirbheek @lb90
# Android support
*android* @xclaesse @pwithnall @sdroege
diff --git a/docs/backports.md b/docs/backports.md
index b8157b8cc..62351a9cc 100644
--- a/docs/backports.md
+++ b/docs/backports.md
@@ -27,7 +27,7 @@ Policy
* Any change which requires changes or additions to translatable strings should
not be backported unless unavoidable to fix a widely-occurring bug
- If possible, existing translatable strings should be reused
- - If unavoidable, liase with the GNOME Translation Team and ensure string
+ - If unavoidable, liaise with the GNOME Translation Team and ensure string
changes are landed with plenty of time to allow translators to provide new
translations
- See https://wiki.gnome.org/TranslationProject/HandlingStringFreezes
@@ -52,6 +52,11 @@ Policy
- For example, by splitting changes to be backported into a separate commit
from those which should not be backported, or splitting out changes which
are more likely to cause conflicts when cherry-picked
+ * Backports should be done as soon as a fix lands on the unstable branch,
+ rather than waiting until when the next stable release is due and then
+ backporting multiple changes from the unstable branch at once. This gives
+ more opportunity for backported changes to be tested, and reduces the chance
+ of backporting the wrong thing, or missing a backport.
* These rules are not entirely prescriptive: there may be situations where
maintainers agree that a backport is necessary even if it breaks some of
these rules, due to the balance of fixing a critical bug vs keeping things
diff --git a/docs/debugging.txt b/docs/debugging.txt
deleted file mode 100644
index 2cc600aa9..000000000
--- a/docs/debugging.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-
-Traps (G_BREAKPOINT) and traces for the debugging
-=================================================
-
-Some code portions contain trap variables that can be set during
-debugging time if G_ENABLE_DEBUG has been defined upon compilation
-(use the --buildtype=debug option to configure for this, macros.txt
-covers more details).
-Such traps lead to immediate code halts to examine the current
-program state and backtrace.
-Currently, the following trap variables exist:
-
-static volatile gulong g_trap_free_size;
-static volatile gulong g_trap_realloc_size;
-static volatile gulong g_trap_malloc_size;
- If set to a size > 0, g_free(), g_realloc() and g_malloc()
- respectively, will be intercepted if the size matches the
- size of the corresponding memory block to free/reallocate/allocate.
- This will only work with g_mem_set_vtable (glib_mem_profiler_table)
- upon startup though, because memory profiling is required to match
- on the memory block sizes.
-static volatile GObject *g_trap_object_ref;
- If set to a valid object pointer, ref/unref will be intercepted
- with G_BREAKPOINT ();
-static volatile gpointer *g_trap_instance_signals;
-static volatile gpointer *g_trace_instance_signals;
- If set to a valid instance pointer, debugging messages
- will be spewed about emissions of signals on this instance.
- For g_trap_instance_signals matches, the emissions will
- also be intercepted with G_BREAKPOINT ();
-
-Environment variables for debugging
-===================================
-When G_ENABLE_DEBUG was defined upon compilation, the GObject library
-supports an environment variable GOBJECT_DEBUG that can be set to a
-combination of the flags passed in to g_type_init() (currently
-"objects" and "signals") to trigger debugging messages about
-object bookkeeping and signal emissions during runtime. \ No newline at end of file
diff --git a/docs/issue-and-merge-request-management.md b/docs/issue-and-merge-request-management.md
new file mode 100644
index 000000000..ebf479982
--- /dev/null
+++ b/docs/issue-and-merge-request-management.md
@@ -0,0 +1,157 @@
+Issue and merge request management policy
+===
+
+Aims
+---
+
+ * Finding duplicates and related issues and merge requests should be easy when
+ triaging new ones, or when looking back at the history of a particular piece
+ of code
+ * GLib co-maintainers and other interested people should be able to subscribe
+ to notifications for specific parts of GLib without receiving notifications
+ for all activity on GLib
+ * Issues and merge requests which are planned to be in a specific release
+ should not be accidentally left out of that release
+ * GLib co-maintainers should be able to easily see how much work is left to do
+ before a release is ready
+ * Users and developers should have some idea of whether an issue or merge
+ request is being actively worked on, the timescale for its completion, and
+ who’s working on it
+
+Issue triage
+---
+
+ * Issues should be triaged shortly after they are filed. Triage should:
+ - Add labels to categorise the issue, even if it’s about to be closed (this
+ helps with finding related closed issues in future)
+ - Close them immediately if they are a duplicate of an existing issue
+ (`/duplicate #issue`)
+ - Or if they are out of scope, such as a user support question (which should
+ be on https://discourse.gnome.org)
+ - Ask the user for necessary debug information if the issue is valid, a bug,
+ and not enough information has been provided — extracting debug information
+ from users is often time-critical because they can only reproduce an issue
+ under certain conditions, or they lose interest and move on
+ - Assign the issue to an upcoming milestone if it seems urgent
+ * Note that triaging an issue does *not* commit the triager to working on the
+ issue
+ * If an issue is likely to affect a stable release (as well as the unstable
+ `main` branch), assign it to the next micro release milestone for that stable
+ release — the merge request for the fix will be assigned to the next `main`
+ micro release, and its backport to the next stable micro release
+
+Merge request triage
+---
+
+ * Merge requests should be triaged shortly after they are filed. Triage should
+ proceed as for issues, including labels and milestones
+ * The milestone for a merge request is the release it is intended to be
+ included in, and it should match the target branch of the merge request
+ - It’s important to add milestones to merge requests, as they then show up on
+ the milestone page and highlight that the release is not yet ready until
+ they’re all merged
+ - This prevents releases accidentally being made without containing all the
+ fixes they’re supposed to
+ * The ‘assignee’ of the merge request is the person who is working on it,
+ responding to review feedback
+ * The ‘reviewer’ of the merge request is the GLib co-maintainer who is actively
+ reviewing it
+ * Don’t assign someone else as the reviewer or assignee of a merge request
+ unless they have said they are willing to do it, otherwise it gives a false
+ impression that their time is allocated for doing the work
+ - You may assign someone else as a reviewer or assignee when closing or
+ merging a merge request, though, if that helps document who has done the
+ work so they can be appropriately attributed
+
+Labelling issues and merge requests
+---
+
+GLib has a huge number of labels available, one per component of the library
+plus several orthogonal labels. The use of labels allows for:
+ * Easy searching for related issues and duplicates, by filtering on label
+ * Co-maintainers of GLib to subscribe to issue and merge request notifications
+ for a set of labels limited to their interests, meaning they don’t have to
+ subscribe to the full fire hydrant of GLib notifications just to maintain one
+ or two components
+ * High-level prioritization of work, such as prioritizing crashes over new
+ features
+ * Tracking issues and merge requests through the release lifecycle, so that
+ (for example) API additions can be done before the API freeze, and merge
+ requests approved during a code freeze can all be landed when the freeze ends
+
+To subscribe to a specific label, go to
+[the labels page](https://gitlab.gnome.org/GNOME/glib/-/labels) and use the
+subscription selector next to the labels you’re interested in.
+
+Several labels are worth highlighting:
+ * Security: Time-critical security issues, which should typically be marked
+ as confidential.
+ * Merge After Freeze: Merge requests which have been accepted, but which can’t
+ be merged yet as GLib is in
+ [code freeze](https://wiki.gnome.org/ReleasePlanning/Freezes). All MRs tagged
+ like this will be merged en-masse when the freeze ends.
+ * Needs Information: Issues which are blocked due to needing more information
+ from the reporter. These can be closed after 4 weeks if the reporter does not
+ respond.
+ * Not GNOME / Out of Scope: Issues which were closed due to not being within
+ the scope of GLib.
+ * Newcomers: Issues which are suitable for being taken on by newcomers to GLib.
+ When labelling an issue as such, please make sure that the issue title is
+ clear, and the description (or a comment) clearly explains what needs to be
+ done to fix the issue, to give newcomers the best chance of successfully
+ submitting a fix.
+ * Translation / I18N: Issues which relate to translatable strings or other
+ internationalization or localization problems. Adding this label may cause
+ the translation team to be looped into an issue or merge request.
+ * API deprecation: Issues or merge requests which deprecate GLib API, and hence
+ can only land in an unstable release outside an
+ [API freeze](https://wiki.gnome.org/ReleasePlanning/Freezes).
+ * New API: Issues or merge requests which add new GLib API, and hence can only
+ land in an unstable release outside an
+ [API freeze](https://wiki.gnome.org/ReleasePlanning/Freezes).
+ * Intermittent: Issues (such as test failures) which can only be reproduced
+ intermittently.
+ * Test failure: Issues which revolve around a unit test failing. Typically
+ these are opened after a CI run has failed, and are useful for tracking how
+ often a particular failure happens.
+ * Test missing: Merge requests which need a unit test to be written before they
+ can be merged.
+
+Merge request review
+---
+
+ * Assign yourself as the ‘reviewer’ of a merge request when you start review;
+ this helps with tracking notifications, and lets the assignee of the merge
+ request know whether you are providing a comprehensive review or just some
+ drive-by comments
+ * Review the merge request at a high level first: is the change needed, does
+ it make sense, is it structured correctly; then look at the detail of memory
+ management, typos, etc.
+ - If a merge request is large or contains multiple unrelated changes, it is
+ best to ask the author to split it into multiple parallel merge requests.
+ This prevents review comments on one part of the merge request from blocking
+ merging the rest, and allows the reviewer’s time to be split into smaller
+ and more manageable chunks.
+ * Submit all your comments as a single review (rather than adding multiple
+ single comments) to avoid spamming subscribers with multiple notifications.
+ * CC in additional reviewers if their second opinion or domain expertise are
+ needed.
+ * Follow the review through multiple cycles of updates and re-review with an
+ aim to getting the merge request landed — a merge request which gets one
+ round of review and which is then forgotten about is as useful as a merge
+ request which gets no review at all.
+ * While it is useful to highlight related areas of the code needing work that
+ you spot while doing a review, it is not the responsibility of the author of
+ a merge request to fix things outside the scope of their merge request.
+ Reviews which increase the scope of work for a merge request make it much
+ less likely that the merge request will land quickly, which reduces the
+ effective usefulness of the contribution. This wears down contributors and
+ reviewers, as they don’t see closure on what they’ve put time into. It is
+ better to file additional issues for follow-up or related work.
+ * If you cannot follow through a merge request to completion, unassign yourself
+ as the reviewer to make this clear to everybody.
+ * Once a merge request lands, a backport might need to be created for the most
+ recent stable GLib branch (see the [backport policy](./backports.md). It is
+ the responsibility of the maintainers to do this, not the responsibility of
+ the merge request author.
+
diff --git a/docs/macros.md b/docs/macros.md
new file mode 100644
index 000000000..eac9b6db9
--- /dev/null
+++ b/docs/macros.md
@@ -0,0 +1,73 @@
+GLib's configure options and corresponding macros
+=================================================
+
+The following Meson configure options will result in certain macros or options
+being defined at build time:
+
+`--buildtype={plain,release,minsize,custom}`
+ : No special macros or options
+`--buildtype={debug,debugoptimized}` (`debugoptimized` is the default)
+ : `-DG_ENABLE_DEBUG -g`
+`-Dglib_debug=disabled`
+ : Omits `G_ENABLE_DEBUG` when implied by `--buildtype`/`-Ddebug`
+`-Dglib_debug=enabled`
+ : Defines `G_ENABLE_DEBUG` regardless of `--buildtype`/`-Ddebug`
+`-Dglib_asserts=false`
+ : `-DG_DISABLE_ASSERT`
+`-Dglib_checks=false`
+ : `-DG_DISABLE_CHECKS`
+
+Besides these, there are some local feature specific options, but the main
+focus here is to concentrate on macros that affect overall GLib behaviour
+and/or third party code.
+
+
+GLib's internal and global macros
+=================================
+
+`G_DISABLE_ASSERT`
+---
+
+The `g_assert()` and `g_assert_not_reached()` macros become non-functional
+with this define. The motivation is to speed up end-user apps by
+avoiding expensive checks.
+
+This macro can affect third-party code. Defining it when building GLib
+will only disable the assertion macros for GLib itself, but third-party code
+that passes `-DG_DISABLE_ASSERT` to the compiler in its own build
+will end up with the non-functional variants after including `glib.h`
+as well.
+
+Note: Code inside the assertion macros should not have side effects
+that affect the operation of the program, as they may get compiled out.
+
+`G_DISABLE_CHECKS`
+---
+
+This macro is similar to `G_DISABLE_ASSERT`, it affects third-party
+code as mentioned above and the note about `G_DISABLE_ASSERT` applies
+too.
+
+The macros that become non-functional here are `g_return_if_fail()`,
+`g_return_val_if_fail()`, `g_return_if_reached()` and
+`g_return_val_if_reached()`.
+
+This macro also switches off certain checks in the GSignal code.
+
+`G_ENABLE_DEBUG`
+---
+
+Quite a bit of additional debugging code is compiled into GLib when this
+macro is defined, and since it is a globally visible define, third-party code
+may be affected by it similarly to `G_DISABLE_ASSERT`.
+
+The additional code executed/compiled for this macro currently includes the
+following, but this is not an exhaustive list:
+ - extra validity checks for `GDate`
+ - breakpoint abortion for fatal log levels in `gmessages.c` instead of
+ plain `abort()` to allow debuggers trapping and overriding them
+ - added verbosity of `gscanner.c` to catch deprecated code paths
+ - added verbosity of `gutils.c` to catch deprecated code paths
+ - object and type bookkeeping in `gobject.c`
+ - extra validity checks in `gsignal.c`
+ - support for tracking still-alive `GTask`s
diff --git a/docs/macros.txt b/docs/macros.txt
deleted file mode 100644
index ec449f17f..000000000
--- a/docs/macros.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-GLib's configure options and corresponding macros
-=================================================
-
---buildtype={plain,release,minsize,custom}
- none
---buildtype={debug,debugoptimized} [debugoptimized is the default]
- -DG_ENABLE_DEBUG -g
--Dglib_debug=disabled
- Omits G_ENABLE_DEBUG when implied by --buildtype/-Ddebug
--Dglib_debug=enabled
- Defines G_ENABLE_DEBUG regardless of --buildtype/-Ddebug
--Dglib_asserts=false
- -DG_DISABLE_ASSERT
--Dglib_checks=false
- -DG_DISABLE_CHECKS
-
-Besides these, there are some local feature specific options, but my main
-focus here is to concentrate on macros that affect overall GLib behaviour
-and/or third party code.
-
-
-Notes on GLib's internal and global macros
-==========================================
-
-G_DISABLE_ASSERT
- The g_assert() and g_assert_not_reached() become non-functional
- with this define. The motivation is to speed up end-user apps by
- avoiding expensive checks.
- This macro can affect third-party code. Defining it when building GLib
- will only disable the assertion macros for GLib itself, but third-party code
- that passes -DG_DISABLE_ASSERT to the compiler upon its own build
- will end up with the non-functional variants after including glib.h
- as well.
- NOTE: Code inside the assertion macros should not have side effects
- that affect the operation of the program.
-G_DISABLE_CHECKS
- This macro is similar to G_DISABLE_ASSERT, it affects third-party
- code as mentioned above and the NOTE about G_DISABLE_ASSERT applies
- too. The macros that become non-functional here are
- g_return_if_fail(), g_return_val_if_fail(), g_return_if_reached() and
- g_return_val_if_reached().
- Additionally the glib_mem_profiler_table and g_mem_profile() from
- gmem.h become non-functional if this macro is supplied.
- This macro also switches off certain checks in the GSignal code.
-G_ENABLE_DEBUG
- Quite a bit of additional debugging code is compiled into GLib for this
- macro, and since it is a globally visible define, third-party code may
- be affected by it similar to G_DISABLE_ASSERT.
- The additional code executed/compiled for this macro currently involve:
- - extra validity checks for GDate
- - memory profiling traps in gmem.c (consult debugging.txt for details)
- - BREAKPOINT abortion for fatal log levels in gmessage.c instead of
- plain abort() to allow debuggers trapping and overriding them
- - added verbosity of gscanner.c to catch deprecated code paths
- - added verbosity of gutils.c to catch deprecated code paths
- - object ref/unref traps (consult debugging.txt) and object bookkeeping
- in gobject.c
- - extra validity checks in gsignal.c \ No newline at end of file
diff --git a/docs/meson-version.md b/docs/meson-version.md
index e1aa7407d..4a4ff825b 100644
--- a/docs/meson-version.md
+++ b/docs/meson-version.md
@@ -17,7 +17,9 @@ Policy
* Stable branches of GLib will not change their Meson dependency after the
first release of that stable series
* Unstable branches of GLib can bump their Meson dependency if
- - at least that version of Meson currently available in Debian Testing; or
+ - at least that version of Meson is currently [available in the freedesktop
+ SDK](https://gitlab.com/freedesktop-sdk/freedesktop-sdk/-/blob/master/elements/components/meson.bst); *and*
+ - at least that version of Meson is currently available in Debian Testing, or
- the Python version required by the new Meson dependency is available in
Debian Stable *and* the oldest currently-supported Ubuntu LTS
* The version of Meson used by GLib should be pinned and pre-installed in the
@@ -28,3 +30,8 @@ The reasoning behind allowing a version bump if the Python which Meson depends
on is available in Debian Stable is that it’s [straightforward to install a more
recent Meson version using
`pip`](https://mesonbuild.com/Getting-meson.html#installing-meson-with-pip).
+
+The reasoning behind requiring the version of Meson to be available in the
+freedesktop SDK is that it is used to build GLib on nightly pipelines in
+[gnome-build-meta](https://gitlab.gnome.org/GNOME/gnome-build-meta/), which is
+used to test GLib against multiple third party projects.
diff --git a/docs/reference/gio/gdbus-codegen.xml b/docs/reference/gio/gdbus-codegen.xml
index 5860fed97..91d1f0784 100644
--- a/docs/reference/gio/gdbus-codegen.xml
+++ b/docs/reference/gio/gdbus-codegen.xml
@@ -240,7 +240,7 @@
<listitem>
<para>
Generate reStructuredText Documentation for each D-Bus interface and
- put it in <filename><replaceable>OUTFILES</replaceable>-<replaceanle>NAME</replaceanle>.rst</filename>
+ put it in <filename><replaceable>OUTFILES</replaceable>-<replaceable>NAME</replaceable>.rst</filename>
where <literal>NAME</literal> is a place-holder for the interface
name, e.g. <literal>net.Corp.FooBar</literal> and so on.
</para>
@@ -1136,10 +1136,10 @@ on_handle_hello_world (MyAppFrobber *interface,
<refsect1 id="gdbus-code-stability">
<title>Stability Guarantees</title>
<para>
- The generated C functions are guaranteed to not change their ABI
- that is, if a method, signal or property does not change its
+ The generated C functions are guaranteed to not change their ABI.
+ That is, if a method, signal or property does not change its
signature in the introspection XML, the generated C functions will
- not change its C ABI either. The ABI of the generated instance and
+ not change their C ABI either. The ABI of the generated instance and
class structures will be preserved as well.
</para>
<para>
@@ -1150,13 +1150,13 @@ on_handle_hello_world (MyAppFrobber *interface,
a D-Bus method, property or signal or is added to a D-Bus
interface, then ABI of the generated #GInterface type is preserved
if, and only if, each added method, property signal is annotated
- with they <literal>org.gtk.GDBus.Since</literal> annotation using
+ with the <literal>org.gtk.GDBus.Since</literal> annotation using
a greater version number than previous versions.
</para>
<para>
The generated C code currently happens to be annotated with <ulink
url="http://www.gtk.org/gtk-doc/">gtk-doc</ulink> / <ulink
- url="https://wiki.gnome.org/Projects/GObjectIntrospection">GObject
+ url="https://gi.readthedocs.io/en/latest/">GObject
Introspection</ulink> comments / annotations. The layout and
contents might change in the future so no guarantees about
e.g. <literal>SECTION</literal> usage etc. is given.
diff --git a/docs/reference/gio/gdbus-object-manager-example/meson.build b/docs/reference/gio/gdbus-object-manager-example/meson.build
index 13cae5b48..8a80501c9 100644
--- a/docs/reference/gio/gdbus-object-manager-example/meson.build
+++ b/docs/reference/gio/gdbus-object-manager-example/meson.build
@@ -3,7 +3,7 @@ gdbus_object_manager_example_doc = gnome.gtkdoc('gdbus-object-manager-example',
namespace : 'example',
dependencies : [libgdbus_example_objectmanager_dep],
src_dir : 'gio/tests/gdbus-object-manager-example',
- scan_args : gtkdoc_common_scan_args + [
+ scan_args : [
'--rebuild-types',
],
install : false,
diff --git a/docs/reference/gio/gio-docs.xml b/docs/reference/gio/gio-docs.xml
index bee46875f..c68bf8a08 100644
--- a/docs/reference/gio/gio-docs.xml
+++ b/docs/reference/gio/gio-docs.xml
@@ -280,130 +280,138 @@
<xi:include href="xml/tree_index.sgml"/>
</chapter>
- <index id="api-index-full">
+ <chapter id="api-index-full">
<title id="index-all">Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-deprecated" role="deprecated">
+ </chapter>
+ <chapter id="api-index-deprecated" role="deprecated">
<title>Index of deprecated symbols</title>
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-18" role="2.18">
+ </chapter>
+ <chapter id="api-index-2-18" role="2.18">
<title>Index of new symbols in 2.18</title>
<xi:include href="xml/api-index-2.18.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-20" role="2.20">
+ </chapter>
+ <chapter id="api-index-2-20" role="2.20">
<title>Index of new symbols in 2.20</title>
<xi:include href="xml/api-index-2.20.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-22" role="2.22">
+ </chapter>
+ <chapter id="api-index-2-22" role="2.22">
<title>Index of new symbols in 2.22</title>
<xi:include href="xml/api-index-2.22.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-24" role="2.24">
+ </chapter>
+ <chapter id="api-index-2-24" role="2.24">
<title>Index of new symbols in 2.24</title>
<xi:include href="xml/api-index-2.24.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-26" role="2.26">
+ </chapter>
+ <chapter id="api-index-2-26" role="2.26">
<title>Index of new symbols in 2.26</title>
<xi:include href="xml/api-index-2.26.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-28" role="2.28">
+ </chapter>
+ <chapter id="api-index-2-28" role="2.28">
<title>Index of new symbols in 2.28</title>
<xi:include href="xml/api-index-2.28.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-30" role="2.30">
+ </chapter>
+ <chapter id="api-index-2-30" role="2.30">
<title>Index of new symbols in 2.30</title>
<xi:include href="xml/api-index-2.30.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-32" role="2.32">
+ </chapter>
+ <chapter id="api-index-2-32" role="2.32">
<title>Index of new symbols in 2.32</title>
<xi:include href="xml/api-index-2.32.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-34" role="2.34">
+ </chapter>
+ <chapter id="api-index-2-34" role="2.34">
<title>Index of new symbols in 2.34</title>
<xi:include href="xml/api-index-2.34.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-36" role="2.36">
+ </chapter>
+ <chapter id="api-index-2-36" role="2.36">
<title>Index of new symbols in 2.36</title>
<xi:include href="xml/api-index-2.36.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-38" role="2.38">
+ </chapter>
+ <chapter id="api-index-2-38" role="2.38">
<title>Index of new symbols in 2.38</title>
<xi:include href="xml/api-index-2.38.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-40" role="2.40">
+ </chapter>
+ <chapter id="api-index-2-40" role="2.40">
<title>Index of new symbols in 2.40</title>
<xi:include href="xml/api-index-2.40.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-42" role="2.42">
+ </chapter>
+ <chapter id="api-index-2-42" role="2.42">
<title>Index of new symbols in 2.42</title>
<xi:include href="xml/api-index-2.42.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-44" role="2.44">
+ </chapter>
+ <chapter id="api-index-2-44" role="2.44">
<title>Index of new symbols in 2.44</title>
<xi:include href="xml/api-index-2.44.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-46" role="2.46">
+ </chapter>
+ <chapter id="api-index-2-46" role="2.46">
<title>Index of new symbols in 2.46</title>
<xi:include href="xml/api-index-2.46.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-48" role="2.48">
+ </chapter>
+ <chapter id="api-index-2-48" role="2.48">
<title>Index of new symbols in 2.48</title>
<xi:include href="xml/api-index-2.48.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-50" role="2.50">
+ </chapter>
+ <chapter id="api-index-2-50" role="2.50">
<title>Index of new symbols in 2.50</title>
<xi:include href="xml/api-index-2.50.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-52" role="2.52">
+ </chapter>
+ <chapter id="api-index-2-52" role="2.52">
<title>Index of new symbols in 2.52</title>
<xi:include href="xml/api-index-2.52.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-54" role="2.54">
+ </chapter>
+ <chapter id="api-index-2-54" role="2.54">
<title>Index of new symbols in 2.54</title>
<xi:include href="xml/api-index-2.54.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-56" role="2.56">
+ </chapter>
+ <chapter id="api-index-2-56" role="2.56">
<title>Index of new symbols in 2.56</title>
<xi:include href="xml/api-index-2.56.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-58" role="2.58">
+ </chapter>
+ <chapter id="api-index-2-58" role="2.58">
<title>Index of new symbols in 2.58</title>
<xi:include href="xml/api-index-2.58.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-60" role="2.60">
+ </chapter>
+ <chapter id="api-index-2-60" role="2.60">
<title>Index of new symbols in 2.60</title>
<xi:include href="xml/api-index-2.60.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-62" role="2.62">
+ </chapter>
+ <chapter id="api-index-2-62" role="2.62">
<title>Index of new symbols in 2.62</title>
<xi:include href="xml/api-index-2.62.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-64" role="2.64">
+ </chapter>
+ <chapter id="api-index-2-64" role="2.64">
<title>Index of new symbols in 2.64</title>
<xi:include href="xml/api-index-2.64.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-66" role="2.66">
+ </chapter>
+ <chapter id="api-index-2-66" role="2.66">
<title>Index of new symbols in 2.66</title>
<xi:include href="xml/api-index-2.66.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-68" role="2.68">
+ </chapter>
+ <chapter id="api-index-2-68" role="2.68">
<title>Index of new symbols in 2.68</title>
<xi:include href="xml/api-index-2.68.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-70" role="2.70">
+ </chapter>
+ <chapter id="api-index-2-70" role="2.70">
<title>Index of new symbols in 2.70</title>
<xi:include href="xml/api-index-2.70.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-72" role="2.72">
+ </chapter>
+ <chapter id="api-index-2-72" role="2.72">
<title>Index of new symbols in 2.72</title>
<xi:include href="xml/api-index-2.72.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-74" role="2.74">
+ </chapter>
+ <chapter id="api-index-2-74" role="2.74">
<title>Index of new symbols in 2.74</title>
<xi:include href="xml/api-index-2.74.xml"><xi:fallback /></xi:include>
- </index>
+ </chapter>
+ <chapter id="api-index-2-76" role="2.76">
+ <title>Index of new symbols in 2.76</title>
+ <xi:include href="xml/api-index-2.76.xml"><xi:fallback /></xi:include>
+ </chapter>
+ <chapter id="api-index-2-78" role="2.78">
+ <title>Index of new symbols in 2.78</title>
+ <xi:include href="xml/api-index-2.78.xml"><xi:fallback /></xi:include>
+ </chapter>
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
diff --git a/docs/reference/gio/gio-sections-common.txt b/docs/reference/gio/gio-sections-common.txt
index 0ef50d747..43da80c50 100644
--- a/docs/reference/gio/gio-sections-common.txt
+++ b/docs/reference/gio/gio-sections-common.txt
@@ -90,6 +90,7 @@ g_file_new_tmp_dir_async
g_file_new_tmp_dir_finish
g_file_parse_name
g_file_new_build_filename
+g_file_new_build_filenamev
g_file_dup
g_file_hash
g_file_equal
@@ -350,6 +351,18 @@ G_FILE_ATTRIBUTE_OWNER_GROUP
G_FILE_ATTRIBUTE_THUMBNAIL_PATH
G_FILE_ATTRIBUTE_THUMBNAILING_FAILED
G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID
+G_FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL
+G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL
+G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL
+G_FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE
+G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE
+G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE
+G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE
+G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE
+G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE
+G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE
+G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE
+G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE
G_FILE_ATTRIBUTE_PREVIEW_ICON
G_FILE_ATTRIBUTE_FILESYSTEM_SIZE
G_FILE_ATTRIBUTE_FILESYSTEM_FREE
@@ -378,6 +391,7 @@ g_file_info_get_attribute_status
g_file_info_get_attribute_string
g_file_info_get_attribute_stringv
g_file_info_get_attribute_byte_string
+g_file_info_get_attribute_file_path
g_file_info_get_attribute_boolean
g_file_info_get_attribute_uint32
g_file_info_get_attribute_int32
@@ -389,6 +403,7 @@ g_file_info_set_attribute_status
g_file_info_set_attribute_string
g_file_info_set_attribute_stringv
g_file_info_set_attribute_byte_string
+g_file_info_set_attribute_file_path
g_file_info_set_attribute_boolean
g_file_info_set_attribute_uint32
g_file_info_set_attribute_int32
@@ -1922,6 +1937,8 @@ g_resolver_lookup_service
g_resolver_lookup_service_async
g_resolver_lookup_service_finish
g_resolver_free_targets
+g_resolver_get_timeout
+g_resolver_set_timeout
<SUBSECTION>
GResolverRecordType
g_resolver_lookup_records
@@ -3544,6 +3561,7 @@ g_action_map_lookup_action
GActionEntry
g_action_map_add_action_entries
g_action_map_add_action
+g_action_map_remove_action_entries
g_action_map_remove_action
<SUBSECTION Standard>
@@ -4316,6 +4334,7 @@ g_power_profile_level_get_type
<SECTION>
<FILE>gmenuexporter</FILE>
+G_MENU_EXPORTER_MAX_SECTION_SIZE
g_dbus_connection_export_menu_model
g_dbus_connection_unexport_menu_model
</SECTION>
@@ -4562,6 +4581,7 @@ g_task_set_check_cancellable
g_task_set_return_on_cancel
g_task_set_source_tag
g_task_set_name
+g_task_set_static_name
<SUBSECTION>
g_task_report_error
g_task_report_new_error
diff --git a/docs/reference/gio/gio-sections-win32.txt b/docs/reference/gio/gio-sections-win32.txt
index 52d137e93..de60cddc8 100644
--- a/docs/reference/gio/gio-sections-win32.txt
+++ b/docs/reference/gio/gio-sections-win32.txt
@@ -110,3 +110,13 @@ G_WIN32_REGISTRY_KEY_GET_CLASS
G_TYPE_WIN32_REGISTRY_SUBKEY_ITER
G_TYPE_WIN32_REGISTRY_VALUE_ITER
</SECTION>
+
+<SECTION>
+<FILE>gregistrysettingsbackend</FILE>
+<TITLE>GRegistrySettingsBackend</TITLE>
+GRegistrySettingsBackend
+g_registry_settings_backend_new
+
+<SUBSECTION Private>
+g_registry_settings_backend_get_type
+</SECTION>
diff --git a/docs/reference/gio/meson.build b/docs/reference/gio/meson.build
index 8c8e15fd8..38696a1c6 100644
--- a/docs/reference/gio/meson.build
+++ b/docs/reference/gio/meson.build
@@ -68,6 +68,7 @@ if get_option('gtk_doc')
'gproxyresolverportal.h',
'gregistrysettingsbackend.h',
'gresourcefile.h',
+ 'gsandbox.h',
'gsettingsbackendinternal.h',
'gsettings-mapping.h',
'gsettingsschema-internal.h',
@@ -98,6 +99,7 @@ if get_option('gtk_doc')
'gwin32volumemonitor.h',
'thumbnail-verify.h',
'xdp-dbus.h',
+ 'gio-visibility.h',
]
sections_files = files('gio-sections-common.txt')
@@ -106,7 +108,6 @@ if get_option('gtk_doc')
ignore_headers += [
'gfiledescriptorbased.h',
'gunixmounts.h',
- 'gunixfdlist.h',
'gunixfdmessage.h',
'gunixinputstream.h',
'gunixoutputstream.h',
@@ -187,7 +188,8 @@ if get_option('gtk_doc')
mode : 'none',
dependencies : [libgio_dep, libgobject_dep, libglib_dep],
src_dir : 'gio',
- scan_args : gtkdoc_common_scan_args + [
+ scan_args : [
+ '--ignore-decorators=' + ignore_decorators.replace('GLIB', 'GIO'),
'--rebuild-types',
'--ignore-headers=' + ' '.join(ignore_headers),
],
diff --git a/docs/reference/gio/overview.xml b/docs/reference/gio/overview.xml
index 5f2afc65e..b93a17a09 100644
--- a/docs/reference/gio/overview.xml
+++ b/docs/reference/gio/overview.xml
@@ -154,7 +154,7 @@
</para>
<figure id="gvfs-overview">
- <title>GIO in the GTK+ library stack</title>
+ <title>GIO in the GTK library stack</title>
<graphic fileref="gvfs-overview.png" format="PNG"></graphic>
</figure>
@@ -166,7 +166,7 @@
</para>
<para>
One of the big advantages of putting the VFS in the GLib layer
- is that GTK+ can directly use it, e.g. in the filechooser.
+ is that GTK can directly use it, e.g. in the filechooser.
</para>
</chapter>
diff --git a/docs/reference/glib/building.xml b/docs/reference/glib/building.xml
index f8a71db7d..edfdfbea3 100644
--- a/docs/reference/glib/building.xml
+++ b/docs/reference/glib/building.xml
@@ -22,15 +22,15 @@
is thus:
<literallayout>
- <userinput>meson _build</userinput>
- <userinput>ninja -C _build</userinput>
- <userinput>ninja -C _build install</userinput>
+ <userinput>meson setup _build</userinput>
+ <userinput>meson compile -C _build</userinput>
+ <userinput>meson install -C _build</userinput>
</literallayout>
On FreeBSD:
<literallayout>
- <userinput>env CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib -Wl,--disable-new-dtags" meson -Dxattr=false -Dinstalled_tests=true -Db_lundef=false _build</userinput>
- <userinput>ninja -C _build</userinput>
+ <userinput>env CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib -Wl,--disable-new-dtags" meson setup -Dxattr=false -Dinstalled_tests=true -Db_lundef=false _build</userinput>
+ <userinput>meson compile -C _build</userinput>
</literallayout>
</para>
@@ -49,7 +49,7 @@
aliasing and cannot be guaranteed to work.
</para>
<para>
- The GTK+ documentation contains
+ The GTK documentation contains
<ulink url="https://developer.gnome.org/gtk3/stable/gtk-building.html">further details</ulink>
about the build process and ways to influence it.
</para>
@@ -60,7 +60,7 @@
Before you can compile the GLib library, you need to have
various other tools and libraries installed on your system.
If you are building from a release archive, you will need
- <ulink url="https://wiki.gnome.org/Projects/GLib/CompilerRequirements">a compliant C toolchain</ulink>,
+ <ulink url="https://gitlab.gnome.org/GNOME/glib/-/blob/main/docs/toolchain-requirements.md">a compliant C toolchain</ulink>,
<application>Meson</application>, and <application>pkg-config</application>;
the requirements are the same when building from a Git repository clone
of GLib.
@@ -334,23 +334,6 @@
<filename>meson-logs</filename> directory.
</para>
</formalpara>
-
- <formalpara>
- <title><option>-Druntime_libdir=RELPATH</option></title>
-
- <para>
- Allows specifying a relative path to where to install the runtime
- libraries (meaning library files used for running, not developing,
- GLib applications). This can be used in operating system setups where
- programs using GLib needs to run before e.g. <filename>/usr</filename>
- is mounted.
- For example, if <varname>LIBDIR</varname> is <filename>/usr/lib</filename> and
- <filename>../../lib</filename> is passed to
- <option>-Druntime_libdir</option> then the
- runtime libraries are installed into <filename>/lib</filename> rather
- than <filename>/usr/lib</filename>.
- </para>
- </formalpara>
</refsect1>
</refentry>
diff --git a/docs/reference/glib/glib-docs.xml b/docs/reference/glib/glib-docs.xml
index b3928257e..5bf2e5cda 100644
--- a/docs/reference/glib/glib-docs.xml
+++ b/docs/reference/glib/glib-docs.xml
@@ -81,16 +81,17 @@
<xi:include href="xml/timers.xml" />
<xi:include href="xml/spawn.xml" />
<xi:include href="xml/fileutils.xml" />
+ <xi:include href="xml/gpathbuf.xml" />
<xi:include href="xml/guri.xml" />
<xi:include href="xml/ghostutils.xml" />
<xi:include href="xml/shell.xml" />
- <xi:include href="xml/option.xml" />
+ <xi:include href="xml/goptioncontext.xml" />
<xi:include href="xml/patterns.xml" />
<xi:include href="xml/gregex.xml" />
<xi:include href="regex-syntax.xml" />
<xi:include href="xml/markup.xml" />
- <xi:include href="xml/keyfile.xml" />
- <xi:include href="xml/bookmarkfile.xml" />
+ <xi:include href="xml/gkeyfile.xml" />
+ <xi:include href="xml/gbookmarkfile.xml" />
<xi:include href="xml/testing.xml" />
<xi:include href="xml/gunix.xml" />
<xi:include href="xml/windows.xml" />
@@ -144,162 +145,170 @@
<xi:include href="gtester-report.xml" />
</chapter>
- <index id="api-index-full">
+ <chapter id="api-index-full">
<title>Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-deprecated" role="deprecated">
+ </chapter>
+ <chapter id="api-index-deprecated" role="deprecated">
<title>Index of deprecated symbols</title>
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-2" role="2.2">
+ </chapter>
+ <chapter id="api-index-2-2" role="2.2">
<title>Index of new symbols in 2.2</title>
<xi:include href="xml/api-index-2.2.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-4" role="2.4">
+ </chapter>
+ <chapter id="api-index-2-4" role="2.4">
<title>Index of new symbols in 2.4</title>
<xi:include href="xml/api-index-2.4.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-6" role="2.6">
+ </chapter>
+ <chapter id="api-index-2-6" role="2.6">
<title>Index of new symbols in 2.6</title>
<xi:include href="xml/api-index-2.6.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-8" role="2.8">
+ </chapter>
+ <chapter id="api-index-2-8" role="2.8">
<title>Index of new symbols in 2.8</title>
<xi:include href="xml/api-index-2.8.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-10" role="2.10">
+ </chapter>
+ <chapter id="api-index-2-10" role="2.10">
<title>Index of new symbols in 2.10</title>
<xi:include href="xml/api-index-2.10.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-12" role="2.12">
+ </chapter>
+ <chapter id="api-index-2-12" role="2.12">
<title>Index of new symbols in 2.12</title>
<xi:include href="xml/api-index-2.12.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-14" role="2.14">
+ </chapter>
+ <chapter id="api-index-2-14" role="2.14">
<title>Index of new symbols in 2.14</title>
<xi:include href="xml/api-index-2.14.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-16" role="2.16">
+ </chapter>
+ <chapter id="api-index-2-16" role="2.16">
<title>Index of new symbols in 2.16</title>
<xi:include href="xml/api-index-2.16.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-18" role="2.18">
+ </chapter>
+ <chapter id="api-index-2-18" role="2.18">
<title>Index of new symbols in 2.18</title>
<xi:include href="xml/api-index-2.18.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-20" role="2.20">
+ </chapter>
+ <chapter id="api-index-2-20" role="2.20">
<title>Index of new symbols in 2.20</title>
<xi:include href="xml/api-index-2.20.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-22" role="2.22">
+ </chapter>
+ <chapter id="api-index-2-22" role="2.22">
<title>Index of new symbols in 2.22</title>
<xi:include href="xml/api-index-2.22.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-24" role="2.24">
+ </chapter>
+ <chapter id="api-index-2-24" role="2.24">
<title>Index of new symbols in 2.24</title>
<xi:include href="xml/api-index-2.24.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-26" role="2.26">
+ </chapter>
+ <chapter id="api-index-2-26" role="2.26">
<title>Index of new symbols in 2.26</title>
<xi:include href="xml/api-index-2.26.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-28" role="2.28">
+ </chapter>
+ <chapter id="api-index-2-28" role="2.28">
<title>Index of new symbols in 2.28</title>
<xi:include href="xml/api-index-2.28.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-30" role="2.30">
+ </chapter>
+ <chapter id="api-index-2-30" role="2.30">
<title>Index of new symbols in 2.30</title>
<xi:include href="xml/api-index-2.30.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-32" role="2.32">
+ </chapter>
+ <chapter id="api-index-2-32" role="2.32">
<title>Index of new symbols in 2.32</title>
<xi:include href="xml/api-index-2.32.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-34" role="2.34">
+ </chapter>
+ <chapter id="api-index-2-34" role="2.34">
<title>Index of new symbols in 2.34</title>
<xi:include href="xml/api-index-2.34.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-36" role="2.36">
+ </chapter>
+ <chapter id="api-index-2-36" role="2.36">
<title>Index of new symbols in 2.36</title>
<xi:include href="xml/api-index-2.36.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-38" role="2.38">
+ </chapter>
+ <chapter id="api-index-2-38" role="2.38">
<title>Index of new symbols in 2.38</title>
<xi:include href="xml/api-index-2.38.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-40" role="2.40">
+ </chapter>
+ <chapter id="api-index-2-40" role="2.40">
<title>Index of new symbols in 2.40</title>
<xi:include href="xml/api-index-2.40.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-42" role="2.42">
+ </chapter>
+ <chapter id="api-index-2-42" role="2.42">
<title>Index of new symbols in 2.42</title>
<xi:include href="xml/api-index-2.42.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-44" role="2.44">
+ </chapter>
+ <chapter id="api-index-2-44" role="2.44">
<title>Index of new symbols in 2.44</title>
<xi:include href="xml/api-index-2.44.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-46" role="2.46">
+ </chapter>
+ <chapter id="api-index-2-46" role="2.46">
<title>Index of new symbols in 2.46</title>
<xi:include href="xml/api-index-2.46.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-48" role="2.48">
+ </chapter>
+ <chapter id="api-index-2-48" role="2.48">
<title>Index of new symbols in 2.48</title>
<xi:include href="xml/api-index-2.48.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-50" role="2.50">
+ </chapter>
+ <chapter id="api-index-2-50" role="2.50">
<title>Index of new symbols in 2.50</title>
<xi:include href="xml/api-index-2.50.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-52" role="2.52">
+ </chapter>
+ <chapter id="api-index-2-52" role="2.52">
<title>Index of new symbols in 2.52</title>
<xi:include href="xml/api-index-2.52.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-54" role="2.54">
+ </chapter>
+ <chapter id="api-index-2-54" role="2.54">
<title>Index of new symbols in 2.54</title>
<xi:include href="xml/api-index-2.54.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-56" role="2.56">
+ </chapter>
+ <chapter id="api-index-2-56" role="2.56">
<title>Index of new symbols in 2.56</title>
<xi:include href="xml/api-index-2.56.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-58" role="2.58">
+ </chapter>
+ <chapter id="api-index-2-58" role="2.58">
<title>Index of new symbols in 2.58</title>
<xi:include href="xml/api-index-2.58.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-60" role="2.60">
+ </chapter>
+ <chapter id="api-index-2-60" role="2.60">
<title>Index of new symbols in 2.60</title>
<xi:include href="xml/api-index-2.60.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-62" role="2.62">
+ </chapter>
+ <chapter id="api-index-2-62" role="2.62">
<title>Index of new symbols in 2.62</title>
<xi:include href="xml/api-index-2.62.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-64" role="2.64">
+ </chapter>
+ <chapter id="api-index-2-64" role="2.64">
<title>Index of new symbols in 2.64</title>
<xi:include href="xml/api-index-2.64.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-66" role="2.66">
+ </chapter>
+ <chapter id="api-index-2-66" role="2.66">
<title>Index of new symbols in 2.66</title>
<xi:include href="xml/api-index-2.66.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-68" role="2.68">
+ </chapter>
+ <chapter id="api-index-2-68" role="2.68">
<title>Index of new symbols in 2.68</title>
<xi:include href="xml/api-index-2.68.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-70" role="2.70">
+ </chapter>
+ <chapter id="api-index-2-70" role="2.70">
<title>Index of new symbols in 2.70</title>
<xi:include href="xml/api-index-2.70.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-72" role="2.72">
+ </chapter>
+ <chapter id="api-index-2-72" role="2.72">
<title>Index of new symbols in 2.72</title>
<xi:include href="xml/api-index-2.72.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-74" role="2.74">
+ </chapter>
+ <chapter id="api-index-2-74" role="2.74">
<title>Index of new symbols in 2.74</title>
<xi:include href="xml/api-index-2.74.xml"><xi:fallback /></xi:include>
- </index>
+ </chapter>
+ <chapter id="api-index-2-76" role="2.76">
+ <title>Index of new symbols in 2.76</title>
+ <xi:include href="xml/api-index-2.76.xml"><xi:fallback /></xi:include>
+ </chapter>
+ <chapter id="api-index-2-78" role="2.78">
+ <title>Index of new symbols in 2.78</title>
+ <xi:include href="xml/api-index-2.78.xml"><xi:fallback /></xi:include>
+ </chapter>
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt.in
index 38b35386e..5258544a3 100644
--- a/docs/reference/glib/glib-sections.txt
+++ b/docs/reference/glib/glib-sections.txt.in
@@ -116,355 +116,22 @@ GLIB_MICRO_VERSION
GLIB_CHECK_VERSION
<SUBSECTION>
-GLIB_VERSION_2_26
-GLIB_VERSION_2_28
-GLIB_VERSION_2_30
-GLIB_VERSION_2_32
-GLIB_VERSION_2_34
-GLIB_VERSION_2_36
-GLIB_VERSION_2_38
-GLIB_VERSION_2_40
-GLIB_VERSION_2_42
-GLIB_VERSION_2_44
-GLIB_VERSION_2_46
-GLIB_VERSION_2_48
-GLIB_VERSION_2_50
-GLIB_VERSION_2_52
-GLIB_VERSION_2_54
-GLIB_VERSION_2_56
-GLIB_VERSION_2_58
-GLIB_VERSION_2_60
-GLIB_VERSION_2_62
-GLIB_VERSION_2_64
-GLIB_VERSION_2_66
-GLIB_VERSION_2_68
-GLIB_VERSION_2_70
-GLIB_VERSION_2_72
-GLIB_VERSION_2_74
GLIB_VERSION_CUR_STABLE
GLIB_VERSION_PREV_STABLE
GLIB_VERSION_MIN_REQUIRED
GLIB_VERSION_MAX_ALLOWED
GLIB_DISABLE_DEPRECATION_WARNINGS
+@GLIB_VERSIONS@
<SUBSECTION Private>
G_ENCODE_VERSION
-GLIB_AVAILABLE_ENUMERATOR_IN_2_26
-GLIB_AVAILABLE_ENUMERATOR_IN_2_28
-GLIB_AVAILABLE_ENUMERATOR_IN_2_30
-GLIB_AVAILABLE_ENUMERATOR_IN_2_32
-GLIB_AVAILABLE_ENUMERATOR_IN_2_34
-GLIB_AVAILABLE_ENUMERATOR_IN_2_36
-GLIB_AVAILABLE_ENUMERATOR_IN_2_38
-GLIB_AVAILABLE_ENUMERATOR_IN_2_40
-GLIB_AVAILABLE_ENUMERATOR_IN_2_42
-GLIB_AVAILABLE_ENUMERATOR_IN_2_44
-GLIB_AVAILABLE_ENUMERATOR_IN_2_46
-GLIB_AVAILABLE_ENUMERATOR_IN_2_48
-GLIB_AVAILABLE_ENUMERATOR_IN_2_50
-GLIB_AVAILABLE_ENUMERATOR_IN_2_52
-GLIB_AVAILABLE_ENUMERATOR_IN_2_54
-GLIB_AVAILABLE_ENUMERATOR_IN_2_56
-GLIB_AVAILABLE_ENUMERATOR_IN_2_58
-GLIB_AVAILABLE_ENUMERATOR_IN_2_60
-GLIB_AVAILABLE_ENUMERATOR_IN_2_62
-GLIB_AVAILABLE_ENUMERATOR_IN_2_64
-GLIB_AVAILABLE_ENUMERATOR_IN_2_66
-GLIB_AVAILABLE_ENUMERATOR_IN_2_68
-GLIB_AVAILABLE_ENUMERATOR_IN_2_70
-GLIB_AVAILABLE_ENUMERATOR_IN_2_72
-GLIB_AVAILABLE_ENUMERATOR_IN_2_74
GLIB_AVAILABLE_IN_ALL
-GLIB_AVAILABLE_IN_2_26
-GLIB_AVAILABLE_IN_2_28
-GLIB_AVAILABLE_IN_2_30
-GLIB_AVAILABLE_IN_2_32
-GLIB_AVAILABLE_IN_2_34
-GLIB_AVAILABLE_IN_2_36
-GLIB_AVAILABLE_IN_2_38
-GLIB_AVAILABLE_IN_2_40
-GLIB_AVAILABLE_IN_2_42
-GLIB_AVAILABLE_IN_2_44
-GLIB_AVAILABLE_IN_2_46
-GLIB_AVAILABLE_IN_2_48
-GLIB_AVAILABLE_IN_2_50
-GLIB_AVAILABLE_IN_2_52
-GLIB_AVAILABLE_IN_2_54
-GLIB_AVAILABLE_IN_2_56
-GLIB_AVAILABLE_IN_2_58
-GLIB_AVAILABLE_IN_2_60
-GLIB_AVAILABLE_IN_2_62
-GLIB_AVAILABLE_IN_2_64
-GLIB_AVAILABLE_IN_2_66
-GLIB_AVAILABLE_IN_2_68
-GLIB_AVAILABLE_IN_2_70
-GLIB_AVAILABLE_IN_2_72
-GLIB_AVAILABLE_IN_2_74
-GLIB_AVAILABLE_MACRO_IN_2_26
-GLIB_AVAILABLE_MACRO_IN_2_28
-GLIB_AVAILABLE_MACRO_IN_2_30
-GLIB_AVAILABLE_MACRO_IN_2_32
-GLIB_AVAILABLE_MACRO_IN_2_34
-GLIB_AVAILABLE_MACRO_IN_2_36
-GLIB_AVAILABLE_MACRO_IN_2_38
-GLIB_AVAILABLE_MACRO_IN_2_40
-GLIB_AVAILABLE_MACRO_IN_2_42
-GLIB_AVAILABLE_MACRO_IN_2_44
-GLIB_AVAILABLE_MACRO_IN_2_46
-GLIB_AVAILABLE_MACRO_IN_2_48
-GLIB_AVAILABLE_MACRO_IN_2_50
-GLIB_AVAILABLE_MACRO_IN_2_52
-GLIB_AVAILABLE_MACRO_IN_2_54
-GLIB_AVAILABLE_MACRO_IN_2_56
-GLIB_AVAILABLE_MACRO_IN_2_58
-GLIB_AVAILABLE_MACRO_IN_2_60
-GLIB_AVAILABLE_MACRO_IN_2_62
-GLIB_AVAILABLE_MACRO_IN_2_64
-GLIB_AVAILABLE_MACRO_IN_2_66
-GLIB_AVAILABLE_MACRO_IN_2_68
-GLIB_AVAILABLE_MACRO_IN_2_70
-GLIB_AVAILABLE_MACRO_IN_2_72
-GLIB_AVAILABLE_MACRO_IN_2_74
-GLIB_AVAILABLE_STATIC_INLINE_IN_2_44
-GLIB_AVAILABLE_STATIC_INLINE_IN_2_60
-GLIB_AVAILABLE_STATIC_INLINE_IN_2_62
-GLIB_AVAILABLE_STATIC_INLINE_IN_2_64
-GLIB_AVAILABLE_STATIC_INLINE_IN_2_66
-GLIB_AVAILABLE_STATIC_INLINE_IN_2_68
-GLIB_AVAILABLE_STATIC_INLINE_IN_2_70
-GLIB_AVAILABLE_STATIC_INLINE_IN_2_72
-GLIB_AVAILABLE_STATIC_INLINE_IN_2_74
-GLIB_AVAILABLE_TYPE_IN_2_26
-GLIB_AVAILABLE_TYPE_IN_2_28
-GLIB_AVAILABLE_TYPE_IN_2_30
-GLIB_AVAILABLE_TYPE_IN_2_32
-GLIB_AVAILABLE_TYPE_IN_2_34
-GLIB_AVAILABLE_TYPE_IN_2_36
-GLIB_AVAILABLE_TYPE_IN_2_38
-GLIB_AVAILABLE_TYPE_IN_2_40
-GLIB_AVAILABLE_TYPE_IN_2_42
-GLIB_AVAILABLE_TYPE_IN_2_44
-GLIB_AVAILABLE_TYPE_IN_2_46
-GLIB_AVAILABLE_TYPE_IN_2_48
-GLIB_AVAILABLE_TYPE_IN_2_50
-GLIB_AVAILABLE_TYPE_IN_2_52
-GLIB_AVAILABLE_TYPE_IN_2_54
-GLIB_AVAILABLE_TYPE_IN_2_56
-GLIB_AVAILABLE_TYPE_IN_2_58
-GLIB_AVAILABLE_TYPE_IN_2_60
-GLIB_AVAILABLE_TYPE_IN_2_62
-GLIB_AVAILABLE_TYPE_IN_2_64
-GLIB_AVAILABLE_TYPE_IN_2_66
-GLIB_AVAILABLE_TYPE_IN_2_68
-GLIB_AVAILABLE_TYPE_IN_2_70
-GLIB_AVAILABLE_TYPE_IN_2_72
-GLIB_AVAILABLE_TYPE_IN_2_74
GLIB_DEPRECATED_ENUMERATOR
GLIB_DEPRECATED_ENUMERATOR_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_26
-GLIB_DEPRECATED_ENUMERATOR_IN_2_26_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_28
-GLIB_DEPRECATED_ENUMERATOR_IN_2_28_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_30
-GLIB_DEPRECATED_ENUMERATOR_IN_2_30_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_32
-GLIB_DEPRECATED_ENUMERATOR_IN_2_32_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_34
-GLIB_DEPRECATED_ENUMERATOR_IN_2_34_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_36
-GLIB_DEPRECATED_ENUMERATOR_IN_2_36_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_38
-GLIB_DEPRECATED_ENUMERATOR_IN_2_38_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_40
-GLIB_DEPRECATED_ENUMERATOR_IN_2_40_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_42
-GLIB_DEPRECATED_ENUMERATOR_IN_2_42_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_44
-GLIB_DEPRECATED_ENUMERATOR_IN_2_44_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_46
-GLIB_DEPRECATED_ENUMERATOR_IN_2_46_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_48
-GLIB_DEPRECATED_ENUMERATOR_IN_2_48_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_50
-GLIB_DEPRECATED_ENUMERATOR_IN_2_50_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_52
-GLIB_DEPRECATED_ENUMERATOR_IN_2_52_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_54
-GLIB_DEPRECATED_ENUMERATOR_IN_2_54_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_56
-GLIB_DEPRECATED_ENUMERATOR_IN_2_56_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_58
-GLIB_DEPRECATED_ENUMERATOR_IN_2_58_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_60
-GLIB_DEPRECATED_ENUMERATOR_IN_2_60_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_62
-GLIB_DEPRECATED_ENUMERATOR_IN_2_62_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_64
-GLIB_DEPRECATED_ENUMERATOR_IN_2_64_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_66
-GLIB_DEPRECATED_ENUMERATOR_IN_2_66_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_68
-GLIB_DEPRECATED_ENUMERATOR_IN_2_68_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_70
-GLIB_DEPRECATED_ENUMERATOR_IN_2_70_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_72
-GLIB_DEPRECATED_ENUMERATOR_IN_2_72_FOR
-GLIB_DEPRECATED_ENUMERATOR_IN_2_74
-GLIB_DEPRECATED_ENUMERATOR_IN_2_74_FOR
-GLIB_DEPRECATED_IN_2_26
-GLIB_DEPRECATED_IN_2_26_FOR
-GLIB_DEPRECATED_IN_2_28
-GLIB_DEPRECATED_IN_2_28_FOR
-GLIB_DEPRECATED_IN_2_30
-GLIB_DEPRECATED_IN_2_30_FOR
-GLIB_DEPRECATED_IN_2_32
-GLIB_DEPRECATED_IN_2_32_FOR
-GLIB_DEPRECATED_IN_2_34
-GLIB_DEPRECATED_IN_2_34_FOR
-GLIB_DEPRECATED_IN_2_36
-GLIB_DEPRECATED_IN_2_36_FOR
-GLIB_DEPRECATED_IN_2_38
-GLIB_DEPRECATED_IN_2_38_FOR
-GLIB_DEPRECATED_IN_2_40
-GLIB_DEPRECATED_IN_2_40_FOR
-GLIB_DEPRECATED_IN_2_42
-GLIB_DEPRECATED_IN_2_42_FOR
-GLIB_DEPRECATED_IN_2_44
-GLIB_DEPRECATED_IN_2_44_FOR
-GLIB_DEPRECATED_IN_2_46
-GLIB_DEPRECATED_IN_2_46_FOR
-GLIB_DEPRECATED_IN_2_48
-GLIB_DEPRECATED_IN_2_48_FOR
-GLIB_DEPRECATED_IN_2_50
-GLIB_DEPRECATED_IN_2_50_FOR
-GLIB_DEPRECATED_IN_2_52
-GLIB_DEPRECATED_IN_2_52_FOR
-GLIB_DEPRECATED_IN_2_54
-GLIB_DEPRECATED_IN_2_54_FOR
-GLIB_DEPRECATED_IN_2_56
-GLIB_DEPRECATED_IN_2_56_FOR
-GLIB_DEPRECATED_IN_2_58
-GLIB_DEPRECATED_IN_2_58_FOR
-GLIB_DEPRECATED_IN_2_60
-GLIB_DEPRECATED_IN_2_60_FOR
-GLIB_DEPRECATED_IN_2_62
-GLIB_DEPRECATED_IN_2_62_FOR
-GLIB_DEPRECATED_IN_2_64
-GLIB_DEPRECATED_IN_2_64_FOR
-GLIB_DEPRECATED_IN_2_66
-GLIB_DEPRECATED_IN_2_66_FOR
-GLIB_DEPRECATED_IN_2_68
-GLIB_DEPRECATED_IN_2_68_FOR
-GLIB_DEPRECATED_IN_2_70
-GLIB_DEPRECATED_IN_2_70_FOR
-GLIB_DEPRECATED_IN_2_72
-GLIB_DEPRECATED_IN_2_72_FOR
-GLIB_DEPRECATED_IN_2_74
-GLIB_DEPRECATED_IN_2_74_FOR
GLIB_DEPRECATED_MACRO
GLIB_DEPRECATED_MACRO_FOR
-GLIB_DEPRECATED_MACRO_IN_2_26
-GLIB_DEPRECATED_MACRO_IN_2_26_FOR
-GLIB_DEPRECATED_MACRO_IN_2_28
-GLIB_DEPRECATED_MACRO_IN_2_28_FOR
-GLIB_DEPRECATED_MACRO_IN_2_30
-GLIB_DEPRECATED_MACRO_IN_2_30_FOR
-GLIB_DEPRECATED_MACRO_IN_2_32
-GLIB_DEPRECATED_MACRO_IN_2_32_FOR
-GLIB_DEPRECATED_MACRO_IN_2_34
-GLIB_DEPRECATED_MACRO_IN_2_34_FOR
-GLIB_DEPRECATED_MACRO_IN_2_36
-GLIB_DEPRECATED_MACRO_IN_2_36_FOR
-GLIB_DEPRECATED_MACRO_IN_2_38
-GLIB_DEPRECATED_MACRO_IN_2_38_FOR
-GLIB_DEPRECATED_MACRO_IN_2_40
-GLIB_DEPRECATED_MACRO_IN_2_40_FOR
-GLIB_DEPRECATED_MACRO_IN_2_42
-GLIB_DEPRECATED_MACRO_IN_2_42_FOR
-GLIB_DEPRECATED_MACRO_IN_2_44
-GLIB_DEPRECATED_MACRO_IN_2_44_FOR
-GLIB_DEPRECATED_MACRO_IN_2_46
-GLIB_DEPRECATED_MACRO_IN_2_46_FOR
-GLIB_DEPRECATED_MACRO_IN_2_48
-GLIB_DEPRECATED_MACRO_IN_2_48_FOR
-GLIB_DEPRECATED_MACRO_IN_2_50
-GLIB_DEPRECATED_MACRO_IN_2_50_FOR
-GLIB_DEPRECATED_MACRO_IN_2_52
-GLIB_DEPRECATED_MACRO_IN_2_52_FOR
-GLIB_DEPRECATED_MACRO_IN_2_54
-GLIB_DEPRECATED_MACRO_IN_2_54_FOR
-GLIB_DEPRECATED_MACRO_IN_2_56
-GLIB_DEPRECATED_MACRO_IN_2_56_FOR
-GLIB_DEPRECATED_MACRO_IN_2_58
-GLIB_DEPRECATED_MACRO_IN_2_58_FOR
-GLIB_DEPRECATED_MACRO_IN_2_60
-GLIB_DEPRECATED_MACRO_IN_2_60_FOR
-GLIB_DEPRECATED_MACRO_IN_2_62
-GLIB_DEPRECATED_MACRO_IN_2_62_FOR
-GLIB_DEPRECATED_MACRO_IN_2_64
-GLIB_DEPRECATED_MACRO_IN_2_64_FOR
-GLIB_DEPRECATED_MACRO_IN_2_66
-GLIB_DEPRECATED_MACRO_IN_2_66_FOR
-GLIB_DEPRECATED_MACRO_IN_2_68
-GLIB_DEPRECATED_MACRO_IN_2_68_FOR
-GLIB_DEPRECATED_MACRO_IN_2_70
-GLIB_DEPRECATED_MACRO_IN_2_70_FOR
-GLIB_DEPRECATED_MACRO_IN_2_72
-GLIB_DEPRECATED_MACRO_IN_2_72_FOR
-GLIB_DEPRECATED_MACRO_IN_2_74
-GLIB_DEPRECATED_MACRO_IN_2_74_FOR
GLIB_DEPRECATED_TYPE
GLIB_DEPRECATED_TYPE_FOR
-GLIB_DEPRECATED_TYPE_IN_2_26
-GLIB_DEPRECATED_TYPE_IN_2_26_FOR
-GLIB_DEPRECATED_TYPE_IN_2_28
-GLIB_DEPRECATED_TYPE_IN_2_28_FOR
-GLIB_DEPRECATED_TYPE_IN_2_30
-GLIB_DEPRECATED_TYPE_IN_2_30_FOR
-GLIB_DEPRECATED_TYPE_IN_2_32
-GLIB_DEPRECATED_TYPE_IN_2_32_FOR
-GLIB_DEPRECATED_TYPE_IN_2_34
-GLIB_DEPRECATED_TYPE_IN_2_34_FOR
-GLIB_DEPRECATED_TYPE_IN_2_36
-GLIB_DEPRECATED_TYPE_IN_2_36_FOR
-GLIB_DEPRECATED_TYPE_IN_2_38
-GLIB_DEPRECATED_TYPE_IN_2_38_FOR
-GLIB_DEPRECATED_TYPE_IN_2_40
-GLIB_DEPRECATED_TYPE_IN_2_40_FOR
-GLIB_DEPRECATED_TYPE_IN_2_42
-GLIB_DEPRECATED_TYPE_IN_2_42_FOR
-GLIB_DEPRECATED_TYPE_IN_2_44
-GLIB_DEPRECATED_TYPE_IN_2_44_FOR
-GLIB_DEPRECATED_TYPE_IN_2_46
-GLIB_DEPRECATED_TYPE_IN_2_46_FOR
-GLIB_DEPRECATED_TYPE_IN_2_48
-GLIB_DEPRECATED_TYPE_IN_2_48_FOR
-GLIB_DEPRECATED_TYPE_IN_2_50
-GLIB_DEPRECATED_TYPE_IN_2_50_FOR
-GLIB_DEPRECATED_TYPE_IN_2_52
-GLIB_DEPRECATED_TYPE_IN_2_52_FOR
-GLIB_DEPRECATED_TYPE_IN_2_54
-GLIB_DEPRECATED_TYPE_IN_2_54_FOR
-GLIB_DEPRECATED_TYPE_IN_2_56
-GLIB_DEPRECATED_TYPE_IN_2_56_FOR
-GLIB_DEPRECATED_TYPE_IN_2_58
-GLIB_DEPRECATED_TYPE_IN_2_58_FOR
-GLIB_DEPRECATED_TYPE_IN_2_60
-GLIB_DEPRECATED_TYPE_IN_2_60_FOR
-GLIB_DEPRECATED_TYPE_IN_2_62
-GLIB_DEPRECATED_TYPE_IN_2_62_FOR
-GLIB_DEPRECATED_TYPE_IN_2_64
-GLIB_DEPRECATED_TYPE_IN_2_64_FOR
-GLIB_DEPRECATED_TYPE_IN_2_66
-GLIB_DEPRECATED_TYPE_IN_2_66_FOR
-GLIB_DEPRECATED_TYPE_IN_2_68
-GLIB_DEPRECATED_TYPE_IN_2_68_FOR
-GLIB_DEPRECATED_TYPE_IN_2_70
-GLIB_DEPRECATED_TYPE_IN_2_70_FOR
-GLIB_DEPRECATED_TYPE_IN_2_72
-GLIB_DEPRECATED_TYPE_IN_2_72_FOR
-GLIB_DEPRECATED_TYPE_IN_2_74
-GLIB_DEPRECATED_TYPE_IN_2_74_FOR
GLIB_VERSION_CUR_STABLE
GLIB_VERSION_PREV_STABLE
</SECTION>
@@ -744,6 +411,12 @@ G_GNUC_INTERNAL
G_GNUC_MAY_ALIAS
<SUBSECTION>
+G_C_STD_VERSION
+G_C_STD_CHECK_VERSION
+G_CXX_STD_VERSION
+G_CXX_STD_CHECK_VERSION
+
+<SUBSECTION>
G_DEPRECATED
G_DEPRECATED_FOR
G_UNAVAILABLE
@@ -913,6 +586,7 @@ g_timeout_add_once
g_timeout_add_full
g_timeout_add_seconds
g_timeout_add_seconds_full
+g_timeout_add_seconds_once
<SUBSECTION>
g_idle_source_new
@@ -1409,6 +1083,7 @@ g_try_realloc_n
<SUBSECTION>
g_free
+g_free_sized
g_clear_pointer
g_steal_pointer
g_mem_gc_friendly
@@ -1423,6 +1098,7 @@ g_newa0
g_aligned_alloc
g_aligned_alloc0
g_aligned_free
+g_aligned_free_sized
<SUBSECTION>
g_memmove
@@ -1678,7 +1354,7 @@ g_shell_error_quark
<SECTION>
<TITLE>Commandline option parser</TITLE>
-<FILE>option</FILE>
+<FILE>goptioncontext</FILE>
GOptionError
G_OPTION_ERROR
GOptionArgFunc
@@ -1786,6 +1462,8 @@ g_creat
g_chdir
g_utime
g_close
+g_clear_fd
+g_autofd
<SUBSECTION Private>
g_file_error_quark
@@ -1797,6 +1475,7 @@ utimbuf
<TITLE>String Utility Functions</TITLE>
<FILE>string_utils</FILE>
<INCLUDE>glib.h,glib/gprintf.h</INCLUDE>
+g_set_str
g_strdup
g_strndup
g_strdupv
@@ -2385,7 +2064,7 @@ GErrorType
<SECTION>
<TITLE>Key-value file parser</TITLE>
-<FILE>keyfile</FILE>
+<FILE>gkeyfile</FILE>
GKeyFile
G_KEY_FILE_ERROR
GKeyFileError
@@ -2480,11 +2159,12 @@ g_key_file_get_type
<SECTION>
<TITLE>Bookmark file parser</TITLE>
-<FILE>bookmarkfile</FILE>
+<FILE>gbookmarkfile</FILE>
GBookmarkFile
G_BOOKMARK_FILE_ERROR
GBookmarkFileError
g_bookmark_file_new
+g_bookmark_file_copy
g_bookmark_file_free
g_bookmark_file_load_from_file
g_bookmark_file_load_from_data
@@ -2901,13 +2581,17 @@ GHFunc
g_hash_table_remove
g_hash_table_steal
g_hash_table_steal_extended
+g_hash_table_steal_all_keys
+g_hash_table_steal_all_values
g_hash_table_foreach_remove
g_hash_table_foreach_steal
g_hash_table_remove_all
g_hash_table_steal_all
g_hash_table_get_keys
g_hash_table_get_values
+g_hash_table_get_values_as_ptr_array
g_hash_table_get_keys_as_array
+g_hash_table_get_keys_as_ptr_array
GHRFunc
g_hash_table_freeze
g_hash_table_thaw
@@ -2941,6 +2625,7 @@ g_str_hash
<FILE>strings</FILE>
GString
g_string_new
+g_string_new_take
g_string_new_len
g_string_sized_new
g_string_assign
@@ -2971,6 +2656,7 @@ g_string_truncate
g_string_set_size
g_string_free
g_string_free_to_bytes
+g_string_free_and_steal
<SUBSECTION>
g_string_up
@@ -3003,6 +2689,8 @@ g_string_chunk_free
<FILE>arrays</FILE>
GArray
g_array_new
+g_array_new_take
+g_array_new_take_zero_terminated
g_array_steal
g_array_sized_new
g_array_copy
@@ -3038,6 +2726,10 @@ g_ptr_array_new_with_free_func
g_ptr_array_copy
g_ptr_array_new_full
g_ptr_array_new_null_terminated
+g_ptr_array_new_take
+g_ptr_array_new_take_null_terminated
+g_ptr_array_new_from_array
+g_ptr_array_new_from_null_terminated_array
g_ptr_array_set_free_func
g_ptr_array_is_null_terminated
g_ptr_array_ref
@@ -3055,6 +2747,8 @@ g_ptr_array_steal_index
g_ptr_array_steal_index_fast
g_ptr_array_sort
g_ptr_array_sort_with_data
+g_ptr_array_sort_values
+g_ptr_array_sort_values_with_data
g_ptr_array_set_size
g_ptr_array_index
g_ptr_array_free
@@ -3437,6 +3131,7 @@ g_utf8_strchr
g_utf8_strrchr
g_utf8_strreverse
g_utf8_substring
+g_utf8_truncate_middle
g_utf8_validate
g_utf8_validate_len
g_utf8_make_valid
@@ -3664,6 +3359,7 @@ g_test_trap_assert_stdout_unmatched
g_test_trap_assert_stderr
g_test_trap_assert_stderr_unmatched
g_test_trap_fork
+g_test_disable_crash_reporting
g_test_rand_bit
g_test_rand_int
@@ -3709,6 +3405,7 @@ g_test_trap_assertions
g_assertion_message
g_assertion_message_expr
g_assertion_message_cmpstr
+g_assertion_message_cmpint
g_assertion_message_cmpnum
g_assertion_message_error
g_test_assert_expected_messages_internal
@@ -3997,12 +3694,14 @@ g_ref_count_init
g_ref_count_inc
g_ref_count_dec
g_ref_count_compare
+G_REF_COUNT_INIT
<SUBSECTION>
gatomicrefcount
g_atomic_ref_count_init
g_atomic_ref_count_inc
g_atomic_ref_count_dec
g_atomic_ref_count_compare
+G_ATOMIC_REF_COUNT_INIT
</SECTION>
<SECTION>
@@ -4041,3 +3740,24 @@ g_ref_string_acquire
g_ref_string_release
g_ref_string_length
</SECTION>
+
+<SECTION>
+<FILE>gpathbuf</FILE>
+GPathBuf
+G_PATH_BUF_INIT
+g_path_buf_new
+g_path_buf_new_from_path
+g_path_buf_init
+g_path_buf_init_from_path
+g_path_buf_clear
+g_path_buf_clear_to_path
+g_path_buf_free
+g_path_buf_free_to_path
+g_path_buf_push
+g_path_buf_pop
+g_path_buf_set_filename
+g_path_buf_set_extension
+g_path_buf_to_path
+g_path_buf_copy
+g_path_buf_equal
+</SECTION>
diff --git a/docs/reference/glib/gvariant-byte-boundaries.svg b/docs/reference/glib/gvariant-byte-boundaries.svg
new file mode 100644
index 000000000..94cd6a4ef
--- /dev/null
+++ b/docs/reference/glib/gvariant-byte-boundaries.svg
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="43.395473mm"
+ height="14.533744mm"
+ viewBox="0 0 43.395473 14.533744"
+ version="1.1"
+ id="svg5"
+ sodipodi:docname="gvariant-byte-boundaries.svg"
+ inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ inkscape:document-units="mm"
+ showgrid="false"
+ inkscape:zoom="1.2598564"
+ inkscape:cx="38.496451"
+ inkscape:cy="-42.862028"
+ inkscape:window-width="1920"
+ inkscape:window-height="1043"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer1" />
+ <defs
+ id="defs2" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-45.177837,-76.28292)">
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.264583"
+ id="rect455"
+ width="10"
+ height="10"
+ x="46.387753"
+ y="80.684372" />
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.264583"
+ id="rect455-1"
+ width="10"
+ height="10"
+ x="56.652336"
+ y="80.684372" />
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.264583"
+ id="rect455-9"
+ width="10"
+ height="10"
+ x="66.916916"
+ y="80.684372" />
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.264583"
+ id="rect455-4"
+ width="10"
+ height="10"
+ x="77.181496"
+ y="80.684372" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="49.476242"
+ y="87.995857"
+ id="text248"><tspan
+ sodipodi:role="line"
+ id="tspan246"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="49.476242"
+ y="87.995857">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="59.574944"
+ y="87.998962"
+ id="text248-2"><tspan
+ sodipodi:role="line"
+ id="tspan246-3"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="59.574944"
+ y="87.998962">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="70.039513"
+ y="88.040817"
+ id="text248-7"><tspan
+ sodipodi:role="line"
+ id="tspan246-5"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="70.039513"
+ y="88.040817">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="80.296341"
+ y="87.995857"
+ id="text248-9"><tspan
+ sodipodi:role="line"
+ id="tspan246-2"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="80.296341"
+ y="87.995857">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="44.811279"
+ y="80.472153"
+ id="text369"><tspan
+ sodipodi:role="line"
+ id="tspan367"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="44.811279"
+ y="80.472153">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="54.673473"
+ y="80.552078"
+ id="text369-2"><tspan
+ sodipodi:role="line"
+ id="tspan367-8"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="54.673473"
+ y="80.552078">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="65.115822"
+ y="80.552078"
+ id="text369-9"><tspan
+ sodipodi:role="line"
+ id="tspan367-7"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="65.115822"
+ y="80.552078">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="75.373512"
+ y="80.472153"
+ id="text369-3"><tspan
+ sodipodi:role="line"
+ id="tspan367-6"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="75.373512"
+ y="80.472153">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="85.445168"
+ y="80.552078"
+ id="text369-1"><tspan
+ sodipodi:role="line"
+ id="tspan367-2"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="85.445168"
+ y="80.552078">4</tspan></text>
+ </g>
+ <metadata
+ id="metadata1431">
+ <rdf:RDF>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ <cc:Work
+ rdf:about="">
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title>Copyright © 2022 Philip Withnall</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+</svg>
diff --git a/docs/reference/glib/gvariant-integer-and-string-structure.svg b/docs/reference/glib/gvariant-integer-and-string-structure.svg
new file mode 100644
index 000000000..47f03b24a
--- /dev/null
+++ b/docs/reference/glib/gvariant-integer-and-string-structure.svg
@@ -0,0 +1,358 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="116.87785mm"
+ height="30.931454mm"
+ viewBox="0 0 116.87785 30.931454"
+ version="1.1"
+ id="svg5155"
+ inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+ sodipodi:docname="gvariant-integer-and-string-structure.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <sodipodi:namedview
+ id="namedview5157"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ inkscape:document-units="mm"
+ showgrid="false"
+ inkscape:zoom="2.5197127"
+ inkscape:cx="187.52138"
+ inkscape:cy="32.940263"
+ inkscape:window-width="1920"
+ inkscape:window-height="1043"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer1" />
+ <defs
+ id="defs5152">
+ <marker
+ style="overflow:visible"
+ id="marker9949"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Square"
+ markerWidth="6"
+ markerHeight="6"
+ viewBox="0 0 6 6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.5)"
+ style="fill:context-fill;fill-rule:evenodd;stroke:context-stroke;stroke-width:2"
+ d="M -5,-5 V 5 H 5 V -5 Z"
+ id="path9947" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow1"
+ markerWidth="4.0606599"
+ markerHeight="6.7071061"
+ viewBox="0 0 4.0606602 6.7071068"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
+ d="M 3,-3 0,0 3,3"
+ id="path5057"
+ transform="rotate(180,0.125,0)"
+ sodipodi:nodetypes="ccc" />
+ </marker>
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-30.768787,-158.84707)">
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.43204;stroke-dasharray:none"
+ id="rect455-2"
+ width="114.56796"
+ height="13.006005"
+ x="32.188347"
+ y="163.33226" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="30.402229"
+ y="163.0363"
+ id="text369"><tspan
+ sodipodi:role="line"
+ id="tspan367"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="30.402229"
+ y="163.0363">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="44.872921"
+ y="163.11624"
+ id="text369-2"><tspan
+ sodipodi:role="line"
+ id="tspan367-8"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="44.872921"
+ y="163.11624">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="57.698662"
+ y="163.11624"
+ id="text369-9"><tspan
+ sodipodi:role="line"
+ id="tspan367-7"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="57.698662"
+ y="163.11624">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="68.045494"
+ y="163.0363"
+ id="text369-3"><tspan
+ sodipodi:role="line"
+ id="tspan367-6"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="68.045494"
+ y="163.0363">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="77.817863"
+ y="163.11624"
+ id="text369-1"><tspan
+ sodipodi:role="line"
+ id="tspan367-2"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="77.817863"
+ y="163.11624">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="87.978661"
+ y="163.0363"
+ id="text369-7"><tspan
+ sodipodi:role="line"
+ id="tspan367-84"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="87.978661"
+ y="163.0363">5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="98.571381"
+ y="163.0363"
+ id="text369-2-5"><tspan
+ sodipodi:role="line"
+ id="tspan367-8-0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="98.571381"
+ y="163.0363">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="111.0451"
+ y="163.11624"
+ id="text369-9-3"><tspan
+ sodipodi:role="line"
+ id="tspan367-7-6"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="111.0451"
+ y="163.11624">7</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="123.44961"
+ y="163.0363"
+ id="text369-3-1"><tspan
+ sodipodi:role="line"
+ id="tspan367-6-0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="123.44961"
+ y="163.0363">8</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="133.39301"
+ y="163.0363"
+ id="text369-3-9"><tspan
+ sodipodi:role="line"
+ id="tspan367-6-2"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="133.39301"
+ y="163.0363">9</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="144.72795"
+ y="163.0363"
+ id="text369-1-0"><tspan
+ sodipodi:role="line"
+ id="tspan367-2-6"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="144.72795"
+ y="163.0363">a</tspan></text>
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.264583"
+ id="rect455-71-1-7"
+ width="10"
+ height="10"
+ x="125.61029"
+ y="164.83527" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="126.63515"
+ y="171.89716"
+ id="text248-78"><tspan
+ sodipodi:role="line"
+ id="tspan246-6"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="126.63515"
+ y="171.89716">\0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="137.58762"
+ y="172.14676"
+ id="text248-8"><tspan
+ sodipodi:role="line"
+ id="tspan246-8"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="137.58762"
+ y="172.14676">05</tspan></text>
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.411817"
+ id="rect455-0"
+ width="24.588182"
+ height="9.852766"
+ x="34.4254"
+ y="164.90889" />
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.40555;stroke-dasharray:none"
+ id="rect455-0-6"
+ width="29.59445"
+ height="9.7798347"
+ x="59.831776"
+ y="164.94536" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="37.171238"
+ y="172.14676"
+ id="text248"><tspan
+ sodipodi:role="line"
+ id="tspan246"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="37.171238"
+ y="172.14676">01 01</tspan></text>
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.411817"
+ id="rect455-0-5"
+ width="24.588182"
+ height="9.852766"
+ x="100.48373"
+ y="164.90889" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="103.22956"
+ y="172.14676"
+ id="text248-9"><tspan
+ sodipodi:role="line"
+ id="tspan246-7"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="103.22956"
+ y="172.14676">02 02</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="81.10598"
+ y="171.89716"
+ id="text248-5"><tspan
+ sodipodi:role="line"
+ id="tspan246-54"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="81.10598"
+ y="171.89716">\0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="62.440269"
+ y="171.57159"
+ id="text248-2"><tspan
+ sodipodi:role="line"
+ id="tspan246-3"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="62.440269"
+ y="171.57159">x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="72.704849"
+ y="171.57159"
+ id="text248-7"><tspan
+ sodipodi:role="line"
+ id="tspan246-5"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="72.704849"
+ y="171.57159">x</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker9949);marker-end:url(#Arrow1)"
+ d="m 141.51769,176.47052 v 13.17571 H 89.305825 v -13.12854"
+ id="path7583" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker9949);marker-end:url(#Arrow1)"
+ d="m 89.351354,183.3049 h 11.073556 v -6.87539"
+ id="path7585" />
+ </g>
+ <metadata
+ id="metadata4685">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:rights>
+ <cc:Agent>
+ <dc:title>Copyright © 2022 Philip Withnall</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+</svg>
diff --git a/docs/reference/glib/gvariant-integer-array.svg b/docs/reference/glib/gvariant-integer-array.svg
new file mode 100644
index 000000000..1437e6aae
--- /dev/null
+++ b/docs/reference/glib/gvariant-integer-array.svg
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="104.43805mm"
+ height="17.707197mm"
+ viewBox="0 0 104.43805 17.707197"
+ version="1.1"
+ id="svg611"
+ inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+ sodipodi:docname="gvariant-integer-array.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <sodipodi:namedview
+ id="namedview613"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ inkscape:document-units="mm"
+ showgrid="false"
+ inkscape:zoom="1.7817059"
+ inkscape:cx="42.936379"
+ inkscape:cy="32.553072"
+ inkscape:window-width="1920"
+ inkscape:window-height="1043"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer1" />
+ <defs
+ id="defs608" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-65.228319,-153.94883)">
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.412;stroke-dasharray:none"
+ id="rect455-2"
+ width="104.02605"
+ height="13.026045"
+ x="65.434319"
+ y="158.42398" />
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.411817"
+ id="rect455"
+ width="24.588182"
+ height="9.852766"
+ x="67.653252"
+ y="160.01062" />
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.411817"
+ id="rect455-1"
+ width="24.588182"
+ height="9.852766"
+ x="92.653252"
+ y="160.01062" />
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.411817"
+ id="rect455-9"
+ width="24.588182"
+ height="9.852766"
+ x="117.65325"
+ y="160.01062" />
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.411817"
+ id="rect455-4"
+ width="24.588182"
+ height="9.852766"
+ x="142.65324"
+ y="160.01062" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="70.389786"
+ y="167.24849"
+ id="text248"><tspan
+ sodipodi:role="line"
+ id="tspan246"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="70.389786"
+ y="167.24849">00 00</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="95.389786"
+ y="167.24849"
+ id="text248-2"><tspan
+ sodipodi:role="line"
+ id="tspan246-3"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="95.389786"
+ y="167.24849">01 00</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="120.38979"
+ y="167.24849"
+ id="text248-7"><tspan
+ sodipodi:role="line"
+ id="tspan246-5"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="120.38979"
+ y="167.24849">02 00</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="145.38979"
+ y="167.24849"
+ id="text248-9"><tspan
+ sodipodi:role="line"
+ id="tspan246-2"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="145.38979"
+ y="167.24849">03 00</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="66.003166"
+ y="158.13806"
+ id="text369"><tspan
+ sodipodi:role="line"
+ id="tspan367"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="66.003166"
+ y="158.13806">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="78.100777"
+ y="158.21799"
+ id="text369-2"><tspan
+ sodipodi:role="line"
+ id="tspan367-8"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="78.100777"
+ y="158.21799">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="90.778542"
+ y="158.21799"
+ id="text369-9"><tspan
+ sodipodi:role="line"
+ id="tspan367-7"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="90.778542"
+ y="158.21799">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="103.27165"
+ y="158.13806"
+ id="text369-3"><tspan
+ sodipodi:role="line"
+ id="tspan367-6"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="103.27165"
+ y="158.13806">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="115.74271"
+ y="158.21799"
+ id="text369-1"><tspan
+ sodipodi:role="line"
+ id="tspan367-2"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="115.74271"
+ y="158.21799">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="128.27716"
+ y="158.13806"
+ id="text369-7"><tspan
+ sodipodi:role="line"
+ id="tspan367-84"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="128.27716"
+ y="158.13806">5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="140.74821"
+ y="158.13806"
+ id="text369-2-5"><tspan
+ sodipodi:role="line"
+ id="tspan367-8-0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="140.74821"
+ y="158.13806">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="153.26889"
+ y="158.21799"
+ id="text369-9-3"><tspan
+ sodipodi:role="line"
+ id="tspan367-7-6"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="153.26889"
+ y="158.21799">7</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="165.49881"
+ y="158.13806"
+ id="text369-3-1"><tspan
+ sodipodi:role="line"
+ id="tspan367-6-0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="165.49881"
+ y="158.13806">8</tspan></text>
+ </g>
+ <metadata
+ id="metadata5852">
+ <rdf:RDF>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ <cc:Work
+ rdf:about="">
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title>Copyright © 2022 Philip Withnall</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+</svg>
diff --git a/docs/reference/glib/gvariant-specification-1.0.rst b/docs/reference/glib/gvariant-specification-1.0.rst
new file mode 100644
index 000000000..d1f98d680
--- /dev/null
+++ b/docs/reference/glib/gvariant-specification-1.0.rst
@@ -0,0 +1,1465 @@
+.. sectnum::
+.. meta::
+ :copyright: Copyright 2007 Allison Karlitskaya
+ :license: CC-BY-SA-3.0
+..
+ This has to be duplicated from above to make it machine-readable by `reuse`:
+ SPDX-FileCopyrightText: 2007 Allison Karlitskaya
+ SPDX-License-Identifier: CC-BY-SA-3.0
+
+==========================
+GVariant Specification 1.0
+==========================
+
+.. rubric:: Revision History
+
+Notable changes between versions are listed here. For the full set of changes
+and diffs, see the `commit log <https://gitlab.gnome.org/GNOME/glib/-/blob/main/docs/reference/glib/gvariant-specification-1.0.rst>`_.
+
+**Version 1.0, 2007 and 2022-11-01**
+ - Convert the original PDF GVariant Specification to version control
+ - No semantic or formatting changes
+**Version 1.0.1, 2022-11-02**
+ - Formatting improvements
+ - No semantic changes
+
+*****
+Types
+*****
+
+As per requirement, GVariant must be substantially compatible with the D-Bus message
+bus system (as specified in the `D-Bus specification <https://dbus.freedesktop.org/doc/dbus-specification.html>`__).
+
+To this end, the type system used in GVariant is almost identical to that used by D-Bus.
+Some very minimal changes were made, however, in order to provide for a better system
+while still remaining highly compatible; specifically, every message that can by sent over
+D-Bus can be represented as a GVariant.
+
+Some baggage has been carried in from D-Bus that would not otherwise have been present
+in the type system if it were designed from scratch. The object path and signature types,
+for example, are highly D-Bus-specific and would not be present in a general-purpose type
+system if it were to be created from scratch.
+
+Differences from D-Bus
+======================
+
+In order to increase conceptual clarity some limitations have been lifted, allowing calls
+to “never fail” instead of having to check for these special cases.
+
+ * Whereas D-Bus limits the maximum depth of container type nesting, GVariant makes
+ no such limitations; nesting is supported to arbitrary depths.
+ * Whereas D-Bus limits the maximum complexity of its messages by imposing a
+ limitation on the “signature string” to be no more than 255 characters, GVariant
+ makes no such limitation; type strings of arbitrary length are supported, allowing
+ for the creation of values with arbitrarily complex types.
+ * Whereas D-Bus allows dictionary entry types to appear only as the element type of
+ an array type, GVariant makes no such limitation; dictionary entry types may exist
+ on their own or as children of any other type constructor.
+ * Whereas D-Bus requires structure types to contain at least one child type, GVariant
+ makes no such limitation; the unit type is a perfectly valid type in GVariant.
+
+Some of the limitations of D-Bus were imposed as security considerations (for example,
+to bound the depth of recursion that may result from processing a message from an
+untrusted sender). If GVariant is used in ways that are sensitive to these considerations
+then programmers should employ checks for these cases upon entry of values into the
+program from an untrusted source.
+
+Additionally, D-Bus has no type constructor for expressing the concept of nullability [#f1]_. To
+this end, the Maybe type constructor (represented by m in type strings) has been added.
+
+Some of these changes are under consideration for inclusion into D-Bus [#f2]_.
+
+.. [#f1] A “nullable type” is a type that, in addition to containing its normal range of values, also contains a
+ special value outside of that range, called ``NULL``, ``Nothing``, ``None`` or similar. In most languages with reference
+ or pointer types, these types are nullable. Some languages have the ability to have nullable versions of
+ any type (for example, “``Maybe Int``” in Haskell and “``int? i;``” in C#).
+.. [#f2] Considerable discussion has been made in face-to-face meetings and some discussion has also occured
+ on the D-Bus mailing list: http://lists.freedesktop.org/archives/dbus/2007-August/008290.html
+
+Enumeration of Types
+====================
+
+The Basic Types
+---------------
+
+**Boolean**
+ A boolean is a value which must be True or False.
+
+**Byte**
+ A byte is a value, unsigned by convention, which ranges from 0 to 255.
+
+**Integer Types**
+ There are 6 integer types other than byte — signed and unsigned versions of 16, 32
+ and 64 integers. The signed versions have a range of values consistent with a two's
+ complement representation.
+
+**Double Precision Floating Point**
+ A double precision floating point value is precisely defined by IEEE 754.
+
+**String**
+ A string is zero or more bytes. Officially, GVariant is encoding-agnostic but the use
+ of UTF-8 is expected and encouraged.
+
+**Object Path**
+ A D-Bus object path, exactly as described in the
+ `D-Bus specification <https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-marshaling-object-path>`__.
+
+**Signature**
+ A D-Bus signature string, exactly as described in the
+ `D-Bus specification <https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-marshaling-signature>`__. As this type
+ has been preserved solely for compatibility with D-Bus, all of the D-Bus restrictions
+ on the range of values of this type apply (eg: nesting depth and maximum length
+ restrictions).
+
+Container Types
+---------------
+
+**Variant**
+ The variant type is a dependent pair of a type (any of the types described in this
+ chapter, including the variant type itself) and a value of that type. You might use this
+ type to overcome the restriction that all elements of an array must have the same type.
+
+**Maybe**
+ The maybe type constructor provides nullability for any other single type. The non-null
+ case is distinguished, such that in the event that multiple maybe type constructors
+ are applied to a type, different levels of null can be detected.
+
+**Array**
+ The array type constructor allows the creation of array (or list) types corresponding
+ to the provided element type. Exactly one element type must be provided and all array
+ elements in any instance of the array type must have this element type.
+
+**Structure**
+ The structure type constructor allows the creation of structure types corresponding
+ to the provided element types. These “structures” are actually closer to tuples in the
+ sense that their fields are not named, but “structure” is used because that is what
+ the D-Bus specification calls them.
+
+ The structure type constructor is the only type constructor that is variadic — any
+ natural number of types may be given (including zero and one).
+
+**Dictionary entry**
+ The dictionary entry type constructor allows the creation of a special sort of structure
+ which, when used as the element type of an array, implies that the content of the array
+ is a list of key/value pairs. For compatibility with D-Bus, this binary type constructor
+ requires a basic type as its first argument (which by convention is seen to be the key)
+ but any type is acceptable for the second argument (by convention, the value).
+
+ Dictionary entries are as such by convention only; this includes when they are put in
+ an array to form a “dictionary”. GVariant imposes no restrictions that might normally
+ be expected of a dictionary (such as key uniqueness).
+
+Type Strings
+============
+
+Just as with D-Bus, a concise string representation is used to express types.
+
+In GVariant, which deals directly with values as first order objects, a type string (by that
+name) is a string representing a single type.
+
+Contrast this with “signature strings” [#f3]_ in D-Bus, which apply to messages, and contain
+zero or more types (corresponding to the arguments of the message).
+
+.. [#f3] Compare with the whence parameter to the ``lseek()`` system call.
+
+Syntax
+------
+
+The language of type string is context free. It is also a prefix code, which is a property
+that is used by the recursive structure of the language itself.
+
+Type strings can be described by a non-ambiguous context free grammar.
+
+ * *type* ⇒ *base_type* | *container_type*
+ * *base_type* ⇒ **b** | **y** | **n** | **q** | **i** | **u** | **x** | **t** | **s** | **o** | **g**
+ * *container_type* ⇒ **v** | **m** *type* | **a** *type* | **(** *types* **)** | **{** *base_type* *type* **}**
+ * *types* ⇒ ε | *type* *types*
+
+Semantics
+---------
+
+The derivation used to obtain a type string from the given grammar creates an abstract
+syntax tree describing the type. The effect of deriving through each right hand side
+term containing a terminal is specified below:
+
+**b**
+ This derivation corresponds to the boolean type.
+**y**
+ This derivation corresponds to the byte type.
+**n**
+ This derivation corresponds to the signed 16-bit integer type.
+**q**
+ This derivation corresponds to the unsigned 16-bit integer type.
+**i**
+ This derivation corresponds to the signed 32-bit integer type.
+**u**
+ This derivation corresponds to the unsigned 32-bit integer type.
+**x**
+ This derivation corresponds to the signed 64-bit integer type.
+**t**
+ This derivation corresponds to the unsigned 64-bit integer type.
+**d**
+ This derivation corresponds to the double precision floating point number type.
+**s**
+ This derivation corresponds to the string type.
+**o**
+ This derivation corresponds to the object path type.
+**g**
+ This derivation corresponds to the signature type.
+**v**
+ This derivation corresponds to the variant type.
+**m** *type*
+ This derivation corresponds to the maybe type which has a value of ``Nothing`` or ``Just
+ x`` for some *x* in the range of *type*.
+**a** *type*
+ This derivation corresponds to the array type in which each element has the type *type*.
+**(** *types* **)**
+ This derivation corresponds to the structure type that has the types expanded by
+ *types*, in order, as its item types.
+**{** *base_type* *type* **}**
+ This derivation corresponds to the dictionary entry type that has *base_type* as its key
+ type and *type* as its value type.
+
+********************
+Serialisation Format
+********************
+
+This chapter describes the serialisation format that is used by GVariant. This serialisation
+format is newly developed and described for the first time here.
+
+Why not D-Bus?
+==============
+
+Since GVariant is largely compatible with D-Bus, it would make sense to use the
+serialisation format of D-Bus (plus modifications where appropriate) as the serialisation
+format for GVariant.
+
+To do so, however, would conflict with a number of requirements that were established
+for GVariant.
+
+Most fundamentally, the requirements would be violated. D-Bus messages are encoded in such
+a way that in order to fetch the 100th item out of an array you first have to iterate over
+the first 99 items to discover where the 100th item lies. A side effect of this iteration
+would be a violation of the requirements.
+
+Additionally, using the D-Bus serialisation format with an API like that mandated by
+the requirements would likely imply a violation of the requirements due to the fact that subparts
+of D-Bus messages can change meaning when subjected to different starting alignments.
+This is discussed in more detail in `Simple Containment`_.
+
+Notation
+========
+
+Throughout this section a number of examples will be provided using a common notation
+for types and values.
+
+The notation used for types is exactly the type strings described in `Types`_.
+
+The notation used for values will be familiar to users of either Python or Haskell. Arrays
+(lists) are represented with square brackets and structures (tuples) with parentheses.
+Commas separate elements. Strings are single-quoted. Numbers prefixed with ``0x`` are
+taken to be hexadecimal.
+
+The constants ``True`` and ``False`` represent the boolean constants. The nulary data
+constructor of the maybe type is denoted ``Nothing`` and the unary one ``Just``.
+
+Concepts
+========
+
+GVariant value serialisation is a total and injective function from values to pairs of
+byte sequences and type strings. Serialisation is deterministic in that there is only one
+acceptable “normal form” that results from serialising a given value. Serialisation is non-
+surjective: non-normal forms exist.
+
+The byte sequence produced by serialisation is useless without also having the type
+string. Put another way, deserialising a byte sequence requires knowing this type.
+
+Before discussing the specifics of serialisation, there are some concepts that are
+pervasive in the design of the format that should be understood.
+
+Byte Sequence
+-------------
+
+A byte sequence is defined as a sequence of bytes which has a known length. In all cases,
+in GVariant, knowing the length is essential to being able to successfully deserialise
+a value.
+
+Byte Boundaries
+---------------
+
+Starting and ending offsets used in GVariant refer not to byte positions, but to byte
+boundaries. For the same reason that it's possible to have *n + 1* prefixes of a string of
+length *n*, there are *n + 1* byte boundaries in a byte sequence of size *n*.
+
+.. figure:: gvariant-byte-boundaries.svg
+ :align: center
+ :name: byte-boundaries
+
+ Byte boundaries
+
+When speaking of the start position of a byte sequence, the index of the starting
+boundary happens to correspond to the index of the first byte. When speaking of the
+end position, however, the index of the ending boundary will be the index of the last
+byte, plus 1. This paradigm is very commonly used and allows for specifying zero-length
+byte sequences.
+
+Simple Containment
+------------------
+
+A number of container types exist with the ability to have child values. In all cases, the
+serialised byte sequence of each child value of the container will appear as a contiguous
+sub-sequence of the serialised byte sequence of that container — in exactly the same
+form as it would appear if it were on its own. The child byte sequences will appear in
+order of their position in the container.
+
+It is the responsibility of the container to be able to determine the start and end (or
+equivalently, length) of each child element.
+
+This property permits a container to be deconstructed into child values simply by
+referencing a subsequence of the byte sequence of the container as the value of the
+child which is an effective way of satisfying the requirements.
+
+This property is not the case for the D-Bus serialisation format. In many cases (for
+example, arrays) the encoding of a child value of a D-Bus message will change depending
+on the context in which that value appears. As an example: in the case of an array of
+doubles, should the value immediately preceding the array end on an offset that is an
+even multiple of 8 then the array will contain 4 padding bytes that it would not contain
+in the event that the end offset of the preceding value were shifted 4 bytes in either
+direction.
+
+Alignment
+---------
+
+In order to satisfy the requirement, we must provide programmers with a pointer that they
+can comfortably use. On many machines, programmers cannot directly dereference
+unaligned values, and even on machines where they can, there is often a performance
+hit.
+
+For this reason, all types in the serialisation format have an alignment associated with
+them. For strings or single bytes, this alignment is simply 1, but for 32-bit integers (for
+example) the alignment is 4. The alignment is a property of a type — all instances of
+a type have the same alignment.
+
+All aligned values must start in memory at an address that is an integer multiple of
+their alignment.
+
+The alignment of a container type is equal to the largest alignment of any potential
+child of that container. This means that, even if an array of 32-bit integers is empty, it
+still must be aligned to the nearest multiple of 4 bytes. It also means that the variant
+type (described below) has an alignment of 8 (since it could potentially contain a value
+of any other type and the maximum alignment is 8).
+
+Fixed Size
+----------
+
+To avoid a lot of framing overhead, it is possible to take advantage of the fact that, for
+certain types, all instances will have the same size. In this case, the type is said to be a
+fixed-sized type, and all of its values are said to be fixed-sized values. Examples are a
+single integer and a tuple of an integer and a floating point number. Counterexamples
+are a string and an array of integers.
+
+If a type has a fixed size then this fixed size must be an integer multiple of the alignment
+of the type. A type never has a fixed size of zero.
+
+If a container type always holds a fixed number of fixed-size items (as in the case of
+some structures or dictionary entries) then this container type will also be fixed-sized.
+
+Framing Offsets
+---------------
+
+If a container contains non-fixed-size child elements, it is the responsibility of the
+container to be able to determine their sizes. This is done using framing offsets.
+
+A framing offset is an integer of some predetermined size. The size is always a power
+of 2. The size is determined from the overall size of the container byte sequence. It is
+chosen to be just large enough to reference each of the byte boundaries in the container.
+
+As examples, a container of size 0 would have framing offsets of size 0 (since no bits
+are required to represent no choice). A container of sizes 1 through 255 would have
+framing offsets of size 1 (since 256 choices can be represented with a single byte). A
+container of sizes 256 through 65535 would have framing offsets of size 2. A container
+of size 65536 would have framing offsets of size 4.
+
+There is no theoretical upper limit in how large a framing offset can be. This fact (along
+with the absence of other limitations in the serialisation format) allows for values of
+arbitrary size.
+
+When serialising, the proper framing offset size must be determined by “trial and error”
+— checking each size to determine if it will work. It is possible, since the size of the
+offsets is included in the size of the container, that having larger offsets might bump
+the size of the container up into the next category, which would then require larger
+offsets. Such containers, however, would not be considered to be in “normal form”. The
+smallest possible offset size must be used if the serialised data is to be in normal form.
+
+Framing offsets always appear at the end of containers and are unaligned. They are
+always stored in little-endian byte order.
+
+Endianness
+----------
+
+Although the framing offsets of serialised data are always stored in little-endian byte
+order, the data visible to the user (via the interface mandated by the requirements) is
+allowed to be in either big or little-endian byte order. This is referred to as the “encoding
+byte order”. When transmitting messages, this byte order should be specified if not
+explicitly agreed upon.
+
+The encoding byte order affects the representation of only 7 types of values: those of
+the 6 (16, 32 and 64-bit, signed and unsigned) integer types and those of the double
+precision floating point type. Conversion between different encoding byte orders is a
+simple operation that can usually be performed in-place (but see `Notes on Byteswapping`_ for an
+exception).
+
+Serialisation of Base Types
+===========================
+
+Base types are handled as follows:
+
+Booleans
+--------
+
+A boolean has a fixed size of 1 and an alignment of 1. It has a value of 1 for True or
+0 for False.
+
+Bytes
+-----
+
+A byte has a fixed size of 1 and an alignment of 1. It may have any valid byte value. By
+convention, bytes are unsigned.
+
+Integers
+--------
+
+There are 16, 32 and 64-bit signed and unsigned integers. Each integer type is fixed-
+sized (to its natural size). Each integer type has alignment equal to its fixed size.
+Integers are stored in the encoding byte order. Signed integers are represented in two's
+complement.
+
+Double Precision Floating Point
+-------------------------------
+
+Double precision floating point numbers have an alignment and a fixed-size of 8.
+Doubles are stored in the encoding byte order.
+
+Strings
+-------
+
+Including object paths and signature strings, strings are not fixed-sized and have an
+alignment of 1. The size of any given serialised string is equal to the length of the string,
+plus 1, and the final serialised byte is a nul (0) terminator. The character set encoding
+of the string is not specified, but no nul byte is allowed to appear within the content
+of the string.
+
+Serialisation of Container Types
+================================
+
+Containers are handled as follows:
+
+Variants
+--------
+
+Variants are serialised by storing the serialised data of the child, plus a zero byte, plus
+the type string of the child.
+
+The zero byte is required because, although type strings are a prefix code, they are not
+a suffix code. In the absence of this separator, consider the case of a variant serialised
+as two bytes — “ay”. Is this a single byte, ``'a'``, or an empty array of bytes?
+
+Maybes
+------
+
+Maybes are encoded differently depending on if their element type is fixed-sized or not.
+
+The alignment of a maybe type is always equal to the alignment of its element type.
+
+Maybe of a Fixed-Size Element
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+For the ``Nothing`` case, the serialised data is the empty byte sequence.
+
+For the ``Just`` case, the serialised data is exactly equal to the serialised data of the child.
+This is always distinguishable from the ``Nothing`` case because all fixed-sized values
+have a non-zero size.
+
+Maybe of a Non-Fixed-Size Element
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+For the ``Nothing`` case, the serialised data is, again, the empty byte sequence.
+
+For the ``Just`` case, the serialised form is the serialised data of the child element,
+followed by a single zero byte. This extra byte ensures that the ``Just`` case is
+distinguishable from the ``Nothing`` case even in the event that the child value has a
+size of zero.
+
+Arrays
+------
+
+Arrays are said to be fixed width arrays or variable width arrays based on if their
+element type is a fixed-sized type or not. The encoding of these two cases is very
+different.
+
+The alignment of an array type is always equal to the alignment of its element type.
+
+Fixed Width Arrays
+^^^^^^^^^^^^^^^^^^
+
+In this case, the serialised form of each array element is packed sequentially, with no
+extra padding or framing, to obtain the array. Since all fixed-sized values have a size
+that is a multiple of their alignment requirement, and since all elements in the array
+will have the same alignment requirements, all elements are automatically aligned.
+
+.. figure:: gvariant-integer-array.svg
+ :align: center
+ :name: integer-array
+
+ An array of 16-bit integers
+
+The length of the array can be determined by taking the size of the array and dividing
+by the fixed element size. This will always work since all fixed-size values have a non-
+zero size.
+
+Variable Width Arrays
+^^^^^^^^^^^^^^^^^^^^^
+
+In this case, the serialised form of each array element is again packed sequentially.
+Unlike the fixed-width case, though, padding bytes may need to be added between the
+elements for alignment purposes. These padding bytes must be zeros.
+
+After all of the elements have been added, a framing offset is appended for each
+element, in order. The framing offset specifies the end boundary of that element.
+
+.. figure:: gvariant-string-array.svg
+ :align: center
+ :name: string-array
+
+ An array of strings
+
+The size of each framing offset is a function of the serialised size of the array and the
+final framing offset, by identifying the end boundary of the final element in the array
+also identifies the start boundary of the framing offsets. Since there is one framing
+offset for each element in the array, we can easily determine the length of the array.
+
+.. math::
+ length = (size - last\_offset) / offset\_size
+
+To find the start of any element, you simply take the end boundary of the previous
+element and round it up to the nearest integer multiple of the array (and therefore
+element) alignment. The start of the first element is the start of the array.
+
+Since determining the length of the array relies on our ability to count the number of
+framing offsets and since the number of framing offsets is determined from how much
+space they take up, zero byte framing offsets are not permitted in arrays, even in the
+case where all other serialised data has a size of zero. This special exception avoids
+having to divide zero by zero and wonder what the answer is.
+
+Structures
+----------
+
+As with arrays, structures are serialised by storing each child item, in sequence,
+properly aligned with padding bytes, which must be zero.
+
+After all of the items have been added, a framing offset is appended, in reverse order,
+for each non-fixed-sized item that is not the last item in the structure. The framing offset
+specifies the end boundary of that element.
+
+The framing offsets are stored in reverse order to allow iterator-based interfaces to
+begin iterating over the items in the structure without first measuring the number of
+items implied by the type string (an operation which requires time linear to the size
+of the string).
+
+.. figure:: gvariant-integer-and-string-structure.svg
+ :align: center
+ :name: integer-and-string-structure
+
+ A structure containing 16-bit integers and strings
+
+The reason that no framing offset is stored for the last item in the structure is because
+its end boundary can be determined by subtracting the size of the framing offsets from
+the size of the structure. The number of framing offsets present in any instance of a
+structure of a given type can be determined entirely from the type (following the rule
+given above).
+
+The reason that no framing offset is stored for fixed-sized items is that their end
+boundaries can always be found by adding the fixed size to the start boundary.
+
+To find the start boundary of any item in the structure, simply start from the end
+boundary of the nearest preceding non-fixed-size item (or from 0 in the case of no
+preceding non-fixed-sized items). From there, round up for alignment and add the fixed
+size for each intermediate item. Finally, round up to the alignment of the desired item.
+
+For random access, it seems like this process can take a time linear to the number of
+elements in the structure, but it can actually be performed in a very small constant
+time. See `Calculating Structure Item Addresses`_.
+
+If all of the items contained in a structure are fixed-size then the structure itself is fixed-
+size. Considerations have to be made to satisfy the constraints that are placed on the
+value of this fixed size.
+
+First, the fixed size must be non-zero. This case would only occur for structures of the
+unit type or structures containing only such structures (recursively). This problem is
+solved by arbitrary declaring that the serialised encoding of an instance of the unit type
+is a single zero byte (size 1).
+
+Second, the fixed sized must be a multiple of the alignment of the structure. This is
+accomplished by adding zero-filled padding bytes to the end of any fixed-width structure
+until this property becomes true. These bytes will never result in confusion with respect
+to locating framing offsets or the end of a variable-sized child because, by definition,
+neither of these things occur inside fixed-sized structures.
+
+The figure above depicts a structure of type ``(nsns)`` and value ``[257, 'xx', 514, '']``. One
+framing offset exists for the one non-fixed-sized item that is not the final item (namely,
+the string ``'xx'``). The process of “rounding up” to find the start of the second integer
+is indicated.
+
+Dictionary Entries
+------------------
+
+Dictionary entries are treated as structures with exactly two items — first the key, then
+the value. In the case that the key is fixed-sized, there will be no framing offsets, and
+in the case the key is non-fixed-size there will be exactly one. As the value is treated as
+the last item in the structure, it will never have a framing offset.
+
+Examples
+========
+
+This section contains some clarifying examples to demonstrate the serialisation format.
+All examples are in little endian byte order.
+
+The example data is given 16 bytes per line, with two characters representing the
+value of each byte. For clarity, a number of different notations are used for byte values
+depending on purpose.
+
+ * ``'A`` shows that a byte has the ASCII value of ``A`` (65).
+ * ``sp`` shows that a byte is an ASCII space character (32).
+ * ``\0`` shows that a byte is a zero byte used to mark the end of a string.
+ * ``--`` shows that the byte is a zero-filled padding byte used as part of a structure or
+ dictionary entry.
+ * ``##`` shows that the byte is a zero-filled padding byte used as part of an array.
+ * ``@@`` shows that the byte is the zero-filled padding byte at the end of a ``Just`` value.
+ * any two hexadecimal digits show that a byte has that value.
+
+Each example specifies a type, a sequence of bytes, and what value this byte sequence
+represents when deserialised with the given type.
+
+**String Example**
+ With type ``'s'``::
+
+ 'h 'e 'l 'l 'o sp 'w 'o 'r 'l 'd \0
+
+ has a value of ``'hello world'``.
+
+**Maybe String**
+ With type ``'ms'``::
+
+ 'h 'e 'l 'l 'o sp 'w 'o 'r 'l 'd \0 @@
+
+ has a value of ``Just 'hello world'``.
+
+**Array of Booleans Example**
+ With type ``'ab'``::
+
+ 01 00 00 01 01
+
+ has a value of ``[True, False, False, True, True]``.
+
+**Structure Example**
+ With type ``'(si)'``::
+
+ 'f 'o 'o \0 ff ff ff ff 04
+
+ has a value of ``('foo', -1)``.
+
+**Structure Array Example**
+ With type ``'a(si)'``::
+
+ 'h 'i \0 -- fe ff ff ff 03 ## ## ## 'b 'y 'e \0
+ ff ff ff ff 04 09
+
+ has a value of ``[('hi', -2), ('bye', -1)]``.
+
+**String Array Example**
+ With type ``'as'``::
+
+ 'i \0 'c 'a 'n \0 'h 'a 's \0 's 't 'r 'i 'n 'g
+ 's '? \0 02 06 0a 13
+
+ has a value of ``['i', 'can', 'has', 'strings?']``.
+
+**Nested Structure Example**
+ With type ``'((ys)as)'``::
+
+ 'i 'c 'a 'n \0 'h 'a 's \0 's 't 'r 'i 'n 'g 's
+ '? \0 04 05
+
+ has a value of ``(('i', 'can'), ['has', 'strings?'])``.
+
+**Simple Structure Example**
+ With type ``'(yy)'``::
+
+ 70 80
+
+ has a value of ``(0x70, 0x80)``.
+
+**Padded Structure Example 1**
+ With type ``'(iy)'``::
+
+ 60 00 00 00 70 -- -- --
+
+ has a value of ``(96, 0x70)``.
+
+**Padded Structure Example 2**
+ With type ``'(yi)'``::
+
+ 70 -- -- -- 60 00 00 00
+
+ has a value of ``(0x70, 96)``.
+
+**Array of Structures Example**
+ With type ``'a(iy)'``::
+
+ 60 00 00 00 70 -- -- -- 88 02 00 00 f7 -- -- --
+
+ has a value of ``[(96, 0x70), (648, 0xf7)]``.
+
+**Array of Bytes Example**
+ With type ``'ay'``::
+
+ 04 05 06 07
+
+ has a value of ``[0x04, 0x05, 0x06, 0x07]``.
+
+**Array of Integers Example**
+ With type ``'ai'``::
+
+ 04 00 00 00 02 01 00 00
+
+ has a value of ``[4, 258]``.
+
+**Dictionary Entry Example**
+ With type ``'{si}'``::
+
+ 'a sp 'k 'e 'y \0 -- -- 02 02 00 00 06
+
+ has a value of ``{'a key', 514}``.
+
+Non-Normal Serialised Data
+==========================
+
+Nominally, deserialisation is the inverse operation of serialisation. This would imply that
+deserialisation should be a bijective partial function.
+
+If deserialisation is a partial function, something must be done about the cases where the
+serialised data is not in normal form. Normally this would result in an error being raised.
+
+An Argument Against Errors
+--------------------------
+
+The requirements forbids us from scanning the entirety of the serialised byte sequence
+at load time; we can not check for normality and issue errors at this time. This leaves
+any errors that might occur to be raised as exceptions as the values are accessed.
+
+Faced with the C language's poor (practically non-existent) support for exceptions and
+with the idea that any access to a simple data value might possibly fail, this solution
+also becomes rapidly untenable.
+
+The only reasonable solution to deal with errors, given our constraints, is to define them
+out of existence. Accepting serialised data in non-normal form makes deserialisation
+a surjective (but non-injective) total function. All byte sequences deserialise to some
+valid value.
+
+For security purposes, what is done with the non-normal values is precisely specified.
+One can easily imagine a situation where a content filter is acting on the contents of
+messages, regulating access to a security-sensitive component. If one could create a
+non-normal form of a message that is interpreted differently by the deserialiser in the
+filter and the deserialiser in the security-sensitive component, one could “sneak by”
+the filter.
+
+Default Values
+--------------
+
+When errors are encountered during deserialisation, lacking the ability to raise an
+exception, we are forced into a situation where we must return a valid value of the
+expected type. For this reasons, a “default value” is defined for each type. This value
+will often be the result of an error encountered during deserialisation.
+
+One might argue that a reduction in robustness comes from ignoring errors and
+returning arbitrary values to the user. It should be pointed out, though, that for most
+types of serialised data, a random byte error is much more likely to cause the data to
+remain in normal form, but with a different value. We cannot capture these cases and
+these cases might result in any possible value of a given type being returned to the user.
+We are forced to resign ourselves to the fact that the best we can do, in the presence
+of corruption, is to ensure that the user receives some value of the correct type.
+
+The default value for each type is:
+
+**Booleans**
+ The default boolean value is False.
+**Bytes**
+ The default byte value is nul.
+**Integers**
+ The default value for any size of integer (signed or unsigned) is zero.
+**Floats**
+ The default value for a double precision floating point number is positive zero.
+**Strings**
+ The default value for a string is the empty string.
+**Object Paths**
+ The default value for an object path is ``'/'``.
+**Signatures**
+ The default value for a signature is the nulary signature (ie: the empty string).
+**Arrays**
+ The default value for an array of any type is the empty array of that type.
+**Maybes**
+ The default value for a maybe of any type is the ``Nothing`` of that type.
+**Structures**
+ The default value for a structure type is the structure instance that has for the values
+ of each item, the default value for the type of that item.
+**Dictionary Entries**
+ Similarly to structures, the default value for a dictionary entry type is the dictionary
+ entry instance that has its key and value equal to their respective defaults.
+**Variants**
+ The default variant value is the variant holding a child with the unit type.
+
+Handling Non-Normal Serialised Data
+-----------------------------------
+
+On a normally functioning system, non-normal values will not be normally encountered,
+so once a problem has been detected, it is acceptable if performance is arbitrarily bad.
+For security reasons, however, untrusted data must always be checked for normality as
+it is being accessed. Due to the frequency of these checks, they must be fast.
+
+Nearly all rules contained in this section for deserialisation of non-normal data keep this
+requirement in mind. Specifically, all rules can be decided in a small constant time (with
+a couple of very small exceptions). It would not be permissible, for example, to require
+that an array with an inconsistency anywhere among its framing offsets be treated as
+an empty array since this would require scanning over all of offsets (linear in the size
+of the array) just to determine the array size.
+
+There are only a small number of different sorts of abnormalities that can occur in a
+serialised byte sequence. Each of them, along with what to do, is addressed in this
+section.
+
+The following list is meant to be a definitive list. If a serialised byte sequence has none
+of these problems then it is in normal form. If a serialised byte sequence has any of
+these problems then it is not in normal form.
+
+**Wrong Size for Fixed Size Value**
+ In the event that the user attempts deserialisation using the type of a fixed-width type
+ and a byte sequence of the wrong length, the default value for that type will be used.
+
+**Non-zero Padding Bytes**
+ This abnormality occurs when any padding bytes are non-zero. This applies for arrays,
+ maybes, structures and dictionary entries. This abnormality is never checked for —
+ child values are deserialised from their containers as if the padding was zero-filled.
+
+**Boolean Out of Range**
+ In the event that a boolean contains a number other than zero or one it is treated as
+ if it were true. This is for purpose of consistency with the user accessing an array
+ of booleans directly in C. If, for example, one of the bytes in the array contained the
+ number 5, this would evaluate to True in C.
+
+**Possibly Unterminated String**
+ If the final byte of the serialised form of a string is not the zero byte then the value
+ of the string is taken to be the empty string.
+
+**String with Embedded Nul**
+ If a string has a nul character as its final byte, but also contains another nul character
+ before this final terminator, the value of the string is taken to be the part of the string
+ that precedes the embedded nul. This means that obtaining a C pointer to a string
+ is still a constant time operation.
+
+**Invalid Object Path**
+ If the serialised form of an object path is not a valid object path followed by a zero
+ byte then the default value is used.
+
+**Invalid Signature**
+ If the serialised form of a signature string is not a valid D-Bus signature followed by
+ a zero byte then the default value is used.
+
+**Wrong Size for Fixed Size Maybe**
+ In the event that a maybe instance with a fixed element size is not exactly equal to
+ the size of that element, then the value is taken to be ``Nothing``.
+
+**Wrong Size for Fixed Width Array**
+ In the event that the serialised size of a fixed-width array is not an integer multiple
+ of the fixed element size, the value is taken to be the empty array.
+
+**Start or End Boundary of a Child Falls Outside the Container**
+ If the framing offsets (or calculations based on them) indicate that any part of the
+ byte sequence of a child value would fall outside of the byte sequence of the parent
+ then the child is given the default value for its type.
+
+**End Boundary Precedes Start Boundary**
+ If the framing offsets (or calculations based on them) indicate that the end boundary
+ of the byte sequence of a child value precedes its start boundary then the child is
+ given the default value for its type.
+
+ The end boundary of a child preceding the start boundary may cause the byte
+ sequences of two or more children to overlap. This error is ignored for the
+ other children. These children are given values that correspond to the normal
+ deserialisation process performed on these byte sequences with the type of the child.
+
+ If children in a container are out of sequence then it is the case that this abnormality
+ is present. No other specific check is performed for children out of sequence.
+
+**Child Values Overlapping Framing Offsets**
+ If the byte sequence of a child value overlaps the framing offsets of the container it
+ resides within then this error is ignored. The child is given a value that corresponds
+ to the normal deserialisation process performed on this byte sequence (including the
+ bytes from the framing offsets) with the type of the child.
+
+**Non-Sense Length for Non-Fixed Width Array**
+ In the event that the final framing offset of a non-fixed-width array points to a
+ boundary outside of the byte sequence of the array, or indicates a non-integral number
+ of framing offsets is present in the array, the value is taken to be the empty array.
+
+**Insufficient Space for Structure Framing Offsets**
+ In the event that a serialised structure contains an insufficient space to store the
+ requisite number of framing offsets, the error is silently ignored as long as the item
+ that is being accessed has its required framing offsets in place. An attempt to access
+ an item that requires an offset beyond those available will result in the default value.
+
+Examples
+--------
+
+This section contains some clarifying examples to demonstrate the proper
+deserialisation of non-normal data.
+
+The byte sequences are presented in the same form as for the normal-form examples.
+A brief description is provided for why a value deserialises to the given value.
+
+**Wrong Size for Fixed Size Value**
+ With type ``'i'``::
+
+ 07 33 90
+
+ has a value of ``0``.
+
+ Since any value with a type of ``'i'`` should have a serialised size of 4, and since only
+ 3 bytes are given, the default value of zero is used instead.
+
+**Non-zero Padding Bytes**
+ With type ``'(yi)'``::
+
+ 55 66 77 88 02 01 00 00
+
+ has a value of ``(0x55, 258)``.
+
+ Non-zero padding bytes (``66 77 88``) are simply ignored.
+
+**Boolean Out of Range**
+ With type ``'ab'``::
+
+ 01 00 03 04 00 01 ff 80 00
+
+ has a value of ``[True, False, True, True, False, True, True, True, False]``.
+
+ Any non-zero booleans are treated as ``True``.
+
+**Unterminated String**
+ With type ``'as'``::
+
+ 'h 'e 'l 'l 'o sp 'w 'o 'r 'l 'd \0 0b 0c
+
+ has a value of ``['', '']`` (two empty strings).
+
+ The second string deserialises normally as a single nul character, but the first
+ string does not contain a nul character. Regardless of the fact that a nul character
+ immediately follows it, the first string is replaced with the empty string (the default
+ value for strings).
+
+**String with Embedded Nul**
+ With type ``'s'``::
+
+ 'f 'o 'o \0 'b 'a 'r \0
+
+ has a value of ``'foo'``.
+
+**String with Embedded Nul but None at End**
+ With type ``'s'``::
+
+ 'f 'o 'o \0 'b 'a 'r
+
+ has a value of ``''`` (the empty string).
+
+ The last byte in the string is always checked to determine if there is a nul and, if not,
+ the empty string is used as the value. This includes the case where a nul is present
+ elsewhere in the string.
+
+**Wrong Size for Fixed-Size Maybe**
+ With type ``'mi'``::
+
+ 33 44 55 66 77 88
+
+ has a value of ``Nothing``.
+
+ The only possible way for a value with type ``'mi'`` to be ``Just`` is for its serialised form
+ to be exactly 4 bytes.
+
+**Wrong Size for Fixed-Width Array**
+ With type ``'a(yy)'``::
+
+ 03 04 05 06 07
+
+ has a value of ``[]``.
+
+ With each array element as a pair of bytes, the serialised size of the array should be
+ a multiple of two. Since this is not the case, the value of the array is the empty array.
+
+**Start or End Boundary of Child Falls Outside the Container**
+ With type ``'(as)'``::
+
+ 'f 'o 'o \0 'b 'a 'r \0 'b 'a 'z \0 04 10 0c
+
+ has a value of ``['foo', '', '']``.
+
+ No problems are encountered while unpacking the first element in the array (which
+ is marked as falling between byte boundaries 0 and 4). When unpacking the 2nd
+ element, its end offset (16) is outside of the bounds of the array. This offset (16) is
+ also the start of the 3rd array element. As a result, both of these elements are given
+ their default value (the empty string).
+
+**End Boundary Precedes Start Boundary**
+ With type ``'(as)'``::
+
+ 'f 'o 'o \0 'b 'a 'r \0 'b 'a 'z \0 04 00 0c
+
+ has a value of ``['foo', '', 'foo']``.
+
+ Again, no problems are encountered while unpacking the first element in the array.
+ When unpacking the second element it is noticed that the end boundary precedes the
+ start. Since this is impossible, the default value of ``''`` is used instead. Unpacking the
+ final element (from 0 to 12) occurs without problem. The final element overlaps the
+ first element, however, and when assessing its value, the embedded nul character
+ causes it to be cut off at ``'foo'``.
+
+**Insufficient Space for Structure Framing Offsets**
+ With type ``'(ayayayayay)'``::
+
+ 03 02 01
+
+ has a value of ``([3], [2], [1], [], [])``.
+
+ Since this is not a fixed-size value, the fact that it has an impossible size does not cause
+ it to receive its default value (ie: there is no concept of “minimum-size”). Unpacking
+ the first three items in the structure occurs without a problem (demonstrating that
+ the content of a value can overlap the framing offsets). Attempting to unpack the last
+ two items fails, however, since the required framing offsets simply do not exist. The
+ default values are used instead.
+
+***********************
+Implementing the Format
+***********************
+
+This chapter contains information about the serialisation format that is not part of its
+specification.
+
+This information discusses issues that will arise during implementation of the serialisation
+format.
+
+An unfortunate observation is made about the safety of byteswapping operations and a
+method is given (along with proof of correctness) that random accesses to the contents of
+a structure can be made in constant time, despite the fact that framing offset are omitted
+for fixed-sized values.
+
+Notes on Byteswapping
+=====================
+
+Implementors may wish to perform in-place byteswapping of serialised GVariant data.
+There are a couple of things to consider in this case.
+
+The primary concern arises from the fact that if non-normal serialised data is present
+then byteswapping may not be possible.
+
+With a type string of ``(ssn)`` consider the following non-normal serialised data in little-
+endian byte order::
+
+ 78 00 00 02
+
+The first string has a length of 2 (including the nul terminator) and a value of ``'x'``. The
+second string is given its default value of ``''`` as a result of its end offset of 0 preceding
+its start offset of 2. Finally, the 16-bit integer, with a start offset of 0 (thus overlapping
+the first string) has a value of ``0x78``. The value of the entire structure is ``('x', '', 120)``.
+
+To change this serialised data to be in big-endian byte order requires the swapping of
+the bytes of the 16-bit value. To do so, however, would also modify the value of the string
+which these bytes overlap. In this case (and in general) there is no way to avoid this
+problem.
+
+Because of this problem, any implementation wishing to perform in-place byteswapping
+of serialised data must first ensure that the data is in normal form.
+
+There are a couple of cases where this requirement for normal form does not exist. In
+the case of any fixed-sized value or variable sized array, no framing offsets are present.
+This effectively eliminates the possibility of overlapping data and means that this cases
+can be byteswapped in-place without first checking for normality.
+
+Through a fortunate alignment of circumstances, these types (together with strings,
+which need not be byteswapped at all) are exactly the sorts of data that an
+implementation may wish to make available to the user via a pointer. As a result it is
+easy to imagine that an implementation may end up not requiring the ability to in-place
+byteswap serialised data except in cases where it is always safe.
+
+Calculating Structure Item Addresses
+====================================
+
+In the C language, structures exist in much the same way as they exist in the serialisation
+format. Each item in the structure follows the one preceding it as closely as possible,
+subject to alignment constraints.
+
+No matter what is done, it is impossible to determine the address of an item in a structure
+in C in a constant amount of time. The sizes and alignments of the items preceding it
+each need to be considered — a process which can not occur in less than linear time.
+The algorithm for doing this is to start at the starting address of the structure and then
+for each preceding item in the structure, round up to its alignment requirement and add
+its size. Finally, round up to the alignment requirement of the item to be accessed.
+
+This process can be described with a simple algebra containing two types of operations:
+
+ * :math:`(+c)`: add to a natural number, some constant, :math:`c`.
+ * :math:`(↑c)`: “align” (round up) a natural number up to the nearest multiple of some constant
+ power of two, :math:`2^c`.
+
+Assume that the compiler aligns integer values to their size. To find the address of a 32-
+bit integer following a 16-bit integer following an array of 3 64-bit integers, for example,
+the following computation must be performed, given the address of the start of the
+structure, :math:`s`:
+
+.. math::
+ ((↑3);\ (+24);\ (↑1);\ (+2);\ (↑2))\ s
+
+Of course, no modern C compiler saves this computation to be performed at each access.
+Instead, the compiler performs the computation at the time of the structure definition
+and builds a table containing the starting offset and size of each item in the structure.
+Because every item in the structure is of a fixed size and because the start address of
+the structure is always appropriately aligned, the address of an item in a structure can
+always be specified as a constant relative to the address of the start of that structure.
+
+For our example:
+
+.. math::
+ (+28)\ s
+
+Admitting non-fixed-sized items to structures very obviously prevents the starting offset
+of items following any non-fixed-sized item from being a constant relative to the start
+of the structure. The start address of any item will clearly depend on the end address
+of the non-fixed-sized item that most immediately precedes it. Worse than this though,
+due to the fact that this end address has no particular alignment, the starting offset of
+each item cannot be expressed as a constant offset, even to the end of the non-fixed-
+sized item preceding it.
+
+Without discovering another method to build a table, the address computation would
+have to be performed, in full, at each access – in linear time. Fortunately, another method
+exists, permitting constant-time access to structure members. It is possible to build a
+table with each row containing four integers such that this table permits calculating the
+start address of any structure item to be performed in only four operations:
+
+.. math::
+ ((+a);\ (↑b);\ (+c))\ offsets[i]
+
+Where :math:`offsets` is the array of framing offsets for the structure and :math:`i`, :math:`a`, :math:`b` and :math:`c` are the
+four integers from the table. By definition, :math:`offsets[{-1}] = 0`.
+
+Performing the Reduction
+------------------------
+
+Essentially, we are interested in a process by which we can reduce any length of
+sequence of constant adding and alignment operations to a sequence of length 3, with
+the form shown above. We can then perform this small constant number of operations
+at each access instead of the full computation.
+
+This reduction process occurs according to the following reduction rules:
+
+**Addition rule**
+ :math:`(+a);\ (+b) ⇒ (+(a + b))`
+
+**Greater alignment rule**
+ :math:`(↑a);\ (+b);\ (↑c) ⇒ (+(b ↑ a));\ (↑c)`, where :math:`c ≥ a`
+
+**Lesser alignment rule**
+ :math:`(↑a);\ (+b);\ (↑c) ⇒ (↑a);\ (+(b ↑ c))`, where :math:`c ≤ a`
+
+We can prove that, using these rules, any sequence of operations can be reduced to
+have no more than one alignment operation. If there exist two alignment operations in
+the sequence, one of these cases must be true:
+
+ * two alignment operations separated by exactly one addition
+ * two adjacent alignment operations
+ * two alignment operations separated by more than one addition
+
+In the case that there is exactly one addition separating our two alignment operations
+then either the greater or the lesser alignment rule may be immediately applied to
+reduce the number of alignment operations by one.
+
+In the case that there are more than one additions, they can be merged down to a single
+addition by application of the addition rule before applying one of the alignment rules.
+In the case of two adjacent alignment operations, a :math:`(+0)` operation can be introduced
+between then before applying one of the alignment rules.
+
+Since we can reduce any sequence of operations to a sequence containing only one
+alignment operation, we can further reduce it to the form :math:`(+a);\ (↑b);\ (+c)` by using
+the addition rule to merge all of the additions that occur before and after this single
+alignment operation.
+
+Computing the Table
+-------------------
+
+Based on the reduction rules above, an efficient (but still linear time) algorithm for
+computing the entire table at once can be developed.
+
+At all times, the “state so far” is kept as the four variables: :math:`i`, :math:`a`, :math:`b` and :math:`c` such that
+getting to the current location is possible by computing :math:`((+a);\ (↑b);\ (+c))` relative to
+the :math:`offset[i]`. :math:`i` is kept equal to the index of the framing offset which specifies the end of
+the most recently encountered non-fixed-sized item in the structure (or :math:`-1` in the case
+that no such item has been encountered). :math:`a`, :math:`b`, :math:`c` start at 0.
+
+Three merge rules are defined to allow any additional operation to be appended to this
+sequence without changing the size of the form of the sequence; the merge rules effect
+only the integer values of :math:`a`, :math:`b` and :math:`c`.
+
+ 1. appending an alignment :math:`d` less than or equal to the current alignment: :math:`(a, b, c) := (a, b, c ↑ d)`
+ as a direct result of the lesser alignment rule application :math:`(+a);\ (↑b);\ (+c);\ (↑d) ⇒ (+a);\ (↑b) (+c ↑ d)`.
+ 2. appending an alignment :math:`d` greater than the current alignment: :math:`(a, b, c) := (a + (c ↑b), d, 0)`
+ by the greater alignment rule application :math:`(+a);\ (↑b);\ (+c);\ (↑d) ⇒ (+a);\ (+c ↑ b);\ (↑d)`,
+ addition rule application to :math:`(+a + (c ↑ b));\ (↑d)` and harmless appending
+ of :math:`(+0)` to give :math:`(+a + (c ↑ b));\ (↑d);\ (+0)`.
+ 3. appending an addition :math:`e`: :math:`(a, b, c) := (a, b, c + e)` by obvious use of the addition rule
+ :math:`(+a);\ (↑b);\ (+c);\ (+e) ⇒ (+a);\ (↑b);\ (+(c + e))`.
+
+Each time a non-fixed-sized item is encountered, :math:`i` is incremented and :math:`a`, :math:`b`, :math:`c` are set
+back to zero.
+
+The algorithm is implemented by the following Python function which takes a list of
+(alignment, fixed size) pairs as input, representing the structure items. Its output is the
+table, given as an array of 4-tuples.
+
+.. code-block:: python
+
+ def generate_table(items):
+ (i, a, b, c) = (-1, 0, 0, 0)
+ table = []
+
+ for (d, e) in items:
+ if d <= b:
+ (a, b, c) = (a, b, align(c, d)) # merge rule #1
+ else:
+ (a, b, c) = (a + align(c, b), d, 0) # merge rule #2
+
+ table.append ((i, a, b, c))
+
+ if e == -1: # item is not fixed-sized
+ (i, a, b, c) = (i + 1, 0, 0, 0)
+ else:
+ (a, b, c) = (a, b, c + e) # merge rule #3
+
+ return table
+
+It is assumed that ``align(a, b)`` computes :math:`(a ↑ b)`.
+
+Further Reduction
+-----------------
+
+The reductions described above are non-confluent. An equivalence on the final
+sequence of operations exists. Specifically, if :math:`d` is a multiple of :math:`2^b`, then:
+
+.. math::
+ (+a);\ (↑b);\ (+(c + d)) = (+(a + d));\ (↑b); (+c)
+
+This is because, being a multiple of :math:`2^b`, :math:`d` can “pass through” the alignment operation
+without change.
+
+Consider, for example, the following:
+
+.. math::
+ (n + 16) ↑ 3
+
+It is clear that this is equivalent to
+
+.. math::
+ (n ↑ 3) + 16
+
+since there are no low order bits in the binary representation of 16 to be affected by a
+rounding operation that clears only the bottom 3 bits.
+
+In the case where only small alignment constraints are encountered (no larger than 8) it
+is possible (by shifting multiples of 256 out of :math:`c` into :math:`a`) to ensure that :math:`c` fits into no more
+than a single byte. This applies to the serialisation format as specified, considering that
+the largest alignment constraint ever encountered is 3.
+
+Plus/And/Or Representation
+--------------------------
+
+As a micro-optimisation, after performing the reduction in the previous section, the
+resulting values of :math:`a`, :math:`b`, :math:`c` can be transformed such that the calculation can be performed
+in only 3 commonly-available machine instructions.
+
+This transformation takes advantage of three simple facts about rounding.
+
+First note that rounding up to the nearest multiple of any number is the same as adding
+that number, minus 1, then rounding down to the nearest multiple of that number.
+
+Second, note that rounding down to the nearest multiple of a number that is a power of
+two is the same as taking the bitwise and with the bitwise complement of that number
+minus 1.
+
+Third, note that the result of rounding to a multiple of a power of 2 results in the
+low order bits of the result being cleared. Adding a number less than that multiple to
+the result of the rounding can't possibly result in carrying, so using bitwise or is an
+equivalent operation.
+
+Keeping in mind that after the reduction in the last section, :math:`c < 2^b`:
+
+.. math::
+ ((+a);\ (↑b);\ (+c)\ s) = ((+ (a + 2 - 1));\ (\&\ \sim(2 - 1));\ (|c))\ s)
+
+where :math:`|` denotes bitwise or, :math:`\&` denotes bitwise and, and :math:`\sim` denotes bitwise complement.
+
+We can therefore choose to store the following into the table:
+
+.. math::
+ (a + 2^b - 1, \sim(2^b - 1), c)
+
+and for each address we calculate, we are only required to perform an addition, a
+bitwise and and a bitwise or.
+
+Proof of Reduction Rules
+------------------------
+
+Given a few “intuitive” lemmas, we can prove that the reduction rules are sound.
+
+**Lemma 1**
+ .. math::
+ \forall{a, b}: (↑a);\ (↑b) = (↑(max(a, b)))
+
+ since alignment is always to powers of two, two successive alignment operations are
+ equivalent to the “most powerful” of the two.
+
+**Lemma 2**
+ .. math::
+ \forall{a, b, c, r}: r = (↑c) ⇒ r(a) + r(b) = r(a + r(b))
+
+ since :math:`r(b)` is already a multiple of :math:`2c` it can “pass through” the second application of
+ :math:`r` without change.
+
+**Lemma 3**
+ .. math::
+ \forall{c}: (0 ↑ c) = 0
+
+Addition Rule
+^^^^^^^^^^^^^
+
+Associativity of addition:
+
+.. math::
+ \forall{a, b, n}: (n + a) + b = n + (a + b)
+
+which is just the same as:
+
+.. math::
+ \forall{a, b, n}: ((+a);\ (+b))\ n = (+(a + b))\ n
+
+By partial instantiation:
+
+.. math::
+ \forall{n}: ((+a);\ (+b))\ n = (+(a + b))\ n
+
+and then by extensionality:
+
+.. math::
+ (+a);\ (+b) = (+(a + b))
+
+Greater Alignment Rule
+^^^^^^^^^^^^^^^^^^^^^^
+
+Let :math:`r = (↑c)` and :math:`s = (↑a)`.
+
+Lemma 2:
+
+.. math::
+ \forall{m, n}: s(n) + s(m) = s(s(n) + m)
+
+Lemma 3 allows:
+
+.. math::
+ \forall{m, n}: s(n) + s(m) + s(0) = s(s(n) + m)
+
+Repeated application of lemma 2 to the above:
+
+.. math::
+ \forall{m, n}: s(n) + s(s(m) + 0) = s(s(n) + m) \\
+ \forall{m, n}: s(s(n) + s(m) + 0) = s(s(n) + m)
+
+Which of course is equivalent to:
+
+.. math::
+ \forall{m, n}: s(s(n) + s(m)) = s(s(n) + m)
+
+Since addition commutes and we universally quantify over both :math:`m` and :math:`n`, there is no
+reason that what works for one won’t work equally well for the other:
+
+.. math::
+ \forall{m, n}: s(s(n) + s(m)) = s(n + s(m))
+
+so, clearly:
+
+.. math::
+ \forall{m, n}: s(s(n) + m) = s(n + s(m))
+
+Which we can partially instantiate as:
+
+.. math::
+ \forall{n}: s(s(n) + b) = s(n + s(b))
+
+It must be true, then, that:
+
+.. math::
+ \forall{n}: r(s(s(n) + b)) = r(s(n + s(b)))
+
+Remembering that :math:`r = (↑c)` and :math:`s = (↑a)`:
+
+.. math::
+ \forall{n}: ((↑a);\ (↑c))\ ((n ↑ a) + b) = ((↑a);\ (↑c))\ (n + (b ↑ a))
+
+And lemma 1 (since :math:`a ≤ c`) merges this into:
+
+.. math::
+ \forall{n}: (↑c)\ ((n ↑ a) + b) = (↑c)\ (n + (b ↑ a)) \\
+ \forall{n}: ((↑a);\ (+b);\ (↑c))\ n = ((+(b ↑ a));\ (↑c))\ n
+
+By extensionality:
+
+.. math::
+ (↑a);\ (+b);\ (↑c) = (+(b ↑ a));\ (↑c)
+
+Lesser Alignment Rule
+^^^^^^^^^^^^^^^^^^^^^
+
+Let :math:`r = (↑a)` and :math:`s = (↑c)`.
+
+Trivially:
+
+.. math::
+ \forall{n}: s(r(n) + b) = s(r(n) + b)
+
+From lemma 1, since :math:`c ≤ a`:
+
+.. math::
+ \forall{n}: s(s(r(n)) + b) = s(r(n) + b)
+
+Then lemma 2 allows:
+
+.. math::
+ \forall{n}: s(r(n)) + s(b) = s(r(n) + b)
+
+Effectively reversing the first application of lemma 1:
+
+.. math::
+ \forall{n}: r(n) + s(b) = s(r(n) + b)
+
+Remembering :math:`r = (↑a)` and :math:`s = (↑c)`:
+
+.. math::
+ \forall{n}: ((+(b ↑ c));\ (↑a))\ n = ((↑a);\ (+b);\ (↑c))\ n
+
+By extensionality:
+
+.. math::
+ (+(b ↑ c)); (↑a) = (↑a); (+b); (↑c) \ No newline at end of file
diff --git a/docs/reference/glib/gvariant-string-array.svg b/docs/reference/glib/gvariant-string-array.svg
new file mode 100644
index 000000000..d64a20e77
--- /dev/null
+++ b/docs/reference/glib/gvariant-string-array.svg
@@ -0,0 +1,465 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="149.22821mm"
+ height="29.919605mm"
+ viewBox="0 0 149.22821 29.919605"
+ version="1.1"
+ id="svg1664"
+ sodipodi:docname="gvariant-string-array.svg"
+ inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <sodipodi:namedview
+ id="namedview1666"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ inkscape:document-units="mm"
+ showgrid="false"
+ inkscape:zoom="1.7817059"
+ inkscape:cx="280.91056"
+ inkscape:cy="124.59969"
+ inkscape:window-width="1920"
+ inkscape:window-height="1043"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer1" />
+ <defs
+ id="defs1661">
+ <marker
+ style="overflow:visible"
+ id="marker9949"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Square"
+ markerWidth="6"
+ markerHeight="6"
+ viewBox="0 0 6 6"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ transform="scale(0.5)"
+ style="fill:context-fill;fill-rule:evenodd;stroke:context-stroke;stroke-width:2"
+ d="M -5,-5 V 5 H 5 V -5 Z"
+ id="path9947" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1"
+ refX="0"
+ refY="0"
+ orient="auto-start-reverse"
+ inkscape:stockid="Arrow1"
+ markerWidth="4.0606599"
+ markerHeight="6.7071066"
+ viewBox="0 0 4.0606602 6.7071068"
+ inkscape:isstock="true"
+ inkscape:collect="always"
+ preserveAspectRatio="xMidYMid">
+ <path
+ style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
+ d="M 3,-3 0,0 3,3"
+ id="path5057"
+ transform="rotate(180,0.125,0)"
+ sodipodi:nodetypes="ccc" />
+ </marker>
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-25.710224,-95.496216)">
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.489157;stroke-dasharray:none"
+ id="rect455-2"
+ width="147.51085"
+ height="12.948888"
+ x="27.183014"
+ y="100.10917" />
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.265;stroke-dasharray:none"
+ id="rect455"
+ width="60.94622"
+ height="9.6238031"
+ x="28.709707"
+ y="101.77171" />
+ <rect
+ style="fill:#ff8080;stroke:#000000;stroke-width:0.265;stroke-dasharray:none"
+ id="rect455-9"
+ width="60.94622"
+ height="9.6238031"
+ x="90.297195"
+ y="101.77171" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="81.257446"
+ y="109.18375"
+ id="text248-5"><tspan
+ sodipodi:role="line"
+ id="tspan246-54"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="81.257446"
+ y="109.18375">\0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="93.385475"
+ y="109.18375"
+ id="text248-76"><tspan
+ sodipodi:role="line"
+ id="tspan246-56"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="93.385475"
+ y="109.18375">w</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="103.65005"
+ y="109.18375"
+ id="text248-93"><tspan
+ sodipodi:role="line"
+ id="tspan246-7"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="103.65005"
+ y="109.18375">o</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="113.47436"
+ y="109.18375"
+ id="text248-4"><tspan
+ sodipodi:role="line"
+ id="tspan246-52"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="113.47436"
+ y="109.18375">r</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="124.23968"
+ y="109.18375"
+ id="text248-54"><tspan
+ sodipodi:role="line"
+ id="tspan246-74"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="124.23968"
+ y="109.18375">l</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="134.54922"
+ y="109.18375"
+ id="text248-43"><tspan
+ sodipodi:role="line"
+ id="tspan246-0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="134.54922"
+ y="109.18375">d</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="142.84494"
+ y="109.18375"
+ id="text248-78"><tspan
+ sodipodi:role="line"
+ id="tspan246-6"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="142.84494"
+ y="109.18375">\0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="153.58762"
+ y="109.18375"
+ id="text248-8"><tspan
+ sodipodi:role="line"
+ id="tspan246-8"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="153.58762"
+ y="109.18375">06</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="163.58762"
+ y="109.18375"
+ id="text248-431"><tspan
+ sodipodi:role="line"
+ id="tspan246-4"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="163.58762"
+ y="109.18375">0c</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="31.777834"
+ y="109.18375"
+ id="text248"><tspan
+ sodipodi:role="line"
+ id="tspan246"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="31.777834"
+ y="109.18375">h</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="42.059471"
+ y="109.18375"
+ id="text248-2"><tspan
+ sodipodi:role="line"
+ id="tspan246-3"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="42.059471"
+ y="109.18375">e</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="52.387615"
+ y="109.18375"
+ id="text248-7"><tspan
+ sodipodi:role="line"
+ id="tspan246-5"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="52.387615"
+ y="109.18375">l</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="72.856316"
+ y="109.18375"
+ id="text248-6"><tspan
+ sodipodi:role="line"
+ id="tspan246-1"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="72.856316"
+ y="109.18375">o</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="62.652199"
+ y="109.18375"
+ id="text248-9"><tspan
+ sodipodi:role="line"
+ id="tspan246-2"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="62.652199"
+ y="109.18375">l</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="25.343666"
+ y="99.784668"
+ id="text369"><tspan
+ sodipodi:role="line"
+ id="tspan367"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="25.343666"
+ y="99.784668">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="37.098316"
+ y="99.864594"
+ id="text369-2"><tspan
+ sodipodi:role="line"
+ id="tspan367-8"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="37.098316"
+ y="99.864594">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="47.348431"
+ y="99.864594"
+ id="text369-9"><tspan
+ sodipodi:role="line"
+ id="tspan367-7"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="47.348431"
+ y="99.864594">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="57.695263"
+ y="99.784668"
+ id="text369-3"><tspan
+ sodipodi:role="line"
+ id="tspan367-6"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="57.695263"
+ y="99.784668">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="67.996796"
+ y="99.864594"
+ id="text369-1"><tspan
+ sodipodi:role="line"
+ id="tspan367-2"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="67.996796"
+ y="99.864594">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="79.215927"
+ y="99.784668"
+ id="text369-7"><tspan
+ sodipodi:role="line"
+ id="tspan367-84"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="79.215927"
+ y="99.784668">5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="87.691978"
+ y="99.784668"
+ id="text369-2-5"><tspan
+ sodipodi:role="line"
+ id="tspan367-8-0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="87.691978"
+ y="99.784668">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="98.538429"
+ y="99.864594"
+ id="text369-9-3"><tspan
+ sodipodi:role="line"
+ id="tspan367-7-6"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="98.538429"
+ y="99.864594">7</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="108.86606"
+ y="99.784668"
+ id="text369-3-1"><tspan
+ sodipodi:role="line"
+ id="tspan367-6-0"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="108.86606"
+ y="99.784668">8</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="119.33865"
+ y="99.784668"
+ id="text369-3-9"><tspan
+ sodipodi:role="line"
+ id="tspan367-6-2"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="119.33865"
+ y="99.784668">9</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="129.61528"
+ y="99.784668"
+ id="text369-1-0"><tspan
+ sodipodi:role="line"
+ id="tspan367-2-6"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="129.61528"
+ y="99.784668">a</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="140.70627"
+ y="99.784668"
+ id="text369-7-8"><tspan
+ sodipodi:role="line"
+ id="tspan367-84-9"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="140.70627"
+ y="99.784668">b</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="150.26042"
+ y="99.784668"
+ id="text369-2-5-2"><tspan
+ sodipodi:role="line"
+ id="tspan367-8-0-6"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="150.26042"
+ y="99.784668">c</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="160.74477"
+ y="99.784668"
+ id="text369-9-3-6"><tspan
+ sodipodi:role="line"
+ id="tspan367-7-6-4"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="160.74477"
+ y="99.784668">d</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
+ x="168.77388"
+ y="99.784668"
+ id="text369-3-1-9"><tspan
+ sodipodi:role="line"
+ id="tspan367-6-0-5"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'DejaVu Sans Mono';-inkscape-font-specification:'DejaVu Sans Mono';stroke-width:0.264583"
+ x="168.77388"
+ y="99.784668">e</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker9949);marker-end:url(#Arrow1)"
+ d="m 157.48947,113.10711 v 12.17642 H 90.07105 v -12.27329"
+ id="path3133" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker9949);marker-end:url(#Arrow1)"
+ d="m 167.65592,113.19876 v 6.5108 h -16.28106 v -6.26542"
+ id="path3388" />
+ </g>
+ <metadata
+ id="metadata7003">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:rights>
+ <cc:Agent>
+ <dc:title>Copyright © 2022 Philip Withnall</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+</svg>
diff --git a/docs/reference/glib/meson.build b/docs/reference/glib/meson.build
index 838a4f777..3cfff2f0b 100644
--- a/docs/reference/glib/meson.build
+++ b/docs/reference/glib/meson.build
@@ -38,6 +38,9 @@ if get_option('gtk_doc')
'gutilsprivate.h',
'gvalgrind.h',
'dirent.h',
+ 'glib-unixprivate.h',
+ 'glib-visibility.h',
+ 'gmodule-visibility.h',
]
docpath = join_paths(glib_datadir, 'gtk-doc', 'html')
@@ -49,13 +52,20 @@ if get_option('gtk_doc')
configuration: version_conf
)
+ configure_file(
+ input: 'glib-sections.txt.in',
+ output: 'glib-sections.txt',
+ command: [gen_visibility_macros, meson.project_version(), 'doc-sections', '@INPUT@', '@OUTPUT@'],
+ )
+
gnome.gtkdoc('glib',
main_xml : 'glib-docs.xml',
namespace : 'g',
mode : 'none',
src_dir : [ 'glib', 'gmodule' ],
dependencies : libglib_dep,
- scan_args : gtkdoc_common_scan_args + [
+ scan_args : [
+ '--ignore-decorators=' + ignore_decorators + '|' + ignore_decorators.replace('GLIB', 'GMODULE'),
'--ignore-headers=' + ' '.join(ignore_headers),
],
content_files : [
@@ -102,3 +112,38 @@ if get_option('man')
install_dir: man1_dir)
endforeach
endif
+
+if get_option('gtk_doc')
+ # GVariant specification is currently standalone
+ rst2html5 = find_program('rst2html5', 'rst2html5.py', required: false)
+
+ if rst2html5.found()
+ spec_path = glib_datadir / 'doc' / 'glib-2.0'
+
+ figures = files(
+ 'gvariant-byte-boundaries.svg',
+ 'gvariant-integer-and-string-structure.svg',
+ 'gvariant-integer-array.svg',
+ 'gvariant-string-array.svg',
+ )
+
+ custom_target('gvariant-specification-1.0',
+ input: 'gvariant-specification-1.0.rst',
+ output: 'gvariant-specification-1.0.html',
+ command: [
+ rst2html5,
+ '@INPUT@',
+ ],
+ capture: true,
+ install: true,
+ install_dir: spec_path,
+ install_tag: 'doc',
+ depend_files: figures,
+ )
+
+ install_data(figures,
+ install_dir : spec_path,
+ install_tag : 'doc',
+ )
+ endif
+endif
diff --git a/docs/reference/glib/programming.xml b/docs/reference/glib/programming.xml
index 52df907e8..9efa19d33 100644
--- a/docs/reference/glib/programming.xml
+++ b/docs/reference/glib/programming.xml
@@ -20,6 +20,47 @@ General considerations when programming with GLib
<title>Writing GLib Applications</title>
<refsect2>
+<title>Memory Allocations</title>
+
+<para>
+Unless otherwise specified, all functions which allocate memory in GLib will
+abort the process if heap allocation fails. This is because it is too hard to
+recover from allocation failures in any non-trivial program and, in particular,
+to test all the allocation failure code paths.
+</para>
+</refsect2>
+
+<refsect2>
+<title>UTF-8 and String Encoding</title>
+
+<para>
+All GLib, GObject and GIO functions accept and return strings in
+<ulink url="https://en.wikipedia.org/wiki/UTF-8">UTF-8 encoding</ulink>
+unless otherwise specified.
+</para>
+
+<para>
+Input strings to function calls are <emphasis>not</emphasis> checked to see if
+they are valid UTF-8: it is the application developer’s responsibility to
+validate input strings at the time of input, either at the program or library
+boundary, and to only use valid UTF-8 string constants in their application.
+If GLib were to UTF-8 validate all string inputs to all functions, there would
+be a significant drop in performance.
+</para>
+
+<para>Similarly, output strings from functions are guaranteed to be in UTF-8,
+and this does not need to be validated by the calling function. If a function
+returns invalid UTF-8 (and is not documented as doing so), that’s a bug.
+</para>
+
+<para>
+See <link linkend='g-utf8-validate'><function>g_utf8_validate()</function></link>
+and <link linkend='g-utf8-make-valid'><function>g_utf8_make_valid()</function></link>
+for validating UTF-8 input.
+</para>
+</refsect2>
+
+<refsect2>
<title>Threads</title>
<para>
@@ -35,15 +76,22 @@ will always have at least 2 threads.
</para>
<para>
+In particular, this means that programs must only use
+<ulink url="man:signal-safety(7)">async-signal-safe functions</ulink> between
+calling <function>fork()</function> and <function>exec()</function>, even if
+they haven’t explicitly spawned another thread yet.
+</para>
+
+<para>
See the sections on <link linkend="glib-Threads">threads</link> and
-<link linkend="glib-Thread-Pools">threadpools</link> for GLib APIs that
+<link linkend="glib-Thread-Pools">thread pools</link> for GLib APIs that
support multithreaded applications.
</para>
</refsect2>
<refsect2>
-<title>Security</title>
+<title>Security and setuid use</title>
<para>
When writing code that runs with elevated privileges, it is important
@@ -56,8 +104,17 @@ excellent book on this topic,
When it comes to GLib and its associated libraries, GLib and
GObject are generally fine to use in code that runs with elevated
privileges; they don't load modules (executable code in shared objects)
-or run other programs 'behind your back'. GIO has to be used
-carefully in privileged programs, see the <ulink url="http://developer.gnome.org/gio/stable/ch02.html">GIO documentation</ulink> for details.
+or run other programs ‘behind your back’. GIO, however, is not designed to be
+used in privileged programs, either ones which are spawned by a privileged
+process, or ones which are run with a setuid bit set.
+</para>
+
+<para>
+setuid programs should always reset their environment to contain only
+known-safe values before calling into non-trivial libraries such as GIO. This
+reduces the risk of an attacker-controlled environment variable being used to
+get a privileged GIO process to run arbitrary code via loading a GIO module or
+similar.
</para>
</refsect2>
diff --git a/docs/reference/glib/running.xml b/docs/reference/glib/running.xml
index 80a8da097..dbf22ad1e 100644
--- a/docs/reference/glib/running.xml
+++ b/docs/reference/glib/running.xml
@@ -165,53 +165,10 @@ How to run and debug your GLib application
<title><envar>G_SLICE</envar></title>
<para>
- This environment variable allows reconfiguration of the GSlice
- memory allocator.
- <variablelist>
- <varlistentry>
- <term>always-malloc</term>
- <listitem><para>This will cause all slices allocated through
- g_slice_alloc() and released by g_slice_free1() to be actually
- allocated via direct calls to g_malloc() and g_free().
- This is most useful for memory checkers and similar programs that
- use Boehm GC alike algorithms to produce more accurate results.
- It can also be in conjunction with debugging features of the system's
- malloc() implementation such as glibc's MALLOC_CHECK_=2 to debug
- erroneous slice allocation code, although
- <literal>debug-blocks</literal> is usually a better suited debugging
- tool.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>debug-blocks</term>
- <listitem><para>Using this option (present since GLib 2.13) engages
- extra code which performs sanity checks on the released memory
- slices. Invalid slice addresses or slice sizes will be reported and
- lead to a program halt. This option is for debugging scenarios.
- In particular, client packages sporting their own test suite should
- <emphasis>always enable this option when running tests</emphasis>.
- Global slice validation is ensured by storing size and address
- information for each allocated chunk, and maintaining a global
- hash table of that data. That way, multi-thread scalability is
- given up, and memory consumption is increased. However, the
- resulting code usually performs acceptably well, possibly better
- than with comparable memory checking carried out using external
- tools.</para>
- <para>An example of a memory corruption scenario that cannot be
- reproduced with <literal>G_SLICE=always-malloc</literal>, but will
- be caught by <literal>G_SLICE=debug-blocks</literal> is as follows:
- <programlisting>
- /* void* gives up type-safety */
- void *slist = g_slist_alloc ();
-
- /* corruption: sizeof (GSList) != sizeof (GList) */
- g_list_free (slist);
- </programlisting></para>
- </listitem>
- </varlistentry>
- </variablelist>
- The special value <literal>all</literal> can be used to turn on all options.
- The special value <literal>help</literal> can be used to print all available options.
+ This environment variable allowed reconfiguration of the GSlice
+ memory allocator. Since GLib 2.76, GSlice uses the system
+ <literal>malloc()</literal> implementation internally, so this variable is
+ ignored.
</para>
</formalpara>
diff --git a/docs/reference/gobject/glib-mkenums.xml b/docs/reference/gobject/glib-mkenums.xml
index 29709853c..f290fe0a6 100644
--- a/docs/reference/gobject/glib-mkenums.xml
+++ b/docs/reference/gobject/glib-mkenums.xml
@@ -65,7 +65,7 @@ typedef enum
</programlisting></informalexample>
<variablelist>
<varlistentry>
-<term><literal>@EnumName@</literal>></term>
+<term><literal>@EnumName@</literal></term>
<listitem><para>
The name of the enum currently being processed, enum names are assumed to be
properly namespaced and to use mixed capitalization to separate
diff --git a/docs/reference/gobject/gobject-docs.xml b/docs/reference/gobject/gobject-docs.xml
index bfab04837..69147e276 100644
--- a/docs/reference/gobject/gobject-docs.xml
+++ b/docs/reference/gobject/gobject-docs.xml
@@ -98,130 +98,138 @@
<xi:include href="tut_howto.xml" />
<xi:include href="tut_tools.xml" />
- <index id="api-index-full">
+ <chapter id="api-index-full">
<title>Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-deprecated" role="deprecated">
+ </chapter>
+ <chapter id="api-index-deprecated" role="deprecated">
<title>Index of deprecated symbols</title>
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-2" role="2.2">
+ </chapter>
+ <chapter id="api-index-2-2" role="2.2">
<title>Index of new symbols in 2.2</title>
<xi:include href="xml/api-index-2.2.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-4" role="2.4">
+ </chapter>
+ <chapter id="api-index-2-4" role="2.4">
<title>Index of new symbols in 2.4</title>
<xi:include href="xml/api-index-2.4.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-6" role="2.6">
+ </chapter>
+ <chapter id="api-index-2-6" role="2.6">
<title>Index of new symbols in 2.6</title>
<xi:include href="xml/api-index-2.6.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-8" role="2.8">
+ </chapter>
+ <chapter id="api-index-2-8" role="2.8">
<title>Index of new symbols in 2.8</title>
<xi:include href="xml/api-index-2.8.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-10" role="2.10">
+ </chapter>
+ <chapter id="api-index-2-10" role="2.10">
<title>Index of new symbols in 2.10</title>
<xi:include href="xml/api-index-2.10.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-12" role="2.12">
+ </chapter>
+ <chapter id="api-index-2-12" role="2.12">
<title>Index of new symbols in 2.12</title>
<xi:include href="xml/api-index-2.12.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-14" role="2.14">
+ </chapter>
+ <chapter id="api-index-2-14" role="2.14">
<title>Index of new symbols in 2.14</title>
<xi:include href="xml/api-index-2.14.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-18" role="2.18">
+ </chapter>
+ <chapter id="api-index-2-18" role="2.18">
<title>Index of new symbols in 2.18</title>
<xi:include href="xml/api-index-2.18.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-22" role="2.22">
+ </chapter>
+ <chapter id="api-index-2-22" role="2.22">
<title>Index of new symbols in 2.22</title>
<xi:include href="xml/api-index-2.22.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-24" role="2.24">
+ </chapter>
+ <chapter id="api-index-2-24" role="2.24">
<title>Index of new symbols in 2.24</title>
<xi:include href="xml/api-index-2.24.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-26" role="2.26">
+ </chapter>
+ <chapter id="api-index-2-26" role="2.26">
<title>Index of new symbols in 2.26</title>
<xi:include href="xml/api-index-2.26.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-28" role="2.28">
+ </chapter>
+ <chapter id="api-index-2-28" role="2.28">
<title>Index of new symbols in 2.28</title>
<xi:include href="xml/api-index-2.28.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-30" role="2.30">
+ </chapter>
+ <chapter id="api-index-2-30" role="2.30">
<title>Index of new symbols in 2.30</title>
<xi:include href="xml/api-index-2.30.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-32" role="2.32">
+ </chapter>
+ <chapter id="api-index-2-32" role="2.32">
<title>Index of new symbols in 2.32</title>
<xi:include href="xml/api-index-2.32.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-34" role="2.34">
+ </chapter>
+ <chapter id="api-index-2-34" role="2.34">
<title>Index of new symbols in 2.34</title>
<xi:include href="xml/api-index-2.34.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-36" role="2.36">
+ </chapter>
+ <chapter id="api-index-2-36" role="2.36">
<title>Index of new symbols in 2.36</title>
<xi:include href="xml/api-index-2.36.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-38" role="2.38">
+ </chapter>
+ <chapter id="api-index-2-38" role="2.38">
<title>Index of new symbols in 2.38</title>
<xi:include href="xml/api-index-2.38.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-40" role="2.40">
+ </chapter>
+ <chapter id="api-index-2-40" role="2.40">
<title>Index of new symbols in 2.40</title>
<xi:include href="xml/api-index-2.40.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-42" role="2.42">
+ </chapter>
+ <chapter id="api-index-2-42" role="2.42">
<title>Index of new symbols in 2.42</title>
<xi:include href="xml/api-index-2.42.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-44" role="2.44">
+ </chapter>
+ <chapter id="api-index-2-44" role="2.44">
<title>Index of new symbols in 2.44</title>
<xi:include href="xml/api-index-2.44.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-46" role="2.46">
+ </chapter>
+ <chapter id="api-index-2-46" role="2.46">
<title>Index of new symbols in 2.46</title>
<xi:include href="xml/api-index-2.46.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-54" role="2.54">
+ </chapter>
+ <chapter id="api-index-2-54" role="2.54">
<title>Index of new symbols in 2.54</title>
<xi:include href="xml/api-index-2.54.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-56" role="2.56">
+ </chapter>
+ <chapter id="api-index-2-56" role="2.56">
<title>Index of new symbols in 2.56</title>
<xi:include href="xml/api-index-2.56.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-62" role="2.62">
+ </chapter>
+ <chapter id="api-index-2-62" role="2.62">
<title>Index of new symbols in 2.62</title>
<xi:include href="xml/api-index-2.62.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-66" role="2.66">
+ </chapter>
+ <chapter id="api-index-2-66" role="2.66">
<title>Index of new symbols in 2.66</title>
<xi:include href="xml/api-index-2.66.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-68" role="2.68">
+ </chapter>
+ <chapter id="api-index-2-68" role="2.68">
<title>Index of new symbols in 2.68</title>
<xi:include href="xml/api-index-2.68.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-70" role="2.70">
+ </chapter>
+ <chapter id="api-index-2-70" role="2.70">
<title>Index of new symbols in 2.70</title>
<xi:include href="xml/api-index-2.70.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-72" role="2.72">
+ </chapter>
+ <chapter id="api-index-2-72" role="2.72">
<title>Index of new symbols in 2.72</title>
<xi:include href="xml/api-index-2.72.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-2-74" role="2.74">
+ </chapter>
+ <chapter id="api-index-2-74" role="2.74">
<title>Index of new symbols in 2.74</title>
<xi:include href="xml/api-index-2.74.xml"><xi:fallback /></xi:include>
- </index>
+ </chapter>
+ <chapter id="api-index-2-76" role="2.76">
+ <title>Index of new symbols in 2.76</title>
+ <xi:include href="xml/api-index-2.76.xml"><xi:fallback /></xi:include>
+ </chapter>
+ <chapter id="api-index-2-78" role="2.78">
+ <title>Index of new symbols in 2.78</title>
+ <xi:include href="xml/api-index-2.78.xml"><xi:fallback /></xi:include>
+ </chapter>
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
diff --git a/docs/reference/gobject/gobject-sections.txt b/docs/reference/gobject/gobject-sections.txt
index 4107f8356..8b0d33010 100644
--- a/docs/reference/gobject/gobject-sections.txt
+++ b/docs/reference/gobject/gobject-sections.txt
@@ -18,12 +18,19 @@ G_TYPE_IS_DERIVABLE
G_TYPE_IS_DEEP_DERIVABLE
G_TYPE_IS_INTERFACE
G_TYPE_IS_FINAL
+G_TYPE_IS_DEPRECATED
GTypeInterface
GTypeInstance
GTypeClass
GTypeInfo
GTypeFundamentalInfo
GInterfaceInfo
+GTypeValueInitFunc
+GTypeValueFreeFunc
+GTypeValueCopyFunc
+GTypeValuePeekPointerFunc
+GTypeValueCollectFunc
+GTypeValueLCopyFunc
GTypeValueTable
G_TYPE_FROM_INSTANCE
G_TYPE_FROM_CLASS
@@ -185,9 +192,6 @@ G_TYPE_RESERVED_GLIB_LAST
G_TYPE_RESERVED_BSE_FIRST
G_TYPE_RESERVED_BSE_LAST
G_TYPE_RESERVED_USER_FIRST
-
-<SUBSECTION Private>
-GOBJECT_VAR
</SECTION>
<SECTION>
@@ -420,6 +424,7 @@ G_TYPE_OPTION_GROUP
G_TYPE_URI
G_TYPE_TREE
G_TYPE_PATTERN_SPEC
+G_TYPE_BOOKMARK_FILE
<SUBSECTION Standard>
G_TYPE_IS_BOXED
@@ -456,6 +461,7 @@ g_option_group_get_type
g_uri_get_type
g_tree_get_type
g_pattern_spec_get_type
+g_bookmark_file_get_type
</SECTION>
<SECTION>
diff --git a/docs/reference/gobject/meson.build b/docs/reference/gobject/meson.build
index a9a654354..dd3e53dbf 100644
--- a/docs/reference/gobject/meson.build
+++ b/docs/reference/gobject/meson.build
@@ -8,6 +8,7 @@ if get_option('gtk_doc')
'gobject_trace.h',
'gtype-private.h',
'glib-enumtypes.h',
+ 'gobject-visibility.h',
]
docpath = join_paths(glib_datadir, 'gtk-doc', 'html')
@@ -28,7 +29,8 @@ if get_option('gtk_doc')
dependencies : [libgobject_dep, libglib_dep],
include_directories : [gtkdocincl],
src_dir : 'gobject',
- scan_args : gtkdoc_common_scan_args + [
+ scan_args : [
+ '--ignore-decorators=' + '|'.join(ignore_decorators.replace('GLIB', 'GOBJECT')),
'--rebuild-types',
'--ignore-headers=' + ' '.join(ignore_headers),
],
diff --git a/docs/reference/gobject/tut_gobject.xml b/docs/reference/gobject/tut_gobject.xml
index 7a2ecc77e..53f38abb2 100644
--- a/docs/reference/gobject/tut_gobject.xml
+++ b/docs/reference/gobject/tut_gobject.xml
@@ -19,7 +19,7 @@
<listitem><para>Generic per-object properties with set/get function pairs</para></listitem>
<listitem><para>Easy use of signals</para></listitem>
</itemizedlist>
- All the GNOME libraries which use the GLib type system (like GTK+ and GStreamer)
+ All the GNOME libraries which use the GLib type system (like GTK and GStreamer)
inherit from <link linkend="GObject"><type>GObject</type></link> which is why it is important to understand
the details of how it works.
</para>
@@ -294,7 +294,7 @@ ViewerFile *file = g_object_new (VIEWER_TYPE_FILE, NULL);
memory will be freed or returned to the object pool for this type.
Once the object has been freed, if it was the last instance of the type, the type's class
will be destroyed as described in <xref linkend="gtype-instantiatable-classed"/> and
- <xref linkend="gtype-non-instantiatable-classed"/>.
+ <xref linkend="gtype-non-instantiatable-non-classed"/>.
</para>
<para>
diff --git a/docs/reference/gobject/tut_gsignal.xml b/docs/reference/gobject/tut_gsignal.xml
index 5559673cb..d690d1690 100644
--- a/docs/reference/gobject/tut_gsignal.xml
+++ b/docs/reference/gobject/tut_gsignal.xml
@@ -10,7 +10,7 @@
<para>
Closures are central to the concept of asynchronous signal delivery
- which is widely used throughout GTK+ and GNOME applications. A closure is an
+ which is widely used throughout GTK and GNOME applications. A closure is an
abstraction, a generic representation of a callback. It is a small structure
which contains three objects:
<itemizedlist>
@@ -37,9 +37,9 @@ return_type function_callback (… , gpointer user_data);
<footnote><para>
In practice, closures sit at the boundary of language runtimes: if you are
writing Python code and one of your Python callbacks receives a signal from
- a GTK+ widget, the C code in GTK+ needs to execute your Python
- code. The closure invoked by the GTK+ object invokes the Python callback:
- it behaves as a normal C object for GTK+ and as a normal Python object for
+ a GTK widget, the C code in GTK needs to execute your Python
+ code. The closure invoked by the GTK object invokes the Python callback:
+ it behaves as a normal C object for GTK and as a normal Python object for
Python code.
</para></footnote>
The GObject library provides a simple <link linkend="GCClosure"><type>GCClosure</type></link> type which
@@ -179,8 +179,8 @@ g_cclosure_marshal_VOID__INT (GClosure *closure,
<para>
GObject's signals have nothing to do with standard UNIX signals: they connect
arbitrary application-specific events with any number of listeners.
- For example, in GTK+, every user event (keystroke or mouse move) is received
- from the windowing system and generates a GTK+ event in the form of a signal emission
+ For example, in GTK, every user event (keystroke or mouse move) is received
+ from the windowing system and generates a GTK event in the form of a signal emission
on the widget object instance.
</para>
diff --git a/docs/reference/gobject/tut_gtype.xml b/docs/reference/gobject/tut_gtype.xml
index ee042889d..c2d51b9a5 100644
--- a/docs/reference/gobject/tut_gtype.xml
+++ b/docs/reference/gobject/tut_gtype.xml
@@ -599,7 +599,7 @@ B *b;
<row>
<!--entry>First call to <function><link linkend="g-type-create-instance">g_type_create_instance</link></function> for target type</entry-->
<entry>interface initialization, see
- <xref linkend="gtype-non-instantiatable-classed-init"/></entry>
+ <xref linkend="gtype-non-instantiatable-non-classed-init"/></entry>
<entry></entry>
</row>
<row>
@@ -610,7 +610,7 @@ B *b;
<row>
<entry morerows="2">Last call to <function><link linkend="g-type-free-instance">g_type_free_instance</link></function> for target type</entry>
<entry>interface destruction, see
- <xref linkend="gtype-non-instantiatable-classed-dest"/></entry>
+ <xref linkend="gtype-non-instantiatable-non-classed-dest"/></entry>
<entry></entry>
</row>
<row>
@@ -633,8 +633,8 @@ B *b;
</sect1>
- <sect1 id="gtype-non-instantiatable-classed">
- <title>Non-instantiatable classed types: interfaces</title>
+ <sect1 id="gtype-non-instantiatable-non-classed">
+ <title>Non-instantiatable non-classed types: interfaces</title>
<para>
This section covers the theory behind interfaces. See
@@ -649,7 +649,7 @@ B *b;
be seen as a playback interface. Once you know what they do, you can
control your CD player, MP3 player or anything that uses these symbols.
To declare an interface you have to register a non-instantiatable
- classed type which derives from
+ non-classed type which derives from
<link linkend="GTypeInterface"><type>GTypeInterface</type></link>. The following piece of code declares such an interface.
<informalexample><programlisting>
#define VIEWER_TYPE_EDITABLE viewer_editable_get_type ()
@@ -792,7 +792,7 @@ struct _GInterfaceInfo
</programlisting></informalexample>
</para>
- <sect2 id="gtype-non-instantiatable-classed-init">
+ <sect2 id="gtype-non-instantiatable-non-classed-init">
<title>Interface Initialization</title>
<para>
@@ -937,7 +937,7 @@ viewer_editable_default_init (ViewerEditableInterface *iface)
</sect2>
- <sect2 id="gtype-non-instantiatable-classed-dest">
+ <sect2 id="gtype-non-instantiatable-non-classed-dest">
<title>Interface Destruction</title>
<para>
@@ -955,7 +955,7 @@ viewer_editable_default_init (ViewerEditableInterface *iface)
<para>
Again, it is important to understand, as in
- <xref linkend="gtype-non-instantiatable-classed-init"/>,
+ <xref linkend="gtype-non-instantiatable-non-classed-init"/>,
that both <function>interface_finalize</function> and <function>base_finalize</function>
are invoked exactly once for the destruction of each implementation of an interface. Thus,
if you were to use one of these functions, you would need to use a static integer variable
diff --git a/docs/reference/gobject/tut_howto.xml b/docs/reference/gobject/tut_howto.xml
index 4ed178cec..82419239a 100644
--- a/docs/reference/gobject/tut_howto.xml
+++ b/docs/reference/gobject/tut_howto.xml
@@ -17,7 +17,7 @@
<para>
This chapter focuses on the implementation of a subtype of GObject, for
- example to create a custom class hierarchy, or to subclass a GTK+ widget.
+ example to create a custom class hierarchy, or to subclass a GTK widget.
</para>
<para>
@@ -55,7 +55,7 @@
<filename>viewer_file.c</filename>.</para></listitem>
<listitem><para>Do not separate the prefix from the typename:
<filename>viewerfile.h</filename> and <filename>viewerfile.c</filename>.
- (this is the convention used by GTK+)</para></listitem>
+ (this is the convention used by GTK)</para></listitem>
</itemizedlist>
Some people like the first two solutions better: it makes reading file
names easier for those with poor eyesight.
@@ -854,7 +854,7 @@ b_method_to_call (B *obj, gint some_param)
<para>
The theory behind how GObject interfaces work is given in
- <xref linkend="gtype-non-instantiatable-classed"/>; this section covers how to
+ <xref linkend="gtype-non-instantiatable-non-classed"/>; this section covers how to
define and implement an interface.
</para>
diff --git a/docs/reference/gobject/tut_intro.xml b/docs/reference/gobject/tut_intro.xml
index 7614bf013..87e8a4984 100644
--- a/docs/reference/gobject/tut_intro.xml
+++ b/docs/reference/gobject/tut_intro.xml
@@ -6,7 +6,7 @@
<title>Background</title>
<para>
- GObject, and its lower-level type system, GType, are used by GTK+ and most GNOME libraries to
+ GObject, and its lower-level type system, GType, are used by GTK and most GNOME libraries to
provide:
<itemizedlist>
<listitem><para>object-oriented C-based APIs and</para></listitem>
diff --git a/docs/reference/gobject/tut_tools.xml b/docs/reference/gobject/tut_tools.xml
index f1076e832..c56431eaa 100644
--- a/docs/reference/gobject/tut_tools.xml
+++ b/docs/reference/gobject/tut_tools.xml
@@ -62,7 +62,7 @@
Yet another tool that you may find helpful when working with
GObjects is <ulink
url="http://sourceforge.net/projects/g-inspector">G-Inspector</ulink>. It
- is able to display GLib/GTK+ objects and their properties.
+ is able to display GLib/GTK objects and their properties.
</para>
</chapter>
@@ -90,7 +90,7 @@ break g_object_unref if _object == 0xcafebabe
<chapter id="tools-gtkdoc">
<title>Writing API docs</title>
- <para>The API documentation for most of the GLib, GObject, GTK+ and GNOME
+ <para>The API documentation for most of the GLib, GObject, GTK and GNOME
libraries is built with a combination of complex tools. Typically, the part of
the documentation which describes the behavior of each function is extracted
from the specially-formatted source code comments by a tool named gtk-doc which
diff --git a/docs/reference/meson.build b/docs/reference/meson.build
index dcaa5c276..67c1dda56 100644
--- a/docs/reference/meson.build
+++ b/docs/reference/meson.build
@@ -37,22 +37,20 @@ foreach i : range(first_version, last_version + 2, 2)
]
endforeach
-gtkdoc_common_scan_args = [
- '--ignore-decorators=' + '|'.join(ignore_decorators),
-]
+ignore_decorators = '|'.join(ignore_decorators)
if get_option('gtk_doc')
# Check we have the minimum gtk-doc version required. Older versions won't
# generate correct documentation.
- dependency('gtk-doc', version : '>=1.32.1',
+ dependency('gtk-doc', version : '>=1.32.1', native: true,
fallback : ['gtk-doc', 'dummy_dep'],
default_options : ['tests=false'])
-endif
-# We cannot built the API reference off of a static library,
-# as symbols might get dropped by the linker
-if get_option('gtk_doc') and get_option('default_library') == 'static'
- error('The API reference can only be built against a shared library')
+ # We cannot built the API reference off of a static library,
+ # as symbols might get dropped by the linker
+ if not glib_build_shared
+ error('The API reference can only be built against a shared library')
+ endif
endif
subdir('gio')
diff --git a/docs/supported-platforms.md b/docs/supported-platforms.md
index fbda4266c..ef627de19 100644
--- a/docs/supported-platforms.md
+++ b/docs/supported-platforms.md
@@ -8,10 +8,18 @@ GLib on a particular system, or we have regular builds of GLib on that system.
Minimum versions
---
+This list is authoritative, and documents what this version of GLib targets to
+support. The list will be periodically updated for the development branch,
+with versions typically being updated as they lapse from receiving support from
+their vendor.
+
* macOS: minimum version OS X 10.7 (we
[don’t support universal binaries](https://bugzilla.gnome.org/show_bug.cgi?id=780238);
some features (like notification support)
[require OS X 10.9](https://bugzilla.gnome.org/show_bug.cgi?id=747146)
+ * Note that older versions of macOS than what’s currently officially
+ supported by Apple are supported by GLib on a best-effort basis due to
+ still having significant user bases
* Windows:
[minimum version is Windows 8](https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1970),
minimum build chain is Visual Studio 2012
@@ -32,14 +40,14 @@ GLib is regularly built on at least the following systems:
* FreeBSD: https://wiki.gnome.org/Projects/Jhbuild/FreeBSD
* openSUSE: https://build.opensuse.org/package/show/GNOME:Factory/glib2
* CI runners, https://gitlab.gnome.org/GNOME/glib/blob/main/.gitlab-ci.yml:
- * Fedora (34, https://gitlab.gnome.org/GNOME/glib/-/blob/main/.gitlab-ci/fedora.Dockerfile)
- * Debian (Bullseye, https://gitlab.gnome.org/GNOME/glib/-/blob/main/.gitlab-ci/debian-stable.Dockerfile)
- * Windows (MinGW64)
- * Windows (msys2-mingw32)
- * Windows (Visual Studio 2017, and a static linking version)
- * Android (NDK r23b, API 31, arm64, https://gitlab.gnome.org/GNOME/glib/-/blob/main/.gitlab-ci/android-ndk.sh)
- * FreeBSD (12 and 13)
- * macOS
+ - Fedora (34, https://gitlab.gnome.org/GNOME/glib/-/blob/main/.gitlab-ci/fedora.Dockerfile)
+ - Debian (Bullseye, https://gitlab.gnome.org/GNOME/glib/-/blob/main/.gitlab-ci/debian-stable.Dockerfile)
+ - Windows (MinGW64)
+ - Windows (msys2-mingw32)
+ - Windows (Visual Studio 2017, and a static linking version)
+ - Android (NDK r23b, API 31, arm64, https://gitlab.gnome.org/GNOME/glib/-/blob/main/.gitlab-ci/android-ndk.sh)
+ - FreeBSD (12 and 13)
+ - macOS
If other platforms are to be supported, we need to set up regular CI testing for
them. Please contact us if you want to help.
diff --git a/docs/toolchain-requirements.md b/docs/toolchain-requirements.md
index 8028cd509..b432be510 100644
--- a/docs/toolchain-requirements.md
+++ b/docs/toolchain-requirements.md
@@ -139,7 +139,7 @@ Selected C99 features
_Hard requirement._
-Starting with GLib 2.52 and GTK+ 3.90, we will be using the following C99
+Starting with GLib 2.52 and GTK 3.90, we will be using the following C99
features where appropriate:
* Compound literals
diff --git a/README.win32.md b/docs/win32-build.md
index 17b36acbf..81dee0465 100644
--- a/README.win32.md
+++ b/docs/win32-build.md
@@ -9,8 +9,8 @@ warned.
# General
For prebuilt binaries (DLLs and EXEs) and developer packages (headers,
-import libraries) of GLib, Pango, GTK+ etc for Windows, go to
-https://www.gtk.org/download/windows.php . They are for "native"
+import libraries) of GLib, Pango, GTK etc for Windows, go to
+https://www.gtk.org/docs/installations/windows/ . They are for "native"
Windows meaning they use the Win32 API and Microsoft C runtime library
only. No POSIX (Unix) emulation layer like Cygwin is involved.
@@ -30,17 +30,16 @@ On Windows setting up a correct build environment is very similar to typing
The following preprocessor macros are to be used for conditional
compilation related to Win32 in GLib-using code:
-- `G_OS_WIN32` is defined when compiling for native Win32, without
- any POSIX emulation, other than to the extent provided by the
- bundled Microsoft C library.
+- `G_OS_WIN32` and `G_PLATFORM_WIN32` are defined when compiling for native
+ Win32, without any POSIX emulation, other than to the extent provided by
+ the bundled Microsoft C library. Either can be used to check when
+ conditionally compiling GLib-using code for Win32.
- `G_WITH_CYGWIN` is defined if compiling for the Cygwin
environment. Note that `G_OS_WIN32` is *not* defined in that case, as
Cygwin is supposed to behave like Unix. `G_OS_UNIX` *is* defined by a GLib
- for Cygwin.
-
-- `G_PLATFORM_WIN32` is defined when either `G_OS_WIN32` or `G_WITH_CYGWIN`
- is defined.
+ for Cygwin, but `G_PLATFORM_WIN32` is *no longer* defined by GLib for
+ Cygwin.
These macros are defined in `glibconfig.h`, and are thus available in
all source files that include `<glib.h>`.
@@ -60,9 +59,9 @@ MinGW](https://mingwpy.github.io/ucrt.html) too.
GLib is not actively tested with the static versions of the UCRT, but if you
need to use those, patches are welcome.
-# Building software that use GLib or GTK+
+# Building software that use GLib or GTK
-Building software that just *uses* GLib or GTK+ also require to have
+Building software that just *uses* GLib or GTK also require to have
the right compiler set up the right way. If you intend to use MinGW-GCC,
follow the relevant instructions below in that case, too.
diff --git a/fuzzing/fuzz_utf8_normalize.c b/fuzzing/fuzz_utf8_normalize.c
new file mode 100644
index 000000000..2075fe504
--- /dev/null
+++ b/fuzzing/fuzz_utf8_normalize.c
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2023 Todd Carson
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "fuzz.h"
+
+int
+LLVMFuzzerTestOneInput (const unsigned char *data, size_t size)
+{
+ char *bounded, *terminated, *buf;
+
+ fuzz_set_logging_func ();
+
+ buf = g_malloc (size + 1);
+ memcpy (buf, data, size);
+ buf[size] = '\0';
+
+ terminated = g_utf8_normalize (buf, -1, G_NORMALIZE_ALL);
+ g_free (buf);
+
+ bounded = g_utf8_normalize ((const char *) data, size, G_NORMALIZE_ALL);
+
+ if (terminated && bounded)
+ {
+ g_assert (strcmp (terminated, bounded) == 0);
+ g_free (terminated);
+ g_free (bounded);
+ }
+ else
+ g_assert (!(terminated || bounded));
+
+ return 0;
+}
diff --git a/fuzzing/fuzz_utf8_validate.c b/fuzzing/fuzz_utf8_validate.c
new file mode 100644
index 000000000..4ce0855b7
--- /dev/null
+++ b/fuzzing/fuzz_utf8_validate.c
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2022 Endless OS Foundation, LLC
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "fuzz.h"
+
+int
+LLVMFuzzerTestOneInput (const unsigned char *data, size_t size)
+{
+ fuzz_set_logging_func ();
+
+ /* We don’t care whether the fuzzer provides valid or invalid UTF-8 data, just
+ * that the validation function doesn’t crash or do anything undefined. */
+ g_utf8_validate_len ((const gchar *) data, size, NULL);
+
+ return 0;
+}
diff --git a/fuzzing/fuzz_variant_binary_byteswap.c b/fuzzing/fuzz_variant_binary_byteswap.c
new file mode 100644
index 000000000..b33f9243e
--- /dev/null
+++ b/fuzzing/fuzz_variant_binary_byteswap.c
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2018 pdknsk
+ * Copyright 2022 Endless OS Foundation, LLC
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "fuzz.h"
+
+int
+LLVMFuzzerTestOneInput (const unsigned char *data, size_t size)
+{
+ GVariant *variant = NULL, *swapped_variant = NULL;
+
+ fuzz_set_logging_func ();
+
+ variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size, FALSE,
+ NULL, NULL);
+ if (variant == NULL)
+ return 0;
+
+ swapped_variant = g_variant_byteswap (variant);
+ g_variant_get_data (swapped_variant);
+
+ g_variant_unref (swapped_variant);
+ g_variant_unref (variant);
+ return 0;
+}
diff --git a/fuzzing/meson.build b/fuzzing/meson.build
index e87abc7ec..24d9d2554 100644
--- a/fuzzing/meson.build
+++ b/fuzzing/meson.build
@@ -33,8 +33,11 @@ fuzz_targets = [
'fuzz_uri_escape',
'fuzz_uri_parse',
'fuzz_uri_parse_params',
+ 'fuzz_utf8_normalize',
+ 'fuzz_utf8_validate',
'fuzz_uuid_string_is_valid',
'fuzz_variant_binary',
+ 'fuzz_variant_binary_byteswap',
'fuzz_variant_text',
]
@@ -65,7 +68,7 @@ foreach target_name : fuzz_targets
# If the FuzzingEngine isn’t available, build some unit tests to check that
# the fuzzing files do basically work. This doesn’t do any actual fuzzing though.
# Pass in the README as an arbitrary fuzzing input, just so we have something.
- if not have_fuzzing_engine
+ if build_tests and not have_fuzzing_engine
test(target_name, exe,
args : files('README.md'),
suite : 'fuzzing',
diff --git a/gio/gaction.c b/gio/gaction.c
index 65d2f5aa8..5599137fd 100644
--- a/gio/gaction.c
+++ b/gio/gaction.c
@@ -437,8 +437,9 @@ g_action_name_is_valid (const gchar *action_name)
/**
* g_action_parse_detailed_name:
* @detailed_name: a detailed action name
- * @action_name: (out): the action name
- * @target_value: (out): the target value, or %NULL for no target
+ * @action_name: (out) (optional) (not nullable) (transfer full): the action name
+ * @target_value: (out) (optional) (nullable) (transfer full): the target value,
+ * or %NULL for no target
* @error: a pointer to a %NULL #GError, or %NULL
*
* Parses a detailed action name into its separate name and target
@@ -448,23 +449,29 @@ g_action_name_is_valid (const gchar *action_name)
*
* The first format is used to represent an action name with no target
* value and consists of just an action name containing no whitespace
- * nor the characters ':', '(' or ')'. For example: "app.action".
+ * nor the characters `:`, `(` or `)`. For example: `app.action`.
*
* The second format is used to represent an action with a target value
- * that is a non-empty string consisting only of alphanumerics, plus '-'
- * and '.'. In that case, the action name and target value are
- * separated by a double colon ("::"). For example:
- * "app.action::target".
+ * that is a non-empty string consisting only of alphanumerics, plus `-`
+ * and `.`. In that case, the action name and target value are
+ * separated by a double colon (`::`). For example:
+ * `app.action::target`.
*
* The third format is used to represent an action with any type of
* target value, including strings. The target value follows the action
- * name, surrounded in parens. For example: "app.action(42)". The
+ * name, surrounded in parens. For example: `app.action(42)`. The
* target value is parsed using g_variant_parse(). If a tuple-typed
* value is desired, it must be specified in the same way, resulting in
- * two sets of parens, for example: "app.action((1,2,3))". A string
- * target can be specified this way as well: "app.action('target')".
- * For strings, this third format must be used if * target value is
- * empty or contains characters other than alphanumerics, '-' and '.'.
+ * two sets of parens, for example: `app.action((1,2,3))`. A string
+ * target can be specified this way as well: `app.action('target')`.
+ * For strings, this third format must be used if target value is
+ * empty or contains characters other than alphanumerics, `-` and `.`.
+ *
+ * If this function returns %TRUE, a non-%NULL value is guaranteed to be returned
+ * in @action_name (if a pointer is passed in). A %NULL value may still be
+ * returned in @target_value, as the @detailed_name may not contain a target.
+ *
+ * If returned, the #GVariant in @target_value is guaranteed to not be floating.
*
* Returns: %TRUE if successful, else %FALSE with @error set
*
diff --git a/gio/gaction.h b/gio/gaction.h
index 988ddc3aa..c3666b49d 100644
--- a/gio/gaction.h
+++ b/gio/gaction.h
@@ -58,40 +58,40 @@ struct _GActionInterface
GVariant *parameter);
};
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
GType g_action_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar * g_action_get_name (GAction *action);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const GVariantType * g_action_get_parameter_type (GAction *action);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const GVariantType * g_action_get_state_type (GAction *action);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant * g_action_get_state_hint (GAction *action);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_action_get_enabled (GAction *action);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant * g_action_get_state (GAction *action);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_action_change_state (GAction *action,
GVariant *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_action_activate (GAction *action,
GVariant *parameter);
-GLIB_AVAILABLE_IN_2_28
+GIO_AVAILABLE_IN_2_28
gboolean g_action_name_is_valid (const gchar *action_name);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
gboolean g_action_parse_detailed_name (const gchar *detailed_name,
gchar **action_name,
GVariant **target_value,
GError **error);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
gchar * g_action_print_detailed_name (const gchar *action_name,
GVariant *target_value);
diff --git a/gio/gactiongroup.c b/gio/gactiongroup.c
index 73f8faf5f..a327195cc 100644
--- a/gio/gactiongroup.c
+++ b/gio/gactiongroup.c
@@ -133,9 +133,10 @@ static gboolean
g_action_group_real_get_action_enabled (GActionGroup *action_group,
const gchar *action_name)
{
- gboolean enabled = FALSE;
+ gboolean enabled;
- g_action_group_query_action (action_group, action_name, &enabled, NULL, NULL, NULL, NULL);
+ if (!g_action_group_query_action (action_group, action_name, &enabled, NULL, NULL, NULL, NULL))
+ return FALSE;
return enabled;
}
@@ -144,9 +145,10 @@ static const GVariantType *
g_action_group_real_get_action_parameter_type (GActionGroup *action_group,
const gchar *action_name)
{
- const GVariantType *type = NULL;
+ const GVariantType *type;
- g_action_group_query_action (action_group, action_name, NULL, &type, NULL, NULL, NULL);
+ if (!g_action_group_query_action (action_group, action_name, NULL, &type, NULL, NULL, NULL))
+ return NULL;
return type;
}
@@ -155,9 +157,10 @@ static const GVariantType *
g_action_group_real_get_action_state_type (GActionGroup *action_group,
const gchar *action_name)
{
- const GVariantType *type = NULL;
+ const GVariantType *type;
- g_action_group_query_action (action_group, action_name, NULL, NULL, &type, NULL, NULL);
+ if (!g_action_group_query_action (action_group, action_name, NULL, NULL, &type, NULL, NULL))
+ return NULL;
return type;
}
@@ -166,9 +169,10 @@ static GVariant *
g_action_group_real_get_action_state_hint (GActionGroup *action_group,
const gchar *action_name)
{
- GVariant *hint = NULL;
+ GVariant *hint;
- g_action_group_query_action (action_group, action_name, NULL, NULL, NULL, &hint, NULL);
+ if (!g_action_group_query_action (action_group, action_name, NULL, NULL, NULL, &hint, NULL))
+ return NULL;
return hint;
}
@@ -177,9 +181,10 @@ static GVariant *
g_action_group_real_get_action_state (GActionGroup *action_group,
const gchar *action_name)
{
- GVariant *state = NULL;
+ GVariant *state;
- g_action_group_query_action (action_group, action_name, NULL, NULL, NULL, NULL, &state);
+ if (!g_action_group_query_action (action_group, action_name, NULL, NULL, NULL, NULL, &state))
+ return NULL;
return state;
}
diff --git a/gio/gactiongroup.h b/gio/gactiongroup.h
index e6b0c3f81..06213df8a 100644
--- a/gio/gactiongroup.h
+++ b/gio/gactiongroup.h
@@ -96,67 +96,67 @@ struct _GActionGroupInterface
GVariant **state);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_action_group_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_action_group_has_action (GActionGroup *action_group,
const gchar *action_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar ** g_action_group_list_actions (GActionGroup *action_group);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const GVariantType * g_action_group_get_action_parameter_type (GActionGroup *action_group,
const gchar *action_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const GVariantType * g_action_group_get_action_state_type (GActionGroup *action_group,
const gchar *action_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant * g_action_group_get_action_state_hint (GActionGroup *action_group,
const gchar *action_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_action_group_get_action_enabled (GActionGroup *action_group,
const gchar *action_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant * g_action_group_get_action_state (GActionGroup *action_group,
const gchar *action_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_action_group_change_action_state (GActionGroup *action_group,
const gchar *action_name,
GVariant *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_action_group_activate_action (GActionGroup *action_group,
const gchar *action_name,
GVariant *parameter);
/* signals */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_action_group_action_added (GActionGroup *action_group,
const gchar *action_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_action_group_action_removed (GActionGroup *action_group,
const gchar *action_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_action_group_action_enabled_changed (GActionGroup *action_group,
const gchar *action_name,
gboolean enabled);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_action_group_action_state_changed (GActionGroup *action_group,
const gchar *action_name,
GVariant *state);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_action_group_query_action (GActionGroup *action_group,
const gchar *action_name,
gboolean *enabled,
const GVariantType **parameter_type,
const GVariantType **state_type,
GVariant **state_hint,
- GVariant **state);
+ GVariant **state) G_GNUC_WARN_UNUSED_RESULT;
G_END_DECLS
diff --git a/gio/gactiongroupexporter.h b/gio/gactiongroupexporter.h
index 365e5a1a3..52f40af2b 100644
--- a/gio/gactiongroupexporter.h
+++ b/gio/gactiongroupexporter.h
@@ -32,13 +32,13 @@
G_BEGIN_DECLS
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
guint g_dbus_connection_export_action_group (GDBusConnection *connection,
const gchar *object_path,
GActionGroup *action_group,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_dbus_connection_unexport_action_group (GDBusConnection *connection,
guint export_id);
diff --git a/gio/gactionmap.c b/gio/gactionmap.c
index 1fb13e7af..60c5ed551 100644
--- a/gio/gactionmap.c
+++ b/gio/gactionmap.c
@@ -217,12 +217,10 @@ g_action_map_add_action_entries (GActionMap *action_map,
gint n_entries,
gpointer user_data)
{
- gint i;
-
g_return_if_fail (G_IS_ACTION_MAP (action_map));
g_return_if_fail (entries != NULL || n_entries == 0);
- for (i = 0; n_entries == -1 ? entries[i].name != NULL : i < n_entries; i++)
+ for (int i = 0; n_entries < 0 ? entries[i].name != NULL : i < n_entries; i++)
{
const GActionEntry *entry = &entries[i];
const GVariantType *parameter_type;
@@ -285,3 +283,47 @@ g_action_map_add_action_entries (GActionMap *action_map,
g_object_unref (action);
}
}
+
+/**
+ * g_action_map_remove_action_entries:
+ * @action_map: The #GActionMap
+ * @entries: (array length=n_entries) (element-type GActionEntry): a pointer to
+ * the first item in an array of #GActionEntry structs
+ * @n_entries: the length of @entries, or -1 if @entries is %NULL-terminated
+ *
+ * Remove actions from a #GActionMap. This is meant as the reverse of
+ * g_action_map_add_action_entries().
+ *
+ *
+ * |[<!-- language="C" -->
+ * static const GActionEntry entries[] = {
+ * { "quit", activate_quit },
+ * { "print-string", activate_print_string, "s" }
+ * };
+ *
+ * void
+ * add_actions (GActionMap *map)
+ * {
+ * g_action_map_add_action_entries (map, entries, G_N_ELEMENTS (entries), NULL);
+ * }
+ *
+ * void
+ * remove_actions (GActionMap *map)
+ * {
+ * g_action_map_remove_action_entries (map, entries, G_N_ELEMENTS (entries));
+ * }
+ * ]|
+ *
+ * Since: 2.78
+ */
+void
+g_action_map_remove_action_entries (GActionMap *action_map,
+ const GActionEntry entries[],
+ gint n_entries)
+{
+ g_return_if_fail (G_IS_ACTION_MAP (action_map));
+ g_return_if_fail (entries != NULL || n_entries == 0);
+
+ for (int i = 0; n_entries < 0 ? entries[i].name != NULL : i < n_entries; i++)
+ g_action_map_remove_action (action_map, entries[i].name);
+}
diff --git a/gio/gactionmap.h b/gio/gactionmap.h
index 6a4e8263c..4d5a816b7 100644
--- a/gio/gactionmap.h
+++ b/gio/gactionmap.h
@@ -74,23 +74,27 @@ struct _GActionEntry
gsize padding[3];
};
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GType g_action_map_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GAction * g_action_map_lookup_action (GActionMap *action_map,
const gchar *action_name);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_action_map_add_action (GActionMap *action_map,
GAction *action);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_action_map_remove_action (GActionMap *action_map,
const gchar *action_name);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_action_map_add_action_entries (GActionMap *action_map,
const GActionEntry *entries,
gint n_entries,
gpointer user_data);
+GIO_AVAILABLE_IN_2_78
+void g_action_map_remove_action_entries (GActionMap *action_map,
+ const GActionEntry *entries,
+ gint n_entries);
G_END_DECLS
diff --git a/gio/gappinfo.c b/gio/gappinfo.c
index d1a1a1d65..787b77451 100644
--- a/gio/gappinfo.c
+++ b/gio/gappinfo.c
@@ -263,6 +263,10 @@ g_app_info_get_description (GAppInfo *appinfo)
*
* Gets the executable's name for the installed application.
*
+ * This is intended to be used for debugging or labelling what program is going
+ * to be run. To launch the executable, use g_app_info_launch() and related
+ * functions, rather than spawning the return value from this function.
+ *
* Returns: (type filename): a string containing the @appinfo's application
* binaries name
**/
@@ -577,9 +581,9 @@ g_app_info_get_icon (GAppInfo *appinfo)
* environment variable with the path of the launched desktop file and
* `GIO_LAUNCHED_DESKTOP_FILE_PID` to the process id of the launched
* process. This can be used to ignore `GIO_LAUNCHED_DESKTOP_FILE`,
- * should it be inherited by further processes. The `DISPLAY` and
- * `DESKTOP_STARTUP_ID` environment variables are also set, based
- * on information provided in @context.
+ * should it be inherited by further processes. The `DISPLAY`,
+ * `XDG_ACTIVATION_TOKEN` and `DESKTOP_STARTUP_ID` environment
+ * variables are also set, based on information provided in @context.
*
* Returns: %TRUE on successful launch, %FALSE otherwise.
**/
@@ -1591,13 +1595,21 @@ g_app_launch_context_get_display (GAppLaunchContext *context,
* g_app_launch_context_get_startup_notify_id:
* @context: a #GAppLaunchContext
* @info: a #GAppInfo
- * @files: (element-type GFile): a #GList of of #GFile objects
+ * @files: (element-type GFile): a #GList of #GFile objects
*
* Initiates startup notification for the application and returns the
- * `DESKTOP_STARTUP_ID` for the launched operation, if supported.
+ * `XDG_ACTIVATION_TOKEN` or `DESKTOP_STARTUP_ID` for the launched operation,
+ * if supported.
+ *
+ * The returned token may be referred to equivalently as an ‘activation token’
+ * (using Wayland terminology) or a ‘startup sequence ID’ (using X11 terminology).
+ * The two [are interoperable](https://gitlab.freedesktop.org/wayland/wayland-protocols/-/blob/main/staging/xdg-activation/x11-interoperation.rst).
*
- * Startup notification IDs are defined in the
- * [FreeDesktop.Org Startup Notifications standard](http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt).
+ * Activation tokens are defined in the [XDG Activation Protocol](https://wayland.app/protocols/xdg-activation-v1),
+ * and startup notification IDs are defined in the
+ * [freedesktop.org Startup Notification Protocol](http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt).
+ *
+ * Support for the XDG Activation Protocol was added in GLib 2.76.
*
* Returns: (nullable): a startup notification ID for the application, or %NULL if
* not supported.
@@ -1646,19 +1658,34 @@ g_app_launch_context_launch_failed (GAppLaunchContext *context,
* @short_description: Monitor application information for changes
*
* #GAppInfoMonitor is a very simple object used for monitoring the app
- * info database for changes (ie: newly installed or removed
- * applications).
+ * info database for changes (newly installed or removed applications).
*
* Call g_app_info_monitor_get() to get a #GAppInfoMonitor and connect
- * to the "changed" signal.
+ * to the #GAppInfoMonitor::changed signal. The signal will be emitted once when
+ * the app info database changes, and will not be emitted again until after the
+ * next call to g_app_info_get_all() or another `g_app_info_*()` function. This
+ * is because monitoring the app info database for changes is expensive.
+ *
+ * The following functions will re-arm the #GAppInfoMonitor::changed signal so
+ * it can be emitted again:
+ * - g_app_info_get_all()
+ * - g_app_info_get_all_for_type()
+ * - g_app_info_get_default_for_type()
+ * - g_app_info_get_fallback_for_type()
+ * - g_app_info_get_recommended_for_type()
+ * - g_desktop_app_info_get_implementations()
+ * - g_desktop_app_info_new()
+ * - g_desktop_app_info_new_from_filename()
+ * - g_desktop_app_info_new_from_keyfile()
+ * - g_desktop_app_info_search()
*
* In the usual case, applications should try to make note of the change
* (doing things like invalidating caches) but not act on it. In
* particular, applications should avoid making calls to #GAppInfo APIs
* in response to the change signal, deferring these until the time that
- * the data is actually required. The exception to this case is when
+ * the updated data is actually required. The exception to this case is when
* application information is actually being displayed on the screen
- * (eg: during a search or when the list of all applications is shown).
+ * (for example, during a search or when the list of all applications is shown).
* The reason for this is that changes to the list of installed
* applications often come in groups (like during system updates) and
* rescanning the list on every change is pointless and expensive.
@@ -1716,8 +1743,10 @@ g_app_info_monitor_class_init (GAppInfoMonitorClass *class)
/**
* GAppInfoMonitor::changed:
*
- * Signal emitted when the app info database for changes (ie: newly installed
- * or removed applications).
+ * Signal emitted when the app info database changes, when applications are
+ * installed or removed.
+ *
+ * Since: 2.40
**/
g_app_info_monitor_changed_signal = g_signal_new (I_("changed"), G_TYPE_APP_INFO_MONITOR, G_SIGNAL_RUN_FIRST,
0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
@@ -1735,6 +1764,10 @@ g_app_info_monitor_class_init (GAppInfoMonitorClass *class)
* thread-default main context whenever the list of installed
* applications (as reported by g_app_info_get_all()) may have changed.
*
+ * The #GAppInfoMonitor::changed signal will only be emitted once until
+ * g_app_info_get_all() (or another `g_app_info_*()` function) is called. Doing
+ * so will re-arm the signal ready to notify about the next change.
+ *
* You must only call g_object_unref() on the return value from under
* the same main context as you created it.
*
diff --git a/gio/gappinfo.h b/gio/gappinfo.h
index 84162f0e2..6b13596b2 100644
--- a/gio/gappinfo.h
+++ b/gio/gappinfo.h
@@ -146,139 +146,139 @@ struct _GAppInfoIface
GError **error);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_app_info_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GAppInfo * g_app_info_create_from_commandline (const char *commandline,
const char *application_name,
GAppInfoCreateFlags flags,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GAppInfo * g_app_info_dup (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_equal (GAppInfo *appinfo1,
GAppInfo *appinfo2);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char *g_app_info_get_id (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char *g_app_info_get_name (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char *g_app_info_get_display_name (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char *g_app_info_get_description (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char *g_app_info_get_executable (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char *g_app_info_get_commandline (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_app_info_get_icon (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_launch (GAppInfo *appinfo,
GList *files,
GAppLaunchContext *context,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_supports_uris (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_supports_files (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_launch_uris (GAppInfo *appinfo,
GList *uris,
GAppLaunchContext *context,
GError **error);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
void g_app_info_launch_uris_async (GAppInfo *appinfo,
GList *uris,
GAppLaunchContext *context,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
gboolean g_app_info_launch_uris_finish (GAppInfo *appinfo,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_should_show (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_set_as_default_for_type (GAppInfo *appinfo,
const char *content_type,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_set_as_default_for_extension (GAppInfo *appinfo,
const char *extension,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_add_supports_type (GAppInfo *appinfo,
const char *content_type,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_can_remove_supports_type (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_remove_supports_type (GAppInfo *appinfo,
const char *content_type,
GError **error);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
const char **g_app_info_get_supported_types (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_can_delete (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_delete (GAppInfo *appinfo);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_set_as_last_used_for_type (GAppInfo *appinfo,
const char *content_type,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList * g_app_info_get_all (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList * g_app_info_get_all_for_type (const char *content_type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList * g_app_info_get_recommended_for_type (const gchar *content_type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList * g_app_info_get_fallback_for_type (const gchar *content_type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_app_info_reset_type_associations (const char *content_type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GAppInfo *g_app_info_get_default_for_type (const char *content_type,
gboolean must_support_uris);
-GLIB_AVAILABLE_IN_2_74
+GIO_AVAILABLE_IN_2_74
void g_app_info_get_default_for_type_async (const char *content_type,
gboolean must_support_uris,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_74
+GIO_AVAILABLE_IN_2_74
GAppInfo *g_app_info_get_default_for_type_finish (GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GAppInfo *g_app_info_get_default_for_uri_scheme (const char *uri_scheme);
-GLIB_AVAILABLE_IN_2_74
+GIO_AVAILABLE_IN_2_74
void g_app_info_get_default_for_uri_scheme_async (const char *uri_scheme,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_74
+GIO_AVAILABLE_IN_2_74
GAppInfo *g_app_info_get_default_for_uri_scheme_finish (GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_app_info_launch_default_for_uri (const char *uri,
GAppLaunchContext *context,
GError **error);
-GLIB_AVAILABLE_IN_2_50
+GIO_AVAILABLE_IN_2_50
void g_app_info_launch_default_for_uri_async (const char *uri,
GAppLaunchContext *context,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_50
+GIO_AVAILABLE_IN_2_50
gboolean g_app_info_launch_default_for_uri_finish (GAsyncResult *result,
GError **error);
@@ -323,30 +323,30 @@ struct _GAppLaunchContextClass
void (*_g_reserved3) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_app_launch_context_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GAppLaunchContext *g_app_launch_context_new (void);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_app_launch_context_setenv (GAppLaunchContext *context,
const char *variable,
const char *value);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_app_launch_context_unsetenv (GAppLaunchContext *context,
const char *variable);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
char ** g_app_launch_context_get_environment (GAppLaunchContext *context);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_app_launch_context_get_display (GAppLaunchContext *context,
GAppInfo *info,
GList *files);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_app_launch_context_get_startup_notify_id (GAppLaunchContext *context,
GAppInfo *info,
GList *files);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_app_launch_context_launch_failed (GAppLaunchContext *context,
const char * startup_notify_id);
@@ -358,10 +358,10 @@ void g_app_launch_context_launch_failed (GAppLaunchContext
typedef struct _GAppInfoMonitor GAppInfoMonitor;
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GType g_app_info_monitor_get_type (void);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GAppInfoMonitor * g_app_info_monitor_get (void);
G_END_DECLS
diff --git a/gio/gapplication-tool.c b/gio/gapplication-tool.c
index 514d99a3f..b810e8ee9 100644
--- a/gio/gapplication-tool.c
+++ b/gio/gapplication-tool.c
@@ -304,6 +304,9 @@ app_get_platform_data (void)
if ((startup_id = g_getenv ("DESKTOP_STARTUP_ID")))
g_variant_builder_add (&builder, "{sv}", "desktop-startup-id", g_variant_new_string (startup_id));
+ if ((startup_id = g_getenv ("XDG_ACTIVATION_TOKEN")))
+ g_variant_builder_add (&builder, "{sv}", "activation-token", g_variant_new_string (startup_id));
+
return g_variant_builder_end (&builder);
}
diff --git a/gio/gapplication.c b/gio/gapplication.c
index 3708e812c..31508ebbe 100644
--- a/gio/gapplication.c
+++ b/gio/gapplication.c
@@ -88,8 +88,8 @@
* instance and g_application_run() promptly returns. See the code
* examples below.
*
- * If used, the expected form of an application identifier is the same as
- * that of of a
+ * If used, the expected form of an application identifier is the
+ * same as that of a
* [D-Bus well-known bus name](https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names-bus).
* Examples include: `com.example.MyApp`, `org.example.internal_apps.Calculator`,
* `org._7_zip.Archiver`.
@@ -117,6 +117,10 @@
* conveniently access them remotely. GIO provides a #GDBusMenuModel wrapper
* for remote access to exported #GMenuModels.
*
+ * Note: Due to the fact that actions are exported on the session bus,
+ * using `maybe` parameters is not supported, since D-Bus does not support
+ * `maybe` types.
+ *
* There is a number of different entry points into a GApplication:
*
* - via 'Activate' (i.e. just starting the application)
@@ -499,7 +503,7 @@ g_application_parse_command_line (GApplication *application,
g_option_context_set_description (context, application->priv->description);
gapplication_group = g_option_group_new ("gapplication",
- _("GApplication options"), _("Show GApplication options"),
+ _("GApplication Options:"), _("Show GApplication options"),
NULL, NULL);
g_option_group_set_translation_domain (gapplication_group, GETTEXT_PACKAGE);
g_option_context_add_group (context, gapplication_group);
@@ -2230,7 +2234,7 @@ g_application_register (GApplication *application,
* Increases the use count of @application.
*
* Use this function to indicate that the application has a reason to
- * continue to run. For example, g_application_hold() is called by GTK+
+ * continue to run. For example, g_application_hold() is called by GTK
* when a toplevel window is on the screen.
*
* To cancel the hold, call g_application_release().
diff --git a/gio/gapplication.h b/gio/gapplication.h
index 70074349a..cb6b90867 100644
--- a/gio/gapplication.h
+++ b/gio/gapplication.h
@@ -123,54 +123,54 @@ struct _GApplicationClass
gpointer padding[7];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_application_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_application_id_is_valid (const gchar *application_id);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GApplication * g_application_new (const gchar *application_id,
GApplicationFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar * g_application_get_application_id (GApplication *application);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_application_set_application_id (GApplication *application,
const gchar *application_id);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GDBusConnection * g_application_get_dbus_connection (GApplication *application);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
const gchar * g_application_get_dbus_object_path (GApplication *application);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_application_get_inactivity_timeout (GApplication *application);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_application_set_inactivity_timeout (GApplication *application,
guint inactivity_timeout);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GApplicationFlags g_application_get_flags (GApplication *application);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_application_set_flags (GApplication *application,
GApplicationFlags flags);
-GLIB_AVAILABLE_IN_2_42
+GIO_AVAILABLE_IN_2_42
const gchar * g_application_get_resource_base_path (GApplication *application);
-GLIB_AVAILABLE_IN_2_42
+GIO_AVAILABLE_IN_2_42
void g_application_set_resource_base_path (GApplication *application,
const gchar *resource_path);
-GLIB_DEPRECATED
+GIO_DEPRECATED
void g_application_set_action_group (GApplication *application,
GActionGroup *action_group);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_application_add_main_option_entries (GApplication *application,
const GOptionEntry *entries);
-GLIB_AVAILABLE_IN_2_42
+GIO_AVAILABLE_IN_2_42
void g_application_add_main_option (GApplication *application,
const char *long_name,
char short_name,
@@ -178,76 +178,76 @@ void g_application_add_main_option (GApplic
GOptionArg arg,
const char *description,
const char *arg_description);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_application_add_option_group (GApplication *application,
GOptionGroup *group);
-GLIB_AVAILABLE_IN_2_56
+GIO_AVAILABLE_IN_2_56
void g_application_set_option_context_parameter_string (GApplication *application,
const gchar *parameter_string);
-GLIB_AVAILABLE_IN_2_56
+GIO_AVAILABLE_IN_2_56
void g_application_set_option_context_summary (GApplication *application,
const gchar *summary);
-GLIB_AVAILABLE_IN_2_56
+GIO_AVAILABLE_IN_2_56
void g_application_set_option_context_description (GApplication *application,
const gchar *description);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_application_get_is_registered (GApplication *application);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_application_get_is_remote (GApplication *application);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_application_register (GApplication *application,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_application_hold (GApplication *application);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_application_release (GApplication *application);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_application_activate (GApplication *application);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_application_open (GApplication *application,
GFile **files,
gint n_files,
const gchar *hint);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
int g_application_run (GApplication *application,
int argc,
char **argv);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_application_quit (GApplication *application);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GApplication * g_application_get_default (void);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_application_set_default (GApplication *application);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
void g_application_mark_busy (GApplication *application);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
void g_application_unmark_busy (GApplication *application);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
gboolean g_application_get_is_busy (GApplication *application);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_application_send_notification (GApplication *application,
const gchar *id,
GNotification *notification);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_application_withdraw_notification (GApplication *application,
const gchar *id);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
void g_application_bind_busy_property (GApplication *application,
gpointer object,
const gchar *property);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
void g_application_unbind_busy_property (GApplication *application,
gpointer object,
const gchar *property);
diff --git a/gio/gapplicationcommandline.c b/gio/gapplicationcommandline.c
index ef6c2d2a3..e9a6f46c6 100644
--- a/gio/gapplicationcommandline.c
+++ b/gio/gapplicationcommandline.c
@@ -497,7 +497,7 @@ g_application_command_line_get_arguments (GApplicationCommandLine *cmdline,
* g_application_command_line_get_options_dict:
* @cmdline: a #GApplicationCommandLine
*
- * Gets the options there were passed to g_application_command_line().
+ * Gets the options that were passed to g_application_command_line().
*
* If you did not override local_command_line() then these are the same
* options that were parsed according to the #GOptionEntrys added to the
@@ -801,7 +801,7 @@ g_application_command_line_get_exit_status (GApplicationCommandLine *cmdline)
*
* For local invocation, it will be %NULL.
*
- * Returns: (nullable): the platform data, or %NULL
+ * Returns: (nullable) (transfer full): the platform data, or %NULL
*
* Since: 2.28
**/
diff --git a/gio/gapplicationcommandline.h b/gio/gapplicationcommandline.h
index a22a2b5fd..abb68526f 100644
--- a/gio/gapplicationcommandline.h
+++ b/gio/gapplicationcommandline.h
@@ -71,51 +71,51 @@ struct _GApplicationCommandLineClass
gpointer padding[11];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_application_command_line_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar ** g_application_command_line_get_arguments (GApplicationCommandLine *cmdline,
int *argc);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GVariantDict * g_application_command_line_get_options_dict (GApplicationCommandLine *cmdline);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
GInputStream * g_application_command_line_get_stdin (GApplicationCommandLine *cmdline);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar * const * g_application_command_line_get_environ (GApplicationCommandLine *cmdline);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar * g_application_command_line_getenv (GApplicationCommandLine *cmdline,
const gchar *name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar * g_application_command_line_get_cwd (GApplicationCommandLine *cmdline);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_application_command_line_get_is_remote (GApplicationCommandLine *cmdline);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_application_command_line_print (GApplicationCommandLine *cmdline,
const gchar *format,
...) G_GNUC_PRINTF(2, 3);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_application_command_line_printerr (GApplicationCommandLine *cmdline,
const gchar *format,
...) G_GNUC_PRINTF(2, 3);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
int g_application_command_line_get_exit_status (GApplicationCommandLine *cmdline);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_application_command_line_set_exit_status (GApplicationCommandLine *cmdline,
int exit_status);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant * g_application_command_line_get_platform_data (GApplicationCommandLine *cmdline);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
GFile * g_application_command_line_create_file_for_arg (GApplicationCommandLine *cmdline,
const gchar *arg);
diff --git a/gio/gasyncinitable.h b/gio/gasyncinitable.h
index 225702c6e..18083982e 100644
--- a/gio/gasyncinitable.h
+++ b/gio/gasyncinitable.h
@@ -74,22 +74,22 @@ struct _GAsyncInitableIface
GError **error);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_async_initable_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_async_initable_init_async (GAsyncInitable *initable,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_async_initable_init_finish (GAsyncInitable *initable,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_async_initable_new_async (GType object_type,
int io_priority,
GCancellable *cancellable,
@@ -100,7 +100,7 @@ void g_async_initable_new_async (GType object_type,
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-GLIB_DEPRECATED_IN_2_54_FOR(g_object_new_with_properties and g_async_initable_init_async)
+GIO_DEPRECATED_IN_2_54_FOR(g_object_new_with_properties and g_async_initable_init_async)
void g_async_initable_newv_async (GType object_type,
guint n_parameters,
GParameter *parameters,
@@ -111,7 +111,7 @@ void g_async_initable_newv_async (GType object_type,
G_GNUC_END_IGNORE_DEPRECATIONS
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_async_initable_new_valist_async (GType object_type,
const gchar *first_property_name,
va_list var_args,
@@ -119,7 +119,7 @@ void g_async_initable_new_valist_async (GType object_type,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GObject *g_async_initable_new_finish (GAsyncInitable *initable,
GAsyncResult *res,
GError **error);
diff --git a/gio/gasyncresult.h b/gio/gasyncresult.h
index c352c798a..4a98c5f44 100644
--- a/gio/gasyncresult.h
+++ b/gio/gasyncresult.h
@@ -67,18 +67,18 @@ struct _GAsyncResultIface
gpointer source_tag);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_async_result_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gpointer g_async_result_get_user_data (GAsyncResult *res);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GObject *g_async_result_get_source_object (GAsyncResult *res);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
gboolean g_async_result_legacy_propagate_error (GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
gboolean g_async_result_is_tagged (GAsyncResult *res,
gpointer source_tag);
diff --git a/gio/gbufferedinputstream.c b/gio/gbufferedinputstream.c
index 55450ce0e..1729ebde6 100644
--- a/gio/gbufferedinputstream.c
+++ b/gio/gbufferedinputstream.c
@@ -458,8 +458,8 @@ async_fill_callback_wrapper (GObject *source_object,
* @count: the number of bytes that will be read from the stream
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object
- * @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): a #gpointer
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * @user_data: a #gpointer
*
* Reads data into @stream's buffer asynchronously, up to @count size.
* @io_priority can be used to prioritize reads. For the synchronous
diff --git a/gio/gbufferedinputstream.h b/gio/gbufferedinputstream.h
index ca7b0f9b1..c6b1deadc 100644
--- a/gio/gbufferedinputstream.h
+++ b/gio/gbufferedinputstream.h
@@ -84,48 +84,48 @@ struct _GBufferedInputStreamClass
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_buffered_input_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInputStream* g_buffered_input_stream_new (GInputStream *base_stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInputStream* g_buffered_input_stream_new_sized (GInputStream *base_stream,
gsize size);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gsize g_buffered_input_stream_get_buffer_size (GBufferedInputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_buffered_input_stream_set_buffer_size (GBufferedInputStream *stream,
gsize size);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gsize g_buffered_input_stream_get_available (GBufferedInputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gsize g_buffered_input_stream_peek (GBufferedInputStream *stream,
void *buffer,
gsize offset,
gsize count);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const void* g_buffered_input_stream_peek_buffer (GBufferedInputStream *stream,
gsize *count);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_buffered_input_stream_fill (GBufferedInputStream *stream,
gssize count,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_buffered_input_stream_fill_async (GBufferedInputStream *stream,
gssize count,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_buffered_input_stream_fill_finish (GBufferedInputStream *stream,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
int g_buffered_input_stream_read_byte (GBufferedInputStream *stream,
GCancellable *cancellable,
GError **error);
diff --git a/gio/gbufferedoutputstream.h b/gio/gbufferedoutputstream.h
index a50d5e7b3..1259c76fb 100644
--- a/gio/gbufferedoutputstream.h
+++ b/gio/gbufferedoutputstream.h
@@ -65,21 +65,21 @@ struct _GBufferedOutputStreamClass
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_buffered_output_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GOutputStream* g_buffered_output_stream_new (GOutputStream *base_stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GOutputStream* g_buffered_output_stream_new_sized (GOutputStream *base_stream,
gsize size);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gsize g_buffered_output_stream_get_buffer_size (GBufferedOutputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_buffered_output_stream_set_buffer_size (GBufferedOutputStream *stream,
gsize size);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_buffered_output_stream_get_auto_grow (GBufferedOutputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_buffered_output_stream_set_auto_grow (GBufferedOutputStream *stream,
gboolean auto_grow);
diff --git a/gio/gbytesicon.h b/gio/gbytesicon.h
index 668f85f50..c917d3816 100644
--- a/gio/gbytesicon.h
+++ b/gio/gbytesicon.h
@@ -40,13 +40,13 @@ G_BEGIN_DECLS
*
* Gets an icon for a #GBytes. Implements #GLoadableIcon.
**/
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
GType g_bytes_icon_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
GIcon * g_bytes_icon_new (GBytes *bytes);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
GBytes * g_bytes_icon_get_bytes (GBytesIcon *icon);
G_END_DECLS
diff --git a/gio/gcancellable.c b/gio/gcancellable.c
index f1edf051d..5ff479c98 100644
--- a/gio/gcancellable.c
+++ b/gio/gcancellable.c
@@ -50,6 +50,8 @@ struct _GCancellablePrivate
/* Access to fields below is protected by cancellable_mutex. */
guint cancelled_running : 1;
guint cancelled_running_waiting : 1;
+ unsigned cancelled_emissions;
+ unsigned cancelled_emissions_waiting : 1;
guint fd_refcount;
GWakeup *wakeup;
@@ -267,9 +269,14 @@ g_cancellable_reset (GCancellable *cancellable)
priv = cancellable->priv;
- while (priv->cancelled_running)
+ while (priv->cancelled_running || priv->cancelled_emissions > 0)
{
- priv->cancelled_running_waiting = TRUE;
+ if (priv->cancelled_running)
+ priv->cancelled_running_waiting = TRUE;
+
+ if (priv->cancelled_emissions > 0)
+ priv->cancelled_emissions_waiting = TRUE;
+
g_cond_wait (&cancellable_cond, &cancellable_mutex);
}
@@ -571,15 +578,26 @@ g_cancellable_connect (GCancellable *cancellable,
void (*_callback) (GCancellable *cancellable,
gpointer user_data);
- g_mutex_unlock (&cancellable_mutex);
-
_callback = (void *)callback;
id = 0;
+ cancellable->priv->cancelled_emissions++;
+
+ g_mutex_unlock (&cancellable_mutex);
+
_callback (cancellable, data);
if (data_destroy_func)
data_destroy_func (data);
+
+ g_mutex_lock (&cancellable_mutex);
+
+ if (cancellable->priv->cancelled_emissions_waiting)
+ g_cond_broadcast (&cancellable_cond);
+
+ cancellable->priv->cancelled_emissions--;
+
+ g_mutex_unlock (&cancellable_mutex);
}
else
{
@@ -630,9 +648,14 @@ g_cancellable_disconnect (GCancellable *cancellable,
priv = cancellable->priv;
- while (priv->cancelled_running)
+ while (priv->cancelled_running || priv->cancelled_emissions)
{
- priv->cancelled_running_waiting = TRUE;
+ if (priv->cancelled_running)
+ priv->cancelled_running_waiting = TRUE;
+
+ if (priv->cancelled_emissions)
+ priv->cancelled_emissions_waiting = TRUE;
+
g_cond_wait (&cancellable_cond, &cancellable_mutex);
}
diff --git a/gio/gcancellable.h b/gio/gcancellable.h
index 790a59bad..d33215db3 100644
--- a/gio/gcancellable.h
+++ b/gio/gcancellable.h
@@ -69,50 +69,50 @@ struct _GCancellableClass
void (*_g_reserved5) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_cancellable_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GCancellable *g_cancellable_new (void);
/* These are only safe to call inside a cancellable op */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_cancellable_is_cancelled (GCancellable *cancellable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_cancellable_set_error_if_cancelled (GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
int g_cancellable_get_fd (GCancellable *cancellable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_cancellable_make_pollfd (GCancellable *cancellable,
GPollFD *pollfd);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_cancellable_release_fd (GCancellable *cancellable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSource * g_cancellable_source_new (GCancellable *cancellable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GCancellable *g_cancellable_get_current (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_cancellable_push_current (GCancellable *cancellable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_cancellable_pop_current (GCancellable *cancellable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_cancellable_reset (GCancellable *cancellable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gulong g_cancellable_connect (GCancellable *cancellable,
GCallback callback,
gpointer data,
GDestroyNotify data_destroy_func);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_cancellable_disconnect (GCancellable *cancellable,
gulong handler_id);
/* This is safe to call from another thread */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_cancellable_cancel (GCancellable *cancellable);
G_END_DECLS
diff --git a/gio/gcharsetconverter.h b/gio/gcharsetconverter.h
index 5ab8f32d6..455ca7cb5 100644
--- a/gio/gcharsetconverter.h
+++ b/gio/gcharsetconverter.h
@@ -45,19 +45,19 @@ struct _GCharsetConverterClass
GObjectClass parent_class;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_charset_converter_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GCharsetConverter *g_charset_converter_new (const gchar *to_charset,
const gchar *from_charset,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_charset_converter_set_use_fallback (GCharsetConverter *converter,
gboolean use_fallback);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_charset_converter_get_use_fallback (GCharsetConverter *converter);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_charset_converter_get_num_fallbacks (GCharsetConverter *converter);
G_END_DECLS
diff --git a/gio/gcontenttype.h b/gio/gcontenttype.h
index bd487f1c7..910c2e241 100644
--- a/gio/gcontenttype.h
+++ b/gio/gcontenttype.h
@@ -31,51 +31,51 @@
G_BEGIN_DECLS
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_content_type_equals (const gchar *type1,
const gchar *type2);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_content_type_is_a (const gchar *type,
const gchar *supertype);
-GLIB_AVAILABLE_IN_2_52
+GIO_AVAILABLE_IN_2_52
gboolean g_content_type_is_mime_type (const gchar *type,
const gchar *mime_type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_content_type_is_unknown (const gchar *type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar * g_content_type_get_description (const gchar *type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar * g_content_type_get_mime_type (const gchar *type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_content_type_get_icon (const gchar *type);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GIcon * g_content_type_get_symbolic_icon (const gchar *type);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
gchar * g_content_type_get_generic_icon_name (const gchar *type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_content_type_can_be_executable (const gchar *type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar * g_content_type_from_mime_type (const gchar *mime_type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar * g_content_type_guess (const gchar *filename,
const guchar *data,
gsize data_size,
gboolean *result_uncertain);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar ** g_content_type_guess_for_tree (GFile *root);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList * g_content_types_get_registered (void);
/*< private >*/
#ifndef __GTK_DOC_IGNORE__
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
const gchar * const *g_content_type_get_mime_dirs (void);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
void g_content_type_set_mime_dirs (const gchar * const *dirs);
#endif /* __GTK_DOC_IGNORE__ */
diff --git a/gio/gconverter.c b/gio/gconverter.c
index 9dacaf03e..57ee1b904 100644
--- a/gio/gconverter.c
+++ b/gio/gconverter.c
@@ -57,12 +57,14 @@ g_converter_default_init (GConverterInterface *iface)
* @inbuf: (array length=inbuf_size) (element-type guint8): the buffer
* containing the data to convert.
* @inbuf_size: the number of bytes in @inbuf
- * @outbuf: (element-type guint8) (array length=outbuf_size): a buffer to write
- * converted data in.
+ * @outbuf: (element-type guint8) (array length=outbuf_size) (not nullable): a
+ * buffer to write converted data in.
* @outbuf_size: the number of bytes in @outbuf, must be at least one
* @flags: a #GConverterFlags controlling the conversion details
- * @bytes_read: (out): will be set to the number of bytes read from @inbuf on success
- * @bytes_written: (out): will be set to the number of bytes written to @outbuf on success
+ * @bytes_read: (out) (not nullable): will be set to the number of bytes read
+ * from @inbuf on success
+ * @bytes_written: (out) (not nullable): will be set to the number of bytes
+ * written to @outbuf on success
* @error: location to store the error occurring, or %NULL to ignore
*
* This is the main operation used when converting data. It is to be called
@@ -166,7 +168,12 @@ g_converter_convert (GConverter *converter,
GConverterIface *iface;
g_return_val_if_fail (G_IS_CONVERTER (converter), G_CONVERTER_ERROR);
+ g_return_val_if_fail (inbuf != NULL || inbuf_size == 0, G_CONVERTER_ERROR);
+ g_return_val_if_fail (outbuf != NULL, G_CONVERTER_ERROR);
g_return_val_if_fail (outbuf_size > 0, G_CONVERTER_ERROR);
+ g_return_val_if_fail (bytes_read != NULL, G_CONVERTER_ERROR);
+ g_return_val_if_fail (bytes_written != NULL, G_CONVERTER_ERROR);
+ g_return_val_if_fail (error == NULL || *error == NULL, G_CONVERTER_ERROR);
*bytes_read = 0;
*bytes_written = 0;
diff --git a/gio/gconverter.h b/gio/gconverter.h
index a39a76547..16e94a1bd 100644
--- a/gio/gconverter.h
+++ b/gio/gconverter.h
@@ -75,10 +75,10 @@ struct _GConverterIface
void (* reset) (GConverter *converter);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_converter_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GConverterResult g_converter_convert (GConverter *converter,
const void *inbuf,
gsize inbuf_size,
@@ -88,7 +88,7 @@ GConverterResult g_converter_convert (GConverter *converter,
gsize *bytes_read,
gsize *bytes_written,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_converter_reset (GConverter *converter);
diff --git a/gio/gconverterinputstream.h b/gio/gconverterinputstream.h
index 2747fdb9f..01de11ed3 100644
--- a/gio/gconverterinputstream.h
+++ b/gio/gconverterinputstream.h
@@ -69,12 +69,12 @@ struct _GConverterInputStreamClass
void (*_g_reserved5) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_converter_input_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInputStream *g_converter_input_stream_new (GInputStream *base_stream,
GConverter *converter);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GConverter *g_converter_input_stream_get_converter (GConverterInputStream *converter_stream);
G_END_DECLS
diff --git a/gio/gconverteroutputstream.h b/gio/gconverteroutputstream.h
index d6a960b5c..c09084606 100644
--- a/gio/gconverteroutputstream.h
+++ b/gio/gconverteroutputstream.h
@@ -69,12 +69,12 @@ struct _GConverterOutputStreamClass
void (*_g_reserved5) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_converter_output_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GOutputStream *g_converter_output_stream_new (GOutputStream *base_stream,
GConverter *converter);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GConverter *g_converter_output_stream_get_converter (GConverterOutputStream *converter_stream);
G_END_DECLS
diff --git a/gio/gcredentials.h b/gio/gcredentials.h
index 60b3abaf2..c30f31fc1 100644
--- a/gio/gcredentials.h
+++ b/gio/gcredentials.h
@@ -46,37 +46,37 @@ G_BEGIN_DECLS
typedef struct _GCredentialsClass GCredentialsClass;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_credentials_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GCredentials *g_credentials_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar *g_credentials_to_string (GCredentials *credentials);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gpointer g_credentials_get_native (GCredentials *credentials,
GCredentialsType native_type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_credentials_set_native (GCredentials *credentials,
GCredentialsType native_type,
gpointer native);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_credentials_is_same_user (GCredentials *credentials,
GCredentials *other_credentials,
GError **error);
#ifdef G_OS_UNIX
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
pid_t g_credentials_get_unix_pid (GCredentials *credentials,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
uid_t g_credentials_get_unix_user (GCredentials *credentials,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_credentials_set_unix_user (GCredentials *credentials,
uid_t uid,
GError **error);
diff --git a/gio/gdatagrambased.h b/gio/gdatagrambased.h
index 798e003b5..585728c3f 100644
--- a/gio/gdatagrambased.h
+++ b/gio/gdatagrambased.h
@@ -100,11 +100,11 @@ struct _GDatagramBasedInterface
GError **error);
};
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GType
g_datagram_based_get_type (void);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
gint
g_datagram_based_receive_messages (GDatagramBased *datagram_based,
GInputMessage *messages,
@@ -114,7 +114,7 @@ g_datagram_based_receive_messages (GDatagramBased *datagram_based,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
gint
g_datagram_based_send_messages (GDatagramBased *datagram_based,
GOutputMessage *messages,
@@ -124,16 +124,16 @@ g_datagram_based_send_messages (GDatagramBased *datagram_based,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GSource *
g_datagram_based_create_source (GDatagramBased *datagram_based,
GIOCondition condition,
GCancellable *cancellable);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GIOCondition
g_datagram_based_condition_check (GDatagramBased *datagram_based,
GIOCondition condition);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
gboolean
g_datagram_based_condition_wait (GDatagramBased *datagram_based,
GIOCondition condition,
diff --git a/gio/gdatainputstream.c b/gio/gdatainputstream.c
index 72c50308e..b2c080b2b 100644
--- a/gio/gdatainputstream.c
+++ b/gio/gdatainputstream.c
@@ -1127,8 +1127,8 @@ g_data_input_stream_read_finish (GDataInputStream *stream,
* @stream: a given #GDataInputStream.
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied.
- * @user_data: (closure): the data to pass to callback function.
+ * @callback: (scope async) (closure user_data): callback to call when the request is satisfied.
+ * @user_data: the data to pass to callback function.
*
* The asynchronous version of g_data_input_stream_read_line(). It is
* an error to have two outstanding calls to this function.
diff --git a/gio/gdatainputstream.h b/gio/gdatainputstream.h
index 4380f06c5..e13029553 100644
--- a/gio/gdatainputstream.h
+++ b/gio/gdatainputstream.h
@@ -68,102 +68,102 @@ struct _GDataInputStreamClass
void (*_g_reserved5) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_data_input_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDataInputStream * g_data_input_stream_new (GInputStream *base_stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_data_input_stream_set_byte_order (GDataInputStream *stream,
GDataStreamByteOrder order);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDataStreamByteOrder g_data_input_stream_get_byte_order (GDataInputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_data_input_stream_set_newline_type (GDataInputStream *stream,
GDataStreamNewlineType type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDataStreamNewlineType g_data_input_stream_get_newline_type (GDataInputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guchar g_data_input_stream_read_byte (GDataInputStream *stream,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint16 g_data_input_stream_read_int16 (GDataInputStream *stream,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint16 g_data_input_stream_read_uint16 (GDataInputStream *stream,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint32 g_data_input_stream_read_int32 (GDataInputStream *stream,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint32 g_data_input_stream_read_uint32 (GDataInputStream *stream,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint64 g_data_input_stream_read_int64 (GDataInputStream *stream,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint64 g_data_input_stream_read_uint64 (GDataInputStream *stream,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_data_input_stream_read_line (GDataInputStream *stream,
gsize *length,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
char * g_data_input_stream_read_line_utf8 (GDataInputStream *stream,
gsize *length,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_data_input_stream_read_line_async (GDataInputStream *stream,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_data_input_stream_read_line_finish (GDataInputStream *stream,
GAsyncResult *result,
gsize *length,
GError **error);
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
char * g_data_input_stream_read_line_finish_utf8(GDataInputStream *stream,
GAsyncResult *result,
gsize *length,
GError **error);
-GLIB_DEPRECATED_IN_2_56_FOR (g_data_input_stream_read_upto)
+GIO_DEPRECATED_IN_2_56_FOR (g_data_input_stream_read_upto)
char * g_data_input_stream_read_until (GDataInputStream *stream,
const gchar *stop_chars,
gsize *length,
GCancellable *cancellable,
GError **error);
-GLIB_DEPRECATED_IN_2_56_FOR (g_data_input_stream_read_upto_async)
+GIO_DEPRECATED_IN_2_56_FOR (g_data_input_stream_read_upto_async)
void g_data_input_stream_read_until_async (GDataInputStream *stream,
const gchar *stop_chars,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_DEPRECATED_IN_2_56_FOR (g_data_input_stream_read_upto_finish)
+GIO_DEPRECATED_IN_2_56_FOR (g_data_input_stream_read_upto_finish)
char * g_data_input_stream_read_until_finish (GDataInputStream *stream,
GAsyncResult *result,
gsize *length,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_data_input_stream_read_upto (GDataInputStream *stream,
const gchar *stop_chars,
gssize stop_chars_len,
gsize *length,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_data_input_stream_read_upto_async (GDataInputStream *stream,
const gchar *stop_chars,
gssize stop_chars_len,
@@ -171,7 +171,7 @@ void g_data_input_stream_read_upto_async (GDataInputStrea
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_data_input_stream_read_upto_finish (GDataInputStream *stream,
GAsyncResult *result,
gsize *length,
diff --git a/gio/gdataoutputstream.h b/gio/gdataoutputstream.h
index 046550c35..a8d434a40 100644
--- a/gio/gdataoutputstream.h
+++ b/gio/gdataoutputstream.h
@@ -70,53 +70,53 @@ struct _GDataOutputStreamClass
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_data_output_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDataOutputStream * g_data_output_stream_new (GOutputStream *base_stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_data_output_stream_set_byte_order (GDataOutputStream *stream,
GDataStreamByteOrder order);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDataStreamByteOrder g_data_output_stream_get_byte_order (GDataOutputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_data_output_stream_put_byte (GDataOutputStream *stream,
guchar data,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_data_output_stream_put_int16 (GDataOutputStream *stream,
gint16 data,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_data_output_stream_put_uint16 (GDataOutputStream *stream,
guint16 data,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_data_output_stream_put_int32 (GDataOutputStream *stream,
gint32 data,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_data_output_stream_put_uint32 (GDataOutputStream *stream,
guint32 data,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_data_output_stream_put_int64 (GDataOutputStream *stream,
gint64 data,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_data_output_stream_put_uint64 (GDataOutputStream *stream,
guint64 data,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_data_output_stream_put_string (GDataOutputStream *stream,
const char *str,
GCancellable *cancellable,
diff --git a/gio/gdbus-2.0/codegen/codegen.py b/gio/gdbus-2.0/codegen/codegen.py
index d8d9a8521..393328152 100644
--- a/gio/gdbus-2.0/codegen/codegen.py
+++ b/gio/gdbus-2.0/codegen/codegen.py
@@ -1138,7 +1138,7 @@ class InterfaceInfoBodyCodeGenerator:
"const %s * const %s[] =\n" % (element_type, array_name_lower)
)
self.outfile.write("{\n")
- for (_, name) in elements:
+ for _, name in elements:
self.outfile.write(" &%s,\n" % name)
self.outfile.write(" NULL,\n")
self.outfile.write("};\n")
@@ -1462,6 +1462,7 @@ class CodeGenerator:
self.glib_min_required = glib_min_required
self.symbol_decoration_define = symbol_decoration_define
self.outfile = outfile
+ self.marshallers = set()
# ----------------------------------------------------------------------------------------------------
@@ -1487,6 +1488,55 @@ class CodeGenerator:
)
self.outfile.write(
+ """#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v) g_value_get_schar (v)
+#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v) g_value_get_int (v)
+#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
+#define g_marshal_value_peek_long(v) g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
+#define g_marshal_value_peek_float(v) g_value_get_float (v)
+#define g_marshal_value_peek_double(v) g_value_get_double (v)
+#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v) g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v) g_value_get_object (v)
+#define g_marshal_value_peek_variant(v) g_value_get_variant (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ * Do not access GValues directly in your code. Instead, use the
+ * g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
+#define g_marshal_value_peek_char(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v) (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v) (v)->data[0].v_float
+#define g_marshal_value_peek_double(v) (v)->data[0].v_double
+#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */"""
+ "\n\n"
+ )
+
+ self.outfile.write(
"typedef struct\n"
"{\n"
" GDBusArgInfo parent_struct;\n"
@@ -1728,6 +1778,22 @@ class CodeGenerator:
self.outfile.write(" &%s_%s.parent_struct,\n" % (prefix, a.name))
self.outfile.write(" NULL\n" "};\n" "\n")
+ def generate_signals_enum_for_interface(self, i):
+ if not i.signals:
+ return
+
+ self.outfile.write("enum\n{\n")
+ for s in i.signals:
+ self.outfile.write(f" {s.upper_id_name},\n")
+ self.outfile.write("};\n" "\n")
+
+ self.outfile.write(
+ "static unsigned "
+ f"{i.signals_enum_name}[{len(i.signals)}] = {{ 0 }};"
+ "\n"
+ "\n"
+ )
+
def generate_introspection_for_interface(self, i):
self.outfile.write(
"/* ---- Introspection data for %s ---- */\n" "\n" % (i.name)
@@ -2120,7 +2186,7 @@ class CodeGenerator:
" G_STRUCT_OFFSET (%sIface, handle_%s),\n"
" g_signal_accumulator_true_handled,\n"
" NULL,\n" # accu_data
- " g_cclosure_marshal_generic,\n"
+ f" {i.name_lower}_method_marshal_{m.name_lower},\n"
" G_TYPE_BOOLEAN,\n"
" %d,\n"
" G_TYPE_DBUS_METHOD_INVOCATION"
@@ -2164,15 +2230,17 @@ class CodeGenerator:
)
self.write_gtkdoc_deprecated_and_since_and_close(s, self.outfile, 2)
self.outfile.write(
- ' g_signal_new ("%s",\n'
- " G_TYPE_FROM_INTERFACE (iface),\n"
- " G_SIGNAL_RUN_LAST,\n"
- " G_STRUCT_OFFSET (%sIface, %s),\n"
- " NULL,\n" # accumulator
- " NULL,\n" # accu_data
- " g_cclosure_marshal_generic,\n"
- " G_TYPE_NONE,\n"
- " %d" % (s.name_hyphen, i.camel_name, s.name_lower, len(s.args))
+ f" {i.signals_enum_name}[{s.upper_id_name}] =\n"
+ ' g_signal_new ("%s",\n'
+ " G_TYPE_FROM_INTERFACE (iface),\n"
+ " G_SIGNAL_RUN_LAST,\n"
+ " G_STRUCT_OFFSET (%sIface, %s),\n"
+ " NULL,\n" # accumulator
+ " NULL,\n" # accu_data
+ f" {i.name_lower}_signal_marshal_{s.name_lower},\n"
+ " G_TYPE_NONE,\n"
+ " %d"
+ % (s.name_hyphen, i.camel_name, s.name_lower, len(s.args))
)
for a in s.args:
self.outfile.write(", %s" % (a.gtype))
@@ -2364,13 +2432,21 @@ class CodeGenerator:
"{\n" % (p.arg.ctype_in, i.name_lower, p.name_lower, i.camel_name)
)
self.outfile.write(
+ " g_return_val_if_fail (%sIS_%s (object), %s);\n"
+ "\n"
" return %s%s_GET_IFACE (object)->get_%s (object);\n"
- % (i.ns_upper, i.name_upper, p.name_lower)
+ % (
+ i.ns_upper,
+ i.name_upper,
+ p.arg.ctype_in_default_value,
+ i.ns_upper,
+ i.name_upper,
+ p.name_lower,
+ )
)
self.outfile.write("}\n")
self.outfile.write("\n")
if p.arg.free_func is not None:
-
self.outfile.write(
self.docbook_gen.expand(
"/**\n"
@@ -2487,7 +2563,10 @@ class CodeGenerator:
for a in s.args:
self.outfile.write(",\n %sarg_%s" % (a.ctype_in, a.name))
self.outfile.write(
- ")\n" "{\n" ' g_signal_emit_by_name (object, "%s"' % (s.name_hyphen)
+ ")\n"
+ "{\n"
+ " g_signal_emit (object, "
+ f"{i.signals_enum_name}[{s.upper_id_name}], 0"
)
for a in s.args:
self.outfile.write(", arg_%s" % a.name)
@@ -2496,6 +2575,159 @@ class CodeGenerator:
# ---------------------------------------------------------------------------------------------------
+ def generate_marshaller(self, func_name, in_args, ret_arg=None):
+ self.generate_marshaller_declaration(func_name, uses_ret=ret_arg is not None)
+ self.outfile.write("{\n")
+ self.generate_marshaller_body(func_name, in_args, ret_arg)
+ self.outfile.write("}\n" "\n")
+
+ def generate_marshaller_wrapper(self, wrapper_name, wrapped_func):
+ self.generate_marshaller_declaration(
+ wrapper_name,
+ uses_ret=True,
+ uses_hint=True,
+ inline=True,
+ )
+ self.outfile.write("{\n")
+ self.outfile.write(
+ f" {wrapped_func} (closure,\n"
+ " return_value, n_param_values, param_values, "
+ "invocation_hint, marshal_data);\n"
+ )
+ self.outfile.write("}\n" "\n")
+
+ def generate_marshaller_declaration(
+ self, func_name, uses_ret=False, uses_hint=False, inline=False
+ ):
+ self.outfile.write(
+ f"{'inline ' if inline else ''}static void\n"
+ f"{func_name} (\n"
+ " GClosure *closure,\n"
+ f" GValue *return_value{' G_GNUC_UNUSED' if not uses_ret else ''},\n"
+ " unsigned int n_param_values,\n"
+ " const GValue *param_values,\n"
+ f" void *invocation_hint{' G_GNUC_UNUSED' if not uses_hint else ''},\n"
+ " void *marshal_data)\n"
+ )
+
+ def generate_marshaller_body(self, func_name, in_args=[], ret_arg=None):
+ marshal_func_type = f"{utils.uscore_to_camel_case(func_name)}Func"
+ self.outfile.write(
+ f" typedef {ret_arg.ctype_in if ret_arg else 'void '}(*{marshal_func_type})\n"
+ " (void *data1,\n"
+ + "".join([f" {a.ctype_in}arg_{a.name},\n" for a in in_args])
+ + " void *data2);\n"
+ f" {marshal_func_type} callback;\n"
+ " GCClosure *cc = (GCClosure*) closure;\n"
+ f" void *data1, *data2;\n"
+ )
+
+ if ret_arg:
+ self.outfile.write(
+ f" {ret_arg.ctype_in}v_return;\n"
+ "\n"
+ " g_return_if_fail (return_value != NULL);"
+ )
+
+ self.outfile.write(
+ "\n"
+ f" g_return_if_fail (n_param_values == {len(in_args) + 1});\n"
+ "\n"
+ " if (G_CCLOSURE_SWAP_DATA (closure))\n"
+ " {\n"
+ " data1 = closure->data;\n"
+ " data2 = g_value_peek_pointer (param_values + 0);\n"
+ " }\n"
+ " else\n"
+ " {\n"
+ " data1 = g_value_peek_pointer (param_values + 0);\n"
+ " data2 = closure->data;\n"
+ " }\n"
+ "\n"
+ f" callback = ({marshal_func_type})\n"
+ " (marshal_data ? marshal_data : cc->callback);\n"
+ "\n"
+ )
+
+ prefix = ""
+ if ret_arg:
+ self.outfile.write(" v_return =\n")
+ prefix = 2 * " "
+
+ self.outfile.write(
+ f"{prefix} callback (data1,\n"
+ + "".join(
+ [
+ f"{prefix} {in_args[i].gvalue_get} (param_values + {i+1}),\n"
+ for i in range(len(in_args))
+ ]
+ )
+ + f"{prefix} data2);\n"
+ )
+
+ if ret_arg:
+ self.outfile.write(
+ "\n" f" {ret_arg.gvalue_set} (return_value, v_return);\n"
+ )
+
+ def generic_marshaller_name(self, args=[], ret=None):
+ name = "_g_dbus_codegen_marshal_"
+ name += f"{ret.gvalue_type.upper() if ret else 'VOID'}__"
+ if args:
+ name += "_".join(f"{a.gvalue_type.upper()}" for a in args)
+ else:
+ name += "VOID"
+ return name
+
+ def generic_marshaller_name_for_type(self, t):
+ assert isinstance(t, (dbustypes.Signal, dbustypes.Method))
+
+ if not t.marshaller_ret_arg:
+ if not t.marshaller_in_args:
+ return "g_cclosure_marshal_VOID__VOID"
+ elif (
+ len(t.marshaller_in_args) == 1
+ and t.marshaller_in_args[0].gclosure_marshaller
+ ):
+ return t.marshaller_in_args[0].gclosure_marshaller
+
+ return self.generic_marshaller_name(t.marshaller_in_args, t.marshaller_ret_arg)
+
+ def generate_generic_marshallers(self, i):
+ for t in i.signals + i.methods:
+ marshaller_name = self.generic_marshaller_name_for_type(t)
+ if marshaller_name.startswith("g_cclosure_"):
+ self.marshallers.add(marshaller_name)
+ continue
+
+ if marshaller_name in self.marshallers:
+ continue
+
+ self.generate_marshaller(
+ marshaller_name, t.marshaller_in_args, t.marshaller_ret_arg
+ )
+ self.marshallers.add(marshaller_name)
+
+ def generate_marshaller_for_type(self, i, t):
+ assert isinstance(t, (dbustypes.Signal, dbustypes.Method))
+
+ kind_uscore = utils.camel_case_to_uscore(t.__class__.__name__.lower())
+ func_name = f"{i.name_lower}_{kind_uscore}_marshal_{t.name_lower}"
+ marshaller_name = self.generic_marshaller_name_for_type(t)
+ assert marshaller_name in self.marshallers
+
+ self.generate_marshaller_wrapper(func_name, marshaller_name)
+
+ def generate_signal_marshallers(self, i):
+ for s in i.signals:
+ self.generate_marshaller_for_type(i, s)
+
+ def generate_method_marshallers(self, i):
+ for m in i.methods:
+ self.generate_marshaller_for_type(i, m)
+
+ # ---------------------------------------------------------------------------------------------------
+
def generate_method_calls(self, i):
for m in i.methods:
# async begin
@@ -3100,9 +3332,6 @@ class CodeGenerator:
# property vfuncs
for p in i.properties:
- nul_value = "0"
- if p.arg.free_func is not None:
- nul_value = "NULL"
self.outfile.write(
"static %s\n"
"%s_proxy_get_%s (%s *object)\n"
@@ -3119,7 +3348,7 @@ class CodeGenerator:
i.ns_upper,
i.name_upper,
p.arg.ctype_in,
- nul_value,
+ p.arg.ctype_in_default_value,
)
)
# For some property types, we have to free the returned
@@ -5220,8 +5449,13 @@ class CodeGenerator:
def generate(self):
self.generate_body_preamble()
for i in self.ifaces:
+ self.generate_generic_marshallers(i)
+ for i in self.ifaces:
self.generate_interface_intro(i)
+ self.generate_signals_enum_for_interface(i)
self.generate_introspection_for_interface(i)
+ self.generate_signal_marshallers(i)
+ self.generate_method_marshallers(i)
self.generate_interface(i)
self.generate_property_accessors(i)
self.generate_signal_emitters(i)
diff --git a/gio/gdbus-2.0/codegen/codegen_docbook.py b/gio/gdbus-2.0/codegen/codegen_docbook.py
index b7280e306..2bffd61f9 100644
--- a/gio/gdbus-2.0/codegen/codegen_docbook.py
+++ b/gio/gdbus-2.0/codegen/codegen_docbook.py
@@ -20,6 +20,7 @@
# Author: David Zeuthen <davidz@redhat.com>
import re
+import textwrap
from os import path
from . import utils
@@ -340,12 +341,12 @@ class DocbookCodeGenerator:
return s
def expand_paras(self, s, expandParamsAndConstants):
- s = self.expand(s, expandParamsAndConstants).strip()
+ s = textwrap.dedent(self.expand(s, expandParamsAndConstants)).rstrip()
res = []
if not s.startswith("<para>"):
res.append("<para>")
for line in s.split("\n"):
- line = line.strip()
+ line = line.rstrip()
if not line:
line = "</para><para>"
res.append(line)
diff --git a/gio/gdbus-2.0/codegen/codegen_main.py b/gio/gdbus-2.0/codegen/codegen_main.py
index 194800c78..c0f44d50a 100644
--- a/gio/gdbus-2.0/codegen/codegen_main.py
+++ b/gio/gdbus-2.0/codegen/codegen_main.py
@@ -30,6 +30,7 @@ from . import dbustypes
from . import parser
from . import codegen
from . import codegen_docbook
+from . import codegen_md
from . import codegen_rst
from .utils import print_error, print_warning
@@ -118,7 +119,7 @@ def apply_annotation(iface_list, iface, method, signal, prop, arg, key, value):
def apply_annotations(iface_list, annotation_list):
# apply annotations given on the command line
- for (what, key, value) in annotation_list:
+ for what, key, value in annotation_list:
pos = what.find("::")
if pos != -1:
# signal
@@ -213,6 +214,11 @@ def codegen_main():
help="Generate Docbook in OUTFILES-org.Project.IFace.xml",
)
arg_parser.add_argument(
+ "--generate-md",
+ metavar="OUTFILES",
+ help="Generate Markdown in OUTFILES-org.Project.IFace.md",
+ )
+ arg_parser.add_argument(
"--generate-rst",
metavar="OUTFILES",
help="Generate reStructuredText in OUTFILES-org.Project.IFace.rst",
@@ -295,10 +301,11 @@ def codegen_main():
if (
args.generate_c_code is not None
or args.generate_docbook is not None
+ or args.generate_md is not None
or args.generate_rst is not None
) and args.output is not None:
print_error(
- "Using --generate-c-code or --generate-docbook or --generate-rst and "
+ "Using --generate-c-code or --generate-{docbook,md,rst} and "
"--output at the same time is not allowed"
)
@@ -428,6 +435,11 @@ def codegen_main():
if docbook:
docbook_gen.generate(docbook, args.output_directory)
+ md = args.generate_md
+ md_gen = codegen_md.MdCodeGenerator(all_ifaces)
+ if md:
+ md_gen.generate(md, args.output_directory)
+
rst = args.generate_rst
rst_gen = codegen_rst.RstCodeGenerator(all_ifaces)
if rst:
diff --git a/gio/gdbus-2.0/codegen/codegen_md.py b/gio/gdbus-2.0/codegen/codegen_md.py
new file mode 100644
index 000000000..4644ef6f5
--- /dev/null
+++ b/gio/gdbus-2.0/codegen/codegen_md.py
@@ -0,0 +1,303 @@
+# SPDX-FileCopyrightText: 2023 Guido Günther
+# base on # codegen_rst.py (C) 2022 Emmanuele Bassi
+#
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+import os
+import re
+
+from . import utils
+import textwrap
+
+# Disable line length warnings as wrapping the templates would be hard
+# flake8: noqa: E501
+
+
+class MdCodeGenerator:
+ """Generates documentation in Markdown format."""
+
+ def __init__(self, ifaces):
+ self.ifaces = ifaces
+ self._generate_expand_dicts()
+
+ def _expand(self, s, expandParamsAndConstants):
+ """Expands parameters and constant literals."""
+ res = []
+ for line in textwrap.dedent(s).split("\n"):
+ line = line.rstrip()
+ if line == "":
+ res.append("")
+ continue
+ for key in self._expand_member_dict_keys:
+ line = line.replace(key, self._expand_member_dict[key])
+ for key in self._expand_iface_dict_keys:
+ line = line.replace(key, self._expand_iface_dict[key])
+ if expandParamsAndConstants:
+ # replace @foo with `foo`
+ line = re.sub(
+ "@[a-zA-Z0-9_]*",
+ lambda m: "`" + m.group(0)[1:] + "`",
+ line,
+ )
+ # replace e.g. %TRUE with ``TRUE``
+ line = re.sub(
+ "%[a-zA-Z0-9_]*",
+ lambda m: "`" + m.group(0)[1:] + "`",
+ line,
+ )
+ res.append(line)
+ return "\n".join(res)
+
+ def _generate_expand_dicts(self):
+ """Generates the dictionaries used to expand gtk-doc sigils."""
+ self._expand_member_dict = {}
+ self._expand_iface_dict = {}
+ for i in self.ifaces:
+ key = f"#{i.name}"
+ value = f"`{i.name}`_"
+ self._expand_iface_dict[key] = value
+
+ for m in i.methods:
+ key = "%s.%s()" % (i.name, m.name)
+ value = f"`{i.name}.{m.name}`_"
+ self._expand_member_dict[key] = value
+
+ for s in i.signals:
+ key = "#%s::%s" % (i.name, s.name)
+ value = f"`{i.name}::{s.name}`_"
+ self._expand_member_dict[key] = value
+
+ for p in i.properties:
+ key = "#%s:%s" % (i.name, p.name)
+ value = f"`{i.name}:{p.name}`_"
+ self._expand_member_dict[key] = value
+
+ # Make sure to expand the keys in reverse order so e.g. #org.foo.Iface:MediaCompat
+ # is evaluated before #org.foo.Iface:Media ...
+ self._expand_member_dict_keys = sorted(
+ self._expand_member_dict.keys(), reverse=True
+ )
+ self._expand_iface_dict_keys = sorted(
+ self._expand_iface_dict.keys(), reverse=True
+ )
+
+ def _generate_header(self, iface):
+ """Generates the header and preamble of the document."""
+ header_len = len(iface.name)
+ res = [
+ f"Title: {iface.name} D-Bus Interface",
+ f"Slug: {iface.name}",
+ "",
+ "# " + iface.name,
+ "",
+ "## Description",
+ "",
+ iface.doc_string_brief.strip(),
+ "",
+ self._expand(iface.doc_string, True),
+ "",
+ ]
+ if iface.since:
+ res += [
+ f"Interface available since: {iface.since}.",
+ "",
+ ]
+ if iface.deprecated:
+ res += [
+ "*Warning*: This interface is deprecated.",
+ "",
+ ]
+ res += [""]
+ return "\n".join(res)
+
+ def _generate_section(self, title, name):
+ """Generates a section with the given title."""
+ res = [
+ "### " + title,
+ "",
+ ]
+ return "\n".join(res)
+
+ def _generate_properties(self, iface):
+ """Generates the properties section."""
+ res = []
+ for p in iface.properties:
+ title = f"{iface.name}:{p.name}"
+ if p.readable and p.writable:
+ access = "readwrite"
+ elif p.writable:
+ access = "writable"
+ else:
+ access = "readable"
+ res += [
+ "### " + title,
+ "",
+ "```",
+ f" {p.name} {access} {p.signature}",
+ "```",
+ "",
+ self._expand(p.doc_string, True),
+ "",
+ ]
+ if p.since:
+ res += [
+ f"Property available since: {p.since}.",
+ "",
+ ]
+ if p.deprecated:
+ res += [
+ "*Warning*: This property is deprecated.",
+ "",
+ ]
+ res += [""]
+ return "\n".join(res)
+
+ def _generate_method_signature(self, method):
+ """Generates the method signature as a code block."""
+ res = [
+ "```",
+ ]
+ n_in_args = len(method.in_args)
+ n_out_args = len(method.out_args)
+ if n_in_args == 0 and n_out_args == 0:
+ res += [
+ f" {method.name} ()",
+ ]
+ else:
+ res += [
+ f" {method.name} (",
+ ]
+ for idx, arg in enumerate(method.in_args):
+ if idx == n_in_args - 1 and n_out_args == 0:
+ res += [
+ f" IN {arg.name} {arg.signature}",
+ ]
+ else:
+ res += [
+ f" IN {arg.name} {arg.signature},",
+ ]
+ for idx, arg in enumerate(method.out_args):
+ if idx == n_out_args - 1:
+ res += [
+ f" OUT {arg.name} {arg.signature}",
+ ]
+ else:
+ res += [
+ f" OUT {arg.name} {arg.signature},",
+ ]
+ res += [
+ " )",
+ ]
+ res += ["```"]
+ return "\n".join(res)
+
+ def _generate_methods(self, iface):
+ """Generates the methods section."""
+ res = []
+ for m in iface.methods:
+ title = f"{iface.name}.{m.name}"
+ res += [
+ "### " + title,
+ "",
+ self._generate_method_signature(m),
+ "",
+ self._expand(m.doc_string, True),
+ "",
+ ]
+ for a in m.in_args:
+ arg_desc = self._expand(a.doc_string, True)
+ res += [
+ f"* {a.name}: {arg_desc}",
+ "",
+ ]
+ res += [""]
+ if m.since:
+ res += [
+ f"Method available since: {m.since}.",
+ "",
+ ]
+ if m.deprecated:
+ res += [
+ "*Warning*: This method is deprecated.",
+ "",
+ ]
+ res += [""]
+ return "\n".join(res)
+
+ def _generate_signal_signature(self, signal):
+ """Generates the signal signature."""
+ res = [
+ "```",
+ ]
+ n_args = len(signal.args)
+ if n_args == 0:
+ res += [
+ f" {signal.name} ()",
+ ]
+ else:
+ res += [
+ f" {signal.name} (",
+ ]
+ for idx, arg in enumerate(signal.args):
+ if idx == n_args - 1:
+ res += [
+ f" {arg.name} {arg.signature}",
+ ]
+ else:
+ res += [
+ f" {arg.name} {arg.signature},",
+ ]
+ res += [
+ " )",
+ ]
+ res += ["```"]
+ return "\n".join(res)
+
+ def _generate_signals(self, iface):
+ """Generates the signals section."""
+ res = []
+ for s in iface.signals:
+ title = f"{iface.name}::{s.name}"
+ res += [
+ "### " + title,
+ "",
+ self._generate_signal_signature(s),
+ "",
+ self._expand(s.doc_string, True),
+ "",
+ ]
+ for a in s.args:
+ arg_desc = self._expand(a.doc_string, True)
+ res += [
+ f"{a.name}",
+ f" {arg_desc}",
+ "",
+ ]
+ res += [""]
+ if s.since:
+ res += [
+ f"Signal available since: {s.since}.",
+ "",
+ ]
+ if s.deprecated:
+ res += [
+ "*Warning*: This signal is deprecated.",
+ "",
+ ]
+ res += [""]
+ return "\n".join(res)
+
+ def generate(self, md, outdir):
+ """Generates the Markdown file for each interface."""
+ for i in self.ifaces:
+ with open(os.path.join(outdir, f"{md}-{i.name}.md"), "w") as outfile:
+ outfile.write(self._generate_header(i))
+ if len(i.properties) > 0:
+ outfile.write(self._generate_section("Properties", i.name))
+ outfile.write(self._generate_properties(i))
+ if len(i.methods) > 0:
+ outfile.write(self._generate_section("Methods", i.name))
+ outfile.write(self._generate_methods(i))
+ if len(i.signals) > 0:
+ outfile.write(self._generate_section("Signals", i.name))
+ outfile.write(self._generate_signals(i))
diff --git a/gio/gdbus-2.0/codegen/codegen_rst.py b/gio/gdbus-2.0/codegen/codegen_rst.py
index 51da2d572..303e547cf 100644
--- a/gio/gdbus-2.0/codegen/codegen_rst.py
+++ b/gio/gdbus-2.0/codegen/codegen_rst.py
@@ -6,6 +6,7 @@ import os
import re
from . import utils
+import textwrap
# Disable line length warnings as wrapping the templates would be hard
# flake8: noqa: E501
@@ -21,8 +22,8 @@ class RstCodeGenerator:
def _expand(self, s, expandParamsAndConstants):
"""Expands parameters and constant literals."""
res = []
- for line in s.split("\n"):
- line = line.strip()
+ for line in textwrap.dedent(s).split("\n"):
+ line = line.rstrip()
if line == "":
res.append("")
continue
@@ -119,12 +120,12 @@ class RstCodeGenerator:
def _generate_section(self, title, name):
"""Generates a section with the given title."""
res = [
+ f".. _{name} {title}:",
+ "",
"-" * len(title),
title,
"-" * len(title),
"",
- f".. {name} {title}:",
- "",
"",
]
return "\n".join(res)
@@ -141,6 +142,8 @@ class RstCodeGenerator:
else:
access = "readable"
res += [
+ f".. _{title}:",
+ "",
title,
"^" * len(title),
"",
@@ -215,6 +218,8 @@ class RstCodeGenerator:
for m in iface.methods:
title = f"{iface.name}.{m.name}"
res += [
+ f".. _{title}:",
+ "",
title,
"^" * len(title),
"",
@@ -230,6 +235,13 @@ class RstCodeGenerator:
f" {arg_desc}",
"",
]
+ for a in m.out_args:
+ arg_desc = self._expand(a.doc_string, True)
+ res += [
+ f"{a.name}",
+ f" {arg_desc}",
+ "",
+ ]
res += [""]
if m.since:
res += [
@@ -284,6 +296,8 @@ class RstCodeGenerator:
for s in iface.signals:
title = f"{iface.name}::{s.name}"
res += [
+ f".. _{title}:",
+ "",
title,
"^" * len(title),
"",
diff --git a/gio/gdbus-2.0/codegen/dbustypes.py b/gio/gdbus-2.0/codegen/dbustypes.py
index bbe5c4e1e..e16ea52f9 100644
--- a/gio/gdbus-2.0/codegen/dbustypes.py
+++ b/gio/gdbus-2.0/codegen/dbustypes.py
@@ -23,6 +23,69 @@ from . import utils
from .utils import print_error
+# See: variant_type_string_scan_internal()
+def variant_type_string_scan(signature: str, depth_limit: int, i=0):
+ beg_char = signature[i]
+ i += 1
+ if beg_char == "(":
+ while signature[i] != ")":
+ if depth_limit == 0:
+ raise ValueError(
+ f'Bad signature "{signature}". Too much recursion beginning at {i}.'
+ )
+ i = variant_type_string_scan(signature, depth_limit - 1, i)
+ i += 1
+ elif beg_char == "{":
+ if depth_limit == 0:
+ raise ValueError(
+ f'Bad signature "{signature}". Too much recursion beginning at {i}.'
+ )
+ elif signature[i] not in "bynqihuxtdsog?":
+ raise ValueError(
+ f'Bad signature "{signature}". "{signature[i]}" is not a valid type for dictionary keys at position {i}.'
+ )
+ i += 1
+ i = variant_type_string_scan(signature, depth_limit - 1, i)
+ if signature[i] != "}":
+ raise ValueError(
+ f'Bad signature "{signature}". Dict must end with "}}" at position {i}.'
+ )
+ i += 1
+ elif beg_char == "a":
+ if depth_limit == 0:
+ raise ValueError(
+ f'Bad signature "{signature}". Too much recursion beginning at {i}.'
+ )
+ i = variant_type_string_scan(signature, depth_limit - 1, i)
+ elif beg_char not in "bynqiuxtdsogvr*?h":
+ raise ValueError(
+ f'Bad signature "{signature}". Unexpected value "{beg_char}" at position {i}.'
+ )
+ return i
+
+
+# variant_check_signature() does not perform a strict validation check and
+# should not be used in security sensitive contexts.
+def variant_check_signature(signature: str):
+ # See: gvariant-internal.h
+ G_VARIANT_MAX_RECURSION_DEPTH = 128
+ if len(signature) > 255:
+ print_error("D-Bus maximum signature length of 255 exceeded.")
+ for s in signature:
+ if s not in "ybnqiuxthdvasog(){}":
+ print_error(
+ f'Bad signature "{signature}". "{s}" is not a valid D-Bus type.'
+ )
+ try:
+ variant_type_string_scan(signature, G_VARIANT_MAX_RECURSION_DEPTH)
+ except IndexError:
+ print_error(
+ f'Bad signature "{signature}". Error parsing string or brackets not closed.'
+ )
+ except ValueError as e:
+ print_error(e.args[0])
+
+
class Annotation:
def __init__(self, key, value):
self.key = key
@@ -76,14 +139,19 @@ class Arg:
self.ctype_in_g = "GVariant *"
self.ctype_in = "GVariant *"
self.ctype_in_dup = "GVariant *"
+ self.ctype_in_default_value = "NULL"
self.ctype_out = "GVariant **"
self.gtype = "G_TYPE_VARIANT"
self.free_func = "g_variant_unref"
self.format_in = "@" + self.signature
self.format_out = "@" + self.signature
self.gvariant_get = "XXX"
- self.gvalue_get = "g_value_get_variant"
+ self.gvalue_type = "variant"
+ self.gvalue_get = "g_marshal_value_peek_variant"
+ self.gvalue_set = "g_value_take_variant"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__VARIANT"
self.array_annotation = ""
+ variant_check_signature(self.signature)
if not utils.lookup_annotation(
self.annotations, "org.gtk.GDBus.C.ForceGVariant"
@@ -91,129 +159,178 @@ class Arg:
if self.signature == "b":
self.ctype_in_g = "gboolean "
self.ctype_in = "gboolean "
+ self.ctype_in_default_value = "FALSE"
self.ctype_out = "gboolean *"
self.gtype = "G_TYPE_BOOLEAN"
self.free_func = None
self.format_in = "b"
self.format_out = "b"
self.gvariant_get = "g_variant_get_boolean"
- self.gvalue_get = "g_value_get_boolean"
+ self.gvalue_type = "boolean"
+ self.gvalue_get = "g_marshal_value_peek_boolean"
+ self.gvalue_set = "g_value_set_boolean"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__BOOLEAN"
elif self.signature == "y":
self.ctype_in_g = "guchar "
self.ctype_in = "guchar "
+ self.ctype_in_default_value = "'\\0'"
self.ctype_out = "guchar *"
self.gtype = "G_TYPE_UCHAR"
self.free_func = None
self.format_in = "y"
self.format_out = "y"
self.gvariant_get = "g_variant_get_byte"
- self.gvalue_get = "g_value_get_uchar"
+ self.gvalue_type = "uchar"
+ self.gvalue_get = "g_marshal_value_peek_uchar"
+ self.gvalue_set = "g_value_set_uchar"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__UCHAR"
elif self.signature == "n":
self.ctype_in_g = "gint "
self.ctype_in = "gint16 "
+ self.ctype_in_default_value = "0"
self.ctype_out = "gint16 *"
self.gtype = "G_TYPE_INT"
self.free_func = None
self.format_in = "n"
self.format_out = "n"
self.gvariant_get = "g_variant_get_int16"
- self.gvalue_get = "g_value_get_int"
+ self.gvalue_type = "int"
+ self.gvalue_get = "g_marshal_value_peek_int"
+ self.gvalue_set = "g_value_set_int"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__INT"
elif self.signature == "q":
self.ctype_in_g = "guint "
self.ctype_in = "guint16 "
+ self.ctype_in_default_value = "0"
self.ctype_out = "guint16 *"
self.gtype = "G_TYPE_UINT"
self.free_func = None
self.format_in = "q"
self.format_out = "q"
self.gvariant_get = "g_variant_get_uint16"
- self.gvalue_get = "g_value_get_uint"
+ self.gvalue_type = "uint"
+ self.gvalue_get = "g_marshal_value_peek_uint"
+ self.gvalue_set = "g_value_set_uint"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__UINT"
elif self.signature == "i":
self.ctype_in_g = "gint "
self.ctype_in = "gint "
+ self.ctype_in_default_value = "0"
self.ctype_out = "gint *"
self.gtype = "G_TYPE_INT"
self.free_func = None
self.format_in = "i"
self.format_out = "i"
self.gvariant_get = "g_variant_get_int32"
- self.gvalue_get = "g_value_get_int"
+ self.gvalue_type = "int"
+ self.gvalue_get = "g_marshal_value_peek_int"
+ self.gvalue_set = "g_value_set_int"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__INT"
elif self.signature == "u":
self.ctype_in_g = "guint "
self.ctype_in = "guint "
+ self.ctype_in_default_value = "0"
self.ctype_out = "guint *"
self.gtype = "G_TYPE_UINT"
self.free_func = None
self.format_in = "u"
self.format_out = "u"
self.gvariant_get = "g_variant_get_uint32"
- self.gvalue_get = "g_value_get_uint"
+ self.gvalue_type = "uint"
+ self.gvalue_get = "g_marshal_value_peek_uint"
+ self.gvalue_set = "g_value_set_uint"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__UINT"
elif self.signature == "x":
self.ctype_in_g = "gint64 "
self.ctype_in = "gint64 "
+ self.ctype_in_default_value = "0"
self.ctype_out = "gint64 *"
self.gtype = "G_TYPE_INT64"
self.free_func = None
self.format_in = "x"
self.format_out = "x"
self.gvariant_get = "g_variant_get_int64"
- self.gvalue_get = "g_value_get_int64"
+ self.gvalue_type = "int64"
+ self.gvalue_get = "g_marshal_value_peek_int64"
+ self.gvalue_set = "g_value_set_int64"
+ self.gclosure_marshaller = None
elif self.signature == "t":
self.ctype_in_g = "guint64 "
self.ctype_in = "guint64 "
self.ctype_out = "guint64 *"
+ self.ctype_in_default_value = "0"
self.gtype = "G_TYPE_UINT64"
self.free_func = None
self.format_in = "t"
self.format_out = "t"
self.gvariant_get = "g_variant_get_uint64"
- self.gvalue_get = "g_value_get_uint64"
+ self.gvalue_type = "uint64"
+ self.gvalue_get = "g_marshal_value_peek_uint64"
+ self.gvalue_set = "g_value_set_uint64"
+ self.gclosure_marshaller = None
elif self.signature == "d":
self.ctype_in_g = "gdouble "
self.ctype_in = "gdouble "
+ self.ctype_in_default_value = "0.0"
self.ctype_out = "gdouble *"
self.gtype = "G_TYPE_DOUBLE"
self.free_func = None
self.format_in = "d"
self.format_out = "d"
self.gvariant_get = "g_variant_get_double"
- self.gvalue_get = "g_value_get_double"
+ self.gvalue_type = "double"
+ self.gvalue_get = "g_marshal_value_peek_double"
+ self.gvalue_set = "g_value_set_double"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__DOUBLE"
elif self.signature == "s":
self.ctype_in_g = "const gchar *"
self.ctype_in = "const gchar *"
self.ctype_in_dup = "gchar *"
+ self.ctype_in_default_value = "NULL"
self.ctype_out = "gchar **"
self.gtype = "G_TYPE_STRING"
self.free_func = "g_free"
self.format_in = "s"
self.format_out = "s"
self.gvariant_get = "g_variant_get_string"
- self.gvalue_get = "g_value_get_string"
+ self.gvalue_type = "string"
+ self.gvalue_get = "g_marshal_value_peek_string"
+ self.gvalue_set = "g_value_set_string"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__STRING"
elif self.signature == "o":
self.ctype_in_g = "const gchar *"
self.ctype_in = "const gchar *"
self.ctype_in_dup = "gchar *"
+ self.ctype_in_default_value = "NULL"
self.ctype_out = "gchar **"
self.gtype = "G_TYPE_STRING"
self.free_func = "g_free"
self.format_in = "o"
self.format_out = "o"
self.gvariant_get = "g_variant_get_string"
- self.gvalue_get = "g_value_get_string"
+ self.gvalue_type = "string"
+ self.gvalue_get = "g_marshal_value_peek_string"
+ self.gvalue_set = "g_value_set_string"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__STRING"
elif self.signature == "g":
self.ctype_in_g = "const gchar *"
self.ctype_in = "const gchar *"
self.ctype_in_dup = "gchar *"
+ self.ctype_in_default_value = "NULL"
self.ctype_out = "gchar **"
self.gtype = "G_TYPE_STRING"
self.free_func = "g_free"
self.format_in = "g"
self.format_out = "g"
self.gvariant_get = "g_variant_get_string"
- self.gvalue_get = "g_value_get_string"
+ self.gvalue_type = "string"
+ self.gvalue_get = "g_marshal_value_peek_string"
+ self.gvalue_set = "g_value_set_string"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__STRING"
elif self.signature == "ay":
self.ctype_in_g = "const gchar *"
self.ctype_in = "const gchar *"
+ self.ctype_in_default_value = "NULL"
self.ctype_in_dup = "gchar *"
self.ctype_out = "gchar **"
self.gtype = "G_TYPE_STRING"
@@ -221,42 +338,57 @@ class Arg:
self.format_in = "^ay"
self.format_out = "^ay"
self.gvariant_get = "g_variant_get_bytestring"
- self.gvalue_get = "g_value_get_string"
+ self.gvalue_type = "string"
+ self.gvalue_get = "g_marshal_value_peek_string"
+ self.gvalue_set = "g_value_set_string"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__STRING"
elif self.signature == "as":
self.ctype_in_g = "const gchar *const *"
self.ctype_in = "const gchar *const *"
self.ctype_in_dup = "gchar **"
+ self.ctype_in_default_value = "NULL"
self.ctype_out = "gchar ***"
self.gtype = "G_TYPE_STRV"
self.free_func = "g_strfreev"
self.format_in = "^as"
self.format_out = "^as"
self.gvariant_get = "g_variant_get_strv"
- self.gvalue_get = "g_value_get_boxed"
+ self.gvalue_type = "boxed"
+ self.gvalue_get = "g_marshal_value_peek_boxed"
+ self.gvalue_set = "g_value_take_boxed"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__BOXED"
self.array_annotation = "(array zero-terminated=1)"
elif self.signature == "ao":
self.ctype_in_g = "const gchar *const *"
self.ctype_in = "const gchar *const *"
self.ctype_in_dup = "gchar **"
+ self.ctype_in_default_value = "NULL"
self.ctype_out = "gchar ***"
self.gtype = "G_TYPE_STRV"
self.free_func = "g_strfreev"
self.format_in = "^ao"
self.format_out = "^ao"
self.gvariant_get = "g_variant_get_objv"
- self.gvalue_get = "g_value_get_boxed"
+ self.gvalue_type = "boxed"
+ self.gvalue_get = "g_marshal_value_peek_boxed"
+ self.gvalue_set = "g_value_take_boxed"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__BOXED"
self.array_annotation = "(array zero-terminated=1)"
elif self.signature == "aay":
self.ctype_in_g = "const gchar *const *"
self.ctype_in = "const gchar *const *"
self.ctype_in_dup = "gchar **"
+ self.ctype_in_default_value = "NULL"
self.ctype_out = "gchar ***"
self.gtype = "G_TYPE_STRV"
self.free_func = "g_strfreev"
self.format_in = "^aay"
self.format_out = "^aay"
self.gvariant_get = "g_variant_get_bytestring_array"
- self.gvalue_get = "g_value_get_boxed"
+ self.gvalue_type = "boxed"
+ self.gvalue_get = "g_marshal_value_peek_boxed"
+ self.gvalue_set = "g_value_take_boxed"
+ self.gclosure_marshaller = "g_cclosure_marshal_VOID__BOXED"
self.array_annotation = "(array zero-terminated=1)"
for a in self.annotations:
@@ -319,6 +451,24 @@ class Method:
if utils.lookup_annotation(self.annotations, "org.gtk.GDBus.C.UnixFD"):
self.unix_fd = True
+ self.marshaller_ret_arg = Arg("return", "b")
+ self.marshaller_ret_arg.post_process(None, None, None, None, None)
+
+ method_invocation_arg = Arg("method_invocation", None)
+ method_invocation_arg.ctype_in = "GDBusMethodInvocation *"
+ method_invocation_arg.gvalue_type = "object"
+ method_invocation_arg.gvalue_get = "g_marshal_value_peek_object"
+ method_invocation_arg.gclosure_marshaller = None
+ self.marshaller_in_args = [method_invocation_arg] + self.in_args
+
+ if self.unix_fd:
+ fd_list_arg = Arg("fd_list", None)
+ fd_list_arg.ctype_in = "GUnixFDList *"
+ fd_list_arg.gvalue_type = "object"
+ fd_list_arg.gvalue_get = "g_marshal_value_peek_object"
+ fd_list_arg.gclosure_marshaller = None
+ self.marshaller_in_args.insert(0, fd_list_arg)
+
for a in self.annotations:
a.post_process(interface_prefix, cns, cns_upper, cns_lower, self)
@@ -352,7 +502,11 @@ class Signal:
if overridden_name:
name = overridden_name
self.name_lower = utils.camel_case_to_uscore(name).lower().replace("-", "_")
+ self.name_upper = self.name_lower.upper()
self.name_hyphen = self.name_lower.replace("_", "-")
+ self.upper_id_name = "_".join(
+ [cns_upper, containing_iface.name_upper, self.name_upper]
+ )
arg_count = 0
for a in self.args:
@@ -365,6 +519,9 @@ class Signal:
):
self.deprecated = True
+ self.marshaller_ret_arg = None
+ self.marshaller_in_args = self.args
+
for a in self.annotations:
a.post_process(interface_prefix, cns, cns_upper, cns_lower, self)
@@ -523,3 +680,6 @@ class Interface:
for a in self.annotations:
a.post_process(interface_prefix, cns, cns_upper, cns_lower, self)
+
+ if self.signals:
+ self.signals_enum_name = "_".join([cns_upper, self.name_upper, "SIGNALS"])
diff --git a/gio/gdbus-2.0/codegen/meson.build b/gio/gdbus-2.0/codegen/meson.build
index 16abd97d6..65faae9b2 100644
--- a/gio/gdbus-2.0/codegen/meson.build
+++ b/gio/gdbus-2.0/codegen/meson.build
@@ -3,6 +3,7 @@ gdbus_codegen_files = [
'codegen.py',
'codegen_main.py',
'codegen_docbook.py',
+ 'codegen_md.py',
'codegen_rst.py',
'dbustypes.py',
'parser.py',
diff --git a/gio/gdbus-2.0/codegen/parser.py b/gio/gdbus-2.0/codegen/parser.py
index cf8ea5229..207e4d3c9 100644
--- a/gio/gdbus-2.0/codegen/parser.py
+++ b/gio/gdbus-2.0/codegen/parser.py
@@ -20,6 +20,7 @@
# Author: David Zeuthen <davidz@redhat.com>
import xml.parsers.expat
+import textwrap
from . import dbustypes
from .utils import print_error
@@ -64,14 +65,12 @@ class DBusXMLParser:
def handle_comment(self, data):
comment_state = DBusXMLParser.COMMENT_STATE_BEGIN
- lines = data.split("\n")
+ lines = textwrap.dedent(data).split("\n")
symbol = ""
body = ""
in_para = False
params = {}
for line in lines:
- orig_line = line
- line = line.lstrip()
if comment_state == DBusXMLParser.COMMENT_STATE_BEGIN:
if len(line) > 0:
colon_index = line.find(": ")
@@ -95,7 +94,7 @@ class DBusXMLParser:
if not in_para:
body += "\n"
in_para = True
- body += f"{orig_line}\n"
+ body += f"{line}\n"
else:
param = line[1:colon_index]
docs = line[colon_index + 2 :]
@@ -106,12 +105,12 @@ class DBusXMLParser:
if not in_para:
body += "\n"
in_para = True
- body += orig_line + "\n"
+ body += line + "\n"
elif comment_state == DBusXMLParser.COMMENT_STATE_BODY:
if len(line) > 0:
if not in_para:
in_para = True
- body += orig_line + "\n"
+ body += line + "\n"
else:
if in_para:
body += "\n"
diff --git a/gio/gdbus-2.0/codegen/utils.py b/gio/gdbus-2.0/codegen/utils.py
index 95559d37c..02046108d 100644
--- a/gio/gdbus-2.0/codegen/utils.py
+++ b/gio/gdbus-2.0/codegen/utils.py
@@ -114,6 +114,10 @@ def camel_case_to_uscore(s):
return ret
+def uscore_to_camel_case(s):
+ return "".join([s[0].upper() + s[1:].lower() if s else "_" for s in s.split("_")])
+
+
def is_ugly_case(s):
if s and s.find("_") > 0:
return True
diff --git a/gio/gdbus-tool.c b/gio/gdbus-tool.c
index 5b90e7739..2435998d3 100644
--- a/gio/gdbus-tool.c
+++ b/gio/gdbus-tool.c
@@ -326,8 +326,7 @@ print_names (GDBusConnection *c,
GVariantIter *iter;
gchar *str;
GHashTable *name_set;
- GList *keys;
- GList *l;
+ GPtrArray *keys;
name_set = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
@@ -379,17 +378,17 @@ print_names (GDBusConnection *c,
g_variant_iter_free (iter);
g_variant_unref (result);
- keys = g_hash_table_get_keys (name_set);
- keys = g_list_sort (keys, (GCompareFunc) g_strcmp0);
- for (l = keys; l != NULL; l = l->next)
+ keys = g_hash_table_steal_all_keys (name_set);
+ g_ptr_array_sort_values (keys, (GCompareFunc) g_strcmp0);
+ for (guint i = 0; i < keys->len; ++i)
{
- const gchar *name = l->data;
+ const gchar *name = g_ptr_array_index (keys, i);
if (!include_unique_names && g_str_has_prefix (name, ":"))
continue;
g_print ("%s \n", name);
}
- g_list_free (keys);
+ g_clear_pointer (&keys, g_ptr_array_unref);
out:
g_hash_table_unref (name_set);
diff --git a/gio/gdbusactiongroup.h b/gio/gdbusactiongroup.h
index 1575ffb2c..84868f07e 100644
--- a/gio/gdbusactiongroup.h
+++ b/gio/gdbusactiongroup.h
@@ -43,10 +43,10 @@ G_BEGIN_DECLS
#define G_DBUS_ACTION_GROUP_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \
G_TYPE_DBUS_ACTION_GROUP, GDBusActionGroupClass))
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_action_group_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GDBusActionGroup * g_dbus_action_group_get (GDBusConnection *connection,
const gchar *bus_name,
const gchar *object_path);
diff --git a/gio/gdbusaddress.c b/gio/gdbusaddress.c
index 615722978..b73ff0d6e 100644
--- a/gio/gdbusaddress.c
+++ b/gio/gdbusaddress.c
@@ -53,6 +53,12 @@
#include <windows.h>
#endif
+#ifdef G_OS_WIN32
+#define FO_CLOEXEC ""
+#else
+#define FO_CLOEXEC "e"
+#endif
+
#include "glibintl.h"
/**
@@ -130,24 +136,22 @@ is_valid_unix (const gchar *address_entry,
GError **error)
{
gboolean ret;
- GList *keys;
- GList *l;
+ GPtrArray *keys;
const gchar *path;
const gchar *dir;
const gchar *tmpdir;
const gchar *abstract;
ret = FALSE;
- keys = NULL;
path = NULL;
dir = NULL;
tmpdir = NULL;
abstract = NULL;
- keys = g_hash_table_get_keys (key_value_pairs);
- for (l = keys; l != NULL; l = l->next)
+ keys = g_hash_table_get_keys_as_ptr_array (key_value_pairs);
+ for (guint i = 0; i < keys->len; ++i)
{
- const gchar *key = l->data;
+ const gchar *key = g_ptr_array_index (keys, i);
if (g_strcmp0 (key, "path") == 0)
path = g_hash_table_lookup (key_value_pairs, key);
else if (g_strcmp0 (key, "dir") == 0)
@@ -191,7 +195,7 @@ is_valid_unix (const gchar *address_entry,
ret = TRUE;
out:
- g_list_free (keys);
+ g_ptr_array_unref (keys);
return ret;
}
@@ -202,8 +206,7 @@ is_valid_nonce_tcp (const gchar *address_entry,
GError **error)
{
gboolean ret;
- GList *keys;
- GList *l;
+ GPtrArray *keys;
const gchar *host;
const gchar *port;
const gchar *family;
@@ -212,16 +215,15 @@ is_valid_nonce_tcp (const gchar *address_entry,
gchar *endp;
ret = FALSE;
- keys = NULL;
host = NULL;
port = NULL;
family = NULL;
nonce_file = NULL;
- keys = g_hash_table_get_keys (key_value_pairs);
- for (l = keys; l != NULL; l = l->next)
+ keys = g_hash_table_get_keys_as_ptr_array (key_value_pairs);
+ for (guint i = 0; i < keys->len; ++i)
{
- const gchar *key = l->data;
+ const gchar *key = g_ptr_array_index (keys, i);
if (g_strcmp0 (key, "host") == 0)
host = g_hash_table_lookup (key_value_pairs, key);
else if (g_strcmp0 (key, "port") == 0)
@@ -284,7 +286,7 @@ is_valid_nonce_tcp (const gchar *address_entry,
ret = TRUE;
out:
- g_list_free (keys);
+ g_ptr_array_unref (keys);
return ret;
}
@@ -295,8 +297,7 @@ is_valid_tcp (const gchar *address_entry,
GError **error)
{
gboolean ret;
- GList *keys;
- GList *l;
+ GPtrArray *keys;
const gchar *host;
const gchar *port;
const gchar *family;
@@ -304,15 +305,14 @@ is_valid_tcp (const gchar *address_entry,
gchar *endp;
ret = FALSE;
- keys = NULL;
host = NULL;
port = NULL;
family = NULL;
- keys = g_hash_table_get_keys (key_value_pairs);
- for (l = keys; l != NULL; l = l->next)
+ keys = g_hash_table_get_keys_as_ptr_array (key_value_pairs);
+ for (guint i = 0; i < keys->len; ++i)
{
- const gchar *key = l->data;
+ const gchar *key = g_ptr_array_index (keys, i);
if (g_strcmp0 (key, "host") == 0)
host = g_hash_table_lookup (key_value_pairs, key);
else if (g_strcmp0 (key, "port") == 0)
@@ -363,7 +363,7 @@ is_valid_tcp (const gchar *address_entry,
ret= TRUE;
out:
- g_list_free (keys);
+ g_ptr_array_unref (keys);
return ret;
}
@@ -717,7 +717,7 @@ g_dbus_address_connect (const gchar *address_entry,
int errsv;
/* be careful to read only 16 bytes - we also check that the file is only 16 bytes long */
- f = fopen (nonce_file, "rb");
+ f = fopen (nonce_file, "rb" FO_CLOEXEC);
errsv = errno;
if (f == NULL)
{
@@ -1337,7 +1337,12 @@ g_dbus_address_get_for_bus_sync (GBusType bus_type,
if (ret == NULL)
{
- ret = g_strdup ("unix:path=/var/run/dbus/system_bus_socket");
+ /* While the D-Bus specification says this must be `/var/run/dbus/system_bus_socket`,
+ * a footnote allows it to use localstatedir:
+ * https://dbus.freedesktop.org/doc/dbus-specification.html#ftn.id-1.13.6.4.3.3
+ * or, on systems where /run is the same as /var/run, runstatedir:
+ * https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/209 */
+ ret = g_strdup ("unix:path=" GLIB_RUNSTATEDIR "/dbus/system_bus_socket");
}
break;
diff --git a/gio/gdbusaddress.h b/gio/gdbusaddress.h
index cc99c5913..09734adef 100644
--- a/gio/gdbusaddress.h
+++ b/gio/gdbusaddress.h
@@ -31,33 +31,33 @@
G_BEGIN_DECLS
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gchar *g_dbus_address_escape_value (const gchar *string);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_is_address (const gchar *string);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_is_supported_address (const gchar *string,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_address_get_stream (const gchar *address,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOStream *g_dbus_address_get_stream_finish (GAsyncResult *res,
gchar **out_guid,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOStream *g_dbus_address_get_stream_sync (const gchar *address,
gchar **out_guid,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar *g_dbus_address_get_for_bus_sync (GBusType bus_type,
GCancellable *cancellable,
GError **error);
diff --git a/gio/gdbusauth.c b/gio/gdbusauth.c
index 671036805..b52a06e7f 100644
--- a/gio/gdbusauth.c
+++ b/gio/gdbusauth.c
@@ -949,7 +949,6 @@ _g_dbus_auth_run_server (GDBusAuth *auth,
{
gboolean ret;
ServerState state;
- GDataInputStream *dis;
GDataOutputStream *dos;
GError *local_error;
gchar *line;
@@ -965,7 +964,6 @@ _g_dbus_auth_run_server (GDBusAuth *auth,
_g_dbus_auth_add_mechs (auth, observer);
ret = FALSE;
- dis = NULL;
dos = NULL;
mech = NULL;
negotiated_capabilities = 0;
@@ -981,13 +979,18 @@ _g_dbus_auth_run_server (GDBusAuth *auth,
goto out;
}
- dis = G_DATA_INPUT_STREAM (g_data_input_stream_new (g_io_stream_get_input_stream (auth->priv->stream)));
+ /* We use an extremely slow (but reliable) line reader for input
+ * instead of something buffered - this basically does a recvfrom()
+ * system call per character
+ *
+ * (the problem with using GDataInputStream's read_line is that
+ * because of buffering it might start reading into the first D-Bus
+ * message that appears after "BEGIN\r\n"....)
+ */
+
dos = G_DATA_OUTPUT_STREAM (g_data_output_stream_new (g_io_stream_get_output_stream (auth->priv->stream)));
- g_filter_input_stream_set_close_base_stream (G_FILTER_INPUT_STREAM (dis), FALSE);
g_filter_output_stream_set_close_base_stream (G_FILTER_OUTPUT_STREAM (dos), FALSE);
- g_data_input_stream_set_newline_type (dis, G_DATA_STREAM_NEWLINE_TYPE_CR_LF);
-
/* read the NUL-byte, possibly with credentials attached */
#ifndef G_CREDENTIALS_PREFER_MESSAGE_PASSING
if (G_IS_SOCKET_CONNECTION (auth->priv->stream))
@@ -1026,11 +1029,22 @@ _g_dbus_auth_run_server (GDBusAuth *auth,
}
else
{
+ gchar c;
+ gssize num_read;
+
local_error = NULL;
- (void)g_data_input_stream_read_byte (dis, cancellable, &local_error);
- if (local_error != NULL)
+ num_read = g_input_stream_read (g_io_stream_get_input_stream (auth->priv->stream),
+ &c, 1,
+ cancellable, &local_error);
+ if (num_read != 1 || local_error != NULL)
{
- g_propagate_error (error, local_error);
+ if (local_error == NULL)
+ g_set_error_literal (error,
+ G_IO_ERROR,
+ G_IO_ERROR_FAILED,
+ _ ("Unexpected lack of content trying to read a byte"));
+ else
+ g_propagate_error (error, local_error);
goto out;
}
}
@@ -1058,7 +1072,10 @@ _g_dbus_auth_run_server (GDBusAuth *auth,
{
case SERVER_STATE_WAITING_FOR_AUTH:
debug_print ("SERVER: WaitingForAuth");
- line = _my_g_data_input_stream_read_line (dis, &line_length, cancellable, error);
+ line = _my_g_input_stream_read_line_safe (g_io_stream_get_input_stream (auth->priv->stream),
+ &line_length,
+ cancellable,
+ error);
debug_print ("SERVER: WaitingForAuth, read '%s'", line);
if (line == NULL)
goto out;
@@ -1276,7 +1293,10 @@ _g_dbus_auth_run_server (GDBusAuth *auth,
case SERVER_STATE_WAITING_FOR_DATA:
debug_print ("SERVER: WaitingForData");
- line = _my_g_data_input_stream_read_line (dis, &line_length, cancellable, error);
+ line = _my_g_input_stream_read_line_safe (g_io_stream_get_input_stream (auth->priv->stream),
+ &line_length,
+ cancellable,
+ error);
debug_print ("SERVER: WaitingForData, read '%s'", line);
if (line == NULL)
goto out;
@@ -1315,13 +1335,6 @@ _g_dbus_auth_run_server (GDBusAuth *auth,
case SERVER_STATE_WAITING_FOR_BEGIN:
debug_print ("SERVER: WaitingForBegin");
- /* Use extremely slow (but reliable) line reader - this basically
- * does a recvfrom() system call per character
- *
- * (the problem with using GDataInputStream's read_line is that because of
- * buffering it might start reading into the first D-Bus message that
- * appears after "BEGIN\r\n"....)
- */
line = _my_g_input_stream_read_line_safe (g_io_stream_get_input_stream (auth->priv->stream),
&line_length,
cancellable,
@@ -1380,7 +1393,6 @@ _g_dbus_auth_run_server (GDBusAuth *auth,
out:
g_clear_object (&mech);
- g_clear_object (&dis);
g_clear_object (&dos);
g_clear_object (&own_credentials);
diff --git a/gio/gdbusauthmechanismsha1.c b/gio/gdbusauthmechanismsha1.c
index fb6488a2a..c8aa08977 100644
--- a/gio/gdbusauthmechanismsha1.c
+++ b/gio/gdbusauthmechanismsha1.c
@@ -37,6 +37,10 @@
#include "gwin32sid.h"
#endif
+#ifndef O_CLOEXEC
+#define O_CLOEXEC 0
+#endif
+
#include "gdbusauthmechanismsha1.h"
#include "gcredentials.h"
#include "gdbuserror.h"
@@ -519,7 +523,7 @@ create_lock_exclusive (const gchar *lock_path,
int errsv;
gint ret;
- ret = g_open (lock_path, O_CREAT | O_EXCL, 0600);
+ ret = g_open (lock_path, O_CREAT | O_EXCL | O_CLOEXEC, 0600);
errsv = errno;
if (ret < 0)
{
diff --git a/gio/gdbusauthobserver.h b/gio/gdbusauthobserver.h
index 1961a337f..715095d40 100644
--- a/gio/gdbusauthobserver.h
+++ b/gio/gdbusauthobserver.h
@@ -35,16 +35,16 @@ G_BEGIN_DECLS
#define G_DBUS_AUTH_OBSERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_AUTH_OBSERVER, GDBusAuthObserver))
#define G_IS_DBUS_AUTH_OBSERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_AUTH_OBSERVER))
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_auth_observer_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusAuthObserver *g_dbus_auth_observer_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_auth_observer_authorize_authenticated_peer (GDBusAuthObserver *observer,
GIOStream *stream,
GCredentials *credentials);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
gboolean g_dbus_auth_observer_allow_mechanism (GDBusAuthObserver *observer,
const gchar *mechanism);
diff --git a/gio/gdbusconnection.c b/gio/gdbusconnection.c
index 663cd95ab..1ee2ab44f 100644
--- a/gio/gdbusconnection.c
+++ b/gio/gdbusconnection.c
@@ -409,7 +409,7 @@ struct _GDBusConnection
GDBusConnectionFlags flags;
/* Map used for managing method replies, protected by @lock */
- GHashTable *map_method_serial_to_task; /* guint32 -> GTask* */
+ GHashTable *map_method_serial_to_task; /* guint32 -> owned GTask* */
/* Maps used for managing signal subscription, protected by @lock */
GHashTable *map_rule_to_signal_data; /* match rule (gchar*) -> SignalData */
@@ -1061,7 +1061,7 @@ g_dbus_connection_init (GDBusConnection *connection)
g_mutex_init (&connection->lock);
g_mutex_init (&connection->init_lock);
- connection->map_method_serial_to_task = g_hash_table_new (g_direct_hash, g_direct_equal);
+ connection->map_method_serial_to_task = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_object_unref);
connection->map_rule_to_signal_data = g_hash_table_new (g_str_hash,
g_str_equal);
@@ -1750,8 +1750,9 @@ typedef struct
guint32 serial;
gulong cancellable_handler_id;
+ GSource *cancelled_idle_source; /* (owned) (nullable) */
- GSource *timeout_source;
+ GSource *timeout_source; /* (owned) (nullable) */
gboolean delivered;
} SendMessageData;
@@ -1760,6 +1761,7 @@ typedef struct
static void
send_message_data_free (SendMessageData *data)
{
+ /* These should already have been cleared by send_message_with_reply_cleanup(). */
g_assert (data->timeout_source == NULL);
g_assert (data->cancellable_handler_id == 0);
@@ -1768,7 +1770,7 @@ send_message_data_free (SendMessageData *data)
/* ---------------------------------------------------------------------------------------------------- */
-/* can be called from any thread with lock held; @task is (transfer full) */
+/* can be called from any thread with lock held; @task is (transfer none) */
static void
send_message_with_reply_cleanup (GTask *task, gboolean remove)
{
@@ -1784,13 +1786,18 @@ send_message_with_reply_cleanup (GTask *task, gboolean remove)
if (data->timeout_source != NULL)
{
g_source_destroy (data->timeout_source);
- data->timeout_source = NULL;
+ g_clear_pointer (&data->timeout_source, g_source_unref);
}
if (data->cancellable_handler_id > 0)
{
g_cancellable_disconnect (g_task_get_cancellable (task), data->cancellable_handler_id);
data->cancellable_handler_id = 0;
}
+ if (data->cancelled_idle_source != NULL)
+ {
+ g_source_destroy (data->cancelled_idle_source);
+ g_clear_pointer (&data->cancelled_idle_source, g_source_unref);
+ }
if (remove)
{
@@ -1798,13 +1805,11 @@ send_message_with_reply_cleanup (GTask *task, gboolean remove)
GUINT_TO_POINTER (data->serial));
g_warn_if_fail (removed);
}
-
- g_object_unref (task);
}
/* ---------------------------------------------------------------------------------------------------- */
-/* Called from GDBus worker thread with lock held; @task is (transfer full). */
+/* Called from GDBus worker thread with lock held; @task is (transfer none). */
static void
send_message_data_deliver_reply_unlocked (GTask *task,
GDBusMessage *reply)
@@ -1822,7 +1827,7 @@ send_message_data_deliver_reply_unlocked (GTask *task,
;
}
-/* Called from a user thread, lock is not held */
+/* Called from a user thread, lock is not held; @task is (transfer none) */
static void
send_message_data_deliver_error (GTask *task,
GQuark domain,
@@ -1839,7 +1844,10 @@ send_message_data_deliver_error (GTask *task,
return;
}
+ /* Hold a ref on @task as send_message_with_reply_cleanup() will remove it
+ * from the task map and could end up dropping the last reference */
g_object_ref (task);
+
send_message_with_reply_cleanup (task, TRUE);
CONNECTION_UNLOCK (connection);
@@ -1849,7 +1857,7 @@ send_message_data_deliver_error (GTask *task,
/* ---------------------------------------------------------------------------------------------------- */
-/* Called from a user thread, lock is not held; @task is (transfer full) */
+/* Called from a user thread, lock is not held; @task is (transfer none) */
static gboolean
send_message_with_reply_cancelled_idle_cb (gpointer user_data)
{
@@ -1857,7 +1865,7 @@ send_message_with_reply_cancelled_idle_cb (gpointer user_data)
send_message_data_deliver_error (task, G_IO_ERROR, G_IO_ERROR_CANCELLED,
_("Operation was cancelled"));
- return FALSE;
+ return G_SOURCE_REMOVE;
}
/* Can be called from any thread with or without lock held */
@@ -1866,20 +1874,22 @@ send_message_with_reply_cancelled_cb (GCancellable *cancellable,
gpointer user_data)
{
GTask *task = user_data;
- GSource *idle_source;
+ SendMessageData *data = g_task_get_task_data (task);
/* postpone cancellation to idle handler since we may be called directly
* via g_cancellable_connect() (e.g. holding lock)
*/
- idle_source = g_idle_source_new ();
- g_source_set_static_name (idle_source, "[gio] send_message_with_reply_cancelled_idle_cb");
- g_task_attach_source (task, idle_source, send_message_with_reply_cancelled_idle_cb);
- g_source_unref (idle_source);
+ if (data->cancelled_idle_source != NULL)
+ return;
+
+ data->cancelled_idle_source = g_idle_source_new ();
+ g_source_set_static_name (data->cancelled_idle_source, "[gio] send_message_with_reply_cancelled_idle_cb");
+ g_task_attach_source (task, data->cancelled_idle_source, send_message_with_reply_cancelled_idle_cb);
}
/* ---------------------------------------------------------------------------------------------------- */
-/* Called from a user thread, lock is not held; @task is (transfer full) */
+/* Called from a user thread, lock is not held; @task is (transfer none) */
static gboolean
send_message_with_reply_timeout_cb (gpointer user_data)
{
@@ -1887,7 +1897,7 @@ send_message_with_reply_timeout_cb (gpointer user_data)
send_message_data_deliver_error (task, G_IO_ERROR, G_IO_ERROR_TIMED_OUT,
_("Timeout was reached"));
- return FALSE;
+ return G_SOURCE_REMOVE;
}
/* ---------------------------------------------------------------------------------------------------- */
@@ -1945,9 +1955,9 @@ g_dbus_connection_send_message_with_reply_unlocked (GDBusConnection *connect
if (timeout_msec != G_MAXINT)
{
data->timeout_source = g_timeout_source_new (timeout_msec);
+ g_source_set_static_name (data->timeout_source, "[gio] send_message_with_reply_unlocked");
g_task_attach_source (task, data->timeout_source,
(GSourceFunc) send_message_with_reply_timeout_cb);
- g_source_unref (data->timeout_source);
}
g_hash_table_insert (connection->map_method_serial_to_task,
@@ -2388,7 +2398,8 @@ on_worker_message_about_to_be_sent (GDBusWorker *worker,
return message;
}
-/* called with connection lock held, in GDBusWorker thread */
+/* called with connection lock held, in GDBusWorker thread
+ * @key, @value and @user_data are (transfer none) */
static gboolean
cancel_method_on_close (gpointer key, gpointer value, gpointer user_data)
{
@@ -3443,7 +3454,7 @@ is_signal_data_for_name_lost_or_acquired (SignalData *signal_data)
* @user_data_free_func: (nullable): function to free @user_data with when
* subscription is removed or %NULL
*
- * Subscribes to signals on @connection and invokes @callback with a whenever
+ * Subscribes to signals on @connection and invokes @callback whenever
* the signal is received. Note that @callback will be invoked in the
* [thread-default main context][g-main-context-push-thread-default]
* of the thread you are calling this method from.
@@ -3740,7 +3751,7 @@ g_dbus_connection_signal_unsubscribe (GDBusConnection *connection,
typedef struct
{
SignalSubscriber *subscriber; /* (owned) */
- GDBusMessage *message;
+ GDBusMessage *message; /* (owned) */
GDBusConnection *connection;
const gchar *sender; /* (nullable) for peer-to-peer connections */
const gchar *path;
@@ -3804,7 +3815,7 @@ emit_signal_instance_in_idle_cb (gpointer data)
static void
signal_instance_free (SignalInstance *signal_instance)
{
- g_object_unref (signal_instance->message);
+ g_clear_object (&signal_instance->message);
g_object_unref (signal_instance->connection);
signal_subscriber_unref (signal_instance->subscriber);
g_free (signal_instance);
@@ -3955,10 +3966,22 @@ distribute_signals (GDBusConnection *connection,
GDBusMessage *message)
{
GPtrArray *signal_data_array;
- const gchar *sender;
+ const gchar *sender, *interface, *member, *path;
+
+ g_assert (g_dbus_message_get_message_type (message) == G_DBUS_MESSAGE_TYPE_SIGNAL);
sender = g_dbus_message_get_sender (message);
+ /* all three of these are required, but should have been validated already
+ * by validate_headers() in gdbusmessage.c */
+ interface = g_dbus_message_get_interface (message);
+ member = g_dbus_message_get_member (message);
+ path = g_dbus_message_get_path (message);
+
+ g_assert (interface != NULL);
+ g_assert (member != NULL);
+ g_assert (path != NULL);
+
if (G_UNLIKELY (_g_dbus_debug_signal ()))
{
_g_dbus_debug_print_lock ();
@@ -3967,9 +3990,7 @@ distribute_signals (GDBusConnection *connection,
" <<<< RECEIVED SIGNAL %s.%s\n"
" on object %s\n"
" sent by name %s\n",
- g_dbus_message_get_interface (message),
- g_dbus_message_get_member (message),
- g_dbus_message_get_path (message),
+ interface, member, path,
sender != NULL ? sender : "(none)");
_g_dbus_debug_print_unlock ();
}
@@ -4216,7 +4237,7 @@ has_object_been_unregistered (GDBusConnection *connection,
typedef struct
{
GDBusConnection *connection;
- GDBusMessage *message;
+ GDBusMessage *message; /* (owned) */
gpointer user_data;
const gchar *property_name;
const GDBusInterfaceVTable *vtable;
@@ -4230,7 +4251,7 @@ static void
property_data_free (PropertyData *data)
{
g_object_unref (data->connection);
- g_object_unref (data->message);
+ g_clear_object (&data->message);
g_free (data);
}
@@ -4572,7 +4593,7 @@ handle_getset_property (GDBusConnection *connection,
typedef struct
{
GDBusConnection *connection;
- GDBusMessage *message;
+ GDBusMessage *message; /* (owned) */
gpointer user_data;
const GDBusInterfaceVTable *vtable;
GDBusInterfaceInfo *interface_info;
@@ -4581,10 +4602,10 @@ typedef struct
} PropertyGetAllData;
static void
-property_get_all_data_free (PropertyData *data)
+property_get_all_data_free (PropertyGetAllData *data)
{
g_object_unref (data->connection);
- g_object_unref (data->message);
+ g_clear_object (&data->message);
g_free (data);
}
@@ -4869,8 +4890,6 @@ g_dbus_connection_list_registered_unlocked (GDBusConnection *connection,
const gchar *object_path;
gsize path_len;
GHashTable *set;
- GList *keys;
- GList *l;
CONNECTION_ENSURE_LOCK (connection);
@@ -4888,12 +4907,8 @@ g_dbus_connection_list_registered_unlocked (GDBusConnection *connection,
while (g_hash_table_iter_next (&hash_iter, (gpointer) &object_path, NULL))
maybe_add_path (path, path_len, object_path, set);
- p = g_ptr_array_new ();
- keys = g_hash_table_get_keys (set);
- for (l = keys; l != NULL; l = l->next)
- g_ptr_array_add (p, l->data);
+ p = g_hash_table_steal_all_keys (set);
g_hash_table_unref (set);
- g_list_free (keys);
g_ptr_array_add (p, NULL);
ret = (gchar **) g_ptr_array_free (p, FALSE);
@@ -5048,7 +5063,7 @@ schedule_method_call (GDBusConnection *connection,
g_source_set_priority (idle_source, G_PRIORITY_DEFAULT);
g_source_set_callback (idle_source,
call_in_idle_cb,
- invocation,
+ g_steal_pointer (&invocation),
g_object_unref);
g_source_set_static_name (idle_source, "[gio, " __FILE__ "] call_in_idle_cb");
g_source_attach (idle_source, main_context);
@@ -6818,7 +6833,7 @@ typedef struct
static void
subtree_deferred_data_free (SubtreeDeferredData *data)
{
- g_object_unref (data->message);
+ g_clear_object (&data->message);
exported_subtree_unref (data->es);
g_free (data);
}
@@ -7181,19 +7196,26 @@ distribute_method_call (GDBusConnection *connection,
GDBusMessage *reply;
ExportedObject *eo;
ExportedSubtree *es;
- const gchar *object_path;
+ const gchar *path;
const gchar *interface_name;
const gchar *member;
- const gchar *path;
gchar *subtree_path;
gchar *needle;
gboolean object_found = FALSE;
g_assert (g_dbus_message_get_message_type (message) == G_DBUS_MESSAGE_TYPE_METHOD_CALL);
- interface_name = g_dbus_message_get_interface (message);
+ /* these are required, and should have been validated by validate_headers()
+ * in gdbusmessage.c already */
member = g_dbus_message_get_member (message);
path = g_dbus_message_get_path (message);
+
+ g_assert (member != NULL);
+ g_assert (path != NULL);
+
+ /* this is optional */
+ interface_name = g_dbus_message_get_interface (message);
+
subtree_path = g_strdup (path);
needle = strrchr (subtree_path, '/');
if (needle != NULL && needle != subtree_path)
@@ -7206,7 +7228,6 @@ distribute_method_call (GDBusConnection *connection,
subtree_path = NULL;
}
-
if (G_UNLIKELY (_g_dbus_debug_incoming ()))
{
_g_dbus_debug_print_lock ();
@@ -7223,17 +7244,14 @@ distribute_method_call (GDBusConnection *connection,
_g_dbus_debug_print_unlock ();
}
- object_path = g_dbus_message_get_path (message);
- g_assert (object_path != NULL);
-
- eo = g_hash_table_lookup (connection->map_object_path_to_eo, object_path);
+ eo = g_hash_table_lookup (connection->map_object_path_to_eo, path);
if (eo != NULL)
{
if (obj_message_func (connection, eo, message, &object_found))
goto out;
}
- es = g_hash_table_lookup (connection->map_object_path_to_es, object_path);
+ es = g_hash_table_lookup (connection->map_object_path_to_es, path);
if (es != NULL)
{
if (subtree_message_func (connection, es, message))
@@ -7260,14 +7278,14 @@ distribute_method_call (GDBusConnection *connection,
"org.freedesktop.DBus.Error.UnknownMethod",
_("No such interface “%s” on object at path %s"),
interface_name,
- object_path);
+ path);
}
else
{
reply = g_dbus_message_new_method_error (message,
"org.freedesktop.DBus.Error.UnknownMethod",
_("Object does not exist at path “%s”"),
- object_path);
+ path);
}
g_dbus_connection_send_message_unlocked (connection, reply, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
diff --git a/gio/gdbusconnection.h b/gio/gdbusconnection.h
index 595625161..3a8cb9d27 100644
--- a/gio/gdbusconnection.h
+++ b/gio/gdbusconnection.h
@@ -35,27 +35,27 @@ G_BEGIN_DECLS
#define G_DBUS_CONNECTION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_CONNECTION, GDBusConnection))
#define G_IS_DBUS_CONNECTION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_CONNECTION))
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_connection_get_type (void) G_GNUC_CONST;
/* ---------------------------------------------------------------------------------------------------- */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_bus_get (GBusType bus_type,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusConnection *g_bus_get_finish (GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusConnection *g_bus_get_sync (GBusType bus_type,
GCancellable *cancellable,
GError **error);
/* ---------------------------------------------------------------------------------------------------- */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_connection_new (GIOStream *stream,
const gchar *guid,
GDBusConnectionFlags flags,
@@ -63,10 +63,10 @@ void g_dbus_connection_new (GIOStream
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusConnection *g_dbus_connection_new_finish (GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusConnection *g_dbus_connection_new_sync (GIOStream *stream,
const gchar *guid,
GDBusConnectionFlags flags,
@@ -74,17 +74,17 @@ GDBusConnection *g_dbus_connection_new_sync (GIOStream
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_connection_new_for_address (const gchar *address,
GDBusConnectionFlags flags,
GDBusAuthObserver *observer,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusConnection *g_dbus_connection_new_for_address_finish (GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusConnection *g_dbus_connection_new_for_address_sync (const gchar *address,
GDBusConnectionFlags flags,
GDBusAuthObserver *observer,
@@ -93,73 +93,73 @@ GDBusConnection *g_dbus_connection_new_for_address_sync (const gchar
/* ---------------------------------------------------------------------------------------------------- */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_connection_start_message_processing (GDBusConnection *connection);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_connection_is_closed (GDBusConnection *connection);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOStream *g_dbus_connection_get_stream (GDBusConnection *connection);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_connection_get_guid (GDBusConnection *connection);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_connection_get_unique_name (GDBusConnection *connection);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GCredentials *g_dbus_connection_get_peer_credentials (GDBusConnection *connection);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
guint32 g_dbus_connection_get_last_serial (GDBusConnection *connection);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_connection_get_exit_on_close (GDBusConnection *connection);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_connection_set_exit_on_close (GDBusConnection *connection,
gboolean exit_on_close);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusCapabilityFlags g_dbus_connection_get_capabilities (GDBusConnection *connection);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
GDBusConnectionFlags g_dbus_connection_get_flags (GDBusConnection *connection);
/* ---------------------------------------------------------------------------------------------------- */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_connection_close (GDBusConnection *connection,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_connection_close_finish (GDBusConnection *connection,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_connection_close_sync (GDBusConnection *connection,
GCancellable *cancellable,
GError **error);
/* ---------------------------------------------------------------------------------------------------- */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_connection_flush (GDBusConnection *connection,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_connection_flush_finish (GDBusConnection *connection,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_connection_flush_sync (GDBusConnection *connection,
GCancellable *cancellable,
GError **error);
/* ---------------------------------------------------------------------------------------------------- */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_connection_send_message (GDBusConnection *connection,
GDBusMessage *message,
GDBusSendMessageFlags flags,
volatile guint32 *out_serial,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_connection_send_message_with_reply (GDBusConnection *connection,
GDBusMessage *message,
GDBusSendMessageFlags flags,
@@ -168,11 +168,11 @@ void g_dbus_connection_send_message_with_reply (GDBusConnecti
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessage *g_dbus_connection_send_message_with_reply_finish (GDBusConnection *connection,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessage *g_dbus_connection_send_message_with_reply_sync (GDBusConnection *connection,
GDBusMessage *message,
GDBusSendMessageFlags flags,
@@ -183,7 +183,7 @@ GDBusMessage *g_dbus_connection_send_message_with_reply_sync (GDBusConnecti
/* ---------------------------------------------------------------------------------------------------- */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_connection_emit_signal (GDBusConnection *connection,
const gchar *destination_bus_name,
const gchar *object_path,
@@ -191,7 +191,7 @@ gboolean g_dbus_connection_emit_signal (GDBusConnection
const gchar *signal_name,
GVariant *parameters,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_connection_call (GDBusConnection *connection,
const gchar *bus_name,
const gchar *object_path,
@@ -204,11 +204,11 @@ void g_dbus_connection_call (GDBusConnection
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant *g_dbus_connection_call_finish (GDBusConnection *connection,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant *g_dbus_connection_call_sync (GDBusConnection *connection,
const gchar *bus_name,
const gchar *object_path,
@@ -223,7 +223,7 @@ GVariant *g_dbus_connection_call_sync (GDBusConnection
#ifdef G_OS_UNIX
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
void g_dbus_connection_call_with_unix_fd_list (GDBusConnection *connection,
const gchar *bus_name,
const gchar *object_path,
@@ -237,12 +237,12 @@ void g_dbus_connection_call_with_unix_fd_list (GDBusConnection
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
GVariant *g_dbus_connection_call_with_unix_fd_list_finish (GDBusConnection *connection,
GUnixFDList **out_fd_list,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
GVariant *g_dbus_connection_call_with_unix_fd_list_sync (GDBusConnection *connection,
const gchar *bus_name,
const gchar *object_path,
@@ -402,7 +402,7 @@ struct _GDBusInterfaceVTable
gpointer padding[8];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_dbus_connection_register_object (GDBusConnection *connection,
const gchar *object_path,
GDBusInterfaceInfo *interface_info,
@@ -410,7 +410,7 @@ guint g_dbus_connection_register_object (GDBusConnection
gpointer user_data,
GDestroyNotify user_data_free_func,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
guint g_dbus_connection_register_object_with_closures (GDBusConnection *connection,
const gchar *object_path,
GDBusInterfaceInfo *interface_info,
@@ -418,7 +418,7 @@ guint g_dbus_connection_register_object_with_closures (GDBusConnectio
GClosure *get_property_closure,
GClosure *set_property_closure,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_connection_unregister_object (GDBusConnection *connection,
guint registration_id);
@@ -540,7 +540,7 @@ struct _GDBusSubtreeVTable
gpointer padding[8];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_dbus_connection_register_subtree (GDBusConnection *connection,
const gchar *object_path,
const GDBusSubtreeVTable *vtable,
@@ -548,7 +548,7 @@ guint g_dbus_connection_register_subtree (GDBusConnection
gpointer user_data,
GDestroyNotify user_data_free_func,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_connection_unregister_subtree (GDBusConnection *connection,
guint registration_id);
@@ -577,7 +577,7 @@ typedef void (*GDBusSignalCallback) (GDBusConnection *connection,
GVariant *parameters,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_dbus_connection_signal_subscribe (GDBusConnection *connection,
const gchar *sender,
const gchar *interface_name,
@@ -588,7 +588,7 @@ guint g_dbus_connection_signal_subscribe (GDBusConnection
GDBusSignalCallback callback,
gpointer user_data,
GDestroyNotify user_data_free_func);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_connection_signal_unsubscribe (GDBusConnection *connection,
guint subscription_id);
@@ -673,13 +673,13 @@ typedef GDBusMessage *(*GDBusMessageFilterFunction) (GDBusConnection *connection
gboolean incoming,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_dbus_connection_add_filter (GDBusConnection *connection,
GDBusMessageFilterFunction filter_function,
gpointer user_data,
GDestroyNotify user_data_free_func);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_connection_remove_filter (GDBusConnection *connection,
guint filter_id);
diff --git a/gio/gdbusdaemon.c b/gio/gdbusdaemon.c
index 8837b4819..70009f970 100644
--- a/gio/gdbusdaemon.c
+++ b/gio/gdbusdaemon.c
@@ -1087,29 +1087,13 @@ handle_list_names (_GFreedesktopDBus *object,
{
GDBusDaemon *daemon = G_DBUS_DAEMON (object);
GPtrArray *array;
- GList *clients, *names, *l;
+ GPtrArray *clients, *names;
- array = g_ptr_array_new ();
+ clients = g_hash_table_get_values_as_ptr_array (daemon->clients);
+ array = g_steal_pointer (&clients);
- clients = g_hash_table_get_values (daemon->clients);
- for (l = clients; l != NULL; l = l->next)
- {
- Client *client = l->data;
-
- g_ptr_array_add (array, client->id);
- }
-
- g_list_free (clients);
-
- names = g_hash_table_get_values (daemon->names);
- for (l = names; l != NULL; l = l->next)
- {
- Name *name = l->data;
-
- g_ptr_array_add (array, name->name);
- }
-
- g_list_free (names);
+ names = g_hash_table_get_values_as_ptr_array (daemon->names);
+ g_ptr_array_extend_and_steal (array, g_steal_pointer (&names));
g_ptr_array_add (array, NULL);
@@ -1618,13 +1602,8 @@ initable_init (GInitable *initable,
if (daemon->address == NULL)
{
#ifdef G_OS_UNIX
- if (g_unix_socket_address_abstract_names_supported ())
- daemon->address = g_strdup ("unix:tmpdir=/tmp/gdbus-daemon");
- else
- {
- daemon->tmpdir = g_dir_make_tmp ("gdbus-daemon-XXXXXX", NULL);
- daemon->address = g_strdup_printf ("unix:tmpdir=%s", daemon->tmpdir);
- }
+ daemon->tmpdir = g_dir_make_tmp ("gdbus-daemon-XXXXXX", NULL);
+ daemon->address = g_strdup_printf ("unix:tmpdir=%s", daemon->tmpdir);
flags |= G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER;
#else
/* Don’t require authentication on Windows as that hasn’t been
diff --git a/gio/gdbuserror.h b/gio/gdbuserror.h
index d35d07b29..6a849348f 100644
--- a/gio/gdbuserror.h
+++ b/gio/gdbuserror.h
@@ -47,15 +47,15 @@ G_BEGIN_DECLS
*/
#define G_DBUS_ERROR g_dbus_error_quark()
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GQuark g_dbus_error_quark (void);
/* Used by applications to check, get and strip the D-Bus error name */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_error_is_remote_error (const GError *error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar *g_dbus_error_get_remote_error (const GError *error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_error_strip_remote_error (GError *error);
/**
@@ -73,37 +73,37 @@ struct _GDBusErrorEntry
const gchar *dbus_error_name;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_error_register_error (GQuark error_domain,
gint error_code,
const gchar *dbus_error_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_error_unregister_error (GQuark error_domain,
gint error_code,
const gchar *dbus_error_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_error_register_error_domain (const gchar *error_domain_quark_name,
volatile gsize *quark_volatile,
const GDBusErrorEntry *entries,
guint num_entries);
/* Only used by object mappings to map back and forth to GError */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GError *g_dbus_error_new_for_dbus_error (const gchar *dbus_error_name,
const gchar *dbus_error_message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_error_set_dbus_error (GError **error,
const gchar *dbus_error_name,
const gchar *dbus_error_message,
const gchar *format,
...) G_GNUC_PRINTF(4, 5);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_error_set_dbus_error_valist (GError **error,
const gchar *dbus_error_name,
const gchar *dbus_error_message,
const gchar *format,
va_list var_args) G_GNUC_PRINTF(4, 0);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar *g_dbus_error_encode_gerror (const GError *error);
G_END_DECLS
diff --git a/gio/gdbusinterface.h b/gio/gdbusinterface.h
index 83e524bab..838a54e07 100644
--- a/gio/gdbusinterface.h
+++ b/gio/gdbusinterface.h
@@ -66,16 +66,16 @@ struct _GDBusInterfaceIface
GDBusObject *(*dup_object) (GDBusInterface *interface_);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_interface_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusInterfaceInfo *g_dbus_interface_get_info (GDBusInterface *interface_);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusObject *g_dbus_interface_get_object (GDBusInterface *interface_);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_interface_set_object (GDBusInterface *interface_,
GDBusObject *object);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GDBusObject *g_dbus_interface_dup_object (GDBusInterface *interface_);
G_END_DECLS
diff --git a/gio/gdbusinterfaceskeleton.c b/gio/gdbusinterfaceskeleton.c
index 3f07d4d0b..1a6aa64a0 100644
--- a/gio/gdbusinterfaceskeleton.c
+++ b/gio/gdbusinterfaceskeleton.c
@@ -336,14 +336,14 @@ g_dbus_interface_skeleton_get_info (GDBusInterfaceSkeleton *interface_)
}
/**
- * g_dbus_interface_skeleton_get_vtable: (skip)
+ * g_dbus_interface_skeleton_get_vtable:
* @interface_: A #GDBusInterfaceSkeleton.
*
* Gets the interface vtable for the D-Bus interface implemented by
* @interface_. The returned function pointers should expect @interface_
* itself to be passed as @user_data.
*
- * Returns: A #GDBusInterfaceVTable (never %NULL).
+ * Returns: (not nullable) (transfer none): the vtable of the D-Bus interface implemented by the skeleton
*
* Since: 2.30
*/
@@ -461,16 +461,18 @@ dbus_interface_interface_init (GDBusInterfaceIface *iface)
typedef struct
{
gint ref_count; /* (atomic) */
- GDBusInterfaceSkeleton *interface;
GDBusInterfaceMethodCallFunc method_call_func;
- GDBusMethodInvocation *invocation;
+ GDBusMethodInvocation *invocation; /* (owned) */
} DispatchData;
static void
dispatch_data_unref (DispatchData *data)
{
if (g_atomic_int_dec_and_test (&data->ref_count))
- g_slice_free (DispatchData, data);
+ {
+ g_clear_object (&data->invocation);
+ g_slice_free (DispatchData, data);
+ }
}
static DispatchData *
@@ -502,16 +504,17 @@ dispatch_in_thread_func (GTask *task,
GCancellable *cancellable)
{
DispatchData *data = task_data;
+ GDBusInterfaceSkeleton *interface = g_task_get_source_object (task);
GDBusInterfaceSkeletonFlags flags;
GDBusObject *object;
gboolean authorized;
- g_mutex_lock (&data->interface->priv->lock);
- flags = data->interface->priv->flags;
- object = data->interface->priv->object;
+ g_mutex_lock (&interface->priv->lock);
+ flags = interface->priv->flags;
+ object = interface->priv->object;
if (object != NULL)
g_object_ref (object);
- g_mutex_unlock (&data->interface->priv->lock);
+ g_mutex_unlock (&interface->priv->lock);
/* first check on the enclosing object (if any), then the interface */
authorized = TRUE;
@@ -519,13 +522,13 @@ dispatch_in_thread_func (GTask *task,
{
g_signal_emit_by_name (object,
"authorize-method",
- data->interface,
+ interface,
data->invocation,
&authorized);
}
if (authorized)
{
- g_signal_emit (data->interface,
+ g_signal_emit (interface,
signals[G_AUTHORIZE_METHOD_SIGNAL],
0,
data->invocation,
@@ -565,6 +568,8 @@ dispatch_in_thread_func (GTask *task,
if (object != NULL)
g_object_unref (object);
+
+ g_task_return_boolean (task, TRUE);
}
static void
@@ -627,9 +632,8 @@ g_dbus_interface_method_dispatch_helper (GDBusInterfaceSkeleton *interface
DispatchData *data;
data = g_slice_new0 (DispatchData);
- data->interface = interface;
data->method_call_func = method_call_func;
- data->invocation = invocation;
+ data->invocation = g_object_ref (invocation);
data->ref_count = 1;
task = g_task_new (interface, NULL, NULL, NULL);
diff --git a/gio/gdbusinterfaceskeleton.h b/gio/gdbusinterfaceskeleton.h
index bc13b74e9..244ee0e64 100644
--- a/gio/gdbusinterfaceskeleton.h
+++ b/gio/gdbusinterfaceskeleton.h
@@ -87,41 +87,41 @@ struct _GDBusInterfaceSkeletonClass
gpointer signal_padding[8];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_interface_skeleton_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusInterfaceSkeletonFlags g_dbus_interface_skeleton_get_flags (GDBusInterfaceSkeleton *interface_);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_interface_skeleton_set_flags (GDBusInterfaceSkeleton *interface_,
GDBusInterfaceSkeletonFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusInterfaceInfo *g_dbus_interface_skeleton_get_info (GDBusInterfaceSkeleton *interface_);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusInterfaceVTable *g_dbus_interface_skeleton_get_vtable (GDBusInterfaceSkeleton *interface_);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant *g_dbus_interface_skeleton_get_properties (GDBusInterfaceSkeleton *interface_);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_interface_skeleton_flush (GDBusInterfaceSkeleton *interface_);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_interface_skeleton_export (GDBusInterfaceSkeleton *interface_,
GDBusConnection *connection,
const gchar *object_path,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_interface_skeleton_unexport (GDBusInterfaceSkeleton *interface_);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_interface_skeleton_unexport_from_connection (GDBusInterfaceSkeleton *interface_,
GDBusConnection *connection);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusConnection *g_dbus_interface_skeleton_get_connection (GDBusInterfaceSkeleton *interface_);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList *g_dbus_interface_skeleton_get_connections (GDBusInterfaceSkeleton *interface_);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_interface_skeleton_has_connection (GDBusInterfaceSkeleton *interface_,
GDBusConnection *connection);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_interface_skeleton_get_object_path (GDBusInterfaceSkeleton *interface_);
G_END_DECLS
diff --git a/gio/gdbusintrospection.c b/gio/gdbusintrospection.c
index a08c1298c..c7be334ce 100644
--- a/gio/gdbusintrospection.c
+++ b/gio/gdbusintrospection.c
@@ -1613,7 +1613,7 @@ parser_end_element (GMarkupParseContext *context,
nodes = parse_data_steal_nodes (data, &num_nodes);
interfaces = parse_data_steal_interfaces (data, &num_interfaces);
- /* destroy the nodes, interfaces for scope we're exiting and and pop the nodes, interfaces from the
+ /* destroy the nodes, interfaces for scope we're exiting and pop the nodes, interfaces from the
* scope we're reentering
*/
parse_data_free_interfaces (data);
@@ -1707,7 +1707,7 @@ parser_end_element (GMarkupParseContext *context,
embedded_annotations = steal_annotations (data);
- /* destroy the annotations for scope we're exiting and and pop the annotations from the scope we're reentering */
+ /* destroy the annotations for scope we're exiting and pop the annotations from the scope we're reentering */
parse_data_free_annotations (data);
data->annotations = (GPtrArray *) data->annotations_stack->data;
data->annotations_stack = g_slist_remove (data->annotations_stack, data->annotations_stack->data);
@@ -1727,7 +1727,7 @@ parser_end_element (GMarkupParseContext *context,
if (!have_popped_annotations)
{
- /* destroy the annotations for scope we're exiting and and pop the annotations from the scope we're reentering */
+ /* destroy the annotations for scope we're exiting and pop the annotations from the scope we're reentering */
parse_data_free_annotations (data);
data->annotations = (GPtrArray *) data->annotations_stack->data;
data->annotations_stack = g_slist_remove (data->annotations_stack, data->annotations_stack->data);
diff --git a/gio/gdbusintrospection.h b/gio/gdbusintrospection.h
index e2fbf5e6e..53f468500 100644
--- a/gio/gdbusintrospection.h
+++ b/gio/gdbusintrospection.h
@@ -181,67 +181,67 @@ struct _GDBusNodeInfo
GDBusAnnotationInfo **annotations;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_annotation_info_lookup (GDBusAnnotationInfo **annotations,
const gchar *name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMethodInfo *g_dbus_interface_info_lookup_method (GDBusInterfaceInfo *info,
const gchar *name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusSignalInfo *g_dbus_interface_info_lookup_signal (GDBusInterfaceInfo *info,
const gchar *name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusPropertyInfo *g_dbus_interface_info_lookup_property (GDBusInterfaceInfo *info,
const gchar *name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_interface_info_cache_build (GDBusInterfaceInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_interface_info_cache_release (GDBusInterfaceInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_interface_info_generate_xml (GDBusInterfaceInfo *info,
guint indent,
GString *string_builder);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusNodeInfo *g_dbus_node_info_new_for_xml (const gchar *xml_data,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusInterfaceInfo *g_dbus_node_info_lookup_interface (GDBusNodeInfo *info,
const gchar *name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_node_info_generate_xml (GDBusNodeInfo *info,
guint indent,
GString *string_builder);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusNodeInfo *g_dbus_node_info_ref (GDBusNodeInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusInterfaceInfo *g_dbus_interface_info_ref (GDBusInterfaceInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMethodInfo *g_dbus_method_info_ref (GDBusMethodInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusSignalInfo *g_dbus_signal_info_ref (GDBusSignalInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusPropertyInfo *g_dbus_property_info_ref (GDBusPropertyInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusArgInfo *g_dbus_arg_info_ref (GDBusArgInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusAnnotationInfo *g_dbus_annotation_info_ref (GDBusAnnotationInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_node_info_unref (GDBusNodeInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_interface_info_unref (GDBusInterfaceInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_method_info_unref (GDBusMethodInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_signal_info_unref (GDBusSignalInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_property_info_unref (GDBusPropertyInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_arg_info_unref (GDBusArgInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_annotation_info_unref (GDBusAnnotationInfo *info);
/**
@@ -307,19 +307,19 @@ void g_dbus_annotation_info_unref (GDBusAnnotationInfo
*/
#define G_TYPE_DBUS_ANNOTATION_INFO (g_dbus_annotation_info_get_type ())
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_node_info_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_interface_info_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_method_info_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_signal_info_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_property_info_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_arg_info_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_annotation_info_get_type (void) G_GNUC_CONST;
G_END_DECLS
diff --git a/gio/gdbusmenumodel.c b/gio/gdbusmenumodel.c
index 87b4c09cb..0a34ed26f 100644
--- a/gio/gdbusmenumodel.c
+++ b/gio/gdbusmenumodel.c
@@ -23,11 +23,9 @@
#include "gdbusmenumodel.h"
+#include "gmenuexporter.h"
#include "gmenumodel.h"
-/* Copied from gmenuexporter.c for the glib-2-74 backport */
-#define G_MENU_EXPORTER_MAX_SECTION_SIZE 1000
-
/* Prelude {{{1 */
/**
diff --git a/gio/gdbusmenumodel.h b/gio/gdbusmenumodel.h
index 5e9a9ce09..73489b5bb 100644
--- a/gio/gdbusmenumodel.h
+++ b/gio/gdbusmenumodel.h
@@ -34,10 +34,10 @@ G_BEGIN_DECLS
typedef struct _GDBusMenuModel GDBusMenuModel;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_menu_model_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMenuModel * g_dbus_menu_model_get (GDBusConnection *connection,
const gchar *bus_name,
const gchar *object_path);
diff --git a/gio/gdbusmessage.c b/gio/gdbusmessage.c
index 7aebdeb90..adddb3154 100644
--- a/gio/gdbusmessage.c
+++ b/gio/gdbusmessage.c
@@ -1094,24 +1094,27 @@ g_dbus_message_set_header (GDBusMessage *message,
guchar *
g_dbus_message_get_header_fields (GDBusMessage *message)
{
- GList *keys;
- guchar *ret;
- guint num_keys;
- GList *l;
- guint n;
+ GPtrArray *keys;
+ GArray *array;
g_return_val_if_fail (G_IS_DBUS_MESSAGE (message), NULL);
- keys = g_hash_table_get_keys (message->headers);
- num_keys = g_list_length (keys);
- ret = g_new (guchar, num_keys + 1);
- for (l = keys, n = 0; l != NULL; l = l->next, n++)
- ret[n] = GPOINTER_TO_UINT (l->data);
- g_assert (n == num_keys);
- ret[n] = G_DBUS_MESSAGE_HEADER_FIELD_INVALID;
- g_list_free (keys);
+ keys = g_hash_table_get_keys_as_ptr_array (message->headers);
+ array = g_array_sized_new (FALSE, FALSE, sizeof (guchar), keys->len + 1);
- return ret;
+ for (guint i = 0; i < keys->len; ++i)
+ {
+ guchar val = GPOINTER_TO_UINT (g_ptr_array_index (keys, i));
+ g_array_append_val (array, val);
+ }
+
+ g_assert (array->len == keys->len);
+ g_clear_pointer (&keys, g_ptr_array_unref);
+
+ guchar invalid_field = G_DBUS_MESSAGE_HEADER_FIELD_INVALID;
+ g_array_append_val (array, invalid_field);
+
+ return (guchar *) g_array_free (array, FALSE);
}
/* ---------------------------------------------------------------------------------------------------- */
@@ -1305,67 +1308,99 @@ validate_headers (GDBusMessage *message,
break;
case G_DBUS_MESSAGE_TYPE_METHOD_CALL:
- if (g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_PATH) == NULL ||
- g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_MEMBER) == NULL)
- {
- g_set_error_literal (error,
- G_IO_ERROR,
- G_IO_ERROR_INVALID_ARGUMENT,
- _("METHOD_CALL message: PATH or MEMBER header field is missing"));
- goto out;
- }
+ {
+ GVariant *path_variant = g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_PATH);
+ GVariant *member_variant = g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_MEMBER);
+
+ if (path_variant == NULL ||
+ !g_variant_is_of_type (path_variant, G_VARIANT_TYPE_OBJECT_PATH) ||
+ member_variant == NULL ||
+ !g_variant_is_of_type (member_variant, G_VARIANT_TYPE_STRING) ||
+ !g_dbus_is_member_name (g_variant_get_string (member_variant, NULL)))
+ {
+ g_set_error_literal (error,
+ G_IO_ERROR,
+ G_IO_ERROR_INVALID_ARGUMENT,
+ _("METHOD_CALL message: PATH or MEMBER header field is missing or invalid"));
+ goto out;
+ }
+ }
break;
case G_DBUS_MESSAGE_TYPE_METHOD_RETURN:
- if (g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL) == NULL)
- {
- g_set_error_literal (error,
- G_IO_ERROR,
- G_IO_ERROR_INVALID_ARGUMENT,
- _("METHOD_RETURN message: REPLY_SERIAL header field is missing"));
- goto out;
- }
+ {
+ GVariant *reply_serial_variant = g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL);
+
+ if (reply_serial_variant == NULL ||
+ !g_variant_is_of_type (reply_serial_variant, G_VARIANT_TYPE_UINT32))
+ {
+ g_set_error_literal (error,
+ G_IO_ERROR,
+ G_IO_ERROR_INVALID_ARGUMENT,
+ _("METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"));
+ goto out;
+ }
+ }
break;
case G_DBUS_MESSAGE_TYPE_ERROR:
- if (g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME) == NULL ||
- g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL) == NULL)
- {
- g_set_error_literal (error,
- G_IO_ERROR,
- G_IO_ERROR_INVALID_ARGUMENT,
- _("ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"));
- goto out;
- }
+ {
+ GVariant *error_name_variant = g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME);
+ GVariant *reply_serial_variant = g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL);
+
+ if (error_name_variant == NULL ||
+ !g_variant_is_of_type (error_name_variant, G_VARIANT_TYPE_STRING) ||
+ !g_dbus_is_error_name (g_variant_get_string (error_name_variant, NULL)) ||
+ reply_serial_variant == NULL ||
+ !g_variant_is_of_type (reply_serial_variant, G_VARIANT_TYPE_UINT32))
+ {
+ g_set_error_literal (error,
+ G_IO_ERROR,
+ G_IO_ERROR_INVALID_ARGUMENT,
+ _("ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"));
+ goto out;
+ }
+ }
break;
case G_DBUS_MESSAGE_TYPE_SIGNAL:
- if (g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_PATH) == NULL ||
- g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE) == NULL ||
- g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_MEMBER) == NULL)
- {
- g_set_error_literal (error,
- G_IO_ERROR,
- G_IO_ERROR_INVALID_ARGUMENT,
- _("SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"));
- goto out;
- }
- if (g_strcmp0 (g_dbus_message_get_path (message), "/org/freedesktop/DBus/Local") == 0)
- {
- g_set_error_literal (error,
- G_IO_ERROR,
- G_IO_ERROR_INVALID_ARGUMENT,
- _("SIGNAL message: The PATH header field is using the reserved value /org/freedesktop/DBus/Local"));
- goto out;
- }
- if (g_strcmp0 (g_dbus_message_get_interface (message), "org.freedesktop.DBus.Local") == 0)
- {
- g_set_error_literal (error,
- G_IO_ERROR,
- G_IO_ERROR_INVALID_ARGUMENT,
- _("SIGNAL message: The INTERFACE header field is using the reserved value org.freedesktop.DBus.Local"));
- goto out;
- }
+ {
+ GVariant *path_variant = g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_PATH);
+ GVariant *interface_variant = g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE);
+ GVariant *member_variant = g_dbus_message_get_header (message, G_DBUS_MESSAGE_HEADER_FIELD_MEMBER);
+
+ if (path_variant == NULL ||
+ !g_variant_is_of_type (path_variant, G_VARIANT_TYPE_OBJECT_PATH) ||
+ interface_variant == NULL ||
+ !g_variant_is_of_type (interface_variant, G_VARIANT_TYPE_STRING) ||
+ !g_dbus_is_interface_name (g_variant_get_string (interface_variant, NULL)) ||
+ member_variant == NULL ||
+ !g_variant_is_of_type (member_variant, G_VARIANT_TYPE_STRING) ||
+ !g_dbus_is_member_name (g_variant_get_string (member_variant, NULL)))
+ {
+ g_set_error_literal (error,
+ G_IO_ERROR,
+ G_IO_ERROR_INVALID_ARGUMENT,
+ _("SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"));
+ goto out;
+ }
+ if (g_strcmp0 (g_dbus_message_get_path (message), "/org/freedesktop/DBus/Local") == 0)
+ {
+ g_set_error_literal (error,
+ G_IO_ERROR,
+ G_IO_ERROR_INVALID_ARGUMENT,
+ _("SIGNAL message: The PATH header field is using the reserved value /org/freedesktop/DBus/Local"));
+ goto out;
+ }
+ if (g_strcmp0 (g_dbus_message_get_interface (message), "org.freedesktop.DBus.Local") == 0)
+ {
+ g_set_error_literal (error,
+ G_IO_ERROR,
+ G_IO_ERROR_INVALID_ARGUMENT,
+ _("SIGNAL message: The INTERFACE header field is using the reserved value org.freedesktop.DBus.Local"));
+ goto out;
+ }
+ }
break;
default:
diff --git a/gio/gdbusmessage.h b/gio/gdbusmessage.h
index 84e3c5fff..6e4bb9e8e 100644
--- a/gio/gdbusmessage.h
+++ b/gio/gdbusmessage.h
@@ -35,167 +35,167 @@ G_BEGIN_DECLS
#define G_DBUS_MESSAGE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_MESSAGE, GDBusMessage))
#define G_IS_DBUS_MESSAGE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_MESSAGE))
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_message_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessage *g_dbus_message_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessage *g_dbus_message_new_signal (const gchar *path,
const gchar *interface_,
const gchar *signal);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessage *g_dbus_message_new_method_call (const gchar *name,
const gchar *path,
const gchar *interface_,
const gchar *method);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessage *g_dbus_message_new_method_reply (GDBusMessage *method_call_message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessage *g_dbus_message_new_method_error (GDBusMessage *method_call_message,
const gchar *error_name,
const gchar *error_message_format,
...) G_GNUC_PRINTF(3, 4);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessage *g_dbus_message_new_method_error_valist (GDBusMessage *method_call_message,
const gchar *error_name,
const gchar *error_message_format,
va_list var_args);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessage *g_dbus_message_new_method_error_literal (GDBusMessage *method_call_message,
const gchar *error_name,
const gchar *error_message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar *g_dbus_message_print (GDBusMessage *message,
guint indent);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_message_get_locked (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_lock (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessage *g_dbus_message_copy (GDBusMessage *message,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessageByteOrder g_dbus_message_get_byte_order (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_byte_order (GDBusMessage *message,
GDBusMessageByteOrder byte_order);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessageType g_dbus_message_get_message_type (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_message_type (GDBusMessage *message,
GDBusMessageType type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessageFlags g_dbus_message_get_flags (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_flags (GDBusMessage *message,
GDBusMessageFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint32 g_dbus_message_get_serial (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_serial (GDBusMessage *message,
guint32 serial);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant *g_dbus_message_get_header (GDBusMessage *message,
GDBusMessageHeaderField header_field);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_header (GDBusMessage *message,
GDBusMessageHeaderField header_field,
GVariant *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guchar *g_dbus_message_get_header_fields (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant *g_dbus_message_get_body (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_body (GDBusMessage *message,
GVariant *body);
#ifdef G_OS_UNIX
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GUnixFDList *g_dbus_message_get_unix_fd_list (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_unix_fd_list (GDBusMessage *message,
GUnixFDList *fd_list);
#endif /* G_OS_UNIX */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint32 g_dbus_message_get_reply_serial (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_reply_serial (GDBusMessage *message,
guint32 value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_message_get_interface (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_interface (GDBusMessage *message,
const gchar *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_message_get_member (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_member (GDBusMessage *message,
const gchar *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_message_get_path (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_path (GDBusMessage *message,
const gchar *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_message_get_sender (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_sender (GDBusMessage *message,
const gchar *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_message_get_destination (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_destination (GDBusMessage *message,
const gchar *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_message_get_error_name (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_error_name (GDBusMessage *message,
const gchar *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_message_get_signature (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_signature (GDBusMessage *message,
const gchar *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint32 g_dbus_message_get_num_unix_fds (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_message_set_num_unix_fds (GDBusMessage *message,
guint32 value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_message_get_arg0 (GDBusMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessage *g_dbus_message_new_from_blob (guchar *blob,
gsize blob_len,
GDBusCapabilityFlags capabilities,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_dbus_message_bytes_needed (guchar *blob,
gsize blob_len,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guchar *g_dbus_message_to_blob (GDBusMessage *message,
gsize *out_size,
GDBusCapabilityFlags capabilities,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_message_to_gerror (GDBusMessage *message,
GError **error);
diff --git a/gio/gdbusmethodinvocation.h b/gio/gdbusmethodinvocation.h
index c5751cc5c..6266f38a3 100644
--- a/gio/gdbusmethodinvocation.h
+++ b/gio/gdbusmethodinvocation.h
@@ -53,7 +53,7 @@ G_BEGIN_DECLS
*
* Since: 2.68
*/
-#define G_DBUS_METHOD_INVOCATION_HANDLED TRUE GLIB_AVAILABLE_MACRO_IN_2_68
+#define G_DBUS_METHOD_INVOCATION_HANDLED TRUE GIO_AVAILABLE_MACRO_IN_2_68
/**
* G_DBUS_METHOD_INVOCATION_UNHANDLED:
@@ -68,65 +68,65 @@ G_BEGIN_DECLS
*
* Since: 2.68
*/
-#define G_DBUS_METHOD_INVOCATION_UNHANDLED FALSE GLIB_AVAILABLE_MACRO_IN_2_68
+#define G_DBUS_METHOD_INVOCATION_UNHANDLED FALSE GIO_AVAILABLE_MACRO_IN_2_68
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_method_invocation_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_method_invocation_get_sender (GDBusMethodInvocation *invocation);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_method_invocation_get_object_path (GDBusMethodInvocation *invocation);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_method_invocation_get_interface_name (GDBusMethodInvocation *invocation);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_method_invocation_get_method_name (GDBusMethodInvocation *invocation);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const GDBusMethodInfo *g_dbus_method_invocation_get_method_info (GDBusMethodInvocation *invocation);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
const GDBusPropertyInfo *g_dbus_method_invocation_get_property_info (GDBusMethodInvocation *invocation);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusConnection *g_dbus_method_invocation_get_connection (GDBusMethodInvocation *invocation);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusMessage *g_dbus_method_invocation_get_message (GDBusMethodInvocation *invocation);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant *g_dbus_method_invocation_get_parameters (GDBusMethodInvocation *invocation);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gpointer g_dbus_method_invocation_get_user_data (GDBusMethodInvocation *invocation);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_method_invocation_return_value (GDBusMethodInvocation *invocation,
GVariant *parameters);
#ifdef G_OS_UNIX
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_method_invocation_return_value_with_unix_fd_list (GDBusMethodInvocation *invocation,
GVariant *parameters,
GUnixFDList *fd_list);
#endif /* G_OS_UNIX */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_method_invocation_return_error (GDBusMethodInvocation *invocation,
GQuark domain,
gint code,
const gchar *format,
...) G_GNUC_PRINTF(4, 5);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_method_invocation_return_error_valist (GDBusMethodInvocation *invocation,
GQuark domain,
gint code,
const gchar *format,
va_list var_args)
G_GNUC_PRINTF(4, 0);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_method_invocation_return_error_literal (GDBusMethodInvocation *invocation,
GQuark domain,
gint code,
const gchar *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_method_invocation_return_gerror (GDBusMethodInvocation *invocation,
const GError *error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_method_invocation_take_error (GDBusMethodInvocation *invocation,
GError *error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_method_invocation_return_dbus_error (GDBusMethodInvocation *invocation,
const gchar *error_name,
const gchar *error_message);
diff --git a/gio/gdbusnameowning.h b/gio/gdbusnameowning.h
index fbeb961c3..2afd3ee73 100644
--- a/gio/gdbusnameowning.h
+++ b/gio/gdbusnameowning.h
@@ -74,7 +74,7 @@ typedef void (*GBusNameLostCallback) (GDBusConnection *connection,
const gchar *name,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_bus_own_name (GBusType bus_type,
const gchar *name,
GBusNameOwnerFlags flags,
@@ -84,7 +84,7 @@ guint g_bus_own_name (GBusType bus_type,
gpointer user_data,
GDestroyNotify user_data_free_func);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_bus_own_name_on_connection (GDBusConnection *connection,
const gchar *name,
GBusNameOwnerFlags flags,
@@ -93,7 +93,7 @@ guint g_bus_own_name_on_connection (GDBusConnection *connection,
gpointer user_data,
GDestroyNotify user_data_free_func);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_bus_own_name_with_closures (GBusType bus_type,
const gchar *name,
GBusNameOwnerFlags flags,
@@ -101,7 +101,7 @@ guint g_bus_own_name_with_closures (GBusType bus_type,
GClosure *name_acquired_closure,
GClosure *name_lost_closure);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_bus_own_name_on_connection_with_closures (
GDBusConnection *connection,
const gchar *name,
@@ -109,7 +109,7 @@ guint g_bus_own_name_on_connection_with_closures (
GClosure *name_acquired_closure,
GClosure *name_lost_closure);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_bus_unown_name (guint owner_id);
G_END_DECLS
diff --git a/gio/gdbusnamewatching.h b/gio/gdbusnamewatching.h
index a344e2c09..df836deb5 100644
--- a/gio/gdbusnamewatching.h
+++ b/gio/gdbusnamewatching.h
@@ -67,7 +67,7 @@ typedef void (*GBusNameVanishedCallback) (GDBusConnection *connection,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_bus_watch_name (GBusType bus_type,
const gchar *name,
GBusNameWatcherFlags flags,
@@ -75,7 +75,7 @@ guint g_bus_watch_name (GBusType bus_type,
GBusNameVanishedCallback name_vanished_handler,
gpointer user_data,
GDestroyNotify user_data_free_func);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_bus_watch_name_on_connection (GDBusConnection *connection,
const gchar *name,
GBusNameWatcherFlags flags,
@@ -83,20 +83,20 @@ guint g_bus_watch_name_on_connection (GDBusConnection *connection,
GBusNameVanishedCallback name_vanished_handler,
gpointer user_data,
GDestroyNotify user_data_free_func);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_bus_watch_name_with_closures (GBusType bus_type,
const gchar *name,
GBusNameWatcherFlags flags,
GClosure *name_appeared_closure,
GClosure *name_vanished_closure);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_bus_watch_name_on_connection_with_closures (
GDBusConnection *connection,
const gchar *name,
GBusNameWatcherFlags flags,
GClosure *name_appeared_closure,
GClosure *name_vanished_closure);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_bus_unwatch_name (guint watcher_id);
G_END_DECLS
diff --git a/gio/gdbusobject.h b/gio/gdbusobject.h
index 050534e57..b8186afc4 100644
--- a/gio/gdbusobject.h
+++ b/gio/gdbusobject.h
@@ -65,13 +65,13 @@ struct _GDBusObjectIface
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_object_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_object_get_object_path (GDBusObject *object);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList *g_dbus_object_get_interfaces (GDBusObject *object);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusInterface *g_dbus_object_get_interface (GDBusObject *object,
const gchar *interface_name);
diff --git a/gio/gdbusobjectmanager.h b/gio/gdbusobjectmanager.h
index 908d96cd1..7bfa2ae02 100644
--- a/gio/gdbusobjectmanager.h
+++ b/gio/gdbusobjectmanager.h
@@ -77,16 +77,16 @@ struct _GDBusObjectManagerIface
GDBusInterface *interface_);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_object_manager_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_object_manager_get_object_path (GDBusObjectManager *manager);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList *g_dbus_object_manager_get_objects (GDBusObjectManager *manager);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusObject *g_dbus_object_manager_get_object (GDBusObjectManager *manager,
const gchar *object_path);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusInterface *g_dbus_object_manager_get_interface (GDBusObjectManager *manager,
const gchar *object_path,
const gchar *interface_name);
diff --git a/gio/gdbusobjectmanagerclient.c b/gio/gdbusobjectmanagerclient.c
index fa5e73041..b6b3b212c 100644
--- a/gio/gdbusobjectmanagerclient.c
+++ b/gio/gdbusobjectmanagerclient.c
@@ -1355,13 +1355,11 @@ on_notify_g_name_owner (GObject *object,
if (g_strcmp0 (old_name_owner, new_name_owner) != 0)
{
- GList *l;
- GList *proxies;
+ GPtrArray *proxies;
/* remote manager changed; nuke all local proxies */
- proxies = g_hash_table_get_values (manager->priv->map_object_path_to_object_proxy);
- g_list_foreach (proxies, (GFunc) g_object_ref, NULL);
- g_hash_table_remove_all (manager->priv->map_object_path_to_object_proxy);
+ proxies = g_hash_table_steal_all_values (
+ manager->priv->map_object_path_to_object_proxy);
g_mutex_unlock (&manager->priv->lock);
@@ -1371,12 +1369,13 @@ on_notify_g_name_owner (GObject *object,
*/
g_object_notify (G_OBJECT (manager), "name-owner");
- for (l = proxies; l != NULL; l = l->next)
+ for (guint i = 0; i < proxies->len; ++i)
{
- GDBusObjectProxy *object_proxy = G_DBUS_OBJECT_PROXY (l->data);
+ GDBusObjectProxy *object_proxy =
+ G_DBUS_OBJECT_PROXY (g_ptr_array_index (proxies, i));
g_signal_emit_by_name (manager, "object-removed", object_proxy);
}
- g_list_free_full (proxies, g_object_unref);
+ g_clear_pointer (&proxies, g_ptr_array_unref);
/* nuke local filter */
maybe_unsubscribe_signals (manager);
diff --git a/gio/gdbusobjectmanagerclient.h b/gio/gdbusobjectmanagerclient.h
index c00e68252..2ebeedc02 100644
--- a/gio/gdbusobjectmanagerclient.h
+++ b/gio/gdbusobjectmanagerclient.h
@@ -84,9 +84,9 @@ struct _GDBusObjectManagerClientClass
gpointer padding[8];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_object_manager_client_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_object_manager_client_new (GDBusConnection *connection,
GDBusObjectManagerClientFlags flags,
const gchar *name,
@@ -97,10 +97,10 @@ void g_dbus_object_manager_client_new (G
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusObjectManager *g_dbus_object_manager_client_new_finish (GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusObjectManager *g_dbus_object_manager_client_new_sync (GDBusConnection *connection,
GDBusObjectManagerClientFlags flags,
const gchar *name,
@@ -110,7 +110,7 @@ GDBusObjectManager *g_dbus_object_manager_client_new_sync (G
GDestroyNotify get_proxy_type_destroy_notify,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_object_manager_client_new_for_bus (GBusType bus_type,
GDBusObjectManagerClientFlags flags,
const gchar *name,
@@ -121,10 +121,10 @@ void g_dbus_object_manager_client_new_for_bus (G
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusObjectManager *g_dbus_object_manager_client_new_for_bus_finish (GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusObjectManager *g_dbus_object_manager_client_new_for_bus_sync (GBusType bus_type,
GDBusObjectManagerClientFlags flags,
const gchar *name,
@@ -134,13 +134,13 @@ GDBusObjectManager *g_dbus_object_manager_client_new_for_bus_sync (G
GDestroyNotify get_proxy_type_destroy_notify,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusConnection *g_dbus_object_manager_client_get_connection (GDBusObjectManagerClient *manager);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusObjectManagerClientFlags g_dbus_object_manager_client_get_flags (GDBusObjectManagerClient *manager);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_object_manager_client_get_name (GDBusObjectManagerClient *manager);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar *g_dbus_object_manager_client_get_name_owner (GDBusObjectManagerClient *manager);
G_END_DECLS
diff --git a/gio/gdbusobjectmanagerserver.h b/gio/gdbusobjectmanagerserver.h
index b81823dec..92543dd3a 100644
--- a/gio/gdbusobjectmanagerserver.h
+++ b/gio/gdbusobjectmanagerserver.h
@@ -68,25 +68,25 @@ struct _GDBusObjectManagerServerClass
gpointer padding[8];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_object_manager_server_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusObjectManagerServer *g_dbus_object_manager_server_new (const gchar *object_path);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusConnection *g_dbus_object_manager_server_get_connection (GDBusObjectManagerServer *manager);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_object_manager_server_set_connection (GDBusObjectManagerServer *manager,
GDBusConnection *connection);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_object_manager_server_export (GDBusObjectManagerServer *manager,
GDBusObjectSkeleton *object);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_object_manager_server_export_uniquely (GDBusObjectManagerServer *manager,
GDBusObjectSkeleton *object);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_object_manager_server_is_exported (GDBusObjectManagerServer *manager,
GDBusObjectSkeleton *object);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_object_manager_server_unexport (GDBusObjectManagerServer *manager,
const gchar *object_path);
diff --git a/gio/gdbusobjectproxy.h b/gio/gdbusobjectproxy.h
index d7a450d7e..ea5af0f09 100644
--- a/gio/gdbusobjectproxy.h
+++ b/gio/gdbusobjectproxy.h
@@ -68,12 +68,12 @@ struct _GDBusObjectProxyClass
gpointer padding[8];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_object_proxy_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusObjectProxy *g_dbus_object_proxy_new (GDBusConnection *connection,
const gchar *object_path);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusConnection *g_dbus_object_proxy_get_connection (GDBusObjectProxy *proxy);
G_END_DECLS
diff --git a/gio/gdbusobjectskeleton.c b/gio/gdbusobjectskeleton.c
index ec6a2f2bf..0b857ba7d 100644
--- a/gio/gdbusobjectskeleton.c
+++ b/gio/gdbusobjectskeleton.c
@@ -473,17 +473,21 @@ g_dbus_object_skeleton_get_interfaces (GDBusObject *_object)
void
g_dbus_object_skeleton_flush (GDBusObjectSkeleton *object)
{
- GList *to_flush, *l;
+ GPtrArray *to_flush;
g_mutex_lock (&object->priv->lock);
- to_flush = g_hash_table_get_values (object->priv->map_name_to_iface);
- g_list_foreach (to_flush, (GFunc) g_object_ref, NULL);
+ to_flush = g_hash_table_get_values_as_ptr_array (object->priv->map_name_to_iface);
+ g_ptr_array_foreach (to_flush, (GFunc) g_object_ref, NULL);
+ g_ptr_array_set_free_func (to_flush, g_object_unref);
g_mutex_unlock (&object->priv->lock);
- for (l = to_flush; l != NULL; l = l->next)
- g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (l->data));
+ for (guint i = 0; i < to_flush->len; ++i)
+ {
+ g_dbus_interface_skeleton_flush (
+ G_DBUS_INTERFACE_SKELETON (g_ptr_array_index (to_flush, i)));
+ }
- g_list_free_full (to_flush, g_object_unref);
+ g_clear_pointer (&to_flush, g_ptr_array_unref);
}
static void
diff --git a/gio/gdbusobjectskeleton.h b/gio/gdbusobjectskeleton.h
index 417dd6e54..b15a2884f 100644
--- a/gio/gdbusobjectskeleton.h
+++ b/gio/gdbusobjectskeleton.h
@@ -74,22 +74,22 @@ struct _GDBusObjectSkeletonClass
gpointer padding[8];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_object_skeleton_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusObjectSkeleton *g_dbus_object_skeleton_new (const gchar *object_path);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_object_skeleton_flush (GDBusObjectSkeleton *object);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_object_skeleton_add_interface (GDBusObjectSkeleton *object,
GDBusInterfaceSkeleton *interface_);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_object_skeleton_remove_interface (GDBusObjectSkeleton *object,
GDBusInterfaceSkeleton *interface_);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_object_skeleton_remove_interface_by_name (GDBusObjectSkeleton *object,
const gchar *interface_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_object_skeleton_set_object_path (GDBusObjectSkeleton *object,
const gchar *object_path);
diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c
index 762afcee4..2c9238c63 100644
--- a/gio/gdbusprivate.c
+++ b/gio/gdbusprivate.c
@@ -889,21 +889,25 @@ _g_dbus_worker_do_initial_read (gpointer data)
struct _MessageToWriteData
{
GDBusWorker *worker;
- GDBusMessage *message;
+ GDBusMessage *message; /* (owned) */
gchar *blob;
gsize blob_size;
gsize total_written;
- GTask *task;
+ GTask *task; /* (owned) and (nullable) before writing starts and after g_task_return_*() is called */
};
static void
message_to_write_data_free (MessageToWriteData *data)
{
_g_dbus_worker_unref (data->worker);
- if (data->message)
- g_object_unref (data->message);
+ g_clear_object (&data->message);
g_free (data->blob);
+
+ /* The task must either not have been created, or have been created, returned
+ * and finalised by now. */
+ g_assert (data->task == NULL);
+
g_slice_free (MessageToWriteData, data);
}
@@ -915,21 +919,22 @@ static void write_message_continue_writing (MessageToWriteData *data);
*
* write-lock is not held on entry
* output_pending is PENDING_WRITE on entry
+ * @user_data is (transfer full)
*/
static void
write_message_async_cb (GObject *source_object,
GAsyncResult *res,
gpointer user_data)
{
- MessageToWriteData *data = user_data;
- GTask *task;
+ MessageToWriteData *data = g_steal_pointer (&user_data);
gssize bytes_written;
GError *error;
- /* Note: we can't access data->task after calling g_task_return_* () because the
- * callback can free @data and we're not completing in idle. So use a copy of the pointer.
- */
- task = data->task;
+ /* The ownership of @data is a bit odd in this function: it’s (transfer full)
+ * when the function is called, but the code paths which call g_task_return_*()
+ * on @data->task will indirectly cause it to be freed, because @data is
+ * always guaranteed to be the user_data in the #GTask. So that’s why it looks
+ * like @data is not always freed on every code path in this function. */
error = NULL;
bytes_written = g_output_stream_write_finish (G_OUTPUT_STREAM (source_object),
@@ -937,8 +942,9 @@ write_message_async_cb (GObject *source_object,
&error);
if (bytes_written == -1)
{
+ GTask *task = g_steal_pointer (&data->task);
g_task_return_error (task, error);
- g_object_unref (task);
+ g_clear_object (&task);
goto out;
}
g_assert (bytes_written > 0); /* zero is never returned */
@@ -949,12 +955,13 @@ write_message_async_cb (GObject *source_object,
g_assert (data->total_written <= data->blob_size);
if (data->total_written == data->blob_size)
{
+ GTask *task = g_steal_pointer (&data->task);
g_task_return_boolean (task, TRUE);
- g_object_unref (task);
+ g_clear_object (&task);
goto out;
}
- write_message_continue_writing (data);
+ write_message_continue_writing (g_steal_pointer (&data));
out:
;
@@ -971,9 +978,9 @@ on_socket_ready (GSocket *socket,
GIOCondition condition,
gpointer user_data)
{
- MessageToWriteData *data = user_data;
- write_message_continue_writing (data);
- return FALSE; /* remove source */
+ MessageToWriteData *data = g_steal_pointer (&user_data);
+ write_message_continue_writing (g_steal_pointer (&data));
+ return G_SOURCE_REMOVE;
}
#endif
@@ -981,22 +988,21 @@ on_socket_ready (GSocket *socket,
*
* write-lock is not held on entry
* output_pending is PENDING_WRITE on entry
+ * @data is (transfer full)
*/
static void
write_message_continue_writing (MessageToWriteData *data)
{
GOutputStream *ostream;
#ifdef G_OS_UNIX
- GTask *task;
GUnixFDList *fd_list;
#endif
-#ifdef G_OS_UNIX
- /* Note: we can't access data->task after calling g_task_return_* () because the
- * callback can free @data and we're not completing in idle. So use a copy of the pointer.
- */
- task = data->task;
-#endif
+ /* The ownership of @data is a bit odd in this function: it’s (transfer full)
+ * when the function is called, but the code paths which call g_task_return_*()
+ * on @data->task will indirectly cause it to be freed, because @data is
+ * always guaranteed to be the user_data in the #GTask. So that’s why it looks
+ * like @data is not always freed on every code path in this function. */
ostream = g_io_stream_get_output_stream (data->worker->stream);
#ifdef G_OS_UNIX
@@ -1025,11 +1031,12 @@ write_message_continue_writing (MessageToWriteData *data)
{
if (!(data->worker->capabilities & G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING))
{
+ GTask *task = g_steal_pointer (&data->task);
g_task_return_new_error (task,
G_IO_ERROR,
G_IO_ERROR_FAILED,
"Tried sending a file descriptor but remote peer does not support this capability");
- g_object_unref (task);
+ g_clear_object (&task);
goto out;
}
control_message = g_unix_fd_message_new_with_fd_list (fd_list);
@@ -1059,16 +1066,20 @@ write_message_continue_writing (MessageToWriteData *data)
data->worker->cancellable);
g_source_set_callback (source,
(GSourceFunc) on_socket_ready,
- data,
+ g_steal_pointer (&data),
NULL); /* GDestroyNotify */
g_source_attach (source, g_main_context_get_thread_default ());
g_source_unref (source);
g_error_free (error);
goto out;
}
- g_task_return_error (task, error);
- g_object_unref (task);
- goto out;
+ else
+ {
+ GTask *task = g_steal_pointer (&data->task);
+ g_task_return_error (task, error);
+ g_clear_object (&task);
+ goto out;
+ }
}
g_assert (bytes_written > 0); /* zero is never returned */
@@ -1078,12 +1089,13 @@ write_message_continue_writing (MessageToWriteData *data)
g_assert (data->total_written <= data->blob_size);
if (data->total_written == data->blob_size)
{
+ GTask *task = g_steal_pointer (&data->task);
g_task_return_boolean (task, TRUE);
- g_object_unref (task);
+ g_clear_object (&task);
goto out;
}
- write_message_continue_writing (data);
+ write_message_continue_writing (g_steal_pointer (&data));
}
#endif
else
@@ -1094,12 +1106,13 @@ write_message_continue_writing (MessageToWriteData *data)
/* We were trying to write byte 0 of the message, which needs
* the fd list to be attached to it, but this connection doesn't
* support doing that. */
+ GTask *task = g_steal_pointer (&data->task);
g_task_return_new_error (task,
G_IO_ERROR,
G_IO_ERROR_FAILED,
"Tried sending a file descriptor on unsupported stream of type %s",
g_type_name (G_TYPE_FROM_INSTANCE (ostream)));
- g_object_unref (task);
+ g_clear_object (&task);
goto out;
}
#endif
@@ -1110,7 +1123,7 @@ write_message_continue_writing (MessageToWriteData *data)
G_PRIORITY_DEFAULT,
data->worker->cancellable,
write_message_async_cb,
- data);
+ data); /* steal @data */
}
#ifdef G_OS_UNIX
out:
@@ -1133,7 +1146,7 @@ write_message_async (GDBusWorker *worker,
g_task_set_source_tag (data->task, write_message_async);
g_task_set_name (data->task, "[gio] D-Bus write message");
data->total_written = 0;
- write_message_continue_writing (data);
+ write_message_continue_writing (g_steal_pointer (&data));
}
/* called in private thread shared by all GDBusConnection instances (with write-lock held) */
@@ -1322,6 +1335,7 @@ prepare_flush_unlocked (GDBusWorker *worker)
*
* write-lock is not held on entry
* output_pending is PENDING_WRITE on entry
+ * @user_data is (transfer full)
*/
static void
write_message_cb (GObject *source_object,
@@ -1540,7 +1554,7 @@ continue_writing (GDBusWorker *worker)
write_message_async (worker,
data,
write_message_cb,
- data);
+ data); /* takes ownership of @data as user_data */
}
}
diff --git a/gio/gdbusprivate.h b/gio/gdbusprivate.h
index 028129e33..e7a5bfa4f 100644
--- a/gio/gdbusprivate.h
+++ b/gio/gdbusprivate.h
@@ -23,10 +23,6 @@
#ifndef __G_DBUS_PRIVATE_H__
#define __G_DBUS_PRIVATE_H__
-#if !defined (GIO_COMPILATION)
-#error "gdbusprivate.h is a private header file."
-#endif
-
#include <gio/giotypes.h>
G_BEGIN_DECLS
@@ -119,7 +115,7 @@ gchar *_g_dbus_win32_get_user_sid (void);
* Initially this function was introduces for usage with rundll,
* so the signature is kept rundll-compatible, though parameters aren't used.
*/
-_GLIB_EXTERN void __stdcall
+_GIO_EXTERN void __stdcall
g_win32_run_session_bus (void* hwnd, void* hinst, const char* cmdline, int cmdshow);
gchar *_g_dbus_win32_get_session_address_dbus_launch (GError **error);
#endif
diff --git a/gio/gdbusproxy.c b/gio/gdbusproxy.c
index 292c7b5e1..afc6fe94e 100644
--- a/gio/gdbusproxy.c
+++ b/gio/gdbusproxy.c
@@ -631,13 +631,6 @@ g_dbus_proxy_init (GDBusProxy *proxy)
/* ---------------------------------------------------------------------------------------------------- */
-static gint
-property_name_sort_func (const gchar **a,
- const gchar **b)
-{
- return g_strcmp0 (*a, *b);
-}
-
/**
* g_dbus_proxy_get_cached_property_names:
* @proxy: A #GDBusProxy.
@@ -672,7 +665,7 @@ g_dbus_proxy_get_cached_property_names (GDBusProxy *proxy)
g_hash_table_iter_init (&iter, proxy->priv->properties);
while (g_hash_table_iter_next (&iter, (gpointer) &key, NULL))
g_ptr_array_add (p, g_strdup (key));
- g_ptr_array_sort (p, (GCompareFunc) property_name_sort_func);
+ g_ptr_array_sort_values (p, (GCompareFunc) g_strcmp0);
g_ptr_array_add (p, NULL);
names = (gchar **) g_ptr_array_free (p, FALSE);
diff --git a/gio/gdbusproxy.h b/gio/gdbusproxy.h
index aac6663ec..7483156f8 100644
--- a/gio/gdbusproxy.h
+++ b/gio/gdbusproxy.h
@@ -86,9 +86,9 @@ struct _GDBusProxyClass
gpointer padding[32];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_proxy_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_proxy_new (GDBusConnection *connection,
GDBusProxyFlags flags,
GDBusInterfaceInfo *info,
@@ -98,10 +98,10 @@ void g_dbus_proxy_new (GDBusConnection *co
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusProxy *g_dbus_proxy_new_finish (GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusProxy *g_dbus_proxy_new_sync (GDBusConnection *connection,
GDBusProxyFlags flags,
GDBusInterfaceInfo *info,
@@ -110,7 +110,7 @@ GDBusProxy *g_dbus_proxy_new_sync (GDBusConnection *co
const gchar *interface_name,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_proxy_new_for_bus (GBusType bus_type,
GDBusProxyFlags flags,
GDBusInterfaceInfo *info,
@@ -120,10 +120,10 @@ void g_dbus_proxy_new_for_bus (GBusType bu
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusProxy *g_dbus_proxy_new_for_bus_finish (GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusProxy *g_dbus_proxy_new_for_bus_sync (GBusType bus_type,
GDBusProxyFlags flags,
GDBusInterfaceInfo *info,
@@ -132,38 +132,38 @@ GDBusProxy *g_dbus_proxy_new_for_bus_sync (GBusType bu
const gchar *interface_name,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusConnection *g_dbus_proxy_get_connection (GDBusProxy *proxy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusProxyFlags g_dbus_proxy_get_flags (GDBusProxy *proxy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_proxy_get_name (GDBusProxy *proxy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar *g_dbus_proxy_get_name_owner (GDBusProxy *proxy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_proxy_get_object_path (GDBusProxy *proxy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_proxy_get_interface_name (GDBusProxy *proxy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint g_dbus_proxy_get_default_timeout (GDBusProxy *proxy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_proxy_set_default_timeout (GDBusProxy *proxy,
gint timeout_msec);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusInterfaceInfo *g_dbus_proxy_get_interface_info (GDBusProxy *proxy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_proxy_set_interface_info (GDBusProxy *proxy,
GDBusInterfaceInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant *g_dbus_proxy_get_cached_property (GDBusProxy *proxy,
const gchar *property_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_proxy_set_cached_property (GDBusProxy *proxy,
const gchar *property_name,
GVariant *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar **g_dbus_proxy_get_cached_property_names (GDBusProxy *proxy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_proxy_call (GDBusProxy *proxy,
const gchar *method_name,
GVariant *parameters,
@@ -172,11 +172,11 @@ void g_dbus_proxy_call (GDBusProxy *pr
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant *g_dbus_proxy_call_finish (GDBusProxy *proxy,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant *g_dbus_proxy_call_sync (GDBusProxy *proxy,
const gchar *method_name,
GVariant *parameters,
@@ -187,7 +187,7 @@ GVariant *g_dbus_proxy_call_sync (GDBusProxy *pr
#ifdef G_OS_UNIX
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_proxy_call_with_unix_fd_list (GDBusProxy *proxy,
const gchar *method_name,
GVariant *parameters,
@@ -197,12 +197,12 @@ void g_dbus_proxy_call_with_unix_fd_list (GDBusProxy
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant *g_dbus_proxy_call_with_unix_fd_list_finish (GDBusProxy *proxy,
GUnixFDList **out_fd_list,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant *g_dbus_proxy_call_with_unix_fd_list_sync (GDBusProxy *proxy,
const gchar *method_name,
GVariant *parameters,
diff --git a/gio/gdbusserver.c b/gio/gdbusserver.c
index f144d129a..db0c9ab50 100644
--- a/gio/gdbusserver.c
+++ b/gio/gdbusserver.c
@@ -725,14 +725,7 @@ try_unix (GDBusServer *server,
for (n = 0; n < 8; n++)
g_string_append_c (s, random_ascii ());
- /* prefer abstract namespace if available for tmpdir: addresses
- * abstract namespace is disallowed for dir: addresses */
- if (tmpdir != NULL && g_unix_socket_address_abstract_names_supported ())
- address = g_unix_socket_address_new_with_type (s->str,
- -1,
- G_UNIX_SOCKET_ADDRESS_ABSTRACT);
- else
- address = g_unix_socket_address_new (s->str);
+ address = g_unix_socket_address_new (s->str);
g_string_free (s, TRUE);
local_error = NULL;
diff --git a/gio/gdbusserver.h b/gio/gdbusserver.h
index 63dd4cbbf..8d460e360 100644
--- a/gio/gdbusserver.h
+++ b/gio/gdbusserver.h
@@ -35,26 +35,26 @@ G_BEGIN_DECLS
#define G_DBUS_SERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_SERVER, GDBusServer))
#define G_IS_DBUS_SERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_SERVER))
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_dbus_server_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusServer *g_dbus_server_new_sync (const gchar *address,
GDBusServerFlags flags,
const gchar *guid,
GDBusAuthObserver *observer,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_server_get_client_address (GDBusServer *server);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_dbus_server_get_guid (GDBusServer *server);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDBusServerFlags g_dbus_server_get_flags (GDBusServer *server);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_server_start (GDBusServer *server);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_server_stop (GDBusServer *server);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_server_is_active (GDBusServer *server);
G_END_DECLS
diff --git a/gio/gdbusutils.h b/gio/gdbusutils.h
index c0f2ba505..3003b7165 100644
--- a/gio/gdbusutils.h
+++ b/gio/gdbusutils.h
@@ -31,33 +31,33 @@
G_BEGIN_DECLS
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_is_guid (const gchar *string);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar *g_dbus_generate_guid (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_is_name (const gchar *string);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_is_unique_name (const gchar *string);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_is_member_name (const gchar *string);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_dbus_is_interface_name (const gchar *string);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
gboolean g_dbus_is_error_name (const gchar *string);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_dbus_gvariant_to_gvalue (GVariant *value,
GValue *out_gvalue);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant *g_dbus_gvalue_to_gvariant (const GValue *gvalue,
const GVariantType *type);
-GLIB_AVAILABLE_IN_2_68
+GIO_AVAILABLE_IN_2_68
gchar *g_dbus_escape_object_path_bytestring (const guint8 *bytes);
-GLIB_AVAILABLE_IN_2_68
+GIO_AVAILABLE_IN_2_68
gchar *g_dbus_escape_object_path (const gchar *s);
-GLIB_AVAILABLE_IN_2_68
+GIO_AVAILABLE_IN_2_68
guint8 *g_dbus_unescape_object_path (const gchar *s);
G_END_DECLS
diff --git a/gio/gdebugcontroller.h b/gio/gdebugcontroller.h
index 38160343d..e59cd348d 100644
--- a/gio/gdebugcontroller.h
+++ b/gio/gdebugcontroller.h
@@ -50,7 +50,7 @@ G_BEGIN_DECLS
* Since: 2.72
*/
#define G_TYPE_DEBUG_CONTROLLER (g_debug_controller_get_type ())
-GLIB_AVAILABLE_IN_2_72
+GIO_AVAILABLE_IN_2_72
G_DECLARE_INTERFACE(GDebugController, g_debug_controller, g, debug_controller, GObject)
#define G_DEBUG_CONTROLLER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DEBUG_CONTROLLER, GDebugController))
@@ -70,9 +70,9 @@ struct _GDebugControllerInterface {
GTypeInterface g_iface;
};
-GLIB_AVAILABLE_IN_2_72
+GIO_AVAILABLE_IN_2_72
gboolean g_debug_controller_get_debug_enabled (GDebugController *self);
-GLIB_AVAILABLE_IN_2_72
+GIO_AVAILABLE_IN_2_72
void g_debug_controller_set_debug_enabled (GDebugController *self,
gboolean debug_enabled);
diff --git a/gio/gdebugcontrollerdbus.c b/gio/gdebugcontrollerdbus.c
index 84d2e6499..ce0f70383 100644
--- a/gio/gdebugcontrollerdbus.c
+++ b/gio/gdebugcontrollerdbus.c
@@ -50,9 +50,10 @@
* #GDebugController:debug-enabled and, by default, g_log_get_debug_enabled().
* default.
*
- * By default, all processes will be able to call `SetDebugEnabled()`. If this
- * process is privileged, or might expose sensitive information in its debug
- * output, you may want to restrict the ability to enable debug output to
+ * By default, no processes are allowed to call `SetDebugEnabled()` unless a
+ * #GDebugControllerDBus::authorize signal handler is installed. This is because
+ * the process may be privileged, or might expose sensitive information in its
+ * debug output. You may want to restrict the ability to enable debug output to
* privileged users or processes.
*
* One option is to install a D-Bus security policy which restricts access to
diff --git a/gio/gdebugcontrollerdbus.h b/gio/gdebugcontrollerdbus.h
index d28545bb6..c6e6c700c 100644
--- a/gio/gdebugcontrollerdbus.h
+++ b/gio/gdebugcontrollerdbus.h
@@ -36,7 +36,7 @@ G_BEGIN_DECLS
* Since: 2.72
*/
#define G_TYPE_DEBUG_CONTROLLER_DBUS (g_debug_controller_dbus_get_type ())
-GLIB_AVAILABLE_IN_2_72
+GIO_AVAILABLE_IN_2_72
G_DECLARE_DERIVABLE_TYPE (GDebugControllerDBus, g_debug_controller_dbus, G, DEBUG_CONTROLLER_DBUS, GObject)
/**
@@ -58,12 +58,12 @@ struct _GDebugControllerDBusClass
gpointer padding[12];
};
-GLIB_AVAILABLE_IN_2_72
+GIO_AVAILABLE_IN_2_72
GDebugControllerDBus *g_debug_controller_dbus_new (GDBusConnection *connection,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_72
+GIO_AVAILABLE_IN_2_72
void g_debug_controller_dbus_stop (GDebugControllerDBus *self);
G_END_DECLS
diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
index c29c30947..1f161328a 100644
--- a/gio/gdesktopappinfo.c
+++ b/gio/gdesktopappinfo.c
@@ -56,6 +56,7 @@
#include "gappinfo.h"
#include "gappinfoprivate.h"
#include "glocalfilemonitor.h"
+#include "gutilsprivate.h"
#ifdef G_OS_UNIX
#include "gdocumentportal.h"
@@ -455,6 +456,14 @@ const gchar desktop_key_match_category[N_DESKTOP_KEYS] = {
[DESKTOP_KEY_Comment] = 6
};
+typedef enum {
+ /* Lower numbers have higher priority.
+ * Prefix match should put before substring match.
+ */
+ MATCH_TYPE_PREFIX = 1,
+ MATCH_TYPE_SUBSTRING = 2
+} MatchType;
+
/* Common prefix commands to ignore from Exec= lines */
const char * const exec_key_match_blocklist[] = {
"bash",
@@ -536,6 +545,7 @@ struct search_result
{
const gchar *app_name;
gint category;
+ gint match_type;
};
static struct search_result *static_token_results;
@@ -557,13 +567,20 @@ compare_results (gconstpointer a,
const struct search_result *rb = b;
if (ra->app_name < rb->app_name)
- return -1;
-
+ {
+ return -1;
+ }
else if (ra->app_name > rb->app_name)
- return 1;
-
+ {
+ return 1;
+ }
else
- return ra->category - rb->category;
+ {
+ if (ra->category == rb->category)
+ return ra->match_type - rb->match_type;
+
+ return ra->category - rb->category;
+ }
}
static gint
@@ -573,12 +590,19 @@ compare_categories (gconstpointer a,
const struct search_result *ra = a;
const struct search_result *rb = b;
+ /* Also compare match types so we can put prefix match in a group while
+ * substring match in another group.
+ */
+ if (ra->category == rb->category)
+ return ra->match_type - rb->match_type;
+
return ra->category - rb->category;
}
static void
add_token_result (const gchar *app_name,
- guint16 category)
+ guint16 category,
+ guint16 match_type)
{
if G_UNLIKELY (static_token_results_size == static_token_results_allocated)
{
@@ -588,6 +612,7 @@ add_token_result (const gchar *app_name,
static_token_results[static_token_results_size].app_name = app_name;
static_token_results[static_token_results_size].category = category;
+ static_token_results[static_token_results_size].match_type = match_type;
static_token_results_size++;
}
@@ -671,10 +696,22 @@ merge_token_results (gboolean first)
*
* Category should be the worse of the two (ie:
* numerically larger).
+ *
+ * Match type should also be the worse, so if an app has two
+ * prefix matches it will has higher priority than one prefix
+ * matches and one substring matches, for example, LibreOffice
+ * Writer should be higher priority than LibreOffice Draw with
+ * `lib w`.
+ *
+ * (This ignores the difference between partly prefix matches and
+ * all substring matches, however most time we just focus on exact
+ * prefix matches, who cares the 10th-20th search results?)
*/
static_search_results[j].app_name = static_search_results[k].app_name;
static_search_results[j].category = MAX (static_search_results[k].category,
static_token_results[i].category);
+ static_search_results[j].match_type = MAX (static_search_results[k].match_type,
+ static_token_results[i].match_type);
j++;
}
}
@@ -1216,6 +1253,8 @@ desktop_file_dir_unindexed_search (DesktopFileDir *dir,
GHashTableIter iter;
gpointer key, value;
+ g_assert (search_token != NULL);
+
if (!dir->memory_index)
desktop_file_dir_unindexed_setup_search (dir);
@@ -1223,13 +1262,24 @@ desktop_file_dir_unindexed_search (DesktopFileDir *dir,
while (g_hash_table_iter_next (&iter, &key, &value))
{
MemoryIndexEntry *mie = value;
+ const char *p;
+ MatchType match_type;
- if (!g_str_has_prefix (key, search_token))
+ /* strstr(haystack, needle) returns haystack if needle is empty, so if
+ * needle is not empty and return value equals to haystack means a prefix
+ * match.
+ */
+ p = strstr (key, search_token);
+ if (p == NULL)
continue;
+ else if (p == key && *search_token != '\0')
+ match_type = MATCH_TYPE_PREFIX;
+ else
+ match_type = MATCH_TYPE_SUBSTRING;
while (mie)
{
- add_token_result (mie->app_name, mie->match_category);
+ add_token_result (mie->app_name, mie->match_category, match_type);
mie = mie->next;
}
}
@@ -1830,6 +1880,7 @@ g_desktop_app_info_load_from_keyfile (GDesktopAppInfo *info,
char *type;
char *try_exec;
char *exec;
+ char *path;
gboolean bus_activatable;
start_group = g_key_file_get_start_group (key_file);
@@ -1851,6 +1902,10 @@ g_desktop_app_info_load_from_keyfile (GDesktopAppInfo *info,
}
g_free (type);
+ path = g_key_file_get_string (key_file,
+ G_KEY_FILE_DESKTOP_GROUP,
+ G_KEY_FILE_DESKTOP_KEY_PATH, NULL);
+
try_exec = g_key_file_get_string (key_file,
G_KEY_FILE_DESKTOP_GROUP,
G_KEY_FILE_DESKTOP_KEY_TRY_EXEC,
@@ -1858,9 +1913,11 @@ g_desktop_app_info_load_from_keyfile (GDesktopAppInfo *info,
if (try_exec && try_exec[0] != '\0')
{
char *t;
- t = g_find_program_in_path (try_exec);
+ /* Use the desktop file path (if any) as working dir to search program */
+ t = GLIB_PRIVATE_CALL (g_find_program_for_path) (try_exec, NULL, path);
if (t == NULL)
{
+ g_free (path);
g_free (try_exec);
return FALSE;
}
@@ -1877,6 +1934,7 @@ g_desktop_app_info_load_from_keyfile (GDesktopAppInfo *info,
char **argv;
if (!g_shell_parse_argv (exec, &argc, &argv, NULL))
{
+ g_free (path);
g_free (exec);
g_free (try_exec);
return FALSE;
@@ -1888,11 +1946,13 @@ g_desktop_app_info_load_from_keyfile (GDesktopAppInfo *info,
/* Since @exec is not an empty string, there must be at least one
* argument, so dereferencing argv[0] should return non-NULL. */
g_assert (argc > 0);
- t = g_find_program_in_path (argv[0]);
+ /* Use the desktop file path (if any) as working dir to search program */
+ t = GLIB_PRIVATE_CALL (g_find_program_for_path) (argv[0], NULL, path);
g_strfreev (argv);
if (t == NULL)
{
+ g_free (path);
g_free (exec);
g_free (try_exec);
return FALSE;
@@ -1912,7 +1972,7 @@ g_desktop_app_info_load_from_keyfile (GDesktopAppInfo *info,
info->not_show_in = g_key_file_get_string_list (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN, NULL, NULL);
info->try_exec = try_exec;
info->exec = exec;
- info->path = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_PATH, NULL);
+ info->path = g_steal_pointer (&path);
info->terminal = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_TERMINAL, NULL) != FALSE;
info->startup_notify = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY, NULL) != FALSE;
info->no_fuse = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, "X-GIO-NoFuse", NULL) != FALSE;
@@ -2622,17 +2682,36 @@ expand_application_parameters (GDesktopAppInfo *info,
}
static gboolean
-prepend_terminal_to_vector (int *argc,
- char ***argv)
+prepend_terminal_to_vector (int *argc,
+ char ***argv,
+ const char *path,
+ const char *working_dir)
{
#ifndef G_OS_WIN32
char **real_argv;
- int real_argc;
- int i, j;
- char **term_argv = NULL;
- int term_argc = 0;
- char *check;
+ size_t real_argc;
+ size_t i;
+ size_t term_argc;
+ char *found_terminal;
char **the_argv;
+ const char *term_arg;
+ static const struct {
+ const char *exec;
+ const char *exec_arg;
+ } known_terminals[] = {
+ { "xdg-terminal-exec", NULL },
+ { "kgx", "-e" },
+ { "gnome-terminal", "--" },
+ { "mate-terminal", "-x" },
+ { "xfce4-terminal", "-x" },
+ { "tilix", "-e" },
+ { "konsole", "-e" },
+ { "nxterm", "-e" },
+ { "color-xterm", "-e" },
+ { "rxvt", "-e" },
+ { "dtterm", "-e" },
+ { "xterm", "-e" }
+ };
g_return_val_if_fail (argc != NULL, FALSE);
g_return_val_if_fail (argv != NULL, FALSE);
@@ -2646,69 +2725,42 @@ prepend_terminal_to_vector (int *argc,
/* compute size if not given */
if (*argc < 0)
{
- for (i = 0; the_argv[i] != NULL; i++)
+ for ((*argc) = 0; the_argv[*argc] != NULL; (*argc)++)
;
- *argc = i;
}
- term_argc = 2;
- term_argv = g_new0 (char *, 3);
-
- check = g_find_program_in_path ("gnome-terminal");
- if (check != NULL)
+ for (i = 0, found_terminal = NULL; i < G_N_ELEMENTS (known_terminals); i++)
{
- term_argv[0] = check;
- /* Since 2017, gnome-terminal has preferred `--` over `-x` or `-e`. */
- term_argv[1] = g_strdup ("--");
- }
- else
- {
- if (check == NULL)
- check = g_find_program_in_path ("mate-terminal");
- if (check == NULL)
- check = g_find_program_in_path ("xfce4-terminal");
- if (check != NULL)
- {
- term_argv[0] = check;
- /* Note that gnome-terminal takes -x and
- * as -e in gnome-terminal is broken we use that. */
- term_argv[1] = g_strdup ("-x");
- }
- else
+ found_terminal = GLIB_PRIVATE_CALL (g_find_program_for_path) (known_terminals[i].exec,
+ path, working_dir);
+ if (found_terminal != NULL)
{
- if (check == NULL)
- check = g_find_program_in_path ("tilix");
- if (check == NULL)
- check = g_find_program_in_path ("konsole");
- if (check == NULL)
- check = g_find_program_in_path ("nxterm");
- if (check == NULL)
- check = g_find_program_in_path ("color-xterm");
- if (check == NULL)
- check = g_find_program_in_path ("rxvt");
- if (check == NULL)
- check = g_find_program_in_path ("dtterm");
- if (check == NULL)
- check = g_find_program_in_path ("xterm");
- if (check == NULL)
- {
- g_debug ("Couldn’t find a known terminal");
- g_free (term_argv);
- return FALSE;
- }
- term_argv[0] = check;
- term_argv[1] = g_strdup ("-e");
+ term_arg = known_terminals[i].exec_arg;
+ break;
}
}
+ if (found_terminal == NULL)
+ {
+ g_debug ("Couldn’t find a known terminal");
+ return FALSE;
+ }
+
+ /* check if the terminal require an option */
+ term_argc = term_arg ? 2 : 1;
+
real_argc = term_argc + *argc;
real_argv = g_new (char *, real_argc + 1);
- for (i = 0; i < term_argc; i++)
- real_argv[i] = term_argv[i];
+ i = 0;
+ real_argv[i++] = found_terminal;
- for (j = 0; j < *argc; j++, i++)
- real_argv[i] = (char *)the_argv[j];
+ if (term_arg)
+ real_argv[i++] = g_strdup (term_arg);
+
+ g_assert (i == term_argc);
+ for (int j = 0; j < *argc; j++)
+ real_argv[i++] = the_argv[j];
real_argv[i] = NULL;
@@ -2716,9 +2768,6 @@ prepend_terminal_to_vector (int *argc,
*argv = real_argv;
*argc = real_argc;
- /* we use g_free here as we sucked all the inner strings
- * out from it into real_argv */
- g_free (term_argv);
return TRUE;
#else
return FALSE;
@@ -2885,7 +2934,9 @@ g_desktop_app_info_launch_uris_with_spawn (GDesktopAppInfo *info,
launched_uris = g_list_prepend (launched_uris, iter->data);
launched_uris = g_list_reverse (launched_uris);
- if (info->terminal && !prepend_terminal_to_vector (&argc, &argv))
+ if (info->terminal && !prepend_terminal_to_vector (&argc, &argv,
+ g_environ_getenv (envp, "PATH"),
+ info->path))
{
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
_("Unable to find terminal required for application"));
@@ -2909,7 +2960,10 @@ g_desktop_app_info_launch_uris_with_spawn (GDesktopAppInfo *info,
G_APP_INFO (info),
launched_files);
if (sn_id)
- envp = g_environ_setenv (envp, "DESKTOP_STARTUP_ID", sn_id, TRUE);
+ {
+ envp = g_environ_setenv (envp, "DESKTOP_STARTUP_ID", sn_id, TRUE);
+ envp = g_environ_setenv (envp, "XDG_ACTIVATION_TOKEN", sn_id, TRUE);
+ }
}
g_list_free_full (launched_files, g_object_unref);
@@ -2917,6 +2971,46 @@ g_desktop_app_info_launch_uris_with_spawn (GDesktopAppInfo *info,
emit_launch_started (launch_context, info, sn_id);
}
+ g_assert (argc > 0);
+
+ if (!g_path_is_absolute (argv[0]) ||
+ !g_file_test (argv[0], G_FILE_TEST_IS_EXECUTABLE) ||
+ g_file_test (argv[0], G_FILE_TEST_IS_DIR))
+ {
+ char *program = g_steal_pointer (&argv[0]);
+ char *program_path = NULL;
+
+ if (!g_path_is_absolute (program))
+ {
+ const char *env_path = g_environ_getenv (envp, "PATH");
+
+ program_path = GLIB_PRIVATE_CALL (g_find_program_for_path) (program,
+ env_path,
+ info->path);
+ }
+
+ if (program_path)
+ {
+ argv[0] = g_steal_pointer (&program_path);
+ }
+ else
+ {
+ if (sn_id)
+ g_app_launch_context_launch_failed (launch_context, sn_id);
+
+ g_set_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_NOENT,
+ _("Program ‘%s’ not found in $PATH"),
+ program);
+
+ g_free (program);
+ g_clear_pointer (&sn_id, g_free);
+ g_clear_list (&launched_uris, NULL);
+ goto out;
+ }
+
+ g_free (program);
+ }
+
if (g_once_init_enter (&gio_launch_desktop_path))
{
const gchar *tmp = NULL;
@@ -3046,7 +3140,10 @@ g_desktop_app_info_make_platform_data (GDesktopAppInfo *info,
sn_id = g_app_launch_context_get_startup_notify_id (launch_context, G_APP_INFO (info), launched_files);
if (sn_id)
- g_variant_builder_add (&builder, "{sv}", "desktop-startup-id", g_variant_new_take_string (sn_id));
+ {
+ g_variant_builder_add (&builder, "{sv}", "desktop-startup-id", g_variant_new_string (sn_id));
+ g_variant_builder_add (&builder, "{sv}", "activation-token", g_variant_new_take_string (g_steal_pointer (&sn_id)));
+ }
}
g_list_free_full (launched_files, g_object_unref);
@@ -3060,7 +3157,7 @@ typedef struct
GDesktopAppInfo *info; /* (owned) */
GAppLaunchContext *launch_context; /* (owned) (nullable) */
GAsyncReadyCallback callback;
- gchar *startup_id; /* (owned) */
+ gchar *startup_id; /* (owned) (nullable) */
gpointer user_data;
} LaunchUrisWithDBusData;
@@ -3085,7 +3182,10 @@ launch_uris_with_dbus_signal_cb (GObject *object,
if (data->launch_context)
{
if (g_task_had_error (G_TASK (result)))
- g_app_launch_context_launch_failed (data->launch_context, data->startup_id);
+ {
+ if (data->startup_id != NULL)
+ g_app_launch_context_launch_failed (data->launch_context, data->startup_id);
+ }
else
{
GVariant *platform_data;
@@ -3455,11 +3555,11 @@ g_desktop_app_info_launch (GAppInfo *appinfo,
* @uris: (element-type utf8): List of URIs
* @launch_context: (nullable): a #GAppLaunchContext
* @spawn_flags: #GSpawnFlags, used for each process
- * @user_setup: (scope async) (nullable): a #GSpawnChildSetupFunc, used once
+ * @user_setup: (scope async) (nullable) (closure user_setup_data): a #GSpawnChildSetupFunc, used once
* for each process.
- * @user_setup_data: (closure user_setup) (nullable): User data for @user_setup
- * @pid_callback: (scope call) (nullable): Callback for child processes
- * @pid_callback_data: (closure pid_callback) (nullable): User data for @callback
+ * @user_setup_data: User data for @user_setup
+ * @pid_callback: (scope call) (nullable) (closure pid_callback_data): Callback for child processes
+ * @pid_callback_data: User data for @callback
* @stdin_fd: file descriptor to use for child's stdin, or -1
* @stdout_fd: file descriptor to use for child's stdout, or -1
* @stderr_fd: file descriptor to use for child's stderr, or -1
@@ -4728,9 +4828,10 @@ g_desktop_app_info_search (const gchar *search_string)
{
gchar **search_tokens;
gint last_category = -1;
+ gint last_match_type = -1;
gchar ***results;
- gint n_categories = 0;
- gint start_of_category;
+ gint n_groups = 0;
+ gint start_of_group;
gint i, j;
guint k;
@@ -4752,36 +4853,41 @@ g_desktop_app_info_search (const gchar *search_string)
sort_total_search_results ();
- /* Count the total number of unique categories */
+ /* Count the total number of unique categories and match types */
for (i = 0; i < static_total_results_size; i++)
- if (static_total_results[i].category != last_category)
+ if (static_total_results[i].category != last_category ||
+ static_total_results[i].match_type != last_match_type)
{
last_category = static_total_results[i].category;
- n_categories++;
+ last_match_type = static_total_results[i].match_type;
+ n_groups++;
}
- results = g_new (gchar **, n_categories + 1);
+ results = g_new (gchar **, n_groups + 1);
/* Start loading into the results list */
- start_of_category = 0;
- for (i = 0; i < n_categories; i++)
+ start_of_group = 0;
+ for (i = 0; i < n_groups; i++)
{
- gint n_items_in_category = 0;
+ gint n_items_in_group = 0;
gint this_category;
+ gint this_match_type;
gint j;
- this_category = static_total_results[start_of_category].category;
+ this_category = static_total_results[start_of_group].category;
+ this_match_type = static_total_results[start_of_group].match_type;
- while (start_of_category + n_items_in_category < static_total_results_size &&
- static_total_results[start_of_category + n_items_in_category].category == this_category)
- n_items_in_category++;
+ while (start_of_group + n_items_in_group < static_total_results_size &&
+ static_total_results[start_of_group + n_items_in_group].category == this_category &&
+ static_total_results[start_of_group + n_items_in_group].match_type == this_match_type)
+ n_items_in_group++;
- results[i] = g_new (gchar *, n_items_in_category + 1);
- for (j = 0; j < n_items_in_category; j++)
- results[i][j] = g_strdup (static_total_results[start_of_category + j].app_name);
+ results[i] = g_new (gchar *, n_items_in_group + 1);
+ for (j = 0; j < n_items_in_group; j++)
+ results[i][j] = g_strdup (static_total_results[start_of_group + j].app_name);
results[i][j] = NULL;
- start_of_category += n_items_in_category;
+ start_of_group += n_items_in_group;
}
results[i] = NULL;
diff --git a/gio/gdesktopappinfo.h b/gio/gdesktopappinfo.h
index 9df12f8a7..1ca7d51ba 100644
--- a/gio/gdesktopappinfo.h
+++ b/gio/gdesktopappinfo.h
@@ -45,73 +45,73 @@ struct _GDesktopAppInfoClass
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_desktop_app_info_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDesktopAppInfo *g_desktop_app_info_new_from_filename (const char *filename);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDesktopAppInfo *g_desktop_app_info_new_from_keyfile (GKeyFile *key_file);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_desktop_app_info_get_filename (GDesktopAppInfo *info);
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
const char * g_desktop_app_info_get_generic_name (GDesktopAppInfo *info);
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
const char * g_desktop_app_info_get_categories (GDesktopAppInfo *info);
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
const char * const *g_desktop_app_info_get_keywords (GDesktopAppInfo *info);
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
gboolean g_desktop_app_info_get_nodisplay (GDesktopAppInfo *info);
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
gboolean g_desktop_app_info_get_show_in (GDesktopAppInfo *info,
const gchar *desktop_env);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
const char * g_desktop_app_info_get_startup_wm_class (GDesktopAppInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDesktopAppInfo *g_desktop_app_info_new (const char *desktop_id);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info);
-GLIB_DEPRECATED_IN_2_42
+GIO_DEPRECATED_IN_2_42
void g_desktop_app_info_set_desktop_env (const char *desktop_env);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gboolean g_desktop_app_info_has_key (GDesktopAppInfo *info,
const char *key);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
char * g_desktop_app_info_get_string (GDesktopAppInfo *info,
const char *key);
-GLIB_AVAILABLE_IN_2_56
+GIO_AVAILABLE_IN_2_56
char * g_desktop_app_info_get_locale_string (GDesktopAppInfo *info,
const char *key);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gboolean g_desktop_app_info_get_boolean (GDesktopAppInfo *info,
const char *key);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
gchar ** g_desktop_app_info_get_string_list (GDesktopAppInfo *info,
const char *key,
gsize *length);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
const gchar * const * g_desktop_app_info_list_actions (GDesktopAppInfo *info);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
void g_desktop_app_info_launch_action (GDesktopAppInfo *info,
const gchar *action_name,
GAppLaunchContext *launch_context);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
gchar * g_desktop_app_info_get_action_name (GDesktopAppInfo *info,
const gchar *action_name);
-#define G_TYPE_DESKTOP_APP_INFO_LOOKUP (g_desktop_app_info_lookup_get_type ()) GLIB_DEPRECATED_MACRO_IN_2_28
-#define G_DESKTOP_APP_INFO_LOOKUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP, GDesktopAppInfoLookup)) GLIB_DEPRECATED_MACRO_IN_2_28
-#define G_IS_DESKTOP_APP_INFO_LOOKUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP)) GLIB_DEPRECATED_MACRO_IN_2_28
-#define G_DESKTOP_APP_INFO_LOOKUP_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP, GDesktopAppInfoLookupIface)) GLIB_DEPRECATED_MACRO_IN_2_28
+#define G_TYPE_DESKTOP_APP_INFO_LOOKUP (g_desktop_app_info_lookup_get_type ()) GIO_DEPRECATED_MACRO_IN_2_28
+#define G_DESKTOP_APP_INFO_LOOKUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP, GDesktopAppInfoLookup)) GIO_DEPRECATED_MACRO_IN_2_28
+#define G_IS_DESKTOP_APP_INFO_LOOKUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP)) GIO_DEPRECATED_MACRO_IN_2_28
+#define G_DESKTOP_APP_INFO_LOOKUP_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP, GDesktopAppInfoLookupIface)) GIO_DEPRECATED_MACRO_IN_2_28
/**
* G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME:
@@ -122,7 +122,7 @@ gchar * g_desktop_app_info_get_action_name (GDeskto
* Deprecated: 2.28: The #GDesktopAppInfoLookup interface is deprecated and
* unused by GIO.
*/
-#define G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME "gio-desktop-app-info-lookup" GLIB_DEPRECATED_MACRO_IN_2_28
+#define G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME "gio-desktop-app-info-lookup" GIO_DEPRECATED_MACRO_IN_2_28
/**
* GDesktopAppInfoLookupIface:
@@ -143,10 +143,10 @@ struct _GDesktopAppInfoLookupIface
const char *uri_scheme);
};
-GLIB_DEPRECATED
+GIO_DEPRECATED
GType g_desktop_app_info_lookup_get_type (void) G_GNUC_CONST;
-GLIB_DEPRECATED
+GIO_DEPRECATED
GAppInfo *g_desktop_app_info_lookup_get_default_for_uri_scheme (GDesktopAppInfoLookup *lookup,
const char *uri_scheme);
@@ -164,7 +164,7 @@ typedef void (*GDesktopAppLaunchCallback) (GDesktopAppInfo *appinfo,
GPid pid,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_28
+GIO_AVAILABLE_IN_2_28
gboolean g_desktop_app_info_launch_uris_as_manager (GDesktopAppInfo *appinfo,
GList *uris,
GAppLaunchContext *launch_context,
@@ -175,7 +175,7 @@ gboolean g_desktop_app_info_launch_uris_as_manager (GDesktopAppInfo
gpointer pid_callback_data,
GError **error);
-GLIB_AVAILABLE_IN_2_58
+GIO_AVAILABLE_IN_2_58
gboolean g_desktop_app_info_launch_uris_as_manager_with_fds (GDesktopAppInfo *appinfo,
GList *uris,
GAppLaunchContext *launch_context,
@@ -189,10 +189,10 @@ gboolean g_desktop_app_info_launch_uris_as_manager_with_fds (GDesktopAppInfo
gint stderr_fd,
GError **error);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gchar *** g_desktop_app_info_search (const gchar *search_string);
-GLIB_AVAILABLE_IN_2_42
+GIO_AVAILABLE_IN_2_42
GList *g_desktop_app_info_get_implementations (const gchar *interface);
G_END_DECLS
diff --git a/gio/gdrive.h b/gio/gdrive.h
index f5a5d122a..7551a4025 100644
--- a/gio/gdrive.h
+++ b/gio/gdrive.h
@@ -170,103 +170,103 @@ struct _GDriveIface
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_drive_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_drive_get_name (GDrive *drive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_drive_get_icon (GDrive *drive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_drive_get_symbolic_icon (GDrive *drive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_drive_has_volumes (GDrive *drive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList * g_drive_get_volumes (GDrive *drive);
-GLIB_AVAILABLE_IN_2_50
+GIO_AVAILABLE_IN_2_50
gboolean g_drive_is_removable (GDrive *drive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_drive_is_media_removable (GDrive *drive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_drive_has_media (GDrive *drive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_drive_is_media_check_automatic (GDrive *drive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_drive_can_poll_for_media (GDrive *drive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_drive_can_eject (GDrive *drive);
-GLIB_DEPRECATED_FOR(g_drive_eject_with_operation)
+GIO_DEPRECATED_FOR(g_drive_eject_with_operation)
void g_drive_eject (GDrive *drive,
GMountUnmountFlags flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_DEPRECATED_FOR(g_drive_eject_with_operation_finish)
+GIO_DEPRECATED_FOR(g_drive_eject_with_operation_finish)
gboolean g_drive_eject_finish (GDrive *drive,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_drive_poll_for_media (GDrive *drive,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_drive_poll_for_media_finish (GDrive *drive,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_drive_get_identifier (GDrive *drive,
const char *kind);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char ** g_drive_enumerate_identifiers (GDrive *drive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDriveStartStopType g_drive_get_start_stop_type (GDrive *drive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_drive_can_start (GDrive *drive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_drive_can_start_degraded (GDrive *drive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_drive_start (GDrive *drive,
GDriveStartFlags flags,
GMountOperation *mount_operation,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_drive_start_finish (GDrive *drive,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_drive_can_stop (GDrive *drive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_drive_stop (GDrive *drive,
GMountUnmountFlags flags,
GMountOperation *mount_operation,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_drive_stop_finish (GDrive *drive,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_drive_eject_with_operation (GDrive *drive,
GMountUnmountFlags flags,
GMountOperation *mount_operation,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_drive_eject_with_operation_finish (GDrive *drive,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
const gchar *g_drive_get_sort_key (GDrive *drive);
G_END_DECLS
diff --git a/gio/gdtlsclientconnection.h b/gio/gdtlsclientconnection.h
index f772647fb..f8ee1f49e 100644
--- a/gio/gdtlsclientconnection.h
+++ b/gio/gdtlsclientconnection.h
@@ -50,25 +50,25 @@ struct _GDtlsClientConnectionInterface
GTypeInterface g_iface;
};
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GType g_dtls_client_connection_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GDatagramBased *g_dtls_client_connection_new (GDatagramBased *base_socket,
GSocketConnectable *server_identity,
GError **error);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GTlsCertificateFlags g_dtls_client_connection_get_validation_flags (GDtlsClientConnection *conn);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
void g_dtls_client_connection_set_validation_flags (GDtlsClientConnection *conn,
GTlsCertificateFlags flags);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GSocketConnectable *g_dtls_client_connection_get_server_identity (GDtlsClientConnection *conn);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
void g_dtls_client_connection_set_server_identity (GDtlsClientConnection *conn,
GSocketConnectable *identity);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GList * g_dtls_client_connection_get_accepted_cas (GDtlsClientConnection *conn);
diff --git a/gio/gdtlsconnection.h b/gio/gdtlsconnection.h
index 6a02ee6e5..c7513ee9e 100644
--- a/gio/gdtlsconnection.h
+++ b/gio/gdtlsconnection.h
@@ -107,70 +107,70 @@ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
G_GNUC_END_IGNORE_DEPRECATIONS
};
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GType g_dtls_connection_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
void g_dtls_connection_set_database (GDtlsConnection *conn,
GTlsDatabase *database);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GTlsDatabase *g_dtls_connection_get_database (GDtlsConnection *conn);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
void g_dtls_connection_set_certificate (GDtlsConnection *conn,
GTlsCertificate *certificate);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GTlsCertificate *g_dtls_connection_get_certificate (GDtlsConnection *conn);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
void g_dtls_connection_set_interaction (GDtlsConnection *conn,
GTlsInteraction *interaction);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GTlsInteraction *g_dtls_connection_get_interaction (GDtlsConnection *conn);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GTlsCertificate *g_dtls_connection_get_peer_certificate (GDtlsConnection *conn);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GTlsCertificateFlags g_dtls_connection_get_peer_certificate_errors (GDtlsConnection *conn);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
void g_dtls_connection_set_require_close_notify (GDtlsConnection *conn,
gboolean require_close_notify);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
gboolean g_dtls_connection_get_require_close_notify (GDtlsConnection *conn);
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-GLIB_DEPRECATED_IN_2_60
+GIO_DEPRECATED_IN_2_60
void g_dtls_connection_set_rehandshake_mode (GDtlsConnection *conn,
GTlsRehandshakeMode mode);
-GLIB_DEPRECATED_IN_2_60
+GIO_DEPRECATED_IN_2_60
GTlsRehandshakeMode g_dtls_connection_get_rehandshake_mode (GDtlsConnection *conn);
G_GNUC_END_IGNORE_DEPRECATIONS
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
gboolean g_dtls_connection_handshake (GDtlsConnection *conn,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
void g_dtls_connection_handshake_async (GDtlsConnection *conn,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
gboolean g_dtls_connection_handshake_finish (GDtlsConnection *conn,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
gboolean g_dtls_connection_shutdown (GDtlsConnection *conn,
gboolean shutdown_read,
gboolean shutdown_write,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
void g_dtls_connection_shutdown_async (GDtlsConnection *conn,
gboolean shutdown_read,
gboolean shutdown_write,
@@ -178,51 +178,51 @@ void g_dtls_connection_shutdown_async (GDtlsConnec
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
gboolean g_dtls_connection_shutdown_finish (GDtlsConnection *conn,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
gboolean g_dtls_connection_close (GDtlsConnection *conn,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
void g_dtls_connection_close_async (GDtlsConnection *conn,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
gboolean g_dtls_connection_close_finish (GDtlsConnection *conn,
GAsyncResult *result,
GError **error);
/*< protected >*/
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
gboolean g_dtls_connection_emit_accept_certificate (GDtlsConnection *conn,
GTlsCertificate *peer_cert,
GTlsCertificateFlags errors);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
void g_dtls_connection_set_advertised_protocols (GDtlsConnection *conn,
const gchar * const *protocols);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
const gchar * g_dtls_connection_get_negotiated_protocol (GDtlsConnection *conn);
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-GLIB_AVAILABLE_IN_2_66
+GIO_AVAILABLE_IN_2_66
gboolean g_dtls_connection_get_channel_binding_data (GDtlsConnection *conn,
GTlsChannelBindingType type,
GByteArray *data,
GError **error);
G_GNUC_END_IGNORE_DEPRECATIONS
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
GTlsProtocolVersion g_dtls_connection_get_protocol_version (GDtlsConnection *conn);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
gchar * g_dtls_connection_get_ciphersuite_name (GDtlsConnection *conn);
G_END_DECLS
diff --git a/gio/gdtlsserverconnection.h b/gio/gdtlsserverconnection.h
index b713b2c95..d46366060 100644
--- a/gio/gdtlsserverconnection.h
+++ b/gio/gdtlsserverconnection.h
@@ -58,10 +58,10 @@ struct _GDtlsServerConnectionInterface
GTypeInterface g_iface;
};
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GType g_dtls_server_connection_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GDatagramBased *g_dtls_server_connection_new (GDatagramBased *base_socket,
GTlsCertificate *certificate,
GError **error);
diff --git a/gio/gemblem.h b/gio/gemblem.h
index 246671e81..eb00c3b34 100644
--- a/gio/gemblem.h
+++ b/gio/gemblem.h
@@ -45,17 +45,17 @@ G_BEGIN_DECLS
typedef struct _GEmblem GEmblem;
typedef struct _GEmblemClass GEmblemClass;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_emblem_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GEmblem *g_emblem_new (GIcon *icon);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GEmblem *g_emblem_new_with_origin (GIcon *icon,
GEmblemOrigin origin);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon *g_emblem_get_icon (GEmblem *emblem);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GEmblemOrigin g_emblem_get_origin (GEmblem *emblem);
G_END_DECLS
diff --git a/gio/gemblemedicon.h b/gio/gemblemedicon.h
index c19e99f50..1702b7b19 100644
--- a/gio/gemblemedicon.h
+++ b/gio/gemblemedicon.h
@@ -62,20 +62,20 @@ struct _GEmblemedIconClass
GObjectClass parent_class;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_emblemed_icon_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon *g_emblemed_icon_new (GIcon *icon,
GEmblem *emblem);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon *g_emblemed_icon_get_icon (GEmblemedIcon *emblemed);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList *g_emblemed_icon_get_emblems (GEmblemedIcon *emblemed);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_emblemed_icon_add_emblem (GEmblemedIcon *emblemed,
GEmblem *emblem);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_emblemed_icon_clear_emblems (GEmblemedIcon *emblemed);
G_END_DECLS
diff --git a/gio/gfile.c b/gio/gfile.c
index e78b5e185..c7658caa2 100644
--- a/gio/gfile.c
+++ b/gio/gfile.c
@@ -77,6 +77,13 @@
#include "gioerror.h"
#include "glibintl.h"
+/* Linux defines loff_t as a way to simplify the offset types for calls like
+ * splice() and copy_file_range(). BSD has copy_file_range() but doesn’t define
+ * loff_t. Abstract that. */
+#ifndef HAVE_LOFF_T
+typedef off_t loff_t;
+#endif
+
/**
* SECTION:gfile
@@ -99,7 +106,7 @@
* - g_file_new_tmp_async() to asynchronously create a temporary file.
* - g_file_new_tmp_dir_async() to asynchronously create a temporary directory.
* - g_file_parse_name() from a UTF-8 string gotten from g_file_get_parse_name().
- * - g_file_new_build_filename() to create a file from path elements.
+ * - g_file_new_build_filename() or g_file_new_build_filenamev() to create a file from path elements.
*
* One way to think of a #GFile is as an abstraction of a pathname. For
* normal files the system pathname is what is stored internally, but as
@@ -1108,9 +1115,9 @@ g_file_enumerate_children (GFile *file,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call when the
- * request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously gets the requested information about the files
* in a directory. The result is a #GFileEnumerator object that will
@@ -1345,9 +1352,9 @@ g_file_query_info (GFile *file,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call when the
- * request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously gets the requested information about specified @file.
* The result is a #GFileInfo object that contains key-value attributes
@@ -1482,9 +1489,9 @@ g_file_query_filesystem_info (GFile *file,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously gets the requested information about the filesystem
* that the specified @file is on. The result is a #GFileInfo object
@@ -1604,9 +1611,9 @@ g_file_find_enclosing_mount (GFile *file,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously gets the mount for the file.
*
@@ -2092,9 +2099,9 @@ g_file_replace_readwrite (GFile *file,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously opens @file for reading.
*
@@ -2160,9 +2167,9 @@ g_file_read_finish (GFile *file,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously opens @file for appending.
*
@@ -2231,9 +2238,9 @@ g_file_append_to_finish (GFile *file,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously creates a new file and returns an output stream
* for writing to it. The file must not already exist.
@@ -2305,9 +2312,9 @@ g_file_create_finish (GFile *file,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously overwrites the file, replacing the contents,
* possibly creating a backup copy of the file first.
@@ -2379,9 +2386,9 @@ g_file_replace_finish (GFile *file,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously opens @file for reading and writing.
*
@@ -2451,9 +2458,9 @@ g_file_open_readwrite_finish (GFile *file,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously creates a new file and returns a stream
* for reading and writing to it. The file must not already exist.
@@ -2529,9 +2536,9 @@ g_file_create_readwrite_finish (GFile *file,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously overwrites the file in read-write mode,
* replacing the contents, possibly creating a backup copy
@@ -2807,6 +2814,11 @@ g_file_build_attribute_list_for_copy (GFile *file,
first = TRUE;
s = g_string_new ("");
+ /* Always query the source file size, even though we can’t set that on the
+ * destination. This is useful for the copy functions. */
+ first = FALSE;
+ g_string_append (s, G_FILE_ATTRIBUTE_STANDARD_SIZE);
+
if (attributes)
{
for (i = 0; i < attributes->n_infos; i++)
@@ -3002,6 +3014,122 @@ copy_stream_with_progress (GInputStream *in,
return res;
}
+#ifdef HAVE_COPY_FILE_RANGE
+static gboolean
+do_copy_file_range (int fd_in,
+ loff_t *off_in,
+ int fd_out,
+ loff_t *off_out,
+ size_t len,
+ size_t *bytes_transferred,
+ GError **error)
+{
+ ssize_t result;
+
+ do
+ {
+ result = copy_file_range (fd_in, off_in, fd_out, off_out, len, 0);
+
+ if (result == -1)
+ {
+ int errsv = errno;
+
+ if (errsv == EINTR)
+ {
+ continue;
+ }
+ else if (errsv == ENOSYS || errsv == EINVAL || errsv == EOPNOTSUPP || errsv == EXDEV)
+ {
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
+ _("Copy file range not supported"));
+ }
+ else
+ {
+ g_set_error (error, G_IO_ERROR,
+ g_io_error_from_errno (errsv),
+ _("Error splicing file: %s"),
+ g_strerror (errsv));
+ }
+
+ return FALSE;
+ }
+ } while (result == -1);
+
+ g_assert (result >= 0);
+ *bytes_transferred = result;
+
+ return TRUE;
+}
+
+static gboolean
+copy_file_range_with_progress (GInputStream *in,
+ GFileInfo *in_info,
+ GOutputStream *out,
+ GCancellable *cancellable,
+ GFileProgressCallback progress_callback,
+ gpointer progress_callback_data,
+ GError **error)
+{
+ goffset total_size, last_notified_size;
+ size_t copy_len;
+ loff_t offset_in;
+ loff_t offset_out;
+ int fd_in, fd_out;
+
+ fd_in = g_file_descriptor_based_get_fd (G_FILE_DESCRIPTOR_BASED (in));
+ fd_out = g_file_descriptor_based_get_fd (G_FILE_DESCRIPTOR_BASED (out));
+
+ g_assert (g_file_info_has_attribute (in_info, G_FILE_ATTRIBUTE_STANDARD_SIZE));
+ total_size = g_file_info_get_size (in_info);
+
+ /* Bail out if the reported size of the file is zero. It might be zero, but it
+ * might also just be a kernel file in /proc. They report their file size as
+ * zero, but then have data when you start reading. Go to the fallback code
+ * path for those. */
+ if (total_size == 0)
+ {
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
+ _("Copy file range not supported"));
+ return FALSE;
+ }
+
+ offset_in = offset_out = 0;
+ copy_len = total_size;
+ last_notified_size = 0;
+
+ /* Call copy_file_range() in a loop until the whole contents are copied. For
+ * smaller files, this loop will iterate only once. For larger files, the
+ * kernel (at least, kernel 6.1.6) will return after 2GB anyway, so that gives
+ * us more loop iterations and more progress reporting. */
+ while (copy_len > 0)
+ {
+ size_t n_copied;
+
+ if (g_cancellable_set_error_if_cancelled (cancellable, error) ||
+ !do_copy_file_range (fd_in, &offset_in, fd_out, &offset_out, copy_len, &n_copied, error))
+ return FALSE;
+
+ if (n_copied == 0)
+ break;
+
+ g_assert (n_copied <= copy_len);
+ copy_len -= n_copied;
+
+ if (progress_callback)
+ {
+ progress_callback (offset_in, total_size, progress_callback_data);
+ last_notified_size = total_size;
+ }
+ }
+
+ /* Make sure we send full copied size */
+ if (progress_callback && last_notified_size != total_size)
+ progress_callback (offset_in, total_size, progress_callback_data);
+
+ return TRUE;
+}
+#endif /* HAVE_COPY_FILE_RANGE */
+
#ifdef HAVE_SPLICE
static gboolean
@@ -3042,6 +3170,7 @@ retry:
static gboolean
splice_stream_with_progress (GInputStream *in,
+ GFileInfo *in_info,
GOutputStream *out,
GCancellable *cancellable,
GFileProgressCallback progress_callback,
@@ -3059,7 +3188,7 @@ splice_stream_with_progress (GInputStream *in,
fd_in = g_file_descriptor_based_get_fd (G_FILE_DESCRIPTOR_BASED (in));
fd_out = g_file_descriptor_based_get_fd (G_FILE_DESCRIPTOR_BASED (out));
- if (!g_unix_open_pipe (buffer, FD_CLOEXEC, error))
+ if (!g_unix_open_pipe (buffer, O_CLOEXEC, error))
return FALSE;
/* Try a 1MiB buffer for improved throughput. If that fails, use the default
@@ -3085,10 +3214,8 @@ splice_stream_with_progress (GInputStream *in,
/* avoid performance impact of querying total size when it's not needed */
if (progress_callback)
{
- struct stat sbuf;
-
- if (fstat (fd_in, &sbuf) == 0)
- total_size = sbuf.st_size;
+ g_assert (g_file_info_has_attribute (in_info, G_FILE_ATTRIBUTE_STANDARD_SIZE));
+ total_size = g_file_info_get_size (in_info);
}
if (total_size == -1)
@@ -3151,6 +3278,7 @@ splice_stream_with_progress (GInputStream *in,
#ifdef __linux__
static gboolean
btrfs_reflink_with_progress (GInputStream *in,
+ GFileInfo *in_info,
GOutputStream *out,
GFileInfo *info,
GCancellable *cancellable,
@@ -3158,15 +3286,23 @@ btrfs_reflink_with_progress (GInputStream *in,
gpointer progress_callback_data,
GError **error)
{
- goffset source_size;
+ goffset total_size;
int fd_in, fd_out;
int ret, errsv;
fd_in = g_file_descriptor_based_get_fd (G_FILE_DESCRIPTOR_BASED (in));
fd_out = g_file_descriptor_based_get_fd (G_FILE_DESCRIPTOR_BASED (out));
+ total_size = -1;
+ /* avoid performance impact of querying total size when it's not needed */
if (progress_callback)
- source_size = g_file_info_get_size (info);
+ {
+ g_assert (g_file_info_has_attribute (in_info, G_FILE_ATTRIBUTE_STANDARD_SIZE));
+ total_size = g_file_info_get_size (in_info);
+ }
+
+ if (total_size == -1)
+ total_size = 0;
/* Btrfs clone ioctl properties:
* - Works at the inode level
@@ -3201,7 +3337,7 @@ btrfs_reflink_with_progress (GInputStream *in,
/* Make sure we send full copied size */
if (progress_callback)
- progress_callback (source_size, source_size, progress_callback_data);
+ progress_callback (total_size, total_size, progress_callback_data);
return TRUE;
}
@@ -3366,7 +3502,7 @@ file_copy_fallback (GFile *source,
{
GError *reflink_err = NULL;
- if (!btrfs_reflink_with_progress (in, out, info, cancellable,
+ if (!btrfs_reflink_with_progress (in, info, out, info, cancellable,
progress_callback, progress_callback_data,
&reflink_err))
{
@@ -3388,12 +3524,36 @@ file_copy_fallback (GFile *source,
}
#endif
+#ifdef HAVE_COPY_FILE_RANGE
+ if (G_IS_FILE_DESCRIPTOR_BASED (in) && G_IS_FILE_DESCRIPTOR_BASED (out))
+ {
+ GError *copy_file_range_error = NULL;
+
+ if (copy_file_range_with_progress (in, info, out, cancellable,
+ progress_callback, progress_callback_data,
+ &copy_file_range_error))
+ {
+ ret = TRUE;
+ goto out;
+ }
+ else if (!g_error_matches (copy_file_range_error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED))
+ {
+ g_propagate_error (error, g_steal_pointer (&copy_file_range_error));
+ goto out;
+ }
+ else
+ {
+ g_clear_error (&copy_file_range_error);
+ }
+ }
+#endif /* HAVE_COPY_FILE_RANGE */
+
#ifdef HAVE_SPLICE
if (G_IS_FILE_DESCRIPTOR_BASED (in) && G_IS_FILE_DESCRIPTOR_BASED (out))
{
GError *splice_err = NULL;
- if (!splice_stream_with_progress (in, out, cancellable,
+ if (!splice_stream_with_progress (in, info, out, cancellable,
progress_callback, progress_callback_data,
&splice_err))
{
@@ -3462,9 +3622,9 @@ file_copy_fallback (GFile *source,
* @flags: set of #GFileCopyFlags
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @progress_callback: (nullable) (scope call): function to callback with
+ * @progress_callback: (nullable) (scope call) (closure progress_callback_data): function to callback with
* progress information, or %NULL if progress information is not needed
- * @progress_callback_data: (closure): user data to pass to @progress_callback
+ * @progress_callback_data: user data to pass to @progress_callback
* @error: #GError to set on error, or %NULL
*
* Copies the file @source to the location specified by @destination.
@@ -3591,11 +3751,13 @@ g_file_copy (GFile *source,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @progress_callback: (nullable) (scope notified): function to callback with progress
- * information, or %NULL if progress information is not needed
- * @progress_callback_data: (closure progress_callback) (nullable): user data to pass to @progress_callback
- * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: (closure callback): the data to pass to callback function
+ * @progress_callback: (nullable) (scope notified) (closure progress_callback_data):
+ * function to callback with progress information, or %NULL if
+ * progress information is not needed
+ * @progress_callback_data: user data to pass to @progress_callback
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback
*
* Copies the file @source to the location specified by @destination
* asynchronously. For details of the behaviour, see g_file_copy().
@@ -3670,9 +3832,9 @@ g_file_copy_finish (GFile *file,
* @flags: set of #GFileCopyFlags
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @progress_callback: (nullable) (scope call): #GFileProgressCallback
+ * @progress_callback: (nullable) (scope call) (closure progress_callback_data): #GFileProgressCallback
* function for updates
- * @progress_callback_data: (closure): gpointer to user data for
+ * @progress_callback_data: gpointer to user data for
* the callback function
* @error: #GError for returning error conditions, or %NULL
*
@@ -3805,12 +3967,11 @@ g_file_move (GFile *source,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @progress_callback: (nullable) (scope call): #GFileProgressCallback
- * function for updates
- * @progress_callback_data: (closure): gpointer to user data for
- * the callback function
- * @callback: a #GAsyncReadyCallback to call
- * when the request is satisfied
+ * @progress_callback: (nullable) (scope call) (closure progress_callback_data):
+ * #GFileProgressCallback function for updates
+ * @progress_callback_data: gpointer to user data for the callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
* @user_data: the data to pass to callback function
*
* Asynchronously moves a file @source to the location of @destination. For details of the behaviour, see g_file_move().
@@ -4578,9 +4739,9 @@ g_file_set_display_name (GFile *file,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously sets the display name for a given #GFile.
*
@@ -4912,8 +5073,9 @@ g_file_real_set_attributes_from_info (GFile *file,
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): a #gpointer
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously sets the attributes of @file with @info.
*
@@ -5182,9 +5344,9 @@ g_file_set_attribute_int64 (GFile *file,
* or %NULL to avoid user interaction
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
- * when the request is satisfied, or %NULL
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Mounts a file of type G_FILE_TYPE_MOUNTABLE.
* Using @mount_operation, you can request callbacks when, for instance,
@@ -5268,9 +5430,9 @@ g_file_mount_mountable_finish (GFile *file,
* @flags: flags affecting the operation
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
- * when the request is satisfied, or %NULL
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (nullable) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Unmounts a file of type G_FILE_TYPE_MOUNTABLE.
*
@@ -5357,9 +5519,9 @@ g_file_unmount_mountable_finish (GFile *file,
* or %NULL to avoid user interaction
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
- * when the request is satisfied, or %NULL
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (nullable) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Unmounts a file of type %G_FILE_TYPE_MOUNTABLE.
*
@@ -5456,9 +5618,9 @@ g_file_unmount_mountable_with_operation_finish (GFile *file,
* @flags: flags affecting the operation
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
- * when the request is satisfied, or %NULL
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (nullable) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Starts an asynchronous eject on a mountable.
* When this operation has completed, @callback will be called with
@@ -5542,9 +5704,9 @@ g_file_eject_mountable_finish (GFile *file,
* or %NULL to avoid user interaction
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
- * when the request is satisfied, or %NULL
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (nullable) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Starts an asynchronous eject on a mountable.
* When this operation has completed, @callback will be called with
@@ -6612,8 +6774,6 @@ g_file_real_set_display_name_finish (GFile *file,
typedef struct {
GFileQueryInfoFlags flags;
GFileInfo *info;
- gboolean res;
- GError *error;
} SetInfoAsyncData;
static void
@@ -6621,8 +6781,6 @@ set_info_data_free (SetInfoAsyncData *data)
{
if (data->info)
g_object_unref (data->info);
- if (data->error)
- g_error_free (data->error);
g_free (data);
}
@@ -6633,13 +6791,16 @@ set_info_async_thread (GTask *task,
GCancellable *cancellable)
{
SetInfoAsyncData *data = task_data;
+ GError *error = NULL;
- data->error = NULL;
- data->res = g_file_set_attributes_from_info (G_FILE (object),
- data->info,
- data->flags,
- cancellable,
- &data->error);
+ if (g_file_set_attributes_from_info (G_FILE (object),
+ data->info,
+ data->flags,
+ cancellable,
+ &error))
+ g_task_return_boolean (task, TRUE);
+ else
+ g_task_return_error (task, error);
}
static void
@@ -6682,10 +6843,7 @@ g_file_real_set_attributes_finish (GFile *file,
if (info)
*info = g_object_ref (data->info);
- if (error != NULL && data->error)
- *error = g_error_copy (data->error);
-
- return data->res;
+ return g_task_propagate_boolean (G_TASK (res), error);
}
static void
@@ -7246,6 +7404,35 @@ g_file_new_build_filename (const gchar *first_element,
return file;
}
+
+/**
+ * g_file_new_build_filenamev:
+ * @args: (array zero-terminated=1) (element-type filename): %NULL-terminated
+ * array of strings containing the path elements.
+ *
+ * Constructs a #GFile from a vector of elements using the correct
+ * separator for filenames.
+ *
+ * Using this function is equivalent to calling g_build_filenamev(),
+ * followed by g_file_new_for_path() on the result.
+ *
+ * Returns: (transfer full): a new #GFile
+ *
+ * Since: 2.78
+ */
+GFile *
+g_file_new_build_filenamev (const gchar * const *args)
+{
+ gchar *str;
+ GFile *file;
+
+ str = g_build_filenamev ((gchar **) args);
+ file = g_file_new_for_path (str);
+ g_free (str);
+
+ return file;
+}
+
static gboolean
is_valid_scheme_character (char c)
{
@@ -7773,7 +7960,7 @@ g_file_load_contents (GFile *file,
NULL);
if (info)
{
- *etag_out = g_strdup (g_file_info_get_etag (info));
+ *etag_out = g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_ETAG_VALUE) ? g_strdup (g_file_info_get_etag (info)) : NULL;
g_object_unref (info);
}
}
@@ -7847,7 +8034,7 @@ load_contents_fstat_callback (GObject *obj,
stat_res, NULL);
if (info)
{
- data->etag = g_strdup (g_file_info_get_etag (info));
+ data->etag = g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_ETAG_VALUE) ? g_strdup (g_file_info_get_etag (info)) : NULL;
g_object_unref (info);
}
@@ -9140,9 +9327,9 @@ g_file_load_bytes_cb (GObject *object,
* g_file_load_bytes_async:
* @file: a #GFile
* @cancellable: (nullable): a #GCancellable or %NULL
- * @callback: (scope async): a #GAsyncReadyCallback to call when the
- * request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously loads the contents of @file as #GBytes.
*
diff --git a/gio/gfile.h b/gio/gfile.h
index 13ffed655..7c43fe070 100644
--- a/gio/gfile.h
+++ b/gio/gfile.h
@@ -610,145 +610,147 @@ struct _GFileIface
GError **error);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_file_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_file_new_for_path (const char *path);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_file_new_for_uri (const char *uri);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_file_new_for_commandline_arg (const char *arg);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
GFile * g_file_new_for_commandline_arg_and_cwd (const gchar *arg,
const gchar *cwd);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GFile * g_file_new_tmp (const char *tmpl,
GFileIOStream **iostream,
GError **error);
-GLIB_AVAILABLE_IN_2_74
+GIO_AVAILABLE_IN_2_74
void g_file_new_tmp_async (const char *tmpl,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_74
+GIO_AVAILABLE_IN_2_74
GFile * g_file_new_tmp_finish (GAsyncResult *result,
GFileIOStream **iostream,
GError **error);
-GLIB_AVAILABLE_IN_2_74
+GIO_AVAILABLE_IN_2_74
void g_file_new_tmp_dir_async (const char *tmpl,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_74
+GIO_AVAILABLE_IN_2_74
GFile * g_file_new_tmp_dir_finish (GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_file_parse_name (const char *parse_name);
-GLIB_AVAILABLE_IN_2_56
+GIO_AVAILABLE_IN_2_56
GFile * g_file_new_build_filename (const gchar *first_element,
...) G_GNUC_NULL_TERMINATED;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_2_78
+GFile * g_file_new_build_filenamev (const gchar * const *args);
+GIO_AVAILABLE_IN_ALL
GFile * g_file_dup (GFile *file);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_file_hash (gconstpointer file);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_equal (GFile *file1,
GFile *file2);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_file_get_basename (GFile *file);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_file_get_path (GFile *file);
-GLIB_AVAILABLE_IN_2_56
+GIO_AVAILABLE_IN_2_56
const char * g_file_peek_path (GFile *file);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_file_get_uri (GFile *file);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_file_get_parse_name (GFile *file);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_file_get_parent (GFile *file);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_has_parent (GFile *file,
GFile *parent);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_file_get_child (GFile *file,
const char *name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_file_get_child_for_display_name (GFile *file,
const char *display_name,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_has_prefix (GFile *file,
GFile *prefix);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_file_get_relative_path (GFile *parent,
GFile *descendant);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_file_resolve_relative_path (GFile *file,
const char *relative_path);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_is_native (GFile *file);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_has_uri_scheme (GFile *file,
const char *uri_scheme);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_file_get_uri_scheme (GFile *file);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInputStream * g_file_read (GFile *file,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_read_async (GFile *file,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInputStream * g_file_read_finish (GFile *file,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileOutputStream * g_file_append_to (GFile *file,
GFileCreateFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileOutputStream * g_file_create (GFile *file,
GFileCreateFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileOutputStream * g_file_replace (GFile *file,
const char *etag,
gboolean make_backup,
GFileCreateFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_append_to_async (GFile *file,
GFileCreateFlags flags,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileOutputStream * g_file_append_to_finish (GFile *file,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_create_async (GFile *file,
GFileCreateFlags flags,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileOutputStream * g_file_create_finish (GFile *file,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_replace_async (GFile *file,
const char *etag,
gboolean make_backup,
@@ -757,48 +759,48 @@ void g_file_replace_async (GFile
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileOutputStream * g_file_replace_finish (GFile *file,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileIOStream * g_file_open_readwrite (GFile *file,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_open_readwrite_async (GFile *file,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileIOStream * g_file_open_readwrite_finish (GFile *file,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileIOStream * g_file_create_readwrite (GFile *file,
GFileCreateFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_create_readwrite_async (GFile *file,
GFileCreateFlags flags,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileIOStream * g_file_create_readwrite_finish (GFile *file,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileIOStream * g_file_replace_readwrite (GFile *file,
const char *etag,
gboolean make_backup,
GFileCreateFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_replace_readwrite_async (GFile *file,
const char *etag,
gboolean make_backup,
@@ -807,24 +809,24 @@ void g_file_replace_readwrite_async (GFile
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileIOStream * g_file_replace_readwrite_finish (GFile *file,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_query_exists (GFile *file,
GCancellable *cancellable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileType g_file_query_file_type (GFile *file,
GFileQueryInfoFlags flags,
GCancellable *cancellable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo * g_file_query_info (GFile *file,
const char *attributes,
GFileQueryInfoFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_query_info_async (GFile *file,
const char *attributes,
GFileQueryInfoFlags flags,
@@ -832,47 +834,47 @@ void g_file_query_info_async (GFile
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo * g_file_query_info_finish (GFile *file,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo * g_file_query_filesystem_info (GFile *file,
const char *attributes,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_query_filesystem_info_async (GFile *file,
const char *attributes,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo * g_file_query_filesystem_info_finish (GFile *file,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GMount * g_file_find_enclosing_mount (GFile *file,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_find_enclosing_mount_async (GFile *file,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GMount * g_file_find_enclosing_mount_finish (GFile *file,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileEnumerator * g_file_enumerate_children (GFile *file,
const char *attributes,
GFileQueryInfoFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_enumerate_children_async (GFile *file,
const char *attributes,
GFileQueryInfoFlags flags,
@@ -880,61 +882,61 @@ void g_file_enumerate_children_async (GFile
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileEnumerator * g_file_enumerate_children_finish (GFile *file,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_file_set_display_name (GFile *file,
const char *display_name,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_set_display_name_async (GFile *file,
const char *display_name,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_file_set_display_name_finish (GFile *file,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_delete (GFile *file,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
void g_file_delete_async (GFile *file,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
gboolean g_file_delete_finish (GFile *file,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_trash (GFile *file,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
void g_file_trash_async (GFile *file,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
gboolean g_file_trash_finish (GFile *file,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_copy (GFile *source,
GFile *destination,
GFileCopyFlags flags,
@@ -942,7 +944,7 @@ gboolean g_file_copy (GFile
GFileProgressCallback progress_callback,
gpointer progress_callback_data,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_copy_async (GFile *source,
GFile *destination,
GFileCopyFlags flags,
@@ -952,11 +954,11 @@ void g_file_copy_async (GFile
gpointer progress_callback_data,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_copy_finish (GFile *file,
GAsyncResult *res,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_move (GFile *source,
GFile *destination,
GFileCopyFlags flags,
@@ -964,7 +966,7 @@ gboolean g_file_move (GFile
GFileProgressCallback progress_callback,
gpointer progress_callback_data,
GError **error);
-GLIB_AVAILABLE_IN_2_72
+GIO_AVAILABLE_IN_2_72
void g_file_move_async (GFile *source,
GFile *destination,
GFileCopyFlags flags,
@@ -974,54 +976,54 @@ void g_file_move_async (GFile
gpointer progress_callback_data,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_72
+GIO_AVAILABLE_IN_2_72
gboolean g_file_move_finish (GFile *file,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_make_directory (GFile *file,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
void g_file_make_directory_async (GFile *file,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
gboolean g_file_make_directory_finish (GFile *file,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_make_directory_with_parents (GFile *file,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_make_symbolic_link (GFile *file,
const char *symlink_value,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_74
+GIO_AVAILABLE_IN_2_74
void g_file_make_symbolic_link_async (GFile *file,
const char *symlink_value,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_74
+GIO_AVAILABLE_IN_2_74
gboolean g_file_make_symbolic_link_finish (GFile *file,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileAttributeInfoList *g_file_query_settable_attributes (GFile *file,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileAttributeInfoList *g_file_query_writable_namespaces (GFile *file,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_set_attribute (GFile *file,
const char *attribute,
GFileAttributeType type,
@@ -1029,13 +1031,13 @@ gboolean g_file_set_attribute (GFile
GFileQueryInfoFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_set_attributes_from_info (GFile *file,
GFileInfo *info,
GFileQueryInfoFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_set_attributes_async (GFile *file,
GFileInfo *info,
GFileQueryInfoFlags flags,
@@ -1043,127 +1045,127 @@ void g_file_set_attributes_async (GFile
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_set_attributes_finish (GFile *file,
GAsyncResult *result,
GFileInfo **info,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_set_attribute_string (GFile *file,
const char *attribute,
const char *value,
GFileQueryInfoFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_set_attribute_byte_string (GFile *file,
const char *attribute,
const char *value,
GFileQueryInfoFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_set_attribute_uint32 (GFile *file,
const char *attribute,
guint32 value,
GFileQueryInfoFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_set_attribute_int32 (GFile *file,
const char *attribute,
gint32 value,
GFileQueryInfoFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_set_attribute_uint64 (GFile *file,
const char *attribute,
guint64 value,
GFileQueryInfoFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_set_attribute_int64 (GFile *file,
const char *attribute,
gint64 value,
GFileQueryInfoFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_mount_enclosing_volume (GFile *location,
GMountMountFlags flags,
GMountOperation *mount_operation,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_mount_enclosing_volume_finish (GFile *location,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_mount_mountable (GFile *file,
GMountMountFlags flags,
GMountOperation *mount_operation,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_file_mount_mountable_finish (GFile *file,
GAsyncResult *result,
GError **error);
-GLIB_DEPRECATED_FOR(g_file_unmount_mountable_with_operation)
+GIO_DEPRECATED_FOR(g_file_unmount_mountable_with_operation)
void g_file_unmount_mountable (GFile *file,
GMountUnmountFlags flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_DEPRECATED_FOR(g_file_unmount_mountable_with_operation_finish)
+GIO_DEPRECATED_FOR(g_file_unmount_mountable_with_operation_finish)
gboolean g_file_unmount_mountable_finish (GFile *file,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_unmount_mountable_with_operation (GFile *file,
GMountUnmountFlags flags,
GMountOperation *mount_operation,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_unmount_mountable_with_operation_finish (GFile *file,
GAsyncResult *result,
GError **error);
-GLIB_DEPRECATED_FOR(g_file_eject_mountable_with_operation)
+GIO_DEPRECATED_FOR(g_file_eject_mountable_with_operation)
void g_file_eject_mountable (GFile *file,
GMountUnmountFlags flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_DEPRECATED_FOR(g_file_eject_mountable_with_operation_finish)
+GIO_DEPRECATED_FOR(g_file_eject_mountable_with_operation_finish)
gboolean g_file_eject_mountable_finish (GFile *file,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_eject_mountable_with_operation (GFile *file,
GMountUnmountFlags flags,
GMountOperation *mount_operation,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_eject_mountable_with_operation_finish (GFile *file,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_68
+GIO_AVAILABLE_IN_2_68
char * g_file_build_attribute_list_for_copy (GFile *file,
GFileCopyFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_copy_attributes (GFile *source,
GFile *destination,
GFileCopyFlags flags,
@@ -1171,23 +1173,23 @@ gboolean g_file_copy_attributes (GFile
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileMonitor* g_file_monitor_directory (GFile *file,
GFileMonitorFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileMonitor* g_file_monitor_file (GFile *file,
GFileMonitorFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileMonitor* g_file_monitor (GFile *file,
GFileMonitorFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
gboolean g_file_measure_disk_usage (GFile *file,
GFileMeasureFlags flags,
GCancellable *cancellable,
@@ -1198,7 +1200,7 @@ gboolean g_file_measure_disk_usage (GFile
guint64 *num_files,
GError **error);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
void g_file_measure_disk_usage_async (GFile *file,
GFileMeasureFlags flags,
gint io_priority,
@@ -1208,7 +1210,7 @@ void g_file_measure_disk_usage_async (GFile
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
gboolean g_file_measure_disk_usage_finish (GFile *file,
GAsyncResult *result,
guint64 *disk_usage,
@@ -1216,89 +1218,89 @@ gboolean g_file_measure_disk_usage_finish (GFile
guint64 *num_files,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_start_mountable (GFile *file,
GDriveStartFlags flags,
GMountOperation *start_operation,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_start_mountable_finish (GFile *file,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_stop_mountable (GFile *file,
GMountUnmountFlags flags,
GMountOperation *mount_operation,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_stop_mountable_finish (GFile *file,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_poll_mountable (GFile *file,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_poll_mountable_finish (GFile *file,
GAsyncResult *result,
GError **error);
/* Utilities */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GAppInfo *g_file_query_default_handler (GFile *file,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
void g_file_query_default_handler_async (GFile *file,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
GAppInfo *g_file_query_default_handler_finish (GFile *file,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_load_contents (GFile *file,
GCancellable *cancellable,
char **contents,
gsize *length,
char **etag_out,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_load_contents_async (GFile *file,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_load_contents_finish (GFile *file,
GAsyncResult *res,
char **contents,
gsize *length,
char **etag_out,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_load_partial_contents_async (GFile *file,
GCancellable *cancellable,
GFileReadMoreCallback read_more_callback,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_load_partial_contents_finish (GFile *file,
GAsyncResult *res,
char **contents,
gsize *length,
char **etag_out,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_replace_contents (GFile *file,
const char *contents,
gsize length,
@@ -1308,7 +1310,7 @@ gboolean g_file_replace_contents (GFile *file,
char **new_etag,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_replace_contents_async (GFile *file,
const char *contents,
gsize length,
@@ -1318,7 +1320,7 @@ void g_file_replace_contents_async (GFile *file,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_file_replace_contents_bytes_async (GFile *file,
GBytes *contents,
const char *etag,
@@ -1327,26 +1329,26 @@ void g_file_replace_contents_bytes_async (GFile *file,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_replace_contents_finish (GFile *file,
GAsyncResult *res,
char **new_etag,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_supports_thread_contexts (GFile *file);
-GLIB_AVAILABLE_IN_2_56
+GIO_AVAILABLE_IN_2_56
GBytes *g_file_load_bytes (GFile *file,
GCancellable *cancellable,
gchar **etag_out,
GError **error);
-GLIB_AVAILABLE_IN_2_56
+GIO_AVAILABLE_IN_2_56
void g_file_load_bytes_async (GFile *file,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_56
+GIO_AVAILABLE_IN_2_56
GBytes *g_file_load_bytes_finish (GFile *file,
GAsyncResult *result,
gchar **etag_out,
diff --git a/gio/gfileattribute.h b/gio/gfileattribute.h
index f139c1e82..0ce609819 100644
--- a/gio/gfileattribute.h
+++ b/gio/gfileattribute.h
@@ -61,21 +61,21 @@ struct _GFileAttributeInfoList
};
#define G_TYPE_FILE_ATTRIBUTE_INFO_LIST (g_file_attribute_info_list_get_type ())
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_file_attribute_info_list_get_type (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileAttributeInfoList * g_file_attribute_info_list_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileAttributeInfoList * g_file_attribute_info_list_ref (GFileAttributeInfoList *list);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_attribute_info_list_unref (GFileAttributeInfoList *list);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileAttributeInfoList * g_file_attribute_info_list_dup (GFileAttributeInfoList *list);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const GFileAttributeInfo *g_file_attribute_info_list_lookup (GFileAttributeInfoList *list,
const char *name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_attribute_info_list_add (GFileAttributeInfoList *list,
const char *name,
GFileAttributeType type,
diff --git a/gio/gfiledescriptorbased.h b/gio/gfiledescriptorbased.h
index f9cf35725..46fdbf525 100644
--- a/gio/gfiledescriptorbased.h
+++ b/gio/gfiledescriptorbased.h
@@ -55,10 +55,10 @@ struct _GFileDescriptorBasedIface
int (*get_fd) (GFileDescriptorBased *fd_based);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_file_descriptor_based_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
int g_file_descriptor_based_get_fd (GFileDescriptorBased *fd_based);
G_END_DECLS
diff --git a/gio/gfileenumerator.c b/gio/gfileenumerator.c
index 6fd03eb44..ee0f56338 100644
--- a/gio/gfileenumerator.c
+++ b/gio/gfileenumerator.c
@@ -314,26 +314,72 @@ next_async_callback_wrapper (GObject *source_object,
* @num_files: the number of file info objects to request
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Request information for a number of files from the enumerator asynchronously.
- * When all i/o for the operation is finished the @callback will be called with
+ * When all I/O for the operation is finished the @callback will be called with
* the requested information.
*
* See the documentation of #GFileEnumerator for information about the
* order of returned files.
*
- * The callback can be called with less than @num_files files in case of error
- * or at the end of the enumerator. In case of a partial error the callback will
- * be called with any succeeding items and no error, and on the next request the
- * error will be reported. If a request is cancelled the callback will be called
- * with %G_IO_ERROR_CANCELLED.
+ * Once the end of the enumerator is reached, or if an error occurs, the
+ * @callback will be called with an empty list. In this case, the previous call
+ * to g_file_enumerator_next_files_async() will typically have returned fewer
+ * than @num_files items.
+ *
+ * If a request is cancelled the callback will be called with
+ * %G_IO_ERROR_CANCELLED.
+ *
+ * This leads to the following pseudo-code usage:
+ * |[
+ * g_autoptr(GFile) dir = get_directory ();
+ * g_autoptr(GFileEnumerator) enumerator = NULL;
+ * g_autolist(GFileInfo) files = NULL;
+ * g_autoptr(GError) local_error = NULL;
+ *
+ * enumerator = yield g_file_enumerate_children_async (dir,
+ * G_FILE_ATTRIBUTE_STANDARD_NAME ","
+ * G_FILE_ATTRIBUTE_STANDARD_TYPE,
+ * G_FILE_QUERY_INFO_NONE,
+ * G_PRIORITY_DEFAULT,
+ * cancellable,
+ * …,
+ * &local_error);
+ * if (enumerator == NULL)
+ * g_error ("Error enumerating: %s", local_error->message);
+ *
+ * // Loop until no files are returned, either because the end of the enumerator
+ * // has been reached, or an error was returned.
+ * do
+ * {
+ * files = yield g_file_enumerator_next_files_async (enumerator,
+ * 5, // number of files to request
+ * G_PRIORITY_DEFAULT,
+ * cancellable,
+ * …,
+ * &local_error);
+ *
+ * // Process the returned files, but don’t assume that exactly 5 were returned.
+ * for (GList *l = files; l != NULL; l = l->next)
+ * {
+ * GFileInfo *info = l->data;
+ * handle_file_info (info);
+ * }
+ * }
+ * while (files != NULL);
+ *
+ * if (local_error != NULL &&
+ * !g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+ * g_error ("Error while enumerating: %s", local_error->message);
+ * ]|
*
* During an async request no other sync and async calls are allowed, and will
* result in %G_IO_ERROR_PENDING errors.
*
- * Any outstanding i/o request with higher priority (lower numerical value) will
+ * Any outstanding I/O request with higher priority (lower numerical value) will
* be executed before an outstanding request with lower priority. Default
* priority is %G_PRIORITY_DEFAULT.
**/
@@ -440,8 +486,9 @@ close_async_callback_wrapper (GObject *source_object,
* @enumerator: a #GFileEnumerator.
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously closes the file enumerator.
*
diff --git a/gio/gfileenumerator.h b/gio/gfileenumerator.h
index 68d4b94bb..eddb58084 100644
--- a/gio/gfileenumerator.h
+++ b/gio/gfileenumerator.h
@@ -96,52 +96,52 @@ struct _GFileEnumeratorClass
void (*_g_reserved7) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_file_enumerator_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo *g_file_enumerator_next_file (GFileEnumerator *enumerator,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_enumerator_close (GFileEnumerator *enumerator,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_enumerator_next_files_async (GFileEnumerator *enumerator,
int num_files,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList * g_file_enumerator_next_files_finish (GFileEnumerator *enumerator,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_enumerator_close_async (GFileEnumerator *enumerator,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_enumerator_close_finish (GFileEnumerator *enumerator,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_enumerator_is_closed (GFileEnumerator *enumerator);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_enumerator_has_pending (GFileEnumerator *enumerator);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_enumerator_set_pending (GFileEnumerator *enumerator,
gboolean pending);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_file_enumerator_get_container (GFileEnumerator *enumerator);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
GFile * g_file_enumerator_get_child (GFileEnumerator *enumerator,
GFileInfo *info);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
gboolean g_file_enumerator_iterate (GFileEnumerator *direnum,
GFileInfo **out_info,
GFile **out_child,
diff --git a/gio/gfileicon.h b/gio/gfileicon.h
index a3229cfab..230acdf24 100644
--- a/gio/gfileicon.h
+++ b/gio/gfileicon.h
@@ -45,13 +45,13 @@ G_BEGIN_DECLS
**/
typedef struct _GFileIconClass GFileIconClass;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_file_icon_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_file_icon_new (GFile *file);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_file_icon_get_file (GFileIcon *icon);
G_END_DECLS
diff --git a/gio/gfileinfo-priv.h b/gio/gfileinfo-priv.h
index 8fc085973..4d31818c3 100644
--- a/gio/gfileinfo-priv.h
+++ b/gio/gfileinfo-priv.h
@@ -99,6 +99,18 @@
#define G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH (10485760 + 1)
#define G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED (10485760 + 2)
#define G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID (10485760 + 3)
+#define G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH_NORMAL (10485760 + 4)
+#define G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED_NORMAL (10485760 + 5)
+#define G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID_NORMAL (10485760 + 6)
+#define G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH_LARGE (10485760 + 7)
+#define G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED_LARGE (10485760 + 8)
+#define G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID_LARGE (10485760 + 9)
+#define G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH_XLARGE (10485760 + 10)
+#define G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED_XLARGE (10485760 + 11)
+#define G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID_XLARGE (10485760 + 12)
+#define G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH_XXLARGE (10485760 + 13)
+#define G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED_XXLARGE (10485760 + 14)
+#define G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID_XXLARGE (10485760 + 15)
#define G_FILE_ATTRIBUTE_ID_PREVIEW_ICON (11534336 + 1)
#define G_FILE_ATTRIBUTE_ID_FILESYSTEM_SIZE (12582912 + 1)
#define G_FILE_ATTRIBUTE_ID_FILESYSTEM_FREE (12582912 + 2)
diff --git a/gio/gfileinfo.c b/gio/gfileinfo.c
index f709bf4f1..af7828ee6 100644
--- a/gio/gfileinfo.c
+++ b/gio/gfileinfo.c
@@ -53,6 +53,11 @@
* g_file_info_get_attribute_byte_string().This optimization will matter
* only if calling the API in a tight loop.
*
+ * It is an error to call these accessors without specifying their required file
+ * attributes when creating the #GFileInfo. Use g_file_info_has_attribute() or
+ * g_file_info_list_attributes() to check what attributes are specified for a
+ * #GFileInfo.
+ *
* #GFileAttributeMatcher allows for searching through a #GFileInfo for
* attributes.
**/
@@ -265,6 +270,18 @@ ensure_attribute_hash (void)
REGISTER_ATTRIBUTE (THUMBNAIL_PATH);
REGISTER_ATTRIBUTE (THUMBNAILING_FAILED);
REGISTER_ATTRIBUTE (THUMBNAIL_IS_VALID);
+ REGISTER_ATTRIBUTE (THUMBNAIL_PATH_NORMAL);
+ REGISTER_ATTRIBUTE (THUMBNAILING_FAILED_NORMAL);
+ REGISTER_ATTRIBUTE (THUMBNAIL_IS_VALID_NORMAL);
+ REGISTER_ATTRIBUTE (THUMBNAIL_PATH_LARGE);
+ REGISTER_ATTRIBUTE (THUMBNAILING_FAILED_LARGE);
+ REGISTER_ATTRIBUTE (THUMBNAIL_IS_VALID_LARGE);
+ REGISTER_ATTRIBUTE (THUMBNAIL_PATH_XLARGE);
+ REGISTER_ATTRIBUTE (THUMBNAILING_FAILED_XLARGE);
+ REGISTER_ATTRIBUTE (THUMBNAIL_IS_VALID_XLARGE);
+ REGISTER_ATTRIBUTE (THUMBNAIL_PATH_XXLARGE);
+ REGISTER_ATTRIBUTE (THUMBNAILING_FAILED_XXLARGE);
+ REGISTER_ATTRIBUTE (THUMBNAIL_IS_VALID_XXLARGE);
REGISTER_ATTRIBUTE (PREVIEW_ICON);
REGISTER_ATTRIBUTE (FILESYSTEM_SIZE);
REGISTER_ATTRIBUTE (FILESYSTEM_FREE);
@@ -857,7 +874,7 @@ _g_file_info_get_attribute_value (GFileInfo *info,
* @info: a #GFileInfo.
* @attribute: a file attribute key.
*
- * Gets the value of a attribute, formatted as a string.
+ * Gets the value of an attribute, formatted as a string.
* This escapes things as needed to make the string valid
* UTF-8.
*
@@ -950,6 +967,30 @@ g_file_info_get_attribute_byte_string (GFileInfo *info,
}
/**
+ * g_file_info_get_attribute_file_path:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
+ *
+ * Gets the value of a byte string attribute as a file path.
+ *
+ * If the attribute does not contain a byte string, `NULL` will be returned.
+ *
+ * This function is meant to be used by language bindings that have specific
+ * handling for Unix paths.
+ *
+ * Returns: (type filename) (nullable): the contents of the @attribute value as
+ * a file path, or %NULL otherwise.
+ *
+ * Since: 2.78
+ **/
+const char *
+g_file_info_get_attribute_file_path (GFileInfo *info,
+ const char *attribute)
+{
+ return g_file_info_get_attribute_byte_string (info, attribute);
+}
+
+/**
* g_file_info_get_attribute_stringv:
* @info: a #GFileInfo.
* @attribute: a file attribute key.
@@ -1301,6 +1342,28 @@ g_file_info_set_attribute_byte_string (GFileInfo *info,
attr_value);
}
+/**
+ * g_file_info_set_attribute_file_path:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
+ * @attr_value: (type filename): a file path.
+ *
+ * Sets the @attribute to contain the given @attr_value,
+ * if possible.
+ *
+ * This function is meant to be used by language bindings that have specific
+ * handling for Unix paths.
+ *
+ * Since: 2.78
+ **/
+void
+g_file_info_set_attribute_file_path (GFileInfo *info,
+ const char *attribute,
+ const char *attr_value)
+{
+ g_file_info_set_attribute_byte_string (info, attribute, attr_value);
+}
+
void
_g_file_info_set_attribute_boolean_by_id (GFileInfo *info,
guint32 attribute,
@@ -1473,13 +1536,28 @@ g_file_info_set_attribute_int64 (GFileInfo *info,
}
/* Helper getters */
+#define get_required_attribute(value_ptr, info, attribute_name, error_value) \
+ G_STMT_START { \
+ static guint32 attr = 0; \
+\
+ if (attr == 0) \
+ attr = lookup_attribute (attribute_name); \
+\
+ *value_ptr = g_file_info_find_value (info, attr); \
+ if (G_UNLIKELY (*value_ptr == NULL)) \
+ { \
+ g_critical ("GFileInfo created without " attribute_name); \
+ g_return_val_if_reached (error_value); \
+ } \
+ } G_STMT_END
+
/**
* g_file_info_get_deletion_date:
* @info: a #GFileInfo.
*
* Returns the #GDateTime representing the deletion date of the file, as
- * available in G_FILE_ATTRIBUTE_TRASH_DELETION_DATE. If the
- * G_FILE_ATTRIBUTE_TRASH_DELETION_DATE attribute is unset, %NULL is returned.
+ * available in %G_FILE_ATTRIBUTE_TRASH_DELETION_DATE. If the
+ * %G_FILE_ATTRIBUTE_TRASH_DELETION_DATE attribute is unset, %NULL is returned.
*
* Returns: (nullable): a #GDateTime, or %NULL.
*
@@ -1518,20 +1596,19 @@ g_file_info_get_deletion_date (GFileInfo *info)
* Gets a file's type (whether it is a regular file, symlink, etc).
* This is different from the file's content type, see g_file_info_get_content_type().
*
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_STANDARD_TYPE.
+ *
* Returns: a #GFileType for the given file.
**/
GFileType
g_file_info_get_file_type (GFileInfo *info)
{
- static guint32 attr = 0;
GFileAttributeValue *value;
g_return_val_if_fail (G_IS_FILE_INFO (info), G_FILE_TYPE_UNKNOWN);
- if (attr == 0)
- attr = lookup_attribute (G_FILE_ATTRIBUTE_STANDARD_TYPE);
-
- value = g_file_info_find_value (info, attr);
+ get_required_attribute (&value, info, G_FILE_ATTRIBUTE_STANDARD_TYPE, G_FILE_TYPE_UNKNOWN);
return (GFileType)_g_file_attribute_value_get_uint32 (value);
}
@@ -1541,21 +1618,20 @@ g_file_info_get_file_type (GFileInfo *info)
*
* Checks if a file is hidden.
*
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN.
+ *
* Returns: %TRUE if the file is a hidden file, %FALSE otherwise.
**/
gboolean
g_file_info_get_is_hidden (GFileInfo *info)
{
- static guint32 attr = 0;
GFileAttributeValue *value;
g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
- if (attr == 0)
- attr = lookup_attribute (G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN);
-
- value = g_file_info_find_value (info, attr);
- return (GFileType)_g_file_attribute_value_get_boolean (value);
+ get_required_attribute (&value, info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN, FALSE);
+ return _g_file_attribute_value_get_boolean (value);
}
/**
@@ -1564,21 +1640,20 @@ g_file_info_get_is_hidden (GFileInfo *info)
*
* Checks if a file is a backup file.
*
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP.
+ *
* Returns: %TRUE if file is a backup file, %FALSE otherwise.
**/
gboolean
g_file_info_get_is_backup (GFileInfo *info)
{
- static guint32 attr = 0;
GFileAttributeValue *value;
g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
- if (attr == 0)
- attr = lookup_attribute (G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP);
-
- value = g_file_info_find_value (info, attr);
- return (GFileType)_g_file_attribute_value_get_boolean (value);
+ get_required_attribute (&value, info, G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP, FALSE);
+ return _g_file_attribute_value_get_boolean (value);
}
/**
@@ -1587,21 +1662,20 @@ g_file_info_get_is_backup (GFileInfo *info)
*
* Checks if a file is a symlink.
*
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK.
+ *
* Returns: %TRUE if the given @info is a symlink.
**/
gboolean
g_file_info_get_is_symlink (GFileInfo *info)
{
- static guint32 attr = 0;
GFileAttributeValue *value;
g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
- if (attr == 0)
- attr = lookup_attribute (G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK);
-
- value = g_file_info_find_value (info, attr);
- return (GFileType)_g_file_attribute_value_get_boolean (value);
+ get_required_attribute (&value, info, G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK, FALSE);
+ return _g_file_attribute_value_get_boolean (value);
}
/**
@@ -1610,20 +1684,19 @@ g_file_info_get_is_symlink (GFileInfo *info)
*
* Gets the name for a file. This is guaranteed to always be set.
*
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_STANDARD_NAME.
+ *
* Returns: (type filename) (not nullable): a string containing the file name.
**/
const char *
g_file_info_get_name (GFileInfo *info)
{
- static guint32 attr = 0;
GFileAttributeValue *value;
g_return_val_if_fail (G_IS_FILE_INFO (info), NULL);
- if (attr == 0)
- attr = lookup_attribute (G_FILE_ATTRIBUTE_STANDARD_NAME);
-
- value = g_file_info_find_value (info, attr);
+ get_required_attribute (&value, info, G_FILE_ATTRIBUTE_STANDARD_NAME, NULL);
return _g_file_attribute_value_get_byte_string (value);
}
@@ -1633,20 +1706,19 @@ g_file_info_get_name (GFileInfo *info)
*
* Gets a display name for a file. This is guaranteed to always be set.
*
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME.
+ *
* Returns: (not nullable): a string containing the display name.
**/
const char *
g_file_info_get_display_name (GFileInfo *info)
{
- static guint32 attr = 0;
GFileAttributeValue *value;
g_return_val_if_fail (G_IS_FILE_INFO (info), NULL);
- if (attr == 0)
- attr = lookup_attribute (G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME);
-
- value = g_file_info_find_value (info, attr);
+ get_required_attribute (&value, info, G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME, NULL);
return _g_file_attribute_value_get_string (value);
}
@@ -1656,20 +1728,19 @@ g_file_info_get_display_name (GFileInfo *info)
*
* Gets the edit name for a file.
*
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME.
+ *
* Returns: a string containing the edit name.
**/
const char *
g_file_info_get_edit_name (GFileInfo *info)
{
- static guint32 attr = 0;
GFileAttributeValue *value;
g_return_val_if_fail (G_IS_FILE_INFO (info), NULL);
- if (attr == 0)
- attr = lookup_attribute (G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME);
-
- value = g_file_info_find_value (info, attr);
+ get_required_attribute (&value, info, G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME, NULL);
return _g_file_attribute_value_get_string (value);
}
@@ -1679,21 +1750,21 @@ g_file_info_get_edit_name (GFileInfo *info)
*
* Gets the icon for a file.
*
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_STANDARD_ICON.
+ *
* Returns: (nullable) (transfer none): #GIcon for the given @info.
**/
GIcon *
g_file_info_get_icon (GFileInfo *info)
{
- static guint32 attr = 0;
GFileAttributeValue *value;
GObject *obj;
g_return_val_if_fail (G_IS_FILE_INFO (info), NULL);
- if (attr == 0)
- attr = lookup_attribute (G_FILE_ATTRIBUTE_STANDARD_ICON);
+ get_required_attribute (&value, info, G_FILE_ATTRIBUTE_STANDARD_ICON, NULL);
- value = g_file_info_find_value (info, attr);
obj = _g_file_attribute_value_get_object (value);
if (G_IS_ICON (obj))
return G_ICON (obj);
@@ -1706,6 +1777,9 @@ g_file_info_get_icon (GFileInfo *info)
*
* Gets the symbolic icon for a file.
*
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON.
+ *
* Returns: (nullable) (transfer none): #GIcon for the given @info.
*
* Since: 2.34
@@ -1713,16 +1787,13 @@ g_file_info_get_icon (GFileInfo *info)
GIcon *
g_file_info_get_symbolic_icon (GFileInfo *info)
{
- static guint32 attr = 0;
GFileAttributeValue *value;
GObject *obj;
g_return_val_if_fail (G_IS_FILE_INFO (info), NULL);
- if (attr == 0)
- attr = lookup_attribute (G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON);
+ get_required_attribute (&value, info, G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON, NULL);
- value = g_file_info_find_value (info, attr);
obj = _g_file_attribute_value_get_object (value);
if (G_IS_ICON (obj))
return G_ICON (obj);
@@ -1735,21 +1806,20 @@ g_file_info_get_symbolic_icon (GFileInfo *info)
*
* Gets the file's content type.
*
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE.
+ *
* Returns: (nullable): a string containing the file's content type,
* or %NULL if unknown.
**/
const char *
g_file_info_get_content_type (GFileInfo *info)
{
- static guint32 attr = 0;
GFileAttributeValue *value;
g_return_val_if_fail (G_IS_FILE_INFO (info), NULL);
- if (attr == 0)
- attr = lookup_attribute (G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE);
-
- value = g_file_info_find_value (info, attr);
+ get_required_attribute (&value, info, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, NULL);
return _g_file_attribute_value_get_string (value);
}
@@ -1761,20 +1831,19 @@ g_file_info_get_content_type (GFileInfo *info)
* the %G_FILE_ATTRIBUTE_STANDARD_SIZE attribute and is converted
* from #guint64 to #goffset before returning the result.
*
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_STANDARD_SIZE.
+ *
* Returns: a #goffset containing the file's size (in bytes).
**/
goffset
g_file_info_get_size (GFileInfo *info)
{
- static guint32 attr = 0;
GFileAttributeValue *value;
g_return_val_if_fail (G_IS_FILE_INFO (info), (goffset) 0);
- if (attr == 0)
- attr = lookup_attribute (G_FILE_ATTRIBUTE_STANDARD_SIZE);
-
- value = g_file_info_find_value (info, attr);
+ get_required_attribute (&value, info, G_FILE_ATTRIBUTE_STANDARD_SIZE, (goffset) 0);
return (goffset) _g_file_attribute_value_get_uint64 (value);
}
@@ -1786,6 +1855,10 @@ g_file_info_get_size (GFileInfo *info)
* Gets the modification time of the current @info and sets it
* in @result.
*
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_TIME_MODIFIED. If %G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC is
+ * provided it will be used too.
+ *
* Deprecated: 2.62: Use g_file_info_get_modification_date_time() instead, as
* #GTimeVal is deprecated due to the year 2038 problem.
**/
@@ -1807,6 +1880,14 @@ g_file_info_get_modification_time (GFileInfo *info,
}
value = g_file_info_find_value (info, attr_mtime);
+
+ if (G_UNLIKELY (value == NULL))
+ {
+ g_critical ("GFileInfo created without " G_FILE_ATTRIBUTE_TIME_MODIFIED);
+ result->tv_sec = result->tv_usec = 0;
+ g_return_if_reached ();
+ }
+
result->tv_sec = _g_file_attribute_value_get_uint64 (value);
value = g_file_info_find_value (info, attr_mtime_usec);
result->tv_usec = _g_file_attribute_value_get_uint32 (value);
@@ -1820,9 +1901,10 @@ G_GNUC_END_IGNORE_DEPRECATIONS
* Gets the modification time of the current @info and returns it as a
* #GDateTime.
*
- * This requires the %G_FILE_ATTRIBUTE_TIME_MODIFIED attribute. If
- * %G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC is provided, the resulting #GDateTime
- * will have microsecond precision.
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_TIME_MODIFIED. If %G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC is
+ * provided, the resulting #GDateTime will additionally have microsecond
+ * precision.
*
* If nanosecond precision is needed, %G_FILE_ATTRIBUTE_TIME_MODIFIED_NSEC must
* be queried separately using g_file_info_get_attribute_uint32().
@@ -1868,9 +1950,10 @@ g_file_info_get_modification_date_time (GFileInfo *info)
* Gets the access time of the current @info and returns it as a
* #GDateTime.
*
- * This requires the %G_FILE_ATTRIBUTE_TIME_ACCESS attribute. If
- * %G_FILE_ATTRIBUTE_TIME_ACCESS_USEC is provided, the resulting #GDateTime
- * will have microsecond precision.
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_TIME_ACCESS. If %G_FILE_ATTRIBUTE_TIME_ACCESS_USEC is
+ * provided, the resulting #GDateTime will additionally have microsecond
+ * precision.
*
* If nanosecond precision is needed, %G_FILE_ATTRIBUTE_TIME_ACCESS_NSEC must
* be queried separately using g_file_info_get_attribute_uint32().
@@ -1916,9 +1999,10 @@ g_file_info_get_access_date_time (GFileInfo *info)
* Gets the creation time of the current @info and returns it as a
* #GDateTime.
*
- * This requires the %G_FILE_ATTRIBUTE_TIME_CREATED attribute. If
- * %G_FILE_ATTRIBUTE_TIME_CREATED_USEC is provided, the resulting #GDateTime
- * will have microsecond precision.
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_TIME_CREATED. If %G_FILE_ATTRIBUTE_TIME_CREATED_USEC is
+ * provided, the resulting #GDateTime will additionally have microsecond
+ * precision.
*
* If nanosecond precision is needed, %G_FILE_ATTRIBUTE_TIME_CREATED_NSEC must
* be queried separately using g_file_info_get_attribute_uint32().
@@ -1963,20 +2047,19 @@ g_file_info_get_creation_date_time (GFileInfo *info)
*
* Gets the symlink target for a given #GFileInfo.
*
- * Returns: (nullable): a string containing the symlink target.
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET.
+ *
+ * Returns: (type filename) (nullable): a string containing the symlink target.
**/
const char *
g_file_info_get_symlink_target (GFileInfo *info)
{
- static guint32 attr = 0;
GFileAttributeValue *value;
g_return_val_if_fail (G_IS_FILE_INFO (info), NULL);
- if (attr == 0)
- attr = lookup_attribute (G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET);
-
- value = g_file_info_find_value (info, attr);
+ get_required_attribute (&value, info, G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET, NULL);
return _g_file_attribute_value_get_byte_string (value);
}
@@ -1987,20 +2070,19 @@ g_file_info_get_symlink_target (GFileInfo *info)
* Gets the [entity tag][gfile-etag] for a given
* #GFileInfo. See %G_FILE_ATTRIBUTE_ETAG_VALUE.
*
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_ETAG_VALUE.
+ *
* Returns: (nullable): a string containing the value of the "etag:value" attribute.
**/
const char *
g_file_info_get_etag (GFileInfo *info)
{
- static guint32 attr = 0;
GFileAttributeValue *value;
g_return_val_if_fail (G_IS_FILE_INFO (info), NULL);
- if (attr == 0)
- attr = lookup_attribute (G_FILE_ATTRIBUTE_ETAG_VALUE);
-
- value = g_file_info_find_value (info, attr);
+ get_required_attribute (&value, info, G_FILE_ATTRIBUTE_ETAG_VALUE, NULL);
return _g_file_attribute_value_get_string (value);
}
@@ -2011,20 +2093,19 @@ g_file_info_get_etag (GFileInfo *info)
* Gets the value of the sort_order attribute from the #GFileInfo.
* See %G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER.
*
+ * It is an error to call this if the #GFileInfo does not contain
+ * %G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER.
+ *
* Returns: a #gint32 containing the value of the "standard::sort_order" attribute.
**/
gint32
g_file_info_get_sort_order (GFileInfo *info)
{
- static guint32 attr = 0;
GFileAttributeValue *value;
g_return_val_if_fail (G_IS_FILE_INFO (info), 0);
- if (attr == 0)
- attr = lookup_attribute (G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER);
-
- value = g_file_info_find_value (info, attr);
+ get_required_attribute (&value, info, G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER, 0);
return _g_file_attribute_value_get_int32 (value);
}
@@ -2457,7 +2538,7 @@ g_file_info_set_creation_date_time (GFileInfo *info,
/**
* g_file_info_set_symlink_target:
* @info: a #GFileInfo.
- * @symlink_target: a static string containing a path to a symlink target.
+ * @symlink_target: (type filename): a static string containing a path to a symlink target.
*
* Sets the %G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET attribute in the file info
* to the given symlink target.
@@ -2804,7 +2885,7 @@ g_file_attribute_matcher_unref (GFileAttributeMatcher *matcher)
* @matcher: a #GFileAttributeMatcher.
* @attribute: a file attribute key.
*
- * Checks if a attribute matcher only matches a given attribute. Always
+ * Checks if an attribute matcher only matches a given attribute. Always
* returns %FALSE if "*" was used when creating the matcher.
*
* Returns: %TRUE if the matcher only matches @attribute. %FALSE otherwise.
diff --git a/gio/gfileinfo.h b/gio/gfileinfo.h
index 28bddfebc..95207b80b 100644
--- a/gio/gfileinfo.h
+++ b/gio/gfileinfo.h
@@ -917,7 +917,7 @@ typedef struct _GFileInfoClass GFileInfoClass;
* G_FILE_ATTRIBUTE_THUMBNAIL_PATH:
*
* A key in the "thumbnail" namespace for getting the path to the thumbnail
- * image.
+ * image with the biggest size available.
*
* Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
**/
@@ -949,6 +949,182 @@ typedef struct _GFileInfoClass GFileInfoClass;
*/
#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID "thumbnail::is-valid" /* boolean */
+/**
+ * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL:
+ *
+ * A key in the "thumbnail" namespace for getting the path to the normal
+ * thumbnail image.
+ *
+ * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
+ *
+ * Since: 2.76
+ */
+#define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL "thumbnail::path-normal" /* bytestring */
+/**
+ * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL:
+ *
+ * A key in the "thumbnail" namespace for checking if thumbnailing failed
+ * for the normal image.
+ *
+ * This attribute is %TRUE if thumbnailing failed.
+ *
+ * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
+ *
+ * Since: 2.76
+ */
+#define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL "thumbnail::failed-normal" /* boolean */
+/**
+ * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL:
+ *
+ * A key in the "thumbnail" namespace for checking whether the normal
+ * thumbnail is outdated.
+ *
+ * This attribute is %TRUE if the normal thumbnail is up-to-date with the file
+ * it represents, and %FALSE if the file has been modified since the thumbnail
+ * was generated.
+ *
+ * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL is %TRUE and this attribute
+ * is %FALSE, it indicates that thumbnailing may be attempted again and may
+ * succeed.
+ *
+ * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
+ *
+ * Since: 2.76
+ */
+#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL "thumbnail::is-valid-normal" /* boolean */
+
+/**
+ * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE:
+ *
+ * A key in the "thumbnail" namespace for getting the path to the large
+ * thumbnail image.
+ *
+ * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
+ *
+ * Since: 2.76
+ */
+#define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE "thumbnail::path-large" /* bytestring */
+/**
+ * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE:
+ *
+ * A key in the "thumbnail" namespace for checking if thumbnailing failed
+ * for the large image.
+ *
+ * This attribute is %TRUE if thumbnailing failed.
+ *
+ * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
+ *
+ * Since: 2.76
+ */
+#define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE "thumbnail::failed-large" /* boolean */
+/**
+ * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE:
+ *
+ * A key in the "thumbnail" namespace for checking whether the large
+ * thumbnail is outdated.
+ *
+ * This attribute is %TRUE if the large thumbnail is up-to-date with the file
+ * it represents, and %FALSE if the file has been modified since the thumbnail
+ * was generated.
+ *
+ * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE is %TRUE and this attribute
+ * is %FALSE, it indicates that thumbnailing may be attempted again and may
+ * succeed.
+ *
+ * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
+ *
+ * Since: 2.76
+ */
+#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE "thumbnail::is-valid-large" /* boolean */
+
+/**
+ * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE:
+ *
+ * A key in the "thumbnail" namespace for getting the path to the x-large
+ * thumbnail image.
+ *
+ * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
+ *
+ * Since: 2.76
+ */
+#define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE "thumbnail::path-xlarge" /* bytestring */
+/**
+ * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE:
+ *
+ * A key in the "thumbnail" namespace for checking if thumbnailing failed
+ * for the x-large image.
+ *
+ * This attribute is %TRUE if thumbnailing failed.
+ *
+ * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
+ *
+ * Since: 2.76
+ */
+#define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE "thumbnail::failed-xlarge" /* boolean */
+/**
+ * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE:
+ *
+ * A key in the "thumbnail" namespace for checking whether the x-large
+ * thumbnail is outdated.
+ *
+ * This attribute is %TRUE if the x-large thumbnail is up-to-date with the file
+ * it represents, and %FALSE if the file has been modified since the thumbnail
+ * was generated.
+ *
+ * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE is %TRUE and this attribute
+ * is %FALSE, it indicates that thumbnailing may be attempted again and may
+ * succeed.
+ *
+ * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
+ *
+ * Since: 2.76
+ */
+#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE "thumbnail::is-valid-xlarge" /* boolean */
+
+/**
+ * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE:
+ *
+ * A key in the "thumbnail" namespace for getting the path to the xx-large
+ * thumbnail image.
+ *
+ * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
+ *
+ * Since: 2.76
+ */
+#define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE "thumbnail::path-xxlarge" /* bytestring */
+/**
+ * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE:
+ *
+ * A key in the "thumbnail" namespace for checking if thumbnailing failed
+ * for the xx-large image.
+ *
+ * This attribute is %TRUE if thumbnailing failed.
+ *
+ * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
+ *
+ * Since: 2.76
+ */
+#define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE "thumbnail::failed-xxlarge" /* boolean */
+/**
+ * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE:
+ *
+ * A key in the "thumbnail" namespace for checking whether the xx-large
+ * thumbnail is outdated.
+ *
+ * This attribute is %TRUE if the x-large thumbnail is up-to-date with the file
+ * it represents, and %FALSE if the file has been modified since the thumbnail
+ * was generated.
+ *
+ * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE is %TRUE and this attribute
+ * is %FALSE, it indicates that thumbnailing may be attempted again and may
+ * succeed.
+ *
+ * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
+ *
+ * Since: 2.76
+ */
+#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE "thumbnail::is-valid-xxlarge" /* boolean */
+
/* Preview */
/**
@@ -1116,246 +1292,253 @@ typedef struct _GFileInfoClass GFileInfoClass;
**/
#define G_FILE_ATTRIBUTE_RECENT_MODIFIED "recent::modified" /* int64 (time_t) */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_file_info_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo * g_file_info_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo * g_file_info_dup (GFileInfo *other);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_copy_into (GFileInfo *src_info,
GFileInfo *dest_info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_info_has_attribute (GFileInfo *info,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_info_has_namespace (GFileInfo *info,
const char *name_space);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char ** g_file_info_list_attributes (GFileInfo *info,
const char *name_space);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_info_get_attribute_data (GFileInfo *info,
const char *attribute,
GFileAttributeType *type,
gpointer *value_pp,
GFileAttributeStatus *status);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileAttributeType g_file_info_get_attribute_type (GFileInfo *info,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_remove_attribute (GFileInfo *info,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileAttributeStatus g_file_info_get_attribute_status (GFileInfo *info,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_info_set_attribute_status (GFileInfo *info,
const char *attribute,
GFileAttributeStatus status);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_file_info_get_attribute_as_string (GFileInfo *info,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_file_info_get_attribute_string (GFileInfo *info,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_file_info_get_attribute_byte_string (GFileInfo *info,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_info_get_attribute_boolean (GFileInfo *info,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint32 g_file_info_get_attribute_uint32 (GFileInfo *info,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint32 g_file_info_get_attribute_int32 (GFileInfo *info,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint64 g_file_info_get_attribute_uint64 (GFileInfo *info,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint64 g_file_info_get_attribute_int64 (GFileInfo *info,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GObject * g_file_info_get_attribute_object (GFileInfo *info,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char ** g_file_info_get_attribute_stringv (GFileInfo *info,
const char *attribute);
+GIO_AVAILABLE_IN_2_78
+const char * g_file_info_get_attribute_file_path (GFileInfo *info,
+ const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_attribute (GFileInfo *info,
const char *attribute,
GFileAttributeType type,
gpointer value_p);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_attribute_string (GFileInfo *info,
const char *attribute,
const char *attr_value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_attribute_byte_string (GFileInfo *info,
const char *attribute,
const char *attr_value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_attribute_boolean (GFileInfo *info,
const char *attribute,
gboolean attr_value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_attribute_uint32 (GFileInfo *info,
const char *attribute,
guint32 attr_value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_attribute_int32 (GFileInfo *info,
const char *attribute,
gint32 attr_value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_attribute_uint64 (GFileInfo *info,
const char *attribute,
guint64 attr_value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_attribute_int64 (GFileInfo *info,
const char *attribute,
gint64 attr_value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_attribute_object (GFileInfo *info,
const char *attribute,
GObject *attr_value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_attribute_stringv (GFileInfo *info,
const char *attribute,
char **attr_value);
+GIO_AVAILABLE_IN_2_78
+void g_file_info_set_attribute_file_path (GFileInfo *info,
+ const char *attribute,
+ const char *attr_value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_clear_status (GFileInfo *info);
/* Helper getters: */
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
GDateTime * g_file_info_get_deletion_date (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileType g_file_info_get_file_type (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_info_get_is_hidden (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_info_get_is_backup (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_info_get_is_symlink (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_file_info_get_name (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_file_info_get_display_name (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_file_info_get_edit_name (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_file_info_get_icon (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_file_info_get_symbolic_icon (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_file_info_get_content_type (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
goffset g_file_info_get_size (GFileInfo *info);
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-GLIB_DEPRECATED_IN_2_62_FOR(g_file_info_get_modification_date_time)
+GIO_DEPRECATED_IN_2_62_FOR(g_file_info_get_modification_date_time)
void g_file_info_get_modification_time (GFileInfo *info,
GTimeVal *result);
G_GNUC_END_IGNORE_DEPRECATIONS
-GLIB_AVAILABLE_IN_2_62
+GIO_AVAILABLE_IN_2_62
GDateTime * g_file_info_get_modification_date_time (GFileInfo *info);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
GDateTime * g_file_info_get_access_date_time (GFileInfo *info);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
GDateTime * g_file_info_get_creation_date_time (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_file_info_get_symlink_target (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_file_info_get_etag (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint32 g_file_info_get_sort_order (GFileInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_attribute_mask (GFileInfo *info,
GFileAttributeMatcher *mask);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_unset_attribute_mask (GFileInfo *info);
/* Helper setters: */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_file_type (GFileInfo *info,
GFileType type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_is_hidden (GFileInfo *info,
gboolean is_hidden);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_is_symlink (GFileInfo *info,
gboolean is_symlink);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_name (GFileInfo *info,
const char *name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_display_name (GFileInfo *info,
const char *display_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_edit_name (GFileInfo *info,
const char *edit_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_icon (GFileInfo *info,
GIcon *icon);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_symbolic_icon (GFileInfo *info,
GIcon *icon);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_content_type (GFileInfo *info,
const char *content_type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_size (GFileInfo *info,
goffset size);
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-GLIB_DEPRECATED_IN_2_62_FOR(g_file_info_set_modification_date_time)
+GIO_DEPRECATED_IN_2_62_FOR(g_file_info_set_modification_date_time)
void g_file_info_set_modification_time (GFileInfo *info,
GTimeVal *mtime);
G_GNUC_END_IGNORE_DEPRECATIONS
-GLIB_AVAILABLE_IN_2_62
+GIO_AVAILABLE_IN_2_62
void g_file_info_set_modification_date_time (GFileInfo *info,
GDateTime *mtime);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
void g_file_info_set_access_date_time (GFileInfo *info,
GDateTime *atime);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
void g_file_info_set_creation_date_time (GFileInfo *info,
GDateTime *creation_time);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_symlink_target (GFileInfo *info,
const char *symlink_target);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_info_set_sort_order (GFileInfo *info,
gint32 sort_order);
#define G_TYPE_FILE_ATTRIBUTE_MATCHER (g_file_attribute_matcher_get_type ())
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_file_attribute_matcher_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileAttributeMatcher *g_file_attribute_matcher_new (const char *attributes);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileAttributeMatcher *g_file_attribute_matcher_ref (GFileAttributeMatcher *matcher);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_attribute_matcher_unref (GFileAttributeMatcher *matcher);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileAttributeMatcher *g_file_attribute_matcher_subtract (GFileAttributeMatcher *matcher,
GFileAttributeMatcher *subtract);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_attribute_matcher_matches (GFileAttributeMatcher *matcher,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_attribute_matcher_matches_only (GFileAttributeMatcher *matcher,
const char *attribute);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_attribute_matcher_enumerate_namespace (GFileAttributeMatcher *matcher,
const char *ns);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_file_attribute_matcher_enumerate_next (GFileAttributeMatcher *matcher);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
char * g_file_attribute_matcher_to_string (GFileAttributeMatcher *matcher);
G_END_DECLS
diff --git a/gio/gfileinputstream.c b/gio/gfileinputstream.c
index 44eb07c68..a78db7e81 100644
--- a/gio/gfileinputstream.c
+++ b/gio/gfileinputstream.c
@@ -177,8 +177,9 @@ async_ready_callback_wrapper (GObject *source_object,
* @attributes: a file attribute query string.
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Queries the stream information asynchronously.
* When the operation is finished @callback will be called.
diff --git a/gio/gfileinputstream.h b/gio/gfileinputstream.h
index 83a000fd0..54626951d 100644
--- a/gio/gfileinputstream.h
+++ b/gio/gfileinputstream.h
@@ -91,22 +91,22 @@ struct _GFileInputStreamClass
void (*_g_reserved5) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_file_input_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo *g_file_input_stream_query_info (GFileInputStream *stream,
const char *attributes,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_input_stream_query_info_async (GFileInputStream *stream,
const char *attributes,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo *g_file_input_stream_query_info_finish (GFileInputStream *stream,
GAsyncResult *result,
GError **error);
diff --git a/gio/gfileiostream.c b/gio/gfileiostream.c
index 97dbc322f..ecfbf6424 100644
--- a/gio/gfileiostream.c
+++ b/gio/gfileiostream.c
@@ -195,8 +195,9 @@ async_ready_callback_wrapper (GObject *source_object,
* @attributes: a file attribute query string.
* @io_priority: the [I/O priority][gio-GIOScheduler] of the request
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously queries the @stream for a #GFileInfo. When completed,
* @callback will be called with a #GAsyncResult which can be used to
diff --git a/gio/gfileiostream.h b/gio/gfileiostream.h
index 2db4e2b04..c1c70c561 100644
--- a/gio/gfileiostream.h
+++ b/gio/gfileiostream.h
@@ -96,26 +96,26 @@ struct _GFileIOStreamClass
void (*_g_reserved5) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_file_io_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo *g_file_io_stream_query_info (GFileIOStream *stream,
const char *attributes,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_io_stream_query_info_async (GFileIOStream *stream,
const char *attributes,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo *g_file_io_stream_query_info_finish (GFileIOStream *stream,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_file_io_stream_get_etag (GFileIOStream *stream);
G_END_DECLS
diff --git a/gio/gfilemonitor.h b/gio/gfilemonitor.h
index 06cd2d77d..b677efc91 100644
--- a/gio/gfilemonitor.h
+++ b/gio/gfilemonitor.h
@@ -76,20 +76,20 @@ struct _GFileMonitorClass
void (*_g_reserved5) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_file_monitor_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_monitor_cancel (GFileMonitor *monitor);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_file_monitor_is_cancelled (GFileMonitor *monitor);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_monitor_set_rate_limit (GFileMonitor *monitor,
gint limit_msecs);
/* For implementations */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_monitor_emit_event (GFileMonitor *monitor,
GFile *child,
GFile *other_file,
diff --git a/gio/gfilenamecompleter.h b/gio/gfilenamecompleter.h
index 95ecae307..b105e49ce 100644
--- a/gio/gfilenamecompleter.h
+++ b/gio/gfilenamecompleter.h
@@ -60,19 +60,19 @@ struct _GFilenameCompleterClass
void (*_g_reserved3) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_filename_completer_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFilenameCompleter *g_filename_completer_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_filename_completer_get_completion_suffix (GFilenameCompleter *completer,
const char *initial_text);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char ** g_filename_completer_get_completions (GFilenameCompleter *completer,
const char *initial_text);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_filename_completer_set_dirs_only (GFilenameCompleter *completer,
gboolean dirs_only);
diff --git a/gio/gfileoutputstream.h b/gio/gfileoutputstream.h
index 5af8eabcd..576b21fb8 100644
--- a/gio/gfileoutputstream.h
+++ b/gio/gfileoutputstream.h
@@ -96,27 +96,27 @@ struct _GFileOutputStreamClass
void (*_g_reserved5) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_file_output_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo *g_file_output_stream_query_info (GFileOutputStream *stream,
const char *attributes,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_file_output_stream_query_info_async (GFileOutputStream *stream,
const char *attributes,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo *g_file_output_stream_query_info_finish (GFileOutputStream *stream,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_file_output_stream_get_etag (GFileOutputStream *stream);
G_END_DECLS
diff --git a/gio/gfilterinputstream.h b/gio/gfilterinputstream.h
index 09a087a7a..df6032c27 100644
--- a/gio/gfilterinputstream.h
+++ b/gio/gfilterinputstream.h
@@ -65,13 +65,13 @@ struct _GFilterInputStreamClass
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_filter_input_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInputStream * g_filter_input_stream_get_base_stream (GFilterInputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_filter_input_stream_get_close_base_stream (GFilterInputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_filter_input_stream_set_close_base_stream (GFilterInputStream *stream,
gboolean close_base);
diff --git a/gio/gfilteroutputstream.h b/gio/gfilteroutputstream.h
index 5fc6b8279..472f9d80d 100644
--- a/gio/gfilteroutputstream.h
+++ b/gio/gfilteroutputstream.h
@@ -65,13 +65,13 @@ struct _GFilterOutputStreamClass
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_filter_output_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GOutputStream * g_filter_output_stream_get_base_stream (GFilterOutputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_filter_output_stream_get_close_base_stream (GFilterOutputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_filter_output_stream_set_close_base_stream (GFilterOutputStream *stream,
gboolean close_base);
diff --git a/gio/ggtknotificationbackend.c b/gio/ggtknotificationbackend.c
index 8d6eab2fb..b749eae41 100644
--- a/gio/ggtknotificationbackend.c
+++ b/gio/ggtknotificationbackend.c
@@ -50,7 +50,7 @@ g_gtk_notification_backend_is_supported (void)
GVariant *reply;
/* Find out if the notification server is running. This is a
- * synchronous call because gio extension points don't support asnyc
+ * synchronous call because gio extension points don't support async
* backend verification. This is only run once and only contacts the
* dbus daemon. */
diff --git a/gio/gicon.c b/gio/gicon.c
index ae0e4eb98..cd69922f1 100644
--- a/gio/gicon.c
+++ b/gio/gicon.c
@@ -85,7 +85,7 @@ g_icon_default_init (GIconInterface *iface)
/**
* g_icon_hash:
- * @icon: (not nullable): #gconstpointer to an icon object.
+ * @icon: (not nullable) (type Gio.Icon): #gconstpointer to an icon object.
*
* Gets a hash for an icon.
*
@@ -106,7 +106,7 @@ g_icon_hash (gconstpointer icon)
}
/**
- * g_icon_equal:
+ * g_icon_equal: (virtual equal)
* @icon1: (nullable): pointer to the first #GIcon.
* @icon2: (nullable): pointer to the second #GIcon.
*
@@ -204,7 +204,6 @@ g_icon_to_string_tokenized (GIcon *icon, GString *s)
* - If @icon is a #GThemedIcon with exactly one name and no fallbacks,
* the encoding is simply the name (such as `network-server`).
*
- * Virtual: to_tokens
* Returns: (nullable): An allocated NUL-terminated UTF8 string or
* %NULL if @icon can't be serialized. Use g_free() to free.
*
@@ -646,7 +645,7 @@ g_icon_deserialize (GVariant *value)
}
/**
- * g_icon_serialize:
+ * g_icon_serialize: (virtual serialize)
* @icon: a #GIcon
*
* Serializes a #GIcon into a #GVariant. An equivalent #GIcon can be retrieved
diff --git a/gio/gicon.h b/gio/gicon.h
index 22e7e5ef5..c971cb00b 100644
--- a/gio/gicon.h
+++ b/gio/gicon.h
@@ -69,9 +69,38 @@ struct _GIconIface
guint (* hash) (GIcon *icon);
gboolean (* equal) (GIcon *icon1,
GIcon *icon2);
+
+ /**
+ * GIconIface::to_tokens:
+ * @icon: The #GIcon
+ * @tokens: (element-type utf8) (out caller-allocates):
+ * The array to fill with tokens
+ * @out_version: (out): version of serialized tokens
+ *
+ * Serializes the @icon into string tokens.
+ * This is can be invoked when g_icon_new_for_string() is called.
+ *
+ * Returns: %TRUE if serialization took place, %FALSE otherwise
+ *
+ * Since: 2.20
+ */
gboolean (* to_tokens) (GIcon *icon,
- GPtrArray *tokens,
+ GPtrArray *tokens,
gint *out_version);
+
+ /**
+ * GIconIface::from_tokens:
+ * @tokens: (array length=num_tokens): An array of tokens
+ * @num_tokens: The number of tokens in @tokens
+ * @version: Version of the serialized tokens
+ * @error: Return location for errors, or %NULL to ignore
+ *
+ * Constructs a #GIcon from a list of @tokens.
+ *
+ * Returns: (nullable) (transfer full): the #GIcon or %NULL on error
+ *
+ * Since: 2.20
+ */
GIcon * (* from_tokens) (gchar **tokens,
gint num_tokens,
gint version,
@@ -80,23 +109,23 @@ struct _GIconIface
GVariant * (* serialize) (GIcon *icon);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_icon_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_icon_hash (gconstpointer icon);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_icon_equal (GIcon *icon1,
GIcon *icon2);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar *g_icon_to_string (GIcon *icon);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon *g_icon_new_for_string (const gchar *str,
GError **error);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
GVariant * g_icon_serialize (GIcon *icon);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
GIcon * g_icon_deserialize (GVariant *value);
G_END_DECLS
diff --git a/gio/ginetaddress.h b/gio/ginetaddress.h
index 5a1b7da69..ea503a927 100644
--- a/gio/ginetaddress.h
+++ b/gio/ginetaddress.h
@@ -58,66 +58,66 @@ struct _GInetAddressClass
const guint8 * (*to_bytes) (GInetAddress *address);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_inet_address_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInetAddress * g_inet_address_new_from_string (const gchar *string);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInetAddress * g_inet_address_new_from_bytes (const guint8 *bytes,
GSocketFamily family);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInetAddress * g_inet_address_new_loopback (GSocketFamily family);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInetAddress * g_inet_address_new_any (GSocketFamily family);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_inet_address_equal (GInetAddress *address,
GInetAddress *other_address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar * g_inet_address_to_string (GInetAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const guint8 * g_inet_address_to_bytes (GInetAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gsize g_inet_address_get_native_size (GInetAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketFamily g_inet_address_get_family (GInetAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_inet_address_get_is_any (GInetAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_inet_address_get_is_loopback (GInetAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_inet_address_get_is_link_local (GInetAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_inet_address_get_is_site_local (GInetAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_inet_address_get_is_multicast (GInetAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_inet_address_get_is_mc_global (GInetAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_inet_address_get_is_mc_link_local (GInetAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_inet_address_get_is_mc_node_local (GInetAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_inet_address_get_is_mc_org_local (GInetAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_inet_address_get_is_mc_site_local (GInetAddress *address);
G_END_DECLS
diff --git a/gio/ginetaddressmask.h b/gio/ginetaddressmask.h
index f4a9769e9..25cce7500 100644
--- a/gio/ginetaddressmask.h
+++ b/gio/ginetaddressmask.h
@@ -53,31 +53,31 @@ struct _GInetAddressMaskClass
};
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GType g_inet_address_mask_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GInetAddressMask *g_inet_address_mask_new (GInetAddress *addr,
guint length,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GInetAddressMask *g_inet_address_mask_new_from_string (const gchar *mask_string,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gchar *g_inet_address_mask_to_string (GInetAddressMask *mask);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GSocketFamily g_inet_address_mask_get_family (GInetAddressMask *mask);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GInetAddress *g_inet_address_mask_get_address (GInetAddressMask *mask);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
guint g_inet_address_mask_get_length (GInetAddressMask *mask);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_inet_address_mask_matches (GInetAddressMask *mask,
GInetAddress *address);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_inet_address_mask_equal (GInetAddressMask *mask,
GInetAddressMask *mask2);
diff --git a/gio/ginetsocketaddress.h b/gio/ginetsocketaddress.h
index c0c418d03..a983abef2 100644
--- a/gio/ginetsocketaddress.h
+++ b/gio/ginetsocketaddress.h
@@ -55,24 +55,24 @@ struct _GInetSocketAddressClass
GSocketAddressClass parent_class;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_inet_socket_address_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketAddress *g_inet_socket_address_new (GInetAddress *address,
guint16 port);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GSocketAddress *g_inet_socket_address_new_from_string (const char *address,
guint port);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInetAddress * g_inet_socket_address_get_address (GInetSocketAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint16 g_inet_socket_address_get_port (GInetSocketAddress *address);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
guint32 g_inet_socket_address_get_flowinfo (GInetSocketAddress *address);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
guint32 g_inet_socket_address_get_scope_id (GInetSocketAddress *address);
G_END_DECLS
diff --git a/gio/ginitable.h b/gio/ginitable.h
index 981c3c98e..9eb995c48 100644
--- a/gio/ginitable.h
+++ b/gio/ginitable.h
@@ -68,15 +68,15 @@ struct _GInitableIface
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_initable_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_initable_init (GInitable *initable,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gpointer g_initable_new (GType object_type,
GCancellable *cancellable,
GError **error,
@@ -85,7 +85,7 @@ gpointer g_initable_new (GType object_type,
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-GLIB_DEPRECATED_IN_2_54_FOR(g_object_new_with_properties and g_initable_init)
+GIO_DEPRECATED_IN_2_54_FOR(g_object_new_with_properties and g_initable_init)
gpointer g_initable_newv (GType object_type,
guint n_parameters,
GParameter *parameters,
@@ -94,7 +94,7 @@ gpointer g_initable_newv (GType object_type,
G_GNUC_END_IGNORE_DEPRECATIONS
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GObject* g_initable_new_valist (GType object_type,
const gchar *first_property_name,
va_list var_args,
diff --git a/gio/ginputstream.c b/gio/ginputstream.c
index e5a21b6d0..e1da5face 100644
--- a/gio/ginputstream.c
+++ b/gio/ginputstream.c
@@ -589,8 +589,9 @@ async_ready_close_callback_wrapper (GObject *source_object,
* @io_priority: the [I/O priority][io-priority]
* of the request.
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Request an asynchronous read of @count bytes from the stream into the buffer
* starting at @buffer. When the operation is finished @callback will be called.
@@ -780,8 +781,9 @@ read_all_async_thread (GTask *task,
* @count: (in): the number of bytes that will be read from the stream
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Request an asynchronous read of @count bytes from the stream into the
* buffer starting at @buffer.
@@ -915,8 +917,9 @@ read_bytes_callback (GObject *stream,
* @count: the number of bytes that will be read from the stream
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Request an asynchronous read of @count bytes from the stream into a
* new #GBytes. When the operation is finished @callback will be
@@ -993,8 +996,9 @@ g_input_stream_read_bytes_finish (GInputStream *stream,
* @count: the number of bytes that will be skipped from the stream
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Request an asynchronous skip of @count bytes from the stream.
* When the operation is finished @callback will be called.
@@ -1104,8 +1108,9 @@ g_input_stream_skip_finish (GInputStream *stream,
* @stream: A #GInputStream.
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional cancellable object
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Requests an asynchronous closes of the stream, releasing resources related to it.
* When the operation is finished @callback will be called.
diff --git a/gio/ginputstream.h b/gio/ginputstream.h
index deb139b01..a7be7689c 100644
--- a/gio/ginputstream.h
+++ b/gio/ginputstream.h
@@ -111,37 +111,37 @@ struct _GInputStreamClass
void (*_g_reserved5) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_input_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_input_stream_read (GInputStream *stream,
void *buffer,
gsize count,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_input_stream_read_all (GInputStream *stream,
void *buffer,
gsize count,
gsize *bytes_read,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GBytes *g_input_stream_read_bytes (GInputStream *stream,
gsize count,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_input_stream_skip (GInputStream *stream,
gsize count,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_input_stream_close (GInputStream *stream,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_input_stream_read_async (GInputStream *stream,
void *buffer,
gsize count,
@@ -149,12 +149,12 @@ void g_input_stream_read_async (GInputStream *stream,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_input_stream_read_finish (GInputStream *stream,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
void g_input_stream_read_all_async (GInputStream *stream,
void *buffer,
gsize count,
@@ -162,55 +162,55 @@ void g_input_stream_read_all_async (GInputStream *stream,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
gboolean g_input_stream_read_all_finish (GInputStream *stream,
GAsyncResult *result,
gsize *bytes_read,
GError **error);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
void g_input_stream_read_bytes_async (GInputStream *stream,
gsize count,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GBytes *g_input_stream_read_bytes_finish (GInputStream *stream,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_input_stream_skip_async (GInputStream *stream,
gsize count,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_input_stream_skip_finish (GInputStream *stream,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_input_stream_close_async (GInputStream *stream,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_input_stream_close_finish (GInputStream *stream,
GAsyncResult *result,
GError **error);
/* For implementations: */
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_input_stream_is_closed (GInputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_input_stream_has_pending (GInputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_input_stream_set_pending (GInputStream *stream,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_input_stream_clear_pending (GInputStream *stream);
G_END_DECLS
diff --git a/gio/gio-querymodules.c b/gio/gio-querymodules.c
index faddbcfb8..145d6ddae 100644
--- a/gio/gio-querymodules.c
+++ b/gio/gio-querymodules.c
@@ -21,7 +21,8 @@
*/
#include "config.h"
-#include "giomodule.h"
+
+#include <gio/gio.h>
#include "giomodule-priv.h"
#include <gstdio.h>
@@ -34,9 +35,15 @@ static gboolean
is_valid_module_name (const gchar *basename)
{
#if !defined(G_OS_WIN32) && !defined(G_WITH_CYGWIN)
+ #if defined(__APPLE__)
+ return g_str_has_prefix (basename, "lib") &&
+ (g_str_has_suffix (basename, ".so") ||
+ g_str_has_suffix (basename, ".dylib"));
+ #else
return
g_str_has_prefix (basename, "lib") &&
g_str_has_suffix (basename, ".so");
+ #endif
#else
return g_str_has_suffix (basename, ".dll");
#endif
diff --git a/gio/gio-tool-info.c b/gio/gio-tool-info.c
index c992a6f02..dbdc6b69e 100644
--- a/gio/gio-tool-info.c
+++ b/gio/gio-tool-info.c
@@ -157,21 +157,23 @@ show_info (GFile *file, GFileInfo *info)
GUnixMountEntry *entry;
#endif
- name = g_file_info_get_display_name (info);
+ name = g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME) ?
+ g_file_info_get_display_name (info) : NULL;
if (name)
{
- /* Translators: This is a noun and represents and attribute of a file */
flatten = flatten_string (name);
+ /* Translators: This is a noun and represents and attribute of a file */
g_print (_("display name: %s\n"), flatten);
g_free (flatten);
}
- name = g_file_info_get_edit_name (info);
+ name = g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME) ?
+ g_file_info_get_edit_name (info) : NULL;
if (name)
{
- /* Translators: This is a noun and represents and attribute of a file */
flatten = flatten_string (name);
- g_print (_("display name: %s\n"), flatten);
+ /* Translators: This is a noun and represents and attribute of a file */
+ g_print (_("edit name: %s\n"), flatten);
g_free (flatten);
}
@@ -196,7 +198,8 @@ show_info (GFile *file, GFileInfo *info)
g_print (" %"G_GUINT64_FORMAT"\n", (guint64)size);
}
- if (g_file_info_get_is_hidden (info))
+ if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN) &&
+ g_file_info_get_is_hidden (info))
g_print (_("hidden\n"));
uri = g_file_get_uri (file);
diff --git a/gio/gio-tool-launch.c b/gio/gio-tool-launch.c
index 18a9c5fb9..6b0d742f1 100644
--- a/gio/gio-tool-launch.c
+++ b/gio/gio-tool-launch.c
@@ -23,7 +23,7 @@
#include <gio/gio.h>
-#if defined(G_OS_UNIX) && !defined(HAVE_COCOA)
+#if defined(G_OS_UNIX) && !defined(__APPLE__)
#include <gio/gdesktopappinfo.h>
#endif
@@ -40,7 +40,7 @@ handle_launch (int argc, char *argv[], gboolean do_help)
{
GOptionContext *context;
GError *error = NULL;
-#if defined(G_OS_UNIX) && !defined(HAVE_COCOA)
+#if defined(G_OS_UNIX) && !defined(__APPLE__)
int i;
GAppInfo *app = NULL;
GAppLaunchContext *app_context = NULL;
@@ -83,7 +83,7 @@ handle_launch (int argc, char *argv[], gboolean do_help)
g_option_context_free (context);
-#if !defined(G_OS_UNIX) || defined(HAVE_COCOA)
+#if !defined(G_OS_UNIX) || defined(__APPLE__)
print_error (_("The launch command is not currently supported on this platform"));
retval = 1;
#else
diff --git a/gio/gio-tool-list.c b/gio/gio-tool-list.c
index 24e3dac3c..0da86269d 100644
--- a/gio/gio-tool-list.c
+++ b/gio/gio-tool-list.c
@@ -54,10 +54,12 @@ show_file_listing (GFileInfo *info, GFile *parent)
gboolean first_attr;
GFile *child;
- if ((g_file_info_get_is_hidden (info)) && !show_hidden)
+ if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN) &&
+ g_file_info_get_is_hidden (info) &&
+ !show_hidden)
return;
- if (print_display_names)
+ if (print_display_names && g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME))
name = g_file_info_get_display_name (info);
else
name = g_file_info_get_name (info);
@@ -71,7 +73,8 @@ show_file_listing (GFileInfo *info, GFile *parent)
g_object_unref (child);
}
- size = g_file_info_get_size (info);
+ size = g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_SIZE) ?
+ g_file_info_get_size (info) : 0;
type = file_type_to_string (g_file_info_get_file_type (info));
if (show_long)
g_print ("%s\t%"G_GUINT64_FORMAT"\t(%s)", print_uris? uri: name, (guint64)size, type);
diff --git a/gio/gio-tool-mount.c b/gio/gio-tool-mount.c
index 93575c9f3..13a78f7ca 100644
--- a/gio/gio-tool-mount.c
+++ b/gio/gio-tool-mount.c
@@ -320,6 +320,31 @@ mount_done_cb (GObject *object,
g_main_loop_quit (main_loop);
}
+static void
+show_unmount_progress (GMountOperation *self,
+ const gchar *message,
+ gint64 time_left,
+ gint64 bytes_left,
+ gpointer user_data)
+{
+ GStrv lines = NULL;
+ gchar *one_line = NULL;
+
+ if (message == NULL)
+ return;
+
+ lines = g_strsplit (message, "\n", -1);
+ one_line = g_strjoinv (" - ", lines);
+
+ /* Print just the message, the GVfsUDisks2VolumeMonitor doesn't report time or
+ * bytes.
+ */
+ g_print ("%s\n", one_line);
+
+ g_free (one_line);
+ g_strfreev (lines);
+}
+
static GMountOperation *
new_mount_op (void)
{
@@ -331,6 +356,7 @@ new_mount_op (void)
g_signal_connect (op, "ask_password", G_CALLBACK (ask_password_cb), NULL);
g_signal_connect (op, "ask_question", G_CALLBACK (ask_question_cb), NULL);
+ g_signal_connect (op, "show-unmount-progress", G_CALLBACK (show_unmount_progress), NULL);
/* TODO: we *should* also connect to the "aborted" signal but since the
* main thread is blocked handling input we won't get that signal anyway...
diff --git a/gio/gio-tool-open.c b/gio/gio-tool-open.c
index da8914a7c..fbc4c4bcc 100644
--- a/gio/gio-tool-open.c
+++ b/gio/gio-tool-open.c
@@ -23,7 +23,7 @@
#include <gio/gio.h>
-#if defined(G_OS_UNIX) && !defined(HAVE_COCOA)
+#if defined(G_OS_UNIX) && !defined(__APPLE__)
#include <gio/gdesktopappinfo.h>
#endif
diff --git a/gio/gio-tool-tree.c b/gio/gio-tool-tree.c
index 071588240..28fad051f 100644
--- a/gio/gio-tool-tree.c
+++ b/gio/gio-tool-tree.c
@@ -95,7 +95,9 @@ do_tree (GFile *f, unsigned int level, guint64 pattern)
info_list = NULL;
while ((info = g_file_enumerator_next_file (enumerator, NULL, NULL)) != NULL)
{
- if (g_file_info_get_is_hidden (info) && !show_hidden)
+ if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN) &&
+ g_file_info_get_is_hidden (info) &&
+ !show_hidden)
{
g_object_unref (info);
}
@@ -151,7 +153,8 @@ do_tree (GFile *f, unsigned int level, guint64 pattern)
}
else
{
- if (g_file_info_get_is_symlink (info))
+ if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK) &&
+ g_file_info_get_is_symlink (info))
{
const char *target;
target = g_file_info_get_symlink_target (info);
@@ -162,7 +165,9 @@ do_tree (GFile *f, unsigned int level, guint64 pattern)
g_print ("\n");
if ((type & G_FILE_TYPE_DIRECTORY) &&
- (follow_symlinks || !g_file_info_get_is_symlink (info)))
+ (follow_symlinks ||
+ !(g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK) &&
+ g_file_info_get_is_symlink (info))))
{
guint64 new_pattern;
GFile *child;
diff --git a/gio/gioenums.h b/gio/gioenums.h
index 1d109aad2..c820cd36d 100644
--- a/gio/gioenums.h
+++ b/gio/gioenums.h
@@ -28,6 +28,7 @@
#endif
#include <glib-object.h>
+#include <gio/gio-visibility.h>
G_BEGIN_DECLS
@@ -223,6 +224,9 @@ typedef enum {
* sizes. Normally, the block-size is used, if available, as this is a
* more accurate representation of disk space used.
* Compare with `du --apparent-size`.
+ * Since GLib 2.78. and similarly to `du` since GNU Coreutils 9.2, this will
+ * ignore the sizes of file types other than regular files and links, as the
+ * sizes of other file types are not specified in a standard way.
* @G_FILE_MEASURE_NO_XDEV: Do not cross mount point boundaries.
* Compare with `du -x`.
*
@@ -579,7 +583,7 @@ typedef enum {
G_IO_ERROR_CONNECTION_CLOSED = G_IO_ERROR_BROKEN_PIPE,
G_IO_ERROR_NOT_CONNECTED,
G_IO_ERROR_MESSAGE_TOO_LARGE,
- G_IO_ERROR_NO_SUCH_DEVICE GLIB_AVAILABLE_ENUMERATOR_IN_2_74,
+ G_IO_ERROR_NO_SUCH_DEVICE GIO_AVAILABLE_ENUMERATOR_IN_2_74,
} GIOErrorEnum;
@@ -1041,7 +1045,7 @@ typedef enum
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START = (1<<2),
G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES = (1<<3),
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION = (1<<4),
- G_DBUS_PROXY_FLAGS_NO_MATCH_RULE GLIB_AVAILABLE_ENUMERATOR_IN_2_72 = (1<<5)
+ G_DBUS_PROXY_FLAGS_NO_MATCH_RULE GIO_AVAILABLE_ENUMERATOR_IN_2_72 = (1<<5)
} GDBusProxyFlags;
/**
@@ -1234,8 +1238,8 @@ typedef enum {
G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS = (1<<2),
G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION = (1<<3),
G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING = (1<<4),
- G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<5),
- G_DBUS_CONNECTION_FLAGS_CROSS_NAMESPACE GLIB_AVAILABLE_ENUMERATOR_IN_2_74 = (1<<6)
+ G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GIO_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<5),
+ G_DBUS_CONNECTION_FLAGS_CROSS_NAMESPACE GIO_AVAILABLE_ENUMERATOR_IN_2_74 = (1<<6)
} GDBusConnectionFlags;
/**
@@ -1398,7 +1402,7 @@ typedef enum
G_DBUS_SERVER_FLAGS_NONE = 0,
G_DBUS_SERVER_FLAGS_RUN_IN_THREAD = (1<<0),
G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS = (1<<1),
- G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<2)
+ G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GIO_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<2)
} GDBusServerFlags;
/**
@@ -1533,8 +1537,8 @@ typedef enum
**/
typedef enum /*< prefix=G_APPLICATION >*/
{
- G_APPLICATION_FLAGS_NONE GLIB_DEPRECATED_ENUMERATOR_IN_2_74_FOR(G_APPLICATION_DEFAULT_FLAGS),
- G_APPLICATION_DEFAULT_FLAGS GLIB_AVAILABLE_ENUMERATOR_IN_2_74 = 0,
+ G_APPLICATION_FLAGS_NONE GIO_DEPRECATED_ENUMERATOR_IN_2_74_FOR(G_APPLICATION_DEFAULT_FLAGS),
+ G_APPLICATION_DEFAULT_FLAGS GIO_AVAILABLE_ENUMERATOR_IN_2_74 = 0,
G_APPLICATION_IS_SERVICE = (1 << 0),
G_APPLICATION_IS_LAUNCHER = (1 << 1),
@@ -1622,7 +1626,7 @@ typedef enum {
* Since: 2.28
*/
typedef enum {
- G_TLS_CERTIFICATE_NO_FLAGS GLIB_AVAILABLE_ENUMERATOR_IN_2_74 = 0,
+ G_TLS_CERTIFICATE_NO_FLAGS GIO_AVAILABLE_ENUMERATOR_IN_2_74 = 0,
G_TLS_CERTIFICATE_UNKNOWN_CA = (1 << 0),
G_TLS_CERTIFICATE_BAD_IDENTITY = (1 << 1),
G_TLS_CERTIFICATE_NOT_ACTIVATED = (1 << 2),
@@ -1669,11 +1673,11 @@ typedef enum {
*
* Since: 2.66
*/
-GLIB_AVAILABLE_TYPE_IN_2_66
+GIO_AVAILABLE_TYPE_IN_2_66
typedef enum {
G_TLS_CHANNEL_BINDING_TLS_UNIQUE,
G_TLS_CHANNEL_BINDING_TLS_SERVER_END_POINT,
- G_TLS_CHANNEL_BINDING_TLS_EXPORTER GLIB_AVAILABLE_ENUMERATOR_IN_2_74,
+ G_TLS_CHANNEL_BINDING_TLS_EXPORTER GIO_AVAILABLE_ENUMERATOR_IN_2_74,
} GTlsChannelBindingType;
/**
@@ -1700,7 +1704,7 @@ typedef enum {
*
* Since: 2.66
*/
-GLIB_AVAILABLE_TYPE_IN_2_66
+GIO_AVAILABLE_TYPE_IN_2_66
typedef enum {
G_TLS_CHANNEL_BINDING_ERROR_NOT_IMPLEMENTED,
G_TLS_CHANNEL_BINDING_ERROR_INVALID_STATE,
@@ -1728,7 +1732,7 @@ typedef enum {
G_TLS_REHANDSHAKE_NEVER,
G_TLS_REHANDSHAKE_SAFELY,
G_TLS_REHANDSHAKE_UNSAFELY
-} GTlsRehandshakeMode GLIB_DEPRECATED_TYPE_IN_2_60;
+} GTlsRehandshakeMode GIO_DEPRECATED_TYPE_IN_2_60;
/**
* GTlsPasswordFlags:
diff --git a/gio/gioenumtypes.h.template b/gio/gioenumtypes.h.template
index 1ab3c3727..c75a3b459 100644
--- a/gio/gioenumtypes.h.template
+++ b/gio/gioenumtypes.h.template
@@ -24,6 +24,7 @@
#define __GIO_ENUM_TYPES_H__
#include <glib-object.h>
+#include <gio/gio-visibility.h>
G_BEGIN_DECLS
/*** END file-header ***/
@@ -34,7 +35,7 @@ G_BEGIN_DECLS
/*** END file-production ***/
/*** BEGIN value-header ***/
-GLIB_AVAILABLE_IN_ALL GType @enum_name@_get_type (void) G_GNUC_CONST;
+GIO_AVAILABLE_IN_ALL GType @enum_name@_get_type (void) G_GNUC_CONST;
#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
/*** END value-header ***/
diff --git a/gio/gioerror.h b/gio/gioerror.h
index 958c4a931..71ccdb172 100644
--- a/gio/gioerror.h
+++ b/gio/gioerror.h
@@ -41,15 +41,15 @@ G_BEGIN_DECLS
**/
#define G_IO_ERROR g_io_error_quark()
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GQuark g_io_error_quark (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOErrorEnum g_io_error_from_errno (gint err_no);
-GLIB_AVAILABLE_IN_2_74
+GIO_AVAILABLE_IN_2_74
GIOErrorEnum g_io_error_from_file_error (GFileError file_error);
#ifdef G_OS_WIN32
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOErrorEnum g_io_error_from_win32_error (gint error_code);
#endif
diff --git a/gio/giomodule-priv.c b/gio/giomodule-priv.c
index 3dbbd0f29..92bde6069 100644
--- a/gio/giomodule-priv.c
+++ b/gio/giomodule-priv.c
@@ -21,6 +21,8 @@
*/
#include "config.h"
+
+#define __GIO_GIO_H_INSIDE__
#include "giomodule.h"
#include "giomodule-priv.h"
diff --git a/gio/giomodule.c b/gio/giomodule.c
index f5dbb4555..17fabe640 100644
--- a/gio/giomodule.c
+++ b/gio/giomodule.c
@@ -61,14 +61,14 @@
#endif
#include <glib/gstdio.h>
-#if defined(G_OS_UNIX) && !defined(HAVE_COCOA)
+#if defined(G_OS_UNIX) && !defined(__APPLE__)
#include "gdesktopappinfo.h"
#endif
#ifdef HAVE_COCOA
#include "gosxappinfo.h"
#endif
-#ifdef HAVE_COCOA
+#ifdef __APPLE__
#include <AvailabilityMacros.h>
#endif
@@ -430,9 +430,16 @@ is_valid_module_name (const gchar *basename,
gboolean result;
#if !defined(G_OS_WIN32) && !defined(G_WITH_CYGWIN)
+ #if defined(__APPLE__)
+ if (!g_str_has_prefix (basename, "lib") ||
+ !(g_str_has_suffix (basename, ".so") ||
+ g_str_has_suffix (basename, ".dylib")))
+ return FALSE;
+ #else
if (!g_str_has_prefix (basename, "lib") ||
!g_str_has_suffix (basename, ".so"))
return FALSE;
+ #endif
#else
if (!g_str_has_suffix (basename, ".dll"))
return FALSE;
@@ -579,13 +586,15 @@ g_io_modules_scan_all_in_directory_with_scope (const char *dirname,
{
/* Try to load and init types */
if (g_type_module_use (G_TYPE_MODULE (module)))
- g_type_module_unuse (G_TYPE_MODULE (module)); /* Unload */
+ {
+ g_type_module_unuse (G_TYPE_MODULE (module)); /* Unload */
+ /* module must remain alive, because the type system keeps weak refs */
+ g_ignore_leak (module);
+ }
else
- { /* Failure to load */
+ {
g_printerr ("Failed to load module: %s\n", path);
g_object_unref (module);
- g_free (path);
- continue;
}
}
@@ -1183,7 +1192,7 @@ _g_io_modules_ensure_extension_points_registered (void)
if (g_once_init_enter (&registered_extensions))
{
-#if defined(G_OS_UNIX) && !defined(HAVE_COCOA)
+#if defined(G_OS_UNIX) && !defined(__APPLE__)
#if !GLIB_CHECK_VERSION (3, 0, 0)
ep = g_io_extension_point_register (G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME);
g_io_extension_point_set_required_type (ep, G_TYPE_DESKTOP_APP_INFO_LOOKUP);
@@ -1262,6 +1271,31 @@ get_gio_module_dir (void)
g_free (install_dir);
#else
module_dir = g_strdup (GIO_MODULE_DIR);
+#ifdef __APPLE__
+#include "TargetConditionals.h"
+/* Only auto-relocate on macOS, not watchOS etc; older macOS SDKs only define TARGET_OS_MAC */
+#if (defined (TARGET_OS_OSX) && TARGET_OS_OSX) || \
+ (!defined (TARGET_OS_OSX) && defined (TARGET_OS_MAC) && TARGET_OS_MAC)
+#include <dlfcn.h>
+ {
+ g_autofree gchar *path = NULL;
+ g_autofree gchar *possible_dir = NULL;
+ Dl_info info;
+
+ if (dladdr (get_gio_module_dir, &info))
+ {
+ /* Gets path to the PREFIX/lib directory */
+ path = g_path_get_dirname (info.dli_fname);
+ possible_dir = g_build_filename (path, "gio", "modules", NULL);
+ if (g_file_test (possible_dir, G_FILE_TEST_IS_DIR))
+ {
+ g_free (module_dir);
+ module_dir = g_steal_pointer (&possible_dir);
+ }
+ }
+ }
+#endif
+#endif
#endif
}
@@ -1323,7 +1357,7 @@ _g_io_modules_ensure_loaded (void)
#ifdef G_OS_WIN32
g_type_ensure (_g_win32_volume_monitor_get_type ());
g_type_ensure (g_win32_file_monitor_get_type ());
- g_type_ensure (g_registry_backend_get_type ());
+ g_type_ensure (g_registry_settings_backend_get_type ());
#endif
#ifdef HAVE_COCOA
g_type_ensure (g_nextstep_settings_backend_get_type ());
diff --git a/gio/giomodule.h b/gio/giomodule.h
index 45a7c26e4..2fe7e1d06 100644
--- a/gio/giomodule.h
+++ b/gio/giomodule.h
@@ -34,11 +34,11 @@ G_BEGIN_DECLS
typedef struct _GIOModuleScope GIOModuleScope;
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
GIOModuleScope * g_io_module_scope_new (GIOModuleScopeFlags flags);
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
void g_io_module_scope_free (GIOModuleScope *scope);
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
void g_io_module_scope_block (GIOModuleScope *scope,
const gchar *basename);
@@ -56,54 +56,58 @@ void g_io_module_scope_block (GIOModuleScope *scope,
**/
typedef struct _GIOModuleClass GIOModuleClass;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_io_module_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOModule *g_io_module_new (const gchar *filename);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_io_modules_scan_all_in_directory (const char *dirname);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList *g_io_modules_load_all_in_directory (const gchar *dirname);
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
void g_io_modules_scan_all_in_directory_with_scope (const gchar *dirname,
GIOModuleScope *scope);
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
GList *g_io_modules_load_all_in_directory_with_scope (const gchar *dirname,
GIOModuleScope *scope);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOExtensionPoint *g_io_extension_point_register (const char *name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOExtensionPoint *g_io_extension_point_lookup (const char *name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_io_extension_point_set_required_type (GIOExtensionPoint *extension_point,
GType type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_io_extension_point_get_required_type (GIOExtensionPoint *extension_point);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList *g_io_extension_point_get_extensions (GIOExtensionPoint *extension_point);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOExtension * g_io_extension_point_get_extension_by_name (GIOExtensionPoint *extension_point,
const char *name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOExtension * g_io_extension_point_implement (const char *extension_point_name,
GType type,
const char *extension_name,
gint priority);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_io_extension_get_type (GIOExtension *extension);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_io_extension_get_name (GIOExtension *extension);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint g_io_extension_get_priority (GIOExtension *extension);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTypeClass* g_io_extension_ref_class (GIOExtension *extension);
-/* API for the modules to implement */
+/* API for the modules to implement.
+ * Note that those functions are not implemented by libgio, they are declared
+ * here to be implemented in modules, that's why it uses G_MODULE_EXPORT
+ * instead of GIO_AVAILABLE_IN_ALL.
+ */
/**
* g_io_module_load: (skip)
@@ -123,7 +127,7 @@ GTypeClass* g_io_extension_ref_class (GIOExtension
* statically. The old symbol names continue to be supported, but cannot be used
* for static builds.
**/
-GLIB_AVAILABLE_IN_ALL
+G_MODULE_EXPORT
void g_io_module_load (GIOModule *module);
/**
@@ -143,7 +147,7 @@ void g_io_module_load (GIOModule *module);
* statically. The old symbol names continue to be supported, but cannot be used
* for static builds.
**/
-GLIB_AVAILABLE_IN_ALL
+G_MODULE_EXPORT
void g_io_module_unload (GIOModule *module);
/**
@@ -187,7 +191,7 @@ void g_io_module_unload (GIOModule *module);
*
* Since: 2.24
**/
-GLIB_AVAILABLE_IN_ALL
+G_MODULE_EXPORT
char **g_io_module_query (void);
G_END_DECLS
diff --git a/gio/gioscheduler.h b/gio/gioscheduler.h
index ef51d5a0e..52162dce8 100644
--- a/gio/gioscheduler.h
+++ b/gio/gioscheduler.h
@@ -32,20 +32,20 @@
G_BEGIN_DECLS
-GLIB_DEPRECATED_IN_2_36_FOR ("GThreadPool or g_task_run_in_thread")
+GIO_DEPRECATED_IN_2_36_FOR ("GThreadPool or g_task_run_in_thread")
void g_io_scheduler_push_job (GIOSchedulerJobFunc job_func,
gpointer user_data,
GDestroyNotify notify,
gint io_priority,
GCancellable *cancellable);
-GLIB_DEPRECATED_IN_2_36
+GIO_DEPRECATED_IN_2_36
void g_io_scheduler_cancel_all_jobs (void);
-GLIB_DEPRECATED_IN_2_36_FOR (g_main_context_invoke)
+GIO_DEPRECATED_IN_2_36_FOR (g_main_context_invoke)
gboolean g_io_scheduler_job_send_to_mainloop (GIOSchedulerJob *job,
GSourceFunc func,
gpointer user_data,
GDestroyNotify notify);
-GLIB_DEPRECATED_IN_2_36_FOR (g_main_context_invoke)
+GIO_DEPRECATED_IN_2_36_FOR (g_main_context_invoke)
void g_io_scheduler_job_send_to_mainloop_async (GIOSchedulerJob *job,
GSourceFunc func,
gpointer user_data,
diff --git a/gio/giostream.c b/gio/giostream.c
index e1e14722d..194ba4998 100644
--- a/gio/giostream.c
+++ b/gio/giostream.c
@@ -464,8 +464,9 @@ async_ready_close_callback_wrapper (GObject *source_object,
* @stream: a #GIOStream
* @io_priority: the io priority of the request
* @cancellable: (nullable): optional cancellable object
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Requests an asynchronous close of the stream, releasing resources
* related to it. When the operation is finished @callback will be
@@ -829,8 +830,9 @@ splice_cancelled_cb (GCancellable *cancellable,
* @flags: a set of #GIOStreamSpliceFlags.
* @io_priority: the io priority of the request.
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback.
- * @user_data: (closure): user data passed to @callback.
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously splice the output stream of @stream1 to the input stream of
* @stream2, and splice the output stream of @stream2 to the input stream of
diff --git a/gio/giostream.h b/gio/giostream.h
index f862b48bd..52881c786 100644
--- a/gio/giostream.h
+++ b/gio/giostream.h
@@ -85,15 +85,15 @@ struct _GIOStreamClass
void (*_g_reserved10) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_io_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInputStream * g_io_stream_get_input_stream (GIOStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GOutputStream *g_io_stream_get_output_stream (GIOStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_io_stream_splice_async (GIOStream *stream1,
GIOStream *stream2,
GIOStreamSpliceFlags flags,
@@ -102,34 +102,34 @@ void g_io_stream_splice_async (GIOStream *stream1,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_io_stream_splice_finish (GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_io_stream_close (GIOStream *stream,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_io_stream_close_async (GIOStream *stream,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_io_stream_close_finish (GIOStream *stream,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_io_stream_is_closed (GIOStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_io_stream_has_pending (GIOStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_io_stream_set_pending (GIOStream *stream,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_io_stream_clear_pending (GIOStream *stream);
G_END_DECLS
diff --git a/gio/giotypes.h b/gio/giotypes.h
index f69766a38..82e091bef 100644
--- a/gio/giotypes.h
+++ b/gio/giotypes.h
@@ -263,7 +263,7 @@ typedef struct _GVolumeMonitor GVolumeMonitor;
* GAsyncReadyCallback:
* @source_object: (nullable): the object the asynchronous operation was started with.
* @res: a #GAsyncResult.
- * @user_data: user data passed to the callback.
+ * @data: user data passed to the callback.
*
* Type definition for a function that will be called back when an asynchronous
* operation within GIO has been completed. #GAsyncReadyCallback
@@ -280,13 +280,13 @@ typedef struct _GVolumeMonitor GVolumeMonitor;
**/
typedef void (*GAsyncReadyCallback) (GObject *source_object,
GAsyncResult *res,
- gpointer user_data);
+ gpointer data);
/**
* GFileProgressCallback:
* @current_num_bytes: the current number of bytes in the operation.
* @total_num_bytes: the total number of bytes in the operation.
- * @user_data: user data passed to the callback.
+ * @data: user data passed to the callback.
*
* When doing file operations that may take a while, such as moving
* a file or copying a file, a progress callback is used to pass how
@@ -294,13 +294,13 @@ typedef void (*GAsyncReadyCallback) (GObject *source_object,
**/
typedef void (*GFileProgressCallback) (goffset current_num_bytes,
goffset total_num_bytes,
- gpointer user_data);
+ gpointer data);
/**
* GFileReadMoreCallback:
* @file_contents: the data as currently read.
* @file_size: the size of the data currently read.
- * @user_data: data passed to the callback.
+ * @callback_data: data passed to the callback.
*
* When loading the partial contents of a file with g_file_load_partial_contents_async(),
* it may become necessary to determine if any more data from the file should be loaded.
@@ -311,7 +311,7 @@ typedef void (*GFileProgressCallback) (goffset current_num_bytes,
**/
typedef gboolean (* GFileReadMoreCallback) (const char *file_contents,
goffset file_size,
- gpointer user_data);
+ gpointer callback_data);
/**
* GFileMeasureProgressCallback:
@@ -319,7 +319,7 @@ typedef gboolean (* GFileReadMoreCallback) (const char *file_contents,
* @current_size: the current cumulative size measurement
* @num_dirs: the number of directories visited so far
* @num_files: the number of non-directory files encountered
- * @user_data: the data passed to the original request for this callback
+ * @data: the data passed to the original request for this callback
*
* This callback type is used by g_file_measure_disk_usage() to make
* periodic progress reports when measuring the amount of disk spaced
@@ -355,13 +355,13 @@ typedef void (* GFileMeasureProgressCallback) (gboolean reporting,
guint64 current_size,
guint64 num_dirs,
guint64 num_files,
- gpointer user_data);
+ gpointer data);
/**
* GIOSchedulerJobFunc:
* @job: a #GIOSchedulerJob.
* @cancellable: optional #GCancellable object, %NULL to ignore.
- * @user_data: the data to pass to callback function
+ * @data: data passed to the callback function
*
* I/O Job function.
*
@@ -373,7 +373,7 @@ typedef void (* GFileMeasureProgressCallback) (gboolean reporting,
**/
typedef gboolean (*GIOSchedulerJobFunc) (GIOSchedulerJob *job,
GCancellable *cancellable,
- gpointer user_data);
+ gpointer data);
/**
* GSimpleAsyncThreadFunc:
@@ -392,7 +392,7 @@ typedef void (*GSimpleAsyncThreadFunc) (GSimpleAsyncResult *res,
* GSocketSourceFunc:
* @socket: the #GSocket
* @condition: the current condition at the source fired.
- * @user_data: data passed in by the user.
+ * @data: data passed in by the user.
*
* This is the function type of the callback used for the #GSource
* returned by g_socket_create_source().
@@ -403,13 +403,13 @@ typedef void (*GSimpleAsyncThreadFunc) (GSimpleAsyncResult *res,
*/
typedef gboolean (*GSocketSourceFunc) (GSocket *socket,
GIOCondition condition,
- gpointer user_data);
+ gpointer data);
/**
* GDatagramBasedSourceFunc:
* @datagram_based: the #GDatagramBased
* @condition: the current condition at the source fired
- * @user_data: data passed in by the user
+ * @data: data passed in by the user
*
* This is the function type of the callback used for the #GSource
* returned by g_datagram_based_create_source().
@@ -421,7 +421,7 @@ typedef gboolean (*GSocketSourceFunc) (GSocket *socket,
*/
typedef gboolean (*GDatagramBasedSourceFunc) (GDatagramBased *datagram_based,
GIOCondition condition,
- gpointer user_data);
+ gpointer data);
/**
* GInputVector:
@@ -573,7 +573,7 @@ typedef struct _GDBusNodeInfo GDBusNodeInfo;
/**
* GCancellableSourceFunc:
* @cancellable: the #GCancellable
- * @user_data: data passed in by the user.
+ * @data: data passed in by the user.
*
* This is the function type of the callback used for the #GSource
* returned by g_cancellable_source_new().
@@ -583,12 +583,12 @@ typedef struct _GDBusNodeInfo GDBusNodeInfo;
* Since: 2.28
*/
typedef gboolean (*GCancellableSourceFunc) (GCancellable *cancellable,
- gpointer user_data);
+ gpointer data);
/**
* GPollableSourceFunc:
* @pollable_stream: the #GPollableInputStream or #GPollableOutputStream
- * @user_data: data passed in by the user.
+ * @data: data passed in by the user.
*
* This is the function type of the callback used for the #GSource
* returned by g_pollable_input_stream_create_source() and
@@ -599,7 +599,7 @@ typedef gboolean (*GCancellableSourceFunc) (GCancellable *cancellable,
* Since: 2.28
*/
typedef gboolean (*GPollableSourceFunc) (GObject *pollable_stream,
- gpointer user_data);
+ gpointer data);
typedef struct _GDBusInterface GDBusInterface; /* Dummy typedef */
typedef struct _GDBusInterfaceSkeleton GDBusInterfaceSkeleton;
@@ -615,7 +615,7 @@ typedef struct _GDBusObjectManagerServer GDBusObjectManagerServer;
* @manager: A #GDBusObjectManagerClient.
* @object_path: The object path of the remote object.
* @interface_name: (nullable): The interface name of the remote object or %NULL if a #GDBusObjectProxy #GType is requested.
- * @user_data: User data.
+ * @data: data passed in by the user.
*
* Function signature for a function used to determine the #GType to
* use for an interface proxy (if @interface_name is not %NULL) or
@@ -634,7 +634,7 @@ typedef struct _GDBusObjectManagerServer GDBusObjectManagerServer;
typedef GType (*GDBusProxyTypeFunc) (GDBusObjectManagerClient *manager,
const gchar *object_path,
const gchar *interface_name,
- gpointer user_data);
+ gpointer data);
typedef struct _GTestDBus GTestDBus;
diff --git a/gio/glib-compile-resources.c b/gio/glib-compile-resources.c
index df7f9f2a4..46eec1914 100644
--- a/gio/glib-compile-resources.c
+++ b/gio/glib-compile-resources.c
@@ -24,8 +24,6 @@
#include <glib.h>
#include <gstdio.h>
#include <gi18n.h>
-#include <gioenums.h>
-
#include <string.h>
#include <stdio.h>
#include <locale.h>
@@ -37,6 +35,8 @@
#include <io.h>
#endif
+#define __GIO_GIO_H_INSIDE__
+#include <gio/gioenums.h>
#include <gio/gmemoryoutputstream.h>
#include <gio/gzlibcompressor.h>
#include <gio/gconverteroutputstream.h>
@@ -837,6 +837,7 @@ main (int argc, char **argv)
#ifdef G_OS_WIN32
gchar *tmp;
+ gchar **command_line = NULL;
#endif
setlocale (LC_ALL, GLIB_DEFAULT_LOCALE);
@@ -863,11 +864,21 @@ main (int argc, char **argv)
g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
error = NULL;
+#ifdef G_OS_WIN32
+ command_line = g_win32_get_command_line ();
+ if (!g_option_context_parse_strv (context, &command_line, &error))
+ {
+ g_printerr ("%s\n", error->message);
+ return 1;
+ }
+ argc = g_strv_length (command_line);
+#else
if (!g_option_context_parse (context, &argc, &argv, &error))
{
g_printerr ("%s\n", error->message);
return 1;
}
+#endif
g_option_context_free (context);
@@ -890,7 +901,11 @@ main (int argc, char **argv)
compiler_type = get_compiler_id (compiler);
g_free (compiler);
+#ifdef G_OS_WIN32
+ srcfile = command_line[1];
+#else
srcfile = argv[1];
+#endif
xmllint = g_strdup (g_getenv ("XMLLINT"));
if (xmllint == NULL)
@@ -972,11 +987,15 @@ main (int argc, char **argv)
g_hash_table_iter_init (&iter, files);
dep_string = g_string_new (NULL);
- escaped = escape_makefile_string (srcfile);
+ escaped = escape_makefile_string (target);
g_string_printf (dep_string, "%s:", escaped);
g_free (escaped);
- /* First rule: foo.xml: resource1 resource2.. */
+ escaped = escape_makefile_string (srcfile);
+ g_string_append_printf (dep_string, " %s", escaped);
+ g_free (escaped);
+
+ /* First rule: foo.c: foo.xml resource1 resource2.. */
while (g_hash_table_iter_next (&iter, &key, &data))
{
file_data = data;
@@ -1310,5 +1329,9 @@ main (int argc, char **argv)
g_free (c_name);
g_hash_table_unref (files);
+#ifdef G_OS_WIN32
+ g_strfreev (command_line);
+#endif
+
return 0;
}
diff --git a/gio/glib-compile-schemas.c b/gio/glib-compile-schemas.c
index 326658a88..04ef40457 100644
--- a/gio/glib-compile-schemas.c
+++ b/gio/glib-compile-schemas.c
@@ -22,6 +22,7 @@
/* Prologue {{{1 */
#include "config.h"
+#include <glib.h>
#include <gstdio.h>
#include <gi18n.h>
@@ -709,8 +710,8 @@ key_state_serialise (KeyState *state)
gsize size;
gsize i;
- data = state->strinfo->str;
size = state->strinfo->len;
+ data = g_string_free_and_steal (g_steal_pointer (&state->strinfo));
words = data;
for (i = 0; i < size / sizeof (guint32); i++)
@@ -720,9 +721,6 @@ key_state_serialise (KeyState *state)
data, size, TRUE,
g_free, data);
- g_string_free (state->strinfo, FALSE);
- state->strinfo = NULL;
-
g_variant_builder_add (&builder, "(y@au)",
state->is_flags ? 'f' :
state->is_enum ? 'e' : 'c',
@@ -1869,8 +1867,8 @@ static gint
compare_strings (gconstpointer a,
gconstpointer b)
{
- gchar *one = *(gchar **) a;
- gchar *two = *(gchar **) b;
+ const gchar *one = a;
+ const gchar *two = b;
gint cmp;
cmp = g_str_has_suffix (two, ".enums.xml") -
@@ -2185,6 +2183,7 @@ main (int argc, char **argv)
#ifdef G_OS_WIN32
gchar *tmp = NULL;
+ gchar **command_line = NULL;
#endif
setlocale (LC_ALL, GLIB_DEFAULT_LOCALE);
@@ -2209,12 +2208,23 @@ main (int argc, char **argv)
"and the cache file is called gschemas.compiled."));
g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
+#ifdef G_OS_WIN32
+ command_line = g_win32_get_command_line ();
+ if (!g_option_context_parse_strv (context, &command_line, &error))
+ {
+ fprintf (stderr, "%s\n", error->message);
+ retval = 1;
+ goto done;
+ }
+ argc = g_strv_length (command_line);
+#else
if (!g_option_context_parse (context, &argc, &argv, &error))
{
fprintf (stderr, "%s\n", error->message);
retval = 1;
goto done;
}
+#endif
if (show_version_and_exit)
{
@@ -2230,7 +2240,11 @@ main (int argc, char **argv)
goto done;
}
+#ifdef G_OS_WIN32
+ srcdir = command_line[1];
+#else
srcdir = argv[1];
+#endif
target = g_build_filename (targetdir ? targetdir : srcdir, "gschemas.compiled", NULL);
@@ -2278,10 +2292,10 @@ main (int argc, char **argv)
retval = 0;
goto done;
}
- g_ptr_array_sort (files, compare_strings);
+ g_ptr_array_sort_values (files, compare_strings);
g_ptr_array_add (files, NULL);
- g_ptr_array_sort (overrides, compare_strings);
+ g_ptr_array_sort_values (overrides, compare_strings);
g_ptr_array_add (overrides, NULL);
schema_files = (char **) g_ptr_array_free (files, FALSE);
@@ -2323,6 +2337,7 @@ done:
#ifdef G_OS_WIN32
g_free (tmp);
+ g_strfreev (command_line);
#endif
return retval;
diff --git a/gio/glistmodel.c b/gio/glistmodel.c
index 3f9b85e91..349b08be2 100644
--- a/gio/glistmodel.c
+++ b/gio/glistmodel.c
@@ -124,6 +124,8 @@ G_DEFINE_INTERFACE (GListModel, g_list_model, G_TYPE_OBJECT)
* %NULL is never returned for an index that is smaller than the length
* of the list. See g_list_model_get_n_items().
*
+ * The same #GObject instance may not appear more than once in a #GListModel.
+ *
* Returns: (type GObject) (transfer full) (nullable): the object at @position.
*
* Since: 2.44
diff --git a/gio/glistmodel.h b/gio/glistmodel.h
index f2e0618a6..a96e3cea0 100644
--- a/gio/glistmodel.h
+++ b/gio/glistmodel.h
@@ -34,7 +34,7 @@
G_BEGIN_DECLS
#define G_TYPE_LIST_MODEL g_list_model_get_type ()
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
G_DECLARE_INTERFACE(GListModel, g_list_model, G, LIST_MODEL, GObject)
struct _GListModelInterface
@@ -49,21 +49,21 @@ struct _GListModelInterface
guint position);
};
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
GType g_list_model_get_item_type (GListModel *list);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
guint g_list_model_get_n_items (GListModel *list);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
gpointer g_list_model_get_item (GListModel *list,
guint position);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
GObject * g_list_model_get_object (GListModel *list,
guint position);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
void g_list_model_items_changed (GListModel *list,
guint position,
guint removed,
diff --git a/gio/gliststore.c b/gio/gliststore.c
index e7dbbd38f..497dfb5a8 100644
--- a/gio/gliststore.c
+++ b/gio/gliststore.c
@@ -305,8 +305,8 @@ g_list_store_insert (GListStore *store,
* g_list_store_insert_sorted:
* @store: a #GListStore
* @item: (type GObject): the new item
- * @compare_func: (scope call): pairwise comparison function for sorting
- * @user_data: (closure): user data for @compare_func
+ * @compare_func: (scope call) (closure user_data): pairwise comparison function for sorting
+ * @user_data: user data for @compare_func
*
* Inserts @item into @store at a position to be determined by the
* @compare_func.
@@ -345,8 +345,8 @@ g_list_store_insert_sorted (GListStore *store,
/**
* g_list_store_sort:
* @store: a #GListStore
- * @compare_func: (scope call): pairwise comparison function for sorting
- * @user_data: (closure): user data for @compare_func
+ * @compare_func: (scope call) (closure user_data): pairwise comparison function for sorting
+ * @user_data: user data for @compare_func
*
* Sort the items in @store according to @compare_func.
*
@@ -530,7 +530,7 @@ simple_equal (gconstpointer a,
/**
* g_list_store_find_with_equal_func:
* @store: a #GListStore
- * @item: (type GObject): an item
+ * @item: (type GObject) (nullable): an item
* @equal_func: (scope call): A custom equality check function
* @position: (out) (optional): the first position of @item, if it was found.
*
@@ -539,6 +539,10 @@ simple_equal (gconstpointer a,
* matches. If @item was not found, then @position will not be set, and this
* method will return %FALSE.
*
+ * @item is always passed as second parameter to @equal_func.
+ *
+ * Since GLib 2.76 it is possible to pass `NULL` for @item.
+ *
* Returns: Whether @store contains @item. If it was found, @position will be
* set to the position where @item occurred for the first time.
*
@@ -559,14 +563,18 @@ g_list_store_find_with_equal_func (GListStore *store,
/**
* g_list_store_find_with_equal_func_full:
* @store: a #GListStore
- * @item: (type GObject): an item
- * @equal_func: (scope call): A custom equality check function
- * @user_data: (closure): user data for @equal_func
+ * @item: (type GObject) (nullable): an item
+ * @equal_func: (scope call) (closure user_data): A custom equality check function
+ * @user_data: user data for @equal_func
* @position: (out) (optional): the first position of @item, if it was found.
*
* Like g_list_store_find_with_equal_func() but with an additional @user_data
* that is passed to @equal_func.
*
+ * @item is always passed as second parameter to @equal_func.
+ *
+ * Since GLib 2.76 it is possible to pass `NULL` for @item.
+ *
* Returns: Whether @store contains @item. If it was found, @position will be
* set to the position where @item occurred for the first time.
*
@@ -582,7 +590,7 @@ g_list_store_find_with_equal_func_full (GListStore *store,
GSequenceIter *iter, *begin, *end;
g_return_val_if_fail (G_IS_LIST_STORE (store), FALSE);
- g_return_val_if_fail (g_type_is_a (G_OBJECT_TYPE (item), store->item_type),
+ g_return_val_if_fail (item == NULL || g_type_is_a (G_OBJECT_TYPE (item), store->item_type),
FALSE);
g_return_val_if_fail (equal_func != NULL, FALSE);
diff --git a/gio/gliststore.h b/gio/gliststore.h
index 7583632de..958ca60d2 100644
--- a/gio/gliststore.h
+++ b/gio/gliststore.h
@@ -34,58 +34,58 @@
G_BEGIN_DECLS
#define G_TYPE_LIST_STORE (g_list_store_get_type ())
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
G_DECLARE_FINAL_TYPE(GListStore, g_list_store, G, LIST_STORE, GObject)
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
GListStore * g_list_store_new (GType item_type);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
void g_list_store_insert (GListStore *store,
guint position,
gpointer item);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
guint g_list_store_insert_sorted (GListStore *store,
gpointer item,
GCompareDataFunc compare_func,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
void g_list_store_sort (GListStore *store,
GCompareDataFunc compare_func,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
void g_list_store_append (GListStore *store,
gpointer item);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
void g_list_store_remove (GListStore *store,
guint position);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
void g_list_store_remove_all (GListStore *store);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
void g_list_store_splice (GListStore *store,
guint position,
guint n_removals,
gpointer *additions,
guint n_additions);
-GLIB_AVAILABLE_IN_2_64
+GIO_AVAILABLE_IN_2_64
gboolean g_list_store_find (GListStore *store,
gpointer item,
guint *position);
-GLIB_AVAILABLE_IN_2_64
+GIO_AVAILABLE_IN_2_64
gboolean g_list_store_find_with_equal_func (GListStore *store,
gpointer item,
GEqualFunc equal_func,
guint *position);
-GLIB_AVAILABLE_IN_2_74
+GIO_AVAILABLE_IN_2_74
gboolean g_list_store_find_with_equal_func_full (GListStore *store,
gpointer item,
GEqualFuncFull equal_func,
diff --git a/gio/gloadableicon.c b/gio/gloadableicon.c
index dbf55557e..1d3460d3c 100644
--- a/gio/gloadableicon.c
+++ b/gio/gloadableicon.c
@@ -95,9 +95,9 @@ g_loadable_icon_load (GLoadableIcon *icon,
* @icon: a #GLoadableIcon.
* @size: an integer.
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback to call when the
- * request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Loads an icon asynchronously. To finish this function, see
* g_loadable_icon_load_finish(). For the synchronous, blocking
diff --git a/gio/gloadableicon.h b/gio/gloadableicon.h
index c336cf77f..7a576ef9c 100644
--- a/gio/gloadableicon.h
+++ b/gio/gloadableicon.h
@@ -75,22 +75,22 @@ struct _GLoadableIconIface
GError **error);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_loadable_icon_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInputStream *g_loadable_icon_load (GLoadableIcon *icon,
int size,
char **type,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_loadable_icon_load_async (GLoadableIcon *icon,
int size,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInputStream *g_loadable_icon_load_finish (GLoadableIcon *icon,
GAsyncResult *res,
char **type,
diff --git a/gio/glocalfile.c b/gio/glocalfile.c
index ed7a663d2..dbb56902d 100644
--- a/gio/glocalfile.c
+++ b/gio/glocalfile.c
@@ -51,6 +51,10 @@
#define O_BINARY 0
#endif
+#ifndef O_CLOEXEC
+#define O_CLOEXEC 0
+#endif
+
#include "gfileattribute.h"
#include "glocalfile.h"
#include "glocalfileinfo.h"
@@ -82,6 +86,9 @@
#define FILE_READ_ONLY_VOLUME 0x00080000
#endif
+#ifndef S_ISREG
+#define S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG)
+#endif
#ifndef S_ISDIR
#define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR)
#endif
@@ -787,6 +794,7 @@ get_mount_info (GFileInfo *fs_info,
dev_t *dev;
GUnixMountEntry *mount;
guint64 cache_time;
+ gboolean is_remote = FALSE;
if (g_lstat (path, &buf) != 0)
return;
@@ -823,6 +831,8 @@ get_mount_info (GFileInfo *fs_info,
{
if (g_unix_mount_is_readonly (mount))
mount_info |= MOUNT_INFO_READONLY;
+ if (is_remote_fs_type (g_unix_mount_get_fs_type (mount)))
+ is_remote = TRUE;
g_unix_mount_free (mount);
}
@@ -838,8 +848,14 @@ get_mount_info (GFileInfo *fs_info,
G_UNLOCK (mount_info_hash);
}
- if (mount_info & MOUNT_INFO_READONLY)
- g_file_info_set_attribute_boolean (fs_info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY, TRUE);
+ if (g_file_attribute_matcher_matches (matcher,
+ G_FILE_ATTRIBUTE_FILESYSTEM_READONLY))
+ g_file_info_set_attribute_boolean (fs_info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY,
+ (mount_info & MOUNT_INFO_READONLY));
+
+ if (g_file_attribute_matcher_matches (matcher,
+ G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE))
+ g_file_info_set_attribute_boolean (fs_info, G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE, is_remote);
}
#endif
@@ -1085,7 +1101,9 @@ g_local_file_query_filesystem_info (GFile *file,
#endif /* G_OS_WIN32 */
if (g_file_attribute_matcher_matches (attribute_matcher,
- G_FILE_ATTRIBUTE_FILESYSTEM_READONLY))
+ G_FILE_ATTRIBUTE_FILESYSTEM_READONLY) ||
+ g_file_attribute_matcher_matches (attribute_matcher,
+ G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE))
{
#ifdef G_OS_WIN32
get_filesystem_readonly (info, local->filename);
@@ -1094,13 +1112,6 @@ g_local_file_query_filesystem_info (GFile *file,
#endif /* G_OS_WIN32 */
}
-#ifndef G_OS_WIN32
- if (g_file_attribute_matcher_matches (attribute_matcher,
- G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE))
- g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE,
- is_remote_fs_type (fstype));
-#endif
-
g_file_attribute_matcher_unref (attribute_matcher);
return info;
@@ -1348,7 +1359,7 @@ g_local_file_read (GFile *file,
int fd, ret;
GLocalFileStat buf;
- fd = g_open (local->filename, O_RDONLY|O_BINARY, 0);
+ fd = g_open (local->filename, O_RDONLY | O_BINARY | O_CLOEXEC, 0);
if (fd == -1)
{
int errsv = errno;
@@ -1921,7 +1932,7 @@ _g_local_file_has_trash_dir (const char *dirname, dev_t dir_dev)
return res;
}
-#ifdef G_OS_UNIX
+#ifndef G_OS_WIN32
gboolean
_g_local_file_is_lost_found_dir (const char *path, dev_t path_dev)
{
@@ -2223,7 +2234,7 @@ g_local_file_trash (GFile *file,
infofile = g_build_filename (infodir, infoname, NULL);
g_free (infoname);
- fd = g_open (infofile, O_CREAT | O_EXCL, 0666);
+ fd = g_open (infofile, O_CREAT | O_EXCL | O_CLOEXEC, 0666);
errsv = errno;
} while (fd == -1 && errsv == EEXIST);
@@ -2232,8 +2243,6 @@ g_local_file_trash (GFile *file,
if (fd == -1)
{
- errsv = errno;
-
g_free (filesdir);
g_free (topdir);
g_free (trashname);
@@ -2274,9 +2283,18 @@ g_local_file_trash (GFile *file,
original_name_escaped, delete_time);
g_free (delete_time);
- g_file_set_contents_full (infofile, data, -1,
+ if (!g_file_set_contents_full (infofile, data, -1,
G_FILE_SET_CONTENTS_CONSISTENT | G_FILE_SET_CONTENTS_ONLY_EXISTING,
- 0600, NULL);
+ 0600, error))
+ {
+ g_unlink (infofile);
+
+ g_free (filesdir);
+ g_free (trashname);
+ g_free (infofile);
+
+ return FALSE;
+ }
/* TODO: Maybe we should verify that you can delete the file from the trash
* before moving it? OTOH, that is hard, as it needs a recursive scan
@@ -2603,6 +2621,8 @@ is_remote_fs_type (const gchar *fsname)
return TRUE;
if (strcmp (fsname, "smb2") == 0)
return TRUE;
+ if (strcmp (fsname, "fuse.sshfs") == 0)
+ return TRUE;
}
return FALSE;
@@ -2760,6 +2780,39 @@ g_local_file_measure_size_of_contents (gint fd,
MeasureState *state,
GError **error);
+/*
+ * _g_stat_is_size_usable:
+ * @buf: a #GLocalFileStat.
+ *
+ * Checks if the file type is such that the `st_size` field of `struct stat` is
+ * well-defined by POSIX.
+ * (see https://pubs.opengroup.org/onlinepubs/009696799/basedefs/sys/stat.h.html)
+ *
+ * This behaviour is aligned with `du` from GNU Coreutils 9.2+
+ * (see https://lists.gnu.org/archive/html/bug-coreutils/2023-03/msg00007.html)
+ * and makes apparent size sums well-defined; formerly, they depended on the
+ * implementation, and could differ across filesystems.
+ *
+ * Returns: %TRUE if the size field is well-defined, %FALSE otherwise.
+ **/
+inline static gboolean
+_g_stat_is_size_usable (const GLocalFileStat *buf)
+{
+#ifndef HAVE_STATX
+ /* Memory objects are defined by POSIX, but are not supported by statx nor Windows */
+#ifdef S_TYPEISSHM
+ if (S_TYPEISSHM (buf))
+ return TRUE;
+#endif
+#ifdef S_TYPEISTMO
+ if (S_TYPEISTMO (buf))
+ return TRUE;
+#endif
+#endif
+
+ return S_ISREG (_g_stat_mode (buf)) || S_ISLNK (_g_stat_mode (buf));
+}
+
static gboolean
g_local_file_measure_size_of_file (gint parent_fd,
GSList *name,
@@ -2819,6 +2872,7 @@ g_local_file_measure_size_of_file (gint parent_fd,
state->disk_usage += _g_stat_blocks (&buf) * G_GUINT64_CONSTANT (512);
else
#endif
+ if (_g_stat_is_size_usable (&buf))
state->disk_usage += _g_stat_size (&buf);
if (S_ISDIR (_g_stat_mode (&buf)))
@@ -2868,9 +2922,9 @@ g_local_file_measure_size_of_file (gint parent_fd,
#ifdef AT_FDCWD
#ifdef HAVE_OPEN_O_DIRECTORY
- dir_fd = openat (parent_fd, name->data, O_RDONLY|O_DIRECTORY);
+ dir_fd = openat (parent_fd, name->data, O_RDONLY | O_DIRECTORY | O_CLOEXEC);
#else
- dir_fd = openat (parent_fd, name->data, O_RDONLY);
+ dir_fd = openat (parent_fd, name->data, O_RDONLY | O_CLOEXEC);
#endif
errsv = errno;
if (dir_fd < 0)
diff --git a/gio/glocalfileenumerator.c b/gio/glocalfileenumerator.c
index 21030bdc2..3694896a4 100644
--- a/gio/glocalfileenumerator.c
+++ b/gio/glocalfileenumerator.c
@@ -23,6 +23,7 @@
#include "config.h"
#include <glib.h>
+#include <gcancellable.h>
#include <glocalfileenumerator.h>
#include <glocalfileinfo.h>
#include <glocalfile.h>
@@ -383,6 +384,9 @@ g_local_file_enumerator_next_file (GFileEnumerator *enumerator,
next_file:
+ if (g_cancellable_set_error_if_cancelled (cancellable, error))
+ return NULL;
+
#ifdef USE_GDIR
filename = g_dir_read_name (local->dir);
file_type = G_FILE_TYPE_UNKNOWN;
diff --git a/gio/glocalfileinfo.c b/gio/glocalfileinfo.c
index 661d2266a..4f51427f5 100644
--- a/gio/glocalfileinfo.c
+++ b/gio/glocalfileinfo.c
@@ -92,6 +92,10 @@
#endif
#endif
+#ifndef O_CLOEXEC
+#define O_CLOEXEC 0
+#endif
+
#include "glocalfileinfo.h"
#include "gioerror.h"
#include "gthemedicon.h"
@@ -127,23 +131,9 @@ _g_local_file_info_create_etag (GLocalFileStat *statbuf)
g_return_val_if_fail (_g_stat_has_field (statbuf, G_LOCAL_FILE_STAT_FIELD_MTIME), NULL);
-#if defined (G_OS_WIN32)
- sec = statbuf->st_mtim.tv_sec;
- usec = statbuf->st_mtim.tv_nsec / 1000;
- nsec = statbuf->st_mtim.tv_nsec;
-#else
sec = _g_stat_mtime (statbuf);
-#if defined (HAVE_STRUCT_STAT_ST_MTIMENSEC)
- usec = statbuf->st_mtimensec / 1000;
- nsec = statbuf->st_mtimensec;
-#elif defined (HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC)
usec = _g_stat_mtim_nsec (statbuf) / 1000;
nsec = _g_stat_mtim_nsec (statbuf);
-#else
- usec = 0;
- nsec = 0;
-#endif
-#endif
return g_strdup_printf ("%lu:%lu:%lu", sec, usec, nsec);
}
@@ -1032,35 +1022,16 @@ set_info_from_stat (GFileInfo *info,
#endif
-#if defined (G_OS_WIN32)
- _g_file_info_set_attribute_uint64_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED, statbuf->st_mtim.tv_sec);
- _g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED_USEC, statbuf->st_mtim.tv_nsec / 1000);
- _g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED_NSEC, statbuf->st_mtim.tv_nsec);
- _g_file_info_set_attribute_uint64_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_ACCESS, statbuf->st_atim.tv_sec);
- _g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_ACCESS_USEC, statbuf->st_atim.tv_nsec / 1000);
- _g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_ACCESS_NSEC, statbuf->st_atim.tv_nsec);
-#else
_g_file_info_set_attribute_uint64_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED, _g_stat_mtime (statbuf));
-#if defined (HAVE_STRUCT_STAT_ST_MTIMENSEC)
- _g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED_USEC, statbuf->st_mtimensec / 1000);
- _g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED_NSEC, statbuf->st_mtimensec);
-#elif defined (HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC)
_g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED_USEC, _g_stat_mtim_nsec (statbuf) / 1000);
_g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED_NSEC, _g_stat_mtim_nsec (statbuf));
-#endif
if (_g_stat_has_field (statbuf, G_LOCAL_FILE_STAT_FIELD_ATIME))
{
_g_file_info_set_attribute_uint64_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_ACCESS, _g_stat_atime (statbuf));
-#if defined (HAVE_STRUCT_STAT_ST_ATIMENSEC)
- _g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_ACCESS_USEC, statbuf->st_atimensec / 1000);
- _g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_ACCESS_NSEC, statbuf->st_atimensec);
-#elif defined (HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC)
_g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_ACCESS_USEC, _g_stat_atim_nsec (statbuf) / 1000);
_g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_ACCESS_NSEC, _g_stat_atim_nsec (statbuf));
-#endif
}
-#endif
#ifndef G_OS_WIN32
/* Microsoft uses st_ctime for file creation time,
@@ -1069,14 +1040,9 @@ set_info_from_stat (GFileInfo *info,
* Thank you, Microsoft!
*/
_g_file_info_set_attribute_uint64_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_CHANGED, _g_stat_ctime (statbuf));
-#if defined (HAVE_STRUCT_STAT_ST_CTIMENSEC)
- _g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_CHANGED_USEC, statbuf->st_ctimensec / 1000);
- _g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_CHANGED_NSEC, statbuf->st_ctimensec);
-#elif defined (HAVE_STRUCT_STAT_ST_CTIM_TV_NSEC)
_g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_CHANGED_USEC, _g_stat_ctim_nsec (statbuf) / 1000);
_g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_TIME_CHANGED_NSEC, _g_stat_ctim_nsec (statbuf));
#endif
-#endif
#if defined (HAVE_STATX)
if (_g_stat_has_field (statbuf, G_LOCAL_FILE_STAT_FIELD_BTIME))
@@ -1361,12 +1327,8 @@ get_content_type (const char *basename,
{
/* Don't sniff zero-length files in order to avoid reading files
* that appear normal but are not (eg: files in /proc and /sys)
- *
- * Note that we need to return text/plain here so that
- * newly-created text files are opened by the text editor.
- * See https://bugzilla.gnome.org/show_bug.cgi?id=755795
*/
- return g_content_type_from_mime_type ("text/plain");
+ return g_content_type_from_mime_type ("application/x-zerosize");
}
#endif
#ifdef S_ISSOCK
@@ -1380,23 +1342,26 @@ get_content_type (const char *basename,
content_type = g_content_type_guess (basename, NULL, 0, &result_uncertain);
-#if !defined(G_OS_WIN32) && !defined(HAVE_COCOA)
+#if !defined(G_OS_WIN32) && !defined(__APPLE__)
if (!fast && result_uncertain && path != NULL)
{
guchar sniff_buffer[4096];
gsize sniff_length;
- int fd, errsv;
+#ifdef O_NOATIME
+ int errsv;
+#endif
+ int fd;
sniff_length = _g_unix_content_type_get_sniff_len ();
if (sniff_length == 0 || sniff_length > 4096)
sniff_length = 4096;
#ifdef O_NOATIME
- fd = g_open (path, O_RDONLY | O_NOATIME, 0);
+ fd = g_open (path, O_RDONLY | O_NOATIME | O_CLOEXEC, 0);
errsv = errno;
if (fd < 0 && errsv == EPERM)
#endif
- fd = g_open (path, O_RDONLY, 0);
+ fd = g_open (path, O_RDONLY | O_CLOEXEC, 0);
if (fd != -1)
{
@@ -1418,19 +1383,90 @@ get_content_type (const char *basename,
}
+typedef enum {
+ THUMBNAIL_SIZE_AUTO,
+ THUMBNAIL_SIZE_NORMAL,
+ THUMBNAIL_SIZE_LARGE,
+ THUMBNAIL_SIZE_XLARGE,
+ THUMBNAIL_SIZE_XXLARGE,
+ THUMBNAIL_SIZE_LAST,
+} ThumbnailSize;
+
+static const char *
+get_thumbnail_dirname_from_size (ThumbnailSize size)
+{
+ switch (size)
+ {
+ case THUMBNAIL_SIZE_AUTO:
+ return NULL;
+ break;
+ case THUMBNAIL_SIZE_NORMAL:
+ return "normal";
+ break;
+ case THUMBNAIL_SIZE_LARGE:
+ return "large";
+ break;
+ case THUMBNAIL_SIZE_XLARGE:
+ return "x-large";
+ break;
+ case THUMBNAIL_SIZE_XXLARGE:
+ return "xx-large";
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+
+ g_return_val_if_reached (NULL);
+}
+
/* @stat_buf is the pre-calculated result of stat(path), or %NULL if that failed. */
static void
get_thumbnail_attributes (const char *path,
GFileInfo *info,
- const GLocalFileStat *stat_buf)
+ const GLocalFileStat *stat_buf,
+ ThumbnailSize size)
{
GChecksum *checksum;
+ const char *dirname;
char *uri;
char *filename = NULL;
char *basename;
- const char *size_dirs[4] = { "xx-large", "x-large", "large", "normal" };
- gsize i;
-
+ guint32 failed_attr_id;
+ guint32 is_valid_attr_id;
+ guint32 path_attr_id;
+
+ switch (size)
+ {
+ case THUMBNAIL_SIZE_AUTO:
+ failed_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED;
+ is_valid_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID;
+ path_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH;
+ break;
+ case THUMBNAIL_SIZE_NORMAL:
+ failed_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED_NORMAL;
+ is_valid_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID_NORMAL;
+ path_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH_NORMAL;
+ break;
+ case THUMBNAIL_SIZE_LARGE:
+ failed_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED_LARGE;
+ is_valid_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID_LARGE;
+ path_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH_LARGE;
+ break;
+ case THUMBNAIL_SIZE_XLARGE:
+ failed_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED_XLARGE;
+ is_valid_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID_XLARGE;
+ path_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH_XLARGE;
+ break;
+ case THUMBNAIL_SIZE_XXLARGE:
+ failed_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED_XXLARGE;
+ is_valid_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID_XXLARGE;
+ path_attr_id = G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH_XXLARGE;
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+
+ dirname = get_thumbnail_dirname_from_size (size);
uri = g_filename_to_uri (path, NULL, NULL);
checksum = g_checksum_new (G_CHECKSUM_MD5);
@@ -1439,21 +1475,37 @@ get_thumbnail_attributes (const char *path,
basename = g_strconcat (g_checksum_get_string (checksum), ".png", NULL);
g_checksum_free (checksum);
- for (i = 0; i < G_N_ELEMENTS (size_dirs); i++)
+ if (dirname)
{
filename = g_build_filename (g_get_user_cache_dir (),
- "thumbnails", size_dirs[i], basename,
+ "thumbnails", dirname, basename,
NULL);
- if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
- break;
- g_clear_pointer (&filename, g_free);
+ if (!g_file_test (filename, G_FILE_TEST_IS_REGULAR))
+ g_clear_pointer (&filename, g_free);
+ }
+ else
+ {
+ gssize i;
+
+ for (i = THUMBNAIL_SIZE_LAST - 1; i >= 0 ; i--)
+ {
+ filename = g_build_filename (g_get_user_cache_dir (),
+ "thumbnails",
+ get_thumbnail_dirname_from_size (i),
+ basename,
+ NULL);
+ if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
+ break;
+
+ g_clear_pointer (&filename, g_free);
+ }
}
if (filename)
{
- _g_file_info_set_attribute_byte_string_by_id (info, G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH, filename);
- _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID,
+ _g_file_info_set_attribute_byte_string_by_id (info, path_attr_id, filename);
+ _g_file_info_set_attribute_boolean_by_id (info, is_valid_attr_id,
thumbnail_verify (filename, uri, stat_buf));
}
else
@@ -1466,11 +1518,12 @@ get_thumbnail_attributes (const char *path,
if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
{
- _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED, TRUE);
- _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID,
+ _g_file_info_set_attribute_boolean_by_id (info, failed_attr_id, TRUE);
+ _g_file_info_set_attribute_boolean_by_id (info, is_valid_attr_id,
thumbnail_verify (filename, uri, stat_buf));
}
}
+
g_free (basename);
g_free (filename);
g_free (uri);
@@ -1937,43 +1990,46 @@ _g_local_file_info_get (const char *basename,
symlink_broken = TRUE;
}
}
+ else
+ g_file_info_set_is_symlink (info, FALSE);
if (stat_ok)
set_info_from_stat (info, &statbuf, attribute_matcher);
-#ifdef G_OS_UNIX
- if (stat_ok && _g_local_file_is_lost_found_dir (path, _g_stat_dev (&statbuf)))
- g_file_info_set_is_hidden (info, TRUE);
-#endif
-
#ifndef G_OS_WIN32
if (_g_file_attribute_matcher_matches_id (attribute_matcher,
G_FILE_ATTRIBUTE_ID_STANDARD_IS_HIDDEN))
{
- if (basename != NULL &&
- (basename[0] == '.' ||
- file_is_hidden (path, basename)))
- g_file_info_set_is_hidden (info, TRUE);
+ g_file_info_set_is_hidden (info,
+ (basename != NULL &&
+ (basename[0] == '.' ||
+ file_is_hidden (path, basename) ||
+ (stat_ok &&
+ _g_local_file_is_lost_found_dir (path, _g_stat_dev (&statbuf))))));
}
- if (basename != NULL && basename[strlen (basename) -1] == '~' &&
- (stat_ok && S_ISREG (_g_stat_mode (&statbuf))))
- _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_STANDARD_IS_BACKUP, TRUE);
+ _g_file_info_set_attribute_boolean_by_id (info,
+ G_FILE_ATTRIBUTE_ID_STANDARD_IS_BACKUP,
+ basename != NULL && basename[strlen (basename) - 1] == '~' &&
+ (stat_ok && S_ISREG (_g_stat_mode (&statbuf))));
#else
- if (statbuf.attributes & FILE_ATTRIBUTE_HIDDEN)
- g_file_info_set_is_hidden (info, TRUE);
+ _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_STANDARD_IS_BACKUP, FALSE);
+
+ g_file_info_set_is_hidden (info, (statbuf.attributes & FILE_ATTRIBUTE_HIDDEN));
- if (statbuf.attributes & FILE_ATTRIBUTE_ARCHIVE)
- _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_IS_ARCHIVE, TRUE);
+ _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_IS_ARCHIVE,
+ (statbuf.attributes & FILE_ATTRIBUTE_ARCHIVE));
- if (statbuf.attributes & FILE_ATTRIBUTE_SYSTEM)
- _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_IS_SYSTEM, TRUE);
+ _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_IS_SYSTEM,
+ (statbuf.attributes & FILE_ATTRIBUTE_SYSTEM));
- if (statbuf.reparse_tag == IO_REPARSE_TAG_MOUNT_POINT)
- _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_IS_MOUNTPOINT, TRUE);
+ _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_IS_MOUNTPOINT,
+ (statbuf.reparse_tag == IO_REPARSE_TAG_MOUNT_POINT));
if (statbuf.reparse_tag != 0)
_g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_REPARSE_POINT_TAG, statbuf.reparse_tag);
+
+ _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_STANDARD_IS_BACKUP, FALSE);
#endif
symlink_target = NULL;
@@ -2089,9 +2145,9 @@ _g_local_file_info_get (const char *basename,
}
if (stat_ok && parent_info && parent_info->device != 0 &&
- _g_file_attribute_matcher_matches_id (attribute_matcher, G_FILE_ATTRIBUTE_ID_UNIX_IS_MOUNTPOINT) &&
- (_g_stat_dev (&statbuf) != parent_info->device || _g_stat_ino (&statbuf) == parent_info->inode))
- _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_UNIX_IS_MOUNTPOINT, TRUE);
+ _g_file_attribute_matcher_matches_id (attribute_matcher, G_FILE_ATTRIBUTE_ID_UNIX_IS_MOUNTPOINT))
+ _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_UNIX_IS_MOUNTPOINT,
+ (_g_stat_dev (&statbuf) != parent_info->device || _g_stat_ino (&statbuf) == parent_info->inode));
if (stat_ok)
get_access_rights (attribute_matcher, info, path, &statbuf, parent_info);
@@ -2109,10 +2165,47 @@ _g_local_file_info_get (const char *basename,
_g_file_attribute_matcher_matches_id (attribute_matcher,
G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED))
{
- if (stat_ok)
- get_thumbnail_attributes (path, info, &statbuf);
- else
- get_thumbnail_attributes (path, info, NULL);
+ get_thumbnail_attributes (path, info, stat_ok ? &statbuf : NULL, THUMBNAIL_SIZE_AUTO);
+ }
+
+ if (_g_file_attribute_matcher_matches_id (attribute_matcher,
+ G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH_NORMAL) ||
+ _g_file_attribute_matcher_matches_id (attribute_matcher,
+ G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID_NORMAL) ||
+ _g_file_attribute_matcher_matches_id (attribute_matcher,
+ G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED_NORMAL))
+ {
+ get_thumbnail_attributes (path, info, stat_ok ? &statbuf : NULL, THUMBNAIL_SIZE_NORMAL);
+ }
+
+ if (_g_file_attribute_matcher_matches_id (attribute_matcher,
+ G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH_LARGE) ||
+ _g_file_attribute_matcher_matches_id (attribute_matcher,
+ G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID_LARGE) ||
+ _g_file_attribute_matcher_matches_id (attribute_matcher,
+ G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED_LARGE))
+ {
+ get_thumbnail_attributes (path, info, stat_ok ? &statbuf : NULL, THUMBNAIL_SIZE_LARGE);
+ }
+
+ if (_g_file_attribute_matcher_matches_id (attribute_matcher,
+ G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH_XLARGE) ||
+ _g_file_attribute_matcher_matches_id (attribute_matcher,
+ G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID_XLARGE) ||
+ _g_file_attribute_matcher_matches_id (attribute_matcher,
+ G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED_XLARGE))
+ {
+ get_thumbnail_attributes (path, info, stat_ok ? &statbuf : NULL, THUMBNAIL_SIZE_XLARGE);
+ }
+
+ if (_g_file_attribute_matcher_matches_id (attribute_matcher,
+ G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH_XXLARGE) ||
+ _g_file_attribute_matcher_matches_id (attribute_matcher,
+ G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID_XXLARGE) ||
+ _g_file_attribute_matcher_matches_id (attribute_matcher,
+ G_FILE_ATTRIBUTE_ID_THUMBNAILING_FAILED_XXLARGE))
+ {
+ get_thumbnail_attributes (path, info, stat_ok ? &statbuf : NULL, THUMBNAIL_SIZE_XXLARGE);
}
vfs = g_vfs_get_default ();
@@ -2739,6 +2832,16 @@ set_mtime_atime (char *filename,
}
}
+ if (atime_usec_value)
+ {
+ guint32 val_usec = 0;
+
+ if (!get_uint32 (atime_usec_value, &val_usec, error))
+ return FALSE;
+
+ times_n[0].tv_nsec = val_usec * 1000;
+ }
+
if (atime_nsec_value)
{
guint32 val_nsec = 0;
@@ -2759,6 +2862,7 @@ set_mtime_atime (char *filename,
{
if (lazy_stat (filename, &statbuf, &got_stat) == 0)
{
+ times_n[1].tv_sec = statbuf.st_mtime;
#if defined (HAVE_STRUCT_STAT_ST_MTIMENSEC)
times_n[1].tv_nsec = statbuf.st_mtimensec;
#elif defined (HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC)
@@ -2767,6 +2871,16 @@ set_mtime_atime (char *filename,
}
}
+ if (mtime_usec_value)
+ {
+ guint32 val_usec = 0;
+
+ if (!get_uint32 (mtime_usec_value, &val_usec, error))
+ return FALSE;
+
+ times_n[1].tv_nsec = val_usec * 1000;
+ }
+
if (mtime_nsec_value)
{
guint32 val_nsec = 0;
diff --git a/gio/glocalfileinfo.h b/gio/glocalfileinfo.h
index 830122c3f..b098b1980 100644
--- a/gio/glocalfileinfo.h
+++ b/gio/glocalfileinfo.h
@@ -316,18 +316,22 @@ inline static blkcnt_t _g_stat_blocks (const GLocalFileStat *buf) { return b
#endif
#ifndef G_OS_WIN32
-inline static time_t _g_stat_atime (const GLocalFileStat *buf) { return buf->st_atime; }
-inline static time_t _g_stat_ctime (const GLocalFileStat *buf) { return buf->st_ctime; }
-inline static time_t _g_stat_mtime (const GLocalFileStat *buf) { return buf->st_mtime; }
+inline static guint64 _g_stat_atime (const GLocalFileStat *buf) { return buf->st_atime; }
+inline static guint64 _g_stat_ctime (const GLocalFileStat *buf) { return buf->st_ctime; }
+inline static guint64 _g_stat_mtime (const GLocalFileStat *buf) { return buf->st_mtime; }
#else
-inline static time_t _g_stat_atime (const GLocalFileStat *buf) { return buf->st_atim.tv_sec; }
-inline static time_t _g_stat_ctime (const GLocalFileStat *buf) { return buf->st_ctim.tv_sec; }
-inline static time_t _g_stat_mtime (const GLocalFileStat *buf) { return buf->st_mtim.tv_sec; }
+inline static guint64 _g_stat_atime (const GLocalFileStat *buf) { return buf->st_atim.tv_sec; }
+inline static guint64 _g_stat_ctime (const GLocalFileStat *buf) { return buf->st_ctim.tv_sec; }
+inline static guint64 _g_stat_mtime (const GLocalFileStat *buf) { return buf->st_mtim.tv_sec; }
#endif
#if defined(HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC) || defined(G_OS_WIN32)
inline static guint32 _g_stat_atim_nsec (const GLocalFileStat *buf) { return buf->st_atim.tv_nsec; }
inline static guint32 _g_stat_ctim_nsec (const GLocalFileStat *buf) { return buf->st_ctim.tv_nsec; }
inline static guint32 _g_stat_mtim_nsec (const GLocalFileStat *buf) { return buf->st_mtim.tv_nsec; }
+#elif defined(HAVE_STRUCT_STAT_ST_MTIMENSEC)
+inline static guint32 _g_stat_atim_nsec (const GLocalFileStat *buf) { return buf->st_atimensec; }
+inline static guint32 _g_stat_ctim_nsec (const GLocalFileStat *buf) { return buf->st_ctimensec; }
+inline static guint32 _g_stat_mtim_nsec (const GLocalFileStat *buf) { return buf->st_mtimensec; }
#else
inline static guint32 _g_stat_atim_nsec (const GLocalFileStat *buf) { return 0; }
inline static guint32 _g_stat_ctim_nsec (const GLocalFileStat *buf) { return 0; }
diff --git a/gio/glocalfilemonitor.h b/gio/glocalfilemonitor.h
index 9ef770a91..9a776dd86 100644
--- a/gio/glocalfilemonitor.h
+++ b/gio/glocalfilemonitor.h
@@ -66,7 +66,7 @@ struct _GLocalFileMonitorClass
};
#ifdef G_OS_UNIX
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
#endif
GType g_local_file_monitor_get_type (void) G_GNUC_CONST;
@@ -93,7 +93,7 @@ g_local_file_monitor_new_in_worker (const gchar *pathname,
GError **error);
/* for implementations of GLocalFileMonitor */
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
gboolean
g_file_monitor_source_handle_event (GFileMonitorSource *fms,
GFileMonitorEvent event_type,
diff --git a/gio/glocalfileoutputstream.c b/gio/glocalfileoutputstream.c
index 3ce987fba..6875811d0 100644
--- a/gio/glocalfileoutputstream.c
+++ b/gio/glocalfileoutputstream.c
@@ -700,7 +700,7 @@ _g_local_file_output_stream_open (const char *filename,
if (g_cancellable_set_error_if_cancelled (cancellable, error))
return NULL;
- open_flags = O_BINARY;
+ open_flags = O_BINARY | O_CLOEXEC;
if (readable)
open_flags |= O_RDWR;
else
@@ -737,7 +737,7 @@ _g_local_file_output_stream_create (const char *filename,
mode = mode_from_flags_or_info (flags, reference_info);
- open_flags = O_CREAT | O_EXCL | O_BINARY;
+ open_flags = O_CREAT | O_EXCL | O_BINARY | O_CLOEXEC;
if (readable)
open_flags |= O_RDWR;
else
@@ -762,7 +762,7 @@ _g_local_file_output_stream_append (const char *filename,
else
mode = 0666;
- return output_stream_open (filename, O_CREAT | O_APPEND | O_WRONLY | O_BINARY, mode,
+ return output_stream_open (filename, O_CREAT | O_APPEND | O_WRONLY | O_BINARY | O_CLOEXEC, mode,
cancellable, error);
}
@@ -865,9 +865,9 @@ handle_overwrite_open (const char *filename,
/* We only need read access to the original file if we are creating a backup.
* We also add O_CREAT to avoid a race if the file was just removed */
if (create_backup || readable)
- open_flags = O_RDWR | O_CREAT | O_BINARY;
+ open_flags = O_RDWR | O_CREAT | O_BINARY | O_CLOEXEC;
else
- open_flags = O_WRONLY | O_CREAT | O_BINARY;
+ open_flags = O_WRONLY | O_CREAT | O_BINARY | O_CLOEXEC;
/* Some systems have O_NOFOLLOW, which lets us avoid some races
* when finding out if the file we opened was a symlink */
@@ -1040,7 +1040,7 @@ handle_overwrite_open (const char *filename,
tmp_filename = g_build_filename (dirname, ".goutputstream-XXXXXX", NULL);
g_free (dirname);
- tmpfd = g_mkstemp_full (tmp_filename, (readable ? O_RDWR : O_WRONLY) | O_BINARY, mode);
+ tmpfd = g_mkstemp_full (tmp_filename, (readable ? O_RDWR : O_WRONLY) | O_BINARY | O_CLOEXEC, mode);
if (tmpfd == -1)
{
g_free (tmp_filename);
@@ -1113,7 +1113,7 @@ handle_overwrite_open (const char *filename,
}
bfd = g_open (backup_filename,
- O_WRONLY | O_CREAT | O_EXCL | O_BINARY,
+ O_WRONLY | O_CREAT | O_EXCL | O_BINARY | O_CLOEXEC,
_g_stat_mode (&original_stat) & 0777);
if (bfd == -1)
@@ -1208,9 +1208,9 @@ handle_overwrite_open (const char *filename,
}
if (readable)
- open_flags = O_RDWR | O_CREAT | O_BINARY;
+ open_flags = O_RDWR | O_CREAT | O_BINARY | O_CLOEXEC;
else
- open_flags = O_WRONLY | O_CREAT | O_BINARY;
+ open_flags = O_WRONLY | O_CREAT | O_BINARY | O_CLOEXEC;
fd = g_open (filename, open_flags, mode);
if (fd == -1)
{
diff --git a/gio/glocalvfs.c b/gio/glocalvfs.c
index a830cc350..00fec8e2b 100644
--- a/gio/glocalvfs.c
+++ b/gio/glocalvfs.c
@@ -94,14 +94,24 @@ g_local_vfs_get_file_for_uri (GVfs *vfs,
{
char *path;
GFile *file;
- char *stripped_uri, *hash;
-
+ char *stripped_uri, *hash, *question_mark;
+
+ /* As per https://url.spec.whatwg.org/#file-state, file: URIs can contain
+ * query and fragment sections. We ignore them in order to get only the file
+ * path. Compliance to this part of the WhatWG spec doesn’t necessarily mean
+ * we comply with the entire spec. */
if (strchr (uri, '#') != NULL)
{
stripped_uri = g_strdup (uri);
hash = strchr (stripped_uri, '#');
*hash = 0;
}
+ else if (strchr (uri, '?') != NULL)
+ {
+ stripped_uri = g_strdup (uri);
+ question_mark = strchr (stripped_uri, '?');
+ *question_mark = 0;
+ }
else
stripped_uri = (char *)uri;
diff --git a/gio/gmarshal-internal.c b/gio/gmarshal-internal.c
index b09a74026..9ef05cd6a 100644
--- a/gio/gmarshal-internal.c
+++ b/gio/gmarshal-internal.c
@@ -125,7 +125,7 @@ _g_cclosure_marshal_BOOLEAN__OBJECTv (GClosure *closure,
gpointer arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if (arg0 != NULL)
arg0 = g_object_ref (arg0);
@@ -216,7 +216,7 @@ _g_cclosure_marshal_BOOLEAN__OBJECT_FLAGSv (GClosure *closure,
guint arg1;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if (arg0 != NULL)
arg0 = g_object_ref (arg0);
@@ -309,7 +309,7 @@ _g_cclosure_marshal_BOOLEAN__OBJECT_OBJECTv (GClosure *closure,
gpointer arg1;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if (arg0 != NULL)
arg0 = g_object_ref (arg0);
@@ -406,7 +406,7 @@ _g_cclosure_marshal_BOOLEAN__POINTER_INTv (GClosure *closure,
gint arg1;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
arg1 = (gint) va_arg (args_copy, gint);
va_end (args_copy);
@@ -494,7 +494,7 @@ _g_cclosure_marshal_BOOLEAN__STRINGv (GClosure *closure,
g_return_if_fail (return_value != NULL);
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_strdup (arg0);
@@ -579,7 +579,7 @@ _g_cclosure_marshal_BOOLEAN__UINTv (GClosure *closure,
guint arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (guint) va_arg (args_copy, guint);
va_end (args_copy);
@@ -737,7 +737,7 @@ _g_cclosure_marshal_INT__BOXEDv (GClosure *closure,
gpointer arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_boxed_copy (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, arg0);
@@ -824,7 +824,7 @@ _g_cclosure_marshal_INT__OBJECTv (GClosure *closure,
gpointer arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if (arg0 != NULL)
arg0 = g_object_ref (arg0);
@@ -910,7 +910,7 @@ _g_cclosure_marshal_VOID__BOOLEAN_BOXEDv (GClosure *closure,
gpointer arg1;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gboolean) va_arg (args_copy, gboolean);
arg1 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[1] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg1 != NULL)
@@ -995,7 +995,7 @@ _g_cclosure_marshal_VOID__ENUM_OBJECTv (GClosure *closure,
gpointer arg1;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gint) va_arg (args_copy, gint);
arg1 = (gpointer) va_arg (args_copy, gpointer);
if (arg1 != NULL)
@@ -1084,7 +1084,7 @@ _g_cclosure_marshal_VOID__ENUM_OBJECT_OBJECTv (GClosure *closure,
gpointer arg2;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gint) va_arg (args_copy, gint);
arg1 = (gpointer) va_arg (args_copy, gpointer);
if (arg1 != NULL)
@@ -1179,7 +1179,7 @@ _g_cclosure_marshal_VOID__INT_INT_INTv (GClosure *closure,
gint arg2;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gint) va_arg (args_copy, gint);
arg1 = (gint) va_arg (args_copy, gint);
arg2 = (gint) va_arg (args_copy, gint);
@@ -1263,7 +1263,7 @@ _g_cclosure_marshal_VOID__OBJECT_OBJECTv (GClosure *closure,
gpointer arg1;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if (arg0 != NULL)
arg0 = g_object_ref (arg0);
@@ -1356,7 +1356,7 @@ _g_cclosure_marshal_VOID__OBJECT_OBJECT_ENUMv (GClosure *closure,
gint arg2;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if (arg0 != NULL)
arg0 = g_object_ref (arg0);
@@ -1459,7 +1459,7 @@ _g_cclosure_marshal_VOID__OBJECT_OBJECT_STRING_STRING_VARIANTv (GClosure *closur
gpointer arg4;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if (arg0 != NULL)
arg0 = g_object_ref (arg0);
@@ -1574,7 +1574,7 @@ _g_cclosure_marshal_VOID__OBJECT_OBJECT_VARIANT_BOXEDv (GClosure *closure,
gpointer arg3;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if (arg0 != NULL)
arg0 = g_object_ref (arg0);
@@ -1675,7 +1675,7 @@ _g_cclosure_marshal_VOID__OBJECT_VARIANTv (GClosure *closure,
gpointer arg1;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if (arg0 != NULL)
arg0 = g_object_ref (arg0);
@@ -1768,7 +1768,7 @@ _g_cclosure_marshal_VOID__POINTER_INT_STRINGv (GClosure *closure,
gpointer arg2;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
arg1 = (gint) va_arg (args_copy, gint);
arg2 = (gpointer) va_arg (args_copy, gpointer);
@@ -1855,7 +1855,7 @@ _g_cclosure_marshal_VOID__STRING_BOOLEANv (GClosure *closure,
gboolean arg1;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_strdup (arg0);
@@ -1940,7 +1940,7 @@ _g_cclosure_marshal_VOID__STRING_BOXEDv (GClosure *closure,
gpointer arg1;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_strdup (arg0);
@@ -2033,7 +2033,7 @@ _g_cclosure_marshal_VOID__STRING_BOXED_BOXEDv (GClosure *closure,
gpointer arg2;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_strdup (arg0);
@@ -2132,7 +2132,7 @@ _g_cclosure_marshal_VOID__STRING_INT64_INT64v (GClosure *closure,
gint64 arg2;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_strdup (arg0);
@@ -2227,7 +2227,7 @@ _g_cclosure_marshal_VOID__STRING_STRING_STRING_FLAGSv (GClosure *closure,
guint arg3;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_strdup (arg0);
@@ -2328,7 +2328,7 @@ _g_cclosure_marshal_VOID__STRING_STRING_VARIANTv (GClosure *closure,
gpointer arg2;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_strdup (arg0);
@@ -2423,7 +2423,7 @@ _g_cclosure_marshal_VOID__STRING_VARIANTv (GClosure *closure,
gpointer arg1;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_strdup (arg0);
@@ -2516,7 +2516,7 @@ _g_cclosure_marshal_VOID__UINT_UINT_UINTv (GClosure *closure,
guint arg2;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (guint) va_arg (args_copy, guint);
arg1 = (guint) va_arg (args_copy, guint);
arg2 = (guint) va_arg (args_copy, guint);
@@ -2600,7 +2600,7 @@ _g_cclosure_marshal_VOID__VARIANT_BOXEDv (GClosure *closure,
gpointer arg1;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_variant_ref_sink (arg0);
diff --git a/gio/gmemoryinputstream.h b/gio/gmemoryinputstream.h
index f8673dae6..fb72f2314 100644
--- a/gio/gmemoryinputstream.h
+++ b/gio/gmemoryinputstream.h
@@ -67,23 +67,23 @@ struct _GMemoryInputStreamClass
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_memory_input_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInputStream * g_memory_input_stream_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInputStream * g_memory_input_stream_new_from_data (const void *data,
gssize len,
GDestroyNotify destroy);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GInputStream * g_memory_input_stream_new_from_bytes (GBytes *bytes);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_memory_input_stream_add_data (GMemoryInputStream *stream,
const void *data,
gssize len,
GDestroyNotify destroy);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
void g_memory_input_stream_add_bytes (GMemoryInputStream *stream,
GBytes *bytes);
diff --git a/gio/gmemorymonitor.h b/gio/gmemorymonitor.h
index 9c547d819..83c28b919 100644
--- a/gio/gmemorymonitor.h
+++ b/gio/gmemorymonitor.h
@@ -40,7 +40,7 @@ G_BEGIN_DECLS
#define G_MEMORY_MONITOR_EXTENSION_POINT_NAME "gio-memory-monitor"
#define G_TYPE_MEMORY_MONITOR (g_memory_monitor_get_type ())
-GLIB_AVAILABLE_IN_2_64
+GIO_AVAILABLE_IN_2_64
G_DECLARE_INTERFACE(GMemoryMonitor, g_memory_monitor, g, memory_monitor, GObject)
#define G_MEMORY_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_MEMORY_MONITOR, GMemoryMonitor))
@@ -56,7 +56,7 @@ struct _GMemoryMonitorInterface {
GMemoryMonitorWarningLevel level);
};
-GLIB_AVAILABLE_IN_2_64
+GIO_AVAILABLE_IN_2_64
GMemoryMonitor *g_memory_monitor_dup_default (void);
G_END_DECLS
diff --git a/gio/gmemoryoutputstream.h b/gio/gmemoryoutputstream.h
index 5b13c3af6..08f5dcffb 100644
--- a/gio/gmemoryoutputstream.h
+++ b/gio/gmemoryoutputstream.h
@@ -82,26 +82,26 @@ struct _GMemoryOutputStreamClass
typedef gpointer (* GReallocFunc) (gpointer data,
gsize size);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_memory_output_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GOutputStream *g_memory_output_stream_new (gpointer data,
gsize size,
GReallocFunc realloc_function,
GDestroyNotify destroy_function);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
GOutputStream *g_memory_output_stream_new_resizable (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gpointer g_memory_output_stream_get_data (GMemoryOutputStream *ostream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gsize g_memory_output_stream_get_size (GMemoryOutputStream *ostream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gsize g_memory_output_stream_get_data_size (GMemoryOutputStream *ostream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gpointer g_memory_output_stream_steal_data (GMemoryOutputStream *ostream);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GBytes * g_memory_output_stream_steal_as_bytes (GMemoryOutputStream *ostream);
G_END_DECLS
diff --git a/gio/gmenu.h b/gio/gmenu.h
index f1ff26195..68e068429 100644
--- a/gio/gmenu.h
+++ b/gio/gmenu.h
@@ -41,141 +41,141 @@ G_BEGIN_DECLS
typedef struct _GMenuItem GMenuItem;
typedef struct _GMenu GMenu;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GType g_menu_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GMenu * g_menu_new (void);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_freeze (GMenu *menu);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_insert_item (GMenu *menu,
gint position,
GMenuItem *item);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_prepend_item (GMenu *menu,
GMenuItem *item);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_append_item (GMenu *menu,
GMenuItem *item);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_remove (GMenu *menu,
gint position);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
void g_menu_remove_all (GMenu *menu);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_insert (GMenu *menu,
gint position,
const gchar *label,
const gchar *detailed_action);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_prepend (GMenu *menu,
const gchar *label,
const gchar *detailed_action);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_append (GMenu *menu,
const gchar *label,
const gchar *detailed_action);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_insert_section (GMenu *menu,
gint position,
const gchar *label,
GMenuModel *section);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_prepend_section (GMenu *menu,
const gchar *label,
GMenuModel *section);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_append_section (GMenu *menu,
const gchar *label,
GMenuModel *section);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_insert_submenu (GMenu *menu,
gint position,
const gchar *label,
GMenuModel *submenu);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_prepend_submenu (GMenu *menu,
const gchar *label,
GMenuModel *submenu);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_append_submenu (GMenu *menu,
const gchar *label,
GMenuModel *submenu);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GType g_menu_item_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GMenuItem * g_menu_item_new (const gchar *label,
const gchar *detailed_action);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GMenuItem * g_menu_item_new_from_model (GMenuModel *model,
gint item_index);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GMenuItem * g_menu_item_new_submenu (const gchar *label,
GMenuModel *submenu);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GMenuItem * g_menu_item_new_section (const gchar *label,
GMenuModel *section);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GVariant * g_menu_item_get_attribute_value (GMenuItem *menu_item,
const gchar *attribute,
const GVariantType *expected_type);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
gboolean g_menu_item_get_attribute (GMenuItem *menu_item,
const gchar *attribute,
const gchar *format_string,
...);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GMenuModel *g_menu_item_get_link (GMenuItem *menu_item,
const gchar *link);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_item_set_attribute_value (GMenuItem *menu_item,
const gchar *attribute,
GVariant *value);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_item_set_attribute (GMenuItem *menu_item,
const gchar *attribute,
const gchar *format_string,
...);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_item_set_link (GMenuItem *menu_item,
const gchar *link,
GMenuModel *model);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_item_set_label (GMenuItem *menu_item,
const gchar *label);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_item_set_submenu (GMenuItem *menu_item,
GMenuModel *submenu);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_item_set_section (GMenuItem *menu_item,
GMenuModel *section);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_item_set_action_and_target_value (GMenuItem *menu_item,
const gchar *action,
GVariant *target_value);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_item_set_action_and_target (GMenuItem *menu_item,
const gchar *action,
const gchar *format_string,
...);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_item_set_detailed_action (GMenuItem *menu_item,
const gchar *detailed_action);
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
void g_menu_item_set_icon (GMenuItem *menu_item,
GIcon *icon);
diff --git a/gio/gmenuexporter.c b/gio/gmenuexporter.c
index 55efdbb54..67aac19da 100644
--- a/gio/gmenuexporter.c
+++ b/gio/gmenuexporter.c
@@ -28,18 +28,6 @@
#include "gdbusnamewatching.h"
#include "gdbuserror.h"
-/*
- * G_MENU_EXPORTER_MAX_SECTION_SIZE:
- *
- * The maximum number of entries in a menu section supported by
- * g_dbus_connection_export_menu_model().
- *
- * The exact value of the limit may change in future GLib versions.
- *
- * Since: 2.76
- */
-#define G_MENU_EXPORTER_MAX_SECTION_SIZE 1000
-
/**
* SECTION:gmenuexporter
* @title: GMenuModel exporter
@@ -65,8 +53,9 @@ static GDBusInterfaceInfo *
org_gtk_Menus_get_interface (void)
{
static GDBusInterfaceInfo *interface_info;
+ static gsize interface_info_initialized = 0;
- if (interface_info == NULL)
+ if (g_once_init_enter (&interface_info_initialized))
{
GError *error = NULL;
GDBusNodeInfo *info;
@@ -91,6 +80,8 @@ org_gtk_Menus_get_interface (void)
g_assert (interface_info != NULL);
g_dbus_interface_info_ref (interface_info);
g_dbus_node_info_unref (info);
+
+ g_once_init_leave (&interface_info_initialized, 1);
}
return interface_info;
@@ -264,12 +255,16 @@ g_menu_exporter_menu_items_changed (GMenuModel *model,
GMenuExporterMenu *menu = user_data;
GSequenceIter *point;
gint i;
+#ifndef G_DISABLE_ASSERT
gint n_items;
+#endif
g_assert (menu->model == model);
g_assert (menu->item_links != NULL);
+#ifndef G_DISABLE_ASSERT
n_items = g_sequence_get_length (menu->item_links);
+#endif
g_assert (position >= 0 && position < G_MENU_EXPORTER_MAX_SECTION_SIZE);
g_assert (removed >= 0 && removed < G_MENU_EXPORTER_MAX_SECTION_SIZE);
g_assert (added < G_MENU_EXPORTER_MAX_SECTION_SIZE);
@@ -790,7 +785,7 @@ g_menu_exporter_method_call (GDBusConnection *connection,
* returned (with @error set accordingly).
*
* Exporting menus with sections containing more than
- * 1000 items is not supported and results in
+ * %G_MENU_EXPORTER_MAX_SECTION_SIZE items is not supported and results in
* undefined behavior.
*
* You can unexport the menu model using
diff --git a/gio/gmenuexporter.h b/gio/gmenuexporter.h
index f3991663d..4651affda 100644
--- a/gio/gmenuexporter.h
+++ b/gio/gmenuexporter.h
@@ -27,13 +27,26 @@
G_BEGIN_DECLS
-GLIB_AVAILABLE_IN_2_32
+/**
+ * G_MENU_EXPORTER_MAX_SECTION_SIZE:
+ *
+ * The maximum number of entries in a menu section supported by
+ * g_dbus_connection_export_menu_model().
+ *
+ * The exact value of the limit may change in future GLib versions.
+ *
+ * Since: 2.76
+ */
+#define G_MENU_EXPORTER_MAX_SECTION_SIZE 1000 \
+ GIO_AVAILABLE_MACRO_IN_2_76
+
+GIO_AVAILABLE_IN_2_32
guint g_dbus_connection_export_menu_model (GDBusConnection *connection,
const gchar *object_path,
GMenuModel *menu,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_dbus_connection_unexport_menu_model (GDBusConnection *connection,
guint export_id);
diff --git a/gio/gmenumodel.h b/gio/gmenumodel.h
index 1fcc19f46..0ef7c9dc3 100644
--- a/gio/gmenumodel.h
+++ b/gio/gmenumodel.h
@@ -182,37 +182,37 @@ struct _GMenuModelClass
const gchar *link);
};
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GType g_menu_model_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_menu_model_is_mutable (GMenuModel *model);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gint g_menu_model_get_n_items (GMenuModel *model);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GMenuAttributeIter * g_menu_model_iterate_item_attributes (GMenuModel *model,
gint item_index);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GVariant * g_menu_model_get_item_attribute_value (GMenuModel *model,
gint item_index,
const gchar *attribute,
const GVariantType *expected_type);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_menu_model_get_item_attribute (GMenuModel *model,
gint item_index,
const gchar *attribute,
const gchar *format_string,
...);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GMenuLinkIter * g_menu_model_iterate_item_links (GMenuModel *model,
gint item_index);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GMenuModel * g_menu_model_get_item_link (GMenuModel *model,
gint item_index,
const gchar *link);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_menu_model_items_changed (GMenuModel *model,
gint position,
gint removed,
@@ -246,18 +246,18 @@ struct _GMenuAttributeIterClass
GVariant **value);
};
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GType g_menu_attribute_iter_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_menu_attribute_iter_get_next (GMenuAttributeIter *iter,
const gchar **out_name,
GVariant **value);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_menu_attribute_iter_next (GMenuAttributeIter *iter);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
const gchar * g_menu_attribute_iter_get_name (GMenuAttributeIter *iter);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GVariant * g_menu_attribute_iter_get_value (GMenuAttributeIter *iter);
@@ -288,18 +288,18 @@ struct _GMenuLinkIterClass
GMenuModel **value);
};
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GType g_menu_link_iter_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_menu_link_iter_get_next (GMenuLinkIter *iter,
const gchar **out_link,
GMenuModel **value);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_menu_link_iter_next (GMenuLinkIter *iter);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
const gchar * g_menu_link_iter_get_name (GMenuLinkIter *iter);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GMenuModel * g_menu_link_iter_get_value (GMenuLinkIter *iter);
G_END_DECLS
diff --git a/gio/gmount.h b/gio/gmount.h
index a112bc539..c17f79b33 100644
--- a/gio/gmount.h
+++ b/gio/gmount.h
@@ -163,114 +163,114 @@ struct _GMountIface
GIcon * (* get_symbolic_icon) (GMount *mount);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_mount_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_mount_get_root (GMount *mount);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_mount_get_default_location (GMount *mount);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_mount_get_name (GMount *mount);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_mount_get_icon (GMount *mount);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_mount_get_symbolic_icon (GMount *mount);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_mount_get_uuid (GMount *mount);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVolume * g_mount_get_volume (GMount *mount);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDrive * g_mount_get_drive (GMount *mount);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_mount_can_unmount (GMount *mount);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_mount_can_eject (GMount *mount);
-GLIB_DEPRECATED_FOR(g_mount_unmount_with_operation)
+GIO_DEPRECATED_FOR(g_mount_unmount_with_operation)
void g_mount_unmount (GMount *mount,
GMountUnmountFlags flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_DEPRECATED_FOR(g_mount_unmount_with_operation_finish)
+GIO_DEPRECATED_FOR(g_mount_unmount_with_operation_finish)
gboolean g_mount_unmount_finish (GMount *mount,
GAsyncResult *result,
GError **error);
-GLIB_DEPRECATED_FOR(g_mount_eject_with_operation)
+GIO_DEPRECATED_FOR(g_mount_eject_with_operation)
void g_mount_eject (GMount *mount,
GMountUnmountFlags flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_DEPRECATED_FOR(g_mount_eject_with_operation_finish)
+GIO_DEPRECATED_FOR(g_mount_eject_with_operation_finish)
gboolean g_mount_eject_finish (GMount *mount,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_mount_remount (GMount *mount,
GMountMountFlags flags,
GMountOperation *mount_operation,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_mount_remount_finish (GMount *mount,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_mount_guess_content_type (GMount *mount,
gboolean force_rescan,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar ** g_mount_guess_content_type_finish (GMount *mount,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar ** g_mount_guess_content_type_sync (GMount *mount,
gboolean force_rescan,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_mount_is_shadowed (GMount *mount);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_mount_shadow (GMount *mount);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_mount_unshadow (GMount *mount);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_mount_unmount_with_operation (GMount *mount,
GMountUnmountFlags flags,
GMountOperation *mount_operation,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_mount_unmount_with_operation_finish (GMount *mount,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_mount_eject_with_operation (GMount *mount,
GMountUnmountFlags flags,
GMountOperation *mount_operation,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_mount_eject_with_operation_finish (GMount *mount,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_mount_get_sort_key (GMount *mount);
G_END_DECLS
diff --git a/gio/gmountoperation.h b/gio/gmountoperation.h
index 1f2d009c8..b763f0d6a 100644
--- a/gio/gmountoperation.h
+++ b/gio/gmountoperation.h
@@ -120,57 +120,57 @@ struct _GMountOperationClass
void (*_g_reserved9) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_mount_operation_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GMountOperation * g_mount_operation_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_mount_operation_get_username (GMountOperation *op);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_mount_operation_set_username (GMountOperation *op,
const char *username);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_mount_operation_get_password (GMountOperation *op);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_mount_operation_set_password (GMountOperation *op,
const char *password);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_mount_operation_get_anonymous (GMountOperation *op);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_mount_operation_set_anonymous (GMountOperation *op,
gboolean anonymous);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_mount_operation_get_domain (GMountOperation *op);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_mount_operation_set_domain (GMountOperation *op,
const char *domain);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GPasswordSave g_mount_operation_get_password_save (GMountOperation *op);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_mount_operation_set_password_save (GMountOperation *op,
GPasswordSave save);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
int g_mount_operation_get_choice (GMountOperation *op);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_mount_operation_set_choice (GMountOperation *op,
int choice);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_mount_operation_reply (GMountOperation *op,
GMountOperationResult result);
-GLIB_AVAILABLE_IN_2_58
+GIO_AVAILABLE_IN_2_58
gboolean g_mount_operation_get_is_tcrypt_hidden_volume (GMountOperation *op);
-GLIB_AVAILABLE_IN_2_58
+GIO_AVAILABLE_IN_2_58
void g_mount_operation_set_is_tcrypt_hidden_volume (GMountOperation *op,
gboolean hidden_volume);
-GLIB_AVAILABLE_IN_2_58
+GIO_AVAILABLE_IN_2_58
gboolean g_mount_operation_get_is_tcrypt_system_volume (GMountOperation *op);
-GLIB_AVAILABLE_IN_2_58
+GIO_AVAILABLE_IN_2_58
void g_mount_operation_set_is_tcrypt_system_volume (GMountOperation *op,
gboolean system_volume);
-GLIB_AVAILABLE_IN_2_58
+GIO_AVAILABLE_IN_2_58
guint g_mount_operation_get_pim (GMountOperation *op);
-GLIB_AVAILABLE_IN_2_58
+GIO_AVAILABLE_IN_2_58
void g_mount_operation_set_pim (GMountOperation *op,
guint pim);
diff --git a/gio/gnativesocketaddress.h b/gio/gnativesocketaddress.h
index 01c839185..cd174ec86 100644
--- a/gio/gnativesocketaddress.h
+++ b/gio/gnativesocketaddress.h
@@ -55,10 +55,10 @@ struct _GNativeSocketAddressClass
GSocketAddressClass parent_class;
};
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
GType g_native_socket_address_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
GSocketAddress *g_native_socket_address_new (gpointer native,
gsize len);
diff --git a/gio/gnativevolumemonitor.h b/gio/gnativevolumemonitor.h
index ef1f8d707..9cea184b6 100644
--- a/gio/gnativevolumemonitor.h
+++ b/gio/gnativevolumemonitor.h
@@ -55,7 +55,7 @@ struct _GNativeVolumeMonitorClass
GCancellable *cancellable);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_native_volume_monitor_get_type (void) G_GNUC_CONST;
G_END_DECLS
diff --git a/gio/gnetworkaddress.c b/gio/gnetworkaddress.c
index 598917de2..a4ee538af 100644
--- a/gio/gnetworkaddress.c
+++ b/gio/gnetworkaddress.c
@@ -486,10 +486,7 @@ g_network_address_parse (const gchar *host_and_port,
else
{
- struct servent *entry;
-
- entry = getservbyname (port, "tcp");
- if (entry == NULL)
+ if (!g_getservbyname_ntohs (port, "tcp", &portnum))
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
"Unknown service '%s' specified in hostname '%s'",
@@ -501,8 +498,6 @@ g_network_address_parse (const gchar *host_and_port,
return NULL;
}
- portnum = g_ntohs (entry->s_port);
-
#ifdef HAVE_ENDSERVENT
endservent ();
#endif
diff --git a/gio/gnetworkaddress.h b/gio/gnetworkaddress.h
index c867a316c..0a12d852b 100644
--- a/gio/gnetworkaddress.h
+++ b/gio/gnetworkaddress.h
@@ -53,27 +53,27 @@ struct _GNetworkAddressClass
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_network_address_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnectable *g_network_address_new (const gchar *hostname,
guint16 port);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
GSocketConnectable *g_network_address_new_loopback (guint16 port);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnectable *g_network_address_parse (const gchar *host_and_port,
guint16 default_port,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnectable *g_network_address_parse_uri (const gchar *uri,
guint16 default_port,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_network_address_get_hostname (GNetworkAddress *addr);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint16 g_network_address_get_port (GNetworkAddress *addr);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_network_address_get_scheme (GNetworkAddress *addr);
diff --git a/gio/gnetworking.c b/gio/gnetworking.c
index fa16238b3..d0c00c98c 100644
--- a/gio/gnetworking.c
+++ b/gio/gnetworking.c
@@ -23,6 +23,7 @@
#include "config.h"
#include "gnetworking.h"
+#include "gnetworkingprivate.h"
/**
* SECTION:gnetworking
@@ -76,3 +77,26 @@ g_networking_init (void)
}
#endif
}
+
+gboolean
+g_getservbyname_ntohs (const char *name, const char *proto, guint16 *out_port)
+{
+ struct servent *result;
+
+#ifdef HAVE_GETSERVBYNAME_R
+ struct servent result_buf;
+ char buf[2048];
+ int r;
+
+ r = getservbyname_r (name, proto, &result_buf, buf, sizeof (buf), &result);
+ if (r != 0 || result != &result_buf)
+ result = NULL;
+#else
+ result = getservbyname (name, proto);
+#endif
+
+ if (!result)
+ return FALSE;
+ *out_port = g_ntohs (result->s_port);
+ return TRUE;
+}
diff --git a/gio/gnetworking.h.in b/gio/gnetworking.h.in
index 96430bdec..3561239f8 100644
--- a/gio/gnetworking.h.in
+++ b/gio/gnetworking.h.in
@@ -22,6 +22,7 @@
#define __G_NETWORKING_H__
#include <glib.h>
+#include <gio/gio-visibility.h>
#ifdef G_OS_WIN32
#include <winsock2.h>
@@ -72,7 +73,7 @@
G_BEGIN_DECLS
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_networking_init (void);
G_END_DECLS
diff --git a/gio/gnetworkingprivate.h b/gio/gnetworkingprivate.h
index a212cd862..88894e037 100644
--- a/gio/gnetworkingprivate.h
+++ b/gio/gnetworkingprivate.h
@@ -22,6 +22,7 @@
#define __G_NETWORKINGPRIVATE_H__
#include "gnetworking.h"
+#include "gresolver.h"
G_BEGIN_DECLS
@@ -32,6 +33,8 @@ gint g_socket (gint domain,
gint protocol,
GError **error);
+gboolean g_getservbyname_ntohs (const char *name, const char *proto, guint16 *out_port);
+
G_END_DECLS
#endif /* __G_NETWORKINGPRIVATE_H__ */
diff --git a/gio/gnetworkmonitor.c b/gio/gnetworkmonitor.c
index bae60d5f8..37f2faa6d 100644
--- a/gio/gnetworkmonitor.c
+++ b/gio/gnetworkmonitor.c
@@ -254,9 +254,9 @@ g_network_monitor_real_can_reach_async (GNetworkMonitor *monitor,
* @monitor: a #GNetworkMonitor
* @connectable: a #GSocketConnectable
* @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): a #GAsyncReadyCallback to call when the
- * request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously attempts to determine whether or not the host
* pointed to by @connectable can be reached, without actually
@@ -372,14 +372,18 @@ g_network_monitor_default_init (GNetworkMonitorInterface *iface)
/**
* GNetworkMonitor:network-metered:
*
- * Whether the network is considered metered. That is, whether the
+ * Whether the network is considered metered.
+ *
+ * That is, whether the
* system has traffic flowing through the default connection that is
* subject to limitations set by service providers. For example, traffic
* might be billed by the amount of data transmitted, or there might be a
* quota on the amount of traffic per month. This is typical with tethered
* connections (3G and 4G) and in such situations, bandwidth intensive
* applications may wish to avoid network activity where possible if it will
- * cost the user money or use up their limited quota.
+ * cost the user money or use up their limited quota. Anything more than a
+ * few hundreds of kilobytes of data usage per hour should be avoided without
+ * asking permission from the user.
*
* If more information is required about specific devices then the
* system network management API should be used instead (for example,
diff --git a/gio/gnetworkmonitor.h b/gio/gnetworkmonitor.h
index e4d561d01..8e6e90386 100644
--- a/gio/gnetworkmonitor.h
+++ b/gio/gnetworkmonitor.h
@@ -66,32 +66,32 @@ struct _GNetworkMonitorInterface {
GError **error);
};
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GType g_network_monitor_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GNetworkMonitor *g_network_monitor_get_default (void);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_network_monitor_get_network_available (GNetworkMonitor *monitor);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gboolean g_network_monitor_get_network_metered (GNetworkMonitor *monitor);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
GNetworkConnectivity g_network_monitor_get_connectivity (GNetworkMonitor *monitor);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_network_monitor_can_reach (GNetworkMonitor *monitor,
GSocketConnectable *connectable,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_network_monitor_can_reach_async (GNetworkMonitor *monitor,
GSocketConnectable *connectable,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_network_monitor_can_reach_finish (GNetworkMonitor *monitor,
GAsyncResult *result,
GError **error);
diff --git a/gio/gnetworkmonitorbase.h b/gio/gnetworkmonitorbase.h
index 00502548d..782ff43d4 100644
--- a/gio/gnetworkmonitorbase.h
+++ b/gio/gnetworkmonitorbase.h
@@ -50,17 +50,17 @@ struct _GNetworkMonitorBaseClass {
gpointer padding[8];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_network_monitor_base_get_type (void);
/*< protected >*/
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_network_monitor_base_add_network (GNetworkMonitorBase *monitor,
GInetAddressMask *network);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_network_monitor_base_remove_network (GNetworkMonitorBase *monitor,
GInetAddressMask *network);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_network_monitor_base_set_networks (GNetworkMonitorBase *monitor,
GInetAddressMask **networks,
gint length);
diff --git a/gio/gnetworkservice.c b/gio/gnetworkservice.c
index 8fa74eca3..dac0814d0 100644
--- a/gio/gnetworkservice.c
+++ b/gio/gnetworkservice.c
@@ -364,17 +364,17 @@ static GList *
g_network_service_fallback_targets (GNetworkService *srv)
{
GSrvTarget *target;
- struct servent *entry;
+ gboolean has_port;
guint16 port;
- entry = getservbyname (srv->priv->service, "tcp");
- port = entry ? g_ntohs (entry->s_port) : 0;
+ has_port = g_getservbyname_ntohs (srv->priv->service, "tcp", &port);
+
#ifdef HAVE_ENDSERVENT
endservent ();
#endif
- if (entry == NULL)
- return NULL;
+ if (!has_port)
+ return NULL;
target = g_srv_target_new (srv->priv->domain, port, 0, 0);
return g_list_append (NULL, target);
diff --git a/gio/gnetworkservice.h b/gio/gnetworkservice.h
index e782dbec4..ac00986d9 100644
--- a/gio/gnetworkservice.h
+++ b/gio/gnetworkservice.h
@@ -53,23 +53,23 @@ struct _GNetworkServiceClass
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_network_service_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnectable *g_network_service_new (const gchar *service,
const gchar *protocol,
const gchar *domain);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_network_service_get_service (GNetworkService *srv);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_network_service_get_protocol (GNetworkService *srv);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_network_service_get_domain (GNetworkService *srv);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_network_service_get_scheme (GNetworkService *srv);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_network_service_set_scheme (GNetworkService *srv, const gchar *scheme);
G_END_DECLS
diff --git a/gio/gnotification.c b/gio/gnotification.c
index 19bfca372..abe68a215 100644
--- a/gio/gnotification.c
+++ b/gio/gnotification.c
@@ -102,7 +102,7 @@ struct _GNotification
gchar *category;
GPtrArray *buttons;
gchar *default_action;
- GVariant *default_action_target;
+ GVariant *default_action_target; /* (nullable) (owned), not floating */
};
typedef struct
@@ -355,11 +355,11 @@ g_notification_set_urgent (GNotification *notification,
* g_notification_get_category:
* @notification: a #GNotification
*
- * Gets the cateogry of @notification.
+ * Gets the category of @notification.
*
* This will be %NULL if no category is set.
*
- * Returns: (nullable): the cateogry of @notification
+ * Returns: (nullable): the category of @notification
*
* Since: 2.70
*/
@@ -615,11 +615,17 @@ g_notification_get_button_with_action (GNotification *notification,
/*< private >
* g_notification_get_default_action:
* @notification: a #GNotification
- * @action: (nullable): return location for the default action
- * @target: (nullable): return location for the target of the default action
+ * @action: (out) (optional) (nullable) (transfer full): return location for the
+ * default action, or %NULL if unset
+ * @target: (out) (optional) (nullable) (transfer full): return location for the
+ * target of the default action, or %NULL if unset
*
* Gets the action and target for the default action of @notification.
*
+ * If this function returns %TRUE, @action is guaranteed to be set to a non-%NULL
+ * value (if a pointer is passed to @action). @target may still return a %NULL
+ * value, as the default action may have no target.
+ *
* Returns: %TRUE if @notification has a default action
*/
gboolean
@@ -736,7 +742,7 @@ g_notification_set_default_action_and_target (GNotification *notification,
* application-wide action (start with "app.").
*
* If @target is non-%NULL, @action will be activated with @target as
- * its parameter.
+ * its parameter. If @target is floating, it will be consumed.
*
* When no default action is set, the application that the notification
* was sent on is activated.
diff --git a/gio/gnotification.h b/gio/gnotification.h
index c38383c3f..cef00a737 100644
--- a/gio/gnotification.h
+++ b/gio/gnotification.h
@@ -35,65 +35,65 @@ G_BEGIN_DECLS
#define G_NOTIFICATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_NOTIFICATION, GNotification))
#define G_IS_NOTIFICATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_NOTIFICATION))
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GType g_notification_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GNotification * g_notification_new (const gchar *title);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_notification_set_title (GNotification *notification,
const gchar *title);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_notification_set_body (GNotification *notification,
const gchar *body);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_notification_set_icon (GNotification *notification,
GIcon *icon);
-GLIB_DEPRECATED_IN_2_42_FOR(g_notification_set_priority)
+GIO_DEPRECATED_IN_2_42_FOR(g_notification_set_priority)
void g_notification_set_urgent (GNotification *notification,
gboolean urgent);
-GLIB_AVAILABLE_IN_2_42
+GIO_AVAILABLE_IN_2_42
void g_notification_set_priority (GNotification *notification,
GNotificationPriority priority);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
void g_notification_set_category (GNotification *notification,
const gchar *category);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_notification_add_button (GNotification *notification,
const gchar *label,
const gchar *detailed_action);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_notification_add_button_with_target (GNotification *notification,
const gchar *label,
const gchar *action,
const gchar *target_format,
...);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_notification_add_button_with_target_value (GNotification *notification,
const gchar *label,
const gchar *action,
GVariant *target);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_notification_set_default_action (GNotification *notification,
const gchar *detailed_action);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_notification_set_default_action_and_target (GNotification *notification,
const gchar *action,
const gchar *target_format,
...);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_notification_set_default_action_and_target_value (GNotification *notification,
const gchar *action,
GVariant *target);
diff --git a/gio/gosxappinfo.h b/gio/gosxappinfo.h
index 1023b520d..b029853fd 100644
--- a/gio/gosxappinfo.h
+++ b/gio/gosxappinfo.h
@@ -41,13 +41,13 @@ struct _GOsxAppInfoClass
GObjectClass parent_class;
};
-GLIB_AVAILABLE_IN_2_52
+GIO_AVAILABLE_IN_2_52
GType g_osx_app_info_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_52
+GIO_AVAILABLE_IN_2_52
const char *g_osx_app_info_get_filename (GOsxAppInfo *info);
-GLIB_AVAILABLE_IN_2_52
+GIO_AVAILABLE_IN_2_52
GList * g_osx_app_info_get_all_for_scheme (const gchar *scheme);
G_END_DECLS
diff --git a/gio/gosxcontenttype.m b/gio/gosxcontenttype.m
index fad028038..4d7a650c7 100644
--- a/gio/gosxcontenttype.m
+++ b/gio/gosxcontenttype.m
@@ -419,6 +419,12 @@ g_content_type_from_mime_type (const gchar *mime_type)
if (strcmp (mime_type, "text/plain") == 0)
return g_strdup ("public.text");
+ /* I don’t know of an appropriate equivalent for application/x-zerosize, but
+ * historically GLib has returned public.text for zero-sized files, so let’s
+ * continue doing that. */
+ if (strcmp (mime_type, "application/x-zerosize") == 0)
+ return g_strdup ("public.text");
+
/* Non standard type */
if (strcmp (mime_type, "application/x-executable") == 0)
return g_strdup ("public.executable");
diff --git a/gio/goutputstream.c b/gio/goutputstream.c
index fdbc6e02d..3674a92dc 100644
--- a/gio/goutputstream.c
+++ b/gio/goutputstream.c
@@ -979,8 +979,9 @@ async_ready_write_callback_wrapper (GObject *source_object,
* @count: the number of bytes to write
* @io_priority: the io priority of the request.
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Request an asynchronous write of @count bytes from @buffer into
* the stream. When the operation is finished @callback will be called.
@@ -1173,8 +1174,9 @@ write_all_async_thread (GTask *task,
* @count: the number of bytes to write
* @io_priority: the io priority of the request
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Request an asynchronous write of @count bytes from @buffer into
* the stream. When the operation is finished @callback will be called.
@@ -1283,8 +1285,9 @@ g_output_stream_write_all_finish (GOutputStream *stream,
* @n_vectors: the number of vectors to write
* @io_priority: the I/O priority of the request.
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Request an asynchronous write of the bytes contained in @n_vectors @vectors into
* the stream. When the operation is finished @callback will be called.
@@ -1477,8 +1480,9 @@ writev_all_async_thread (GTask *task,
* @n_vectors: the number of vectors to write
* @io_priority: the I/O priority of the request
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Request an asynchronous write of the bytes contained in the @n_vectors @vectors into
* the stream. When the operation is finished @callback will be called.
@@ -1623,8 +1627,9 @@ write_bytes_callback (GObject *stream,
* @bytes: The bytes to write
* @io_priority: the io priority of the request.
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* This function is similar to g_output_stream_write_async(), but
* takes a #GBytes as input. Due to the refcounted nature of #GBytes,
@@ -1724,8 +1729,9 @@ async_ready_splice_callback_wrapper (GObject *source_object,
* @flags: a set of #GOutputStreamSpliceFlags.
* @io_priority: the io priority of the request.
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback.
- * @user_data: (closure): user data passed to @callback.
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Splices a stream asynchronously.
* When the operation is finished @callback will be called.
@@ -1840,8 +1846,9 @@ async_ready_flush_callback_wrapper (GObject *source_object,
* @stream: a #GOutputStream.
* @io_priority: the io priority of the request.
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Forces an asynchronous write of all user-space buffered data for
* the given @stream.
@@ -1999,8 +2006,9 @@ real_close_async_cb (GObject *source_object,
* @stream: A #GOutputStream.
* @io_priority: the io priority of the request.
* @cancellable: (nullable): optional cancellable object
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Requests an asynchronous close of the stream, releasing resources
* related to it. When the operation is finished @callback will be
diff --git a/gio/goutputstream.h b/gio/goutputstream.h
index e32499d52..b5fafe9ef 100644
--- a/gio/goutputstream.h
+++ b/gio/goutputstream.h
@@ -150,16 +150,16 @@ struct _GOutputStreamClass
void (*_g_reserved8) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_output_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_output_stream_write (GOutputStream *stream,
const void *buffer,
gsize count,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_output_stream_write_all (GOutputStream *stream,
const void *buffer,
gsize count,
@@ -167,14 +167,14 @@ gboolean g_output_stream_write_all (GOutputStream *stream,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
gboolean g_output_stream_writev (GOutputStream *stream,
const GOutputVector *vectors,
gsize n_vectors,
gsize *bytes_written,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
gboolean g_output_stream_writev_all (GOutputStream *stream,
GOutputVector *vectors,
gsize n_vectors,
@@ -182,40 +182,40 @@ gboolean g_output_stream_writev_all (GOutputStream *stream,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_output_stream_printf (GOutputStream *stream,
gsize *bytes_written,
GCancellable *cancellable,
GError **error,
const gchar *format,
...) G_GNUC_PRINTF (5, 6);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_output_stream_vprintf (GOutputStream *stream,
gsize *bytes_written,
GCancellable *cancellable,
GError **error,
const gchar *format,
va_list args) G_GNUC_PRINTF (5, 0);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
gssize g_output_stream_write_bytes (GOutputStream *stream,
GBytes *bytes,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_output_stream_splice (GOutputStream *stream,
GInputStream *source,
GOutputStreamSpliceFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_output_stream_flush (GOutputStream *stream,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_output_stream_close (GOutputStream *stream,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_output_stream_write_async (GOutputStream *stream,
const void *buffer,
gsize count,
@@ -223,12 +223,12 @@ void g_output_stream_write_async (GOutputStream *stream,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_output_stream_write_finish (GOutputStream *stream,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
void g_output_stream_write_all_async (GOutputStream *stream,
const void *buffer,
gsize count,
@@ -237,13 +237,13 @@ void g_output_stream_write_all_async (GOutputStream *stream,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
gboolean g_output_stream_write_all_finish (GOutputStream *stream,
GAsyncResult *result,
gsize *bytes_written,
GError **error);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
void g_output_stream_writev_async (GOutputStream *stream,
const GOutputVector *vectors,
gsize n_vectors,
@@ -251,13 +251,13 @@ void g_output_stream_writev_async (GOutputStream *stream,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
gboolean g_output_stream_writev_finish (GOutputStream *stream,
GAsyncResult *result,
gsize *bytes_written,
GError **error);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
void g_output_stream_writev_all_async (GOutputStream *stream,
GOutputVector *vectors,
gsize n_vectors,
@@ -266,24 +266,24 @@ void g_output_stream_writev_all_async (GOutputStream *stream,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
gboolean g_output_stream_writev_all_finish (GOutputStream *stream,
GAsyncResult *result,
gsize *bytes_written,
GError **error);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
void g_output_stream_write_bytes_async (GOutputStream *stream,
GBytes *bytes,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
gssize g_output_stream_write_bytes_finish (GOutputStream *stream,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_output_stream_splice_async (GOutputStream *stream,
GInputStream *source,
GOutputStreamSpliceFlags flags,
@@ -291,41 +291,41 @@ void g_output_stream_splice_async (GOutputStream *stream,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_output_stream_splice_finish (GOutputStream *stream,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_output_stream_flush_async (GOutputStream *stream,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_output_stream_flush_finish (GOutputStream *stream,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_output_stream_close_async (GOutputStream *stream,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_output_stream_close_finish (GOutputStream *stream,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_output_stream_is_closed (GOutputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_output_stream_is_closing (GOutputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_output_stream_has_pending (GOutputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_output_stream_set_pending (GOutputStream *stream,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_output_stream_clear_pending (GOutputStream *stream);
diff --git a/gio/gpermission.h b/gio/gpermission.h
index 1b67cf2c2..828f64231 100644
--- a/gio/gpermission.h
+++ b/gio/gpermission.h
@@ -81,44 +81,44 @@ struct _GPermissionClass {
gpointer reserved[16];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_permission_get_type (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_permission_acquire (GPermission *permission,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_permission_acquire_async (GPermission *permission,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_permission_acquire_finish (GPermission *permission,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_permission_release (GPermission *permission,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_permission_release_async (GPermission *permission,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_permission_release_finish (GPermission *permission,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_permission_get_allowed (GPermission *permission);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_permission_get_can_acquire (GPermission *permission);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_permission_get_can_release (GPermission *permission);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_permission_impl_update (GPermission *permission,
gboolean allowed,
gboolean can_acquire,
diff --git a/gio/gpollableinputstream.c b/gio/gpollableinputstream.c
index ac8ac492b..3f76cb6d4 100644
--- a/gio/gpollableinputstream.c
+++ b/gio/gpollableinputstream.c
@@ -37,6 +37,11 @@
* interfacing with a non-GIO API that expects
* UNIX-file-descriptor-style asynchronous I/O rather than GIO-style.
*
+ * Some classes may implement #GPollableInputStream but have only certain
+ * instances of that class be pollable. If g_pollable_input_stream_can_poll()
+ * returns %FALSE, then the behavior of other #GPollableInputStream methods is
+ * undefined.
+ *
* Since: 2.28
*/
@@ -98,6 +103,9 @@ g_pollable_input_stream_can_poll (GPollableInputStream *stream)
* g_pollable_input_stream_read_nonblocking(), which will return a
* %G_IO_ERROR_WOULD_BLOCK error rather than blocking.
*
+ * The behaviour of this method is undefined if
+ * g_pollable_input_stream_can_poll() returns %FALSE for @stream.
+ *
* Returns: %TRUE if @stream is readable, %FALSE if not. If an error
* has occurred on @stream, this will result in
* g_pollable_input_stream_is_readable() returning %TRUE, and the
@@ -127,6 +135,9 @@ g_pollable_input_stream_is_readable (GPollableInputStream *stream)
* triggers, so you should use g_pollable_input_stream_read_nonblocking()
* rather than g_input_stream_read() from the callback.
*
+ * The behaviour of this method is undefined if
+ * g_pollable_input_stream_can_poll() returns %FALSE for @stream.
+ *
* Returns: (transfer full): a new #GSource
*
* Since: 2.28
@@ -179,6 +190,9 @@ g_pollable_input_stream_default_read_nonblocking (GPollableInputStream *stream,
* may happen if you call this method after a source triggers due
* to having been cancelled.
*
+ * The behaviour of this method is undefined if
+ * g_pollable_input_stream_can_poll() returns %FALSE for @stream.
+ *
* Virtual: read_nonblocking
* Returns: the number of bytes read, or -1 on error (including
* %G_IO_ERROR_WOULD_BLOCK).
diff --git a/gio/gpollableinputstream.h b/gio/gpollableinputstream.h
index 8ce59ebe5..7b659477c 100644
--- a/gio/gpollableinputstream.h
+++ b/gio/gpollableinputstream.h
@@ -81,19 +81,19 @@ struct _GPollableInputStreamInterface
GError **error);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_pollable_input_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_pollable_input_stream_can_poll (GPollableInputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_pollable_input_stream_is_readable (GPollableInputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSource *g_pollable_input_stream_create_source (GPollableInputStream *stream,
GCancellable *cancellable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_pollable_input_stream_read_nonblocking (GPollableInputStream *stream,
void *buffer,
gsize count,
diff --git a/gio/gpollableoutputstream.c b/gio/gpollableoutputstream.c
index fd9860d6e..f33267aa1 100644
--- a/gio/gpollableoutputstream.c
+++ b/gio/gpollableoutputstream.c
@@ -38,6 +38,11 @@
* interfacing with a non-GIO API that expects
* UNIX-file-descriptor-style asynchronous I/O rather than GIO-style.
*
+ * Some classes may implement #GPollableOutputStream but have only certain
+ * instances of that class be pollable. If g_pollable_output_stream_can_poll()
+ * returns %FALSE, then the behavior of other #GPollableOutputStream methods is
+ * undefined.
+ *
* Since: 2.28
*/
@@ -105,6 +110,9 @@ g_pollable_output_stream_can_poll (GPollableOutputStream *stream)
* g_pollable_output_stream_write_nonblocking(), which will return a
* %G_IO_ERROR_WOULD_BLOCK error rather than blocking.
*
+ * The behaviour of this method is undefined if
+ * g_pollable_output_stream_can_poll() returns %FALSE for @stream.
+ *
* Returns: %TRUE if @stream is writable, %FALSE if not. If an error
* has occurred on @stream, this will result in
* g_pollable_output_stream_is_writable() returning %TRUE, and the
@@ -134,6 +142,9 @@ g_pollable_output_stream_is_writable (GPollableOutputStream *stream)
* triggers, so you should use g_pollable_output_stream_write_nonblocking()
* rather than g_output_stream_write() from the callback.
*
+ * The behaviour of this method is undefined if
+ * g_pollable_output_stream_can_poll() returns %FALSE for @stream.
+ *
* Returns: (transfer full): a new #GSource
*
* Since: 2.28
@@ -251,6 +262,9 @@ g_pollable_output_stream_default_writev_nonblocking (GPollableOutputStream *str
* transports like D/TLS require that you re-send the same @buffer and
* @count in the next write call.
*
+ * The behaviour of this method is undefined if
+ * g_pollable_output_stream_can_poll() returns %FALSE for @stream.
+ *
* Virtual: write_nonblocking
* Returns: the number of bytes written, or -1 on error (including
* %G_IO_ERROR_WOULD_BLOCK).
@@ -319,6 +333,9 @@ g_pollable_output_stream_write_nonblocking (GPollableOutputStream *stream,
* transports like D/TLS require that you re-send the same @vectors and
* @n_vectors in the next write call.
*
+ * The behaviour of this method is undefined if
+ * g_pollable_output_stream_can_poll() returns %FALSE for @stream.
+ *
* Virtual: writev_nonblocking
*
* Returns: %@G_POLLABLE_RETURN_OK on success, %G_POLLABLE_RETURN_WOULD_BLOCK
diff --git a/gio/gpollableoutputstream.h b/gio/gpollableoutputstream.h
index a35c2de73..a98bfa2a8 100644
--- a/gio/gpollableoutputstream.h
+++ b/gio/gpollableoutputstream.h
@@ -94,26 +94,26 @@ struct _GPollableOutputStreamInterface
GError **error);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_pollable_output_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_pollable_output_stream_can_poll (GPollableOutputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_pollable_output_stream_is_writable (GPollableOutputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSource *g_pollable_output_stream_create_source (GPollableOutputStream *stream,
GCancellable *cancellable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_pollable_output_stream_write_nonblocking (GPollableOutputStream *stream,
const void *buffer,
gsize count,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
GPollableReturn g_pollable_output_stream_writev_nonblocking (GPollableOutputStream *stream,
const GOutputVector *vectors,
gsize n_vectors,
diff --git a/gio/gpollableutils.h b/gio/gpollableutils.h
index 2527fd12c..879bcbbc2 100644
--- a/gio/gpollableutils.h
+++ b/gio/gpollableutils.h
@@ -29,15 +29,15 @@
G_BEGIN_DECLS
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSource *g_pollable_source_new (GObject *pollable_stream);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GSource *g_pollable_source_new_full (gpointer pollable_stream,
GSource *child_source,
GCancellable *cancellable);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
gssize g_pollable_stream_read (GInputStream *stream,
void *buffer,
gsize count,
@@ -45,14 +45,14 @@ gssize g_pollable_stream_read (GInputStream *stream,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
gssize g_pollable_stream_write (GOutputStream *stream,
const void *buffer,
gsize count,
gboolean blocking,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
gboolean g_pollable_stream_write_all (GOutputStream *stream,
const void *buffer,
gsize count,
diff --git a/gio/gpollfilemonitor.c b/gio/gpollfilemonitor.c
index 685ede964..2a8473630 100644
--- a/gio/gpollfilemonitor.c
+++ b/gio/gpollfilemonitor.c
@@ -89,10 +89,14 @@ calc_event_type (GFileInfo *last,
if (last != NULL && new == NULL)
return G_FILE_MONITOR_EVENT_DELETED;
- if (g_strcmp0 (g_file_info_get_etag (last), g_file_info_get_etag (new)))
+ if (g_file_info_has_attribute (last, G_FILE_ATTRIBUTE_ETAG_VALUE) &&
+ g_file_info_has_attribute (new, G_FILE_ATTRIBUTE_ETAG_VALUE) &&
+ g_strcmp0 (g_file_info_get_etag (last), g_file_info_get_etag (new)) != 0)
return G_FILE_MONITOR_EVENT_CHANGED;
- if (g_file_info_get_size (last) != g_file_info_get_size (new))
+ if (g_file_info_has_attribute (last, G_FILE_ATTRIBUTE_STANDARD_SIZE) &&
+ g_file_info_has_attribute (new, G_FILE_ATTRIBUTE_STANDARD_SIZE) &&
+ g_file_info_get_size (last) != g_file_info_get_size (new))
return G_FILE_MONITOR_EVENT_CHANGED;
return -1;
diff --git a/gio/gportalsupport.c b/gio/gportalsupport.c
index dc82481b1..7e1da2273 100644
--- a/gio/gportalsupport.c
+++ b/gio/gportalsupport.c
@@ -20,84 +20,159 @@
#include "config.h"
+#include "glib-private.h"
#include "gportalsupport.h"
+#include "gsandbox.h"
+static GSandboxType sandbox_type = G_SANDBOX_TYPE_UNKNOWN;
static gboolean use_portal;
static gboolean network_available;
static gboolean dconf_access;
+#ifdef G_PORTAL_SUPPORT_TEST
+static const char *snapctl = "snapctl";
+#else
+static const char *snapctl = "/usr/bin/snapctl";
+#endif
+
+static gboolean
+snap_plug_is_connected (const gchar *plug_name)
+{
+ gint wait_status;
+ const gchar *argv[] = { snapctl, "is-connected", plug_name, NULL };
+
+ /* Bail out if our process is privileged - we don't want to pass those
+ * privileges to snapctl. It could be overridden and this would
+ * allow arbitrary code execution.
+ */
+ if (GLIB_PRIVATE_CALL (g_check_setuid) ())
+ return FALSE;
+
+ if (!g_spawn_sync (NULL, (gchar **) argv, NULL,
+#ifdef G_PORTAL_SUPPORT_TEST
+ G_SPAWN_SEARCH_PATH |
+#endif
+ G_SPAWN_STDOUT_TO_DEV_NULL |
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, NULL, NULL, &wait_status,
+ NULL))
+ return FALSE;
+
+ return g_spawn_check_wait_status (wait_status, NULL);
+}
+
static void
-read_flatpak_info (void)
+sandbox_info_read (void)
{
- static gsize flatpak_info_read = 0;
- const gchar *path = "/.flatpak-info";
+ static gsize sandbox_info_is_read = 0;
- if (!g_once_init_enter (&flatpak_info_read))
+ /* Sandbox type and Flatpak info is static, so only read once */
+ if (!g_once_init_enter (&sandbox_info_is_read))
return;
- if (g_file_test (path, G_FILE_TEST_EXISTS))
- {
- GKeyFile *keyfile;
-
- use_portal = TRUE;
- network_available = FALSE;
- dconf_access = FALSE;
-
- keyfile = g_key_file_new ();
- if (g_key_file_load_from_file (keyfile, path, G_KEY_FILE_NONE, NULL))
- {
- char **shared = NULL;
- char *dconf_policy = NULL;
-
- shared = g_key_file_get_string_list (keyfile, "Context", "shared", NULL, NULL);
- if (shared)
- {
- network_available = g_strv_contains ((const char * const *)shared, "network");
- g_strfreev (shared);
- }
-
- dconf_policy = g_key_file_get_string (keyfile, "Session Bus Policy", "ca.desrt.dconf", NULL);
- if (dconf_policy)
- {
- if (strcmp (dconf_policy, "talk") == 0)
- dconf_access = TRUE;
- g_free (dconf_policy);
- }
- }
-
- g_key_file_unref (keyfile);
- }
- else
+ sandbox_type = glib_get_sandbox_type ();
+
+ switch (sandbox_type)
{
- const char *var;
+ case G_SANDBOX_TYPE_FLATPAK:
+ {
+ GKeyFile *keyfile;
+ const char *keyfile_path = "/.flatpak-info";
- var = g_getenv ("GTK_USE_PORTAL");
- if (var && var[0] == '1')
use_portal = TRUE;
- network_available = TRUE;
- dconf_access = TRUE;
+ network_available = FALSE;
+ dconf_access = FALSE;
+
+ keyfile = g_key_file_new ();
+
+#ifdef G_PORTAL_SUPPORT_TEST
+ char *test_key_file =
+ g_build_filename (g_get_user_runtime_dir (), keyfile_path, NULL);
+ keyfile_path = test_key_file;
+#endif
+
+ if (g_key_file_load_from_file (keyfile, keyfile_path, G_KEY_FILE_NONE, NULL))
+ {
+ char **shared = NULL;
+ char *dconf_policy = NULL;
+
+ shared = g_key_file_get_string_list (keyfile, "Context", "shared", NULL, NULL);
+ if (shared)
+ {
+ network_available = g_strv_contains ((const char *const *) shared, "network");
+ g_strfreev (shared);
+ }
+
+ dconf_policy = g_key_file_get_string (keyfile, "Session Bus Policy", "ca.desrt.dconf", NULL);
+ if (dconf_policy)
+ {
+ if (strcmp (dconf_policy, "talk") == 0)
+ dconf_access = TRUE;
+ g_free (dconf_policy);
+ }
+ }
+
+#ifdef G_PORTAL_SUPPORT_TEST
+ g_clear_pointer (&test_key_file, g_free);
+#endif
+
+ g_key_file_unref (keyfile);
+ }
+ break;
+ case G_SANDBOX_TYPE_SNAP:
+ break;
+ case G_SANDBOX_TYPE_UNKNOWN:
+ {
+ const char *var;
+
+ var = g_getenv ("GTK_USE_PORTAL");
+ if (var && var[0] == '1')
+ use_portal = TRUE;
+ network_available = TRUE;
+ dconf_access = TRUE;
+ }
+ break;
}
- g_once_init_leave (&flatpak_info_read, 1);
+ g_once_init_leave (&sandbox_info_is_read, 1);
}
gboolean
glib_should_use_portal (void)
{
- read_flatpak_info ();
+ sandbox_info_read ();
+
+ if (sandbox_type == G_SANDBOX_TYPE_SNAP)
+ return snap_plug_is_connected ("desktop");
+
return use_portal;
}
gboolean
glib_network_available_in_sandbox (void)
{
- read_flatpak_info ();
+ sandbox_info_read ();
+
+ if (sandbox_type == G_SANDBOX_TYPE_SNAP)
+ {
+ /* FIXME: This is inefficient doing multiple calls to check connections.
+ * See https://github.com/snapcore/snapd/pull/12301 for a proposed
+ * improvement to snapd for this.
+ */
+ return snap_plug_is_connected ("desktop") ||
+ snap_plug_is_connected ("network-status");
+ }
+
return network_available;
}
gboolean
glib_has_dconf_access_in_sandbox (void)
{
- read_flatpak_info ();
+ sandbox_info_read ();
+
+ if (sandbox_type == G_SANDBOX_TYPE_SNAP)
+ return snap_plug_is_connected ("gsettings");
+
return dconf_access;
}
diff --git a/gio/gpowerprofilemonitor.h b/gio/gpowerprofilemonitor.h
index 7ac3c570f..e2c6aa75f 100644
--- a/gio/gpowerprofilemonitor.h
+++ b/gio/gpowerprofilemonitor.h
@@ -41,7 +41,7 @@ G_BEGIN_DECLS
#define G_POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME "gio-power-profile-monitor"
#define G_TYPE_POWER_PROFILE_MONITOR (g_power_profile_monitor_get_type ())
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
G_DECLARE_INTERFACE (GPowerProfileMonitor, g_power_profile_monitor, g, power_profile_monitor, GObject)
#define G_POWER_PROFILE_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_POWER_PROFILE_MONITOR, GPowerProfileMonitor))
@@ -54,10 +54,10 @@ struct _GPowerProfileMonitorInterface
GTypeInterface g_iface;
};
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
GPowerProfileMonitor *g_power_profile_monitor_dup_default (void);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
gboolean g_power_profile_monitor_get_power_saver_enabled (GPowerProfileMonitor *monitor);
G_END_DECLS
diff --git a/gio/gpropertyaction.c b/gio/gpropertyaction.c
index 8df765e98..52eae84e5 100644
--- a/gio/gpropertyaction.c
+++ b/gio/gpropertyaction.c
@@ -313,6 +313,15 @@ g_property_action_set_property_name (GPropertyAction *paction,
GParamSpec *pspec;
gchar *detailed;
+ /* In case somebody is constructing GPropertyAction without passing
+ * a property name
+ */
+ if (G_UNLIKELY (property_name == NULL || property_name[0] == '\0'))
+ {
+ g_critical ("Attempted to use an empty property name for GPropertyAction");
+ return;
+ }
+
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (paction->object), property_name);
if (pspec == NULL)
@@ -408,12 +417,24 @@ g_property_action_get_property (GObject *object,
}
static void
+g_property_action_dispose (GObject *object)
+{
+ GPropertyAction *paction = G_PROPERTY_ACTION (object);
+
+ if (paction->object != NULL)
+ {
+ g_signal_handlers_disconnect_by_func (paction->object, g_property_action_notify, paction);
+ g_clear_object (&paction->object);
+ }
+
+ G_OBJECT_CLASS (g_property_action_parent_class)->dispose (object);
+}
+
+static void
g_property_action_finalize (GObject *object)
{
GPropertyAction *paction = G_PROPERTY_ACTION (object);
- g_signal_handlers_disconnect_by_func (paction->object, g_property_action_notify, paction);
- g_object_unref (paction->object);
g_free (paction->name);
G_OBJECT_CLASS (g_property_action_parent_class)
@@ -445,6 +466,7 @@ g_property_action_class_init (GPropertyActionClass *class)
object_class->set_property = g_property_action_set_property;
object_class->get_property = g_property_action_get_property;
+ object_class->dispose = g_property_action_dispose;
object_class->finalize = g_property_action_finalize;
/**
diff --git a/gio/gpropertyaction.h b/gio/gpropertyaction.h
index 67aa0b0e7..f746e741f 100644
--- a/gio/gpropertyaction.h
+++ b/gio/gpropertyaction.h
@@ -36,10 +36,10 @@ G_BEGIN_DECLS
#define G_IS_PROPERTY_ACTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
G_TYPE_PROPERTY_ACTION))
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
GType g_property_action_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_38
+GIO_AVAILABLE_IN_2_38
GPropertyAction * g_property_action_new (const gchar *name,
gpointer object,
const gchar *property_name);
diff --git a/gio/gproxy.c b/gio/gproxy.c
index 7a35e5d89..40ba78f7c 100644
--- a/gio/gproxy.c
+++ b/gio/gproxy.c
@@ -127,7 +127,7 @@ g_proxy_connect (GProxy *proxy,
* @proxy_address: a #GProxyAddress
* @cancellable: (nullable): a #GCancellable
* @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): callback data
+ * @user_data: callback data
*
* Asynchronous version of g_proxy_connect().
*
diff --git a/gio/gproxy.h b/gio/gproxy.h
index e31f25182..de82410f9 100644
--- a/gio/gproxy.h
+++ b/gio/gproxy.h
@@ -96,20 +96,20 @@ struct _GProxyInterface
gboolean (* supports_hostname) (GProxy *proxy);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_proxy_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GProxy *g_proxy_get_default_for_protocol (const gchar *protocol);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOStream *g_proxy_connect (GProxy *proxy,
GIOStream *connection,
GProxyAddress *proxy_address,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_proxy_connect_async (GProxy *proxy,
GIOStream *connection,
GProxyAddress *proxy_address,
@@ -117,12 +117,12 @@ void g_proxy_connect_async (GProxy *proxy,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOStream *g_proxy_connect_finish (GProxy *proxy,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_proxy_supports_hostname (GProxy *proxy);
G_END_DECLS
diff --git a/gio/gproxyaddress.h b/gio/gproxyaddress.h
index 0a432557e..a0176d657 100644
--- a/gio/gproxyaddress.h
+++ b/gio/gproxyaddress.h
@@ -55,10 +55,10 @@ struct _GProxyAddressClass
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_proxy_address_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketAddress *g_proxy_address_new (GInetAddress *inetaddr,
guint16 port,
const gchar *protocol,
@@ -67,20 +67,20 @@ GSocketAddress *g_proxy_address_new (GInetAddress *inetaddr,
const gchar *username,
const gchar *password);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_proxy_address_get_protocol (GProxyAddress *proxy);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
const gchar *g_proxy_address_get_destination_protocol (GProxyAddress *proxy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_proxy_address_get_destination_hostname (GProxyAddress *proxy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint16 g_proxy_address_get_destination_port (GProxyAddress *proxy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_proxy_address_get_username (GProxyAddress *proxy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_proxy_address_get_password (GProxyAddress *proxy);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
const gchar *g_proxy_address_get_uri (GProxyAddress *proxy);
G_END_DECLS
diff --git a/gio/gproxyaddressenumerator.c b/gio/gproxyaddressenumerator.c
index 4e6d58a2d..98987f227 100644
--- a/gio/gproxyaddressenumerator.c
+++ b/gio/gproxyaddressenumerator.c
@@ -29,6 +29,7 @@
#include "ginetaddress.h"
#include "gioerror.h"
#include "glibintl.h"
+#include "glib-private.h"
#include "gnetworkaddress.h"
#include "gnetworkingprivate.h"
#include "gproxy.h"
@@ -158,9 +159,13 @@ next_enumerator (GProxyAddressEnumeratorPrivate *priv)
else
{
GError *error = NULL;
+ int default_port;
- connectable = g_network_address_parse_uri (priv->proxy_uri, 0, &error);
+ default_port = GLIB_PRIVATE_CALL (g_uri_get_default_scheme_port) (priv->proxy_type);
+ if (default_port == -1)
+ default_port = 0;
+ connectable = g_network_address_parse_uri (priv->proxy_uri, default_port, &error);
if (error)
{
g_warning ("Invalid proxy URI '%s': %s",
diff --git a/gio/gproxyaddressenumerator.h b/gio/gproxyaddressenumerator.h
index 3bb6d4353..b8d36a685 100644
--- a/gio/gproxyaddressenumerator.h
+++ b/gio/gproxyaddressenumerator.h
@@ -75,7 +75,7 @@ struct _GProxyAddressEnumeratorClass
void (*_g_reserved7) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_proxy_address_enumerator_get_type (void) G_GNUC_CONST;
G_END_DECLS
diff --git a/gio/gproxyresolver.c b/gio/gproxyresolver.c
index 61f61a797..4a4855a44 100644
--- a/gio/gproxyresolver.c
+++ b/gio/gproxyresolver.c
@@ -131,7 +131,7 @@ g_proxy_resolver_is_supported (GProxyResolver *resolver)
*
* Looks into the system proxy configuration to determine what proxy,
* if any, to use to connect to @uri. The returned proxy URIs are of
- * the form `<protocol>://[user[:password]@]host:port` or
+ * the form `<protocol>://[user[:password]@]host[:port]` or
* `direct://`, where <protocol> could be http, rtsp, socks
* or other proxying protocol.
*
@@ -184,7 +184,7 @@ g_proxy_resolver_lookup (GProxyResolver *resolver,
* @uri: a URI representing the destination to connect to
* @cancellable: (nullable): a #GCancellable, or %NULL
* @callback: (scope async): callback to call after resolution completes
- * @user_data: (closure): data for @callback
+ * @user_data: data for @callback
*
* Asynchronous lookup of proxy. See g_proxy_resolver_lookup() for more
* details.
diff --git a/gio/gproxyresolver.h b/gio/gproxyresolver.h
index ee7852b23..d564c990b 100644
--- a/gio/gproxyresolver.h
+++ b/gio/gproxyresolver.h
@@ -68,25 +68,25 @@ struct _GProxyResolverInterface {
GError **error);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_proxy_resolver_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GProxyResolver *g_proxy_resolver_get_default (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_proxy_resolver_is_supported (GProxyResolver *resolver);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar **g_proxy_resolver_lookup (GProxyResolver *resolver,
const gchar *uri,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_proxy_resolver_lookup_async (GProxyResolver *resolver,
const gchar *uri,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar **g_proxy_resolver_lookup_finish (GProxyResolver *resolver,
GAsyncResult *result,
GError **error);
diff --git a/gio/gregistrysettingsbackend.c b/gio/gregistrysettingsbackend.c
index 625039877..88ae913ce 100644
--- a/gio/gregistrysettingsbackend.c
+++ b/gio/gregistrysettingsbackend.c
@@ -19,13 +19,11 @@
* Author: Sam Thursfield <ssssam@gmail.com>
*/
-/* GRegistryBackend implementation notes:
+/* GRegistrySettingsBackend implementation notes:
*
- * - All settings are stored under the path:
- * HKEY_CURRENT_USER\Software\GSettings\
- * This means all settings are per-user. Permissions and system-wide
- * defaults are not implemented and will probably always be out of scope of
- * the Windows port of GLib.
+ * - All settings are stored under the registry path given at construction
+ * time. Permissions and system-wide defaults are not implemented and will
+ * probably always be out of scope of the Windows port of GLib.
*
* - The registry type system is limited. Most GVariant types are stored as
* literals via g_variant_print/parse(). Strings are stored without the
@@ -93,8 +91,11 @@
#include "gregistrysettingsbackend.h"
#include "gsettingsbackend.h"
+#include "gsettingsbackendinternal.h"
#include "giomodule-priv.h"
+#include <glibintl.h>
+
#include <windows.h>
//#define TRACE
@@ -154,17 +155,22 @@ typedef struct
HANDLE message_sent_event, message_received_event;
} WatchThreadState;
-#define G_TYPE_REGISTRY_BACKEND (g_registry_backend_get_type ())
-#define G_REGISTRY_BACKEND(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \
- G_TYPE_REGISTRY_BACKEND, GRegistryBackend))
-#define G_IS_REGISTRY_BACKEND(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
- G_TYPE_REGISTRY_BACKEND))
+#define G_TYPE_REGISTRY_SETTINGS_BACKEND (g_registry_settings_backend_get_type ())
+#define G_REGISTRY_SETTINGS_BACKEND(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \
+ G_TYPE_REGISTRY_SETTINGS_BACKEND, GRegistrySettingsBackend))
+#define G_IS_REGISTRY_SETTINGS_BACKEND(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
+ G_TYPE_REGISTRY_SETTINGS_BACKEND))
+
+typedef enum {
+ PROP_REGISTRY_KEY = 1,
+} GRegistrySettingsBackendProperty;
-typedef GSettingsBackendClass GRegistryBackendClass;
+typedef GSettingsBackendClass GRegistrySettingsBackendClass;
typedef struct {
GSettingsBackend parent_instance;
+ HKEY base_key;
gchar *base_path;
gunichar2 *base_pathw;
@@ -174,10 +180,10 @@ typedef struct {
GNode *cache_root;
WatchThreadState *watch;
-} GRegistryBackend;
+} GRegistrySettingsBackend;
-G_DEFINE_TYPE_WITH_CODE (GRegistryBackend,
- g_registry_backend,
+G_DEFINE_TYPE_WITH_CODE (GRegistrySettingsBackend,
+ g_registry_settings_backend,
G_TYPE_SETTINGS_BACKEND,
_g_io_modules_ensure_extension_points_registered ();
g_io_extension_point_implement (G_SETTINGS_BACKEND_EXTENSION_POINT_NAME,
@@ -231,8 +237,8 @@ g_message_win32_error (DWORD result_code,
g_free (win32_message);
}
-/* Make gsettings key into a registry path & value pair.
- *
+/* Make gsettings key into a registry path & value pair.
+ *
* Note that the return value *only* needs freeing - registry_value_name
* is a pointer to further inside the same block of memory.
*/
@@ -319,6 +325,59 @@ handle_read_error (LONG result,
path_name, value_name);
}
+typedef struct {
+ HKEY handle;
+ const char *name;
+} HandleNamePair;
+
+static const HandleNamePair predefined_key_names[] = {
+ { HKEY_CLASSES_ROOT, "HKEY_CLASSES_ROOT" },
+ { HKEY_CURRENT_CONFIG, "HKEY_CURRENT_CONFIG" },
+ { HKEY_CURRENT_USER, "HKEY_CURRENT_USER" },
+ { HKEY_LOCAL_MACHINE, "HKEY_LOCAL_MACHINE" },
+ { HKEY_USERS, "HKEY_USERS" }
+};
+
+static const gchar*
+predefined_key_to_string (HKEY key)
+{
+ for (gsize i = 0; i < G_N_ELEMENTS (predefined_key_names); i++)
+ {
+ if (predefined_key_names[i].handle == key)
+ return predefined_key_names[i].name;
+ }
+
+ g_warning ("gregistrysettingsbackend: unexpected root key (%p)", key);
+ return "";
+}
+
+static const gchar*
+split_registry_path (const gchar *full_path,
+ HKEY *root_key)
+{
+ g_assert (full_path != NULL);
+
+ for (gsize i = 0; i < G_N_ELEMENTS (predefined_key_names); i++)
+ {
+ const gchar *root_name = predefined_key_names[i].name;
+
+ if (g_str_has_prefix (full_path, root_name))
+ {
+ const gchar *rest = full_path + strlen (root_name);
+
+ if (*rest == '\\')
+ {
+ if (root_key != NULL)
+ *root_key = predefined_key_names[i].handle;
+
+ return ++rest;
+ }
+ }
+ }
+
+ return NULL;
+}
+
/***************************************************************************
* Cache of registry values
***************************************************************************/
@@ -381,7 +440,7 @@ typedef struct
/* Number of times g_settings_subscribe has been called for this location
* (I guess you can't subscribe more than 16383 times) */
gint32 subscription_count : 14;
-
+
gint32 ref_count : 9;
gint32 readable : 1;
@@ -693,7 +752,7 @@ registry_cache_update_node (GNode *cache_node,
cache_item->value = registry_value;
return TRUE;
}
-
+
switch (registry_value.type)
{
case REG_DWORD:
@@ -742,7 +801,7 @@ registry_cache_update_node (GNode *cache_node,
}
}
default:
- g_warning ("gregistrybackend: registry_cache_update_node: Unhandled value type");
+ g_warning ("gregistrysettingsbackend: registry_cache_update_node: Unhandled value type");
return FALSE;
}
}
@@ -838,12 +897,12 @@ registry_read (HKEY hpath,
}
static GVariant *
-g_registry_backend_read (GSettingsBackend *backend,
- const gchar *key_name,
- const GVariantType *expected_type,
- gboolean default_value)
+g_registry_settings_backend_read (GSettingsBackend *backend,
+ const gchar *key_name,
+ const GVariantType *expected_type,
+ gboolean default_value)
{
- GRegistryBackend *self = G_REGISTRY_BACKEND (backend);
+ GRegistrySettingsBackend *self = G_REGISTRY_SETTINGS_BACKEND (backend);
GNode *cache_node;
RegistryValue registry_value;
GVariant *gsettings_value = NULL;
@@ -924,16 +983,16 @@ g_registry_backend_read (GSettingsBackend *backend,
typedef struct
{
- GRegistryBackend *self;
+ GRegistrySettingsBackend *self;
HKEY hroot;
} RegistryWrite;
static gboolean
-g_registry_backend_write_one (const char *key_name,
- GVariant *variant,
- gpointer user_data)
+g_registry_settings_backend_write_one (const char *key_name,
+ GVariant *variant,
+ gpointer user_data)
{
- GRegistryBackend *self;
+ GRegistrySettingsBackend *self;
RegistryWrite *action;
RegistryValue value;
HKEY hroot;
@@ -952,7 +1011,7 @@ g_registry_backend_write_one (const char *key_name,
type_string = g_variant_get_type_string (variant);
action = user_data;
- self = G_REGISTRY_BACKEND (action->self);
+ self = G_REGISTRY_SETTINGS_BACKEND (action->self);
hroot = action->hroot;
value.type = REG_NONE;
@@ -1002,7 +1061,7 @@ g_registry_backend_write_one (const char *key_name,
/* First update the cache, because the value may not have changed and we can
* save a write.
- *
+ *
* If 'value' has changed then its memory will not be freed by update_node(),
* because it will be stored in the node.
*/
@@ -1030,7 +1089,7 @@ g_registry_backend_write_one (const char *key_name,
result = RegCreateKeyExW (hroot, path_namew, 0, NULL, 0, KEY_WRITE, NULL, &hpath, NULL);
if (result != ERROR_SUCCESS)
{
- g_message_win32_error (result, "gregistrybackend: opening key %s failed",
+ g_message_win32_error (result, "gregistrysettingsbackend: opening key %s failed",
path_name + 1);
registry_value_free (value);
g_free (path_namew);
@@ -1065,7 +1124,8 @@ g_registry_backend_write_one (const char *key_name,
result = RegSetValueExW (hpath, value_namew, 0, value.type, value_data, value_data_size);
if (result != ERROR_SUCCESS)
- g_message_win32_error (result, "gregistrybackend: setting value %s\\%s\\%s failed.\n",
+ g_message_win32_error (result, "gregistrysettingsbackend: setting value %s\\%s\\%s\\%s failed.\n",
+ predefined_key_to_string (self->base_key),
self->base_path, path_name, value_name);
/* If the write fails then it will seem like the value has changed until the
@@ -1081,32 +1141,34 @@ g_registry_backend_write_one (const char *key_name,
return FALSE;
}
-/* The dconf write policy is to do the write while making out it succeeded,
+/* The dconf write policy is to do the write while making out it succeeded,
* and then backtrack if it didn't. The registry functions are synchronous so
* we can't do that. */
static gboolean
-g_registry_backend_write (GSettingsBackend *backend,
- const gchar *key_name,
- GVariant *value,
- gpointer origin_tag)
+g_registry_settings_backend_write (GSettingsBackend *backend,
+ const gchar *key_name,
+ GVariant *value,
+ gpointer origin_tag)
{
- GRegistryBackend *self = G_REGISTRY_BACKEND (backend);
+ GRegistrySettingsBackend *self = G_REGISTRY_SETTINGS_BACKEND (backend);
LONG result;
HKEY hroot;
RegistryWrite action;
- result = RegCreateKeyExW (HKEY_CURRENT_USER, self->base_pathw, 0, NULL, 0,
+ result = RegCreateKeyExW (self->base_key, self->base_pathw, 0, NULL, 0,
KEY_WRITE, NULL, &hroot, NULL);
if (result != ERROR_SUCCESS)
{
- trace ("Error opening/creating key %s.\n", self->base_path);
+ trace ("Error opening/creating key %s\\%s.\n",
+ predefined_key_to_string (self->base_key),
+ self->base_path);
return FALSE;
}
action.self = self;
action.hroot = hroot;
- g_registry_backend_write_one (key_name, value, &action);
+ g_registry_settings_backend_write_one (key_name, value, &action);
g_settings_backend_changed (backend, key_name, origin_tag);
RegCloseKey (hroot);
@@ -1115,26 +1177,28 @@ g_registry_backend_write (GSettingsBackend *backend,
}
static gboolean
-g_registry_backend_write_tree (GSettingsBackend *backend,
- GTree *values,
- gpointer origin_tag)
+g_registry_settings_backend_write_tree (GSettingsBackend *backend,
+ GTree *values,
+ gpointer origin_tag)
{
- GRegistryBackend *self = G_REGISTRY_BACKEND (backend);
+ GRegistrySettingsBackend *self = G_REGISTRY_SETTINGS_BACKEND (backend);
LONG result;
HKEY hroot;
RegistryWrite action;
- result = RegCreateKeyExW (HKEY_CURRENT_USER, self->base_pathw, 0, NULL, 0,
+ result = RegCreateKeyExW (self->base_key, self->base_pathw, 0, NULL, 0,
KEY_WRITE, NULL, &hroot, NULL);
if (result != ERROR_SUCCESS)
{
- trace ("Error opening/creating key %s.\n", self->base_path);
+ trace ("Error opening/creating key %s\\%s.\n",
+ predefined_key_to_string (self->base_key),
+ self->base_path);
return FALSE;
}
action.self = self;
action.hroot = hroot;
- g_tree_foreach (values, (GTraverseFunc)g_registry_backend_write_one,
+ g_tree_foreach (values, (GTraverseFunc)g_registry_settings_backend_write_one,
&action);
g_settings_backend_changed_tree (backend, values, origin_tag);
@@ -1144,11 +1208,11 @@ g_registry_backend_write_tree (GSettingsBackend *backend,
}
static void
-g_registry_backend_reset (GSettingsBackend *backend,
- const gchar *key_name,
- gpointer origin_tag)
+g_registry_settings_backend_reset (GSettingsBackend *backend,
+ const gchar *key_name,
+ gpointer origin_tag)
{
- GRegistryBackend *self = G_REGISTRY_BACKEND (backend);
+ GRegistrySettingsBackend *self = G_REGISTRY_SETTINGS_BACKEND (backend);
gchar *path_name;
gunichar2 *path_namew;
gchar *value_name = NULL;
@@ -1168,12 +1232,14 @@ g_registry_backend_reset (GSettingsBackend *backend,
path_name = parse_key (key_name, self->base_path, &value_name);
path_namew = g_utf8_to_utf16 (path_name, -1, NULL, NULL, NULL);
- result = RegOpenKeyExW (HKEY_CURRENT_USER, path_namew, 0, KEY_SET_VALUE, &hpath);
+ result = RegOpenKeyExW (self->base_key, path_namew, 0, KEY_SET_VALUE, &hpath);
g_free (path_namew);
if (result != ERROR_SUCCESS)
{
- g_message_win32_error (result, "Registry: resetting key '%s'", path_name);
+ g_message_win32_error (result, "Registry: resetting key '%s\\%s'",
+ predefined_key_to_string (self->base_key),
+ path_name);
g_free (path_name);
return;
}
@@ -1186,7 +1252,9 @@ g_registry_backend_reset (GSettingsBackend *backend,
if (result != ERROR_SUCCESS)
{
- g_message_win32_error (result, "Registry: resetting key '%s'", path_name);
+ g_message_win32_error (result, "Registry: resetting key '%s\\%s'",
+ predefined_key_to_string (self->base_key),
+ path_name);
g_free (path_name);
return;
}
@@ -1197,10 +1265,10 @@ g_registry_backend_reset (GSettingsBackend *backend,
}
static gboolean
-g_registry_backend_get_writable (GSettingsBackend *backend,
- const gchar *key_name)
+g_registry_settings_backend_get_writable (GSettingsBackend *backend,
+ const gchar *key_name)
{
- GRegistryBackend *self = G_REGISTRY_BACKEND (backend);
+ GRegistrySettingsBackend *self = G_REGISTRY_SETTINGS_BACKEND (backend);
gchar *path_name;
gunichar2 *path_namew;
gchar *value_name = NULL;
@@ -1214,13 +1282,14 @@ g_registry_backend_get_writable (GSettingsBackend *backend,
* of a problem since at the end of the day we have to create it anyway
* to read or to write from it
*/
- result = RegCreateKeyExW (HKEY_CURRENT_USER, path_namew, 0, NULL, 0,
+ result = RegCreateKeyExW (self->base_key, path_namew, 0, NULL, 0,
KEY_WRITE, NULL, &hpath, NULL);
g_free (path_namew);
if (result != ERROR_SUCCESS)
{
- trace ("Error opening/creating key to check writability: %s.\n",
+ trace ("Error opening/creating key to check writability: %s\\%s.\n",
+ predefined_key_to_string (self->base_key),
path_name);
g_free (path_name);
@@ -1291,7 +1360,7 @@ registry_cache_destroy_tree (GNode *node,
/* One of these is sent down the pipe when something happens in the registry. */
typedef struct
{
- GRegistryBackend *self;
+ GRegistrySettingsBackend *self;
gchar *prefix; /* prefix is a gsettings path, all items are subkeys of this. */
GPtrArray *items; /* each item is a subkey below prefix that has changed. */
} RegistryEvent;
@@ -1348,9 +1417,9 @@ registry_cache_remove_deleted (GNode *node,
}
/* Update cache from registry, and optionally report on the changes.
- *
+ *
* This function is sometimes called from the watch thread, with no locking. It
- * does call g_registry_backend functions, but this is okay because they only
+ * does call g_registry_settings_backend functions, but this is okay because they only
* access self->base which is constant.
*
* When looking at this code bear in mind the terminology: in the registry, keys
@@ -1362,13 +1431,13 @@ registry_cache_remove_deleted (GNode *node,
* there are notifications that are watching them.
*/
static void
-registry_cache_update (GRegistryBackend *self,
- HKEY hpath,
- const gchar *prefix,
- const gchar *partial_key_name,
- GNode *cache_node,
- int n_watches,
- RegistryEvent *event)
+registry_cache_update (GRegistrySettingsBackend *self,
+ HKEY hpath,
+ const gchar *prefix,
+ const gchar *partial_key_name,
+ GNode *cache_node,
+ int n_watches,
+ RegistryEvent *event)
{
gunichar2 bufferw[MAX_KEY_NAME_LENGTH + 1];
gchar *buffer;
@@ -1439,7 +1508,7 @@ registry_cache_update (GRegistryBackend *self,
}
if (result != ERROR_NO_MORE_ITEMS)
- g_message_win32_error (result, "gregistrybackend: error enumerating subkeys for cache.");
+ g_message_win32_error (result, "gregistrysettingsbackend: error enumerating subkeys for cache.");
/* Enumerate each value at 'path' and check if it has changed */
i = 0;
@@ -1512,7 +1581,7 @@ registry_cache_update (GRegistryBackend *self,
}
if (result != ERROR_NO_MORE_ITEMS)
- g_message_win32_error (result, "gregistrybackend: error enumerating values for cache");
+ g_message_win32_error (result, "gregistrysettingsbackend: error enumerating values for cache");
/* Any nodes now left unreadable must have been deleted, remove them from cache */
g_node_children_foreach (cache_node, G_TRAVERSE_ALL,
@@ -1572,7 +1641,7 @@ _free_watch (WatchThreadState *self,
prefix = g_ptr_array_index (self->prefixes, index);
trace ("Freeing watch %i [%s]\n", index, prefix);
-
+
/* These can be NULL if the watch was already dead, this can happen when eg.
* a key is deleted but GSettings is still subscribed to it - the watch is
* kept alive so that the unsubscribe function works properly, but does not
@@ -1583,7 +1652,7 @@ _free_watch (WatchThreadState *self,
if (cache_node != NULL)
{
- //registry_cache_dump (G_REGISTRY_BACKEND (self->owner)->cache_root, NULL);
+ //registry_cache_dump (G_REGISTRY_SETTINGS_BACKEND (self->owner)->cache_root, NULL);
registry_cache_unref_tree (cache_node);
}
@@ -1803,14 +1872,14 @@ watch_thread_function (LPVOID parameter)
* likely to block (only when changing notification subscriptions).
*/
event = g_slice_new (RegistryEvent);
- event->self = G_REGISTRY_BACKEND (g_object_ref (self->owner));
+ event->self = G_REGISTRY_SETTINGS_BACKEND (g_object_ref (self->owner));
event->prefix = g_strdup (prefix);
event->items = g_ptr_array_new_with_free_func (g_free);
- EnterCriticalSection (G_REGISTRY_BACKEND (self->owner)->cache_lock);
- registry_cache_update (G_REGISTRY_BACKEND (self->owner), hpath,
+ EnterCriticalSection (G_REGISTRY_SETTINGS_BACKEND (self->owner)->cache_lock);
+ registry_cache_update (G_REGISTRY_SETTINGS_BACKEND (self->owner), hpath,
prefix, NULL, cache_node, 0, event);
- LeaveCriticalSection (G_REGISTRY_BACKEND (self->owner)->cache_lock);
+ LeaveCriticalSection (G_REGISTRY_SETTINGS_BACKEND (self->owner)->cache_lock);
if (event->items->len > 0)
g_idle_add ((GSourceFunc) watch_handler, event);
@@ -1833,7 +1902,7 @@ watch_thread_function (LPVOID parameter)
}
static gboolean
-watch_start (GRegistryBackend *self)
+watch_start (GRegistrySettingsBackend *self)
{
WatchThreadState *watch;
@@ -1850,7 +1919,7 @@ watch_start (GRegistryBackend *self)
watch->message_received_event = CreateEvent (NULL, FALSE, FALSE, NULL);
if (watch->message_sent_event == NULL || watch->message_received_event == NULL)
{
- g_message_win32_error (GetLastError (), "gregistrybackend: Failed to create sync objects.");
+ g_message_win32_error (GetLastError (), "gregistrysettingsbackend: Failed to create sync objects.");
goto fail;
}
@@ -1858,7 +1927,7 @@ watch_start (GRegistryBackend *self)
watch->thread = CreateThread (NULL, 1024, watch_thread_function, watch, 0, NULL);
if (watch->thread == NULL)
{
- g_message_win32_error (GetLastError (), "gregistrybackend: Failed to create notify watch thread.");
+ g_message_win32_error (GetLastError (), "gregistrysettingsbackend: Failed to create notify watch thread.");
goto fail;
}
@@ -1880,7 +1949,7 @@ fail:
/* This function assumes you hold the message lock! */
static void
-watch_stop_unlocked (GRegistryBackend *self)
+watch_stop_unlocked (GRegistrySettingsBackend *self)
{
WatchThreadState *watch = self->watch;
DWORD result;
@@ -1897,7 +1966,7 @@ watch_stop_unlocked (GRegistryBackend *self)
result = WaitForSingleObject (watch->message_received_event, INFINITE);
if (result != WAIT_OBJECT_0)
{
- g_warning ("gregistrybackend: unable to stop watch thread.");
+ g_warning ("gregistrysettingsbackend: unable to stop watch thread.");
return;
}
@@ -1914,10 +1983,10 @@ watch_stop_unlocked (GRegistryBackend *self)
}
static gboolean
-watch_add_notify (GRegistryBackend *self,
- HANDLE event,
- HKEY hpath,
- gchar *gsettings_prefix)
+watch_add_notify (GRegistrySettingsBackend *self,
+ HANDLE event,
+ HKEY hpath,
+ gchar *gsettings_prefix)
{
WatchThreadState *watch = self->watch;
GNode *cache_node;
@@ -1942,7 +2011,7 @@ watch_add_notify (GRegistryBackend *self,
g_warn_if_reached ();
return FALSE;
}
-
+
cache_item = cache_node->data;
cache_item->subscription_count++;
@@ -1987,8 +2056,8 @@ watch_add_notify (GRegistryBackend *self,
}
static void
-watch_remove_notify (GRegistryBackend *self,
- const gchar *key_name)
+watch_remove_notify (GRegistrySettingsBackend *self,
+ const gchar *key_name)
{
WatchThreadState *watch = self->watch;
LONG result;
@@ -2025,10 +2094,10 @@ watch_remove_notify (GRegistryBackend *self,
* key. Our job is easier because keys and values are separate.
*/
static void
-g_registry_backend_subscribe (GSettingsBackend *backend,
- const char *key_name)
+g_registry_settings_backend_subscribe (GSettingsBackend *backend,
+ const char *key_name)
{
- GRegistryBackend *self = G_REGISTRY_BACKEND (backend);
+ GRegistrySettingsBackend *self = G_REGISTRY_SETTINGS_BACKEND (backend);
gchar *path_name;
gunichar2 *path_namew;
gchar *value_name = NULL;
@@ -2062,13 +2131,13 @@ g_registry_backend_subscribe (GSettingsBackend *backend,
/* Give the caller the benefit of the doubt if the key doesn't exist and create it. The caller
* is almost certainly a new g_settings with this path as base path. */
- result = RegCreateKeyExW (HKEY_CURRENT_USER, path_namew, 0, NULL, 0, KEY_READ, NULL, &hpath,
+ result = RegCreateKeyExW (self->base_key, path_namew, 0, NULL, 0, KEY_READ, NULL, &hpath,
NULL);
g_free (path_namew);
if (result != ERROR_SUCCESS)
{
- g_message_win32_error (result, "gregistrybackend: Unable to subscribe to key %s.", key_name);
+ g_message_win32_error (result, "gregistrysettingsbackend: Unable to subscribe to key %s.", key_name);
g_atomic_int_inc (&self->watch->watches_remaining);
return;
}
@@ -2076,7 +2145,7 @@ g_registry_backend_subscribe (GSettingsBackend *backend,
event = CreateEvent (NULL, FALSE, FALSE, NULL);
if (event == NULL)
{
- g_message_win32_error (result, "gregistrybackend: CreateEvent failed.");
+ g_message_win32_error (result, "gregistrysettingsbackend: CreateEvent failed.");
g_atomic_int_inc (&self->watch->watches_remaining);
RegCloseKey (hpath);
return;
@@ -2093,12 +2162,12 @@ g_registry_backend_subscribe (GSettingsBackend *backend,
}
static void
-g_registry_backend_unsubscribe (GSettingsBackend *backend,
- const char *key_name)
+g_registry_settings_backend_unsubscribe (GSettingsBackend *backend,
+ const char *key_name)
{
trace ("unsubscribe: %s.\n", key_name);
- watch_remove_notify (G_REGISTRY_BACKEND (backend), key_name);
+ watch_remove_notify (G_REGISTRY_SETTINGS_BACKEND (backend), key_name);
}
/********************************************************************************
@@ -2106,9 +2175,9 @@ g_registry_backend_unsubscribe (GSettingsBackend *backend,
********************************************************************************/
static void
-g_registry_backend_finalize (GObject *object)
+g_registry_settings_backend_finalize (GObject *object)
{
- GRegistryBackend *self = G_REGISTRY_BACKEND (object);
+ GRegistrySettingsBackend *self = G_REGISTRY_SETTINGS_BACKEND (object);
RegistryCacheItem *item;
item = self->cache_root->data;
@@ -2131,30 +2200,136 @@ g_registry_backend_finalize (GObject *object)
}
static void
-g_registry_backend_class_init (GRegistryBackendClass *class)
+g_registry_settings_backend_constructed (GObject *object)
+{
+ GRegistrySettingsBackend *self = G_REGISTRY_SETTINGS_BACKEND (object);
+
+ if (self->base_key == NULL || self->base_path == NULL || self->base_pathw == NULL)
+ {
+ self->base_key = HKEY_CURRENT_USER;
+ self->base_path = g_strdup ("Software\\GSettings");
+ self->base_pathw = g_utf8_to_utf16 (self->base_path, -1, NULL, NULL, NULL);
+ }
+}
+
+static void
+g_registry_settings_backend_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GRegistrySettingsBackend *self = G_REGISTRY_SETTINGS_BACKEND (object);
+
+ switch ((GRegistrySettingsBackendProperty) prop_id)
+ {
+ case PROP_REGISTRY_KEY:
+ g_value_take_string (value,
+ g_strdup_printf ("%s\\%s",
+ predefined_key_to_string (self->base_key),
+ self->base_path));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+g_registry_settings_backend_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GRegistrySettingsBackend *self = G_REGISTRY_SETTINGS_BACKEND (object);
+ const gchar *reg_path;
+
+ switch ((GRegistrySettingsBackendProperty) prop_id)
+ {
+ case PROP_REGISTRY_KEY:
+ /* Construct only. */
+ g_assert (self->base_key == NULL);
+ g_assert (self->base_path == NULL);
+ g_assert (self->base_pathw == NULL);
+
+ reg_path = g_value_get_string (value);
+ if (reg_path != NULL)
+ {
+ HKEY base_key;
+ const gchar *base_path = split_registry_path (reg_path, &base_key);
+
+ if (base_path != NULL)
+ {
+ gunichar2 *base_pathw = g_utf8_to_utf16 (base_path, -1, NULL, NULL, NULL);
+
+ if (base_pathw != NULL)
+ {
+ self->base_key = g_steal_pointer (&base_key);
+ self->base_path = g_strdup (base_path);
+ self->base_pathw = g_steal_pointer (&base_pathw);
+ }
+ else
+ g_warning ("gregistrysettingsbackend: invalid base registry path '%s'", reg_path);
+ }
+ else
+ g_warning ("gregistrysettingsbackend: base registry path '%s' does not start with a valid root key", reg_path);
+ }
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+g_registry_settings_backend_class_init (GRegistrySettingsBackendClass *class)
{
GSettingsBackendClass *backend_class = G_SETTINGS_BACKEND_CLASS (class);
GObjectClass *object_class = G_OBJECT_CLASS (class);
- object_class->finalize = g_registry_backend_finalize;
-
- backend_class->read = g_registry_backend_read;
- backend_class->write = g_registry_backend_write;
- backend_class->write_tree = g_registry_backend_write_tree;
- backend_class->reset = g_registry_backend_reset;
- backend_class->get_writable = g_registry_backend_get_writable;
- backend_class->subscribe = g_registry_backend_subscribe;
- backend_class->unsubscribe = g_registry_backend_unsubscribe;
+ object_class->finalize = g_registry_settings_backend_finalize;
+ object_class->constructed = g_registry_settings_backend_constructed;
+ object_class->get_property = g_registry_settings_backend_get_property;
+ object_class->set_property = g_registry_settings_backend_set_property;
+
+ backend_class->read = g_registry_settings_backend_read;
+ backend_class->write = g_registry_settings_backend_write;
+ backend_class->write_tree = g_registry_settings_backend_write_tree;
+ backend_class->reset = g_registry_settings_backend_reset;
+ backend_class->get_writable = g_registry_settings_backend_get_writable;
+ backend_class->subscribe = g_registry_settings_backend_subscribe;
+ backend_class->unsubscribe = g_registry_settings_backend_unsubscribe;
+
+ /**
+ * GRegistrySettingsBackend:registry-key:
+ *
+ * The location where settings are stored in the registry. Must
+ * start with one of the following:
+ * - `HKEY_CLASSES_ROOT`
+ * - `HKEY_CURRENT_CONFIG`
+ * - `HKEY_CURRENT_USER`
+ * - `HKEY_LOCAL_MACHINE`
+ * - `HKEY_USERS`
+ *
+ * Defaults to `HKEY_CURRENT_USER\Software\GSettings`.
+ *
+ * Since: 2.78
+ */
+ g_object_class_install_property (object_class,
+ PROP_REGISTRY_KEY,
+ g_param_spec_string ("registry-key",
+ NULL, NULL,
+ "HKEY_CURRENT_USER\\Software\\GSettings",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
}
static void
-g_registry_backend_init (GRegistryBackend *self)
+g_registry_settings_backend_init (GRegistrySettingsBackend *self)
{
RegistryCacheItem *item;
- self->base_path = g_strdup_printf ("Software\\GSettings");
- self->base_pathw = g_utf8_to_utf16 (self->base_path, -1, NULL, NULL, NULL);
-
item = g_slice_new (RegistryCacheItem);
item->value.type = REG_NONE;
item->value.ptr = NULL;
@@ -2167,3 +2342,25 @@ g_registry_backend_init (GRegistryBackend *self)
self->watch = NULL;
}
+
+/**
+ * g_registry_settings_backend_new:
+ * @registry_key: (nullable): the path to the registry key where
+ * settings are stored, or %NULL.
+ *
+ * If @registry_key is %NULL then the default path
+ * `HKEY_CURRENT_USER\Software\GSettings` is used.
+ *
+ * Returns: (transfer full): a registry-backed #GSettingsBackend
+ *
+ * Since: 2.78
+ **/
+GSettingsBackend *
+g_registry_settings_backend_new (const gchar *registry_key)
+{
+ g_return_val_if_fail (registry_key == NULL || split_registry_path (registry_key, NULL), NULL);
+
+ return G_SETTINGS_BACKEND (g_object_new (G_TYPE_REGISTRY_SETTINGS_BACKEND,
+ "registry-key", registry_key,
+ NULL));
+}
diff --git a/gio/gregistrysettingsbackend.h b/gio/gregistrysettingsbackend.h
index 34fdff0ed..77685885a 100644
--- a/gio/gregistrysettingsbackend.h
+++ b/gio/gregistrysettingsbackend.h
@@ -24,7 +24,9 @@
#include <glib-object.h>
-GType g_registry_backend_get_type (void);
+#include <gio/gsettingsbackend.h>
+GIO_AVAILABLE_IN_2_78
+GSettingsBackend * g_registry_settings_backend_new (const gchar *registry_key);
#endif /* __G_REGISTRY_SETTINGS_BACKEND_H__ */
diff --git a/gio/gremoteactiongroup.h b/gio/gremoteactiongroup.h
index aa72c3eaf..fb0847efc 100644
--- a/gio/gremoteactiongroup.h
+++ b/gio/gremoteactiongroup.h
@@ -57,16 +57,16 @@ struct _GRemoteActionGroupInterface
GVariant *platform_data);
};
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GType g_remote_action_group_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_remote_action_group_activate_action_full (GRemoteActionGroup *remote,
const gchar *action_name,
GVariant *parameter,
GVariant *platform_data);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_remote_action_group_change_action_state_full (GRemoteActionGroup *remote,
const gchar *action_name,
GVariant *value,
diff --git a/gio/gresolver.c b/gio/gresolver.c
index 6a735e8d9..4c29d5873 100644
--- a/gio/gresolver.c
+++ b/gio/gresolver.c
@@ -55,8 +55,18 @@
* #GNetworkAddress and #GNetworkService provide wrappers around
* #GResolver functionality that also implement #GSocketConnectable,
* making it easy to connect to a remote host/service.
+ *
+ * The default resolver (see g_resolver_get_default()) has a timeout of 30s set
+ * on it since GLib 2.78. Earlier versions of GLib did not support resolver
+ * timeouts.
*/
+typedef enum {
+ PROP_TIMEOUT = 1,
+} GResolverProperty;
+
+static GParamSpec *props[PROP_TIMEOUT + 1] = { NULL, };
+
enum {
RELOAD,
LAST_SIGNAL
@@ -65,11 +75,11 @@ enum {
static guint signals[LAST_SIGNAL] = { 0 };
struct _GResolverPrivate {
+ unsigned timeout_ms;
+
#ifdef G_OS_UNIX
GMutex mutex;
time_t resolv_conf_timestamp; /* protected by @mutex */
-#else
- int dummy;
#endif
};
@@ -152,6 +162,42 @@ g_resolver_real_lookup_service_finish (GResolver *resolver,
}
static void
+g_resolver_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GResolver *self = G_RESOLVER (object);
+
+ switch ((GResolverProperty) prop_id)
+ {
+ case PROP_TIMEOUT:
+ g_value_set_uint (value, g_resolver_get_timeout (self));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
+g_resolver_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GResolver *self = G_RESOLVER (object);
+
+ switch ((GResolverProperty) prop_id)
+ {
+ case PROP_TIMEOUT:
+ g_resolver_set_timeout (self, g_value_get_uint (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
g_resolver_finalize (GObject *object)
{
#ifdef G_OS_UNIX
@@ -168,6 +214,8 @@ g_resolver_class_init (GResolverClass *resolver_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (resolver_class);
+ object_class->get_property = g_resolver_get_property;
+ object_class->set_property = g_resolver_set_property;
object_class->finalize = g_resolver_finalize;
/* Automatically pass these over to the lookup_records methods */
@@ -176,6 +224,31 @@ g_resolver_class_init (GResolverClass *resolver_class)
resolver_class->lookup_service_finish = g_resolver_real_lookup_service_finish;
/**
+ * GResolver:timeout:
+ *
+ * The timeout applied to all resolver lookups, in milliseconds.
+ *
+ * This may be changed through the lifetime of the #GResolver. The new value
+ * will apply to any lookups started after the change, but not to any
+ * already-ongoing lookups.
+ *
+ * If this is `0`, no timeout is applied to lookups.
+ *
+ * No timeout was applied to lookups before this property was added in
+ * GLib 2.78.
+ *
+ * Since: 2.78
+ */
+ props[PROP_TIMEOUT] =
+ g_param_spec_uint ("timeout",
+ P_("Timeout"),
+ P_("Timeout (ms) applied to all resolver lookups"),
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
+
+ g_object_class_install_properties (object_class, G_N_ELEMENTS (props), props);
+
+ /**
* GResolver::reload:
* @resolver: a #GResolver
*
@@ -230,7 +303,9 @@ g_resolver_get_default (void)
G_LOCK (default_resolver);
if (!default_resolver)
- default_resolver = g_object_new (G_TYPE_THREADED_RESOLVER, NULL);
+ default_resolver = g_object_new (G_TYPE_THREADED_RESOLVER,
+ "timeout", 30000,
+ NULL);
ret = g_object_ref (default_resolver);
G_UNLOCK (default_resolver);
@@ -688,8 +763,8 @@ lookup_by_name_finish_real (GResolver *resolver,
* @hostname: the hostname to look up the address of
* @flags: extra #GResolverNameLookupFlags for the lookup
* @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): callback to call after resolution completes
- * @user_data: (closure): data for @callback
+ * @callback: (scope async) (closure user_data): callback to call after resolution completes
+ * @user_data: data for @callback
*
* Begins asynchronously resolving @hostname to determine its
* associated IP address(es), and eventually calls @callback, which
@@ -719,8 +794,8 @@ g_resolver_lookup_by_name_with_flags_async (GResolver *resolver,
* @resolver: a #GResolver
* @hostname: the hostname to look up the address of
* @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): callback to call after resolution completes
- * @user_data: (closure): data for @callback
+ * @callback: (scope async) (closure user_data): callback to call after resolution completes
+ * @user_data: data for @callback
*
* Begins asynchronously resolving @hostname to determine its
* associated IP address(es), and eventually calls @callback, which
@@ -866,8 +941,8 @@ g_resolver_lookup_by_address (GResolver *resolver,
* @resolver: a #GResolver
* @address: the address to reverse-resolve
* @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): callback to call after resolution completes
- * @user_data: (closure): data for @callback
+ * @callback: (scope async) (closure user_data): callback to call after resolution completes
+ * @user_data: data for @callback
*
* Begins asynchronously reverse-resolving @address to determine its
* associated hostname, and eventually calls @callback, which must
@@ -1017,8 +1092,8 @@ g_resolver_lookup_service (GResolver *resolver,
* @protocol: the networking protocol to use for @service (eg, "tcp")
* @domain: the DNS domain to look up the service in
* @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): callback to call after resolution completes
- * @user_data: (closure): data for @callback
+ * @callback: (scope async) (closure user_data): callback to call after resolution completes
+ * @user_data: data for @callback
*
* Begins asynchronously performing a DNS SRV lookup for the given
* @service and @protocol in the given @domain, and eventually calls
@@ -1166,8 +1241,8 @@ g_resolver_lookup_records (GResolver *resolver,
* @rrname: the DNS name to look up the record for
* @record_type: the type of DNS record to look up
* @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): callback to call after resolution completes
- * @user_data: (closure): data for @callback
+ * @callback: (scope async) (closure user_data): callback to call after resolution completes
+ * @user_data: data for @callback
*
* Begins asynchronously performing a DNS lookup for the given
* @rrname, and eventually calls @callback, which must call
@@ -1245,6 +1320,50 @@ g_resolver_get_serial (GResolver *resolver)
}
/**
+ * g_resolver_get_timeout:
+ * @resolver: a #GResolver
+ *
+ * Get the timeout applied to all resolver lookups. See #GResolver:timeout.
+ *
+ * Returns: the resolver timeout, in milliseconds, or `0` for no timeout
+ *
+ * Since: 2.78
+ */
+unsigned
+g_resolver_get_timeout (GResolver *resolver)
+{
+ GResolverPrivate *priv = g_resolver_get_instance_private (resolver);
+
+ g_return_val_if_fail (G_IS_RESOLVER (resolver), 0);
+
+ return priv->timeout_ms;
+}
+
+/**
+ * g_resolver_set_timeout:
+ * @resolver: a #GResolver
+ * @timeout_ms: timeout in milliseconds, or `0` for no timeouts
+ *
+ * Set the timeout applied to all resolver lookups. See #GResolver:timeout.
+ *
+ * Since: 2.78
+ */
+void
+g_resolver_set_timeout (GResolver *resolver,
+ unsigned timeout_ms)
+{
+ GResolverPrivate *priv = g_resolver_get_instance_private (resolver);
+
+ g_return_if_fail (G_IS_RESOLVER (resolver));
+
+ if (priv->timeout_ms == timeout_ms)
+ return;
+
+ priv->timeout_ms = timeout_ms;
+ g_object_notify_by_pspec (G_OBJECT (resolver), props[PROP_TIMEOUT]);
+}
+
+/**
* g_resolver_error_quark:
*
* Gets the #GResolver Error Quark.
diff --git a/gio/gresolver.h b/gio/gresolver.h
index e5f46615a..cbcbdecb5 100644
--- a/gio/gresolver.h
+++ b/gio/gresolver.h
@@ -131,7 +131,7 @@ struct _GResolverClass {
* @flags: extra #GResolverNameLookupFlags to modify the lookup
* @cancellable: (nullable): a #GCancellable
* @callback: (scope async): a #GAsyncReadyCallback to call when completed
- * @user_data: (closure): data to pass to @callback
+ * @user_data: data to pass to @callback
*
* Asynchronous version of GResolverClass::lookup_by_name_with_flags
*
@@ -183,69 +183,69 @@ struct _GResolverClass {
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_resolver_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GResolver *g_resolver_get_default (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_resolver_set_default (GResolver *resolver);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList *g_resolver_lookup_by_name (GResolver *resolver,
const gchar *hostname,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_resolver_lookup_by_name_async (GResolver *resolver,
const gchar *hostname,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList *g_resolver_lookup_by_name_finish (GResolver *resolver,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
void g_resolver_lookup_by_name_with_flags_async (GResolver *resolver,
const gchar *hostname,
GResolverNameLookupFlags flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
GList *g_resolver_lookup_by_name_with_flags_finish (GResolver *resolver,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
GList *g_resolver_lookup_by_name_with_flags (GResolver *resolver,
const gchar *hostname,
GResolverNameLookupFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_resolver_free_addresses (GList *addresses);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar *g_resolver_lookup_by_address (GResolver *resolver,
GInetAddress *address,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_resolver_lookup_by_address_async (GResolver *resolver,
GInetAddress *address,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar *g_resolver_lookup_by_address_finish (GResolver *resolver,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList *g_resolver_lookup_service (GResolver *resolver,
const gchar *service,
const gchar *protocol,
const gchar *domain,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_resolver_lookup_service_async (GResolver *resolver,
const gchar *service,
const gchar *protocol,
@@ -253,30 +253,35 @@ void g_resolver_lookup_service_async (GResolver
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList *g_resolver_lookup_service_finish (GResolver *resolver,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GList *g_resolver_lookup_records (GResolver *resolver,
const gchar *rrname,
GResolverRecordType record_type,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
void g_resolver_lookup_records_async (GResolver *resolver,
const gchar *rrname,
GResolverRecordType record_type,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GList *g_resolver_lookup_records_finish (GResolver *resolver,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_resolver_free_targets (GList *targets);
+GIO_AVAILABLE_IN_2_78
+unsigned g_resolver_get_timeout (GResolver *resolver);
+GIO_AVAILABLE_IN_2_78
+void g_resolver_set_timeout (GResolver *resolver,
+ unsigned timeout_ms);
/**
* G_RESOLVER_ERROR:
@@ -286,7 +291,7 @@ void g_resolver_free_targets (GList
* error domains.
*/
#define G_RESOLVER_ERROR (g_resolver_error_quark ())
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GQuark g_resolver_error_quark (void);
G_END_DECLS
diff --git a/gio/gresource.c b/gio/gresource.c
index 4ccd33364..a67df11ef 100644
--- a/gio/gresource.c
+++ b/gio/gresource.c
@@ -1364,11 +1364,10 @@ g_resources_get_info (const gchar *path,
static void
register_lazy_static_resources_unlocked (void)
{
- GStaticResource *list;
+ GStaticResource *list = g_atomic_pointer_get (&lazy_register_resources);
- do
- list = lazy_register_resources;
- while (!g_atomic_pointer_compare_and_exchange (&lazy_register_resources, list, NULL));
+ while (!g_atomic_pointer_compare_and_exchange_full (&lazy_register_resources, list, NULL, &list))
+ ;
while (list != NULL)
{
@@ -1416,7 +1415,7 @@ g_static_resource_init (GStaticResource *static_resource)
do
{
- next = lazy_register_resources;
+ next = g_atomic_pointer_get (&lazy_register_resources);
static_resource->next = next;
}
while (!g_atomic_pointer_compare_and_exchange (&lazy_register_resources, next, static_resource));
diff --git a/gio/gresource.dtd b/gio/gresource.dtd
new file mode 100644
index 000000000..7b79fad35
--- /dev/null
+++ b/gio/gresource.dtd
@@ -0,0 +1,14 @@
+<!--
+ SPDX-License-Identifier: LGPL-2.1-or-later
+ SPDX-FileCopyrightText: 2023 JCWasmx86
+-->
+
+<!ELEMENT gresources (gresource)* >
+
+<!ELEMENT gresource (file)* >
+<!ATTLIST gresource prefix CDATA #IMPLIED >
+
+<!ELEMENT file (#PCDATA) >
+<!ATTLIST file alias CDATA #IMPLIED
+ compressed (true|false) #IMPLIED
+ preprocess (xml-stripblanks|to-pixdata|json-stripblanks) #IMPLIED >
diff --git a/gio/gresource.h b/gio/gresource.h
index fe1610aac..f9853aa28 100644
--- a/gio/gresource.h
+++ b/gio/gresource.h
@@ -47,7 +47,7 @@ G_BEGIN_DECLS
* error domains.
*/
#define G_RESOURCE_ERROR (g_resource_error_quark ())
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GQuark g_resource_error_quark (void);
typedef struct _GStaticResource GStaticResource;
@@ -61,34 +61,34 @@ struct _GStaticResource {
gpointer padding;
};
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GType g_resource_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GResource * g_resource_new_from_data (GBytes *data,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GResource * g_resource_ref (GResource *resource);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_resource_unref (GResource *resource);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GResource * g_resource_load (const gchar *filename,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GInputStream *g_resource_open_stream (GResource *resource,
const char *path,
GResourceLookupFlags lookup_flags,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GBytes * g_resource_lookup_data (GResource *resource,
const char *path,
GResourceLookupFlags lookup_flags,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
char ** g_resource_enumerate_children (GResource *resource,
const char *path,
GResourceLookupFlags lookup_flags,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_resource_get_info (GResource *resource,
const char *path,
GResourceLookupFlags lookup_flags,
@@ -96,23 +96,23 @@ gboolean g_resource_get_info (GResource *resource,
guint32 *flags,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_resources_register (GResource *resource);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_resources_unregister (GResource *resource);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GInputStream *g_resources_open_stream (const char *path,
GResourceLookupFlags lookup_flags,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GBytes * g_resources_lookup_data (const char *path,
GResourceLookupFlags lookup_flags,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
char ** g_resources_enumerate_children (const char *path,
GResourceLookupFlags lookup_flags,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_resources_get_info (const char *path,
GResourceLookupFlags lookup_flags,
gsize *size,
@@ -120,11 +120,11 @@ gboolean g_resources_get_info (const char *path,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_static_resource_init (GStaticResource *static_resource);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_static_resource_fini (GStaticResource *static_resource);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GResource *g_static_resource_get_resource (GStaticResource *static_resource);
G_END_DECLS
diff --git a/gio/gresourcefile.c b/gio/gresourcefile.c
index 24f20f290..1621839cf 100644
--- a/gio/gresourcefile.c
+++ b/gio/gresourcefile.c
@@ -238,6 +238,7 @@ g_resource_file_new_for_path (const char *path)
return G_FILE (resource);
}
+/* Will return %NULL if @uri is malformed */
GFile *
_g_resource_file_new (const char *uri)
{
@@ -245,6 +246,9 @@ _g_resource_file_new (const char *uri)
char *path;
path = g_uri_unescape_string (uri + strlen ("resource:"), NULL);
+ if (path == NULL)
+ return NULL;
+
resource = g_resource_file_new_for_path (path);
g_free (path);
@@ -558,7 +562,8 @@ g_resource_file_query_filesystem_info (GFile *file,
if (g_file_attribute_matcher_matches (matcher, G_FILE_ATTRIBUTE_FILESYSTEM_TYPE))
g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_FILESYSTEM_TYPE, "resource");
- if (g_file_attribute_matcher_matches (matcher, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY)) g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY, TRUE);
+ if (g_file_attribute_matcher_matches (matcher, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY))
+ g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY, TRUE);
g_file_attribute_matcher_unref (matcher);
diff --git a/gio/gsandbox.c b/gio/gsandbox.c
new file mode 100644
index 000000000..fcbefa902
--- /dev/null
+++ b/gio/gsandbox.c
@@ -0,0 +1,141 @@
+/* GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright 2022 Canonical Ltd
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include "gsandbox.h"
+
+#include <string.h>
+
+#define SNAP_CONFINEMENT_PREFIX "confinement:"
+
+static gboolean
+is_flatpak (void)
+{
+ const char *flatpak_info = "/.flatpak-info";
+ gboolean found;
+
+#ifdef G_PORTAL_SUPPORT_TEST
+ char *test_key_file =
+ g_build_filename (g_get_user_runtime_dir (), flatpak_info, NULL);
+ flatpak_info = test_key_file;
+#endif
+
+ found = g_file_test (flatpak_info, G_FILE_TEST_EXISTS);
+
+#ifdef G_PORTAL_SUPPORT_TEST
+ g_clear_pointer (&test_key_file, g_free);
+#endif
+
+ return found;
+}
+
+static gchar *
+get_snap_confinement (const char *snap_yaml,
+ GError **error)
+{
+ char *confinement = NULL;
+ char *yaml_contents;
+
+ if (g_file_get_contents (snap_yaml, &yaml_contents, NULL, error))
+ {
+ const char *line = yaml_contents;
+
+ do
+ {
+ if (g_str_has_prefix (line, SNAP_CONFINEMENT_PREFIX))
+ break;
+
+ line = strchr (line, '\n');
+ if (line)
+ line += 1;
+ }
+ while (line != NULL);
+
+ if (line)
+ {
+ const char *start = line + strlen (SNAP_CONFINEMENT_PREFIX);
+ const char *end = strchr (start, '\n');
+
+ confinement =
+ g_strstrip (end ? g_strndup (start, end-start) : g_strdup (start));
+ }
+
+ g_free (yaml_contents);
+ }
+
+ return g_steal_pointer (&confinement);
+}
+
+static gboolean
+is_snap (void)
+{
+ GError *error = NULL;
+ const gchar *snap_path;
+ gchar *yaml_path;
+ char *confinement;
+ gboolean result;
+
+ snap_path = g_getenv ("SNAP");
+ if (snap_path == NULL)
+ return FALSE;
+
+ result = FALSE;
+ yaml_path = g_build_filename (snap_path, "meta", "snap.yaml", NULL);
+ confinement = get_snap_confinement (yaml_path, &error);
+ g_free (yaml_path);
+
+ /* Classic snaps are de-facto no sandboxed apps, so we can ignore them */
+ if (!error && g_strcmp0 (confinement, "classic") != 0)
+ result = TRUE;
+
+ g_clear_error (&error);
+ g_free (confinement);
+
+ return result;
+}
+
+/*
+ * glib_get_sandbox_type:
+ *
+ * Gets the type of sandbox this process is running inside.
+ *
+ * Checking for sandboxes may involve doing blocking I/O calls, but should not take
+ * any significant time.
+ *
+ * The sandbox will not change over the lifetime of the process, so calling this
+ * function once and reusing the result is valid.
+ *
+ * If this process is not sandboxed then @G_SANDBOX_TYPE_UNKNOWN will be returned.
+ * This is because this function only detects known sandbox types in #GSandboxType.
+ * It may be updated in the future if new sandboxes come into use.
+ *
+ * Returns: a #GSandboxType.
+ */
+GSandboxType
+glib_get_sandbox_type (void)
+{
+ if (is_flatpak ())
+ return G_SANDBOX_TYPE_FLATPAK;
+ else if (is_snap ())
+ return G_SANDBOX_TYPE_SNAP;
+ else
+ return G_SANDBOX_TYPE_UNKNOWN;
+}
diff --git a/gio/gsandbox.h b/gio/gsandbox.h
new file mode 100644
index 000000000..7861b2756
--- /dev/null
+++ b/gio/gsandbox.h
@@ -0,0 +1,47 @@
+/* GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright 2022 Canonical Ltd
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __G_SANDBOX_H__
+#define __G_SANDBOX_H__
+
+#include <gio.h>
+
+G_BEGIN_DECLS
+
+/*
+ * GSandboxType:
+ * @G_SANDBOX_TYPE_UNKNOWN: process is running inside an unknown or no sandbox.
+ * @G_SANDBOX_TYPE_FLATPAK: process is running inside a flatpak sandbox.
+ * @G_SANDBOX_TYPE_SNAP: process is running inside a snap sandbox.
+ *
+ * The type of sandbox that processes can be running inside.
+ */
+typedef enum
+{
+ G_SANDBOX_TYPE_UNKNOWN,
+ G_SANDBOX_TYPE_FLATPAK,
+ G_SANDBOX_TYPE_SNAP
+} GSandboxType;
+
+GSandboxType glib_get_sandbox_type (void);
+
+G_END_DECLS
+
+#endif
diff --git a/gio/gschema.dtd b/gio/gschema.dtd
index 3a903e7ab..9d7482db7 100644
--- a/gio/gschema.dtd
+++ b/gio/gschema.dtd
@@ -33,7 +33,7 @@
enum CDATA #IMPLIED
flags CDATA #IMPLIED >
-<!-- the default value is specified a a serialized GVariant,
+<!-- the default value is specified as a serialized GVariant,
i.e. you have to include the quotes when specifying a string -->
<!ELEMENT default (#PCDATA) >
<!-- the presence of the l10n attribute marks a default value for
diff --git a/gio/gseekable.h b/gio/gseekable.h
index efc2d49a6..34510de6f 100644
--- a/gio/gseekable.h
+++ b/gio/gseekable.h
@@ -78,22 +78,22 @@ struct _GSeekableIface
/* TODO: Async seek/truncate */
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_seekable_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
goffset g_seekable_tell (GSeekable *seekable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_seekable_can_seek (GSeekable *seekable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_seekable_seek (GSeekable *seekable,
goffset offset,
GSeekType type,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_seekable_can_truncate (GSeekable *seekable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_seekable_truncate (GSeekable *seekable,
goffset offset,
GCancellable *cancellable,
diff --git a/gio/gsettings.c b/gio/gsettings.c
index 12b987050..a2c3dd0e4 100644
--- a/gio/gsettings.c
+++ b/gio/gsettings.c
@@ -3223,10 +3223,7 @@ g_settings_action_get_state (GAction *action)
value = g_settings_read_from_backend (gsa->settings, &gsa->key, FALSE, FALSE);
if (value == NULL)
- value = g_settings_schema_key_get_translated_default (&gsa->key);
-
- if (value == NULL)
- value = g_variant_ref (gsa->key.default_value);
+ value = g_settings_schema_key_get_default_value (&gsa->key);
return value;
}
diff --git a/gio/gsettings.h b/gio/gsettings.h
index e23861873..8a9d2b5c7 100644
--- a/gio/gsettings.h
+++ b/gio/gsettings.h
@@ -69,157 +69,157 @@ struct _GSettings
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_settings_get_type (void);
-GLIB_DEPRECATED_IN_2_40_FOR(g_settings_schema_source_list_schemas)
+GIO_DEPRECATED_IN_2_40_FOR(g_settings_schema_source_list_schemas)
const gchar * const * g_settings_list_schemas (void);
-GLIB_DEPRECATED_IN_2_40_FOR(g_settings_schema_source_list_schemas)
+GIO_DEPRECATED_IN_2_40_FOR(g_settings_schema_source_list_schemas)
const gchar * const * g_settings_list_relocatable_schemas (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSettings * g_settings_new (const gchar *schema_id);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSettings * g_settings_new_with_path (const gchar *schema_id,
const gchar *path);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSettings * g_settings_new_with_backend (const gchar *schema_id,
GSettingsBackend *backend);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSettings * g_settings_new_with_backend_and_path (const gchar *schema_id,
GSettingsBackend *backend,
const gchar *path);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GSettings * g_settings_new_full (GSettingsSchema *schema,
GSettingsBackend *backend,
const gchar *path);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar ** g_settings_list_children (GSettings *settings);
-GLIB_DEPRECATED_IN_2_46_FOR(g_settings_schema_list_keys)
+GIO_DEPRECATED_IN_2_46_FOR(g_settings_schema_list_keys)
gchar ** g_settings_list_keys (GSettings *settings);
-GLIB_DEPRECATED_IN_2_40_FOR(g_settings_schema_key_get_range)
+GIO_DEPRECATED_IN_2_40_FOR(g_settings_schema_key_get_range)
GVariant * g_settings_get_range (GSettings *settings,
const gchar *key);
-GLIB_DEPRECATED_IN_2_40_FOR(g_settings_schema_key_range_check)
+GIO_DEPRECATED_IN_2_40_FOR(g_settings_schema_key_range_check)
gboolean g_settings_range_check (GSettings *settings,
const gchar *key,
GVariant *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_settings_set_value (GSettings *settings,
const gchar *key,
GVariant *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVariant * g_settings_get_value (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GVariant * g_settings_get_user_value (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GVariant * g_settings_get_default_value (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_settings_set (GSettings *settings,
const gchar *key,
const gchar *format,
...);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_get (GSettings *settings,
const gchar *key,
const gchar *format,
...);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_reset (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint g_settings_get_int (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_settings_set_int (GSettings *settings,
const gchar *key,
gint value);
-GLIB_AVAILABLE_IN_2_50
+GIO_AVAILABLE_IN_2_50
gint64 g_settings_get_int64 (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_2_50
+GIO_AVAILABLE_IN_2_50
gboolean g_settings_set_int64 (GSettings *settings,
const gchar *key,
gint64 value);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
guint g_settings_get_uint (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_settings_set_uint (GSettings *settings,
const gchar *key,
guint value);
-GLIB_AVAILABLE_IN_2_50
+GIO_AVAILABLE_IN_2_50
guint64 g_settings_get_uint64 (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_2_50
+GIO_AVAILABLE_IN_2_50
gboolean g_settings_set_uint64 (GSettings *settings,
const gchar *key,
guint64 value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar * g_settings_get_string (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_settings_set_string (GSettings *settings,
const gchar *key,
const gchar *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_settings_get_boolean (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_settings_set_boolean (GSettings *settings,
const gchar *key,
gboolean value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gdouble g_settings_get_double (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_settings_set_double (GSettings *settings,
const gchar *key,
gdouble value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar ** g_settings_get_strv (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_settings_set_strv (GSettings *settings,
const gchar *key,
const gchar *const *value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint g_settings_get_enum (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_settings_set_enum (GSettings *settings,
const gchar *key,
gint value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_settings_get_flags (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_settings_set_flags (GSettings *settings,
const gchar *key,
guint value);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSettings * g_settings_get_child (GSettings *settings,
const gchar *name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_settings_is_writable (GSettings *settings,
const gchar *name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_delay (GSettings *settings);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_apply (GSettings *settings);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_revert (GSettings *settings);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_settings_get_has_unapplied (GSettings *settings);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_sync (void);
/**
@@ -306,13 +306,13 @@ typedef enum
G_SETTINGS_BIND_INVERT_BOOLEAN = (1<<4)
} GSettingsBindFlags;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_bind (GSettings *settings,
const gchar *key,
gpointer object,
const gchar *property,
GSettingsBindFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_bind_with_mapping (GSettings *settings,
const gchar *key,
gpointer object,
@@ -322,21 +322,21 @@ void g_settings_bind_with_mapping (GSettin
GSettingsBindSetMapping set_mapping,
gpointer user_data,
GDestroyNotify destroy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_bind_writable (GSettings *settings,
const gchar *key,
gpointer object,
const gchar *property,
gboolean inverted);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_unbind (gpointer object,
const gchar *property);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GAction * g_settings_create_action (GSettings *settings,
const gchar *key);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gpointer g_settings_get_mapped (GSettings *settings,
const gchar *key,
GSettingsGetMapping mapping,
diff --git a/gio/gsettingsbackend.h b/gio/gsettingsbackend.h
index d73211c99..f579bf66f 100644
--- a/gio/gsettingsbackend.h
+++ b/gio/gsettingsbackend.h
@@ -124,51 +124,51 @@ struct _GSettingsBackend
GSettingsBackendPrivate *priv;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_settings_backend_get_type (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_backend_changed (GSettingsBackend *backend,
const gchar *key,
gpointer origin_tag);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_backend_path_changed (GSettingsBackend *backend,
const gchar *path,
gpointer origin_tag);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_backend_flatten_tree (GTree *tree,
gchar **path,
const gchar ***keys,
GVariant ***values);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_backend_keys_changed (GSettingsBackend *backend,
const gchar *path,
gchar const * const *items,
gpointer origin_tag);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_backend_path_writable_changed (GSettingsBackend *backend,
const gchar *path);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_backend_writable_changed (GSettingsBackend *backend,
const gchar *key);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_settings_backend_changed_tree (GSettingsBackend *backend,
GTree *tree,
gpointer origin_tag);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSettingsBackend * g_settings_backend_get_default (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSettingsBackend * g_keyfile_settings_backend_new (const gchar *filename,
const gchar *root_path,
const gchar *root_group);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSettingsBackend * g_null_settings_backend_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSettingsBackend * g_memory_settings_backend_new (void);
G_END_DECLS
diff --git a/gio/gsettingsbackendinternal.h b/gio/gsettingsbackendinternal.h
index 049dc4724..3b9b6ebc3 100644
--- a/gio/gsettingsbackendinternal.h
+++ b/gio/gsettingsbackendinternal.h
@@ -95,4 +95,8 @@ GType g_keyfile_settings_backend_get_type (void);
GType g_nextstep_settings_backend_get_type (void);
#endif
+#ifdef G_OS_WIN32
+GType g_registry_settings_backend_get_type (void);
+#endif
+
#endif /* __G_SETTINGS_BACKEND_INTERNAL_H__ */
diff --git a/gio/gsettingsschema.c b/gio/gsettingsschema.c
index fb3bb7012..b3ac2f189 100644
--- a/gio/gsettingsschema.c
+++ b/gio/gsettingsschema.c
@@ -32,6 +32,11 @@
#include <string.h>
#include <stdlib.h>
+#ifdef HAVE_XLOCALE_H
+/* Needed on macOS and FreeBSD for uselocale() */
+#include <xlocale.h>
+#endif
+
/**
* SECTION:gsettingsschema
* @short_description: Introspecting and controlling the loading
@@ -1416,9 +1421,14 @@ g_settings_schema_key_range_fixup (GSettingsSchemaKey *key,
GVariant *
g_settings_schema_key_get_translated_default (GSettingsSchemaKey *key)
{
- const gchar *translated;
+ const gchar *translated = NULL;
GError *error = NULL;
const gchar *domain;
+#ifdef HAVE_USELOCALE
+ const gchar *lc_time;
+ locale_t old_locale;
+ locale_t locale;
+#endif
GVariant *value;
domain = g_settings_schema_get_gettext_domain (key->schema);
@@ -1427,9 +1437,25 @@ g_settings_schema_key_get_translated_default (GSettingsSchemaKey *key)
/* translation not requested for this key */
return NULL;
+#ifdef HAVE_USELOCALE
if (key->lc_char == 't')
- translated = g_dcgettext (domain, key->unparsed, LC_TIME);
- else
+ {
+ lc_time = setlocale (LC_TIME, NULL);
+ if (lc_time)
+ {
+ locale = newlocale (LC_MESSAGES_MASK, lc_time, (locale_t) 0);
+ if (locale != (locale_t) 0)
+ {
+ old_locale = uselocale (locale);
+ translated = g_dgettext (domain, key->unparsed);
+ uselocale (old_locale);
+ freelocale (locale);
+ }
+ }
+ }
+#endif
+
+ if (translated == NULL)
translated = g_dgettext (domain, key->unparsed);
if (translated == key->unparsed)
diff --git a/gio/gsettingsschema.h b/gio/gsettingsschema.h
index ff2da2986..a3bb7df80 100644
--- a/gio/gsettingsschema.h
+++ b/gio/gsettingsschema.h
@@ -22,6 +22,7 @@
#define __G_SETTINGS_SCHEMA_H__
#include <glib-object.h>
+#include <gio/gio-visibility.h>
G_BEGIN_DECLS
@@ -30,83 +31,83 @@ typedef struct _GSettingsSchema GSettingsSchema;
typedef struct _GSettingsSchemaKey GSettingsSchemaKey;
#define G_TYPE_SETTINGS_SCHEMA_SOURCE (g_settings_schema_source_get_type ())
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GType g_settings_schema_source_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GSettingsSchemaSource * g_settings_schema_source_get_default (void);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GSettingsSchemaSource * g_settings_schema_source_ref (GSettingsSchemaSource *source);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_settings_schema_source_unref (GSettingsSchemaSource *source);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GSettingsSchemaSource * g_settings_schema_source_new_from_directory (const gchar *directory,
GSettingsSchemaSource *parent,
gboolean trusted,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GSettingsSchema * g_settings_schema_source_lookup (GSettingsSchemaSource *source,
const gchar *schema_id,
gboolean recursive);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_settings_schema_source_list_schemas (GSettingsSchemaSource *source,
gboolean recursive,
gchar ***non_relocatable,
gchar ***relocatable);
#define G_TYPE_SETTINGS_SCHEMA (g_settings_schema_get_type ())
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GType g_settings_schema_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GSettingsSchema * g_settings_schema_ref (GSettingsSchema *schema);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_settings_schema_unref (GSettingsSchema *schema);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
const gchar * g_settings_schema_get_id (GSettingsSchema *schema);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
const gchar * g_settings_schema_get_path (GSettingsSchema *schema);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GSettingsSchemaKey * g_settings_schema_get_key (GSettingsSchema *schema,
const gchar *name);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_settings_schema_has_key (GSettingsSchema *schema,
const gchar *name);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gchar** g_settings_schema_list_keys (GSettingsSchema *schema);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
gchar ** g_settings_schema_list_children (GSettingsSchema *schema);
#define G_TYPE_SETTINGS_SCHEMA_KEY (g_settings_schema_key_get_type ())
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GType g_settings_schema_key_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GSettingsSchemaKey * g_settings_schema_key_ref (GSettingsSchemaKey *key);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_settings_schema_key_unref (GSettingsSchemaKey *key);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
const GVariantType * g_settings_schema_key_get_value_type (GSettingsSchemaKey *key);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GVariant * g_settings_schema_key_get_default_value (GSettingsSchemaKey *key);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GVariant * g_settings_schema_key_get_range (GSettingsSchemaKey *key);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_settings_schema_key_range_check (GSettingsSchemaKey *key,
GVariant *value);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
const gchar * g_settings_schema_key_get_name (GSettingsSchemaKey *key);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
const gchar * g_settings_schema_key_get_summary (GSettingsSchemaKey *key);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
const gchar * g_settings_schema_key_get_description (GSettingsSchemaKey *key);
G_END_DECLS
diff --git a/gio/gsimpleaction.h b/gio/gsimpleaction.h
index ff6111e0d..ce80e7ae2 100644
--- a/gio/gsimpleaction.h
+++ b/gio/gsimpleaction.h
@@ -36,27 +36,27 @@ G_BEGIN_DECLS
#define G_IS_SIMPLE_ACTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
G_TYPE_SIMPLE_ACTION))
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_simple_action_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSimpleAction * g_simple_action_new (const gchar *name,
const GVariantType *parameter_type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSimpleAction * g_simple_action_new_stateful (const gchar *name,
const GVariantType *parameter_type,
GVariant *state);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_simple_action_set_enabled (GSimpleAction *simple,
gboolean enabled);
-GLIB_AVAILABLE_IN_2_30
+GIO_AVAILABLE_IN_2_30
void g_simple_action_set_state (GSimpleAction *simple,
GVariant *value);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
void g_simple_action_set_state_hint (GSimpleAction *simple,
GVariant *state_hint);
diff --git a/gio/gsimpleactiongroup.h b/gio/gsimpleactiongroup.h
index 770e61efc..99282baff 100644
--- a/gio/gsimpleactiongroup.h
+++ b/gio/gsimpleactiongroup.h
@@ -70,25 +70,25 @@ struct _GSimpleActionGroupClass
gpointer padding[12];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_simple_action_group_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSimpleActionGroup * g_simple_action_group_new (void);
-GLIB_DEPRECATED_IN_2_38_FOR (g_action_map_lookup_action)
+GIO_DEPRECATED_IN_2_38_FOR (g_action_map_lookup_action)
GAction * g_simple_action_group_lookup (GSimpleActionGroup *simple,
const gchar *action_name);
-GLIB_DEPRECATED_IN_2_38_FOR (g_action_map_add_action)
+GIO_DEPRECATED_IN_2_38_FOR (g_action_map_add_action)
void g_simple_action_group_insert (GSimpleActionGroup *simple,
GAction *action);
-GLIB_DEPRECATED_IN_2_38_FOR (g_action_map_remove_action)
+GIO_DEPRECATED_IN_2_38_FOR (g_action_map_remove_action)
void g_simple_action_group_remove (GSimpleActionGroup *simple,
const gchar *action_name);
-GLIB_DEPRECATED_IN_2_38_FOR (g_action_map_add_action_entries)
+GIO_DEPRECATED_IN_2_38_FOR (g_action_map_add_action_entries)
void g_simple_action_group_add_entries (GSimpleActionGroup *simple,
const GActionEntry *entries,
gint n_entries,
diff --git a/gio/gsimpleasyncresult.c b/gio/gsimpleasyncresult.c
index d0de30973..43a063adf 100644
--- a/gio/gsimpleasyncresult.c
+++ b/gio/gsimpleasyncresult.c
@@ -295,7 +295,7 @@ g_simple_async_result_init (GSimpleAsyncResult *simple)
* g_simple_async_result_new:
* @source_object: (nullable): a #GObject, or %NULL.
* @callback: (scope async): a #GAsyncReadyCallback.
- * @user_data: (closure): user data passed to @callback.
+ * @user_data: user data passed to @callback.
* @source_tag: the asynchronous function.
*
* Creates a #GSimpleAsyncResult.
@@ -339,7 +339,7 @@ g_simple_async_result_new (GObject *source_object,
* g_simple_async_result_new_from_error:
* @source_object: (nullable): a #GObject, or %NULL.
* @callback: (scope async): a #GAsyncReadyCallback.
- * @user_data: (closure): user data passed to @callback.
+ * @user_data: user data passed to @callback.
* @error: a #GError
*
* Creates a #GSimpleAsyncResult from an error condition.
@@ -369,8 +369,8 @@ g_simple_async_result_new_from_error (GObject *source_object,
/**
* g_simple_async_result_new_take_error: (skip)
* @source_object: (nullable): a #GObject, or %NULL
- * @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data passed to @callback
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @user_data: user data passed to @callback.
* @error: a #GError
*
* Creates a #GSimpleAsyncResult from an error condition, and takes over the
@@ -404,7 +404,7 @@ g_simple_async_result_new_take_error (GObject *source_object,
* g_simple_async_result_new_error:
* @source_object: (nullable): a #GObject, or %NULL.
* @callback: (scope async): a #GAsyncReadyCallback.
- * @user_data: (closure): user data passed to @callback.
+ * @user_data: user data passed to @callback.
* @domain: a #GQuark.
* @code: an error code.
* @format: a string with format characters.
@@ -1051,7 +1051,7 @@ g_simple_async_report_error_in_idle (GObject *object,
* g_simple_async_report_gerror_in_idle:
* @object: (nullable): a #GObject, or %NULL
* @callback: (scope async): a #GAsyncReadyCallback.
- * @user_data: (closure): user data passed to @callback.
+ * @user_data: user data passed to @callback.
* @error: the #GError to report
*
* Reports an error in an idle function. Similar to
diff --git a/gio/gsimpleasyncresult.h b/gio/gsimpleasyncresult.h
index a9de5646f..12efb9ce7 100644
--- a/gio/gsimpleasyncresult.h
+++ b/gio/gsimpleasyncresult.h
@@ -46,15 +46,15 @@ G_BEGIN_DECLS
typedef struct _GSimpleAsyncResultClass GSimpleAsyncResultClass;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_simple_async_result_get_type (void) G_GNUC_CONST;
-GLIB_DEPRECATED_IN_2_46_FOR(g_task_new)
+GIO_DEPRECATED_IN_2_46_FOR(g_task_new)
GSimpleAsyncResult *g_simple_async_result_new (GObject *source_object,
GAsyncReadyCallback callback,
gpointer user_data,
gpointer source_tag);
-GLIB_DEPRECATED_IN_2_46_FOR(g_task_new)
+GIO_DEPRECATED_IN_2_46_FOR(g_task_new)
GSimpleAsyncResult *g_simple_async_result_new_error (GObject *source_object,
GAsyncReadyCallback callback,
gpointer user_data,
@@ -62,83 +62,83 @@ GSimpleAsyncResult *g_simple_async_result_new_error (GObject
gint code,
const char *format,
...) G_GNUC_PRINTF (6, 7);
-GLIB_DEPRECATED_IN_2_46_FOR(g_task_new)
+GIO_DEPRECATED_IN_2_46_FOR(g_task_new)
GSimpleAsyncResult *g_simple_async_result_new_from_error (GObject *source_object,
GAsyncReadyCallback callback,
gpointer user_data,
const GError *error);
-GLIB_DEPRECATED_IN_2_46_FOR(g_task_new)
+GIO_DEPRECATED_IN_2_46_FOR(g_task_new)
GSimpleAsyncResult *g_simple_async_result_new_take_error (GObject *source_object,
GAsyncReadyCallback callback,
gpointer user_data,
GError *error);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
void g_simple_async_result_set_op_res_gpointer (GSimpleAsyncResult *simple,
gpointer op_res,
GDestroyNotify destroy_op_res);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
gpointer g_simple_async_result_get_op_res_gpointer (GSimpleAsyncResult *simple);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
void g_simple_async_result_set_op_res_gssize (GSimpleAsyncResult *simple,
gssize op_res);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
gssize g_simple_async_result_get_op_res_gssize (GSimpleAsyncResult *simple);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
void g_simple_async_result_set_op_res_gboolean (GSimpleAsyncResult *simple,
gboolean op_res);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
gboolean g_simple_async_result_get_op_res_gboolean (GSimpleAsyncResult *simple);
-GLIB_AVAILABLE_IN_2_32 /* Also deprecated, but can't mark something both AVAILABLE and DEPRECATED */
+GIO_AVAILABLE_IN_2_32 /* Also deprecated, but can't mark something both AVAILABLE and DEPRECATED */
void g_simple_async_result_set_check_cancellable (GSimpleAsyncResult *simple,
GCancellable *check_cancellable);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
gpointer g_simple_async_result_get_source_tag (GSimpleAsyncResult *simple);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
void g_simple_async_result_set_handle_cancellation (GSimpleAsyncResult *simple,
gboolean handle_cancellation);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
void g_simple_async_result_complete (GSimpleAsyncResult *simple);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
void g_simple_async_result_complete_in_idle (GSimpleAsyncResult *simple);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
void g_simple_async_result_run_in_thread (GSimpleAsyncResult *simple,
GSimpleAsyncThreadFunc func,
int io_priority,
GCancellable *cancellable);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
void g_simple_async_result_set_from_error (GSimpleAsyncResult *simple,
const GError *error);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
void g_simple_async_result_take_error (GSimpleAsyncResult *simple,
GError *error);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
gboolean g_simple_async_result_propagate_error (GSimpleAsyncResult *simple,
GError **dest);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
void g_simple_async_result_set_error (GSimpleAsyncResult *simple,
GQuark domain,
gint code,
const char *format,
...) G_GNUC_PRINTF (4, 5);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
void g_simple_async_result_set_error_va (GSimpleAsyncResult *simple,
GQuark domain,
gint code,
const char *format,
va_list args)
G_GNUC_PRINTF(4, 0);
-GLIB_DEPRECATED_IN_2_46
+GIO_DEPRECATED_IN_2_46
gboolean g_simple_async_result_is_valid (GAsyncResult *result,
GObject *source,
gpointer source_tag);
-GLIB_DEPRECATED_IN_2_46_FOR(g_task_report_error)
+GIO_DEPRECATED_IN_2_46_FOR(g_task_report_error)
void g_simple_async_report_error_in_idle (GObject *object,
GAsyncReadyCallback callback,
gpointer user_data,
@@ -146,12 +146,12 @@ void g_simple_async_report_error_in_idle (GObject *object,
gint code,
const char *format,
...) G_GNUC_PRINTF(6, 7);
-GLIB_DEPRECATED_IN_2_46_FOR(g_task_report_error)
+GIO_DEPRECATED_IN_2_46_FOR(g_task_report_error)
void g_simple_async_report_gerror_in_idle (GObject *object,
GAsyncReadyCallback callback,
gpointer user_data,
const GError *error);
-GLIB_DEPRECATED_IN_2_46_FOR(g_task_report_error)
+GIO_DEPRECATED_IN_2_46_FOR(g_task_report_error)
void g_simple_async_report_take_gerror_in_idle (GObject *object,
GAsyncReadyCallback callback,
gpointer user_data,
diff --git a/gio/gsimpleiostream.h b/gio/gsimpleiostream.h
index 0f3334e36..1d98ffe91 100644
--- a/gio/gsimpleiostream.h
+++ b/gio/gsimpleiostream.h
@@ -35,10 +35,10 @@ G_BEGIN_DECLS
#define G_SIMPLE_IO_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SIMPLE_IO_STREAM, GSimpleIOStream))
#define G_IS_SIMPLE_IO_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SIMPLE_IO_STREAM))
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
GType g_simple_io_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
GIOStream *g_simple_io_stream_new (GInputStream *input_stream,
GOutputStream *output_stream);
diff --git a/gio/gsimplepermission.h b/gio/gsimplepermission.h
index d6abf9ebc..19c42d708 100644
--- a/gio/gsimplepermission.h
+++ b/gio/gsimplepermission.h
@@ -37,9 +37,9 @@ G_BEGIN_DECLS
#define G_IS_SIMPLE_PERMISSION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
G_TYPE_SIMPLE_PERMISSION))
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_simple_permission_get_type (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GPermission * g_simple_permission_new (gboolean allowed);
G_END_DECLS
diff --git a/gio/gsimpleproxyresolver.h b/gio/gsimpleproxyresolver.h
index f9e7a13ac..2e5f4b2a8 100644
--- a/gio/gsimpleproxyresolver.h
+++ b/gio/gsimpleproxyresolver.h
@@ -66,22 +66,22 @@ struct _GSimpleProxyResolverClass
void (*_g_reserved5) (void);
};
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
GType g_simple_proxy_resolver_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
GProxyResolver *g_simple_proxy_resolver_new (const gchar *default_proxy,
gchar **ignore_hosts);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_simple_proxy_resolver_set_default_proxy (GSimpleProxyResolver *resolver,
const gchar *default_proxy);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_simple_proxy_resolver_set_ignore_hosts (GSimpleProxyResolver *resolver,
gchar **ignore_hosts);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_simple_proxy_resolver_set_uri_proxy (GSimpleProxyResolver *resolver,
const gchar *uri_scheme,
const gchar *proxy);
diff --git a/gio/gsocket.c b/gio/gsocket.c
index bd5549f3a..a4b57d909 100644
--- a/gio/gsocket.c
+++ b/gio/gsocket.c
@@ -461,7 +461,7 @@ g_socket_details_from_fd (GSocket *socket)
struct sockaddr sa;
} address;
gint fd;
- guint addrlen;
+ socklen_t addrlen;
int value, family;
int errsv;
@@ -503,7 +503,7 @@ g_socket_details_from_fd (GSocket *socket)
if (addrlen > 0)
{
g_assert (G_STRUCT_OFFSET (struct sockaddr, sa_family) +
- sizeof address.storage.ss_family <= addrlen);
+ (socklen_t) sizeof address.storage.ss_family <= addrlen);
family = address.storage.ss_family;
}
else
@@ -587,7 +587,38 @@ g_socket_details_from_fd (GSocket *socket)
socket_strerror (errsv));
}
-/* Wrapper around socket() that is shared with gnetworkmonitornetlink.c */
+static void
+socket_set_nonblock (int fd)
+{
+#ifndef G_OS_WIN32
+ GError *error = NULL;
+#else
+ gulong arg;
+#endif
+
+ /* Always use native nonblocking sockets, as Windows sets sockets to
+ * nonblocking automatically in certain operations. This way we make
+ * things work the same on all platforms.
+ */
+#ifndef G_OS_WIN32
+ if (!g_unix_set_fd_nonblocking (fd, TRUE, &error))
+ {
+ g_warning ("Error setting socket to nonblocking mode: %s", error->message);
+ g_clear_error (&error);
+ }
+#else
+ arg = TRUE;
+
+ if (ioctlsocket (fd, FIONBIO, &arg) == SOCKET_ERROR)
+ {
+ int errsv = get_socket_errno ();
+ g_warning ("Error setting socket status flags: %s", socket_strerror (errsv));
+ }
+#endif
+}
+
+/* Wrapper around socket() that is shared with gnetworkmonitornetlink.c.
+ * It always sets SOCK_CLOEXEC | SOCK_NONBLOCK. */
gint
g_socket (gint domain,
gint type,
@@ -596,13 +627,13 @@ g_socket (gint domain,
{
int fd, errsv;
-#ifdef SOCK_CLOEXEC
- fd = socket (domain, type | SOCK_CLOEXEC, protocol);
+#if defined(SOCK_CLOEXEC) && defined(SOCK_NONBLOCK)
+ fd = socket (domain, type | SOCK_CLOEXEC | SOCK_NONBLOCK, protocol);
errsv = errno;
if (fd != -1)
return fd;
- /* It's possible that libc has SOCK_CLOEXEC but the kernel does not */
+ /* It's possible that libc has SOCK_CLOEXEC and/or SOCK_NONBLOCK but the kernel does not */
if (fd < 0 && (errsv == EINVAL || errsv == EPROTOTYPE))
#endif
fd = socket (domain, type, protocol);
@@ -644,9 +675,13 @@ g_socket (gint domain,
}
#endif
+ /* Ensure the socket is non-blocking. */
+ socket_set_nonblock (fd);
+
return fd;
}
+/* Returned socket has SOCK_CLOEXEC | SOCK_NONBLOCK set. */
static gint
g_socket_create_socket (GSocketFamily family,
GSocketType type,
@@ -696,44 +731,22 @@ g_socket_constructed (GObject *object)
GSocket *socket = G_SOCKET (object);
if (socket->priv->fd >= 0)
- /* create socket->priv info from the fd */
- g_socket_details_from_fd (socket);
-
+ {
+ /* create socket->priv info from the fd and ensure it’s non-blocking */
+ g_socket_details_from_fd (socket);
+ socket_set_nonblock (socket->priv->fd);
+ }
else
- /* create the fd from socket->priv info */
- socket->priv->fd = g_socket_create_socket (socket->priv->family,
- socket->priv->type,
- socket->priv->protocol,
- &socket->priv->construct_error);
+ {
+ /* create the fd from socket->priv info; this sets it non-blocking by construction */
+ socket->priv->fd = g_socket_create_socket (socket->priv->family,
+ socket->priv->type,
+ socket->priv->protocol,
+ &socket->priv->construct_error);
+ }
if (socket->priv->fd != -1)
{
-#ifndef G_OS_WIN32
- GError *error = NULL;
-#else
- gulong arg;
-#endif
-
- /* Always use native nonblocking sockets, as Windows sets sockets to
- * nonblocking automatically in certain operations. This way we make
- * things work the same on all platforms.
- */
-#ifndef G_OS_WIN32
- if (!g_unix_set_fd_nonblocking (socket->priv->fd, TRUE, &error))
- {
- g_warning ("Error setting socket nonblocking: %s", error->message);
- g_clear_error (&error);
- }
-#else
- arg = TRUE;
-
- if (ioctlsocket (socket->priv->fd, FIONBIO, &arg) == SOCKET_ERROR)
- {
- int errsv = get_socket_errno ();
- g_warning ("Error setting socket status flags: %s", socket_strerror (errsv));
- }
-#endif
-
#ifdef SO_NOSIGPIPE
/* See note about SIGPIPE below. */
g_socket_set_option (socket, SOL_SOCKET, SO_NOSIGPIPE, TRUE, NULL);
@@ -1990,7 +2003,7 @@ g_socket_get_local_address (GSocket *socket,
struct sockaddr_storage storage;
struct sockaddr sa;
} buffer;
- guint len = sizeof (buffer);
+ socklen_t len = sizeof (buffer);
g_return_val_if_fail (G_IS_SOCKET (socket), NULL);
@@ -2026,7 +2039,7 @@ g_socket_get_remote_address (GSocket *socket,
struct sockaddr_storage storage;
struct sockaddr sa;
} buffer;
- guint len = sizeof (buffer);
+ socklen_t len = sizeof (buffer);
g_return_val_if_fail (G_IS_SOCKET (socket), NULL);
@@ -2858,6 +2871,9 @@ g_socket_accept (GSocket *socket,
GCancellable *cancellable,
GError **error)
{
+#ifdef HAVE_ACCEPT4
+ gboolean try_accept4 = TRUE;
+#endif
GSocket *new_socket;
gint ret;
@@ -2871,7 +2887,28 @@ g_socket_accept (GSocket *socket,
while (TRUE)
{
- if ((ret = accept (socket->priv->fd, NULL, 0)) < 0)
+ gboolean try_accept = TRUE;
+
+#ifdef HAVE_ACCEPT4
+ if (try_accept4)
+ {
+ ret = accept4 (socket->priv->fd, NULL, 0, SOCK_CLOEXEC);
+ if (ret < 0 && errno == ENOSYS)
+ {
+ try_accept4 = FALSE;
+ }
+ else
+ {
+ try_accept = FALSE;
+ }
+ }
+
+ g_assert (try_accept4 || try_accept);
+#endif
+ if (try_accept)
+ ret = accept (socket->priv->fd, NULL, 0);
+
+ if (ret < 0)
{
int errsv = get_socket_errno ();
@@ -3280,7 +3317,7 @@ g_socket_receive_with_timeout (GSocket *socket,
* @socket: a #GSocket
* @buffer: (array length=size) (element-type guint8) (out caller-allocates):
* a buffer to read data into (which should be at least @size bytes long).
- * @size: the number of bytes you want to read from the socket
+ * @size: (in): the number of bytes you want to read from the socket
* @cancellable: (nullable): a %GCancellable or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
@@ -3330,7 +3367,7 @@ g_socket_receive (GSocket *socket,
* @socket: a #GSocket
* @buffer: (array length=size) (element-type guint8) (out caller-allocates):
* a buffer to read data into (which should be at least @size bytes long).
- * @size: the number of bytes you want to read from the socket
+ * @size: (in): the number of bytes you want to read from the socket
* @blocking: whether to do blocking or non-blocking I/O
* @cancellable: (nullable): a %GCancellable or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
@@ -3363,7 +3400,7 @@ g_socket_receive_with_blocking (GSocket *socket,
* pointer, or %NULL
* @buffer: (array length=size) (element-type guint8) (out caller-allocates):
* a buffer to read data into (which should be at least @size bytes long).
- * @size: the number of bytes you want to read from the socket
+ * @size: (in): the number of bytes you want to read from the socket
* @cancellable: (nullable): a %GCancellable or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
@@ -3966,8 +4003,6 @@ socket_source_prepare (GSource *source,
{
GSocketSource *socket_source = (GSocketSource *)source;
- *timeout = -1;
-
#ifdef G_OS_WIN32
if ((socket_source->pollfd.revents & G_IO_NVAL) != 0)
return TRUE;
@@ -4679,7 +4714,7 @@ input_message_from_msghdr (const struct msghdr *msg,
GPtrArray *my_messages = NULL;
struct cmsghdr *cmsg;
- if (msg->msg_controllen >= sizeof (struct cmsghdr))
+ if (msg->msg_controllen >= (socklen_t) sizeof (struct cmsghdr))
{
g_assert (message->control_messages != NULL);
for (cmsg = CMSG_FIRSTHDR (msg);
@@ -6220,7 +6255,7 @@ g_socket_get_option (GSocket *socket,
gint *value,
GError **error)
{
- guint size;
+ socklen_t size;
g_return_val_if_fail (G_IS_SOCKET (socket), FALSE);
diff --git a/gio/gsocket.h b/gio/gsocket.h
index 95674d6ea..0f0624be5 100644
--- a/gio/gsocket.h
+++ b/gio/gsocket.h
@@ -73,164 +73,164 @@ struct _GSocket
GSocketPrivate *priv;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_socket_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocket * g_socket_new (GSocketFamily family,
GSocketType type,
GSocketProtocol protocol,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocket * g_socket_new_from_fd (gint fd,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
int g_socket_get_fd (GSocket *socket);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketFamily g_socket_get_family (GSocket *socket);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketType g_socket_get_socket_type (GSocket *socket);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketProtocol g_socket_get_protocol (GSocket *socket);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketAddress * g_socket_get_local_address (GSocket *socket,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketAddress * g_socket_get_remote_address (GSocket *socket,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_set_blocking (GSocket *socket,
gboolean blocking);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_get_blocking (GSocket *socket);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_set_keepalive (GSocket *socket,
gboolean keepalive);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_get_keepalive (GSocket *socket);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint g_socket_get_listen_backlog (GSocket *socket);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_set_listen_backlog (GSocket *socket,
gint backlog);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_socket_get_timeout (GSocket *socket);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_set_timeout (GSocket *socket,
guint timeout);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
guint g_socket_get_ttl (GSocket *socket);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_socket_set_ttl (GSocket *socket,
guint ttl);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_socket_get_broadcast (GSocket *socket);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_socket_set_broadcast (GSocket *socket,
gboolean broadcast);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_socket_get_multicast_loopback (GSocket *socket);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_socket_set_multicast_loopback (GSocket *socket,
gboolean loopback);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
guint g_socket_get_multicast_ttl (GSocket *socket);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_socket_set_multicast_ttl (GSocket *socket,
guint ttl);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_is_connected (GSocket *socket);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_bind (GSocket *socket,
GSocketAddress *address,
gboolean allow_reuse,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_socket_join_multicast_group (GSocket *socket,
GInetAddress *group,
gboolean source_specific,
const gchar *iface,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_socket_leave_multicast_group (GSocket *socket,
GInetAddress *group,
gboolean source_specific,
const gchar *iface,
GError **error);
-GLIB_AVAILABLE_IN_2_56
+GIO_AVAILABLE_IN_2_56
gboolean g_socket_join_multicast_group_ssm (GSocket *socket,
GInetAddress *group,
GInetAddress *source_specific,
const gchar *iface,
GError **error);
-GLIB_AVAILABLE_IN_2_56
+GIO_AVAILABLE_IN_2_56
gboolean g_socket_leave_multicast_group_ssm (GSocket *socket,
GInetAddress *group,
GInetAddress *source_specific,
const gchar *iface,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_connect (GSocket *socket,
GSocketAddress *address,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_check_connect_result (GSocket *socket,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_socket_get_available_bytes (GSocket *socket);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOCondition g_socket_condition_check (GSocket *socket,
GIOCondition condition);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_condition_wait (GSocket *socket,
GIOCondition condition,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_socket_condition_timed_wait (GSocket *socket,
GIOCondition condition,
gint64 timeout_us,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocket * g_socket_accept (GSocket *socket,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_listen (GSocket *socket,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_socket_receive (GSocket *socket,
gchar *buffer,
gsize size,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_socket_receive_from (GSocket *socket,
GSocketAddress **address,
gchar *buffer,
gsize size,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_socket_send (GSocket *socket,
const gchar *buffer,
gsize size,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_socket_send_to (GSocket *socket,
GSocketAddress *address,
const gchar *buffer,
gsize size,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_socket_receive_message (GSocket *socket,
GSocketAddress **address,
GInputVector *vectors,
@@ -240,7 +240,7 @@ gssize g_socket_receive_message (GSocket
gint *flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_socket_send_message (GSocket *socket,
GSocketAddress *address,
GOutputVector *vectors,
@@ -251,14 +251,14 @@ gssize g_socket_send_message (GSocket
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
gint g_socket_receive_messages (GSocket *socket,
GInputMessage *messages,
guint num_messages,
gint flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
gint g_socket_send_messages (GSocket *socket,
GOutputMessage *messages,
guint num_messages,
@@ -266,41 +266,41 @@ gint g_socket_send_messages (GSocket
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_close (GSocket *socket,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_shutdown (GSocket *socket,
gboolean shutdown_read,
gboolean shutdown_write,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_is_closed (GSocket *socket);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSource * g_socket_create_source (GSocket *socket,
GIOCondition condition,
GCancellable *cancellable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_speaks_ipv4 (GSocket *socket);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GCredentials *g_socket_get_credentials (GSocket *socket,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_socket_receive_with_blocking (GSocket *socket,
gchar *buffer,
gsize size,
gboolean blocking,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_socket_send_with_blocking (GSocket *socket,
const gchar *buffer,
gsize size,
gboolean blocking,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
GPollableReturn g_socket_send_message_with_timeout (GSocket *socket,
GSocketAddress *address,
const GOutputVector *vectors,
@@ -312,13 +312,13 @@ GPollableReturn g_socket_send_message_with_timeout (GSocket
gsize *bytes_written,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gboolean g_socket_get_option (GSocket *socket,
gint level,
gint optname,
gint *value,
GError **error);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gboolean g_socket_set_option (GSocket *socket,
gint level,
gint optname,
diff --git a/gio/gsocketaddress.h b/gio/gsocketaddress.h
index 5c2079b57..b2dcef242 100644
--- a/gio/gsocketaddress.h
+++ b/gio/gsocketaddress.h
@@ -60,23 +60,23 @@ struct _GSocketAddressClass
GError **error);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_socket_address_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketFamily g_socket_address_get_family (GSocketAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketAddress * g_socket_address_new_from_native (gpointer native,
gsize len);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_address_to_native (GSocketAddress *address,
gpointer dest,
gsize destlen,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gssize g_socket_address_get_native_size (GSocketAddress *address);
G_END_DECLS
diff --git a/gio/gsocketaddressenumerator.c b/gio/gsocketaddressenumerator.c
index 2f6751848..5a0e937a2 100644
--- a/gio/gsocketaddressenumerator.c
+++ b/gio/gsocketaddressenumerator.c
@@ -135,9 +135,9 @@ g_socket_address_enumerator_real_next_async (GSocketAddressEnumerator *enumerato
* g_socket_address_enumerator_next_async:
* @enumerator: a #GSocketAddressEnumerator
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback to call when the request
- * is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback to call
+ * when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously retrieves the next #GSocketAddress from @enumerator
* and then calls @callback, which must call
diff --git a/gio/gsocketaddressenumerator.h b/gio/gsocketaddressenumerator.h
index 4806724fe..ceee6a3f9 100644
--- a/gio/gsocketaddressenumerator.h
+++ b/gio/gsocketaddressenumerator.h
@@ -79,20 +79,20 @@ struct _GSocketAddressEnumeratorClass
GError **error);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_socket_address_enumerator_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketAddress *g_socket_address_enumerator_next (GSocketAddressEnumerator *enumerator,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_address_enumerator_next_async (GSocketAddressEnumerator *enumerator,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketAddress *g_socket_address_enumerator_next_finish (GSocketAddressEnumerator *enumerator,
GAsyncResult *result,
GError **error);
diff --git a/gio/gsocketclient.c b/gio/gsocketclient.c
index 9ec1309f2..6eb41260a 100644
--- a/gio/gsocketclient.c
+++ b/gio/gsocketclient.c
@@ -1469,7 +1469,7 @@ typedef struct
GCancellable *enumeration_parent_cancellable; /* (nullable) (owned) */
gulong enumeration_cancelled_id;
- GSList *connection_attempts;
+ GSList *connection_attempts; /* (element-type ConnectionAttempt) (owned) */
GSList *successful_connections;
SocketClientErrorInfo *error_info;
@@ -1874,7 +1874,7 @@ g_socket_client_connected_callback (GObject *source,
GAsyncResult *result,
gpointer user_data)
{
- ConnectionAttempt *attempt = user_data;
+ ConnectionAttempt *attempt = g_steal_pointer (&user_data);
GSocketClientAsyncConnectData *data = attempt->data;
if (task_completed_or_cancelled (data) || g_cancellable_is_cancelled (attempt->cancellable))
@@ -2032,7 +2032,7 @@ g_socket_client_enumerator_callback (GObject *object,
g_source_set_callback (attempt->timeout_source, on_connection_attempt_timeout, attempt, NULL);
g_source_attach (attempt->timeout_source, g_task_get_context (data->task));
- data->connection_attempts = g_slist_append (data->connection_attempts, attempt);
+ data->connection_attempts = g_slist_append (data->connection_attempts, connection_attempt_ref (attempt));
if (g_task_get_cancellable (data->task))
{
@@ -2048,7 +2048,7 @@ g_socket_client_enumerator_callback (GObject *object,
g_socket_connection_connect_async (G_SOCKET_CONNECTION (attempt->connection),
address,
attempt->cancellable,
- g_socket_client_connected_callback, connection_attempt_ref (attempt));
+ g_socket_client_connected_callback, attempt /* transfer full */);
}
/**
@@ -2057,7 +2057,7 @@ g_socket_client_enumerator_callback (GObject *object,
* @connectable: a #GSocketConnectable specifying the remote address.
* @cancellable: (nullable): a #GCancellable, or %NULL
* @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data for the callback
+ * @user_data: user data for the callback
*
* This is the asynchronous version of g_socket_client_connect().
*
@@ -2162,7 +2162,7 @@ g_socket_client_connect_async (GSocketClient *client,
* @default_port: the default port to connect to
* @cancellable: (nullable): a #GCancellable, or %NULL
* @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data for the callback
+ * @user_data: user data for the callback
*
* This is the asynchronous version of g_socket_client_connect_to_host().
*
@@ -2208,7 +2208,7 @@ g_socket_client_connect_to_host_async (GSocketClient *client,
* @service: the name of the service to connect to
* @cancellable: (nullable): a #GCancellable, or %NULL
* @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data for the callback
+ * @user_data: user data for the callback
*
* This is the asynchronous version of
* g_socket_client_connect_to_service().
@@ -2239,7 +2239,7 @@ g_socket_client_connect_to_service_async (GSocketClient *client,
* @default_port: the default port to connect to
* @cancellable: (nullable): a #GCancellable, or %NULL
* @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data for the callback
+ * @user_data: user data for the callback
*
* This is the asynchronous version of g_socket_client_connect_to_uri().
*
diff --git a/gio/gsocketclient.h b/gio/gsocketclient.h
index 42dc0ccdf..e9f815eef 100644
--- a/gio/gsocketclient.h
+++ b/gio/gsocketclient.h
@@ -70,127 +70,127 @@ struct _GSocketClient
GSocketClientPrivate *priv;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_socket_client_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketClient *g_socket_client_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketFamily g_socket_client_get_family (GSocketClient *client);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_client_set_family (GSocketClient *client,
GSocketFamily family);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketType g_socket_client_get_socket_type (GSocketClient *client);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_client_set_socket_type (GSocketClient *client,
GSocketType type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketProtocol g_socket_client_get_protocol (GSocketClient *client);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_client_set_protocol (GSocketClient *client,
GSocketProtocol protocol);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketAddress *g_socket_client_get_local_address (GSocketClient *client);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_client_set_local_address (GSocketClient *client,
GSocketAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint g_socket_client_get_timeout (GSocketClient *client);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_client_set_timeout (GSocketClient *client,
guint timeout);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_client_get_enable_proxy (GSocketClient *client);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_client_set_enable_proxy (GSocketClient *client,
gboolean enable);
-GLIB_AVAILABLE_IN_2_28
+GIO_AVAILABLE_IN_2_28
gboolean g_socket_client_get_tls (GSocketClient *client);
-GLIB_AVAILABLE_IN_2_28
+GIO_AVAILABLE_IN_2_28
void g_socket_client_set_tls (GSocketClient *client,
gboolean tls);
-GLIB_DEPRECATED_IN_2_72
+GIO_DEPRECATED_IN_2_72
GTlsCertificateFlags g_socket_client_get_tls_validation_flags (GSocketClient *client);
-GLIB_DEPRECATED_IN_2_72
+GIO_DEPRECATED_IN_2_72
void g_socket_client_set_tls_validation_flags (GSocketClient *client,
GTlsCertificateFlags flags);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
GProxyResolver *g_socket_client_get_proxy_resolver (GSocketClient *client);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_socket_client_set_proxy_resolver (GSocketClient *client,
GProxyResolver *proxy_resolver);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnection * g_socket_client_connect (GSocketClient *client,
GSocketConnectable *connectable,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnection * g_socket_client_connect_to_host (GSocketClient *client,
const gchar *host_and_port,
guint16 default_port,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnection * g_socket_client_connect_to_service (GSocketClient *client,
const gchar *domain,
const gchar *service,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_26
+GIO_AVAILABLE_IN_2_26
GSocketConnection * g_socket_client_connect_to_uri (GSocketClient *client,
const gchar *uri,
guint16 default_port,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_client_connect_async (GSocketClient *client,
GSocketConnectable *connectable,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnection * g_socket_client_connect_finish (GSocketClient *client,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_client_connect_to_host_async (GSocketClient *client,
const gchar *host_and_port,
guint16 default_port,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnection * g_socket_client_connect_to_host_finish (GSocketClient *client,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_client_connect_to_service_async (GSocketClient *client,
const gchar *domain,
const gchar *service,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnection * g_socket_client_connect_to_service_finish (GSocketClient *client,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_client_connect_to_uri_async (GSocketClient *client,
const gchar *uri,
guint16 default_port,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnection * g_socket_client_connect_to_uri_finish (GSocketClient *client,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_client_add_application_proxy (GSocketClient *client,
const gchar *protocol);
diff --git a/gio/gsocketconnectable.h b/gio/gsocketconnectable.h
index 622b6d486..ed2cad9fc 100644
--- a/gio/gsocketconnectable.h
+++ b/gio/gsocketconnectable.h
@@ -65,16 +65,16 @@ struct _GSocketConnectableIface
gchar * (* to_string) (GSocketConnectable *connectable);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_socket_connectable_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketAddressEnumerator *g_socket_connectable_enumerate (GSocketConnectable *connectable);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketAddressEnumerator *g_socket_connectable_proxy_enumerate (GSocketConnectable *connectable);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
gchar *g_socket_connectable_to_string (GSocketConnectable *connectable);
G_END_DECLS
diff --git a/gio/gsocketconnection.c b/gio/gsocketconnection.c
index 79f2cc615..67e8f3dcb 100644
--- a/gio/gsocketconnection.c
+++ b/gio/gsocketconnection.c
@@ -173,7 +173,7 @@ static gboolean g_socket_connection_connect_callback (GSocket *socket,
* @address: a #GSocketAddress specifying the remote address.
* @cancellable: (nullable): a %GCancellable or %NULL
* @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data for the callback
+ * @user_data: user data for the callback
*
* Asynchronously connect @connection to the specified remote address.
*
diff --git a/gio/gsocketconnection.h b/gio/gsocketconnection.h
index 508b67c80..45de5ba98 100644
--- a/gio/gsocketconnection.h
+++ b/gio/gsocketconnection.h
@@ -70,46 +70,46 @@ struct _GSocketConnection
GSocketConnectionPrivate *priv;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_socket_connection_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_socket_connection_is_connected (GSocketConnection *connection);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_socket_connection_connect (GSocketConnection *connection,
GSocketAddress *address,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_socket_connection_connect_async (GSocketConnection *connection,
GSocketAddress *address,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_socket_connection_connect_finish (GSocketConnection *connection,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocket *g_socket_connection_get_socket (GSocketConnection *connection);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketAddress *g_socket_connection_get_local_address (GSocketConnection *connection,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketAddress *g_socket_connection_get_remote_address (GSocketConnection *connection,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_connection_factory_register_type (GType g_type,
GSocketFamily family,
GSocketType type,
gint protocol);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_socket_connection_factory_lookup_type (GSocketFamily family,
GSocketType type,
gint protocol_id);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnection *g_socket_connection_factory_create_connection (GSocket *socket);
G_END_DECLS
diff --git a/gio/gsocketcontrolmessage.c b/gio/gsocketcontrolmessage.c
index 72e81ff00..398e04e5e 100644
--- a/gio/gsocketcontrolmessage.c
+++ b/gio/gsocketcontrolmessage.c
@@ -164,7 +164,7 @@ g_socket_control_message_class_init (GSocketControlMessageClass *class)
* If there is no implementation for this kind of control message, %NULL
* will be returned.
*
- * Returns: (transfer full): the deserialized message or %NULL
+ * Returns: (nullable) (transfer full): the deserialized message or %NULL
*
* Since: 2.22
*/
diff --git a/gio/gsocketcontrolmessage.h b/gio/gsocketcontrolmessage.h
index a80b1cf5d..51be2e173 100644
--- a/gio/gsocketcontrolmessage.h
+++ b/gio/gsocketcontrolmessage.h
@@ -90,18 +90,18 @@ struct _GSocketControlMessage
GSocketControlMessagePrivate *priv;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_socket_control_message_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gsize g_socket_control_message_get_size (GSocketControlMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
int g_socket_control_message_get_level (GSocketControlMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
int g_socket_control_message_get_msg_type (GSocketControlMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_control_message_serialize (GSocketControlMessage *message,
gpointer data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketControlMessage *g_socket_control_message_deserialize (int level,
int type,
gsize size,
diff --git a/gio/gsocketlistener.c b/gio/gsocketlistener.c
index 5ac83ea5b..392f9ecd6 100644
--- a/gio/gsocketlistener.c
+++ b/gio/gsocketlistener.c
@@ -835,7 +835,7 @@ accept_ready (GSocket *accept_socket,
* @listener: a #GSocketListener
* @cancellable: (nullable): a #GCancellable, or %NULL
* @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data for the callback
+ * @user_data: user data for the callback
*
* This is the asynchronous version of g_socket_listener_accept_socket().
*
@@ -910,7 +910,7 @@ g_socket_listener_accept_socket_finish (GSocketListener *listener,
* @listener: a #GSocketListener
* @cancellable: (nullable): a #GCancellable, or %NULL
* @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data for the callback
+ * @user_data: user data for the callback
*
* This is the asynchronous version of g_socket_listener_accept().
*
diff --git a/gio/gsocketlistener.h b/gio/gsocketlistener.h
index 9c90d8d40..9ad6c8fe6 100644
--- a/gio/gsocketlistener.h
+++ b/gio/gsocketlistener.h
@@ -81,22 +81,22 @@ struct _GSocketListener
GSocketListenerPrivate *priv;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_socket_listener_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketListener * g_socket_listener_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_listener_set_backlog (GSocketListener *listener,
int listen_backlog);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_listener_add_socket (GSocketListener *listener,
GSocket *socket,
GObject *source_object,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_listener_add_address (GSocketListener *listener,
GSocketAddress *address,
GSocketType type,
@@ -104,52 +104,52 @@ gboolean g_socket_listener_add_address (GSocket
GObject *source_object,
GSocketAddress **effective_address,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_listener_add_inet_port (GSocketListener *listener,
guint16 port,
GObject *source_object,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint16 g_socket_listener_add_any_inet_port (GSocketListener *listener,
GObject *source_object,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocket * g_socket_listener_accept_socket (GSocketListener *listener,
GObject **source_object,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_listener_accept_socket_async (GSocketListener *listener,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocket * g_socket_listener_accept_socket_finish (GSocketListener *listener,
GAsyncResult *result,
GObject **source_object,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnection * g_socket_listener_accept (GSocketListener *listener,
GObject **source_object,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_listener_accept_async (GSocketListener *listener,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnection * g_socket_listener_accept_finish (GSocketListener *listener,
GAsyncResult *result,
GObject **source_object,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_listener_close (GSocketListener *listener);
G_END_DECLS
diff --git a/gio/gsocketservice.h b/gio/gsocketservice.h
index 8ff53259f..f4e7c220e 100644
--- a/gio/gsocketservice.h
+++ b/gio/gsocketservice.h
@@ -77,16 +77,16 @@ struct _GSocketService
GSocketServicePrivate *priv;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_socket_service_get_type (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketService *g_socket_service_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_service_start (GSocketService *service);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_socket_service_stop (GSocketService *service);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_socket_service_is_active (GSocketService *service);
diff --git a/gio/gsrvtarget.h b/gio/gsrvtarget.h
index 027a07280..92bb256bc 100644
--- a/gio/gsrvtarget.h
+++ b/gio/gsrvtarget.h
@@ -29,30 +29,30 @@
G_BEGIN_DECLS
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_srv_target_get_type (void) G_GNUC_CONST;
#define G_TYPE_SRV_TARGET (g_srv_target_get_type ())
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSrvTarget *g_srv_target_new (const gchar *hostname,
guint16 port,
guint16 priority,
guint16 weight);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSrvTarget *g_srv_target_copy (GSrvTarget *target);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_srv_target_free (GSrvTarget *target);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar *g_srv_target_get_hostname (GSrvTarget *target);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint16 g_srv_target_get_port (GSrvTarget *target);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint16 g_srv_target_get_priority (GSrvTarget *target);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
guint16 g_srv_target_get_weight (GSrvTarget *target);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList *g_srv_target_list_sort (GList *targets);
G_END_DECLS
diff --git a/gio/gsubprocess.h b/gio/gsubprocess.h
index 5b483c072..4d5b48865 100644
--- a/gio/gsubprocess.h
+++ b/gio/gsubprocess.h
@@ -35,129 +35,129 @@ G_BEGIN_DECLS
#define G_SUBPROCESS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_SUBPROCESS, GSubprocess))
#define G_IS_SUBPROCESS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_SUBPROCESS))
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GType g_subprocess_get_type (void) G_GNUC_CONST;
/**** Core API ****/
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GSubprocess * g_subprocess_new (GSubprocessFlags flags,
GError **error,
const gchar *argv0,
...) G_GNUC_NULL_TERMINATED;
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GSubprocess * g_subprocess_newv (const gchar * const *argv,
GSubprocessFlags flags,
GError **error);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GOutputStream * g_subprocess_get_stdin_pipe (GSubprocess *subprocess);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GInputStream * g_subprocess_get_stdout_pipe (GSubprocess *subprocess);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GInputStream * g_subprocess_get_stderr_pipe (GSubprocess *subprocess);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
const gchar * g_subprocess_get_identifier (GSubprocess *subprocess);
#ifdef G_OS_UNIX
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_send_signal (GSubprocess *subprocess,
gint signal_num);
#endif
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_force_exit (GSubprocess *subprocess);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_subprocess_wait (GSubprocess *subprocess,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_wait_async (GSubprocess *subprocess,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_subprocess_wait_finish (GSubprocess *subprocess,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_subprocess_wait_check (GSubprocess *subprocess,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_wait_check_async (GSubprocess *subprocess,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_subprocess_wait_check_finish (GSubprocess *subprocess,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gint g_subprocess_get_status (GSubprocess *subprocess);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_subprocess_get_successful (GSubprocess *subprocess);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_subprocess_get_if_exited (GSubprocess *subprocess);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gint g_subprocess_get_exit_status (GSubprocess *subprocess);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_subprocess_get_if_signaled (GSubprocess *subprocess);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gint g_subprocess_get_term_sig (GSubprocess *subprocess);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_subprocess_communicate (GSubprocess *subprocess,
GBytes *stdin_buf,
GCancellable *cancellable,
GBytes **stdout_buf,
GBytes **stderr_buf,
GError **error);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_communicate_async (GSubprocess *subprocess,
GBytes *stdin_buf,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_subprocess_communicate_finish (GSubprocess *subprocess,
GAsyncResult *result,
GBytes **stdout_buf,
GBytes **stderr_buf,
GError **error);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_subprocess_communicate_utf8 (GSubprocess *subprocess,
const char *stdin_buf,
GCancellable *cancellable,
char **stdout_buf,
char **stderr_buf,
GError **error);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_communicate_utf8_async (GSubprocess *subprocess,
const char *stdin_buf,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
gboolean g_subprocess_communicate_utf8_finish (GSubprocess *subprocess,
GAsyncResult *result,
char **stdout_buf,
diff --git a/gio/gsubprocesslauncher.c b/gio/gsubprocesslauncher.c
index 713834e04..759ddf093 100644
--- a/gio/gsubprocesslauncher.c
+++ b/gio/gsubprocesslauncher.c
@@ -678,7 +678,7 @@ g_subprocess_launcher_close (GSubprocessLauncher *self)
/**
* g_subprocess_launcher_set_child_setup: (skip)
* @self: a #GSubprocessLauncher
- * @child_setup: a #GSpawnChildSetupFunc to use as the child setup function
+ * @child_setup: (closure user_data): a #GSpawnChildSetupFunc to use as the child setup function
* @user_data: user data for @child_setup
* @destroy_notify: a #GDestroyNotify for @user_data
*
diff --git a/gio/gsubprocesslauncher.h b/gio/gsubprocesslauncher.h
index 5719d795c..0ab91452a 100644
--- a/gio/gsubprocesslauncher.h
+++ b/gio/gsubprocesslauncher.h
@@ -37,79 +37,79 @@ G_BEGIN_DECLS
#define G_SUBPROCESS_LAUNCHER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_SUBPROCESS_LAUNCHER, GSubprocessLauncher))
#define G_IS_SUBPROCESS_LAUNCHER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_SUBPROCESS_LAUNCHER))
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GType g_subprocess_launcher_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GSubprocessLauncher * g_subprocess_launcher_new (GSubprocessFlags flags);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GSubprocess * g_subprocess_launcher_spawn (GSubprocessLauncher *self,
GError **error,
const gchar *argv0,
...) G_GNUC_NULL_TERMINATED;
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GSubprocess * g_subprocess_launcher_spawnv (GSubprocessLauncher *self,
const gchar * const *argv,
GError **error);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_launcher_set_environ (GSubprocessLauncher *self,
gchar **env);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_launcher_setenv (GSubprocessLauncher *self,
const gchar *variable,
const gchar *value,
gboolean overwrite);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_launcher_unsetenv (GSubprocessLauncher *self,
const gchar *variable);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
const gchar * g_subprocess_launcher_getenv (GSubprocessLauncher *self,
const gchar *variable);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_launcher_set_cwd (GSubprocessLauncher *self,
const gchar *cwd);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_launcher_set_flags (GSubprocessLauncher *self,
GSubprocessFlags flags);
/* Extended I/O control, only available on UNIX */
#ifdef G_OS_UNIX
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_launcher_set_stdin_file_path (GSubprocessLauncher *self,
const gchar *path);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_launcher_take_stdin_fd (GSubprocessLauncher *self,
gint fd);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_launcher_set_stdout_file_path (GSubprocessLauncher *self,
const gchar *path);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_launcher_take_stdout_fd (GSubprocessLauncher *self,
gint fd);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_launcher_set_stderr_file_path (GSubprocessLauncher *self,
const gchar *path);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_launcher_take_stderr_fd (GSubprocessLauncher *self,
gint fd);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_launcher_take_fd (GSubprocessLauncher *self,
gint source_fd,
gint target_fd);
-GLIB_AVAILABLE_IN_2_68
+GIO_AVAILABLE_IN_2_68
void g_subprocess_launcher_close (GSubprocessLauncher *self);
/* Child setup, only available on UNIX */
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_subprocess_launcher_set_child_setup (GSubprocessLauncher *self,
GSpawnChildSetupFunc child_setup,
gpointer user_data,
diff --git a/gio/gtask.c b/gio/gtask.c
index e8c2ef282..12727007a 100644
--- a/gio/gtask.c
+++ b/gio/gtask.c
@@ -64,6 +64,10 @@
* #GTask was constructed to be running at least until the task has completed
* and its data has been freed.
*
+ * If a #GTask has been constructed and its callback set, it is an error to
+ * not call `g_task_return_*()` on it. GLib will warn at runtime if this happens
+ * (since 2.76).
+ *
* Here is an example for using GTask as a GAsyncResult:
* |[<!-- language="C" -->
* typedef struct {
@@ -538,6 +542,24 @@
* having come from the `_async()` wrapper
* function (for "short-circuit" results, such as when passing
* 0 to g_input_stream_read_async()).
+ *
+ * ## Thread-safety considerations
+ *
+ * Due to some infelicities in the API design, there is a
+ * thread-safety concern that users of GTask have to be aware of:
+ *
+ * If the `main` thread drops its last reference to the source object
+ * or the task data before the task is finalized, then the finalizers
+ * of these objects may be called on the worker thread.
+ *
+ * This is a problem if the finalizers use non-threadsafe API, and
+ * can lead to hard-to-debug crashes. Possible workarounds include:
+ *
+ * - Clear task data in a signal handler for `notify::completed`
+ *
+ * - Keep iterating a main context in the main thread and defer
+ * dropping the reference to the source object to that main
+ * context when the task is finalized
*/
/**
@@ -573,21 +595,22 @@ struct _GTask {
gboolean thread_cancelled;
/* Protected by the lock when task is threaded: */
- gboolean thread_complete : 1;
- gboolean return_on_cancel : 1;
- gboolean : 0;
+ guint thread_complete : 1;
+ guint return_on_cancel : 1;
+ guint : 0;
/* Unprotected, but written to when task runs in thread: */
- gboolean completed : 1;
- gboolean had_error : 1;
- gboolean result_set : 1;
- gboolean ever_returned : 1;
- gboolean : 0;
+ guint completed : 1;
+ guint had_error : 1;
+ guint result_set : 1;
+ guint ever_returned : 1;
+ guint : 0;
/* Read-only once task runs in thread: */
- gboolean check_cancellable : 1;
- gboolean synchronous : 1;
- gboolean blocking_other_task : 1;
+ guint check_cancellable : 1;
+ guint synchronous : 1;
+ guint blocking_other_task : 1;
+ guint name_is_static : 1;
GError *error;
union {
@@ -653,14 +676,95 @@ g_task_init (GTask *task)
task->check_cancellable = TRUE;
}
+#ifdef G_ENABLE_DEBUG
+G_LOCK_DEFINE_STATIC (task_list);
+static GPtrArray *task_list = NULL;
+
+void
+g_task_print_alive_tasks (void)
+{
+ GString *message_str = g_string_new ("");
+
+ G_LOCK (task_list);
+
+ if (task_list != NULL)
+ {
+ g_string_append_printf (message_str, "%u GTasks still alive:", task_list->len);
+ for (guint i = 0; i < task_list->len; i++)
+ {
+ GTask *task = g_ptr_array_index (task_list, i);
+ const gchar *name = g_task_get_name (task);
+ g_string_append_printf (message_str,
+ "\n • GTask %p, %s, ref count: %u, ever_returned: %u, completed: %u",
+ task, (name != NULL) ? name : "(no name set)",
+ ((GObject *) task)->ref_count,
+ task->ever_returned, task->completed);
+ }
+ }
+ else
+ {
+ g_string_append (message_str, "No GTasks still alive");
+ }
+
+ G_UNLOCK (task_list);
+
+ g_message ("%s", message_str->str);
+ g_string_free (message_str, TRUE);
+}
+
+static void
+g_task_constructed (GObject *object)
+{
+ GTask *task = G_TASK (object);
+
+ G_OBJECT_CLASS (g_task_parent_class)->constructed (object);
+
+ /* Track pending tasks for debugging purposes */
+ G_LOCK (task_list);
+ if (G_UNLIKELY (task_list == NULL))
+ task_list = g_ptr_array_new ();
+ g_ptr_array_add (task_list, task);
+ G_UNLOCK (task_list);
+}
+#endif /* G_ENABLE_DEBUG */
+
static void
g_task_finalize (GObject *object)
{
GTask *task = G_TASK (object);
+ /* Warn if a #GTask is finalised without g_task_return() ever having been
+ * called on it.
+ *
+ * Tasks without a callback or which are run in g_task_run_in_thread{,_sync}()
+ * only trigger a debug message as that’s sometimes used as a pattern for
+ * running work in a worker thread without caring about the result. */
+ if (!task->ever_returned)
+ {
+ gchar *owned_task_name = NULL;
+ const gchar *task_name = g_task_get_name (task);
+
+ if (task_name == NULL)
+ task_name = owned_task_name = g_strdup_printf ("%p", task);
+
+ if (task->callback != NULL && !G_TASK_IS_THREADED (task))
+ g_critical ("GTask %s (source object: %p, source tag: %p) finalized without "
+ "ever returning (using g_task_return_*()). This potentially "
+ "indicates a bug in the program.",
+ task_name, task->source_object, task->source_tag);
+ else
+ g_debug ("GTask %s (source object: %p, source tag: %p) finalized without "
+ "ever returning (using g_task_return_*()). This potentially "
+ "indicates a bug in the program.",
+ task_name, task->source_object, task->source_tag);
+
+ g_free (owned_task_name);
+ }
+
g_clear_object (&task->source_object);
g_clear_object (&task->cancellable);
- g_free (task->name);
+ if (!task->name_is_static)
+ g_free (task->name);
if (task->context)
g_main_context_unref (task->context);
@@ -680,6 +784,16 @@ g_task_finalize (GObject *object)
g_cond_clear (&task->cond);
}
+ /* Track pending tasks for debugging purposes */
+#ifdef G_ENABLE_DEBUG
+ G_LOCK (task_list);
+ g_assert (task_list != NULL);
+ g_ptr_array_remove_fast (task_list, task);
+ if (G_UNLIKELY (task_list->len == 0))
+ g_clear_pointer (&task_list, g_ptr_array_unref);
+ G_UNLOCK (task_list);
+#endif /* G_ENABLE_DEBUG */
+
G_OBJECT_CLASS (g_task_parent_class)->finalize (object);
}
@@ -689,7 +803,7 @@ g_task_finalize (GObject *object)
* this task, or %NULL.
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
* @callback: (scope async): a #GAsyncReadyCallback.
- * @callback_data: (closure): user data passed to @callback.
+ * @callback_data: user data passed to @callback.
*
* Creates a #GTask acting on @source_object, which will eventually be
* used to invoke @callback in the current
@@ -742,8 +856,8 @@ g_task_new (gpointer source_object,
* g_task_report_error:
* @source_object: (nullable) (type GObject): the #GObject that owns
* this task, or %NULL.
- * @callback: (scope async): a #GAsyncReadyCallback.
- * @callback_data: (closure): user data passed to @callback.
+ * @callback: (scope async) (closure callback_data): a #GAsyncReadyCallback.
+ * @callback_data: user data passed to @callback.
* @source_tag: an opaque pointer indicating the source of this task
* @error: (transfer full): error to report
*
@@ -769,7 +883,7 @@ g_task_report_error (gpointer source_object,
task = g_task_new (source_object, NULL, callback, callback_data);
g_task_set_source_tag (task, source_tag);
- g_task_set_name (task, G_STRFUNC);
+ g_task_set_static_name (task, G_STRFUNC);
g_task_return_error (task, error);
g_object_unref (task);
}
@@ -778,8 +892,8 @@ g_task_report_error (gpointer source_object,
* g_task_report_new_error:
* @source_object: (nullable) (type GObject): the #GObject that owns
* this task, or %NULL.
- * @callback: (scope async): a #GAsyncReadyCallback.
- * @callback_data: (closure): user data passed to @callback.
+ * @callback: (scope async) (closure callback_data): a #GAsyncReadyCallback.
+ * @callback_data: user data passed to @callback.
* @source_tag: an opaque pointer indicating the source of this task
* @domain: a #GQuark.
* @code: an error code.
@@ -1028,16 +1142,41 @@ void
* Since: 2.60
*/
void
-g_task_set_name (GTask *task,
- const gchar *name)
+(g_task_set_name) (GTask *task,
+ const char *name)
{
- gchar *new_name;
+ char *new_name;
g_return_if_fail (G_IS_TASK (task));
new_name = g_strdup (name);
- g_free (task->name);
+ if (!task->name_is_static)
+ g_free (task->name);
task->name = g_steal_pointer (&new_name);
+ task->name_is_static = FALSE;
+}
+
+/**
+ * g_task_set_static_name:
+ * @task: a #GTask
+ * @name: (nullable): a human readable name for the task. Must be a string literal
+ *
+ * Sets @task’s name, used in debugging and profiling.
+ *
+ * This is a variant of g_task_set_name() that avoids copying @name.
+ *
+ * Since: 2.76
+ */
+void
+g_task_set_static_name (GTask *task,
+ const char *name)
+{
+ g_return_if_fail (G_IS_TASK (task));
+
+ if (!task->name_is_static)
+ g_free (task->name);
+ task->name = (char *) name;
+ task->name_is_static = TRUE;
}
/**
@@ -1557,6 +1696,13 @@ g_task_start_task_thread (GTask *task,
* tasks), but don't want them to all run at once, you should only queue a
* limited number of them (around ten) at a time.
*
+ * Be aware that if your task depends on other tasks to complete, use of this
+ * function could lead to a livelock if the other tasks also use this function
+ * and enough of them (around 10) execute in a dependency chain, as that will
+ * exhaust the thread pool. If this situation is possible, consider using a
+ * separate worker thread or thread pool explicitly, rather than using
+ * g_task_run_in_thread().
+ *
* Since: 2.36
*/
void
@@ -1645,7 +1791,8 @@ g_task_run_in_thread_sync (GTask *task,
* callback to @callback, with @task as the callback's `user_data`.
*
* It will set the @source’s name to the task’s name (as set with
- * g_task_set_name()), if one has been set.
+ * g_task_set_name()), if one has been set on the task and the source doesn’t
+ * yet have a name.
*
* This takes a reference on @task until @source is destroyed.
*
@@ -1661,7 +1808,7 @@ g_task_attach_source (GTask *task,
g_source_set_callback (source, callback,
g_object_ref (task), g_object_unref);
g_source_set_priority (source, task->priority);
- if (task->name != NULL)
+ if (task->name != NULL && g_source_get_name (source) == NULL)
g_source_set_name (source, task->name);
g_source_attach (source, task->context);
@@ -2231,6 +2378,9 @@ g_task_class_init (GTaskClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+#ifdef G_ENABLE_DEBUG
+ gobject_class->constructed = g_task_constructed;
+#endif
gobject_class->get_property = g_task_get_property;
gobject_class->finalize = g_task_finalize;
diff --git a/gio/gtask.h b/gio/gtask.h
index 235e6626d..6d7fa82ff 100644
--- a/gio/gtask.h
+++ b/gio/gtask.h
@@ -38,22 +38,22 @@ G_BEGIN_DECLS
typedef struct _GTaskClass GTaskClass;
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
GType g_task_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
GTask *g_task_new (gpointer source_object,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer callback_data);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_task_report_error (gpointer source_object,
GAsyncReadyCallback callback,
gpointer callback_data,
gpointer source_tag,
GError *error);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_task_report_new_error (gpointer source_object,
GAsyncReadyCallback callback,
gpointer callback_data,
@@ -63,51 +63,66 @@ void g_task_report_new_error (gpointer source_object,
const char *format,
...) G_GNUC_PRINTF(7, 8);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_task_set_task_data (GTask *task,
gpointer task_data,
GDestroyNotify task_data_destroy);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_task_set_priority (GTask *task,
gint priority);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_task_set_check_cancellable (GTask *task,
gboolean check_cancellable);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_task_set_source_tag (GTask *task,
gpointer source_tag);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
void g_task_set_name (GTask *task,
const gchar *name);
+GIO_AVAILABLE_IN_2_76
+void g_task_set_static_name (GTask *task,
+ const gchar *name);
/* Macro wrapper to set the task name when setting the source tag. */
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_60
+#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_76
#define g_task_set_source_tag(task, tag) G_STMT_START { \
GTask *_task = (task); \
(g_task_set_source_tag) (_task, tag); \
if (g_task_get_name (_task) == NULL) \
- g_task_set_name (_task, G_STRINGIFY (tag)); \
+ g_task_set_static_name (_task, G_STRINGIFY (tag)); \
} G_STMT_END
#endif
-GLIB_AVAILABLE_IN_2_36
+#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_76
+#if defined (__GNUC__) && (__GNUC__ >= 2)
+#define g_task_set_name(task, name) G_STMT_START { \
+ GTask *_task = (task); \
+ if (__builtin_constant_p (name)) \
+ g_task_set_static_name (_task, name); \
+ else \
+ g_task_set_name (_task, name); \
+} G_STMT_END
+#endif
+#endif
+
+GIO_AVAILABLE_IN_2_36
gpointer g_task_get_source_object (GTask *task);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gpointer g_task_get_task_data (GTask *task);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gint g_task_get_priority (GTask *task);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
GMainContext *g_task_get_context (GTask *task);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
GCancellable *g_task_get_cancellable (GTask *task);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gboolean g_task_get_check_cancellable (GTask *task);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gpointer g_task_get_source_tag (GTask *task);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
const gchar *g_task_get_name (GTask *task);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gboolean g_task_is_valid (gpointer result,
gpointer source_object);
@@ -116,69 +131,77 @@ typedef void (*GTaskThreadFunc) (GTask *task,
gpointer source_object,
gpointer task_data,
GCancellable *cancellable);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_task_run_in_thread (GTask *task,
GTaskThreadFunc task_func);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_task_run_in_thread_sync (GTask *task,
GTaskThreadFunc task_func);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gboolean g_task_set_return_on_cancel (GTask *task,
gboolean return_on_cancel);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gboolean g_task_get_return_on_cancel (GTask *task);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_task_attach_source (GTask *task,
GSource *source,
GSourceFunc callback);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_task_return_pointer (GTask *task,
gpointer result,
GDestroyNotify result_destroy);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_task_return_boolean (GTask *task,
gboolean result);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_task_return_int (GTask *task,
gssize result);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_task_return_error (GTask *task,
GError *error);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
void g_task_return_new_error (GTask *task,
GQuark domain,
gint code,
const char *format,
...) G_GNUC_PRINTF (4, 5);
-GLIB_AVAILABLE_IN_2_64
+GIO_AVAILABLE_IN_2_64
void g_task_return_value (GTask *task,
GValue *result);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gboolean g_task_return_error_if_cancelled (GTask *task);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gpointer g_task_propagate_pointer (GTask *task,
GError **error);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gboolean g_task_propagate_boolean (GTask *task,
GError **error);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gssize g_task_propagate_int (GTask *task,
GError **error);
-GLIB_AVAILABLE_IN_2_64
+GIO_AVAILABLE_IN_2_64
gboolean g_task_propagate_value (GTask *task,
GValue *value,
GError **error);
-GLIB_AVAILABLE_IN_2_36
+GIO_AVAILABLE_IN_2_36
gboolean g_task_had_error (GTask *task);
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
gboolean g_task_get_completed (GTask *task);
+/*< private >*/
+#ifndef __GTK_DOC_IGNORE__
+#ifndef __GI_SCANNER__
+/* Debugging API, not part of the public API */
+void g_task_print_alive_tasks (void);
+#endif /* !__GI_SCANNER__ */
+#endif /* !__GTK_DOC_IGNORE__ */
+
G_END_DECLS
#endif /* __G_TASK_H__ */
diff --git a/gio/gtcpconnection.c b/gio/gtcpconnection.c
index 422b3dea5..e0865d859 100644
--- a/gio/gtcpconnection.c
+++ b/gio/gtcpconnection.c
@@ -206,6 +206,8 @@ async_close_finish (GTask *task,
g_task_return_error (task, error);
else
g_task_return_boolean (task, TRUE);
+
+ g_object_unref (task);
}
@@ -231,7 +233,6 @@ close_read_ready (GSocket *socket,
else
{
async_close_finish (task, error);
- g_object_unref (task);
return FALSE;
}
}
diff --git a/gio/gtcpconnection.h b/gio/gtcpconnection.h
index 29f6bc0a1..03aa28ad3 100644
--- a/gio/gtcpconnection.h
+++ b/gio/gtcpconnection.h
@@ -57,13 +57,13 @@ struct _GTcpConnection
GTcpConnectionPrivate *priv;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tcp_connection_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tcp_connection_set_graceful_disconnect (GTcpConnection *connection,
gboolean graceful_disconnect);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_tcp_connection_get_graceful_disconnect (GTcpConnection *connection);
G_END_DECLS
diff --git a/gio/gtcpwrapperconnection.h b/gio/gtcpwrapperconnection.h
index dff4fe776..1027154fb 100644
--- a/gio/gtcpwrapperconnection.h
+++ b/gio/gtcpwrapperconnection.h
@@ -57,13 +57,13 @@ struct _GTcpWrapperConnection
GTcpWrapperConnectionPrivate *priv;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tcp_wrapper_connection_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnection *g_tcp_wrapper_connection_new (GIOStream *base_io_stream,
GSocket *socket);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOStream *g_tcp_wrapper_connection_get_base_io_stream (GTcpWrapperConnection *conn);
G_END_DECLS
diff --git a/gio/gtestdbus.c b/gio/gtestdbus.c
index 6aedb3eae..d75b4395a 100644
--- a/gio/gtestdbus.c
+++ b/gio/gtestdbus.c
@@ -50,6 +50,7 @@
#ifdef G_OS_UNIX
#include "glib-unix.h"
+#include "glib-unixprivate.h"
#endif
/* -------------------------------------------------------------------------- */
@@ -61,13 +62,12 @@ typedef struct
gboolean timed_out;
} WeakNotifyData;
-static gboolean
+static void
on_weak_notify_timeout (gpointer user_data)
{
WeakNotifyData *data = user_data;
data->timed_out = TRUE;
g_main_loop_quit (data->loop);
- return FALSE;
}
static gboolean
@@ -94,7 +94,7 @@ _g_object_unref_and_wait_weak_notify (gpointer object)
g_idle_add (unref_on_idle, object);
/* Make sure we don't block forever */
- timeout_id = g_timeout_add_seconds (30, on_weak_notify_timeout, &data);
+ timeout_id = g_timeout_add_seconds_once (30, on_weak_notify_timeout, &data);
g_main_loop_run (data.loop);
@@ -248,7 +248,7 @@ watcher_init (void)
gint pipe_fds[2];
/* fork a child to clean up when we are killed */
- if (pipe (pipe_fds) != 0)
+ if (!g_unix_open_pipe_internal (pipe_fds, TRUE, FALSE))
{
errsv = errno;
g_warning ("pipe() failed: %s", g_strerror (errsv));
@@ -604,7 +604,7 @@ make_pipe (gint pipe_fds[2],
GError **error)
{
#if defined(G_OS_UNIX)
- return g_unix_open_pipe (pipe_fds, FD_CLOEXEC, error);
+ return g_unix_open_pipe (pipe_fds, O_CLOEXEC, error);
#elif defined(G_OS_WIN32)
if (_pipe (pipe_fds, 4096, _O_BINARY) < 0)
{
diff --git a/gio/gtestdbus.h b/gio/gtestdbus.h
index ccaaa628f..f52ea1eb1 100644
--- a/gio/gtestdbus.h
+++ b/gio/gtestdbus.h
@@ -41,32 +41,32 @@ G_BEGIN_DECLS
#define G_IS_TEST_DBUS(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_TEST_DBUS))
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GType g_test_dbus_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GTestDBus * g_test_dbus_new (GTestDBusFlags flags);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
GTestDBusFlags g_test_dbus_get_flags (GTestDBus *self);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
const gchar * g_test_dbus_get_bus_address (GTestDBus *self);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
void g_test_dbus_add_service_dir (GTestDBus *self,
const gchar *path);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
void g_test_dbus_up (GTestDBus *self);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
void g_test_dbus_stop (GTestDBus *self);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
void g_test_dbus_down (GTestDBus *self);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
void g_test_dbus_unset (void);
G_END_DECLS
diff --git a/gio/gthemedicon.h b/gio/gthemedicon.h
index f53063900..5ac36ce4f 100644
--- a/gio/gthemedicon.h
+++ b/gio/gthemedicon.h
@@ -45,24 +45,24 @@ G_BEGIN_DECLS
**/
typedef struct _GThemedIconClass GThemedIconClass;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_themed_icon_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon *g_themed_icon_new (const char *iconname);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon *g_themed_icon_new_with_default_fallbacks (const char *iconname);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon *g_themed_icon_new_from_names (char **iconnames,
int len);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_themed_icon_prepend_name (GThemedIcon *icon,
const char *iconname);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_themed_icon_append_name (GThemedIcon *icon,
const char *iconname);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar* const * g_themed_icon_get_names (GThemedIcon *icon);
G_END_DECLS
diff --git a/gio/gthreadedresolver.c b/gio/gthreadedresolver.c
index 7453c0f25..c7a567549 100644
--- a/gio/gthreadedresolver.c
+++ b/gio/gthreadedresolver.c
@@ -28,6 +28,7 @@
#include <stdio.h>
#include <string.h>
+#include "glib/glib-private.h"
#include "gthreadedresolver.h"
#include "gnetworkingprivate.h"
@@ -38,12 +39,83 @@
#include "gsocketaddress.h"
#include "gsrvtarget.h"
+/*
+ * GThreadedResolver is a threaded wrapper around the system libc’s
+ * `getaddrinfo()`.
+ *
+ * It has to be threaded, as `getaddrinfo()` is synchronous. libc does provide
+ * `getaddrinfo_a()` as an asynchronous version of `getaddrinfo()`, but it does
+ * not integrate with a poll loop. It requires use of sigevent to notify of
+ * completion of an asynchronous operation. That either emits a signal, or calls
+ * a callback function in a newly spawned thread.
+ *
+ * A signal (`SIGEV_SIGNAL`) can’t be used for completion as (aside from being
+ * another expensive round trip into the kernel) GLib cannot pick a `SIG*`
+ * number which is guaranteed to not be in use elsewhere in the process. Various
+ * other things could be interfering with signal dispositions, such as gdb or
+ * other libraries in the process. Using a `signalfd()`
+ * [cannot improve this situation](https://ldpreload.com/blog/signalfd-is-useless).
+ *
+ * A callback function in a newly spawned thread (`SIGEV_THREAD`) could be used,
+ * but that is very expensive. Internally, glibc currently also just implements
+ * `getaddrinfo_a()`
+ * [using its own thread pool](https://github.com/bminor/glibc/blob/master/resolv/gai_misc.c),
+ * and then
+ * [spawns an additional thread for each completion callback](https://github.com/bminor/glibc/blob/master/resolv/gai_notify.c).
+ * That is very expensive.
+ *
+ * No other appropriate sigevent callback types
+ * [currently exist](https://sourceware.org/bugzilla/show_bug.cgi?id=30287), and
+ * [others agree that sigevent is not great](http://davmac.org/davpage/linux/async-io.html#posixaio).
+ *
+ * Hence, #GThreadedResolver calls the normal synchronous `getaddrinfo()` in its
+ * own thread pool. Previously, #GThreadedResolver used the thread pool which is
+ * internal to #GTask by calling g_task_run_in_thread(). That lead to exhaustion
+ * of the #GTask thread pool in some situations, though, as DNS lookups are
+ * quite frequent leaf operations in some use cases. Now, #GThreadedResolver
+ * uses its own private thread pool.
+ *
+ * This is similar to what
+ * [libasyncns](http://git.0pointer.net/libasyncns.git/tree/libasyncns/asyncns.h)
+ * and other multi-threaded users of `getaddrinfo()` do.
+ */
+
+struct _GThreadedResolver
+{
+ GResolver parent_instance;
+
+ GThreadPool *thread_pool; /* (owned) */
+};
G_DEFINE_TYPE (GThreadedResolver, g_threaded_resolver, G_TYPE_RESOLVER)
+static void run_task_in_thread_pool_async (GThreadedResolver *self,
+ GTask *task);
+static void run_task_in_thread_pool_sync (GThreadedResolver *self,
+ GTask *task);
+static void threaded_resolver_worker_cb (gpointer task_data,
+ gpointer user_data);
+
static void
-g_threaded_resolver_init (GThreadedResolver *gtr)
+g_threaded_resolver_init (GThreadedResolver *self)
{
+ self->thread_pool = g_thread_pool_new_full (threaded_resolver_worker_cb,
+ self,
+ (GDestroyNotify) g_object_unref,
+ 20,
+ FALSE,
+ NULL);
+}
+
+static void
+g_threaded_resolver_finalize (GObject *object)
+{
+ GThreadedResolver *self = G_THREADED_RESOLVER (object);
+
+ g_thread_pool_free (self->thread_pool, TRUE, FALSE);
+ self->thread_pool = NULL;
+
+ G_OBJECT_CLASS (g_threaded_resolver_parent_class)->finalize (object);
}
static GResolverError
@@ -67,35 +139,127 @@ g_resolver_error_from_addrinfo_error (gint err)
}
typedef struct {
- char *hostname;
- int address_family;
+ enum {
+ LOOKUP_BY_NAME,
+ LOOKUP_BY_ADDRESS,
+ LOOKUP_RECORDS,
+ } lookup_type;
+
+ union {
+ struct {
+ char *hostname;
+ int address_family;
+ } lookup_by_name;
+ struct {
+ GInetAddress *address; /* (owned) */
+ } lookup_by_address;
+ struct {
+ char *rrname;
+ GResolverRecordType record_type;
+ } lookup_records;
+ };
+
+ GCond cond; /* used for signalling completion of the task when running it sync */
+ GMutex lock;
+
+ GSource *timeout_source; /* (nullable) (owned) */
+ GSource *cancellable_source; /* (nullable) (owned) */
+
+ /* This enum indicates that a particular code path has claimed the
+ * task and is shortly about to call g_task_return_*() on it.
+ * This must be accessed with GThreadedResolver.lock held. */
+ enum
+ {
+ NOT_YET,
+ COMPLETED, /* libc lookup call has completed successfully or errored */
+ TIMED_OUT,
+ CANCELLED,
+ } will_return;
+
+ /* Whether the thread pool thread executing this lookup has finished executing
+ * it and g_task_return_*() has been called on it already.
+ * This must be accessed with GThreadedResolver.lock held. */
+ gboolean has_returned;
} LookupData;
static LookupData *
-lookup_data_new (const char *hostname,
- int address_family)
+lookup_data_new_by_name (const char *hostname,
+ int address_family)
{
- LookupData *data = g_new (LookupData, 1);
- data->hostname = g_strdup (hostname);
- data->address_family = address_family;
- return data;
+ LookupData *data = g_new0 (LookupData, 1);
+ data->lookup_type = LOOKUP_BY_NAME;
+ g_cond_init (&data->cond);
+ g_mutex_init (&data->lock);
+ data->lookup_by_name.hostname = g_strdup (hostname);
+ data->lookup_by_name.address_family = address_family;
+ return g_steal_pointer (&data);
+}
+
+static LookupData *
+lookup_data_new_by_address (GInetAddress *address)
+{
+ LookupData *data = g_new0 (LookupData, 1);
+ data->lookup_type = LOOKUP_BY_ADDRESS;
+ g_cond_init (&data->cond);
+ g_mutex_init (&data->lock);
+ data->lookup_by_address.address = g_object_ref (address);
+ return g_steal_pointer (&data);
+}
+
+static LookupData *
+lookup_data_new_records (const gchar *rrname,
+ GResolverRecordType record_type)
+{
+ LookupData *data = g_new0 (LookupData, 1);
+ data->lookup_type = LOOKUP_RECORDS;
+ g_cond_init (&data->cond);
+ g_mutex_init (&data->lock);
+ data->lookup_records.rrname = g_strdup (rrname);
+ data->lookup_records.record_type = record_type;
+ return g_steal_pointer (&data);
}
static void
lookup_data_free (LookupData *data)
{
- g_free (data->hostname);
+ switch (data->lookup_type) {
+ case LOOKUP_BY_NAME:
+ g_free (data->lookup_by_name.hostname);
+ break;
+ case LOOKUP_BY_ADDRESS:
+ g_clear_object (&data->lookup_by_address.address);
+ break;
+ case LOOKUP_RECORDS:
+ g_free (data->lookup_records.rrname);
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+
+ if (data->timeout_source != NULL)
+ {
+ g_source_destroy (data->timeout_source);
+ g_clear_pointer (&data->timeout_source, g_source_unref);
+ }
+
+ if (data->cancellable_source != NULL)
+ {
+ g_source_destroy (data->cancellable_source);
+ g_clear_pointer (&data->cancellable_source, g_source_unref);
+ }
+
+ g_mutex_clear (&data->lock);
+ g_cond_clear (&data->cond);
+
g_free (data);
}
-static void
-do_lookup_by_name (GTask *task,
- gpointer source_object,
- gpointer task_data,
- GCancellable *cancellable)
+static GList *
+do_lookup_by_name (const gchar *hostname,
+ int address_family,
+ GCancellable *cancellable,
+ GError **error)
{
- LookupData *lookup_data = task_data;
- const char *hostname = lookup_data->hostname;
struct addrinfo *res = NULL;
GList *addresses;
gint retval;
@@ -111,7 +275,7 @@ do_lookup_by_name (GTask *task,
addrinfo_hints.ai_socktype = SOCK_STREAM;
addrinfo_hints.ai_protocol = IPPROTO_TCP;
- addrinfo_hints.ai_family = lookup_data->address_family;
+ addrinfo_hints.ai_family = address_family;
retval = getaddrinfo (hostname, NULL, &addrinfo_hints, &res);
if (retval == 0)
@@ -137,21 +301,23 @@ do_lookup_by_name (GTask *task,
g_object_unref (sockaddr);
}
+ g_clear_pointer (&res, freeaddrinfo);
+
if (addresses != NULL)
{
addresses = g_list_reverse (addresses);
- g_task_return_pointer (task, addresses,
- (GDestroyNotify)g_resolver_free_addresses);
+ return g_steal_pointer (&addresses);
}
else
{
/* All addresses failed to be converted to GSocketAddresses. */
- g_task_return_new_error (task,
- G_RESOLVER_ERROR,
- G_RESOLVER_ERROR_NOT_FOUND,
- _("Error resolving “%s”: %s"),
- hostname,
- _("No valid addresses were found"));
+ g_set_error (error,
+ G_RESOLVER_ERROR,
+ G_RESOLVER_ERROR_NOT_FOUND,
+ _("Error resolving “%s”: %s"),
+ hostname,
+ _("No valid addresses were found"));
+ return NULL;
}
}
else
@@ -164,16 +330,17 @@ do_lookup_by_name (GTask *task,
error_message = g_strdup ("[Invalid UTF-8]");
#endif
- g_task_return_new_error (task,
- G_RESOLVER_ERROR,
- g_resolver_error_from_addrinfo_error (retval),
- _("Error resolving “%s”: %s"),
- hostname, error_message);
+ g_clear_pointer (&res, freeaddrinfo);
+
+ g_set_error (error,
+ G_RESOLVER_ERROR,
+ g_resolver_error_from_addrinfo_error (retval),
+ _("Error resolving “%s”: %s"),
+ hostname, error_message);
g_free (error_message);
- }
- if (res)
- freeaddrinfo (res);
+ return NULL;
+ }
}
static GList *
@@ -182,17 +349,19 @@ lookup_by_name (GResolver *resolver,
GCancellable *cancellable,
GError **error)
{
+ GThreadedResolver *self = G_THREADED_RESOLVER (resolver);
GTask *task;
GList *addresses;
LookupData *data;
- data = lookup_data_new (hostname, AF_UNSPEC);
+ data = lookup_data_new_by_name (hostname, AF_UNSPEC);
task = g_task_new (resolver, cancellable, NULL, NULL);
g_task_set_source_tag (task, lookup_by_name);
g_task_set_name (task, "[gio] resolver lookup");
- g_task_set_task_data (task, data, (GDestroyNotify)lookup_data_free);
- g_task_set_return_on_cancel (task, TRUE);
- g_task_run_in_thread_sync (task, do_lookup_by_name);
+ g_task_set_task_data (task, g_steal_pointer (&data), (GDestroyNotify) lookup_data_free);
+
+ run_task_in_thread_pool_sync (self, task);
+
addresses = g_task_propagate_pointer (task, error);
g_object_unref (task);
@@ -224,17 +393,19 @@ lookup_by_name_with_flags (GResolver *resolver,
GCancellable *cancellable,
GError **error)
{
+ GThreadedResolver *self = G_THREADED_RESOLVER (resolver);
GTask *task;
GList *addresses;
LookupData *data;
- data = lookup_data_new (hostname, flags_to_family (flags));
+ data = lookup_data_new_by_name (hostname, flags_to_family (flags));
task = g_task_new (resolver, cancellable, NULL, NULL);
g_task_set_source_tag (task, lookup_by_name_with_flags);
g_task_set_name (task, "[gio] resolver lookup");
- g_task_set_task_data (task, data, (GDestroyNotify)lookup_data_free);
- g_task_set_return_on_cancel (task, TRUE);
- g_task_run_in_thread_sync (task, do_lookup_by_name);
+ g_task_set_task_data (task, g_steal_pointer (&data), (GDestroyNotify) lookup_data_free);
+
+ run_task_in_thread_pool_sync (self, task);
+
addresses = g_task_propagate_pointer (task, error);
g_object_unref (task);
@@ -249,16 +420,22 @@ lookup_by_name_with_flags_async (GResolver *resolver,
GAsyncReadyCallback callback,
gpointer user_data)
{
+ GThreadedResolver *self = G_THREADED_RESOLVER (resolver);
GTask *task;
LookupData *data;
- data = lookup_data_new (hostname, flags_to_family (flags));
+ data = lookup_data_new_by_name (hostname, flags_to_family (flags));
task = g_task_new (resolver, cancellable, callback, user_data);
+
+ g_debug ("%s: starting new lookup for %s with GTask %p, LookupData %p",
+ G_STRFUNC, hostname, task, data);
+
g_task_set_source_tag (task, lookup_by_name_with_flags_async);
g_task_set_name (task, "[gio] resolver lookup");
- g_task_set_task_data (task, data, (GDestroyNotify)lookup_data_free);
- g_task_set_return_on_cancel (task, TRUE);
- g_task_run_in_thread (task, do_lookup_by_name);
+ g_task_set_task_data (task, g_steal_pointer (&data), (GDestroyNotify) lookup_data_free);
+
+ run_task_in_thread_pool_async (self, task);
+
g_object_unref (task);
}
@@ -297,13 +474,11 @@ lookup_by_name_with_flags_finish (GResolver *resolver,
return g_task_propagate_pointer (G_TASK (result), error);
}
-static void
-do_lookup_by_address (GTask *task,
- gpointer source_object,
- gpointer task_data,
- GCancellable *cancellable)
+static gchar *
+do_lookup_by_address (GInetAddress *address,
+ GCancellable *cancellable,
+ GError **error)
{
- GInetAddress *address = task_data;
struct sockaddr_storage sockaddr_address;
gsize sockaddr_address_size;
GSocketAddress *gsockaddr;
@@ -319,7 +494,7 @@ do_lookup_by_address (GTask *task,
retval = getnameinfo ((struct sockaddr *) &sockaddr_address, sockaddr_address_size,
name, sizeof (name), NULL, 0, NI_NAMEREQD);
if (retval == 0)
- g_task_return_pointer (task, g_strdup (name), g_free);
+ return g_strdup (name);
else
{
gchar *phys;
@@ -333,14 +508,16 @@ do_lookup_by_address (GTask *task,
#endif
phys = g_inet_address_to_string (address);
- g_task_return_new_error (task,
- G_RESOLVER_ERROR,
- g_resolver_error_from_addrinfo_error (retval),
- _("Error reverse-resolving “%s”: %s"),
- phys ? phys : "(unknown)",
- error_message);
+ g_set_error (error,
+ G_RESOLVER_ERROR,
+ g_resolver_error_from_addrinfo_error (retval),
+ _("Error reverse-resolving “%s”: %s"),
+ phys ? phys : "(unknown)",
+ error_message);
g_free (phys);
g_free (error_message);
+
+ return NULL;
}
}
@@ -350,15 +527,19 @@ lookup_by_address (GResolver *resolver,
GCancellable *cancellable,
GError **error)
{
+ GThreadedResolver *self = G_THREADED_RESOLVER (resolver);
+ LookupData *data = NULL;
GTask *task;
gchar *name;
+ data = lookup_data_new_by_address (address);
task = g_task_new (resolver, cancellable, NULL, NULL);
g_task_set_source_tag (task, lookup_by_address);
g_task_set_name (task, "[gio] resolver lookup");
- g_task_set_task_data (task, g_object_ref (address), g_object_unref);
- g_task_set_return_on_cancel (task, TRUE);
- g_task_run_in_thread_sync (task, do_lookup_by_address);
+ g_task_set_task_data (task, g_steal_pointer (&data), (GDestroyNotify) lookup_data_free);
+
+ run_task_in_thread_pool_sync (self, task);
+
name = g_task_propagate_pointer (task, error);
g_object_unref (task);
@@ -372,14 +553,18 @@ lookup_by_address_async (GResolver *resolver,
GAsyncReadyCallback callback,
gpointer user_data)
{
+ GThreadedResolver *self = G_THREADED_RESOLVER (resolver);
+ LookupData *data = NULL;
GTask *task;
+ data = lookup_data_new_by_address (address);
task = g_task_new (resolver, cancellable, callback, user_data);
g_task_set_source_tag (task, lookup_by_address_async);
g_task_set_name (task, "[gio] resolver lookup");
- g_task_set_task_data (task, g_object_ref (address), g_object_unref);
- g_task_set_return_on_cancel (task, TRUE);
- g_task_run_in_thread (task, do_lookup_by_address);
+ g_task_set_task_data (task, g_steal_pointer (&data), (GDestroyNotify) lookup_data_free);
+
+ run_task_in_thread_pool_async (self, task);
+
g_object_unref (task);
}
@@ -579,6 +764,22 @@ parse_res_srv (const guint8 *answer,
GETSHORT (weight, *p);
GETSHORT (port, *p);
+ /* RFC 2782 says (on page 4) that “Unless and until permitted by future
+ * standards action, name compression is not to be used for this field.”, so
+ * technically we shouldn’t be expanding names here for SRV records.
+ *
+ * However, other DNS resolvers (such as systemd[1]) do, and it seems in
+ * keeping with the principle of being liberal in what you accept and strict
+ * in what you emit. It also seems harmless.
+ *
+ * An earlier version of the RFC, RFC 2052 (now obsolete) specified that name
+ * compression *was* to be used for SRV targets[2].
+ *
+ * See discussion on https://gitlab.gnome.org/GNOME/glib/-/issues/2622.
+ *
+ * [1]: https://github.com/yuwata/systemd/blob/2d23cc3c07c49722ce93170737b3efd2692a2d08/src/resolve/resolved-dns-packet.c#L1674
+ * [2]: https://datatracker.ietf.org/doc/html/rfc2052#page-3
+ */
if (!expand_name ("SRV", answer, end, p, namebuf, sizeof (namebuf), error))
return NULL;
@@ -1050,18 +1251,6 @@ g_resolver_records_from_DnsQuery (const gchar *rrname,
#endif
-typedef struct {
- char *rrname;
- GResolverRecordType record_type;
-} LookupRecordsData;
-
-static void
-free_lookup_records_data (LookupRecordsData *lrd)
-{
- g_free (lrd->rrname);
- g_slice_free (LookupRecordsData, lrd);
-}
-
static void
free_records (GList *records)
{
@@ -1077,15 +1266,13 @@ int res_query(const char *, int, int, u_char *, int);
#endif
#endif
-static void
-do_lookup_records (GTask *task,
- gpointer source_object,
- gpointer task_data,
- GCancellable *cancellable)
+static GList *
+do_lookup_records (const gchar *rrname,
+ GResolverRecordType record_type,
+ GCancellable *cancellable,
+ GError **error)
{
- LookupRecordsData *lrd = task_data;
GList *records;
- GError *error = NULL;
#if defined(G_OS_UNIX)
gint len = 512;
@@ -1109,21 +1296,21 @@ do_lookup_records (GTask *task,
struct __res_state res = { 0, };
if (res_ninit (&res) != 0)
{
- g_task_return_new_error (task, G_RESOLVER_ERROR, G_RESOLVER_ERROR_INTERNAL,
- _("Error resolving “%s”"), lrd->rrname);
- return;
+ g_set_error (error, G_RESOLVER_ERROR, G_RESOLVER_ERROR_INTERNAL,
+ _("Error resolving “%s”"), rrname);
+ return NULL;
}
#endif
- rrtype = g_resolver_record_type_to_rrtype (lrd->record_type);
+ rrtype = g_resolver_record_type_to_rrtype (record_type);
answer = g_byte_array_new ();
for (;;)
{
g_byte_array_set_size (answer, len * 2);
#if defined(HAVE_RES_NQUERY)
- len = res_nquery (&res, lrd->rrname, C_IN, rrtype, answer->data, answer->len);
+ len = res_nquery (&res, rrname, C_IN, rrtype, answer->data, answer->len);
#else
- len = res_query (lrd->rrname, C_IN, rrtype, answer->data, answer->len);
+ len = res_query (rrname, C_IN, rrtype, answer->data, answer->len);
#endif
/* If answer fit in the buffer then we're done */
@@ -1137,7 +1324,7 @@ do_lookup_records (GTask *task,
}
herr = h_errno;
- records = g_resolver_records_from_res_query (lrd->rrname, rrtype, answer->data, len, herr, &error);
+ records = g_resolver_records_from_res_query (rrname, rrtype, answer->data, len, herr, error);
g_byte_array_free (answer, TRUE);
#ifdef HAVE_RES_NQUERY
@@ -1158,18 +1345,15 @@ do_lookup_records (GTask *task,
DNS_RECORD *results = NULL;
WORD dnstype;
- dnstype = g_resolver_record_type_to_dnstype (lrd->record_type);
- status = DnsQuery_A (lrd->rrname, dnstype, DNS_QUERY_STANDARD, NULL, &results, NULL);
- records = g_resolver_records_from_DnsQuery (lrd->rrname, dnstype, status, results, &error);
+ dnstype = g_resolver_record_type_to_dnstype (record_type);
+ status = DnsQuery_A (rrname, dnstype, DNS_QUERY_STANDARD, NULL, &results, NULL);
+ records = g_resolver_records_from_DnsQuery (rrname, dnstype, status, results, error);
if (results != NULL)
DnsRecordListFree (results, DnsFreeRecordList);
#endif
- if (records)
- g_task_return_pointer (task, records, (GDestroyNotify) free_records);
- else
- g_task_return_error (task, error);
+ return g_steal_pointer (&records);
}
static GList *
@@ -1179,21 +1363,20 @@ lookup_records (GResolver *resolver,
GCancellable *cancellable,
GError **error)
{
+ GThreadedResolver *self = G_THREADED_RESOLVER (resolver);
GTask *task;
GList *records;
- LookupRecordsData *lrd;
+ LookupData *data = NULL;
task = g_task_new (resolver, cancellable, NULL, NULL);
g_task_set_source_tag (task, lookup_records);
g_task_set_name (task, "[gio] resolver lookup records");
- lrd = g_slice_new (LookupRecordsData);
- lrd->rrname = g_strdup (rrname);
- lrd->record_type = record_type;
- g_task_set_task_data (task, lrd, (GDestroyNotify) free_lookup_records_data);
+ data = lookup_data_new_records (rrname, record_type);
+ g_task_set_task_data (task, g_steal_pointer (&data), (GDestroyNotify) lookup_data_free);
+
+ run_task_in_thread_pool_sync (self, task);
- g_task_set_return_on_cancel (task, TRUE);
- g_task_run_in_thread_sync (task, do_lookup_records);
records = g_task_propagate_pointer (task, error);
g_object_unref (task);
@@ -1208,20 +1391,19 @@ lookup_records_async (GResolver *resolver,
GAsyncReadyCallback callback,
gpointer user_data)
{
+ GThreadedResolver *self = G_THREADED_RESOLVER (resolver);
GTask *task;
- LookupRecordsData *lrd;
+ LookupData *data = NULL;
task = g_task_new (resolver, cancellable, callback, user_data);
g_task_set_source_tag (task, lookup_records_async);
g_task_set_name (task, "[gio] resolver lookup records");
- lrd = g_slice_new (LookupRecordsData);
- lrd->rrname = g_strdup (rrname);
- lrd->record_type = record_type;
- g_task_set_task_data (task, lrd, (GDestroyNotify) free_lookup_records_data);
+ data = lookup_data_new_records (rrname, record_type);
+ g_task_set_task_data (task, g_steal_pointer (&data), (GDestroyNotify) lookup_data_free);
+
+ run_task_in_thread_pool_async (self, task);
- g_task_set_return_on_cancel (task, TRUE);
- g_task_run_in_thread (task, do_lookup_records);
g_object_unref (task);
}
@@ -1235,12 +1417,238 @@ lookup_records_finish (GResolver *resolver,
return g_task_propagate_pointer (G_TASK (result), error);
}
+/* Will be called in the GLib worker thread, so must lock all accesses to shared
+ * data. */
+static gboolean
+timeout_cb (gpointer user_data)
+{
+ GWeakRef *weak_task = user_data;
+ GTask *task = NULL; /* (owned) */
+ LookupData *data;
+ gboolean should_return;
+
+ task = g_weak_ref_get (weak_task);
+ if (task == NULL)
+ return G_SOURCE_REMOVE;
+
+ data = g_task_get_task_data (task);
+
+ g_mutex_lock (&data->lock);
+
+ should_return = g_atomic_int_compare_and_exchange (&data->will_return, NOT_YET, TIMED_OUT);
+ g_clear_pointer (&data->timeout_source, g_source_unref);
+
+ g_mutex_unlock (&data->lock);
+
+ if (should_return)
+ g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_TIMED_OUT,
+ _("Socket I/O timed out"));
+
+ /* Signal completion of the task. */
+ g_mutex_lock (&data->lock);
+ data->has_returned = TRUE;
+ g_cond_broadcast (&data->cond);
+ g_mutex_unlock (&data->lock);
+
+ g_object_unref (task);
+
+ return G_SOURCE_REMOVE;
+}
+
+/* Will be called in the GLib worker thread, so must lock all accesses to shared
+ * data. */
+static gboolean
+cancelled_cb (GCancellable *cancellable,
+ gpointer user_data)
+{
+ GWeakRef *weak_task = user_data;
+ GTask *task = NULL; /* (owned) */
+ LookupData *data;
+ gboolean should_return;
+
+ task = g_weak_ref_get (weak_task);
+ if (task == NULL)
+ return G_SOURCE_REMOVE;
+
+ data = g_task_get_task_data (task);
+
+ g_mutex_lock (&data->lock);
+
+ g_assert (g_cancellable_is_cancelled (cancellable));
+ should_return = g_atomic_int_compare_and_exchange (&data->will_return, NOT_YET, CANCELLED);
+ g_clear_pointer (&data->cancellable_source, g_source_unref);
+
+ g_mutex_unlock (&data->lock);
+
+ if (should_return)
+ g_task_return_error_if_cancelled (task);
+
+ /* Signal completion of the task. */
+ g_mutex_lock (&data->lock);
+ data->has_returned = TRUE;
+ g_cond_broadcast (&data->cond);
+ g_mutex_unlock (&data->lock);
+
+ g_object_unref (task);
+
+ return G_SOURCE_REMOVE;
+}
+
+static void
+weak_ref_clear_and_free (GWeakRef *weak_ref)
+{
+ g_weak_ref_clear (weak_ref);
+ g_free (weak_ref);
+}
+
+static void
+run_task_in_thread_pool_async (GThreadedResolver *self,
+ GTask *task)
+{
+ LookupData *data = g_task_get_task_data (task);
+ guint timeout_ms = g_resolver_get_timeout (G_RESOLVER (self));
+ GCancellable *cancellable = g_task_get_cancellable (task);
+
+ g_mutex_lock (&data->lock);
+
+ g_thread_pool_push (self->thread_pool, g_object_ref (task), NULL);
+
+ if (timeout_ms != 0)
+ {
+ GWeakRef *weak_task = g_new0 (GWeakRef, 1);
+ g_weak_ref_set (weak_task, task);
+
+ data->timeout_source = g_timeout_source_new (timeout_ms);
+ g_source_set_static_name (data->timeout_source, "[gio] threaded resolver timeout");
+ g_source_set_callback (data->timeout_source, G_SOURCE_FUNC (timeout_cb), g_steal_pointer (&weak_task), (GDestroyNotify) weak_ref_clear_and_free);
+ g_source_attach (data->timeout_source, GLIB_PRIVATE_CALL (g_get_worker_context) ());
+ }
+
+ if (cancellable != NULL)
+ {
+ GWeakRef *weak_task = g_new0 (GWeakRef, 1);
+ g_weak_ref_set (weak_task, task);
+
+ data->cancellable_source = g_cancellable_source_new (cancellable);
+ g_source_set_static_name (data->cancellable_source, "[gio] threaded resolver cancellable");
+ g_source_set_callback (data->cancellable_source, G_SOURCE_FUNC (cancelled_cb), g_steal_pointer (&weak_task), (GDestroyNotify) weak_ref_clear_and_free);
+ g_source_attach (data->cancellable_source, GLIB_PRIVATE_CALL (g_get_worker_context) ());
+ }
+
+ g_mutex_unlock (&data->lock);
+}
+
+static void
+run_task_in_thread_pool_sync (GThreadedResolver *self,
+ GTask *task)
+{
+ LookupData *data = g_task_get_task_data (task);
+
+ run_task_in_thread_pool_async (self, task);
+
+ g_mutex_lock (&data->lock);
+ while (!data->has_returned)
+ g_cond_wait (&data->cond, &data->lock);
+ g_mutex_unlock (&data->lock);
+}
+
+static void
+threaded_resolver_worker_cb (gpointer task_data,
+ gpointer user_data)
+{
+ GTask *task = G_TASK (g_steal_pointer (&task_data));
+ LookupData *data = g_task_get_task_data (task);
+ GCancellable *cancellable = g_task_get_cancellable (task);
+ GError *local_error = NULL;
+ gboolean should_return;
+
+ switch (data->lookup_type) {
+ case LOOKUP_BY_NAME:
+ {
+ GList *addresses = do_lookup_by_name (data->lookup_by_name.hostname,
+ data->lookup_by_name.address_family,
+ cancellable,
+ &local_error);
+
+ g_mutex_lock (&data->lock);
+ should_return = g_atomic_int_compare_and_exchange (&data->will_return, NOT_YET, COMPLETED);
+ g_mutex_unlock (&data->lock);
+
+ if (should_return)
+ {
+ if (addresses != NULL)
+ g_task_return_pointer (task, g_steal_pointer (&addresses), (GDestroyNotify) g_resolver_free_addresses);
+ else
+ g_task_return_error (task, g_steal_pointer (&local_error));
+ }
+
+ g_clear_pointer (&addresses, g_resolver_free_addresses);
+ }
+ break;
+ case LOOKUP_BY_ADDRESS:
+ {
+ gchar *name = do_lookup_by_address (data->lookup_by_address.address,
+ cancellable,
+ &local_error);
+
+ g_mutex_lock (&data->lock);
+ should_return = g_atomic_int_compare_and_exchange (&data->will_return, NOT_YET, COMPLETED);
+ g_mutex_unlock (&data->lock);
+
+ if (should_return)
+ {
+ if (name != NULL)
+ g_task_return_pointer (task, g_steal_pointer (&name), g_free);
+ else
+ g_task_return_error (task, g_steal_pointer (&local_error));
+ }
+
+ g_clear_pointer (&name, g_free);
+ }
+ break;
+ case LOOKUP_RECORDS:
+ {
+ GList *records = do_lookup_records (data->lookup_records.rrname,
+ data->lookup_records.record_type,
+ cancellable,
+ &local_error);
+
+ g_mutex_lock (&data->lock);
+ should_return = g_atomic_int_compare_and_exchange (&data->will_return, NOT_YET, COMPLETED);
+ g_mutex_unlock (&data->lock);
+
+ if (should_return)
+ {
+ if (records != NULL)
+ g_task_return_pointer (task, g_steal_pointer (&records), (GDestroyNotify) free_records);
+ else
+ g_task_return_error (task, g_steal_pointer (&local_error));
+ }
+
+ g_clear_pointer (&records, free_records);
+ }
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+
+ /* Signal completion of a task. */
+ g_mutex_lock (&data->lock);
+ data->has_returned = TRUE;
+ g_cond_broadcast (&data->cond);
+ g_mutex_unlock (&data->lock);
+
+ g_object_unref (task);
+}
static void
g_threaded_resolver_class_init (GThreadedResolverClass *threaded_class)
{
+ GObjectClass *object_class = G_OBJECT_CLASS (threaded_class);
GResolverClass *resolver_class = G_RESOLVER_CLASS (threaded_class);
+ object_class->finalize = g_threaded_resolver_finalize;
+
resolver_class->lookup_by_name = lookup_by_name;
resolver_class->lookup_by_name_async = lookup_by_name_async;
resolver_class->lookup_by_name_finish = lookup_by_name_finish;
diff --git a/gio/gthreadedresolver.h b/gio/gthreadedresolver.h
index c3ca08283..099df5b84 100644
--- a/gio/gthreadedresolver.h
+++ b/gio/gthreadedresolver.h
@@ -21,39 +21,34 @@
#ifndef __G_THREADED_RESOLVER_H__
#define __G_THREADED_RESOLVER_H__
+#include <gio/gio.h>
#include <gio/gresolver.h>
G_BEGIN_DECLS
+/**
+ * GThreadedResolver:
+ *
+ * #GThreadedResolver is an implementation of #GResolver which calls the libc
+ * lookup functions in threads to allow them to run asynchronously.
+ *
+ * Since: 2.20
+ */
#define G_TYPE_THREADED_RESOLVER (g_threaded_resolver_get_type ())
-#define G_THREADED_RESOLVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_THREADED_RESOLVER, GThreadedResolver))
-#define G_THREADED_RESOLVER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_THREADED_RESOLVER, GThreadedResolverClass))
-#define G_IS_THREADED_RESOLVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_THREADED_RESOLVER))
-#define G_IS_THREADED_RESOLVER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_THREADED_RESOLVER))
-#define G_THREADED_RESOLVER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_THREADED_RESOLVER, GThreadedResolverClass))
-
-typedef struct {
- GResolver parent_instance;
-} GThreadedResolver;
-
-typedef struct {
- GResolverClass parent_class;
-
-} GThreadedResolverClass;
-GLIB_AVAILABLE_IN_ALL
-GType g_threaded_resolver_get_type (void) G_GNUC_CONST;
+GIO_AVAILABLE_IN_ALL
+G_DECLARE_FINAL_TYPE (GThreadedResolver, g_threaded_resolver, G, THREADED_RESOLVER, GResolver)
/* Used for a private test API */
#ifdef G_OS_UNIX
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList *g_resolver_records_from_res_query (const gchar *rrname,
gint rrtype,
const guint8 *answer,
gssize len,
gint herr,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint g_resolver_record_type_to_rrtype (GResolverRecordType type);
#endif
diff --git a/gio/gthreadedsocketservice.h b/gio/gthreadedsocketservice.h
index 40ce619aa..48f5a3120 100644
--- a/gio/gthreadedsocketservice.h
+++ b/gio/gthreadedsocketservice.h
@@ -73,9 +73,9 @@ struct _GThreadedSocketService
GThreadedSocketServicePrivate *priv;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_threaded_socket_service_get_type (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketService * g_threaded_socket_service_new (int max_threads);
G_END_DECLS
diff --git a/gio/gtlsbackend.h b/gio/gtlsbackend.h
index 21c931f3d..dc51b230a 100644
--- a/gio/gtlsbackend.h
+++ b/gio/gtlsbackend.h
@@ -79,35 +79,35 @@ struct _GTlsBackendInterface
GType ( *get_dtls_server_connection_type) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tls_backend_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsBackend * g_tls_backend_get_default (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsDatabase * g_tls_backend_get_default_database (GTlsBackend *backend);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
void g_tls_backend_set_default_database (GTlsBackend *backend,
GTlsDatabase *database);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_tls_backend_supports_tls (GTlsBackend *backend);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
gboolean g_tls_backend_supports_dtls (GTlsBackend *backend);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tls_backend_get_certificate_type (GTlsBackend *backend);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tls_backend_get_client_connection_type (GTlsBackend *backend);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tls_backend_get_server_connection_type (GTlsBackend *backend);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tls_backend_get_file_database_type (GTlsBackend *backend);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GType g_tls_backend_get_dtls_client_connection_type (GTlsBackend *backend);
-GLIB_AVAILABLE_IN_2_48
+GIO_AVAILABLE_IN_2_48
GType g_tls_backend_get_dtls_server_connection_type (GTlsBackend *backend);
G_END_DECLS
diff --git a/gio/gtlscertificate.h b/gio/gtlscertificate.h
index 6fd6fdaff..c8d10bff8 100644
--- a/gio/gtlscertificate.h
+++ b/gio/gtlscertificate.h
@@ -58,66 +58,66 @@ struct _GTlsCertificateClass
gpointer padding[8];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tls_certificate_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsCertificate *g_tls_certificate_new_from_pem (const gchar *data,
gssize length,
GError **error);
-GLIB_AVAILABLE_IN_2_72
+GIO_AVAILABLE_IN_2_72
GTlsCertificate *g_tls_certificate_new_from_pkcs12 (const guint8 *data,
gsize length,
const gchar *password,
GError **error);
-GLIB_AVAILABLE_IN_2_72
+GIO_AVAILABLE_IN_2_72
GTlsCertificate *g_tls_certificate_new_from_file_with_password (const gchar *file,
const gchar *password,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsCertificate *g_tls_certificate_new_from_file (const gchar *file,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsCertificate *g_tls_certificate_new_from_files (const gchar *cert_file,
const gchar *key_file,
GError **error);
-GLIB_AVAILABLE_IN_2_68
+GIO_AVAILABLE_IN_2_68
GTlsCertificate *g_tls_certificate_new_from_pkcs11_uris (const gchar *pkcs11_uri,
const gchar *private_key_pkcs11_uri,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList *g_tls_certificate_list_new_from_file (const gchar *file,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsCertificate *g_tls_certificate_get_issuer (GTlsCertificate *cert);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsCertificateFlags g_tls_certificate_verify (GTlsCertificate *cert,
GSocketConnectable *identity,
GTlsCertificate *trusted_ca);
-GLIB_AVAILABLE_IN_2_34
+GIO_AVAILABLE_IN_2_34
gboolean g_tls_certificate_is_same (GTlsCertificate *cert_one,
GTlsCertificate *cert_two);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
GDateTime *g_tls_certificate_get_not_valid_before (GTlsCertificate *cert);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
GDateTime *g_tls_certificate_get_not_valid_after (GTlsCertificate *cert);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
gchar *g_tls_certificate_get_subject_name (GTlsCertificate *cert);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
gchar *g_tls_certificate_get_issuer_name (GTlsCertificate *cert);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
GPtrArray *g_tls_certificate_get_dns_names (GTlsCertificate *cert);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
GPtrArray *g_tls_certificate_get_ip_addresses (GTlsCertificate *cert);
G_END_DECLS
diff --git a/gio/gtlsclientconnection.h b/gio/gtlsclientconnection.h
index e75e0cc5d..32d6274df 100644
--- a/gio/gtlsclientconnection.h
+++ b/gio/gtlsclientconnection.h
@@ -53,33 +53,33 @@ struct _GTlsClientConnectionInterface
GTlsClientConnection *source);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tls_client_connection_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOStream * g_tls_client_connection_new (GIOStream *base_io_stream,
GSocketConnectable *server_identity,
GError **error);
-GLIB_DEPRECATED_IN_2_72
+GIO_DEPRECATED_IN_2_72
GTlsCertificateFlags g_tls_client_connection_get_validation_flags (GTlsClientConnection *conn);
-GLIB_DEPRECATED_IN_2_72
+GIO_DEPRECATED_IN_2_72
void g_tls_client_connection_set_validation_flags (GTlsClientConnection *conn,
GTlsCertificateFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketConnectable *g_tls_client_connection_get_server_identity (GTlsClientConnection *conn);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_client_connection_set_server_identity (GTlsClientConnection *conn,
GSocketConnectable *identity);
-GLIB_DEPRECATED_IN_2_56
+GIO_DEPRECATED_IN_2_56
gboolean g_tls_client_connection_get_use_ssl3 (GTlsClientConnection *conn);
-GLIB_DEPRECATED_IN_2_56
+GIO_DEPRECATED_IN_2_56
void g_tls_client_connection_set_use_ssl3 (GTlsClientConnection *conn,
gboolean use_ssl3);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList * g_tls_client_connection_get_accepted_cas (GTlsClientConnection *conn);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
void g_tls_client_connection_copy_session_state (GTlsClientConnection *conn,
GTlsClientConnection *source);
diff --git a/gio/gtlsconnection.h b/gio/gtlsconnection.h
index ac0ce733c..a266d61bb 100644
--- a/gio/gtlsconnection.h
+++ b/gio/gtlsconnection.h
@@ -96,87 +96,87 @@ G_GNUC_END_IGNORE_DEPRECATIONS
gpointer padding[6];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tls_connection_get_type (void) G_GNUC_CONST;
-GLIB_DEPRECATED
+GIO_DEPRECATED
void g_tls_connection_set_use_system_certdb (GTlsConnection *conn,
gboolean use_system_certdb);
-GLIB_DEPRECATED
+GIO_DEPRECATED
gboolean g_tls_connection_get_use_system_certdb (GTlsConnection *conn);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_connection_set_database (GTlsConnection *conn,
GTlsDatabase *database);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsDatabase * g_tls_connection_get_database (GTlsConnection *conn);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_connection_set_certificate (GTlsConnection *conn,
GTlsCertificate *certificate);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsCertificate *g_tls_connection_get_certificate (GTlsConnection *conn);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_connection_set_interaction (GTlsConnection *conn,
GTlsInteraction *interaction);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsInteraction * g_tls_connection_get_interaction (GTlsConnection *conn);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsCertificate *g_tls_connection_get_peer_certificate (GTlsConnection *conn);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsCertificateFlags g_tls_connection_get_peer_certificate_errors (GTlsConnection *conn);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_connection_set_require_close_notify (GTlsConnection *conn,
gboolean require_close_notify);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_tls_connection_get_require_close_notify (GTlsConnection *conn);
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-GLIB_DEPRECATED_IN_2_60
+GIO_DEPRECATED_IN_2_60
void g_tls_connection_set_rehandshake_mode (GTlsConnection *conn,
GTlsRehandshakeMode mode);
-GLIB_DEPRECATED_IN_2_60
+GIO_DEPRECATED_IN_2_60
GTlsRehandshakeMode g_tls_connection_get_rehandshake_mode (GTlsConnection *conn);
G_GNUC_END_IGNORE_DEPRECATIONS
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
void g_tls_connection_set_advertised_protocols (GTlsConnection *conn,
const gchar * const *protocols);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
const gchar * g_tls_connection_get_negotiated_protocol (GTlsConnection *conn);
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-GLIB_AVAILABLE_IN_2_66
+GIO_AVAILABLE_IN_2_66
gboolean g_tls_connection_get_channel_binding_data (GTlsConnection *conn,
GTlsChannelBindingType type,
GByteArray *data,
GError **error);
G_GNUC_END_IGNORE_DEPRECATIONS
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_tls_connection_handshake (GTlsConnection *conn,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_connection_handshake_async (GTlsConnection *conn,
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_tls_connection_handshake_finish (GTlsConnection *conn,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
GTlsProtocolVersion g_tls_connection_get_protocol_version (GTlsConnection *conn);
-GLIB_AVAILABLE_IN_2_70
+GIO_AVAILABLE_IN_2_70
gchar * g_tls_connection_get_ciphersuite_name (GTlsConnection *conn);
/**
@@ -187,7 +187,7 @@ gchar * g_tls_connection_get_ciphersuite_name (GTlsConnecti
* domains.
*/
#define G_TLS_ERROR (g_tls_error_quark ())
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GQuark g_tls_error_quark (void);
/**
@@ -200,11 +200,11 @@ GQuark g_tls_error_quark (void);
* Since: 2.66
*/
#define G_TLS_CHANNEL_BINDING_ERROR (g_tls_channel_binding_error_quark ())
-GLIB_AVAILABLE_IN_2_66
+GIO_AVAILABLE_IN_2_66
GQuark g_tls_channel_binding_error_quark (void);
/*< protected >*/
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_tls_connection_emit_accept_certificate (GTlsConnection *conn,
GTlsCertificate *peer_cert,
GTlsCertificateFlags errors);
diff --git a/gio/gtlsdatabase.c b/gio/gtlsdatabase.c
index 40d1ab63f..4966aadd0 100644
--- a/gio/gtlsdatabase.c
+++ b/gio/gtlsdatabase.c
@@ -978,7 +978,7 @@ g_tls_database_lookup_certificates_issued_by (GTlsDatabase *self,
* g_tls_database_lookup_certificates_issued_by() for more information.
*
* The database may choose to hold a reference to the issuer byte array for the duration
- * of of this asynchronous operation. The byte array should not be modified during
+ * of this asynchronous operation. The byte array should not be modified during
* this time.
*
* Since: 2.30
diff --git a/gio/gtlsdatabase.h b/gio/gtlsdatabase.h
index 9767eca06..4ae6dc330 100644
--- a/gio/gtlsdatabase.h
+++ b/gio/gtlsdatabase.h
@@ -145,10 +145,10 @@ struct _GTlsDatabaseClass
gpointer padding[16];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tls_database_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsCertificateFlags g_tls_database_verify_chain (GTlsDatabase *self,
GTlsCertificate *chain,
const gchar *purpose,
@@ -158,7 +158,7 @@ GTlsCertificateFlags g_tls_database_verify_chain (GTlsD
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_database_verify_chain_async (GTlsDatabase *self,
GTlsCertificate *chain,
const gchar *purpose,
@@ -169,16 +169,16 @@ void g_tls_database_verify_chain_async (GTlsD
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsCertificateFlags g_tls_database_verify_chain_finish (GTlsDatabase *self,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gchar* g_tls_database_create_certificate_handle (GTlsDatabase *self,
GTlsCertificate *certificate);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsCertificate* g_tls_database_lookup_certificate_for_handle (GTlsDatabase *self,
const gchar *handle,
GTlsInteraction *interaction,
@@ -186,7 +186,7 @@ GTlsCertificate* g_tls_database_lookup_certificate_for_handle (GTlsD
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_database_lookup_certificate_for_handle_async (GTlsDatabase *self,
const gchar *handle,
GTlsInteraction *interaction,
@@ -195,12 +195,12 @@ void g_tls_database_lookup_certificate_for_handle_async (GTlsD
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsCertificate* g_tls_database_lookup_certificate_for_handle_finish (GTlsDatabase *self,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsCertificate* g_tls_database_lookup_certificate_issuer (GTlsDatabase *self,
GTlsCertificate *certificate,
GTlsInteraction *interaction,
@@ -208,7 +208,7 @@ GTlsCertificate* g_tls_database_lookup_certificate_issuer (GTlsD
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_database_lookup_certificate_issuer_async (GTlsDatabase *self,
GTlsCertificate *certificate,
GTlsInteraction *interaction,
@@ -217,12 +217,12 @@ void g_tls_database_lookup_certificate_issuer_async (GTlsD
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsCertificate* g_tls_database_lookup_certificate_issuer_finish (GTlsDatabase *self,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList* g_tls_database_lookup_certificates_issued_by (GTlsDatabase *self,
GByteArray *issuer_raw_dn,
GTlsInteraction *interaction,
@@ -230,7 +230,7 @@ GList* g_tls_database_lookup_certificates_issued_by (GTlsD
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_database_lookup_certificates_issued_by_async (GTlsDatabase *self,
GByteArray *issuer_raw_dn,
GTlsInteraction *interaction,
@@ -239,7 +239,7 @@ void g_tls_database_lookup_certificates_issued_by_async (GTls
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList* g_tls_database_lookup_certificates_issued_by_finish (GTlsDatabase *self,
GAsyncResult *result,
GError **error);
diff --git a/gio/gtlsfiledatabase.h b/gio/gtlsfiledatabase.h
index 1eb3deea7..57db68e4b 100644
--- a/gio/gtlsfiledatabase.h
+++ b/gio/gtlsfiledatabase.h
@@ -48,10 +48,10 @@ struct _GTlsFileDatabaseInterface
gpointer padding[8];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tls_file_database_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsDatabase* g_tls_file_database_new (const gchar *anchors,
GError **error);
diff --git a/gio/gtlsinteraction.h b/gio/gtlsinteraction.h
index 217d8cfd2..68e3662ba 100644
--- a/gio/gtlsinteraction.h
+++ b/gio/gtlsinteraction.h
@@ -91,48 +91,48 @@ struct _GTlsInteractionClass
gpointer padding[21];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tls_interaction_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsInteractionResult g_tls_interaction_invoke_ask_password (GTlsInteraction *interaction,
GTlsPassword *password,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsInteractionResult g_tls_interaction_ask_password (GTlsInteraction *interaction,
GTlsPassword *password,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_interaction_ask_password_async (GTlsInteraction *interaction,
GTlsPassword *password,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsInteractionResult g_tls_interaction_ask_password_finish (GTlsInteraction *interaction,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GTlsInteractionResult g_tls_interaction_invoke_request_certificate (GTlsInteraction *interaction,
GTlsConnection *connection,
GTlsCertificateRequestFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GTlsInteractionResult g_tls_interaction_request_certificate (GTlsInteraction *interaction,
GTlsConnection *connection,
GTlsCertificateRequestFlags flags,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
void g_tls_interaction_request_certificate_async (GTlsInteraction *interaction,
GTlsConnection *connection,
GTlsCertificateRequestFlags flags,
@@ -140,7 +140,7 @@ void g_tls_interaction_request_certificate_async (GTlsInterac
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_40
+GIO_AVAILABLE_IN_2_40
GTlsInteractionResult g_tls_interaction_request_certificate_finish (GTlsInteraction *interaction,
GAsyncResult *result,
GError **error);
diff --git a/gio/gtlspassword.h b/gio/gtlspassword.h
index 3eaad12ff..a33ec731d 100644
--- a/gio/gtlspassword.h
+++ b/gio/gtlspassword.h
@@ -78,41 +78,41 @@ struct _GTlsPasswordClass
gpointer padding[4];
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tls_password_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsPassword * g_tls_password_new (GTlsPasswordFlags flags,
const gchar *description);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const guchar * g_tls_password_get_value (GTlsPassword *password,
gsize *length);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_password_set_value (GTlsPassword *password,
const guchar *value,
gssize length);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_password_set_value_full (GTlsPassword *password,
guchar *value,
gssize length,
GDestroyNotify destroy);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GTlsPasswordFlags g_tls_password_get_flags (GTlsPassword *password);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_password_set_flags (GTlsPassword *password,
GTlsPasswordFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar* g_tls_password_get_description (GTlsPassword *password);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_password_set_description (GTlsPassword *password,
const gchar *description);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar * g_tls_password_get_warning (GTlsPassword *password);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_tls_password_set_warning (GTlsPassword *password,
const gchar *warning);
diff --git a/gio/gtlsserverconnection.h b/gio/gtlsserverconnection.h
index d2c83457a..f84c25b86 100644
--- a/gio/gtlsserverconnection.h
+++ b/gio/gtlsserverconnection.h
@@ -58,10 +58,10 @@ struct _GTlsServerConnectionInterface
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_tls_server_connection_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIOStream * g_tls_server_connection_new (GIOStream *base_io_stream,
GTlsCertificate *certificate,
GError **error);
diff --git a/gio/gunixconnection.c b/gio/gunixconnection.c
index b3f2b1c04..936736638 100644
--- a/gio/gunixconnection.c
+++ b/gio/gunixconnection.c
@@ -177,10 +177,11 @@ g_unix_connection_receive_fd (GUnixConnection *connection,
gint i;
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
- ngettext("Expecting 1 control message, got %d",
- "Expecting 1 control message, got %d",
- nscm),
- nscm);
+ g_dngettext (NULL,
+ "Expecting 1 control message, got %d",
+ "Expecting 1 control message, got %d",
+ nscm),
+ nscm);
for (i = 0; i < nscm; i++)
g_object_unref (scms[i]);
@@ -211,9 +212,10 @@ g_unix_connection_receive_fd (GUnixConnection *connection,
gint i;
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
- ngettext("Expecting one fd, but got %d\n",
- "Expecting one fd, but got %d\n",
- nfd),
+ g_dngettext (NULL,
+ "Expecting one fd, but got %d\n",
+ "Expecting one fd, but got %d\n",
+ nfd),
nfd);
for (i = 0; i < nfd; i++)
@@ -414,8 +416,9 @@ send_credentials_async_thread (GTask *task,
* g_unix_connection_send_credentials_async:
* @connection: A #GUnixConnection.
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously send credentials.
*
@@ -595,9 +598,10 @@ g_unix_connection_receive_credentials (GUnixConnection *connection,
g_set_error (error,
G_IO_ERROR,
G_IO_ERROR_FAILED,
- ngettext("Expecting 1 control message, got %d",
- "Expecting 1 control message, got %d",
- nscm),
+ g_dngettext (NULL,
+ "Expecting 1 control message, got %d",
+ "Expecting 1 control message, got %d",
+ nscm),
nscm);
goto out;
}
@@ -686,8 +690,9 @@ receive_credentials_async_thread (GTask *task,
* g_unix_connection_receive_credentials_async:
* @connection: A #GUnixConnection.
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
* Asynchronously receive credentials.
*
diff --git a/gio/gunixconnection.h b/gio/gunixconnection.h
index d5c41cb8f..e08e8189c 100644
--- a/gio/gunixconnection.h
+++ b/gio/gunixconnection.h
@@ -56,43 +56,43 @@ struct _GUnixConnection
GUnixConnectionPrivate *priv;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_unix_connection_get_type (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_connection_send_fd (GUnixConnection *connection,
gint fd,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint g_unix_connection_receive_fd (GUnixConnection *connection,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_connection_send_credentials (GUnixConnection *connection,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_unix_connection_send_credentials_async (GUnixConnection *connection,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
gboolean g_unix_connection_send_credentials_finish (GUnixConnection *connection,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
GCredentials *g_unix_connection_receive_credentials (GUnixConnection *connection,
GCancellable *cancellable,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
void g_unix_connection_receive_credentials_async (GUnixConnection *connection,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GCredentials *g_unix_connection_receive_credentials_finish (GUnixConnection *connection,
GAsyncResult *result,
GError **error);
diff --git a/gio/gunixcredentialsmessage.h b/gio/gunixcredentialsmessage.h
index ad70f74c3..cd42d254e 100644
--- a/gio/gunixcredentialsmessage.h
+++ b/gio/gunixcredentialsmessage.h
@@ -72,16 +72,16 @@ struct _GUnixCredentialsMessage
GUnixCredentialsMessagePrivate *priv;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_unix_credentials_message_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketControlMessage *g_unix_credentials_message_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketControlMessage *g_unix_credentials_message_new_with_credentials (GCredentials *credentials);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GCredentials *g_unix_credentials_message_get_credentials (GUnixCredentialsMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_credentials_message_is_supported (void);
G_END_DECLS
diff --git a/gio/gunixfdlist.h b/gio/gunixfdlist.h
index 1e625b01a..df5587eea 100644
--- a/gio/gunixfdlist.h
+++ b/gio/gunixfdlist.h
@@ -63,32 +63,32 @@ struct _GUnixFDList
GUnixFDListPrivate *priv;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_unix_fd_list_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GUnixFDList * g_unix_fd_list_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GUnixFDList * g_unix_fd_list_new_from_array (const gint *fds,
gint n_fds);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint g_unix_fd_list_append (GUnixFDList *list,
gint fd,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint g_unix_fd_list_get_length (GUnixFDList *list);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint g_unix_fd_list_get (GUnixFDList *list,
gint index_,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gint * g_unix_fd_list_peek_fds (GUnixFDList *list,
gint *length);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint * g_unix_fd_list_steal_fds (GUnixFDList *list,
gint *length);
diff --git a/gio/gunixfdmessage.h b/gio/gunixfdmessage.h
index 73b0f2ce3..0424b1150 100644
--- a/gio/gunixfdmessage.h
+++ b/gio/gunixfdmessage.h
@@ -63,20 +63,20 @@ struct _GUnixFDMessage
GUnixFDMessagePrivate *priv;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_unix_fd_message_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketControlMessage * g_unix_fd_message_new_with_fd_list (GUnixFDList *fd_list);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketControlMessage * g_unix_fd_message_new (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GUnixFDList * g_unix_fd_message_get_fd_list (GUnixFDMessage *message);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint * g_unix_fd_message_steal_fds (GUnixFDMessage *message,
gint *length);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_fd_message_append_fd (GUnixFDMessage *message,
gint fd,
GError **error);
diff --git a/gio/gunixinputstream.h b/gio/gunixinputstream.h
index 8c0c720fa..78b2cbb9a 100644
--- a/gio/gunixinputstream.h
+++ b/gio/gunixinputstream.h
@@ -66,18 +66,18 @@ struct _GUnixInputStreamClass
void (*_g_reserved5) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_unix_input_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInputStream * g_unix_input_stream_new (gint fd,
gboolean close_fd);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_unix_input_stream_set_close_fd (GUnixInputStream *stream,
gboolean close_fd);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_input_stream_get_close_fd (GUnixInputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint g_unix_input_stream_get_fd (GUnixInputStream *stream);
G_END_DECLS
diff --git a/gio/gunixmounts.c b/gio/gunixmounts.c
index 962b964b9..1cfd25d9e 100644
--- a/gio/gunixmounts.c
+++ b/gio/gunixmounts.c
@@ -46,6 +46,15 @@
#include <gstdio.h>
#include <dirent.h>
+#if defined(__BIONIC__) && (__ANDROID_API__ < 26)
+#include <mntent.h>
+/* the shared object of recent bionic libc's have hasmntopt symbol, but
+ some a possible common build environment for android, termux ends
+ up with inssuficient __ANDROID_API__ value for building.
+*/
+extern char* hasmntopt(const struct mntent* mnt, const char* opt);
+#endif
+
#if HAVE_SYS_STATFS_H
#include <sys/statfs.h>
#endif
@@ -266,10 +275,12 @@ g_unix_is_mount_path_system_internal (const char *mount_path)
"/var",
"/var/crash",
"/var/local",
+ GLIB_LOCALSTATEDIR,
"/var/log",
"/var/log/audit", /* https://bugzilla.redhat.com/show_bug.cgi?id=333041 */
"/var/mail",
"/var/run",
+ GLIB_RUNSTATEDIR,
"/var/tmp", /* https://bugzilla.redhat.com/show_bug.cgi?id=335241 */
"/proc",
"/sbin",
@@ -583,7 +594,7 @@ _g_get_unix_mounts (void)
read_file = get_mtab_read_file ();
- file = setmntent (read_file, "r");
+ file = setmntent (read_file, "re");
if (file == NULL)
return NULL;
@@ -725,7 +736,7 @@ _g_get_unix_mounts (void)
read_file = get_mtab_read_file ();
- file = setmntent (read_file, "r");
+ file = setmntent (read_file, "re");
if (file == NULL)
return NULL;
@@ -1112,7 +1123,7 @@ _g_get_unix_mount_points (void)
read_file = get_fstab_file ();
- file = setmntent (read_file, "r");
+ file = setmntent (read_file, "re");
if (file == NULL)
return NULL;
@@ -1201,7 +1212,7 @@ _g_get_unix_mount_points (void)
read_file = get_fstab_file ();
- file = setmntent (read_file, "r");
+ file = setmntent (read_file, "re");
if (file == NULL)
return NULL;
@@ -1376,7 +1387,7 @@ _g_get_unix_mount_points (void)
read_file = get_fstab_file ();
- file = setmntent (read_file, "r");
+ file = setmntent (read_file, "re");
if (file == NULL)
return NULL;
@@ -3034,7 +3045,7 @@ g_unix_mount_point_guess_can_eject (GUnixMountPoint *mount_point)
/* Utility functions {{{1 */
#ifdef HAVE_MNTENT_H
-/* borrowed from gtk/gtkfilesystemunix.c in GTK+ on 02/23/2006 */
+/* borrowed from gtk/gtkfilesystemunix.c in GTK on 02/23/2006 */
static void
_canonicalize_filename (gchar *filename)
{
@@ -3164,7 +3175,7 @@ _resolve_dev_root (void)
/* see if device with similar major:minor as /dev/root is mention
* in /etc/mtab (it usually is)
*/
- f = fopen ("/etc/mtab", "r");
+ f = fopen ("/etc/mtab", "re");
if (f != NULL)
{
struct mntent *entp;
diff --git a/gio/gunixmounts.h b/gio/gunixmounts.h
index 7fa48235a..11fc5f6d9 100644
--- a/gio/gunixmounts.h
+++ b/gio/gunixmounts.h
@@ -36,7 +36,7 @@ G_BEGIN_DECLS
typedef struct _GUnixMountEntry GUnixMountEntry;
#define G_TYPE_UNIX_MOUNT_ENTRY (g_unix_mount_entry_get_type ())
-GLIB_AVAILABLE_IN_2_54
+GIO_AVAILABLE_IN_2_54
GType g_unix_mount_entry_get_type (void) G_GNUC_CONST;
/**
@@ -48,7 +48,7 @@ GType g_unix_mount_entry_get_type (void) G_GNUC_CONST;
typedef struct _GUnixMountPoint GUnixMountPoint;
#define G_TYPE_UNIX_MOUNT_POINT (g_unix_mount_point_get_type ())
-GLIB_AVAILABLE_IN_2_54
+GIO_AVAILABLE_IN_2_54
GType g_unix_mount_point_get_type (void) G_GNUC_CONST;
/**
@@ -66,105 +66,105 @@ typedef struct _GUnixMountMonitorClass GUnixMountMonitorClass;
#define G_IS_UNIX_MOUNT_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_UNIX_MOUNT_MONITOR))
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixMountMonitor, g_object_unref)
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_unix_mount_free (GUnixMountEntry *mount_entry);
-GLIB_AVAILABLE_IN_2_54
+GIO_AVAILABLE_IN_2_54
GUnixMountEntry *g_unix_mount_copy (GUnixMountEntry *mount_entry);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_unix_mount_point_free (GUnixMountPoint *mount_point);
-GLIB_AVAILABLE_IN_2_54
+GIO_AVAILABLE_IN_2_54
GUnixMountPoint *g_unix_mount_point_copy (GUnixMountPoint *mount_point);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint g_unix_mount_compare (GUnixMountEntry *mount1,
GUnixMountEntry *mount2);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_unix_mount_get_mount_path (GUnixMountEntry *mount_entry);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_unix_mount_get_device_path (GUnixMountEntry *mount_entry);
-GLIB_AVAILABLE_IN_2_60
+GIO_AVAILABLE_IN_2_60
const char * g_unix_mount_get_root_path (GUnixMountEntry *mount_entry);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_unix_mount_get_fs_type (GUnixMountEntry *mount_entry);
-GLIB_AVAILABLE_IN_2_58
+GIO_AVAILABLE_IN_2_58
const char * g_unix_mount_get_options (GUnixMountEntry *mount_entry);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_mount_is_readonly (GUnixMountEntry *mount_entry);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_mount_is_system_internal (GUnixMountEntry *mount_entry);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_mount_guess_can_eject (GUnixMountEntry *mount_entry);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_mount_guess_should_display (GUnixMountEntry *mount_entry);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_unix_mount_guess_name (GUnixMountEntry *mount_entry);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_unix_mount_guess_icon (GUnixMountEntry *mount_entry);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_unix_mount_guess_symbolic_icon (GUnixMountEntry *mount_entry);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixMountEntry, g_unix_mount_free)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixMountPoint, g_unix_mount_point_free)
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint g_unix_mount_point_compare (GUnixMountPoint *mount1,
GUnixMountPoint *mount2);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_unix_mount_point_get_mount_path (GUnixMountPoint *mount_point);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_unix_mount_point_get_device_path (GUnixMountPoint *mount_point);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_unix_mount_point_get_fs_type (GUnixMountPoint *mount_point);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
const char * g_unix_mount_point_get_options (GUnixMountPoint *mount_point);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_mount_point_is_readonly (GUnixMountPoint *mount_point);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_mount_point_is_user_mountable (GUnixMountPoint *mount_point);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_mount_point_is_loopback (GUnixMountPoint *mount_point);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_mount_point_guess_can_eject (GUnixMountPoint *mount_point);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_unix_mount_point_guess_name (GUnixMountPoint *mount_point);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_unix_mount_point_guess_icon (GUnixMountPoint *mount_point);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_unix_mount_point_guess_symbolic_icon (GUnixMountPoint *mount_point);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList * g_unix_mount_points_get (guint64 *time_read);
-GLIB_AVAILABLE_IN_2_66
+GIO_AVAILABLE_IN_2_66
GUnixMountPoint *g_unix_mount_point_at (const char *mount_path,
guint64 *time_read);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList * g_unix_mounts_get (guint64 *time_read);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GUnixMountEntry *g_unix_mount_at (const char *mount_path,
guint64 *time_read);
-GLIB_AVAILABLE_IN_2_52
+GIO_AVAILABLE_IN_2_52
GUnixMountEntry *g_unix_mount_for (const char *file_path,
guint64 *time_read);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_mounts_changed_since (guint64 time);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_mount_points_changed_since (guint64 time);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_unix_mount_monitor_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_44
+GIO_AVAILABLE_IN_2_44
GUnixMountMonitor *g_unix_mount_monitor_get (void);
-GLIB_DEPRECATED_IN_2_44_FOR(g_unix_mount_monitor_get)
+GIO_DEPRECATED_IN_2_44_FOR(g_unix_mount_monitor_get)
GUnixMountMonitor *g_unix_mount_monitor_new (void);
-GLIB_DEPRECATED_IN_2_44
+GIO_DEPRECATED_IN_2_44
void g_unix_mount_monitor_set_rate_limit (GUnixMountMonitor *mount_monitor,
int limit_msec);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_is_mount_path_system_internal (const char *mount_path);
-GLIB_AVAILABLE_IN_2_56
+GIO_AVAILABLE_IN_2_56
gboolean g_unix_is_system_fs_type (const char *fs_type);
-GLIB_AVAILABLE_IN_2_56
+GIO_AVAILABLE_IN_2_56
gboolean g_unix_is_system_device_path (const char *device_path);
G_END_DECLS
diff --git a/gio/gunixoutputstream.h b/gio/gunixoutputstream.h
index 1a7ee08dd..37aa22584 100644
--- a/gio/gunixoutputstream.h
+++ b/gio/gunixoutputstream.h
@@ -66,18 +66,18 @@ struct _GUnixOutputStreamClass
void (*_g_reserved5) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_unix_output_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GOutputStream * g_unix_output_stream_new (gint fd,
gboolean close_fd);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_unix_output_stream_set_close_fd (GUnixOutputStream *stream,
gboolean close_fd);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_output_stream_get_close_fd (GUnixOutputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gint g_unix_output_stream_get_fd (GUnixOutputStream *stream);
G_END_DECLS
diff --git a/gio/gunixsocketaddress.h b/gio/gunixsocketaddress.h
index 1a24e57bd..705674b0f 100644
--- a/gio/gunixsocketaddress.h
+++ b/gio/gunixsocketaddress.h
@@ -54,28 +54,28 @@ struct _GUnixSocketAddressClass
GSocketAddressClass parent_class;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_unix_socket_address_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketAddress *g_unix_socket_address_new (const gchar *path);
-GLIB_DEPRECATED_FOR(g_unix_socket_address_new_with_type)
+GIO_DEPRECATED_FOR(g_unix_socket_address_new_with_type)
GSocketAddress *g_unix_socket_address_new_abstract (const gchar *path,
gint path_len);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GSocketAddress *g_unix_socket_address_new_with_type (const gchar *path,
gint path_len,
GUnixSocketAddressType type);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const char * g_unix_socket_address_get_path (GUnixSocketAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gsize g_unix_socket_address_get_path_len (GUnixSocketAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GUnixSocketAddressType g_unix_socket_address_get_address_type (GUnixSocketAddress *address);
-GLIB_DEPRECATED
+GIO_DEPRECATED
gboolean g_unix_socket_address_get_is_abstract (GUnixSocketAddress *address);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_unix_socket_address_abstract_names_supported (void);
G_END_DECLS
diff --git a/gio/gvfs.h b/gio/gvfs.h
index a1eb51fb2..cbe9792a2 100644
--- a/gio/gvfs.h
+++ b/gio/gvfs.h
@@ -128,30 +128,30 @@ struct _GVfsClass
void (*_g_reserved6) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_vfs_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_vfs_is_active (GVfs *vfs);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_vfs_get_file_for_path (GVfs *vfs,
const char *path);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_vfs_get_file_for_uri (GVfs *vfs,
const char *uri);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
const gchar* const * g_vfs_get_supported_uri_schemes (GVfs *vfs);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_vfs_parse_name (GVfs *vfs,
const char *parse_name);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVfs * g_vfs_get_default (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVfs * g_vfs_get_local (void);
-GLIB_AVAILABLE_IN_2_50
+GIO_AVAILABLE_IN_2_50
gboolean g_vfs_register_uri_scheme (GVfs *vfs,
const char *scheme,
GVfsFileLookupFunc uri_func,
@@ -160,7 +160,7 @@ gboolean g_vfs_register_uri_scheme (GVfs *vfs,
GVfsFileLookupFunc parse_name_func,
gpointer parse_name_data,
GDestroyNotify parse_name_destroy);
-GLIB_AVAILABLE_IN_2_50
+GIO_AVAILABLE_IN_2_50
gboolean g_vfs_unregister_uri_scheme (GVfs *vfs,
const char *scheme);
diff --git a/gio/gvolume.h b/gio/gvolume.h
index 5c71cdb40..2d6e14eff 100644
--- a/gio/gvolume.h
+++ b/gio/gvolume.h
@@ -39,7 +39,7 @@ G_BEGIN_DECLS
*
* Deprecated: 2.58: Do not use, HAL is deprecated.
*/
-#define G_VOLUME_IDENTIFIER_KIND_HAL_UDI "hal-udi" GLIB_DEPRECATED_MACRO_IN_2_58
+#define G_VOLUME_IDENTIFIER_KIND_HAL_UDI "hal-udi" GIO_DEPRECATED_MACRO_IN_2_58
/**
* G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE:
@@ -183,71 +183,71 @@ struct _GVolumeIface
GIcon * (* get_symbolic_icon) (GVolume *volume);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_volume_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_volume_get_name (GVolume *volume);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_volume_get_icon (GVolume *volume);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GIcon * g_volume_get_symbolic_icon (GVolume *volume);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_volume_get_uuid (GVolume *volume);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GDrive * g_volume_get_drive (GVolume *volume);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GMount * g_volume_get_mount (GVolume *volume);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_volume_can_mount (GVolume *volume);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_volume_can_eject (GVolume *volume);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_volume_should_automount (GVolume *volume);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_volume_mount (GVolume *volume,
GMountMountFlags flags,
GMountOperation *mount_operation,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_volume_mount_finish (GVolume *volume,
GAsyncResult *result,
GError **error);
-GLIB_DEPRECATED_FOR(g_volume_eject_with_operation)
+GIO_DEPRECATED_FOR(g_volume_eject_with_operation)
void g_volume_eject (GVolume *volume,
GMountUnmountFlags flags,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_DEPRECATED_FOR(g_volume_eject_with_operation_finish)
+GIO_DEPRECATED_FOR(g_volume_eject_with_operation_finish)
gboolean g_volume_eject_finish (GVolume *volume,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char * g_volume_get_identifier (GVolume *volume,
const char *kind);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
char ** g_volume_enumerate_identifiers (GVolume *volume);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFile * g_volume_get_activation_root (GVolume *volume);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_volume_eject_with_operation (GVolume *volume,
GMountUnmountFlags flags,
GMountOperation *mount_operation,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_volume_eject_with_operation_finish (GVolume *volume,
GAsyncResult *result,
GError **error);
-GLIB_AVAILABLE_IN_2_32
+GIO_AVAILABLE_IN_2_32
const gchar *g_volume_get_sort_key (GVolume *volume);
G_END_DECLS
diff --git a/gio/gvolumemonitor.h b/gio/gvolumemonitor.h
index 88294da72..11bd3319b 100644
--- a/gio/gvolumemonitor.h
+++ b/gio/gvolumemonitor.h
@@ -130,25 +130,25 @@ struct _GVolumeMonitorClass
void (*_g_reserved6) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_volume_monitor_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVolumeMonitor *g_volume_monitor_get (void);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList * g_volume_monitor_get_connected_drives (GVolumeMonitor *volume_monitor);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList * g_volume_monitor_get_volumes (GVolumeMonitor *volume_monitor);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GList * g_volume_monitor_get_mounts (GVolumeMonitor *volume_monitor);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GVolume * g_volume_monitor_get_volume_for_uuid (GVolumeMonitor *volume_monitor,
const char *uuid);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GMount * g_volume_monitor_get_mount_for_uuid (GVolumeMonitor *volume_monitor,
const char *uuid);
-GLIB_DEPRECATED
+GIO_DEPRECATED
GVolume * g_volume_monitor_adopt_orphan_mount (GMount *mount);
G_END_DECLS
diff --git a/gio/gwin32api-package.h b/gio/gwin32api-package.h
index acc86c148..3a0ecf5a6 100755
--- a/gio/gwin32api-package.h
+++ b/gio/gwin32api-package.h
@@ -4,15 +4,42 @@
*
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to https://github.com/kinke/mingw-w64-crt/blob/master/DISCLAIMER.PD.
+ *
+ * Additional code derived from the windows-rs repository on GitHub
+ * (https://github.com/microsoft/windows-rs) with the MIT license:
+ *
+ * MIT License
+ *
+ * Copyright (c) Microsoft Corporation.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE
*/
typedef interface IPackageManager IPackageManager;
typedef interface IPackage IPackage;
typedef interface IPackageId IPackageId;
typedef interface IPackageVersion IPackageVersion;
+typedef interface IPackage2 IPackage2;
DEFINE_GUID(IID_IPackageManager, 0x9A7D4B65, 0x5E8F, 0x4FC7, 0xA2, 0xE5, 0x7F, 0x69, 0x25, 0xCB, 0x8B, 0x53);
DEFINE_GUID(IID_IPackage, 0x163C792F, 0xBD75, 0x413C, 0xBF, 0x23, 0xB1, 0xFE, 0x7B, 0x95, 0xD8, 0x25);
+DEFINE_GUID(IID_IPackage2, 0xA6612fb6, 0x7688, 0x4ACE, 0x95, 0xFB, 0x35, 0x95, 0x38, 0xE7, 0xAA, 0x01);
/* IPackageManager */
typedef struct IPackageManagerVtbl {
@@ -270,3 +297,86 @@ interface IPackage {
#define IPackage_get_InstalledLocation(This,value) (This)->lpVtbl->get_InstalledLocation(This,value)
#define IPackage_get_IsFramework(This,value) (This)->lpVtbl->get_IsFramework(This,value)
#define IPackage_get_Dependencies(This,value) (This)->lpVtbl->get_Dependencies(This,value)
+
+/* IPackage2 */
+typedef struct IPackage2Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IPackage2 *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IPackage2 *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IPackage2 *This);
+
+ /*** IInspectable methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetIids)(
+ IPackage2 *This,
+ UINT32 *count,
+ IID **ids);
+
+ HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+ IPackage2 *This,
+ HSTRING *className);
+
+ HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+ IPackage2 *This,
+ TrustLevel *trustLevel);
+
+ /*** IPackage2 methods ***/
+ HRESULT (STDMETHODCALLTYPE *get_DisplayName)(
+ IPackage2 *This,
+ HSTRING *value);
+
+ HRESULT (STDMETHODCALLTYPE *get_PublisherDisplayName)(
+ IPackage2 *This,
+ HSTRING *value);
+
+ HRESULT (STDMETHODCALLTYPE *get_Description)(
+ IPackage2 *This,
+ HSTRING *value);
+
+ HRESULT (STDMETHODCALLTYPE *get_Logo)(
+ IPackage2 *This,
+ void **value);
+
+ HRESULT (STDMETHODCALLTYPE *get_IsResourcePackage)(
+ IPackage2 *This,
+ UCHAR *value);
+
+ HRESULT (STDMETHODCALLTYPE *get_IsBundle)(
+ IPackage2 *This,
+ UCHAR *value);
+
+ HRESULT (STDMETHODCALLTYPE *get_IsDevelopmentMode)(
+ IPackage2 *This,
+ UCHAR *value);
+
+ END_INTERFACE
+} IPackage2Vtbl;
+
+interface IPackage2 {
+ CONST_VTBL IPackage2Vtbl* lpVtbl;
+};
+
+/*** IUnknown methods ***/
+#define IPackage2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IPackage2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IPackage2_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define IPackage2_GetIids(This,count,ids) (This)->lpVtbl->GetIids(This,count,ids)
+#define IPackage2_GetRuntimeClassName(This,name) (This)->lpVtbl->GetRuntimeClassName(This,name)
+#define IPackage2_GetTrustLevel(This,level) (This)->lpVtbl->GetTrustLevel(This,level)
+/*** IPackage2 methods ***/
+#define IPackage2_get_DisplayName(This,value) (This)->lpVtbl->get_DisplayName(This,value)
+#define IPackage2_get_PublisherDisplayName(This,value) (This)->lpVtbl->get_PublisherDisplayName(This,value)
+#define IPackage2_get_Description(This,value) (This)->lpVtbl->get_Description(This,value)
+#define IPackage2_get_Logo(This,value) (This)->lpVtbl->get_Logo(This,value)
+#define IPackage2_get_IsResourcePackage(This,value) (This)->lpVtbl->get_IsResourcePackage(This,value)
+#define IPackage2_get_IsBundle(This,value) (This)->lpVtbl->get_IsBundle(This,value)
+#define IPackage2_get_IsDevelopmentMode(This,value) (This)->lpVtbl->get_IsDevelopmentMode(This,value)
diff --git a/gio/gwin32appinfo.c b/gio/gwin32appinfo.c
index 6ff259f7d..49e76ca9a 100644
--- a/gio/gwin32appinfo.c
+++ b/gio/gwin32appinfo.c
@@ -858,7 +858,7 @@ build_registry_pathv (gunichar2 *output, gsize output_size, va_list components)
if (output == NULL)
return FALSE;
- G_VA_COPY (lentest, components);
+ va_copy (lentest, components);
for (length = 0, component = va_arg (lentest, gunichar2 *);
component != NULL;
@@ -3100,6 +3100,9 @@ link_handlers_to_unregistered_apps (void)
if (handler_verb->app != NULL)
continue;
+ if (handler_verb->executable_folded == NULL)
+ continue;
+
handler_exe_basename = g_utf8_find_basename (handler_verb->executable_folded, -1);
g_hash_table_iter_init (&app_iter, apps_by_id);
@@ -3119,6 +3122,9 @@ link_handlers_to_unregistered_apps (void)
const gchar *app_exe_basename;
app_verb = _verb_idx (app->verbs, ai);
+ if (app_verb->executable_folded == NULL)
+ continue;
+
app_exe_basename = g_utf8_find_basename (app_verb->executable_folded, -1);
/* First check that the executable paths are identical */
@@ -3356,6 +3362,7 @@ static gboolean
uwp_package_cb (gpointer user_data,
const gunichar2 *full_package_name,
const gunichar2 *package_name,
+ const gunichar2 *display_name,
const gunichar2 *app_user_model_id,
gboolean show_in_applist,
GPtrArray *supported_extgroups,
@@ -3384,6 +3391,13 @@ uwp_package_cb (gpointer user_data,
FALSE,
TRUE);
+ if (!app->pretty_name && !app->pretty_name_u8 && display_name)
+ {
+ char *display_name_u8 = g_utf16_to_utf8 (display_name, -1, NULL, NULL, NULL);
+ app->pretty_name = g_wcsdup (display_name, -1);
+ app->pretty_name_u8 = g_steal_pointer (&display_name_u8);
+ }
+
extensions_considered = 0;
for (i = 0; i < supported_extgroups->len; i++)
@@ -4334,10 +4348,25 @@ expand_macro_single (char macro, file_or_uri *obj)
case '8':
case '9':
/* TODO: handle 'l' and 'd' differently (longname and desktop name) */
- if (obj->uri)
- result = g_strdup (obj->uri);
- else if (obj->file)
- result = g_strdup (obj->file);
+ if (obj->file)
+ {
+ result = g_strdup (obj->file);
+ }
+ else if (obj->uri)
+ {
+ const char *prefix = "file:///";
+ const size_t prefix_len = strlen (prefix);
+
+ if (g_str_has_prefix (obj->uri, prefix) && obj->uri[prefix_len] != 0)
+ {
+ GFile *file = g_file_new_for_uri (obj->uri);
+ result = g_file_get_path (file);
+ g_object_unref (file);
+ }
+
+ if (!result)
+ result = g_strdup (obj->uri);
+ }
break;
case 'u':
case 'U':
@@ -4865,21 +4894,161 @@ emit_launch_failed (GAppLaunchContext *context,
}
}
+typedef enum
+{
+ /* PLAIN: just open the application, without arguments of any kind
+ * corresponds to: LaunchActivatedEventArgs */
+ UWP_ACTIVATION_TYPE_PLAIN,
+
+ /* FILE: open the applications passing a set of files
+ * corresponds to: FileActivatedEventArgs */
+ UWP_ACTIVATION_TYPE_FILE,
+
+ /* PROTOCOL: open the application passing a URI which describe an
+ app activity
+ * corresponds to: ProtocolActivatedEventArgs */
+ UWP_ACTIVATION_TYPE_PROTOCOL,
+} UwpActivationType;
+
+static gboolean
+g_win32_app_info_launch_uwp_single (IApplicationActivationManager *app_activation_manager,
+ UwpActivationType activation_type,
+ IShellItemArray *items,
+ const wchar_t *verb,
+ GWin32AppInfo *info,
+ GAppLaunchContext *launch_context,
+ GTask *from_task,
+ GError **error)
+{
+ const wchar_t *canonical_name = (const wchar_t *) info->app->canonical_name;
+ DWORD process_id = 0;
+ HRESULT hr = S_OK;
+
+ emit_launch_started (launch_context, info, from_task);
+
+ /* The Activate methods return a process identifier (PID), so we should consider
+ * those methods as potentially blocking */
+
+ switch (activation_type)
+ {
+ case UWP_ACTIVATION_TYPE_PLAIN:
+ g_assert (items == NULL);
+
+ hr = IApplicationActivationManager_ActivateApplication (app_activation_manager,
+ canonical_name,
+ NULL, AO_NONE,
+ &process_id);
+ break;
+ case UWP_ACTIVATION_TYPE_PROTOCOL:
+ g_assert (items != NULL);
+
+ hr = IApplicationActivationManager_ActivateForProtocol (app_activation_manager,
+ canonical_name,
+ items,
+ &process_id);
+ break;
+ case UWP_ACTIVATION_TYPE_FILE:
+ g_assert (items != NULL);
+
+ hr = IApplicationActivationManager_ActivateForFile (app_activation_manager,
+ canonical_name,
+ items, verb,
+ &process_id);
+ break;
+ }
+
+ if (FAILED (hr))
+ {
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ "The app %s failed to launch: 0x%lx",
+ g_win32_appinfo_application_get_some_name (info->app), hr);
+
+ emit_launch_failed (launch_context, info, from_task);
+
+ return FALSE;
+ }
+
+ if (launch_context)
+ {
+ DWORD access_rights = 0;
+ HANDLE process_handle = NULL;
+
+ /* Unfortunately, there's a race condition here.
+ * ApplicationActivationManager methods return a process ID, but it
+ * keeps no open HANDLE to the spawned process internally (tested
+ * on Windows 10 21H2). So we cannot guarantee that by the time
+ * OpenProcess is called, process ID still referes to the spawned
+ * process. Anyway hitting such case is extremely unlikely.
+ *
+ * https://docs.microsoft.com/en-us/answers/questions/942879/
+ * iapplicationactivationmanager-race-condition.html
+ *
+ * Maybe we could make use of the WinRT APIs to activate UWP apps,
+ * instead? */
+
+ /* As documented on MSDN, the handle returned by CreateProcess has
+ * PROCESS_ALL_ACCESS rights. First try passing PROCESS_ALL_ACCESS
+ * to have the same access rights as the non-UWP code-path; should
+ * that fail with ERROR_ACCESS_DENIED error code, retry using safe
+ * access rights */
+ access_rights = PROCESS_ALL_ACCESS;
+
+ process_handle = OpenProcess (access_rights, FALSE, process_id);
+
+ if (!process_handle && GetLastError () == ERROR_ACCESS_DENIED)
+ {
+ DWORD access_rights = PROCESS_QUERY_LIMITED_INFORMATION |
+ SYNCHRONIZE;
+
+ process_handle = OpenProcess (access_rights, FALSE, process_id);
+ }
+
+ if (!process_handle)
+ {
+ g_warning ("OpenProcess failed with error code %" G_GUINT32_FORMAT,
+ (guint32) GetLastError ());
+ }
+
+ /* Emit the launched signal regardless if we have the process
+ * HANDLE or NULL */
+ emit_launched (launch_context, info, (GPid*) &process_handle, from_task);
+
+ g_spawn_close_pid ((GPid) process_handle);
+ }
+
+ return TRUE;
+}
+
+static gboolean
+g_win32_app_info_supports_files (GAppInfo *appinfo);
+
+static IShellItemArray *
+make_item_array (gboolean for_files,
+ GList *objs,
+ GError **error);
+
+static inline GList
+make_single_entry_list (gpointer data)
+{
+ GList l = { NULL, NULL, NULL };
+ l.data = data;
+
+ return l;
+}
+
static gboolean
g_win32_app_info_launch_uwp_internal (GWin32AppInfo *info,
gboolean for_files,
- IShellItemArray *items,
+ GList *objs, /* (element-type file_or_uri) */
GWin32AppInfoShellVerb *shverb,
GAppLaunchContext *launch_context,
GTask *from_task,
GError **error)
{
- IApplicationActivationManager* paam = NULL;
+ IApplicationActivationManager *paam = NULL;
gboolean com_initialized = FALSE;
gboolean result = FALSE;
- DWORD process_id = 0;
HRESULT hr;
- const wchar_t *app_canonical_name = (const wchar_t *) info->app->canonical_name;
/* ApplicationActivationManager threading model is both,
* prefer the multithreaded apartment type, as we don't
@@ -4921,86 +5090,77 @@ g_win32_app_info_launch_uwp_internal (GWin32AppInfo *info,
goto cleanup;
}
- emit_launch_started (launch_context, info, from_task);
-
- /* The Activate methods return a process identifier (PID), so we should consider
- * those methods as potentially blocking */
- if (items == NULL)
- hr = IApplicationActivationManager_ActivateApplication (paam,
- app_canonical_name,
- NULL, AO_NONE,
- &process_id);
+ if (!objs)
+ {
+ result = g_win32_app_info_launch_uwp_single (paam, UWP_ACTIVATION_TYPE_PLAIN, NULL, NULL,
+ info, launch_context, from_task, error);
+ }
else if (for_files)
- hr = IApplicationActivationManager_ActivateForFile (paam,
- app_canonical_name,
- items, shverb->verb_name,
- &process_id);
- else
- hr = IApplicationActivationManager_ActivateForProtocol (paam,
- app_canonical_name,
- items,
- &process_id);
-
- if (FAILED (hr))
{
- g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
- "The app %s failed to launch: 0x%lx",
- g_win32_appinfo_application_get_some_name (info->app), hr);
+ IShellItemArray *items = make_item_array (TRUE, objs, error);
- emit_launch_failed (launch_context, info, from_task);
+ if (!items)
+ goto cleanup;
- goto cleanup;
+ result = g_win32_app_info_launch_uwp_single (paam, UWP_ACTIVATION_TYPE_FILE, items,
+ shverb->verb_name,
+ info, launch_context, from_task, error);
+
+ IShellItemArray_Release (items);
}
- else if (launch_context)
+ else
{
- DWORD access_rights = 0;
- HANDLE process_handle = NULL;
+ gboolean supports_files;
+ gboolean supports_file_uris;
+ gboolean outcome = TRUE;
+ GList *l;
- /* Unfortunately, there's a race condition here.
- * ApplicationActivationManager methods return a process ID, but it
- * keeps no open HANDLE to the spawned process internally (tested
- * on Windows 10 21H2). So we cannot guarantee that by the time
- * OpenProcess is called, process ID still referes to the spawned
- * process. Anyway hitting such case is extremely unlikely.
- *
- * https://docs.microsoft.com/en-us/answers/questions/942879/
- * iapplicationactivationmanager-race-condition.html
- *
- * Maybe we could make use of the WinRT APIs to activate UWP apps,
- * instead? */
+ supports_files = g_win32_app_info_supports_files (G_APP_INFO (info));
+ supports_file_uris = info->app &&
+ info->app->supported_urls &&
+ g_hash_table_lookup (info->app->supported_urls, "file");
- /* As documented on MSDN, the handle returned by CreateProcess has
- * PROCESS_ALL_ACCESS rights. First try passing PROCESS_ALL_ACCESS
- * to have the same access rights as the non-UWP code-path; should
- * that fail with ERROR_ACCESS_DENIED error code, retry using safe
- * access rights */
- access_rights = PROCESS_ALL_ACCESS;
-
- process_handle = OpenProcess (access_rights, FALSE, process_id);
-
- if (!process_handle && GetLastError () == ERROR_ACCESS_DENIED)
+ for (l = objs; l != NULL; l = l->next)
{
- DWORD access_rights = PROCESS_QUERY_LIMITED_INFORMATION |
- SYNCHRONIZE;
+ file_or_uri *obj = (file_or_uri*) l->data;
+ GList single = make_single_entry_list (obj);
+ IShellItemArray *item = NULL;
+ UwpActivationType type;
+
+ /* Most UWP applications support opening files but do not support
+ * the file:// protocol in URI's. That's because the UWP platform
+ * has a specific activation for files (see FileActivatedEventArgs)
+ * which is different from protocol activation. Here we check for
+ * that. */
+
+ if (!supports_file_uris && supports_files && obj->file)
+ {
+ type = UWP_ACTIVATION_TYPE_FILE;
+ item = make_item_array (TRUE, &single, error);
+ }
+ else
+ {
+ type = UWP_ACTIVATION_TYPE_PROTOCOL;
+ item = make_item_array (FALSE, &single, error);
+ }
- process_handle = OpenProcess (access_rights, FALSE, process_id);
- }
+ if (!item)
+ {
+ outcome = FALSE;
+ continue;
+ }
- if (!process_handle)
- {
- g_warning ("OpenProcess failed with error code %" G_GUINT32_FORMAT,
- (guint32) GetLastError ());
- }
+ if (!g_win32_app_info_launch_uwp_single (paam, type,
+ item, shverb->verb_name, info,
+ launch_context, from_task, error))
+ outcome = FALSE;
- /* Emit the launched signal regardless if we have the process
- * HANDLE or NULL */
- emit_launched (launch_context, info, (GPid*) &process_handle, from_task);
+ IShellItemArray_Release (item);
+ }
- g_spawn_close_pid ((GPid) process_handle);
+ result = outcome;
}
- result = TRUE;
-
cleanup:
if (paam)
@@ -5021,9 +5181,8 @@ cleanup:
static gboolean
g_win32_app_info_launch_internal (GWin32AppInfo *info,
- GList *objs, /* non-UWP only */
+ GList *objs, /* (element-type file_or_uri) */
gboolean for_files, /* UWP only */
- IShellItemArray *items, /* UWP only */
GAppLaunchContext *launch_context,
GSpawnFlags spawn_flags,
GTask *from_task,
@@ -5068,7 +5227,7 @@ g_win32_app_info_launch_internal (GWin32AppInfo *info,
if (info->app->is_uwp)
return g_win32_app_info_launch_uwp_internal (info,
for_files,
- items,
+ objs,
shverb,
launch_context,
from_task,
@@ -5228,7 +5387,7 @@ g_win32_app_info_supports_files (GAppInfo *appinfo)
static IShellItemArray *
make_item_array (gboolean for_files,
- GList *files_or_uris,
+ GList *objs, /* (element-type file_or_uri) */
GError **error)
{
ITEMIDLIST **item_ids;
@@ -5238,19 +5397,20 @@ make_item_array (gboolean for_files,
gsize i;
HRESULT hr;
- count = g_list_length (files_or_uris);
+ count = g_list_length (objs);
items = NULL;
item_ids = g_new (ITEMIDLIST*, count);
- for (i = 0, p = files_or_uris; p != NULL; p = p->next, i++)
+ for (i = 0, p = objs; p != NULL; p = p->next, i++)
{
+ file_or_uri *obj = (file_or_uri*) p->data;
wchar_t *file_or_uri_utf16;
if (!for_files)
- file_or_uri_utf16 = g_utf8_to_utf16 ((gchar *) p->data, -1, NULL, NULL, error);
+ file_or_uri_utf16 = g_utf8_to_utf16 (obj->uri, -1, NULL, NULL, error);
else
- file_or_uri_utf16 = g_utf8_to_utf16 (g_file_peek_path (G_FILE (p->data)), -1, NULL, NULL, error);
+ file_or_uri_utf16 = g_utf8_to_utf16 (obj->file, -1, NULL, NULL, error);
if (file_or_uri_utf16 == NULL)
break;
@@ -5283,14 +5443,18 @@ make_item_array (gboolean for_files,
}
hr = SHParseDisplayName (file_or_uri_utf16, NULL, &item_ids[i], 0, NULL);
- g_free (file_or_uri_utf16);
if (FAILED (hr))
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
- "File or URI `%S' cannot be parsed by SHParseDisplayName: 0x%lx", file_or_uri_utf16, hr);
+ "File or URI `%S' cannot be parsed by SHParseDisplayName: 0x%lx",
+ file_or_uri_utf16, hr);
+
+ g_free (file_or_uri_utf16);
break;
}
+
+ g_free (file_or_uri_utf16);
}
if (i == count)
@@ -5317,38 +5481,19 @@ make_item_array (gboolean for_files,
static gboolean
g_win32_app_info_launch_uris_impl (GAppInfo *appinfo,
- GList *uris,
+ GList *uris, /* (element-type utf8) */
GAppLaunchContext *launch_context,
GTask *from_task,
GError **error)
{
gboolean res = FALSE;
gboolean do_files;
- GList *objs;
+ GList *objs = NULL;
GWin32AppInfo *info = G_WIN32_APP_INFO (appinfo);
-
- if (info->app != NULL && info->app->is_uwp)
- {
- IShellItemArray *items = NULL;
-
- if (uris)
- {
- items = make_item_array (FALSE, uris, error);
- if (items == NULL)
- return res;
- }
-
- res = g_win32_app_info_launch_internal (info, NULL, FALSE, items, launch_context, 0, from_task, error);
-
- if (items != NULL)
- IShellItemArray_Release (items);
-
- return res;
- }
+ gboolean is_uwp;
do_files = g_win32_app_info_supports_files (appinfo);
- objs = NULL;
while (uris)
{
file_or_uri *obj;
@@ -5370,14 +5515,16 @@ g_win32_app_info_launch_uris_impl (GAppInfo *appinfo,
objs = g_list_prepend (objs, obj);
uris = uris->next;
}
-
objs = g_list_reverse (objs);
+ is_uwp = (info->app != NULL && info->app->is_uwp);
+
res = g_win32_app_info_launch_internal (info,
objs,
FALSE,
- NULL,
launch_context,
+ is_uwp ?
+ 0 :
G_SPAWN_SEARCH_PATH,
from_task,
error);
@@ -5472,37 +5619,18 @@ g_win32_app_info_should_show (GAppInfo *appinfo)
static gboolean
g_win32_app_info_launch (GAppInfo *appinfo,
- GList *files,
+ GList *files, /* (element-type GFile) */
GAppLaunchContext *launch_context,
GError **error)
{
gboolean res = FALSE;
gboolean do_uris;
- GList *objs;
+ GList *objs = NULL;
GWin32AppInfo *info = G_WIN32_APP_INFO (appinfo);
-
- if (info->app != NULL && info->app->is_uwp)
- {
- IShellItemArray *items = NULL;
-
- if (files)
- {
- items = make_item_array (TRUE, files, error);
- if (items == NULL)
- return res;
- }
-
- res = g_win32_app_info_launch_internal (info, NULL, TRUE, items, launch_context, 0, NULL, error);
-
- if (items != NULL)
- IShellItemArray_Release (items);
-
- return res;
- }
+ gboolean is_uwp;
do_uris = g_win32_app_info_supports_uris (appinfo);
- objs = NULL;
while (files)
{
file_or_uri *obj;
@@ -5515,14 +5643,16 @@ g_win32_app_info_launch (GAppInfo *appinfo,
objs = g_list_prepend (objs, obj);
files = files->next;
}
-
objs = g_list_reverse (objs);
+ is_uwp = (info->app != NULL && info->app->is_uwp);
+
res = g_win32_app_info_launch_internal (info,
objs,
TRUE,
- NULL,
launch_context,
+ is_uwp ?
+ 0 :
G_SPAWN_SEARCH_PATH,
NULL,
error);
diff --git a/gio/gwin32inputstream.h b/gio/gwin32inputstream.h
index 2f4f4f8d6..8dde9e803 100644
--- a/gio/gwin32inputstream.h
+++ b/gio/gwin32inputstream.h
@@ -67,18 +67,18 @@ struct _GWin32InputStreamClass
void (*_g_reserved5) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_win32_input_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GInputStream * g_win32_input_stream_new (void *handle,
gboolean close_handle);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_win32_input_stream_set_close_handle (GWin32InputStream *stream,
gboolean close_handle);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_win32_input_stream_get_close_handle (GWin32InputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void *g_win32_input_stream_get_handle (GWin32InputStream *stream);
G_END_DECLS
diff --git a/gio/gwin32mount.c b/gio/gwin32mount.c
index 8df59b765..98560259b 100644
--- a/gio/gwin32mount.c
+++ b/gio/gwin32mount.c
@@ -406,6 +406,8 @@ g_win32_mount_get_icon (GMount *mount)
{
win32_mount->icon = g_themed_icon_new_with_default_fallbacks (_win32_drive_type_to_icon (win32_mount->drive_type, FALSE));
}
+
+ g_free (wfn);
}
return g_object_ref (win32_mount->icon);
diff --git a/gio/gwin32networkmonitor.c b/gio/gwin32networkmonitor.c
index 9dd5da757..e219225f0 100644
--- a/gio/gwin32networkmonitor.c
+++ b/gio/gwin32networkmonitor.c
@@ -78,24 +78,24 @@ g_win32_network_monitor_init (GWin32NetworkMonitor *win)
}
static gboolean
-win_network_monitor_get_ip_info (IP_ADDRESS_PREFIX prefix,
- GSocketFamily *family,
- const guint8 **dest,
- gsize *len)
+win_network_monitor_get_ip_info (const IP_ADDRESS_PREFIX *prefix,
+ GSocketFamily *family,
+ const guint8 **dest,
+ gsize *len)
{
- switch (prefix.Prefix.si_family)
+ switch (prefix->Prefix.si_family)
{
case AF_UNSPEC:
/* Fall-through: AF_UNSPEC deliveres both IPV4 and IPV6 infos, let`s stick with IPV4 here */
case AF_INET:
*family = G_SOCKET_FAMILY_IPV4;
- *dest = (guint8 *) &prefix.Prefix.Ipv4.sin_addr;
- *len = prefix.PrefixLength;
+ *dest = (guint8 *) &(prefix->Prefix.Ipv4.sin_addr);
+ *len = prefix->PrefixLength;
break;
case AF_INET6:
*family = G_SOCKET_FAMILY_IPV6;
- *dest = (guint8 *) &prefix.Prefix.Ipv6.sin6_addr;
- *len = prefix.PrefixLength;
+ *dest = (guint8 *) &(prefix->Prefix.Ipv6.sin6_addr);
+ *len = prefix->PrefixLength;
break;
default:
return FALSE;
@@ -152,7 +152,7 @@ win_network_monitor_process_table (GWin32NetworkMonitor *win,
route = routes->Table + i;
- if (!win_network_monitor_get_ip_info (route->DestinationPrefix, &family, &dest, &len))
+ if (!win_network_monitor_get_ip_info (&route->DestinationPrefix, &family, &dest, &len))
continue;
network = get_network_mask (family, dest, len);
@@ -218,13 +218,13 @@ win_network_monitor_invoke_route_changed (gpointer user_data)
switch (route_data->type)
{
case MibDeleteInstance:
- if (!win_network_monitor_get_ip_info (route_data->route->DestinationPrefix, &family, &dest, &len))
+ if (!win_network_monitor_get_ip_info (&route_data->route->DestinationPrefix, &family, &dest, &len))
break;
remove_network (route_data->win, family, dest, len);
break;
case MibAddInstance:
- if (!win_network_monitor_get_ip_info (route_data->route->DestinationPrefix, &family, &dest, &len))
+ if (!win_network_monitor_get_ip_info (&route_data->route->DestinationPrefix, &family, &dest, &len))
break;
add_network (route_data->win, family, dest, len);
diff --git a/gio/gwin32outputstream.h b/gio/gwin32outputstream.h
index 6b21849f9..d64fdc176 100644
--- a/gio/gwin32outputstream.h
+++ b/gio/gwin32outputstream.h
@@ -67,18 +67,18 @@ struct _GWin32OutputStreamClass
void (*_g_reserved5) (void);
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_win32_output_stream_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GOutputStream * g_win32_output_stream_new (void *handle,
gboolean close_handle);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_win32_output_stream_set_close_handle (GWin32OutputStream *stream,
gboolean close_handle);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
gboolean g_win32_output_stream_get_close_handle (GWin32OutputStream *stream);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void *g_win32_output_stream_get_handle (GWin32OutputStream *stream);
G_END_DECLS
diff --git a/gio/gwin32packageparser.c b/gio/gwin32packageparser.c
index 575bfb638..a73dbba64 100755
--- a/gio/gwin32packageparser.c
+++ b/gio/gwin32packageparser.c
@@ -141,6 +141,7 @@ struct _xml_sax_state
gsize package_index;
const wchar_t *wcs_full_name;
const wchar_t *wcs_name;
+ const wchar_t *wcs_display_name;
HSTRING package_family;
gboolean applist;
@@ -322,17 +323,20 @@ g_win32_package_parser_enum_packages (GWin32PackageParserCallback callback,
{
IUnknown *item = NULL;
IPackage *ipackage = NULL;
+ IPackage2 *ipackage2 = NULL;
IPackageId *ipackageid = NULL;
IUnknown *package_install_location = NULL;
IStorageItem *storage_item = NULL;
HSTRING path = NULL;
HSTRING name = NULL;
HSTRING full_name = NULL;
+ HSTRING display_name = NULL;
HSTRING package_family = NULL;
size_t manifest_filename_size;
const wchar_t *wcs_path;
const wchar_t *wcs_full_name;
const wchar_t *wcs_name;
+ const wchar_t *wcs_display_name;
wchar_t *manifest_filename = NULL;
#define canned_com_error_handler_pkg(function_name_literal, where_to_go) \
@@ -353,6 +357,9 @@ g_win32_package_parser_enum_packages (GWin32PackageParserCallback callback,
hr = IUnknown_QueryInterface (item, &IID_IPackage, (void **) &ipackage);
canned_com_error_handler_pkg ("IUnknown_QueryInterface(IID_IPackage)", package_cleanup);
+ hr = IUnknown_QueryInterface (item, &IID_IPackage2, (void **) &ipackage2);
+ canned_com_error_handler_pkg ("IUnknown_QueryInterface(IID_IPackage2)", package_cleanup);
+
hr = IPackage_get_Id (ipackage, &ipackageid);
canned_com_error_handler_pkg ("IPackage_get_Id()", package_cleanup);
@@ -362,8 +369,12 @@ g_win32_package_parser_enum_packages (GWin32PackageParserCallback callback,
hr = IPackageId_get_Name (ipackageid, &name);
canned_com_error_handler_pkg ("IPackageId_get_Name()", package_cleanup);
+ hr = IPackage2_get_DisplayName (ipackage2, &display_name);
+ canned_com_error_handler_pkg ("IPackage2_get_DisplayName()", package_cleanup);
+
wcs_full_name = LoadedWindowsGetStringRawBuffer (full_name, NULL);
wcs_name = LoadedWindowsGetStringRawBuffer (name, NULL);
+ wcs_display_name = LoadedWindowsGetStringRawBuffer (display_name, NULL);
#define canned_com_error_handler_pkg_named(function_name_literal, where_to_go) \
do \
@@ -402,6 +413,7 @@ g_win32_package_parser_enum_packages (GWin32PackageParserCallback callback,
sax->package_index = package_index;
sax->wcs_full_name = wcs_full_name;
sax->wcs_name = wcs_name;
+ sax->wcs_display_name = wcs_display_name;
sax->package_family = package_family;
sax->applist = TRUE;
sax->exit_early = FALSE;
@@ -426,22 +438,26 @@ g_win32_package_parser_enum_packages (GWin32PackageParserCallback callback,
if (path)
LoadedWindowsDeleteString (path);
+ if (package_family)
+ LoadedWindowsDeleteString (package_family);
+ if (display_name)
+ LoadedWindowsDeleteString (display_name);
+ if (name)
+ LoadedWindowsDeleteString (name);
+ if (full_name)
+ LoadedWindowsDeleteString (full_name);
+
if (storage_item)
(void) IStorageItem_Release (storage_item);
if (package_install_location)
(void) IUnknown_Release (package_install_location);
+ if (ipackage2)
+ (void) IPackage2_Release (ipackage2);
if (ipackage)
(void) IPackage_Release (ipackage);
if (item)
(void) IUnknown_Release (item);
- if (package_family)
- LoadedWindowsDeleteString (package_family);
- if (name)
- LoadedWindowsDeleteString (name);
- if (full_name)
- LoadedWindowsDeleteString (full_name);
-
if (ipackageid)
(void) IPackageId_Release (ipackageid);
if (sax->exit_early)
@@ -791,8 +807,8 @@ xml_parser_iteration (struct _xml_sax_state *sax,
{
if (sax->application_usermodelid != NULL)
sax->exit_early = !sax->callback (sax->user_data, sax->wcs_full_name, sax->wcs_name,
- sax->application_usermodelid, sax->applist,
- sax->supported_extgroups, sax->supported_protocols);
+ sax->wcs_display_name, sax->application_usermodelid,
+ sax->applist, sax->supported_extgroups, sax->supported_protocols);
g_clear_pointer (&sax->supported_extgroups, g_ptr_array_unref);
g_clear_pointer (&sax->supported_protocols, g_ptr_array_unref);
sax->supported_protocols = g_ptr_array_new_full (0, (GDestroyNotify) g_free);
diff --git a/gio/gwin32packageparser.h b/gio/gwin32packageparser.h
index 6264362db..b1b403397 100755
--- a/gio/gwin32packageparser.h
+++ b/gio/gwin32packageparser.h
@@ -36,6 +36,7 @@ struct _GWin32PackageExtGroup
typedef gboolean (*GWin32PackageParserCallback)(gpointer user_data,
const gunichar2 *full_package_name,
const gunichar2 *package_name,
+ const gunichar2 *display_name,
const gunichar2 *app_user_model_id,
gboolean show_in_applist,
GPtrArray *supported_extgroups,
diff --git a/gio/gwin32registrykey.h b/gio/gwin32registrykey.h
index 63ab9a9bc..e2b25da46 100644
--- a/gio/gwin32registrykey.h
+++ b/gio/gwin32registrykey.h
@@ -136,112 +136,112 @@ struct _GWin32RegistryValueIter {
gsize value_data_expanded_u8_size;
};
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
GWin32RegistrySubkeyIter *g_win32_registry_subkey_iter_copy (const GWin32RegistrySubkeyIter *iter);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
void g_win32_registry_subkey_iter_free (GWin32RegistrySubkeyIter *iter);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
void g_win32_registry_subkey_iter_assign (GWin32RegistrySubkeyIter *iter,
const GWin32RegistrySubkeyIter *other);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
GType g_win32_registry_subkey_iter_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
GWin32RegistryValueIter *g_win32_registry_value_iter_copy (const GWin32RegistryValueIter *iter);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
void g_win32_registry_value_iter_free (GWin32RegistryValueIter *iter);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
void g_win32_registry_value_iter_assign (GWin32RegistryValueIter *iter,
const GWin32RegistryValueIter *other);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
GType g_win32_registry_value_iter_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
GType g_win32_registry_key_get_type (void);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
GWin32RegistryKey *g_win32_registry_key_new (const gchar *path,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
GWin32RegistryKey *g_win32_registry_key_new_w (const gunichar2 *path,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
GWin32RegistryKey *g_win32_registry_key_get_child (GWin32RegistryKey *key,
const gchar *subkey,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
GWin32RegistryKey *g_win32_registry_key_get_child_w (GWin32RegistryKey *key,
const gunichar2 *subkey,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gboolean g_win32_registry_subkey_iter_init (GWin32RegistrySubkeyIter *iter,
GWin32RegistryKey *key,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
void g_win32_registry_subkey_iter_clear (GWin32RegistrySubkeyIter *iter);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gsize g_win32_registry_subkey_iter_n_subkeys (GWin32RegistrySubkeyIter *iter);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gboolean g_win32_registry_subkey_iter_next (GWin32RegistrySubkeyIter *iter,
gboolean skip_errors,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gboolean g_win32_registry_subkey_iter_get_name (GWin32RegistrySubkeyIter *iter,
const gchar **subkey_name,
gsize *subkey_name_len,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gboolean g_win32_registry_subkey_iter_get_name_w (GWin32RegistrySubkeyIter *iter,
const gunichar2 **subkey_name,
gsize *subkey_name_len,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gboolean g_win32_registry_value_iter_init (GWin32RegistryValueIter *iter,
GWin32RegistryKey *key,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
void g_win32_registry_value_iter_clear (GWin32RegistryValueIter *iter);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gsize g_win32_registry_value_iter_n_values (GWin32RegistryValueIter *iter);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gboolean g_win32_registry_value_iter_next (GWin32RegistryValueIter *iter,
gboolean skip_errors,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gboolean g_win32_registry_value_iter_get_value_type (GWin32RegistryValueIter *iter,
GWin32RegistryValueType *value_type,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gboolean g_win32_registry_value_iter_get_name (GWin32RegistryValueIter *iter,
gchar **value_name,
gsize *value_name_len,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gboolean g_win32_registry_value_iter_get_name_w (GWin32RegistryValueIter *iter,
gunichar2 **value_name,
gsize *value_name_len,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gboolean g_win32_registry_value_iter_get_data (GWin32RegistryValueIter *iter,
gboolean auto_expand,
gpointer *value_data,
gsize *value_data_size,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gboolean g_win32_registry_value_iter_get_data_w (GWin32RegistryValueIter *iter,
gboolean auto_expand,
gpointer *value_data,
gsize *value_data_size,
GError **error);
-GLIB_AVAILABLE_IN_2_66
+GIO_AVAILABLE_IN_2_66
gboolean g_win32_registry_key_get_value (GWin32RegistryKey *key,
const gchar * const *mui_dll_dirs,
gboolean auto_expand,
@@ -251,7 +251,7 @@ gboolean g_win32_registry_key_get_value (GWin32RegistryKey
gsize *value_data_size,
GError **error);
-GLIB_AVAILABLE_IN_2_66
+GIO_AVAILABLE_IN_2_66
gboolean g_win32_registry_key_get_value_w (GWin32RegistryKey *key,
const gunichar2 * const *mui_dll_dirs,
gboolean auto_expand,
@@ -261,29 +261,29 @@ gboolean g_win32_registry_key_get_value_w (GWin32RegistryKey
gsize *value_data_size,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
const gchar *g_win32_registry_key_get_path (GWin32RegistryKey *key);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
const gunichar2 *g_win32_registry_key_get_path_w (GWin32RegistryKey *key);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gboolean g_win32_registry_key_watch (GWin32RegistryKey *key,
gboolean watch_children,
GWin32RegistryKeyWatcherFlags watch_flags,
GWin32RegistryKeyWatchCallbackFunc callback,
gpointer user_data,
GError **error);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
gboolean g_win32_registry_key_has_changed (GWin32RegistryKey *key);
-GLIB_AVAILABLE_IN_2_46
+GIO_AVAILABLE_IN_2_46
void g_win32_registry_key_erase_change_indicator (GWin32RegistryKey *key);
-GLIB_AVAILABLE_IN_2_66
+GIO_AVAILABLE_IN_2_66
const gunichar2 * const *g_win32_registry_get_os_dirs_w (void);
-GLIB_AVAILABLE_IN_2_66
+GIO_AVAILABLE_IN_2_66
const gchar * const *g_win32_registry_get_os_dirs (void);
G_END_DECLS
diff --git a/gio/gzlibcompressor.h b/gio/gzlibcompressor.h
index 1a9380e08..b8a99eaac 100644
--- a/gio/gzlibcompressor.h
+++ b/gio/gzlibcompressor.h
@@ -46,16 +46,16 @@ struct _GZlibCompressorClass
GObjectClass parent_class;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_zlib_compressor_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GZlibCompressor *g_zlib_compressor_new (GZlibCompressorFormat format,
int level);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo *g_zlib_compressor_get_file_info (GZlibCompressor *compressor);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
void g_zlib_compressor_set_file_info (GZlibCompressor *compressor,
GFileInfo *file_info);
diff --git a/gio/gzlibdecompressor.h b/gio/gzlibdecompressor.h
index 464131781..ef97439f2 100644
--- a/gio/gzlibdecompressor.h
+++ b/gio/gzlibdecompressor.h
@@ -46,13 +46,13 @@ struct _GZlibDecompressorClass
GObjectClass parent_class;
};
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GType g_zlib_decompressor_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GZlibDecompressor *g_zlib_decompressor_new (GZlibCompressorFormat format);
-GLIB_AVAILABLE_IN_ALL
+GIO_AVAILABLE_IN_ALL
GFileInfo *g_zlib_decompressor_get_file_info (GZlibDecompressor *decompressor);
G_END_DECLS
diff --git a/gio/inotify/inotify-kernel.c b/gio/inotify/inotify-kernel.c
index 92d61fc31..7733d398e 100644
--- a/gio/inotify/inotify-kernel.c
+++ b/gio/inotify/inotify-kernel.c
@@ -377,6 +377,7 @@ ik_source_new (gboolean (* callback) (ik_event_t *event))
};
InotifyKernelSource *iks;
GSource *source;
+ gboolean should_set_nonblock = FALSE;
source = g_source_new (&source_funcs, sizeof (InotifyKernelSource));
iks = (InotifyKernelSource *) source;
@@ -384,17 +385,23 @@ ik_source_new (gboolean (* callback) (ik_event_t *event))
g_source_set_static_name (source, "inotify kernel source");
iks->unmatched_moves = g_hash_table_new (NULL, NULL);
- iks->fd = inotify_init1 (IN_CLOEXEC);
+ iks->fd = inotify_init1 (IN_CLOEXEC | IN_NONBLOCK);
if (iks->fd < 0)
- iks->fd = inotify_init ();
+ {
+ should_set_nonblock = TRUE;
+ iks->fd = inotify_init ();
+ }
if (iks->fd >= 0)
{
GError *error = NULL;
- g_unix_set_fd_nonblocking (iks->fd, TRUE, &error);
- g_assert_no_error (error);
+ if (should_set_nonblock)
+ {
+ g_unix_set_fd_nonblocking (iks->fd, TRUE, &error);
+ g_assert_no_error (error);
+ }
iks->fd_tag = g_source_add_unix_fd (source, iks->fd, G_IO_IN);
}
diff --git a/gio/inotify/inotify-sub.c b/gio/inotify/inotify-sub.c
index b161557db..baa6b6e11 100644
--- a/gio/inotify/inotify-sub.c
+++ b/gio/inotify/inotify-sub.c
@@ -36,7 +36,7 @@ dup_dirname (const gchar *dirname)
gchar *d_dirname = g_strdup (dirname);
size_t len = strlen (d_dirname);
- if (d_dirname[len - 1] == '/')
+ if (len > 1 && d_dirname[len - 1] == '/')
d_dirname[len - 1] = '\0';
return d_dirname;
diff --git a/gio/inotify/meson.build b/gio/inotify/meson.build
index 9b0c7ab30..8c7d6aaa0 100644
--- a/gio/inotify/meson.build
+++ b/gio/inotify/meson.build
@@ -8,8 +8,14 @@ inotify_sources = [
]
inotify_lib = static_library('inotify',
- sources : inotify_sources,
- include_directories : [configinc, glibinc, gmoduleinc],
- dependencies : [gioenumtypes_dep, libglib_dep, libgobject_dep],
+ sources : [inotify_sources],
+ include_directories : [configinc, glibinc],
+ dependencies : [
+ gioenumtypes_dep,
+ libglib_dep,
+ libgobject_dep,
+ gmodule_inc_dep,
+ ],
+ gnu_symbol_visibility : 'hidden',
pic : true,
- c_args : gio_c_args)
+ c_args : [gio_c_args, gio_c_args_internal])
diff --git a/gio/kqueue/gkqueuefilemonitor.c b/gio/kqueue/gkqueuefilemonitor.c
index f69f98e1c..b664753a1 100644
--- a/gio/kqueue/gkqueuefilemonitor.c
+++ b/gio/kqueue/gkqueuefilemonitor.c
@@ -32,6 +32,10 @@
#include <fcntl.h>
#include <string.h>
+#ifndef O_CLOEXEC
+#define O_CLOEXEC 0
+#endif
+
#include <glib-object.h>
#include <glib/gfileutils.h>
#include <gio/gfilemonitor.h>
@@ -583,7 +587,7 @@ _kqsub_start_watching (kqueue_sub *sub)
struct stat st;
struct kevent ev;
- sub->fd = open (sub->filename, O_KQFLAG);
+ sub->fd = open (sub->filename, O_KQFLAG | O_CLOEXEC);
if (sub->fd == -1)
return FALSE;
diff --git a/gio/kqueue/meson.build b/gio/kqueue/meson.build
index d389b06f7..f3e573f3d 100644
--- a/gio/kqueue/meson.build
+++ b/gio/kqueue/meson.build
@@ -6,8 +6,13 @@ kqueue_sources = [
]
kqueue_lib = static_library('kqueue',
- sources : kqueue_sources,
- include_directories : [configinc, glibinc, gmoduleinc],
- dependencies : [gioenumtypes_dep],
+ sources : [kqueue_sources],
+ include_directories : [configinc, glibinc],
+ dependencies : [
+ gioenumtypes_dep,
+ libglib_dep,
+ gmodule_inc_dep,
+ ],
+ gnu_symbol_visibility : 'hidden',
pic : true,
- c_args : gio_c_args)
+ c_args : [gio_c_args, gio_c_args_internal])
diff --git a/gio/meson.build b/gio/meson.build
index 14f0d8259..f9fdf6ead 100644
--- a/gio/meson.build
+++ b/gio/meson.build
@@ -1,14 +1,18 @@
gio_c_args = [
'-DG_LOG_DOMAIN="GLib-GIO"',
- '-DGIO_COMPILATION',
'-DGIO_LAUNCH_DESKTOP="@0@"'.format(glib_prefix / multiarch_libexecdir / 'gio-launch-desktop'),
'-DGIO_MODULE_DIR="@0@"'.format(glib_giomodulesdir),
'-DLOCALSTATEDIR="@0@"'.format(glib_localstatedir),
]
-gio_c_args += glib_hidden_visibility_args
+gio_c_args_internal = [
+ '-DGIO_COMPILATION',
+]
+
+# Install empty glib_giomodulesdir
+install_emptydir(glib_giomodulesdir)
-# FIXME: Install empty glib_giomodulesdir
+gio_includedir = glib_includedir / 'gio'
gnetworking_h_conf = configuration_data()
@@ -168,7 +172,8 @@ gnetworking_h_conf.set('NAMESER_COMPAT_INCLUDE', gnetworking_h_nameser_compat_in
gnetworking_h = configure_file(input : 'gnetworking.h.in',
output : 'gnetworking.h',
- install_dir : join_paths(get_option('includedir'), 'glib-2.0/gio'),
+ install_dir : gio_includedir,
+ install_tag : 'devel',
configuration : gnetworking_h_conf)
gdbus_headers = files(
@@ -272,10 +277,6 @@ settings_sources = files(
'gsettings.c',
)
-if host_system == 'windows'
- settings_sources += files('gregistrysettingsbackend.c')
-endif
-
application_headers = files(
'gapplication.h',
'gapplicationcommandline.h',
@@ -366,15 +367,17 @@ if host_system != 'windows'
)
portal_sources = [files(
- 'gdocumentportal.c',
- 'gopenuriportal.c',
- 'gmemorymonitorportal.c',
- 'gnetworkmonitorportal.c',
- 'gpowerprofilemonitorportal.c',
- 'gproxyresolverportal.c',
- 'gtrashportal.c',
- 'gportalsupport.c',
- 'gportalnotificationbackend.c'),
+ 'gdocumentportal.c',
+ 'gopenuriportal.c',
+ 'gmemorymonitorportal.c',
+ 'gnetworkmonitorportal.c',
+ 'gpowerprofilemonitorportal.c',
+ 'gproxyresolverportal.c',
+ 'gtrashportal.c',
+ 'gportalsupport.c',
+ 'gportalnotificationbackend.c',
+ 'gsandbox.c',
+ ),
xdp_dbus_generated
]
@@ -438,6 +441,7 @@ else
win32_sources += files(
'gmemorymonitorwin32.c',
+ 'gregistrysettingsbackend.c',
'gwin32registrykey.c',
'gwin32mount.c',
'gwin32volumemonitor.c',
@@ -461,6 +465,7 @@ else
win32_sources += [gio_win_res]
gio_win32_include_headers = files(
+ 'gregistrysettingsbackend.h',
'gwin32inputstream.h',
'gwin32outputstream.h',
)
@@ -598,7 +603,7 @@ gio_sources = files(
'gliststore.c',
)
-if get_option('default_library') != 'static'
+if glib_build_shared
gio_sources += files ('../glib/gtrace.c')
endif
@@ -742,10 +747,20 @@ gio_headers = files(
'gliststore.h',
)
+gio_visibility_h = custom_target(
+ output: 'gio-visibility.h',
+ command: [gen_visibility_macros, meson.project_version(), 'visibility-macros', 'GIO', '@OUTPUT@'],
+ install: true,
+ install_dir: gio_includedir,
+ # FIXME: Not needed with Meson >= 0.64.0
+ install_tag: 'devel',
+)
+gio_sources += gio_visibility_h
+
gio_headers += application_headers
gio_headers += settings_headers
gio_headers += gdbus_headers
-install_headers(gio_headers, subdir : 'glib-2.0/gio/')
+install_headers(gio_headers, install_dir : gio_includedir)
# We can't use gnome.mkenums() because the GNOME module looks for glib-mkenums
# in PATH, which means you can't bootstrap glib with its own glib-mkenums.
@@ -754,7 +769,9 @@ gioenumtypes_h = custom_target('gioenumtypes_h',
capture : true,
input : gio_headers,
install : true,
- install_dir : join_paths(get_option('includedir'), 'glib-2.0/gio'),
+ install_dir : gio_includedir,
+ # FIXME: Not needed with Meson >= 0.64.0
+ install_tag: 'devel',
command : [python, glib_mkenums,
'--template', files('gioenumtypes.h.template'),
'@INPUT@', gnetworking_h])
@@ -768,7 +785,7 @@ gioenumtypes_c = custom_target('gioenumtypes_c',
'--template', files('gioenumtypes.c.template'),
'@INPUT@', gnetworking_h])
-gioenumtypes_dep = declare_dependency(sources : [gioenumtypes_h, glib_enumtypes_h])
+gioenumtypes_dep = declare_dependency(sources : [gioenumtypes_h, glib_enumtypes_h, gio_visibility_h])
# inotify
if glib_conf.has('HAVE_SYS_INOTIFY_H') and have_func_inotify_init1
@@ -833,8 +850,9 @@ libgio = library('gio-2.0',
libgobject_dep, libgmodule_dep, selinux_dep, xattr_dep,
platform_deps, network_libs, libsysprof_capture_dep,
gioenumtypes_dep, gvdb_dep],
- c_args : gio_c_args,
- objc_args : gio_c_args,
+ c_args : [gio_c_args, gio_c_args_internal],
+ objc_args : [gio_c_args, gio_c_args_internal],
+ gnu_symbol_visibility : 'hidden',
# intl.lib is not compatible with SAFESEH
link_args : [noseh_link_args, glib_link_flags],
)
@@ -846,6 +864,7 @@ else
endif
schemas_subdir = join_paths('glib-2.0', 'schemas')
+dtds_subdir = join_paths('glib-2.0', 'dtds')
libgio_dep = declare_dependency(link_with : libgio,
dependencies : [libgmodule_dep, libgobject_dep, gioenumtypes_dep],
@@ -853,23 +872,27 @@ libgio_dep = declare_dependency(link_with : libgio,
variables : [
'schemasdir=' + join_paths(glib_datadir, schemas_subdir),
'giomoduledir=' + glib_giomodulesdir,
+ 'dtdsdir=' + join_paths(glib_datadir, dtds_subdir)
],
)
pkg.generate(libgio,
requires : ['glib-2.0', 'gobject-2.0'],
- variables : ['datadir=' + join_paths('${prefix}', get_option('datadir')),
- 'schemasdir=' + join_paths('${datadir}', schemas_subdir),
- 'bindir=' + join_paths('${prefix}', get_option('bindir')),
- 'giomoduledir=' + pkgconfig_giomodulesdir,
- 'gio=' + join_paths('${bindir}', 'gio'),
- 'gio_querymodules=@0@'.format(pkgconfig_multiarch_bindir / 'gio-querymodules'),
- 'glib_compile_schemas=@0@'.format(pkgconfig_multiarch_bindir / 'glib-compile-schemas'),
- 'glib_compile_resources=' + join_paths('${bindir}', 'glib-compile-resources'),
- 'gdbus=' + join_paths('${bindir}', 'gdbus'),
- 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen'),
- 'gresource=' + join_paths('${bindir}', 'gresource'),
- 'gsettings=' + join_paths('${bindir}', 'gsettings')],
+ variables : [
+ 'datadir=' + '${prefix}' / get_option('datadir'),
+ 'schemasdir=' + '${datadir}' / schemas_subdir,
+ 'dtdsdir=' + '${datadir}' / dtds_subdir,
+ 'bindir=' + '${prefix}' / get_option('bindir'),
+ 'giomoduledir=' + pkgconfig_giomodulesdir,
+ 'gio=' + '${bindir}' / 'gio',
+ 'gio_querymodules=' + pkgconfig_multiarch_bindir / 'gio-querymodules',
+ 'glib_compile_schemas=' + pkgconfig_multiarch_bindir / 'glib-compile-schemas',
+ 'glib_compile_resources=' + '${bindir}' / 'glib-compile-resources',
+ 'gdbus=' + '${bindir}' /'gdbus',
+ 'gdbus_codegen=' + '${bindir}' / 'gdbus-codegen',
+ 'gresource=' + '${bindir}' / 'gresource',
+ 'gsettings=' + '${bindir}' / 'gsettings',
+ ],
version : glib_version,
install_dir : glib_pkgconfigreldir,
filebase : 'gio-2.0',
@@ -911,8 +934,8 @@ endif
# Dependencies used by executables below
have_libelf = false
-libelf = dependency('libelf', version : '>= 0.8.12', required : get_option ('libelf'))
-if libelf.found()
+libelf = dependency('libelf', version : '>= 0.8.12', required : false)
+if libelf.found() and get_option('libelf').allowed()
have_libelf = true
else
# This fallback is necessary on *BSD. elfutils isn't the only libelf
@@ -1001,6 +1024,10 @@ glib_compile_resources = executable('glib-compile-resources',
# intl.lib is not compatible with SAFESEH
link_args : noseh_link_args,
dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep, gvdb_dep])
+install_data('gresource.dtd',
+ install_dir: get_option('datadir') / dtds_subdir,
+ install_tag: 'devel',
+)
# Cannot override those programs in cross compilation case because they are
# native executables that cannot be run on the build machine.
@@ -1051,6 +1078,7 @@ if enable_systemtap
output : '@0@.stp'.format(libgio.full_path().split('/').get(-1)),
configuration : stp_cdata,
install_dir : tapset_install_dir,
+ install_tag : 'systemtap',
)
endif
diff --git a/gio/tests/.gitignore b/gio/tests/.gitignore
deleted file mode 100644
index e6c9124a4..000000000
--- a/gio/tests/.gitignore
+++ /dev/null
@@ -1,146 +0,0 @@
-actions
-appinfo
-appinfo-test
-appmonitor
-apps
-async-close-output-stream
-async-splice-output-stream
-autoptr
-basic-application
-buffered-input-stream
-buffered-output-stream
-cancellable
-connectable
-contenttype
-contexts
-converter-stream
-credentials
-data-input-stream
-data-output-stream
-dbus-appinfo
-dbus-launch
-de/
-defaultvalue
-desktop-app-info
-echo-server
-file
-fileattributematcher
-filter-cat
-filter-streams
-gapplication
-gapplication-example-actions
-gapplication-example-cmdline
-gapplication-example-cmdline2
-gapplication-example-cmdline3
-gapplication-example-dbushooks
-gapplication-example-menu
-gapplication-example-open
-gdbus-addresses
-gdbus-auth
-gdbus-bz627724
-gdbus-close-pending
-gdbus-connection
-gdbus-connection-flush
-gdbus-connection-flush-helper
-gdbus-connection-loss
-gdbus-connection-slow
-gdbus-daemon
-gdbus-error
-gdbus-example-export
-gdbus-example-objectmanager-client
-gdbus-example-objectmanager-server
-gdbus-example-own-name
-gdbus-example-peer
-gdbus-example-proxy-subclass
-gdbus-example-server
-gdbus-example-subtree
-gdbus-example-unix-fd-client
-gdbus-example-watch-name
-gdbus-example-watch-proxy
-gdbus-exit-on-close
-gdbus-export
-gdbus-introspection
-gdbus-message
-gdbus-names
-gdbus-non-socket
-gdbus-overflow
-gdbus-peer
-gdbus-peer-object-manager
-gdbus-proxy
-gdbus-proxy-threads
-gdbus-proxy-well-known-name
-gdbus-serialization
-gdbus-test-codegen
-gdbus-test-codegen-generated*
-gdbus-test-codegen-old
-gdbus-test-fixture
-gdbus-testserver
-gdbus-threading
-gdbus-address-get-session
-glistmodel
-gio-du
-giomodule
-giotypefuncs.inc
-gnotification
-gsubprocess
-gsubprocess-testprog
-g-file
-g-file-info
-g-icon
-gmenumodel
-gschemas.compiled
-gsettings
-gsettings.store
-httpd
-icons
-inet-address
-io-stream
-live-g-file
-memory-input-stream
-memory-output-stream
-mimeapps
-monitor
-network-address
-network-monitor
-org.gtk.test.enums.xml
-org.gtk.test.gschema.xml
-permission
-pollable
-plugin_resources.c
-proxy
-proxy-test
-readwrite
-resolver
-resources
-send-data
-services/org.gtk.GDBus.Examples.ObjectManager.service
-simple-async-result
-simple-proxy
-sleepy-stream
-stream-rw_all
-socket
-socket-address
-socket-client
-socket-listener
-socket-service
-socket-server
-srvtarget
-task
-test-generated.txt
-test.gresource
-test.mo
-test_resources.c
-test_resources2.c
-test_resources2.h
-testfilemonitor
-thumbnail-verification
-tls-certificate
-tls-database
-tls-interaction
-unix-fd
-unix-streams
-vfs
-volumemonitor
-xgen-gio
-xgen-giosrc.c
-gresource-big-test.txt
diff --git a/gio/tests/actions.c b/gio/tests/actions.c
index 0bd63634b..a24c52c5e 100644
--- a/gio/tests/actions.c
+++ b/gio/tests/actions.c
@@ -408,8 +408,14 @@ test_entries (void)
{ "toggle", NULL, NULL, "false", NULL, { 0 } },
{ "volume", NULL, NULL, "0", change_volume_state, { 0 } },
};
+ const GActionEntry entries2[] = {
+ { "foo", activate_foo, NULL, NULL, NULL, { 0 } },
+ { "bar", activate_bar, "s", NULL, NULL, { 0 } },
+ { NULL },
+ };
GSimpleActionGroup *actions;
GVariant *state;
+ GStrv names;
actions = g_simple_action_group_new ();
g_simple_action_group_add_entries (actions, entries,
@@ -465,6 +471,25 @@ test_entries (void)
g_assert_cmpint (g_variant_get_int32 (state), ==, 7);
g_variant_unref (state);
+ names = g_action_group_list_actions (G_ACTION_GROUP (actions));
+ g_assert_cmpuint (g_strv_length (names), ==, G_N_ELEMENTS (entries));
+ g_strfreev (names);
+
+ g_action_map_remove_action_entries (G_ACTION_MAP (actions), entries, G_N_ELEMENTS (entries));
+ names = g_action_group_list_actions (G_ACTION_GROUP (actions));
+ g_assert_cmpuint (g_strv_length (names), ==, 0);
+ g_strfreev (names);
+
+ /* Check addition and removal of %NULL terminated array */
+ g_action_map_add_action_entries (G_ACTION_MAP (actions), entries2, -1, NULL);
+ names = g_action_group_list_actions (G_ACTION_GROUP (actions));
+ g_assert_cmpuint (g_strv_length (names), ==, G_N_ELEMENTS (entries2) - 1);
+ g_strfreev (names);
+ g_action_map_remove_action_entries (G_ACTION_MAP (actions), entries2, -1);
+ names = g_action_group_list_actions (G_ACTION_GROUP (actions));
+ g_assert_cmpuint (g_strv_length (names), ==, 0);
+ g_strfreev (names);
+
g_object_unref (actions);
}
@@ -896,7 +921,6 @@ test_dbus_export (void)
ensure_state (G_ACTION_GROUP (group), "lang", "'spanish'");
/* check that various error conditions are rejected */
- {
struct
{
const gchar *action_name;
@@ -940,7 +964,6 @@ test_dbus_export (void)
g_clear_error (&error);
g_clear_object (&async_result);
}
- }
/* check that setting an action’s state over D-Bus works */
g_assert_cmpint (activation_count ("lang"), ==, 1);
@@ -973,7 +996,6 @@ test_dbus_export (void)
ensure_state (G_ACTION_GROUP (group), "lang", "'portuguese'");
/* check that various error conditions are rejected */
- {
struct
{
const gchar *action_name;
@@ -1013,7 +1035,6 @@ test_dbus_export (void)
g_clear_error (&error);
g_clear_object (&async_result);
}
- }
/* test that the initial transfer works */
g_assert_true (G_IS_DBUS_ACTION_GROUP (proxy));
@@ -1400,6 +1421,20 @@ test_property_actions (void)
g_object_unref (group);
}
+static void
+test_property_actions_no_properties (void)
+{
+ GPropertyAction *action;
+
+ g_test_expect_message ("GLib-GIO", G_LOG_LEVEL_CRITICAL, "*Attempted to use an empty property name for GPropertyAction*");
+ action = (GPropertyAction*) g_object_new_with_properties (G_TYPE_PROPERTY_ACTION, 0, NULL, NULL);
+
+ g_test_assert_expected_messages ();
+ g_assert_true (G_IS_PROPERTY_ACTION (action));
+
+ g_object_unref (action);
+}
+
int
main (int argc, char **argv)
{
@@ -1416,6 +1451,7 @@ main (int argc, char **argv)
g_test_add_func ("/actions/dbus/threaded", test_dbus_threaded);
g_test_add_func ("/actions/dbus/bug679509", test_bug679509);
g_test_add_func ("/actions/property", test_property_actions);
+ g_test_add_func ("/actions/no-properties", test_property_actions_no_properties);
return g_test_run ();
}
diff --git a/gio/tests/appinfo-test-path.desktop.in b/gio/tests/appinfo-test-path.desktop.in
new file mode 100644
index 000000000..39ab12fed
--- /dev/null
+++ b/gio/tests/appinfo-test-path.desktop.in
@@ -0,0 +1,22 @@
+[Desktop Entry]
+Type=Application
+GenericName=generic-appinfo-test-path
+Name=appinfo-test-path
+Name[de]=appinfo-test-de
+X-GNOME-FullName=example
+X-GNOME-FullName[de]=Beispiel
+Comment=GAppInfo example
+Comment[de]=GAppInfo Beispiel
+Path=@installed_tests_dir@
+TryExec=apps
+Exec=appinfo-test --option %U %i --name %c --filename %k %m %%
+Icon=testicon.svg
+Terminal=false
+StartupNotify=true
+StartupWMClass=appinfo-path-class
+MimeType=image/png;image/jpeg;
+Keywords=keyword1;test keyword;
+Categories=GNOME;GTK;
+X-JunkFood=Burger
+X-JunkFood[de]=Bratwurst
+X-JunkFood[it]=
diff --git a/gio/tests/appinfo.c b/gio/tests/appinfo.c
index bd76729c4..625b828f3 100644
--- a/gio/tests/appinfo.c
+++ b/gio/tests/appinfo.c
@@ -16,12 +16,6 @@ test_launch_for_app_info (GAppInfo *appinfo)
const gchar *path;
gchar *uri;
- if (g_getenv ("DISPLAY") == NULL || g_getenv ("DISPLAY")[0] == '\0')
- {
- g_test_skip ("No DISPLAY set");
- return;
- }
-
success = g_app_info_launch (appinfo, NULL, NULL, &error);
g_assert_no_error (error);
g_assert_true (success);
@@ -62,12 +56,7 @@ test_launch (void)
path = g_test_get_filename (G_TEST_BUILT, "appinfo-test.desktop", NULL);
appinfo = (GAppInfo*)g_desktop_app_info_new_from_filename (path);
-
- if (appinfo == NULL)
- {
- g_test_skip ("appinfo-test binary not installed");
- return;
- }
+ g_assert_true (G_IS_APP_INFO (appinfo));
test_launch_for_app_info (appinfo);
g_object_unref (appinfo);
@@ -226,12 +215,7 @@ test_show_in (void)
path = g_test_get_filename (G_TEST_BUILT, "appinfo-test.desktop", NULL);
appinfo = (GAppInfo*)g_desktop_app_info_new_from_filename (path);
-
- if (appinfo == NULL)
- {
- g_test_skip ("appinfo-test binary not installed");
- return;
- }
+ g_assert_true (G_IS_APP_INFO (appinfo));
g_assert_true (g_app_info_should_show (appinfo));
g_object_unref (appinfo);
diff --git a/gio/tests/appmonitor.c b/gio/tests/appmonitor.c
index 9db8c4dea..0123ea59c 100644
--- a/gio/tests/appmonitor.c
+++ b/gio/tests/appmonitor.c
@@ -1,6 +1,31 @@
+/* GLib testing framework examples and tests
+ *
+ * Copyright © 2013 Red Hat, Inc.
+ * Copyright © 2015, 2017, 2018 Endless Mobile, Inc.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
#include <gio/gio.h>
#include <gstdio.h>
+#if defined (G_OS_UNIX) && !defined (__APPLE__)
+#include <gio/gdesktopappinfo.h>
+#endif
+
typedef struct
{
gchar *applications_dir;
@@ -24,6 +49,7 @@ teardown (Fixture *fixture,
g_clear_pointer (&fixture->applications_dir, g_free);
}
+#if defined (G_OS_UNIX) && !defined (__APPLE__)
static gboolean
create_app (gpointer data)
{
@@ -50,73 +76,97 @@ delete_app (gpointer data)
g_remove (path);
}
-static gboolean changed_fired;
-
static void
-changed_cb (GAppInfoMonitor *monitor, GMainLoop *loop)
+changed_cb (GAppInfoMonitor *monitor,
+ gpointer user_data)
{
- changed_fired = TRUE;
- g_main_loop_quit (loop);
+ gboolean *changed_fired = user_data;
+
+ *changed_fired = TRUE;
+ g_main_context_wakeup (g_main_context_get_thread_default ());
}
static gboolean
-quit_loop (gpointer data)
+timeout_cb (gpointer user_data)
{
- GMainLoop *loop = data;
+ gboolean *timed_out = user_data;
- if (g_main_loop_is_running (loop))
- g_main_loop_quit (loop);
+ g_assert (!timed_out);
+ *timed_out = TRUE;
+ g_main_context_wakeup (g_main_context_get_thread_default ());
return G_SOURCE_REMOVE;
}
+#endif /* defined (G_OS_UNIX) && !defined (__APPLE__) */
static void
test_app_monitor (Fixture *fixture,
gconstpointer user_data)
{
+#if defined (G_OS_UNIX) && !defined (__APPLE__)
gchar *app_path;
GAppInfoMonitor *monitor;
- GMainLoop *loop;
-
-#ifdef G_OS_WIN32
- g_test_skip (".desktop monitor on win32");
- return;
-#endif
+ GMainContext *context = NULL; /* use the global default main context */
+ GSource *timeout_source = NULL;
+ GDesktopAppInfo *app = NULL;
+ gboolean changed_fired = FALSE;
+ gboolean timed_out = FALSE;
app_path = g_build_filename (fixture->applications_dir, "app.desktop", NULL);
/* FIXME: this shouldn't be required */
g_list_free_full (g_app_info_get_all (), g_object_unref);
+ /* Create an app monitor and check that its ::changed signal is emitted when
+ * a new app is installed. */
monitor = g_app_info_monitor_get ();
- loop = g_main_loop_new (NULL, FALSE);
- g_signal_connect (monitor, "changed", G_CALLBACK (changed_cb), loop);
+ g_signal_connect (monitor, "changed", G_CALLBACK (changed_cb), &changed_fired);
g_idle_add (create_app, app_path);
- g_timeout_add_seconds (3, quit_loop, loop);
+ timeout_source = g_timeout_source_new_seconds (3);
+ g_source_set_callback (timeout_source, timeout_cb, &timed_out, NULL);
+ g_source_attach (timeout_source, NULL);
+
+ while (!changed_fired && !timed_out)
+ g_main_context_iteration (context, TRUE);
- g_main_loop_run (loop);
- g_assert (changed_fired);
+ g_assert_true (changed_fired);
changed_fired = FALSE;
- /* FIXME: this shouldn't be required */
- g_list_free_full (g_app_info_get_all (), g_object_unref);
+ g_source_destroy (timeout_source);
+ g_clear_pointer (&timeout_source, g_source_unref);
+
+ /* Check that the app is now queryable. This has the side-effect of re-arming
+ * the #GAppInfoMonitor::changed signal for the next part of the test. */
+ app = g_desktop_app_info_new ("app.desktop");
+ g_assert_nonnull (app);
+ g_clear_object (&app);
- g_timeout_add_seconds (3, quit_loop, loop);
+ /* Now check that ::changed is emitted when an app is uninstalled. */
+ timeout_source = g_timeout_source_new_seconds (3);
+ g_source_set_callback (timeout_source, timeout_cb, &timed_out, NULL);
+ g_source_attach (timeout_source, NULL);
delete_app (app_path);
- g_main_loop_run (loop);
+ while (!changed_fired && !timed_out)
+ g_main_context_iteration (context, TRUE);
- g_assert (changed_fired);
+ g_assert_true (changed_fired);
- g_main_loop_unref (loop);
+ g_source_destroy (timeout_source);
+ g_clear_pointer (&timeout_source, g_source_unref);
g_remove (app_path);
g_object_unref (monitor);
g_free (app_path);
+#elif defined (__APPLE__)
+ g_test_skip (".desktop monitor on macos");
+#else /* if !(defined (G_OS_UNIX) && !defined (__APPLE__)) */
+ g_test_skip (".desktop monitor on win32");
+#endif /* !(defined (G_OS_UNIX) && !defined (__APPLE__)) */
}
int
diff --git a/gio/tests/async-close-output-stream.c b/gio/tests/async-close-output-stream.c
index a14c413c2..801df9e31 100644
--- a/gio/tests/async-close-output-stream.c
+++ b/gio/tests/async-close-output-stream.c
@@ -1,6 +1,8 @@
/* GLib testing framework examples and tests
* Authors: Jesse van den Kieboom <jessevdk@gnome.org>
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/async-splice-output-stream.c b/gio/tests/async-splice-output-stream.c
index 3ac03ae67..ec0d8aa10 100644
--- a/gio/tests/async-splice-output-stream.c
+++ b/gio/tests/async-splice-output-stream.c
@@ -3,6 +3,8 @@
* Authors: Xavier Claessens <xclaesse@gmail.com>
* Mike Ruprecht <mike.ruprecht@collabora.co.uk>
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/basic-application.c b/gio/tests/basic-application.c
index 362b2fd51..a58d812a5 100644
--- a/gio/tests/basic-application.c
+++ b/gio/tests/basic-application.c
@@ -74,10 +74,10 @@ activate (GApplication *application)
}
static void
-open (GApplication *application,
- GFile **files,
- gint n_files,
- const gchar *hint)
+app_open (GApplication *application,
+ GFile **files,
+ gint n_files,
+ const gchar *hint)
{
gint i;
@@ -249,7 +249,7 @@ main (int argc, char **argv)
: G_APPLICATION_HANDLES_OPEN));
g_signal_connect (app, "startup", G_CALLBACK (startup), NULL);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
- g_signal_connect (app, "open", G_CALLBACK (open), NULL);
+ g_signal_connect (app, "open", G_CALLBACK (app_open), NULL);
g_signal_connect (app, "command-line", G_CALLBACK (command_line), NULL);
#ifdef STANDALONE
g_application_set_inactivity_timeout (app, 10000);
diff --git a/gio/tests/buffered-input-stream.c b/gio/tests/buffered-input-stream.c
index ee084b3b7..321654d70 100644
--- a/gio/tests/buffered-input-stream.c
+++ b/gio/tests/buffered-input-stream.c
@@ -2,6 +2,8 @@
* Copyright (C) 2008 Red Hat, Inc.
* Authors: Matthias Clasen <mclasen@redhat.com>
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/cancellable.c b/gio/tests/cancellable.c
index 9ef6bb472..be7017dcb 100644
--- a/gio/tests/cancellable.c
+++ b/gio/tests/cancellable.c
@@ -728,6 +728,68 @@ test_cancellable_cancel_reset_races (void)
g_object_unref (cancellable);
}
+static gpointer
+repeatedly_connecting_thread (gpointer data)
+{
+ GCancellable *cancellable = data;
+ const guint iterations = 10000;
+ gboolean callback_ever_called = FALSE;
+
+ for (guint i = 0; i < iterations; ++i)
+ {
+ gboolean callback_called = FALSE;
+ gboolean called;
+ gulong id = g_cancellable_connect (cancellable,
+ G_CALLBACK (on_racy_cancellable_cancelled),
+ &callback_called, NULL);
+ called = g_atomic_int_get (&callback_called);
+ callback_ever_called |= called;
+ if (g_test_verbose () && called)
+ g_test_message ("Reconnecting cancellation callback called");
+ g_cancellable_disconnect (cancellable, id);
+ }
+
+ if (!callback_ever_called)
+ g_test_incomplete ("We didn't really checked if callbacks is called properly");
+
+ return NULL;
+}
+
+static void
+test_cancellable_cancel_reset_connect_races (void)
+{
+ GCancellable *cancellable;
+ GThread *resetting_thread = NULL;
+ GThread *cancelling_thread = NULL;
+ GThread *connecting_thread = NULL;
+ gboolean callback_called = FALSE;
+
+ g_test_summary ("Tests threads racing for cancelling, connecting and disconnecting "
+ " and resetting a GCancellable");
+
+ cancellable = g_cancellable_new ();
+
+ g_cancellable_connect (cancellable, G_CALLBACK (on_racy_cancellable_cancelled),
+ &callback_called, NULL);
+ g_assert_false (callback_called);
+
+ resetting_thread = g_thread_new ("/cancel-reset-connect-races/resetting",
+ repeatedly_resetting_thread,
+ cancellable);
+ cancelling_thread = g_thread_new ("/cancel-reset-connect-races/cancelling",
+ repeatedly_cancelling_thread, cancellable);
+ connecting_thread = g_thread_new ("/cancel-reset-connect-races/connecting",
+ repeatedly_connecting_thread, cancellable);
+
+ g_thread_join (g_steal_pointer (&cancelling_thread));
+ g_thread_join (g_steal_pointer (&resetting_thread));
+ g_thread_join (g_steal_pointer (&connecting_thread));
+
+ g_assert_true (callback_called);
+
+ g_object_unref (cancellable);
+}
+
int
main (int argc, char *argv[])
{
@@ -741,6 +803,7 @@ main (int argc, char *argv[])
g_test_add_func ("/cancellable/poll-fd-cancelled", test_cancellable_cancelled_poll_fd);
g_test_add_func ("/cancellable/poll-fd-cancelled-threaded", test_cancellable_cancelled_poll_fd_threaded);
g_test_add_func ("/cancellable/cancel-reset-races", test_cancellable_cancel_reset_races);
+ g_test_add_func ("/cancellable/cancel-reset-connect-races", test_cancellable_cancel_reset_connect_races);
g_test_add_func ("/cancellable-source/threaded-dispose", test_cancellable_source_threaded_dispose);
return g_test_run ();
diff --git a/gio/tests/codegen.py b/gio/tests/codegen.py
index 76e289a80..bb570f170 100644
--- a/gio/tests/codegen.py
+++ b/gio/tests/codegen.py
@@ -28,6 +28,7 @@ import shutil
import subprocess
import sys
import tempfile
+import textwrap
import unittest
import xml.etree.ElementTree as ET
@@ -60,8 +61,29 @@ class TestCodegen(unittest.TestCase):
# Track the cwd, we want to back out to that to clean up our tempdir
cwd = ""
+ ARGUMENTS_TYPES = {
+ "b": {"value_type": "boolean"},
+ "y": {"value_type": "uchar"},
+ "n": {"value_type": "int"},
+ "q": {"value_type": "uint"},
+ "i": {"value_type": "int"},
+ "u": {"value_type": "uint"},
+ "x": {"value_type": "int64", "lacks_marshaller": True},
+ "t": {"value_type": "uint64", "lacks_marshaller": True},
+ "d": {"value_type": "double"},
+ "s": {"value_type": "string"},
+ "o": {"value_type": "string"},
+ "g": {"value_type": "string"},
+ "h": {"value_type": "variant"},
+ "ay": {"value_type": "string"},
+ "as": {"value_type": "boxed"},
+ "ao": {"value_type": "boxed"},
+ "aay": {"value_type": "boxed"},
+ "asv": {"value_type": "variant", "variant_type": "a{sv}"},
+ }
+
def setUp(self):
- self.timeout_seconds = 100 # seconds per test
+ self.timeout_seconds = 6 # seconds per test
self.tmpdir = tempfile.TemporaryDirectory()
self.cwd = os.getcwd()
os.chdir(self.tmpdir.name)
@@ -126,6 +148,51 @@ class TestCodegen(unittest.TestCase):
"#ifdef G_OS_UNIX\n"
"# include <gio/gunixfdlist.h>\n"
"#endif",
+ "private_gvalues_getters": """#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v) g_value_get_schar (v)
+#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v) g_value_get_int (v)
+#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
+#define g_marshal_value_peek_long(v) g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
+#define g_marshal_value_peek_float(v) g_value_get_float (v)
+#define g_marshal_value_peek_double(v) g_value_get_double (v)
+#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v) g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v) g_value_get_object (v)
+#define g_marshal_value_peek_variant(v) g_value_get_variant (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ * Do not access GValues directly in your code. Instead, use the
+ * g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
+#define g_marshal_value_peek_char(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v) (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v) (v)->data[0].v_float
+#define g_marshal_value_peek_double(v) (v)->data[0].v_double
+#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */""",
"standard_typedefs_and_helpers": "typedef struct\n"
"{\n"
" GDBusArgInfo parent_struct;\n"
@@ -325,6 +392,8 @@ G_END_DECLS
{standard_header_includes}
+{private_gvalues_getters}
+
{standard_typedefs_and_helpers}""".format(
**result.subs
),
@@ -411,6 +480,26 @@ G_END_DECLS
xml_data = f.readlines()
self.assertTrue(len(xml_data) != 0)
+ def test_generate_md(self):
+ """Test the basic functionality of the markdown generator."""
+ xml_contents = """
+ <node>
+ <interface name="org.project.Bar.Frobnicator">
+ <method name="RandomMethod"/>
+ </interface>
+ </node>
+ """
+ res = self.runCodegenWithInterface(
+ xml_contents,
+ "--generate-md",
+ "test",
+ )
+ self.assertEqual("", res.err)
+ self.assertEqual("", res.out)
+ with open("test-org.project.Bar.Frobnicator.md", "r") as f:
+ rst = f.readlines()
+ self.assertTrue(len(rst) != 0)
+
def test_generate_rst(self):
"""Test the basic functionality of the rst generator."""
xml_contents = """
@@ -431,6 +520,138 @@ G_END_DECLS
rst = f.readlines()
self.assertTrue(len(rst) != 0)
+ def test_generate_rst_method(self):
+ """Test generating a method documentation with the rst generator."""
+ xml_contents = """
+ <node>
+ <interface name="org.project.Bar.Frobnicator">
+ <!-- RandomMethod:
+
+ A random test method.
+ -->
+ <method name="RandomMethod"/>
+ </interface>
+ </node>
+ """
+ res = self.runCodegenWithInterface(
+ xml_contents,
+ "--generate-rst",
+ "test",
+ )
+ self.assertEqual("", res.err)
+ self.assertEqual("", res.out)
+ with open("test-org.project.Bar.Frobnicator.rst", "r") as f:
+ rst = f.read()
+ self.assertIn(
+ textwrap.dedent(
+ """
+ -------
+ Methods
+ -------
+
+ .. _org.project.Bar.Frobnicator.RandomMethod:
+
+ org.project.Bar.Frobnicator.RandomMethod
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ ::
+
+ RandomMethod ()
+
+
+ A random test method."""
+ ),
+ rst,
+ )
+
+ def test_generate_rst_signal(self):
+ """Test generating a signal documentation with the rst generator."""
+ xml_contents = """
+ <node>
+ <interface name="org.project.Bar.Frobnicator">
+ <!-- RandomSignal:
+
+ A random test signal.
+ -->
+ <signal name="RandomSignal"/>
+ </interface>
+ </node>
+ """
+ res = self.runCodegenWithInterface(
+ xml_contents,
+ "--generate-rst",
+ "test",
+ )
+ self.assertEqual("", res.err)
+ self.assertEqual("", res.out)
+ with open("test-org.project.Bar.Frobnicator.rst", "r") as f:
+ rst = f.read()
+ self.assertIn(
+ textwrap.dedent(
+ """
+ -------
+ Signals
+ -------
+
+ .. _org.project.Bar.Frobnicator::RandomSignal:
+
+ org.project.Bar.Frobnicator::RandomSignal
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ ::
+
+ RandomSignal ()
+
+
+ A random test signal."""
+ ),
+ rst,
+ )
+
+ def test_generate_rst_property(self):
+ """Test generating a property documentation with the rst generator."""
+ xml_contents = """
+ <node>
+ <interface name="org.project.Bar.Frobnicator">
+ <!-- RandomProperty:
+
+ A random test property.
+ -->
+ <property type="s" name="RandomProperty" access="read"/>
+ </interface>
+ </node>
+ """
+ res = self.runCodegenWithInterface(
+ xml_contents,
+ "--generate-rst",
+ "test",
+ )
+ self.assertEqual("", res.err)
+ self.assertEqual("", res.out)
+ with open("test-org.project.Bar.Frobnicator.rst", "r") as f:
+ rst = f.read()
+ self.assertIn(
+ textwrap.dedent(
+ """
+ ----------
+ Properties
+ ----------
+
+ .. _org.project.Bar.Frobnicator:RandomProperty:
+
+ org.project.Bar.Frobnicator:RandomProperty
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ ::
+
+ RandomProperty readable s
+
+
+ A random test property."""
+ ),
+ rst,
+ )
+
@unittest.skipIf(on_win32(), "requires /dev/stdout")
def test_glib_min_required_invalid(self):
"""Test running with an invalid --glib-min-required."""
@@ -540,6 +761,64 @@ G_END_DECLS
)
@unittest.skipIf(on_win32(), "requires /dev/stdout")
+ def test_dbus_types(self):
+ bad_types = [
+ "{vs}", # Bad dictionary key type
+ "(ss(s{{sv}s}))", # Bad dictionary key types
+ "{s", # Unterminated dictionary
+ "(s{sss})", # Unterminated dictionary
+ "z", # Bad type
+ "(ssms)", # Bad type
+ "(", # Unterminated tuple
+ "(((ss))", # Unterminated tuple
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas", # Too much recursion
+ "(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((("
+ "(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((s))"
+ "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))"
+ "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", # Too much recursion
+ "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{"
+ "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{sv}"
+ "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}"
+ "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}", # Too much recursion
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaa{sv})", # Too much recursion
+ "(ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss"
+ "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss"
+ "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss"
+ "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssss)", # Too long
+ ]
+ for t in bad_types:
+ interface_xml = f"""
+ <node>
+ <interface name="BadTypes">
+ <property type="{t}" name="BadPropertyType" access="read" />
+ </interface>
+ </node>"""
+ with self.assertRaises(subprocess.CalledProcessError):
+ self.runCodegenWithInterface(
+ interface_xml, "--output", "/dev/stdout", "--body"
+ )
+ good_types = [
+ "si{s{b(ybnqiuxtdh)}}{yv}{nv}{dv}",
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas", # 128 Levels of recursion
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa{sv})", # 128 Levels of recursion
+ ]
+ for t in good_types:
+ interface_xml = f"""
+ <node>
+ <interface name="GoodTypes">
+ <property type="{t}" name="GoodPropertyType" access="read" />
+ </interface>
+ </node>"""
+ result = self.runCodegenWithInterface(
+ interface_xml, "--output", "/dev/stdout", "--body"
+ )
+ self.assertEqual("", result.err)
+
+ @unittest.skipIf(on_win32(), "requires /dev/stdout")
def test_unix_fd_types_and_annotations(self):
"""Test an interface with `h` arguments, no annotation, and GLib < 2.64.
@@ -645,6 +924,521 @@ G_END_DECLS
self.assertEqual(result.out.strip().count("GDBusCallFlags call_flags,"), 2)
self.assertEqual(result.out.strip().count("gint timeout_msec,"), 2)
+ @unittest.skipIf(on_win32(), "requires /dev/stdout")
+ def test_generate_signal_id_simple_signal(self):
+ """Test that signals IDs are used to emit signals"""
+ interface_xml = """
+ <node>
+ <interface name="org.project.UsefulInterface">
+ <signal name="SimpleSignal"/>
+ </interface>
+ <interface name="org.project.OtherIface">
+ <signal name="SimpleSignal"/>
+ </interface>
+ </node>"""
+
+ result = self.runCodegenWithInterface(
+ interface_xml, "--output", "/dev/stdout", "--body"
+ )
+ stripped_out = result.out.strip()
+ self.assertFalse(result.err)
+ self.assertIs(stripped_out.count("g_signal_emit_by_name ("), 0)
+
+ for iface in ["USEFUL_INTERFACE", "OTHER_IFACE"]:
+ enum_name = f"_ORG_PROJECT_{iface}_SIGNALS"
+ enum_item = f"_ORG_PROJECT_{iface}_SIMPLE_SIGNAL"
+ self.assertIs(stripped_out.count(f"{enum_item},"), 1)
+ self.assertIs(stripped_out.count(f"{enum_name}[{enum_item}] ="), 1)
+ self.assertIs(
+ stripped_out.count(
+ f" g_signal_emit (object, {enum_name}[{enum_item}], 0);"
+ ),
+ 1,
+ )
+
+ @unittest.skipIf(on_win32(), "requires /dev/stdout")
+ def test_generate_signal_id_multiple_signals_types(self):
+ """Test that signals IDs are used to emit signals for all types"""
+
+ signal_template = "<signal name='{}'><arg name='{}' type='{}'/></signal>"
+ generated_signals = [
+ signal_template.format(
+ f"SingleArgSignal{t.upper()}", f"an_{t}", props.get("variant_type", t)
+ )
+ for t, props in self.ARGUMENTS_TYPES.items()
+ ]
+
+ interface_xml = f"""
+ <node>
+ <interface name="org.project.SignalingIface">
+ <signal name="NoArgSignal" />
+ {''.join(generated_signals)}
+ </interface>
+ </node>"""
+
+ result = self.runCodegenWithInterface(
+ interface_xml, "--output", "/dev/stdout", "--body"
+ )
+ stripped_out = result.out.strip()
+ self.assertFalse(result.err)
+ self.assertIs(stripped_out.count("g_signal_emit_by_name ("), 0)
+
+ iface = "SIGNALING_IFACE"
+ for t in self.ARGUMENTS_TYPES.keys():
+ enum_name = f"_ORG_PROJECT_{iface}_SIGNALS"
+ enum_item = f"_ORG_PROJECT_{iface}_SINGLE_ARG_SIGNAL_{t.upper()}"
+ self.assertIs(stripped_out.count(f"{enum_item},"), 1)
+ self.assertIs(stripped_out.count(f"{enum_name}[{enum_item}] ="), 1)
+ self.assertIs(
+ stripped_out.count(
+ f" g_signal_emit (object, {enum_name}[{enum_item}], 0, arg_an_{t});"
+ ),
+ 1,
+ )
+
+ @unittest.skipIf(on_win32(), "requires /dev/stdout")
+ def test_generate_signal_id_multiple_signal_args_types(self):
+ """Test that signals IDs are used to emit signals for all types"""
+
+ generated_args = [
+ f"<arg name='an_{t}' type='{props.get('variant_type', t)}'/>\n"
+ for t, props in self.ARGUMENTS_TYPES.items()
+ ]
+
+ interface_xml = f"""
+ <node>
+ <interface name="org.project.SignalingIface">
+ <signal name="SignalWithManyArgs">
+ {''.join(generated_args)}
+ </signal>
+ </interface>
+ </node>"""
+
+ result = self.runCodegenWithInterface(
+ interface_xml, "--output", "/dev/stdout", "--body"
+ )
+ stripped_out = result.out.strip()
+ self.assertFalse(result.err)
+ self.assertIs(stripped_out.count("g_signal_emit_by_name ("), 0)
+
+ iface = "SIGNALING_IFACE"
+ enum_name = f"_ORG_PROJECT_{iface}_SIGNALS"
+ enum_item = f"_ORG_PROJECT_{iface}_SIGNAL_WITH_MANY_ARGS"
+ self.assertIs(stripped_out.count(f"{enum_item},"), 1)
+ self.assertIs(stripped_out.count(f"{enum_name}[{enum_item}] ="), 1)
+
+ args = ", ".join([f"arg_an_{t}" for t in self.ARGUMENTS_TYPES.keys()])
+ self.assertIs(
+ stripped_out.count(
+ f" g_signal_emit (object, {enum_name}[{enum_item}], 0, {args});"
+ ),
+ 1,
+ )
+
+ @unittest.skipIf(on_win32(), "requires /dev/stdout")
+ def test_generate_signals_marshaller_simple_signal(self):
+ """Test that signals marshaller is generated for simple signal"""
+ interface_xml = """
+ <node>
+ <interface name="org.project.SignalingIface">
+ <signal name="SimpleSignal"/>
+ </interface>
+ <interface name="org.project.OtherSignalingIface">
+ <signal name="SimpleSignal"/>
+ </interface>
+ </node>"""
+
+ result = self.runCodegenWithInterface(
+ interface_xml, "--output", "/dev/stdout", "--body"
+ )
+ stripped_out = result.out.strip()
+ self.assertFalse(result.err)
+ self.assertIs(stripped_out.count("g_cclosure_marshal_generic"), 0)
+
+ func_name = "org_project_signaling_iface_signal_marshal_simple_signal"
+ self.assertIs(stripped_out.count(f"{func_name},"), 1)
+ self.assertIs(stripped_out.count(f"{func_name} ("), 1)
+ self.assertIs(stripped_out.count("g_cclosure_marshal_VOID__VOID (closure"), 2)
+
+ func_name = "org_project_other_signaling_iface_signal_marshal_simple_signal"
+ self.assertIs(stripped_out.count(f"{func_name},"), 1)
+ self.assertIs(stripped_out.count(f"{func_name} ("), 1)
+ self.assertIs(stripped_out.count("g_cclosure_marshal_VOID__VOID (closure"), 2)
+
+ @unittest.skipIf(on_win32(), "requires /dev/stdout")
+ def test_generate_signals_marshaller_single_typed_args(self):
+ """Test that signals marshaller is generated for each known type"""
+ for t, props in self.ARGUMENTS_TYPES.items():
+ camel_type = t[0].upper() + t[1:]
+ interface_xml = f"""
+ <node>
+ <interface name="org.project.SignalingIface">
+ <signal name="SimpleSignal"/>
+ <signal name="SingleArgSignal{camel_type}">
+ <arg name="arg_{t}" type="{props.get("variant_type", t)}"/>
+ </signal>
+ </interface>
+ </node>"""
+
+ result = self.runCodegenWithInterface(
+ interface_xml, "--output", "/dev/stdout", "--body"
+ )
+ stripped_out = result.out.strip()
+ self.assertFalse(result.err)
+ self.assertEqual(stripped_out.count("g_cclosure_marshal_generic"), 0)
+
+ self.assertIs(
+ stripped_out.count("g_cclosure_marshal_VOID__VOID (closure"), 1
+ )
+
+ func_name = (
+ f"org_project_signaling_iface_signal_marshal_single_arg_signal_{t}"
+ )
+ self.assertIs(stripped_out.count(f"{func_name},"), 1)
+ self.assertIs(stripped_out.count(f"{func_name} ("), 1)
+
+ if props.get("lacks_marshaller", False):
+ self.assertIs(
+ stripped_out.count(
+ f"g_marshal_value_peek_{props['value_type']} (param_values + 1)"
+ ),
+ 1,
+ )
+ else:
+ self.assertIs(
+ stripped_out.count(
+ f"g_cclosure_marshal_VOID__{props['value_type'].upper()} (closure"
+ ),
+ 1,
+ )
+
+ @unittest.skipIf(on_win32(), "requires /dev/stdout")
+ def test_generate_signals_marshallers_multiple_args(self):
+ """Test that signals marshallers are generated"""
+ generated_args = [
+ f"<arg name='an_{t}' type='{props.get('variant_type', t)}'/>\n"
+ for t, props in self.ARGUMENTS_TYPES.items()
+ ]
+
+ interface_xml = f"""
+ <node>
+ <interface name="org.project.SignalingIface">
+ <signal name="SimpleSignal"/>
+ <signal name="SignalWithManyArgs">
+ {''.join(generated_args)}
+ </signal>
+ </interface>
+ </node>"""
+
+ result = self.runCodegenWithInterface(
+ interface_xml, "--output", "/dev/stdout", "--body"
+ )
+ stripped_out = result.out.strip()
+ self.assertFalse(result.err)
+ self.assertIs(stripped_out.count("g_cclosure_marshal_generic"), 0)
+
+ func_name = f"org_project_signaling_iface_signal_marshal_simple_signal"
+ self.assertIs(stripped_out.count(f"{func_name},"), 1)
+ self.assertIs(stripped_out.count(f"{func_name} ("), 1)
+
+ func_name = f"org_project_signaling_iface_signal_marshal_signal_with_many_args"
+ self.assertIs(stripped_out.count(f"{func_name},"), 1)
+ self.assertIs(stripped_out.count(f"{func_name} ("), 1)
+
+ # Check access to MultipleArgsSignal arguments
+ index = 1
+ for props in self.ARGUMENTS_TYPES.values():
+ self.assertIs(
+ stripped_out.count(
+ f"g_marshal_value_peek_{props['value_type']} (param_values + {index})"
+ ),
+ 1,
+ )
+ index += 1
+
+ @unittest.skipIf(on_win32(), "requires /dev/stdout")
+ def test_generate_methods_marshaller_simple_method(self):
+ """Test that methods marshaller is generated for simple method"""
+ interface_xml = """
+ <node>
+ <interface name="org.project.CallableIface">
+ <method name="SimpleMethod"/>
+ </interface>
+ <interface name="org.project.OtherCallableIface">
+ <method name="SimpleMethod"/>
+ </interface>
+ </node>"""
+
+ result = self.runCodegenWithInterface(
+ interface_xml, "--output", "/dev/stdout", "--body"
+ )
+ stripped_out = result.out.strip()
+ self.assertFalse(result.err)
+ self.assertIs(stripped_out.count("g_cclosure_marshal_generic"), 0)
+
+ func_name = "org_project_callable_iface_method_marshal_simple_method"
+ self.assertIs(stripped_out.count(f"{func_name},"), 1)
+ self.assertIs(stripped_out.count(f"{func_name} ("), 1)
+
+ func_name = "org_project_other_callable_iface_method_marshal_simple_method"
+ self.assertIs(stripped_out.count(f"{func_name},"), 1)
+ self.assertIs(stripped_out.count(f"{func_name} ("), 1)
+
+ self.assertIs(
+ stripped_out.count("g_marshal_value_peek_object (param_values + 1)"), 1
+ )
+ self.assertIs(
+ stripped_out.count("g_value_set_boolean (return_value, v_return);"), 1
+ )
+
+ self.assertIs(
+ stripped_out.count(
+ "_g_dbus_codegen_marshal_BOOLEAN__OBJECT (\n GClosure"
+ ),
+ 1,
+ )
+ self.assertIs(
+ stripped_out.count("_g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure"), 2
+ )
+
+ @unittest.skipIf(on_win32(), "requires /dev/stdout")
+ def test_generate_methods_marshaller_single_typed_in_args(self):
+ """Test that methods marshallers are generated for each known type"""
+ for t, props in self.ARGUMENTS_TYPES.items():
+ camel_type = t[0].upper() + t[1:]
+ interface_xml = f"""
+ <node>
+ <interface name="org.project.UsefulInterface">
+ <method name="SingleArgMethod{camel_type}">
+ <arg name="arg_{t}" type="{props.get("variant_type", t)}"/>
+ </method>
+ </interface>
+ </node>"""
+
+ result = self.runCodegenWithInterface(
+ interface_xml, "--output", "/dev/stdout", "--body"
+ )
+ stripped_out = result.out.strip()
+ self.assertFalse(result.err)
+ self.assertEqual(stripped_out.count("g_cclosure_marshal_generic"), 0)
+
+ func_name = (
+ f"org_project_useful_interface_method_marshal_single_arg_method_{t}"
+ )
+ self.assertIs(stripped_out.count(f"{func_name},"), 1)
+ self.assertIs(stripped_out.count(f"{func_name} ("), 1)
+ self.assertIs(
+ stripped_out.count("g_marshal_value_peek_object (param_values + 1)"), 1
+ )
+ self.assertIs(
+ stripped_out.count("g_value_set_boolean (return_value, v_return);"), 1
+ )
+ self.assertIs(
+ stripped_out.count(
+ f"g_marshal_value_peek_{props['value_type']} (param_values + 2)"
+ ),
+ 1,
+ )
+
+ @unittest.skipIf(on_win32(), "requires /dev/stdout")
+ def test_generate_methods_marshaller_single_typed_out_args(self):
+ """Test that methods marshallers are generated for each known type"""
+ for t, props in self.ARGUMENTS_TYPES.items():
+ camel_type = t[0].upper() + t[1:]
+ interface_xml = f"""
+ <node>
+ <interface name="org.project.UsefulInterface">
+ <method name="SingleArgMethod{camel_type}">
+ <arg name="arg_{t}" type="{props.get("variant_type", t)}" direction="out"/>
+ </method>
+ </interface>
+ </node>"""
+
+ result = self.runCodegenWithInterface(
+ interface_xml, "--output", "/dev/stdout", "--body"
+ )
+ stripped_out = result.out.strip()
+ self.assertFalse(result.err)
+ self.assertEqual(stripped_out.count("g_cclosure_marshal_generic"), 0)
+
+ func_name = (
+ f"org_project_useful_interface_method_marshal_single_arg_method_{t}"
+ )
+ self.assertIs(stripped_out.count(f"{func_name},"), 1)
+ self.assertIs(stripped_out.count(f"{func_name} ("), 1)
+ self.assertIs(
+ stripped_out.count("g_marshal_value_peek_object (param_values + 1)"), 1
+ )
+ self.assertIs(
+ stripped_out.count("g_value_set_boolean (return_value, v_return);"), 1
+ )
+ self.assertIs(stripped_out.count("(param_values + 2)"), 0)
+
+ @unittest.skipIf(on_win32(), "requires /dev/stdout")
+ def test_generate_methods_marshallers_multiple_in_args(self):
+ """Test that methods marshallers are generated"""
+ generated_args = [
+ f"<arg name='an_{t}' type='{props.get('variant_type', t)}'/>\n"
+ for t, props in self.ARGUMENTS_TYPES.items()
+ ]
+
+ interface_xml = f"""
+ <node>
+ <interface name="org.project.CallableIface">
+ <method name="MethodWithManyArgs">
+ {''.join(generated_args)}
+ </method>
+ <method name="SameMethodWithManyArgs">
+ {''.join(generated_args)}
+ </method>
+ </interface>
+ <interface name="org.project.OtherCallableIface">
+ <method name="MethodWithManyArgs">
+ {''.join(generated_args)}
+ </method>
+ </interface>
+ </node>"""
+
+ result = self.runCodegenWithInterface(
+ interface_xml, "--output", "/dev/stdout", "--body"
+ )
+ stripped_out = result.out.strip()
+ self.assertFalse(result.err)
+ self.assertIs(stripped_out.count("g_cclosure_marshal_generic"), 0)
+
+ func_name = f"org_project_callable_iface_method_marshal_method_with_many_args"
+ self.assertIs(stripped_out.count(f"{func_name},"), 1)
+ self.assertIs(stripped_out.count(f"{func_name} ("), 1)
+
+ # Check access to MultipleArgsMethod arguments
+ index = 1
+ self.assertIs(
+ stripped_out.count(f"g_marshal_value_peek_object (param_values + {index})"),
+ 1,
+ )
+ index += 1
+
+ for props in self.ARGUMENTS_TYPES.values():
+ self.assertIs(
+ stripped_out.count(
+ f"g_marshal_value_peek_{props['value_type']} (param_values + {index})"
+ ),
+ 1,
+ )
+ index += 1
+
+ self.assertIs(
+ stripped_out.count("g_value_set_boolean (return_value, v_return);"), 1
+ )
+ func_types = "_".join(
+ [p["value_type"].upper() for p in self.ARGUMENTS_TYPES.values()]
+ )
+ func_name = f"_g_dbus_codegen_marshal_BOOLEAN__OBJECT_{func_types}"
+ self.assertIs(stripped_out.count(f"{func_name} (\n GClosure"), 1)
+ self.assertIs(stripped_out.count(f"{func_name} (closure"), 3)
+
+ func_name = (
+ f"org_project_other_callable_iface_method_marshal_method_with_many_args"
+ )
+ self.assertIs(stripped_out.count(f"{func_name},"), 1)
+ self.assertIs(stripped_out.count(f"{func_name} ("), 1)
+
+ @unittest.skipIf(on_win32(), "requires /dev/stdout")
+ def test_generate_methods_marshallers_multiple_out_args(self):
+ """Test that methods marshallers are generated"""
+ generated_args = [
+ f"<arg name='an_{t}' type='{props.get('variant_type', t)}' direction='out'/>\n"
+ for t, props in self.ARGUMENTS_TYPES.items()
+ ]
+
+ interface_xml = f"""
+ <node>
+ <interface name="org.project.CallableIface">
+ <method name="MethodWithManyArgs">
+ {''.join(generated_args)}
+ </method>
+ </interface>
+ </node>"""
+
+ result = self.runCodegenWithInterface(
+ interface_xml, "--output", "/dev/stdout", "--body"
+ )
+ stripped_out = result.out.strip()
+ self.assertFalse(result.err)
+ self.assertIs(stripped_out.count("g_cclosure_marshal_generic"), 0)
+
+ func_name = f"org_project_callable_iface_method_marshal_method_with_many_args"
+ self.assertIs(stripped_out.count(f"{func_name},"), 1)
+ self.assertIs(stripped_out.count(f"{func_name} ("), 1)
+
+ # Check access to MultipleArgsMethod arguments
+ index = 1
+ self.assertIs(
+ stripped_out.count(f"g_marshal_value_peek_object (param_values + {index})"),
+ 1,
+ )
+ index += 1
+
+ for index in range(index, len(self.ARGUMENTS_TYPES)):
+ self.assertIs(stripped_out.count(f"(param_values + {index})"), 0)
+
+ self.assertIs(
+ stripped_out.count("g_value_set_boolean (return_value, v_return);"), 1
+ )
+
+ self.assertIs(
+ stripped_out.count("_g_dbus_codegen_marshal_BOOLEAN__OBJECT (closure"),
+ 1,
+ )
+
+ @unittest.skipIf(on_win32(), "requires /dev/stdout")
+ def test_generate_methods_marshallers_with_unix_fds(self):
+ """Test an interface with `h` arguments"""
+ interface_xml = """
+ <node>
+ <interface name="test.FDPassing">
+ <method name="HelloFD">
+ <annotation name="org.gtk.GDBus.C.UnixFD" value="1"/>
+ <arg name="greeting" direction="in" type="s"/>
+ <arg name="response" direction="out" type="s"/>
+ </method>
+ </interface>
+ </node>"""
+
+ result = self.runCodegenWithInterface(
+ interface_xml, "--output", "/dev/stdout", "--body"
+ )
+ stripped_out = result.out.strip()
+ self.assertFalse(result.err)
+ self.assertIs(stripped_out.count("g_cclosure_marshal_generic"), 0)
+
+ func_name = f"test_fdpassing_method_marshal_hello_fd"
+ self.assertIs(stripped_out.count(f"{func_name},"), 1)
+ self.assertIs(stripped_out.count(f"{func_name} ("), 1)
+
+ index = 1
+ self.assertIs(
+ stripped_out.count(f"g_marshal_value_peek_object (param_values + {index})"),
+ 1,
+ )
+ index += 1
+
+ self.assertIs(
+ stripped_out.count(f"g_marshal_value_peek_object (param_values + {index})"),
+ 1,
+ )
+
+ index += 1
+ self.assertIs(
+ stripped_out.count(f"g_marshal_value_peek_string (param_values + {index})"),
+ 1,
+ )
+ index += 1
+
+ self.assertIs(
+ stripped_out.count("g_value_set_boolean (return_value, v_return);"), 1
+ )
+
def test_generate_valid_docbook(self):
"""Test the basic functionality of the docbook generator."""
xml_contents = """
@@ -679,6 +1473,48 @@ G_END_DECLS
with open("test-org.project.Bar.Frobnicator.xml", "r") as f:
self.assertTrue(ET.parse(f) is not None)
+ def test_indentation_preservation_in_comments(self):
+ """Test if the parser preserves relative indentation in XML comments"""
+ markup_list = """\
+- The mnemonic key activates the object if it is presently enabled onscreen.
+ This typically corresponds to the underlined letter within the widget.
+ Example: "n" in a traditional "New..." menu item or the "a" in "Apply" for
+ a button."""
+
+ xml_contents = """
+ <node>
+ <interface name="org.project.Bar.Frobnicator">
+ <!-- GetKeyBinding:
+ @index: 0-based index of the action to query.
+
+ Gets the keybinding which can be used to activate this action, if one
+ exists. The string returned should contain localized, human-readable,
+ key sequences as they would appear when displayed on screen. It must
+ be in the format "mnemonic;sequence;shortcut".
+
+ - The mnemonic key activates the object if it is presently enabled onscreen.
+ This typically corresponds to the underlined letter within the widget.
+ Example: "n" in a traditional "New..." menu item or the "a" in "Apply" for
+ a button.
+
+ If there is no key binding for this action, return "".
+ -->
+ <method name="GetKeyBinding">
+ <arg type="i" name="index" direction="in"/>
+ <arg type="s" direction="out"/>
+ </method>
+ </interface>
+ </node>
+ """
+ for format, ext in [("rst", "rst"), ("md", "md"), ("docbook", "xml")]:
+ res = self.runCodegenWithInterface(
+ xml_contents, f"--generate-{format}", "test"
+ )
+ self.assertFalse(res.err)
+ self.assertFalse(res.out)
+ with open(f"test-org.project.Bar.Frobnicator.{ext}", "r") as f:
+ self.assertIn(markup_list, f.read())
+
if __name__ == "__main__":
unittest.main(testRunner=taptestrunner.TAPTestRunner())
diff --git a/gio/tests/contexts.c b/gio/tests/contexts.c
index 3b64c7622..0bae8bb61 100644
--- a/gio/tests/contexts.c
+++ b/gio/tests/contexts.c
@@ -81,7 +81,7 @@ idle_start_test1_thread (gpointer loop)
g_mutex_lock (&test1_mutex);
thread = g_thread_new ("test1", test1_thread, NULL);
- time = g_get_monotonic_time () + 2 * G_TIME_SPAN_SECOND;
+ time = g_get_monotonic_time () + 20 * G_TIME_SPAN_SECOND;
while (!test1_done)
{
io_completed = g_cond_wait_until (&test1_cond, &test1_mutex, time);
diff --git a/gio/tests/converter-stream.c b/gio/tests/converter-stream.c
index b146cf43f..761be0c67 100644
--- a/gio/tests/converter-stream.c
+++ b/gio/tests/converter-stream.c
@@ -2,6 +2,8 @@
* Copyright (C) 2009 Red Hat, Inc.
* Authors: Alexander Larsson <alexl@redhat.com>
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/credentials.c b/gio/tests/credentials.c
index 070019f1c..eac056546 100644
--- a/gio/tests/credentials.c
+++ b/gio/tests/credentials.c
@@ -2,6 +2,8 @@
*
* Copyright © 2012 Collabora Ltd.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/cxx.cpp b/gio/tests/cxx.cpp
index 60d295b19..630eeab99 100644
--- a/gio/tests/cxx.cpp
+++ b/gio/tests/cxx.cpp
@@ -21,8 +21,51 @@
#include <gio/gio.h>
+static void
+test_name (void)
+{
+ GTask *task = NULL;
+ char *orig = g_strdup ("some task");
+
+ task = g_task_new (NULL, NULL, NULL, NULL);
+ (g_task_set_name) (task, orig);
+ g_assert_cmpstr (g_task_get_name (task), ==, "some task");
+
+ (g_task_set_name) (task, "some other name");
+ g_assert_cmpstr (g_task_get_name (task), ==, "some other name");
+
+ g_clear_object (&task);
+ g_free (orig);
+}
+
+static void
+test_name_macro_wrapper (void)
+{
+ GTask *task = NULL;
+ char *orig = g_strdup ("some task");
+
+ task = g_task_new (NULL, NULL, NULL, NULL);
+ g_task_set_name (task, orig);
+ g_assert_cmpstr (g_task_get_name (task), ==, "some task");
+
+ g_task_set_name (task, "some other name");
+ g_assert_cmpstr (g_task_get_name (task), ==, "some other name");
+
+ g_clear_object (&task);
+ g_free (orig);
+}
+
int
-main ()
+main (int argc, char **argv)
{
- return 0;
+#if G_CXX_STD_CHECK_VERSION (11)
+ g_test_init (&argc, &argv, NULL);
+#else
+ g_test_init (&argc, &argv, static_cast<void *>(NULL));
+#endif
+
+ g_test_add_func ("/gtask/name", test_name);
+ g_test_add_func ("/gtask/name/macro-wrapper", test_name_macro_wrapper);
+
+ return g_test_run ();
}
diff --git a/gio/tests/data-input-stream.c b/gio/tests/data-input-stream.c
index 0d59cac25..280c93fac 100644
--- a/gio/tests/data-input-stream.c
+++ b/gio/tests/data-input-stream.c
@@ -2,6 +2,8 @@
* Copyright (C) 2008 Red Hat, Inc.
* Authors: Tomas Bzatek <tbzatek@redhat.com>
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/data-output-stream.c b/gio/tests/data-output-stream.c
index 0872edf9c..0b324794d 100644
--- a/gio/tests/data-output-stream.c
+++ b/gio/tests/data-output-stream.c
@@ -2,6 +2,8 @@
* Copyright (C) 2008 Red Hat, Inc.
* Authors: Tomas Bzatek <tbzatek@redhat.com>
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/dbus-appinfo.c b/gio/tests/dbus-appinfo.c
index 91e76403c..d84de7de9 100644
--- a/gio/tests/dbus-appinfo.c
+++ b/gio/tests/dbus-appinfo.c
@@ -226,13 +226,24 @@ test_application_before_emit (GApplication *application,
GVariant *platform_data)
{
const gchar *startup_id;
+ gsize i;
g_assert (!saw_startup_id);
- if (!g_variant_lookup (platform_data, "desktop-startup-id", "&s", &startup_id))
- return;
+ const gchar *startup_id_keys[] = {
+ "desktop-startup-id",
+ "activation-token",
+ NULL,
+ };
+
+ for (i = 0; startup_id_keys[i] != NULL; i++)
+ {
+ if (!g_variant_lookup (platform_data, startup_id_keys[i], "&s", &startup_id))
+ return;
+
+ g_assert_cmpstr (startup_id, ==, "expected startup id");
+ }
- g_assert_cmpstr (startup_id, ==, "expected startup id");
saw_startup_id = TRUE;
}
diff --git a/gio/tests/de.po b/gio/tests/de.po
index eed161c68..00531960b 100644
--- a/gio/tests/de.po
+++ b/gio/tests/de.po
@@ -15,3 +15,6 @@ msgstr "\"Unbenannt\""
msgctxt "keyboard label"
msgid "\"BackSpace\""
msgstr "\"Löschen\""
+
+msgid "\"12:00 AM\""
+msgstr "\"00:00\"" \ No newline at end of file
diff --git a/gio/tests/defaultvalue.c b/gio/tests/defaultvalue.c
index 543b3e491..f99f98b28 100644
--- a/gio/tests/defaultvalue.c
+++ b/gio/tests/defaultvalue.c
@@ -193,6 +193,9 @@ main (int argc, char **argv)
g_setenv ("GIO_USE_VFS", "local", TRUE);
g_setenv ("GSETTINGS_BACKEND", "memory", TRUE);
+ /* Disable deprecation warnings when we poke at deprecated properties */
+ g_setenv ("G_ENABLE_DIAGNOSTIC", "0", TRUE);
+
g_test_init (&argc, &argv, NULL);
/* Create one test bus for all tests, as we have a lot of very small
diff --git a/gio/tests/desktop-app-info.c b/gio/tests/desktop-app-info.c
index 87bf39dc7..594ec945d 100644
--- a/gio/tests/desktop-app-info.c
+++ b/gio/tests/desktop-app-info.c
@@ -25,9 +25,69 @@
#include <glib/gstdio.h>
#include <gio/gio.h>
#include <gio/gdesktopappinfo.h>
+#include <gio/gunixinputstream.h>
+#include <glib-unix.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+G_DECLARE_FINAL_TYPE (TestLaunchContext, test_launch_context, TEST,
+ LAUNCH_CONTEXT, GAppLaunchContext);
+
+struct _TestLaunchContext {
+ GAppLaunchContext parent;
+
+ char *overriden_startup_notify_id;
+};
+
+struct _TestLaunchContextClass {
+ GAppLaunchContextClass parent;
+};
+
+G_DEFINE_FINAL_TYPE (TestLaunchContext, test_launch_context,
+ G_TYPE_APP_LAUNCH_CONTEXT);
+
+static void
+test_launch_context_init (TestLaunchContext *test_context)
+{
+}
+
+static char *
+test_launch_context_get_startup_notify_id (GAppLaunchContext *context,
+ GAppInfo *app_info,
+ GList *files)
+{
+ TestLaunchContext *test_context = TEST_LAUNCH_CONTEXT (context);
+
+ if (test_context->overriden_startup_notify_id)
+ return g_strdup (test_context->overriden_startup_notify_id);
+
+ if (g_app_info_get_id (app_info))
+ return g_strdup (g_app_info_get_id (app_info));
+
+ if (g_app_info_get_display_name (app_info))
+ return g_strdup (g_app_info_get_display_name (app_info));
+
+ return g_strdup (g_app_info_get_commandline (app_info));
+}
+
+static void
+test_launch_context_get_startup_notify_dispose (GObject *object)
+{
+ TestLaunchContext *test_context = TEST_LAUNCH_CONTEXT (object);
+
+ g_clear_pointer (&test_context->overriden_startup_notify_id, g_free);
+ G_OBJECT_CLASS (test_launch_context_parent_class)->dispose (object);
+}
+
+static void
+test_launch_context_class_init (TestLaunchContextClass *klass)
+{
+ G_APP_LAUNCH_CONTEXT_CLASS (klass)->get_startup_notify_id = test_launch_context_get_startup_notify_id;
+ G_OBJECT_CLASS (klass)->dispose = test_launch_context_get_startup_notify_dispose;
+}
static GAppInfo *
create_command_line_app_info (const char *name,
@@ -522,20 +582,8 @@ wait_for_file (const gchar *want_this,
const gchar *but_not_this,
const gchar *or_this)
{
- guint retries = 600;
-
- /* I hate time-based conditions in tests, but this will wait up to one
- * whole minute for "touch file" to finish running. I think it should
- * be OK.
- *
- * 600 * 100ms = 60 seconds.
- */
while (access (want_this, F_OK) != 0)
- {
- g_usleep (100000); /* 100ms */
- g_assert_cmpuint (retries, >, 0);
- retries--;
- }
+ g_usleep (100000); /* 100ms */
g_assert_cmpuint (access (but_not_this, F_OK), !=, 0);
g_assert_cmpuint (access (or_this, F_OK), !=, 0);
@@ -627,6 +675,7 @@ run_apps (const gchar *command,
argv[2] = g_strdup (arg);
argv[3] = NULL;
+ g_assert_true (g_file_test (argv[0], G_FILE_TEST_IS_EXECUTABLE));
envp = g_get_environ ();
if (with_usr)
@@ -818,9 +867,12 @@ test_search (void)
assert_search ("image viewer", "", TRUE, TRUE, NULL, NULL);
/* There're "flatpak" apps (clocks) installed as well - they should *not*
- * match the prefix command ("/bin/sh") in the Exec= line though.
+ * match the prefix command ("/bin/sh") in the Exec= line though. Then with
+ * substring matching, Image Viewer (eog) should be in next group because it
+ * contains "Slideshow" in its keywords.
*/
- assert_search ("sh", "gnome-terminal.desktop\n", TRUE, FALSE, NULL, NULL);
+ assert_search ("sh", "gnome-terminal.desktop\n"
+ "eog.desktop\n", TRUE, FALSE, NULL, NULL);
/* "frobnicator.desktop" is ignored by get_all() because the binary is
* missing, but search should still find it (to avoid either stale results
@@ -835,11 +887,12 @@ test_search (void)
assert_search ("files file fil fi f", "nautilus.desktop\n"
"gedit.desktop\n", TRUE, TRUE, NULL, NULL);
- /* "con" will match "connect" and "contacts" on name but dconf only on
- * the "config" keyword
+ /* "con" will match "connect" and "contacts" on name with prefix match in
+ * first group, then match "Dconf Editor" and "Desktop Icons" with substring
+ * match in next group.
*/
- assert_search ("con", "nautilus-connect-server.desktop gnome-contacts.desktop\n"
- "dconf-editor.desktop\n", TRUE, TRUE, NULL, NULL);
+ assert_search ("con", "gnome-contacts.desktop nautilus-connect-server.desktop\n"
+ "dconf-editor.desktop nautilus-classic.desktop\n", TRUE, TRUE, NULL, NULL);
/* "gnome" will match "eye of gnome" from the user's directory, plus
* matching "GNOME Clocks" X-GNOME-FullName. It's only a comment on
@@ -947,9 +1000,61 @@ on_launch_started (GAppLaunchContext *context, GAppInfo *info, GVariant *platfor
gboolean *invoked = data;
g_assert_true (G_IS_APP_LAUNCH_CONTEXT (context));
+
+ if (TEST_IS_LAUNCH_CONTEXT (context))
+ {
+ GVariantDict dict;
+ const char *sni;
+ char *expected_sni;
+
+ g_assert_nonnull (platform_data);
+ g_variant_dict_init (&dict, platform_data);
+ g_assert_true (
+ g_variant_dict_lookup (&dict, "startup-notification-id", "&s", &sni));
+ expected_sni = g_app_launch_context_get_startup_notify_id (context, info, NULL);
+ g_assert_cmpstr (sni, ==, expected_sni);
+
+ g_free (expected_sni);
+ g_variant_dict_clear (&dict);
+ }
+ else
+ {
+ /* Our default context doesn't fill in any platform data */
+ g_assert_null (platform_data);
+ }
+
+ g_assert_false (*invoked);
+ *invoked = TRUE;
+}
+
+static void
+on_launched (GAppLaunchContext *context, GAppInfo *info, GVariant *platform_data, gpointer data)
+{
+ gboolean *launched = data;
+ GVariantDict dict;
+ int pid;
+
+ g_assert_true (G_IS_APP_LAUNCH_CONTEXT (context));
g_assert_true (G_IS_APP_INFO (info));
- /* Our default context doesn't fill in any platform data */
- g_assert_null (platform_data);
+ g_assert_nonnull (platform_data);
+ g_variant_dict_init (&dict, platform_data);
+ g_assert_true (g_variant_dict_lookup (&dict, "pid", "i", &pid, NULL));
+ g_assert_cmpint (pid, >, 1);
+
+ g_assert_false (*launched);
+ *launched = TRUE;
+
+ g_variant_dict_clear (&dict);
+}
+
+static void
+on_launch_failed (GAppLaunchContext *context, const char *startup_notify_id, gpointer data)
+{
+ gboolean *invoked = data;
+
+ g_assert_true (G_IS_APP_LAUNCH_CONTEXT (context));
+ g_assert_nonnull (startup_notify_id);
+ g_test_message ("Application launch failed: %s", startup_notify_id);
g_assert_false (*invoked);
*invoked = TRUE;
@@ -966,27 +1071,24 @@ test_launch_as_manager (void)
gboolean retval;
const gchar *path;
gboolean invoked = FALSE;
+ gboolean launched = FALSE;
+ gboolean failed = FALSE;
GAppLaunchContext *context;
- if (g_getenv ("DISPLAY") == NULL || g_getenv ("DISPLAY")[0] == '\0')
- {
- g_test_skip ("No DISPLAY. Skipping test.");
- return;
- }
-
path = g_test_get_filename (G_TEST_BUILT, "appinfo-test.desktop", NULL);
appinfo = g_desktop_app_info_new_from_filename (path);
+ g_assert_true (G_IS_APP_INFO (appinfo));
- if (appinfo == NULL)
- {
- g_test_skip ("appinfo-test binary not installed");
- return;
- }
-
- context = g_app_launch_context_new ();
+ context = g_object_new (test_launch_context_get_type (), NULL);
g_signal_connect (context, "launch-started",
G_CALLBACK (on_launch_started),
&invoked);
+ g_signal_connect (context, "launched",
+ G_CALLBACK (on_launched),
+ &launched);
+ g_signal_connect (context, "launch-failed",
+ G_CALLBACK (on_launch_failed),
+ &failed);
retval = g_desktop_app_info_launch_uris_as_manager (appinfo, NULL, context, 0,
NULL, NULL,
NULL, NULL,
@@ -994,8 +1096,12 @@ test_launch_as_manager (void)
g_assert_no_error (error);
g_assert_true (retval);
g_assert_true (invoked);
+ g_assert_true (launched);
+ g_assert_false (failed);
invoked = FALSE;
+ launched = FALSE;
+ failed = FALSE;
retval = g_desktop_app_info_launch_uris_as_manager_with_fds (appinfo,
NULL, context, 0,
NULL, NULL,
@@ -1005,7 +1111,56 @@ test_launch_as_manager (void)
g_assert_no_error (error);
g_assert_true (retval);
g_assert_true (invoked);
+ g_assert_true (launched);
+ g_assert_false (failed);
+
+ g_object_unref (appinfo);
+ g_assert_finalize_object (context);
+}
+static void
+test_launch_as_manager_fail (void)
+{
+ GAppLaunchContext *context;
+ GDesktopAppInfo *appinfo;
+ GError *error = NULL;
+ gboolean retval;
+ const gchar *path;
+ gboolean launch_started = FALSE;
+ gboolean launched = FALSE;
+ gboolean failed = FALSE;
+
+ g_test_summary ("Tests that launch-errors are properly handled, we force " \
+ "this by using invalid FD's values when launching as manager");
+
+ path = g_test_get_filename (G_TEST_BUILT, "appinfo-test.desktop", NULL);
+ appinfo = g_desktop_app_info_new_from_filename (path);
+ g_assert_true (G_IS_APP_INFO (appinfo));
+
+ context = g_object_new (test_launch_context_get_type (), NULL);
+ g_signal_connect (context, "launch-started",
+ G_CALLBACK (on_launch_started),
+ &launch_started);
+ g_signal_connect (context, "launched",
+ G_CALLBACK (on_launched),
+ &launched);
+ g_signal_connect (context, "launch-failed",
+ G_CALLBACK (on_launch_failed),
+ &failed);
+
+ retval = g_desktop_app_info_launch_uris_as_manager_with_fds (appinfo,
+ NULL, context, 0,
+ NULL, NULL,
+ NULL, NULL,
+ 3000, 3001, 3002,
+ &error);
+ g_assert_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED);
+ g_assert_false (retval);
+ g_assert_true (launch_started);
+ g_assert_false (launched);
+ g_assert_true (failed);
+
+ g_clear_error (&error);
g_object_unref (appinfo);
g_assert_finalize_object (context);
}
@@ -1120,6 +1275,7 @@ test_default_uri_handler_async (void)
GAppInfo *info;
GMainLoop *loop;
gboolean called = FALSE;
+ gint64 start_time, touch_time;
loop = g_main_loop_new (NULL, FALSE);
info = create_app_info_toucher ("Touch Handled", "handled-async",
@@ -1128,6 +1284,7 @@ test_default_uri_handler_async (void)
g_assert_true (G_IS_APP_INFO (info));
g_assert_nonnull (file_path);
+ start_time = g_get_real_time ();
g_app_info_launch_default_for_uri_async ("glib-async-touch://touch-me", NULL,
NULL,
on_launch_default_for_uri_success_cb,
@@ -1136,6 +1293,7 @@ test_default_uri_handler_async (void)
while (!g_file_test (file_path, G_FILE_TEST_IS_REGULAR) || !called)
g_main_context_iteration (NULL, FALSE);
+ touch_time = g_get_real_time () - start_time;
g_assert_true (called);
g_assert_true (g_file_test (file_path, G_FILE_TEST_IS_REGULAR));
@@ -1156,11 +1314,13 @@ test_default_uri_handler_async (void)
g_cancellable_cancel (cancellable);
g_main_loop_run (loop);
- /* Once started our touch app may take some time before having written the
- * file, so let's wait a bit here before ensuring that the file has been
- * created as expected.
+ /* If started, our touch app would take some time to actually write the
+ * file to disk, so let's wait a bit here to ensure that the file isn't
+ * inadvertently getting created when a launch operation is canceled up
+ * front. Give it 3× as long as the successful case took, to allow for
+ * some variance.
*/
- g_usleep (G_USEC_PER_SEC / 10);
+ g_usleep (touch_time * 3);
g_assert_false (g_file_test (file_path, G_FILE_TEST_IS_REGULAR));
g_object_unref (info);
@@ -1180,10 +1340,543 @@ test_id (void)
g_free (result);
}
+static const char *
+get_terminal_divider (const char *terminal_name)
+{
+ if (g_str_equal (terminal_name, "xdg-terminal-exec"))
+ return NULL;
+ if (g_str_equal (terminal_name, "kgx"))
+ return "-e";
+ if (g_str_equal (terminal_name, "gnome-terminal"))
+ return "--";
+ if (g_str_equal (terminal_name, "tilix"))
+ return "-e";
+ if (g_str_equal (terminal_name, "konsole"))
+ return "-e";
+ if (g_str_equal (terminal_name, "nxterm"))
+ return "-e";
+ if (g_str_equal (terminal_name, "color-xterm"))
+ return "-e";
+ if (g_str_equal (terminal_name, "rxvt"))
+ return "-e";
+ if (g_str_equal (terminal_name, "dtterm"))
+ return "-e";
+ if (g_str_equal (terminal_name, "xterm"))
+ return "-e";
+ if (g_str_equal (terminal_name, "mate-terminal"))
+ return "-x";
+ if (g_str_equal (terminal_name, "xfce4-terminal"))
+ return "-x";
+
+ g_return_val_if_reached (NULL);
+}
+
+typedef enum {
+ TERMINAL_LAUNCH_TYPE_COMMAND_LINE_WITH_PATH_OVERRIDE,
+ TERMINAL_LAUNCH_TYPE_COMMAND_LINE_WITH_CONTEXT,
+ TERMINAL_LAUNCH_TYPE_KEY_FILE_WITH_PATH,
+} TerminalLaunchType;
+
+typedef struct {
+ const char *exec;
+ TerminalLaunchType type;
+} TerminalLaunchData;
+
+static TerminalLaunchData *
+terminal_launch_data_new (const char *exec, TerminalLaunchType type)
+{
+ TerminalLaunchData *d = NULL;
+
+ d = g_new0 (TerminalLaunchData, 1);
+ d->exec = exec;
+ d->type = type;
+
+ return d;
+}
+
+static void
+test_launch_uris_with_terminal (gconstpointer data)
+{
+ int fd;
+ int ret;
+ int flags;
+ int terminal_divider_arg_length;
+ const TerminalLaunchData *launch_data = data;
+ const char *terminal_exec = launch_data->exec;
+ char *old_path = NULL;
+ char *command_line;
+ char *bin_path;
+ char *terminal_path;
+ char *output_fd_path;
+ char *script_contents;
+ char *output_contents = NULL;
+ char *sh;
+ GAppInfo *app_info;
+ GList *uris;
+ GList *paths;
+ GStrv output_args;
+ GError *error = NULL;
+ GInputStream *input_stream;
+ GDataInputStream *data_input_stream;
+ GAppLaunchContext *launch_context;
+
+ sh = g_find_program_in_path ("sh");
+ g_assert_nonnull (sh);
+
+ bin_path = g_dir_make_tmp ("bin-path-XXXXXX", &error);
+ g_assert_no_error (error);
+
+ launch_context = g_object_new (test_launch_context_get_type (), NULL);
+
+ switch (launch_data->type)
+ {
+ case TERMINAL_LAUNCH_TYPE_COMMAND_LINE_WITH_PATH_OVERRIDE:
+ old_path = g_strdup (g_getenv ("PATH"));
+ g_assert_true (g_setenv ("PATH", bin_path, TRUE));
+ break;
+
+ case TERMINAL_LAUNCH_TYPE_COMMAND_LINE_WITH_CONTEXT:
+ g_app_launch_context_setenv (launch_context, "PATH", bin_path);
+ break;
+
+ case TERMINAL_LAUNCH_TYPE_KEY_FILE_WITH_PATH:
+ g_app_launch_context_setenv (launch_context, "PATH", "/not/valid");
+ break;
+
+ default:
+ g_assert_not_reached ();
+ }
+
+ terminal_path = g_build_filename (bin_path, terminal_exec, NULL);
+ output_fd_path = g_build_filename (bin_path, "fifo", NULL);
+
+ ret = mkfifo (output_fd_path, 0600);
+ g_assert_cmpint (ret, ==, 0);
+
+ fd = g_open (output_fd_path, O_RDONLY | O_CLOEXEC | O_NONBLOCK, 0);
+ g_assert_cmpint (fd, >=, 0);
+
+ flags = fcntl (fd, F_GETFL);
+ g_assert_cmpint (flags, >=, 0);
+
+ ret = fcntl (fd, F_SETFL, flags & ~O_NONBLOCK);
+ g_assert_cmpint (ret, ==, 0);
+
+ input_stream = g_unix_input_stream_new (fd, TRUE);
+ data_input_stream = g_data_input_stream_new (input_stream);
+ script_contents = g_strdup_printf ("#!%s\n" \
+ "out='%s'\n"
+ "printf '%%s\\n' \"$*\" > \"$out\"\n",
+ sh,
+ output_fd_path);
+ g_file_set_contents (terminal_path, script_contents, -1, &error);
+ g_assert_no_error (error);
+ g_assert_cmpint (g_chmod (terminal_path, 0500), ==, 0);
+
+ g_test_message ("Fake '%s' terminal created as: %s", terminal_exec, terminal_path);
+
+ command_line = g_strdup_printf ("true %s-argument", terminal_exec);
+
+ if (launch_data->type == TERMINAL_LAUNCH_TYPE_KEY_FILE_WITH_PATH)
+ {
+ GKeyFile *key_file;
+ char *key_file_contents;
+ const char base_file[] =
+ "[Desktop Entry]\n"
+ "Type=Application\n"
+ "Name=terminal launched app\n"
+ "Terminal=true\n"
+ "Path=%s\n"
+ "Exec=%s\n";
+
+ key_file = g_key_file_new ();
+ key_file_contents = g_strdup_printf (base_file, bin_path, command_line);
+
+ g_assert_true (
+ g_key_file_load_from_data (key_file, key_file_contents, -1,
+ G_KEY_FILE_NONE, NULL));
+
+ app_info = (GAppInfo*) g_desktop_app_info_new_from_keyfile (key_file);
+ g_assert_true (G_IS_DESKTOP_APP_INFO (app_info));
+ g_assert_true (
+ g_desktop_app_info_get_boolean (G_DESKTOP_APP_INFO (app_info), "Terminal"));
+
+ g_key_file_unref (key_file);
+ g_free (key_file_contents);
+ }
+ else
+ {
+ app_info = g_app_info_create_from_commandline (command_line,
+ "Test App on Terminal",
+ G_APP_INFO_CREATE_NEEDS_TERMINAL |
+ G_APP_INFO_CREATE_SUPPORTS_URIS,
+ &error);
+ g_assert_no_error (error);
+ }
+
+ paths = g_list_prepend (NULL, bin_path);
+ uris = g_list_prepend (NULL, g_filename_to_uri (bin_path, NULL, &error));
+ g_assert_no_error (error);
+
+ paths = g_list_prepend (paths, (gpointer) g_get_user_data_dir ());
+ uris = g_list_append (uris, g_filename_to_uri (g_get_user_data_dir (), NULL, &error));
+ g_assert_no_error (error);
+
+ g_assert_cmpint (g_list_length (paths), ==, 2);
+ g_app_info_launch_uris (app_info, uris, launch_context, &error);
+ g_assert_no_error (error);
+
+ while (output_contents == NULL)
+ {
+ output_contents =
+ g_data_input_stream_read_upto (data_input_stream, "\n", 1, NULL, NULL, &error);
+ g_assert_no_error (error);
+
+ if (output_contents == NULL)
+ g_usleep (G_USEC_PER_SEC / 10);
+ }
+ g_test_message ("'%s' called with arguments: '%s'", terminal_exec, output_contents);
+
+ g_data_input_stream_read_byte (data_input_stream, NULL, &error);
+ g_assert_no_error (error);
+
+ output_args = g_strsplit (output_contents, " ", -1);
+ g_clear_pointer (&output_contents, g_free);
+
+ terminal_divider_arg_length = (get_terminal_divider (terminal_exec) != NULL) ? 1 : 0;
+ g_assert_cmpuint (g_strv_length (output_args), ==, 3 + terminal_divider_arg_length);
+ if (terminal_divider_arg_length == 1)
+ {
+ g_assert_cmpstr (output_args[0], ==, get_terminal_divider (terminal_exec));
+ g_assert_cmpstr (output_args[1], ==, "true");
+ g_assert_cmpstr (output_args[2], ==, command_line + 5);
+ }
+ else
+ {
+ g_assert_cmpstr (output_args[0], ==, "true");
+ g_assert_cmpstr (output_args[1], ==, command_line + 5);
+ }
+ paths = g_list_delete_link (paths,
+ g_list_find_custom (paths, output_args[2 + terminal_divider_arg_length], g_str_equal));
+ g_assert_cmpint (g_list_length (paths), ==, 1);
+ g_clear_pointer (&output_args, g_strfreev);
+
+ while (output_contents == NULL)
+ {
+ output_contents =
+ g_data_input_stream_read_upto (data_input_stream, "\n", 1, NULL, NULL, &error);
+ g_assert_no_error (error);
+
+ if (output_contents == NULL)
+ g_usleep (G_USEC_PER_SEC / 10);
+ }
+ g_test_message ("'%s' called with arguments: '%s'", terminal_exec, output_contents);
+
+ g_data_input_stream_read_byte (data_input_stream, NULL, &error);
+ g_assert_no_error (error);
+
+ output_args = g_strsplit (output_contents, " ", -1);
+ g_clear_pointer (&output_contents, g_free);
+ g_assert_cmpuint (g_strv_length (output_args), ==, 3 + terminal_divider_arg_length);
+ if (terminal_divider_arg_length > 0)
+ {
+ g_assert_cmpstr (output_args[0], ==, get_terminal_divider (terminal_exec));
+ g_assert_cmpstr (output_args[1], ==, "true");
+ g_assert_cmpstr (output_args[2], ==, command_line + 5);
+ }
+ else
+ {
+ g_assert_cmpstr (output_args[0], ==, "true");
+ g_assert_cmpstr (output_args[1], ==, command_line + 5);
+ }
+ paths = g_list_delete_link (paths,
+ g_list_find_custom (paths, output_args[2 + terminal_divider_arg_length], g_str_equal));
+ g_assert_cmpint (g_list_length (paths), ==, 0);
+ g_clear_pointer (&output_args, g_strfreev);
+
+ g_assert_null (paths);
+
+ if (launch_data->type == TERMINAL_LAUNCH_TYPE_COMMAND_LINE_WITH_PATH_OVERRIDE)
+ g_assert_true (g_setenv ("PATH", old_path, TRUE));
+
+ g_close (fd, &error);
+ g_assert_no_error (error);
+
+ g_free (sh);
+ g_free (command_line);
+ g_free (bin_path);
+ g_free (terminal_path);
+ g_free (output_fd_path);
+ g_free (script_contents);
+ g_free (old_path);
+ g_clear_pointer (&output_args, g_strfreev);
+ g_clear_pointer (&output_contents, g_free);
+ g_clear_object (&data_input_stream);
+ g_clear_object (&input_stream);
+ g_clear_object (&app_info);
+ g_clear_object (&launch_context);
+ g_clear_error (&error);
+ g_clear_list (&paths, NULL);
+ g_clear_list (&uris, g_free);
+}
+
+static void
+test_launch_uris_with_invalid_terminal (void)
+{
+ char *old_path;
+ char *bin_path;
+ GAppInfo *app_info;
+ GError *error = NULL;
+
+ bin_path = g_dir_make_tmp ("bin-path-XXXXXX", &error);
+ g_assert_no_error (error);
+
+ old_path = g_strdup (g_getenv ("PATH"));
+ g_assert_true (g_setenv ("PATH", bin_path, TRUE));
+
+ app_info = g_app_info_create_from_commandline ("true invalid-glib-terminal",
+ "Test App on Invalid Terminal",
+ G_APP_INFO_CREATE_NEEDS_TERMINAL |
+ G_APP_INFO_CREATE_SUPPORTS_URIS,
+ &error);
+ g_assert_no_error (error);
+
+ g_app_info_launch_uris (app_info, NULL, NULL, &error);
+ g_assert_error (error, G_IO_ERROR, G_IO_ERROR_FAILED);
+ g_clear_error (&error);
+
+ g_assert_true (g_setenv ("PATH", old_path, TRUE));
+
+ g_clear_object (&app_info);
+ g_clear_error (&error);
+ g_free (bin_path);
+ g_free (old_path);
+}
+
+static void
+test_app_path (void)
+{
+ GDesktopAppInfo *appinfo;
+ const char *desktop_path;
+
+ desktop_path = g_test_get_filename (G_TEST_BUILT, "appinfo-test-path.desktop", NULL);
+ appinfo = g_desktop_app_info_new_from_filename (desktop_path);
+
+ g_assert_true (G_IS_DESKTOP_APP_INFO (appinfo));
+
+ g_clear_object (&appinfo);
+}
+
+static void
+test_app_path_wrong (void)
+{
+ GKeyFile *key_file;
+ GDesktopAppInfo *appinfo;
+ const gchar bad_try_exec_file_contents[] =
+ "[Desktop Entry]\n"
+ "Type=Application\n"
+ "Name=appinfo-test\n"
+ "TryExec=appinfo-test\n"
+ "Path=this-must-not-exist‼\n"
+ "Exec=true\n";
+ const gchar bad_exec_file_contents[] =
+ "[Desktop Entry]\n"
+ "Type=Application\n"
+ "Name=appinfo-test\n"
+ "TryExec=true\n"
+ "Path=this-must-not-exist‼\n"
+ "Exec=appinfo-test\n";
+
+ g_assert_true (
+ g_file_test (g_test_get_filename (G_TEST_BUILT, "appinfo-test", NULL),
+ G_FILE_TEST_IS_REGULAR | G_FILE_TEST_IS_EXECUTABLE));
+
+ key_file = g_key_file_new ();
+
+ g_assert_true (
+ g_key_file_load_from_data (key_file, bad_try_exec_file_contents, -1,
+ G_KEY_FILE_NONE, NULL));
+
+ appinfo = g_desktop_app_info_new_from_keyfile (key_file);
+ g_assert_false (G_IS_DESKTOP_APP_INFO (appinfo));
+
+ g_assert_true (
+ g_key_file_load_from_data (key_file, bad_exec_file_contents, -1,
+ G_KEY_FILE_NONE, NULL));
+
+ appinfo = g_desktop_app_info_new_from_keyfile (key_file);
+ g_assert_false (G_IS_DESKTOP_APP_INFO (appinfo));
+
+ g_clear_pointer (&key_file, g_key_file_unref);
+ g_clear_object (&appinfo);
+}
+
+static void
+test_launch_startup_notify_fail (void)
+{
+ GAppInfo *app_info;
+ GAppLaunchContext *context;
+ GError *error = NULL;
+ gboolean launch_started;
+ gboolean launch_failed;
+ gboolean launched;
+ GList *uris;
+
+ app_info = g_app_info_create_from_commandline ("this-must-not-exist‼",
+ "failing app",
+ G_APP_INFO_CREATE_NONE |
+ G_APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION,
+ &error);
+ g_assert_no_error (error);
+
+ context = g_object_new (test_launch_context_get_type (), NULL);
+ g_signal_connect (context, "launch-started",
+ G_CALLBACK (on_launch_started),
+ &launch_started);
+ g_signal_connect (context, "launched",
+ G_CALLBACK (on_launch_started),
+ &launched);
+ g_signal_connect (context, "launch-failed",
+ G_CALLBACK (on_launch_failed),
+ &launch_failed);
+
+ launch_started = FALSE;
+ launch_failed = FALSE;
+ launched = FALSE;
+ uris = g_list_prepend (NULL, g_file_new_for_uri ("foo://bar"));
+ uris = g_list_prepend (uris, g_file_new_for_uri ("bar://foo"));
+ g_assert_false (g_app_info_launch (app_info, uris, context, &error));
+ g_assert_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_NOENT);
+ g_assert_true (launch_started);
+ g_assert_true (launch_failed);
+ g_assert_false (launched);
+
+ g_clear_error (&error);
+ g_clear_object (&app_info);
+ g_clear_object (&context);
+ g_clear_list (&uris, g_object_unref);
+}
+
+static void
+test_launch_fail (void)
+{
+ GAppInfo *app_info;
+ GError *error = NULL;
+
+ app_info = g_app_info_create_from_commandline ("this-must-not-exist‼",
+ "failing app",
+ G_APP_INFO_CREATE_NONE,
+ &error);
+ g_assert_no_error (error);
+
+ g_assert_false (g_app_info_launch (app_info, NULL, NULL, &error));
+ g_assert_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_NOENT);
+
+ g_clear_error (&error);
+ g_clear_object (&app_info);
+}
+
+static void
+test_launch_fail_absolute_path (void)
+{
+ GAppInfo *app_info;
+ GError *error = NULL;
+
+ app_info = g_app_info_create_from_commandline ("/nothing/of/this-must-exist‼",
+ NULL,
+ G_APP_INFO_CREATE_NONE,
+ &error);
+ g_assert_no_error (error);
+
+ g_assert_false (g_app_info_launch (app_info, NULL, NULL, &error));
+ g_assert_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_NOENT);
+
+ g_clear_error (&error);
+ g_clear_object (&app_info);
+
+ app_info = g_app_info_create_from_commandline ("/",
+ NULL,
+ G_APP_INFO_CREATE_NONE,
+ &error);
+ g_assert_no_error (error);
+
+ g_assert_false (g_app_info_launch (app_info, NULL, NULL, &error));
+ g_assert_error (error, G_SPAWN_ERROR, G_SPAWN_ERROR_NOENT);
+
+ g_clear_error (&error);
+ g_clear_object (&app_info);
+}
+
+static void
+async_result_cb (GObject *source_object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ GAsyncResult **result_out = user_data;
+
+ g_assert (*result_out == NULL);
+ *result_out = g_object_ref (result);
+ g_main_context_wakeup (g_main_context_get_thread_default ());
+}
+
+static void
+test_launch_fail_dbus (void)
+{
+ GTestDBus *bus = NULL;
+ GDesktopAppInfo *app_info = NULL;
+ GAppLaunchContext *context = NULL;
+ GAsyncResult *result = NULL;
+ GError *error = NULL;
+
+ /* Set up a test session bus to ensure that launching the app happens using
+ * D-Bus rather than spawning. */
+ bus = g_test_dbus_new (G_TEST_DBUS_NONE);
+ g_test_dbus_up (bus);
+
+ app_info = g_desktop_app_info_new_from_filename (g_test_get_filename (G_TEST_DIST, "org.gtk.test.dbusappinfo.desktop", NULL));
+ g_assert_nonnull (app_info);
+
+ g_assert_true (g_desktop_app_info_has_key (app_info, "DBusActivatable"));
+
+ context = g_app_launch_context_new ();
+
+ g_app_info_launch_uris_async (G_APP_INFO (app_info), NULL, context, NULL, async_result_cb, &result);
+
+ while (result == NULL)
+ g_main_context_iteration (NULL, TRUE);
+
+ g_assert_false (g_app_info_launch_uris_finish (G_APP_INFO (app_info), result, &error));
+ g_assert_error (error, G_DBUS_ERROR, G_DBUS_ERROR_SERVICE_UNKNOWN);
+
+ g_test_dbus_down (bus);
+ g_clear_object (&bus);
+
+ g_clear_error (&error);
+ g_clear_object (&result);
+ g_clear_object (&context);
+ g_clear_object (&app_info);
+}
+
int
main (int argc,
char *argv[])
{
+ guint i;
+ const gchar *supported_terminals[] = {
+ "xdg-terminal-exec",
+ "kgx",
+ "gnome-terminal",
+ "mate-terminal",
+ "xfce4-terminal",
+ "tilix",
+ "konsole",
+ "nxterm",
+ "color-xterm",
+ "rxvt",
+ "dtterm",
+ "xterm",
+ };
+
/* While we use %G_TEST_OPTION_ISOLATE_DIRS to create temporary directories
* for each of the tests, we want to use the system MIME registry, assuming
* that it exists and correctly has shared-mime-info installed. */
@@ -1201,10 +1894,49 @@ main (int argc,
g_test_add_func ("/desktop-app-info/search", test_search);
g_test_add_func ("/desktop-app-info/implements", test_implements);
g_test_add_func ("/desktop-app-info/show-in", test_show_in);
+ g_test_add_func ("/desktop-app-info/app-path", test_app_path);
+ g_test_add_func ("/desktop-app-info/app-path/wrong", test_app_path_wrong);
+ g_test_add_func ("/desktop-app-info/launch/fail", test_launch_fail);
+ g_test_add_func ("/desktop-app-info/launch/fail-absolute-path", test_launch_fail_absolute_path);
+ g_test_add_func ("/desktop-app-info/launch/fail-startup-notify", test_launch_startup_notify_fail);
+ g_test_add_func ("/desktop-app-info/launch/fail-dbus", test_launch_fail_dbus);
g_test_add_func ("/desktop-app-info/launch-as-manager", test_launch_as_manager);
+ g_test_add_func ("/desktop-app-info/launch-as-manager/fail", test_launch_as_manager_fail);
g_test_add_func ("/desktop-app-info/launch-default-uri-handler", test_default_uri_handler);
g_test_add_func ("/desktop-app-info/launch-default-uri-handler-async", test_default_uri_handler_async);
g_test_add_func ("/desktop-app-info/id", test_id);
+ for (i = 0; i < G_N_ELEMENTS (supported_terminals); i++)
+ {
+ char *path;
+
+ path = g_strdup_printf ("/desktop-app-info/launch-uris-with-terminal/with-path/%s",
+ supported_terminals[i]);
+ g_test_add_data_func_full (path,
+ terminal_launch_data_new (supported_terminals[i],
+ TERMINAL_LAUNCH_TYPE_COMMAND_LINE_WITH_PATH_OVERRIDE),
+ test_launch_uris_with_terminal, g_free);
+ g_clear_pointer (&path, g_free);
+
+ path = g_strdup_printf ("/desktop-app-info/launch-uris-with-terminal/with-context/%s",
+ supported_terminals[i]);
+ g_test_add_data_func_full (path,
+ terminal_launch_data_new (supported_terminals[i],
+ TERMINAL_LAUNCH_TYPE_COMMAND_LINE_WITH_CONTEXT),
+ test_launch_uris_with_terminal, g_free);
+ g_clear_pointer (&path, g_free);
+
+ path = g_strdup_printf ("/desktop-app-info/launch-uris-with-terminal/with-desktop-path/%s",
+ supported_terminals[i]);
+ g_test_add_data_func_full (path,
+ terminal_launch_data_new (supported_terminals[i],
+ TERMINAL_LAUNCH_TYPE_KEY_FILE_WITH_PATH),
+ test_launch_uris_with_terminal, g_free);
+ g_clear_pointer (&path, g_free);
+ }
+
+ g_test_add_func ("/desktop-app-info/launch-uris-with-terminal/invalid-glib-terminal",
+ test_launch_uris_with_invalid_terminal);
+
return g_test_run ();
}
diff --git a/gio/tests/desktop-files/usr/applications/glade.desktop b/gio/tests/desktop-files/usr/applications/glade.desktop
index dcede22a1..987f8dc0f 100644
--- a/gio/tests/desktop-files/usr/applications/glade.desktop
+++ b/gio/tests/desktop-files/usr/applications/glade.desktop
@@ -27,15 +27,15 @@ X-GNOME-FullName[en_GB]=Glade Interface Designer
X-GNOME-FullName[eo]=Uzantointerfaca dizajnilo Glado
X-GNOME-FullName[pt]=Designer de Interfaces Glade
X-GNOME-FullName[pt_BR]=Construtor de interfaces Glade
-Comment=Create or open user interface designs for GTK+ applications
-Comment[ca]=Creeu o obriu dissenys d'interfície d'usuari per a aplicacions GTK+
-Comment[ca@valencia]=Creeu o obriu dissenys d'interfície d'usuari per a aplicacions GTK+
-Comment[en@shaw]=𐑒𐑮𐑦𐑱𐑑 𐑹 𐑴𐑐𐑩𐑯 𐑿𐑟𐑼 𐑦𐑯𐑑𐑼𐑓𐑱𐑕 𐑛𐑩𐑟𐑲𐑯𐑟 𐑓𐑹 GTK+ 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯𐑟
-Comment[en_CA]=Create or open user interface designs for GTK+ applications
-Comment[en_GB]=Create or open user interface designs for GTK+ applications
-Comment[eo]=Krei aŭ malfermi uzantointerfacan dizajnon por aplikaĵoj de GTK+
-Comment[pt]=Criar ou abrir um desenho de interface de utilizador para aplicações GTK+
-Comment[pt_BR]=Crie ou abra projetos de interface com o usuário para aplicativos GTK+
+Comment=Create or open user interface designs for GTK applications
+Comment[ca]=Creeu o obriu dissenys d'interfície d'usuari per a aplicacions GTK
+Comment[ca@valencia]=Creeu o obriu dissenys d'interfície d'usuari per a aplicacions GTK
+Comment[en@shaw]=𐑒𐑮𐑦𐑱𐑑 𐑹 𐑴𐑐𐑩𐑯 𐑿𐑟𐑼 𐑦𐑯𐑑𐑼𐑓𐑱𐑕 𐑛𐑩𐑟𐑲𐑯𐑟 𐑓𐑹 GTK 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯𐑟
+Comment[en_CA]=Create or open user interface designs for GTK applications
+Comment[en_GB]=Create or open user interface designs for GTK applications
+Comment[eo]=Krei aŭ malfermi uzantointerfacan dizajnon por aplikaĵoj de GTK
+Comment[pt]=Criar ou abrir um desenho de interface de utilizador para aplicações GTK
+Comment[pt_BR]=Crie ou abra projetos de interface com o usuário para aplicativos GTK
Keywords=GUI designer;user interface;ui builder;
Keywords[ca]=dissenyador d'interfícies d'usuari gràfiques;interfície d'usuari;constructor d'interfícies d'usuari;
Keywords[ca@valencia]=dissenyador d'interfícies d'usuari gràfiques;interfície d'usuari;constructor d'interfícies d'usuari;
diff --git a/gio/tests/fake-document-portal.c b/gio/tests/fake-document-portal.c
index 0ef86b59a..585dee58b 100644
--- a/gio/tests/fake-document-portal.c
+++ b/gio/tests/fake-document-portal.c
@@ -125,6 +125,8 @@ main (gint argc, gchar *argv[])
GMainLoop *loop;
guint id;
+ g_log_writer_default_set_use_stderr (TRUE);
+
loop = g_main_loop_new (NULL, FALSE);
id = g_bus_own_name (G_BUS_TYPE_SESSION,
diff --git a/gio/tests/fake-service-name.c b/gio/tests/fake-service-name.c
index 6e317a7cc..0acabd9ec 100644
--- a/gio/tests/fake-service-name.c
+++ b/gio/tests/fake-service-name.c
@@ -98,6 +98,8 @@ main (gint argc, gchar *argv[])
{
guint id;
+ g_log_writer_default_set_use_stderr (TRUE);
+
loop = g_main_loop_new (NULL, FALSE);
introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, NULL);
g_assert (introspection_data != NULL);
diff --git a/gio/tests/file-thumbnail.c b/gio/tests/file-thumbnail.c
index 5fd265f36..254790bb4 100644
--- a/gio/tests/file-thumbnail.c
+++ b/gio/tests/file-thumbnail.c
@@ -29,6 +29,18 @@
G_FILE_ATTRIBUTE_THUMBNAIL_PATH "," \
G_FILE_ATTRIBUTE_THUMBNAILING_FAILED "," \
G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID "," \
+ G_FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL "," \
+ G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL "," \
+ G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL "," \
+ G_FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE "," \
+ G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE "," \
+ G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE "," \
+ G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE "," \
+ G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE "," \
+ G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE "," \
+ G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE "," \
+ G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE "," \
+ G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE "," \
)
/* Must be kept in order, for priority */
@@ -202,6 +214,48 @@ create_thumbnail_from_test_file (const gchar *source_name,
return thumbnail;
}
+static gboolean
+get_size_attributes (const char *size,
+ const gchar **path,
+ const gchar **is_valid,
+ const gchar **failed)
+{
+ if (g_str_equal (size, "normal"))
+ {
+ *path = G_FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL;
+ *is_valid = G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL;
+ *failed = G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL;
+ return TRUE;
+ }
+ else if (g_str_equal (size, "large"))
+ {
+ *path = G_FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE;
+ *is_valid = G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE;
+ *failed = G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE;
+ return TRUE;
+ }
+ else if (g_str_equal (size, "x-large"))
+ {
+ *path = G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE;
+ *is_valid = G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE;
+ *failed = G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE;
+ return TRUE;
+ }
+ else if (g_str_equal (size, "xx-large"))
+ {
+ *path = G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE;
+ *is_valid = G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE;
+ *failed = G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE;
+ return TRUE;
+ }
+
+ *path = NULL;
+ *is_valid = NULL;
+ *failed = NULL;
+
+ return FALSE;
+}
+
static void
test_valid_thumbnail_size (gconstpointer data)
{
@@ -211,6 +265,7 @@ test_valid_thumbnail_size (gconstpointer data)
GError *error = NULL;
GFileInfo *info;
const gchar *size = data;
+ const gchar *path_attr, *failed_attr, *is_valid_attr;
thumbnail = create_thumbnail_from_test_file ("valid.png", size, &source);
info = g_file_query_info (source, THUMBNAILS_ATTRIBS, G_FILE_QUERY_INFO_NONE,
@@ -227,12 +282,31 @@ test_valid_thumbnail_size (gconstpointer data)
==,
g_file_peek_path (thumbnail)
);
+ g_clear_object (&f);
/* TODO: We can't really test this without having a proper thumbnail created
g_assert_true (
g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID));
*/
+ g_assert_true (get_size_attributes (size, &path_attr, &is_valid_attr, &failed_attr));
+
+ g_assert_true (g_file_info_has_attribute (info, path_attr));
+ g_assert_true (g_file_info_has_attribute (info, is_valid_attr));
+ g_assert_false (g_file_info_has_attribute (info, failed_attr));
+
+ f = g_file_new_for_path (g_file_info_get_attribute_byte_string (info, path_attr));
+ g_assert_cmpstr (
+ g_file_info_get_attribute_byte_string (info, path_attr),
+ ==,
+ g_file_peek_path (thumbnail)
+ );
+ g_clear_object (&f);
+
+ /* TODO: We can't really test this without having a proper thumbnail created
+ g_assert_true (g_file_info_get_attribute_boolean (info, is_valid_attr));
+ */
+
g_clear_object (&source);
g_clear_object (&thumbnail);
g_clear_error (&error);
@@ -258,6 +332,22 @@ test_unknown_thumbnail_size (gconstpointer data)
g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID));
g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAILING_FAILED));
+ g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL));
+ g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL));
+ g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL));
+
+ g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE));
+ g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE));
+ g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE));
+
+ g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE));
+ g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE));
+ g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE));
+
+ g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE));
+ g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE));
+ g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE));
+
g_clear_object (&source);
g_clear_object (&thumbnail);
g_clear_error (&error);
@@ -309,6 +399,7 @@ test_thumbnails_size_priority (void)
for (i = 0; i < G_N_ELEMENTS (SIZES_NAMES); i++)
{
GFile *thumbnail = create_thumbnail (source, SIZES_NAMES[i]);
+ const gchar *path_attr, *failed_attr, *is_valid_attr;
GFile *f;
g_ptr_array_add (sized_thumbnails, thumbnail);
@@ -327,6 +418,21 @@ test_thumbnails_size_priority (void)
==,
g_file_peek_path (thumbnail)
);
+ g_clear_object (&f);
+
+ g_assert_true (get_size_attributes (SIZES_NAMES[i],
+ &path_attr, &is_valid_attr, &failed_attr));
+
+ g_assert_true (g_file_info_has_attribute (info, path_attr));
+ g_assert_true (g_file_info_has_attribute (info, is_valid_attr));
+ g_assert_false (g_file_info_has_attribute (info, failed_attr));
+
+ f = g_file_new_for_path (g_file_info_get_attribute_byte_string (info, path_attr));
+ g_assert_cmpstr (
+ g_file_peek_path (f),
+ ==,
+ g_file_peek_path (thumbnail)
+ );
g_clear_object (&info);
g_clear_object (&f);
@@ -334,11 +440,41 @@ test_thumbnails_size_priority (void)
g_assert_cmpuint (sized_thumbnails->len, ==, G_N_ELEMENTS (SIZES_NAMES));
+ /* Ensuring we can access to all the thumbnails by explicit size request */
+ for (i = 0; i < G_N_ELEMENTS (SIZES_NAMES); i++)
+ {
+ GFile *thumbnail = g_ptr_array_index (sized_thumbnails, i);
+ const gchar *path_attr, *failed_attr, *is_valid_attr;
+ GFile *f;
+
+ info = g_file_query_info (source, THUMBNAILS_ATTRIBS,
+ G_FILE_QUERY_INFO_NONE, NULL, &error);
+ g_assert_no_error (error);
+
+ g_assert_true (get_size_attributes (SIZES_NAMES[i],
+ &path_attr, &is_valid_attr, &failed_attr));
+
+ g_assert_true (g_file_info_has_attribute (info, path_attr));
+ g_assert_true (g_file_info_has_attribute (info, is_valid_attr));
+ g_assert_false (g_file_info_has_attribute (info, failed_attr));
+
+ f = g_file_new_for_path (g_file_info_get_attribute_byte_string (info, path_attr));
+ g_assert_cmpstr (
+ g_file_peek_path (f),
+ ==,
+ g_file_peek_path (thumbnail)
+ );
+ g_clear_object (&f);
+
+ g_clear_object (&info);
+ }
+
/* Now removing them in the inverse order, to check this again */
for (i = G_N_ELEMENTS (SIZES_NAMES); i > 1; i--)
{
GFile *thumbnail = g_ptr_array_index (sized_thumbnails, i - 1);
GFile *less_priority_thumbnail = g_ptr_array_index (sized_thumbnails, i - 2);
+ const gchar *path_attr, *failed_attr, *is_valid_attr;
GFile *f;
g_file_delete (thumbnail, NULL, &error);
@@ -358,6 +494,21 @@ test_thumbnails_size_priority (void)
==,
g_file_peek_path (less_priority_thumbnail)
);
+ g_clear_object (&f);
+
+ g_assert_true (get_size_attributes (SIZES_NAMES[i-2],
+ &path_attr, &is_valid_attr, &failed_attr));
+
+ g_assert_true (g_file_info_has_attribute (info, path_attr));
+ g_assert_true (g_file_info_has_attribute (info, is_valid_attr));
+ g_assert_false (g_file_info_has_attribute (info, failed_attr));
+
+ f = g_file_new_for_path (g_file_info_get_attribute_byte_string (info, path_attr));
+ g_assert_cmpstr (
+ g_file_peek_path (f),
+ ==,
+ g_file_peek_path (less_priority_thumbnail)
+ );
g_clear_object (&info);
g_clear_object (&f);
@@ -382,6 +533,28 @@ test_thumbnails_size_priority (void)
g_clear_object (&info);
+ /* And check if we get the failed state for all explicit requests */
+ for (i = 0; i < G_N_ELEMENTS (SIZES_NAMES); i++)
+ {
+ const gchar *path_attr, *failed_attr, *is_valid_attr;
+
+ info = g_file_query_info (source, THUMBNAILS_ATTRIBS,
+ G_FILE_QUERY_INFO_NONE, NULL, &error);
+ g_assert_no_error (error);
+
+ g_assert_true (get_size_attributes (SIZES_NAMES[i],
+ &path_attr, &is_valid_attr, &failed_attr));
+
+ g_assert_false (g_file_info_has_attribute (info, path_attr));
+ g_assert_true (g_file_info_has_attribute (info, is_valid_attr));
+ g_assert_true (g_file_info_has_attribute (info, failed_attr));
+
+ g_assert_false (g_file_info_get_attribute_boolean (info, is_valid_attr));
+ g_assert_true (g_file_info_get_attribute_boolean (info, failed_attr));
+
+ g_clear_object (&info);
+ }
+
/* Removing the failed thumbnail too, so no thumbnail should be available */
g_file_delete (failed_thumbnail, NULL, &error);
g_assert_no_error (error);
@@ -394,6 +567,26 @@ test_thumbnails_size_priority (void)
g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID));
g_assert_false (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_THUMBNAILING_FAILED));
+ g_clear_object (&info);
+
+ for (i = 0; i < G_N_ELEMENTS (SIZES_NAMES); i++)
+ {
+ const gchar *path_attr, *failed_attr, *is_valid_attr;
+
+ info = g_file_query_info (source, THUMBNAILS_ATTRIBS,
+ G_FILE_QUERY_INFO_NONE, NULL, &error);
+ g_assert_no_error (error);
+
+ g_assert_true (get_size_attributes (SIZES_NAMES[i],
+ &path_attr, &is_valid_attr, &failed_attr));
+
+ g_assert_false (g_file_info_has_attribute (info, path_attr));
+ g_assert_false (g_file_info_has_attribute (info, is_valid_attr));
+ g_assert_false (g_file_info_has_attribute (info, failed_attr));
+
+ g_clear_object (&info);
+ }
+
g_clear_object (&source);
g_clear_pointer (&sized_thumbnails, g_ptr_array_unref);
g_clear_object (&failed_thumbnail);
diff --git a/gio/tests/file.c b/gio/tests/file.c
index 79c6d57bb..310981b5d 100644
--- a/gio/tests/file.c
+++ b/gio/tests/file.c
@@ -62,6 +62,22 @@ test_build_filename (void)
}
static void
+test_build_filenamev (void)
+{
+ GFile *file;
+
+ const gchar *args[] = { ".", "some", "directory", "testfile", NULL };
+ file = g_file_new_build_filenamev (args);
+ test_basic_for_file (file, "/some/directory/testfile");
+ g_object_unref (file);
+
+ const gchar *brgs[] = { "testfile", NULL };
+ file = g_file_new_build_filenamev (brgs);
+ test_basic_for_file (file, "/testfile");
+ g_object_unref (file);
+}
+
+static void
test_parent (void)
{
GFile *file;
@@ -452,15 +468,13 @@ created_cb (GObject *source,
data);
}
-static gboolean
+static void
stop_timeout (gpointer user_data)
{
CreateDeleteData *data = user_data;
data->timed_out = TRUE;
g_main_context_wakeup (data->context);
-
- return G_SOURCE_REMOVE;
}
/*
@@ -518,7 +532,7 @@ test_create_delete (gconstpointer d)
/* Use the global default main context */
data->context = NULL;
- data->timeout = g_timeout_add_seconds (10, stop_timeout, data);
+ data->timeout = g_timeout_add_seconds_once (10, stop_timeout, data);
g_file_create_async (data->file, 0, 0, NULL, created_cb, data);
@@ -1310,6 +1324,65 @@ check_test_file (GFile *test_file,
#endif /* __linux__ */
+#ifdef __linux__
+/*
+ * check_cap_dac_override:
+ * @tmpdir: A temporary directory in which we can create and delete files
+ *
+ * Check whether the current process can bypass DAC permissions.
+ *
+ * Traditionally, "privileged" processes (those with effective uid 0)
+ * could do this (and bypass many other checks), and "unprivileged"
+ * processes could not.
+ *
+ * In Linux, the special powers of euid 0 are divided into many
+ * capabilities: see `capabilities(7)`. The one we are interested in
+ * here is `CAP_DAC_OVERRIDE`.
+ *
+ * We do this generically instead of actually looking at the capability
+ * bits, so that the right thing will happen on non-Linux Unix
+ * implementations, in particular if they have something equivalent to
+ * but not identical to Linux permissions.
+ *
+ * Returns: %TRUE if we have Linux `CAP_DAC_OVERRIDE` or equivalent
+ * privileges
+ */
+static gboolean
+check_cap_dac_override (const char *tmpdir)
+{
+ gchar *dac_denies_write;
+ gchar *inside;
+ gboolean have_cap;
+
+ dac_denies_write = g_build_filename (tmpdir, "dac-denies-write", NULL);
+ inside = g_build_filename (dac_denies_write, "inside", NULL);
+
+ g_assert_no_errno (mkdir (dac_denies_write, S_IRWXU));
+ g_assert_no_errno (chmod (dac_denies_write, 0));
+
+ if (mkdir (inside, S_IRWXU) == 0)
+ {
+ g_test_message ("Looks like we have CAP_DAC_OVERRIDE or equivalent");
+ g_assert_no_errno (rmdir (inside));
+ have_cap = TRUE;
+ }
+ else
+ {
+ int saved_errno = errno;
+
+ g_test_message ("We do not have CAP_DAC_OVERRIDE or equivalent");
+ g_assert_cmpint (saved_errno, ==, EACCES);
+ have_cap = FALSE;
+ }
+
+ g_assert_no_errno (chmod (dac_denies_write, S_IRWXU));
+ g_assert_no_errno (rmdir (dac_denies_write));
+ g_free (dac_denies_write);
+ g_free (inside);
+ return have_cap;
+}
+#endif
+
/* A big test for g_file_replace() and g_file_replace_readwrite(). The
* @test_data is a boolean: %TRUE to test g_file_replace_readwrite(), %FALSE to
* test g_file_replace(). The test setup and checks are identical for both
@@ -1350,6 +1423,7 @@ test_replace (gconstpointer test_data)
guint setup_source_mode;
FileTestSetupType setup_backup_type;
guint setup_backup_mode;
+ gboolean skip_if_cap_dac_override;
/* Expected results. */
gboolean expected_success;
@@ -1373,7 +1447,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
- FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
+ FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, FALSE,
TRUE, 0, 0,
1, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, NULL,
@@ -1381,7 +1455,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_EMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1389,7 +1463,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1397,7 +1471,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_DIRECTORY, 0,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
FALSE, G_IO_ERROR, G_IO_ERROR_IS_DIRECTORY,
2, FILE_TEST_SETUP_TYPE_DIRECTORY, 0, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1405,7 +1479,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_SOCKET, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
FALSE, G_IO_ERROR, G_IO_ERROR_NOT_REGULAR_FILE,
2, FILE_TEST_SETUP_TYPE_SOCKET, default_public_mode, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1413,7 +1487,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_SYMLINK_DANGLING, 0,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
3, FILE_TEST_SETUP_TYPE_SYMLINK_VALID, default_public_mode, "source-target",
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1421,7 +1495,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_SYMLINK_VALID, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
3, FILE_TEST_SETUP_TYPE_SYMLINK_VALID, default_public_mode, "source-target",
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1432,7 +1506,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_NONE, "incorrect etag",
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
FALSE, G_IO_ERROR, G_IO_ERROR_WRONG_ETAG,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1444,7 +1518,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
- FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
+ FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, FALSE,
TRUE, 0, 0,
1, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, NULL,
@@ -1452,7 +1526,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_EMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_EMPTY, default_public_mode, NULL,
@@ -1460,7 +1534,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
@@ -1468,7 +1542,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_DIRECTORY, 0,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
FALSE, G_IO_ERROR, G_IO_ERROR_IS_DIRECTORY,
2, FILE_TEST_SETUP_TYPE_DIRECTORY, 0, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1476,7 +1550,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_SOCKET, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
FALSE, G_IO_ERROR, G_IO_ERROR_NOT_REGULAR_FILE,
2, FILE_TEST_SETUP_TYPE_SOCKET, default_public_mode, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1484,7 +1558,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_SYMLINK_DANGLING, 0,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
/* The final situation here is a bit odd; the backup file is a bit
* pointless as the original source file was a dangling symlink.
@@ -1500,7 +1574,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_SYMLINK_VALID, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
/* FIXME: The permissions for the backup file are just the default umask,
* but should probably be the same as the permissions for the source
@@ -1516,7 +1590,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
+ FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
@@ -1524,7 +1598,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_EMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_EMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
@@ -1532,7 +1606,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
@@ -1540,7 +1614,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_DIRECTORY, 0,
+ FILE_TEST_SETUP_TYPE_DIRECTORY, 0, FALSE,
FALSE, G_IO_ERROR, G_IO_ERROR_CANT_CREATE_BACKUP,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
FILE_TEST_SETUP_TYPE_DIRECTORY, 0, NULL,
@@ -1548,7 +1622,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_SOCKET, default_public_mode,
+ FILE_TEST_SETUP_TYPE_SOCKET, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
@@ -1556,7 +1630,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_SYMLINK_DANGLING, 0,
+ FILE_TEST_SETUP_TYPE_SYMLINK_DANGLING, 0, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
@@ -1564,7 +1638,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_SYMLINK_VALID, default_public_mode,
+ FILE_TEST_SETUP_TYPE_SYMLINK_VALID, default_public_mode, FALSE,
TRUE, 0, 0,
/* the third file is `source~-target`, the original target of the old
* backup symlink */
@@ -1578,7 +1652,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
- FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
+ FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, FALSE,
TRUE, 0, 0,
1, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, NULL,
@@ -1586,7 +1660,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_EMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1594,7 +1668,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1602,7 +1676,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_DIRECTORY, 0,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
FALSE, G_IO_ERROR, G_IO_ERROR_IS_DIRECTORY,
2, FILE_TEST_SETUP_TYPE_DIRECTORY, 0, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1610,7 +1684,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_SOCKET, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
FALSE, G_IO_ERROR, G_IO_ERROR_NOT_REGULAR_FILE,
2, FILE_TEST_SETUP_TYPE_SOCKET, default_public_mode, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1618,7 +1692,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_SYMLINK_DANGLING, 0,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1626,7 +1700,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_SYMLINK_VALID, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
/* the third file is `source-target`, the original target of the old
* source file */
@@ -1640,7 +1714,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_REPLACE_DESTINATION, "incorrect etag",
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
FALSE, G_IO_ERROR, G_IO_ERROR_WRONG_ETAG,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1653,7 +1727,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
- FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
+ FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, FALSE,
TRUE, 0, 0,
1, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, NULL,
@@ -1661,7 +1735,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_EMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_EMPTY, default_public_mode, NULL,
@@ -1669,7 +1743,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
@@ -1677,7 +1751,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_DIRECTORY, 0,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
FALSE, G_IO_ERROR, G_IO_ERROR_IS_DIRECTORY,
2, FILE_TEST_SETUP_TYPE_DIRECTORY, 0, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1685,7 +1759,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_SOCKET, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
FALSE, G_IO_ERROR, G_IO_ERROR_NOT_REGULAR_FILE,
2, FILE_TEST_SETUP_TYPE_SOCKET, default_public_mode, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_backup_contents,
@@ -1693,7 +1767,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_SYMLINK_DANGLING, 0,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_SYMLINK_DANGLING, 0, "source-target",
@@ -1701,7 +1775,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_SYMLINK_VALID, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
/* the third file is `source-target`, the original target of the old
* source file */
@@ -1716,7 +1790,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
+ FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
@@ -1724,7 +1798,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_EMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_EMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
@@ -1732,7 +1806,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
+ FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
@@ -1740,7 +1814,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_DIRECTORY, 0,
+ FILE_TEST_SETUP_TYPE_DIRECTORY, 0, FALSE,
FALSE, G_IO_ERROR, G_IO_ERROR_CANT_CREATE_BACKUP,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
FILE_TEST_SETUP_TYPE_DIRECTORY, 0, NULL,
@@ -1748,7 +1822,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_SOCKET, default_public_mode,
+ FILE_TEST_SETUP_TYPE_SOCKET, default_public_mode, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
@@ -1756,7 +1830,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_SYMLINK_DANGLING, 0,
+ FILE_TEST_SETUP_TYPE_SYMLINK_DANGLING, 0, FALSE,
TRUE, 0, 0,
2, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, original_source_contents,
@@ -1764,7 +1838,7 @@ test_replace (gconstpointer test_data)
{
TRUE, G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_SYMLINK_VALID, default_public_mode,
+ FILE_TEST_SETUP_TYPE_SYMLINK_VALID, default_public_mode, FALSE,
TRUE, 0, 0,
/* the third file is `source~-target`, the original target of the old
* backup symlink */
@@ -1776,7 +1850,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_PRIVATE, NULL,
FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
- FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
+ FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, FALSE,
TRUE, 0, 0,
1, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_private_mode, new_contents,
FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, NULL,
@@ -1784,7 +1858,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_PRIVATE, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
+ FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, FALSE,
TRUE, 0, 0,
/* the file isn’t being replaced, so it should keep its existing permissions */
1, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode, new_contents,
@@ -1793,7 +1867,7 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_PRIVATE | G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
- FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
+ FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, FALSE,
TRUE, 0, 0,
1, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_private_mode, new_contents,
FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, NULL,
@@ -1801,18 +1875,21 @@ test_replace (gconstpointer test_data)
{
FALSE, G_FILE_CREATE_PRIVATE | G_FILE_CREATE_REPLACE_DESTINATION, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_public_mode,
- FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
+ FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, FALSE,
TRUE, 0, 0,
1, FILE_TEST_SETUP_TYPE_REGULAR_NONEMPTY, default_private_mode, new_contents,
FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, NULL,
},
/* make the initial source file unreadable, so the replace operation
- * should fail */
+ * should fail
+ *
+ * Permissions are ignored if we have CAP_DAC_OVERRIDE or equivalent,
+ * and in particular if we're root. In this scenario,we need to skip it */
{
FALSE, G_FILE_CREATE_NONE, NULL,
FILE_TEST_SETUP_TYPE_REGULAR_EMPTY, 0 /* most restrictive permissions */,
- FILE_TEST_SETUP_TYPE_NONEXISTENT, 0,
+ FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, TRUE,
FALSE, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED,
1, FILE_TEST_SETUP_TYPE_REGULAR_EMPTY, 0, NULL,
FILE_TEST_SETUP_TYPE_NONEXISTENT, 0, NULL,
@@ -1844,6 +1921,19 @@ test_replace (gconstpointer test_data)
tmpdir = g_file_new_for_path (tmpdir_path);
g_test_message ("Test %" G_GSIZE_FORMAT ", using temporary directory %s", i, tmpdir_path);
+
+ if (tests[i].skip_if_cap_dac_override && check_cap_dac_override (tmpdir_path))
+ {
+ g_test_message ("Skipping test as process has CAP_DAC_OVERRIDE capability and the test checks permissions");
+
+ g_file_delete (tmpdir, NULL, &local_error);
+ g_assert_no_error (local_error);
+ g_clear_object (&tmpdir);
+ g_free (tmpdir_path);
+
+ continue;
+ }
+
g_free (tmpdir_path);
/* Set up the test directory. */
@@ -2439,75 +2529,84 @@ test_copy_preserve_mode (void)
#endif
}
-static gchar *
-splice_to_string (GInputStream *stream,
- GError **error)
+typedef struct
{
- GMemoryOutputStream *buffer = NULL;
- char *ret = NULL;
-
- buffer = (GMemoryOutputStream*)g_memory_output_stream_new (NULL, 0, g_realloc, g_free);
- if (g_output_stream_splice ((GOutputStream*)buffer, stream, 0, NULL, error) < 0)
- goto out;
+ goffset current_num_bytes;
+ goffset total_num_bytes;
+} CopyProgressData;
- if (!g_output_stream_write ((GOutputStream*)buffer, "\0", 1, NULL, error))
- goto out;
+static void
+file_copy_progress_cb (goffset current_num_bytes,
+ goffset total_num_bytes,
+ gpointer user_data)
+{
+ CopyProgressData *prev_data = user_data;
- if (!g_output_stream_close ((GOutputStream*)buffer, NULL, error))
- goto out;
+ g_assert_cmpuint (total_num_bytes, ==, prev_data->total_num_bytes);
+ g_assert_cmpuint (current_num_bytes, >=, prev_data->current_num_bytes);
- ret = g_memory_output_stream_steal_data (buffer);
- out:
- g_clear_object (&buffer);
- return ret;
+ /* Update it for the next callback. */
+ prev_data->current_num_bytes = current_num_bytes;
}
-static gboolean
-get_size_from_du (const gchar *path, guint64 *size)
+static void
+test_copy_progress (void)
{
- GSubprocess *du;
- gboolean ok;
- gchar *result;
- gchar *endptr;
- GError *error = NULL;
- gchar *du_path = NULL;
-
-#ifndef HAVE_COCOA
- du_path = g_find_program_in_path ("du");
-#endif
+ GFile *src_tmpfile = NULL;
+ GFile *dest_tmpfile = NULL;
+ GFileIOStream *iostream;
+ GOutputStream *ostream;
+ GError *local_error = NULL;
+ const guint8 buffer[] = { 1, 2, 3, 4, 5 };
+ CopyProgressData progress_data;
- /* If we can’t find du, don’t try and run the test. */
- if (du_path == NULL)
- return FALSE;
+ src_tmpfile = g_file_new_tmp ("tmp-copy-progressXXXXXX",
+ &iostream, &local_error);
+ g_assert_no_error (local_error);
- g_free (du_path);
+ /* Write some content to the file for testing. */
+ ostream = g_io_stream_get_output_stream (G_IO_STREAM (iostream));
+ g_output_stream_write (ostream, buffer, sizeof (buffer), NULL, &local_error);
+ g_assert_no_error (local_error);
- du = g_subprocess_new (G_SUBPROCESS_FLAGS_STDOUT_PIPE,
- &error,
- "du", "--bytes", "-s", path, NULL);
- g_assert_no_error (error);
+ g_io_stream_close ((GIOStream *) iostream, NULL, &local_error);
+ g_assert_no_error (local_error);
+ g_clear_object (&iostream);
- result = splice_to_string (g_subprocess_get_stdout_pipe (du), &error);
- g_assert_no_error (error);
+ /* Grab a unique destination filename. */
+ dest_tmpfile = g_file_new_tmp ("tmp-copy-progressXXXXXX",
+ &iostream, &local_error);
+ g_assert_no_error (local_error);
+ g_io_stream_close ((GIOStream *) iostream, NULL, &local_error);
+ g_assert_no_error (local_error);
+ g_clear_object (&iostream);
- *size = g_ascii_strtoll (result, &endptr, 10);
+ /* Set the progress data to an initial offset of zero. The callback will
+ * assert that progress is non-decreasing and reaches the total length of
+ * the file. */
+ progress_data.current_num_bytes = 0;
+ progress_data.total_num_bytes = sizeof (buffer);
- g_subprocess_wait (du, NULL, &error);
- g_assert_no_error (error);
+ /* Copy the file with progress reporting. */
+ g_file_copy (src_tmpfile, dest_tmpfile, G_FILE_COPY_OVERWRITE,
+ NULL, file_copy_progress_cb, &progress_data, &local_error);
+ g_assert_no_error (local_error);
- ok = g_subprocess_get_successful (du);
+ g_assert_cmpuint (progress_data.current_num_bytes, ==, progress_data.total_num_bytes);
+ g_assert_cmpuint (progress_data.total_num_bytes, ==, sizeof (buffer));
- g_object_unref (du);
- g_free (result);
+ /* Clean up. */
+ (void) g_file_delete (src_tmpfile, NULL, NULL);
+ (void) g_file_delete (dest_tmpfile, NULL, NULL);
- return ok;
+ g_clear_object (&src_tmpfile);
+ g_clear_object (&dest_tmpfile);
}
static void
test_measure (void)
{
GFile *file;
- guint64 size;
guint64 num_bytes;
guint64 num_dirs;
guint64 num_files;
@@ -2518,12 +2617,6 @@ test_measure (void)
path = g_test_build_filename (G_TEST_DIST, "desktop-files", NULL);
file = g_file_new_for_path (path);
- if (!get_size_from_du (path, &size))
- {
- g_test_message ("du not found or fail to run, skipping byte measurement");
- size = 0;
- }
-
ok = g_file_measure_disk_usage (file,
G_FILE_MEASURE_APPARENT_SIZE,
NULL,
@@ -2536,8 +2629,7 @@ test_measure (void)
g_assert_true (ok);
g_assert_no_error (error);
- if (size > 0)
- g_assert_cmpuint (num_bytes, ==, size);
+ g_assert_cmpuint (num_bytes, ==, 74469);
g_assert_cmpuint (num_dirs, ==, 6);
g_assert_cmpuint (num_files, ==, 32);
@@ -2589,8 +2681,7 @@ measure_done (GObject *source,
g_assert_true (ok);
g_assert_no_error (error);
- if (data->expected_bytes > 0)
- g_assert_cmpuint (data->expected_bytes, ==, num_bytes);
+ g_assert_cmpuint (data->expected_bytes, ==, num_bytes);
g_assert_cmpuint (data->expected_dirs, ==, num_dirs);
g_assert_cmpuint (data->expected_files, ==, num_files);
@@ -2619,15 +2710,9 @@ test_measure_async (void)
path = g_test_build_filename (G_TEST_DIST, "desktop-files", NULL);
file = g_file_new_for_path (path);
-
- if (!get_size_from_du (path, &data->expected_bytes))
- {
- g_test_message ("du not found or fail to run, skipping byte measurement");
- data->expected_bytes = 0;
- }
-
g_free (path);
+ data->expected_bytes = 74469;
data->expected_dirs = 6;
data->expected_files = 32;
@@ -3537,10 +3622,14 @@ test_query_zero_length_content_type (void)
GFileIOStream *iostream;
g_test_bug ("https://bugzilla.gnome.org/show_bug.cgi?id=755795");
- /* This is historic behaviour. See:
+ /* Historically, GLib used to explicitly consider zero-size files as text/plain,
+ * so they opened in a text editor. In 2.76, we changed that to application/x-zerosize,
+ * because that’s what xdgmime uses:
* - https://gitlab.gnome.org/GNOME/glib/-/blob/2.74.0/gio/glocalfileinfo.c#L1360-1369
- * - https://bugzilla.gnome.org/show_bug.cgi?id=755795 */
- g_test_summary ("empty files should always be considered text/plain");
+ * - https://bugzilla.gnome.org/show_bug.cgi?id=755795
+ * - https://gitlab.gnome.org/GNOME/glib/-/issues/2777
+ */
+ g_test_summary ("empty files should always be considered application/x-zerosize");
empty_file = g_file_new_tmp ("empty-file-XXXXXX", &iostream, &error);
g_assert_no_error (error);
@@ -3556,8 +3645,8 @@ test_query_zero_length_content_type (void)
NULL, &error);
g_assert_no_error (error);
-#ifndef HAVE_COCOA
- g_assert_cmpstr (g_file_info_get_content_type (file_info), ==, "text/plain");
+#ifndef __APPLE__
+ g_assert_cmpstr (g_file_info_get_content_type (file_info), ==, "application/x-zerosize");
#else
g_assert_cmpstr (g_file_info_get_content_type (file_info), ==, "public.text");
#endif
@@ -3815,6 +3904,69 @@ test_query_default_handler_uri_async (void)
g_object_unref (invalid_file);
}
+static void
+test_enumerator_cancellation (void)
+{
+ GCancellable *cancellable;
+ GFileEnumerator *enumerator;
+ GFileInfo *info;
+ GFile *dir;
+ GError *error = NULL;
+
+ dir = g_file_new_for_path (g_get_tmp_dir ());
+ g_assert_nonnull (dir);
+
+ enumerator = g_file_enumerate_children (dir,
+ G_FILE_ATTRIBUTE_STANDARD_NAME,
+ G_FILE_QUERY_INFO_NONE,
+ NULL,
+ &error);
+ g_assert_nonnull (enumerator);
+
+ cancellable = g_cancellable_new ();
+ g_cancellable_cancel (cancellable);
+ info = g_file_enumerator_next_file (enumerator, cancellable, &error);
+ g_assert_null (info);
+ g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED);
+
+ g_error_free (error);
+ g_object_unref (cancellable);
+ g_object_unref (enumerator);
+ g_object_unref (dir);
+}
+
+static void
+test_from_uri_ignores_fragment (void)
+{
+ GFile *file;
+ gchar *path;
+ file = g_file_new_for_uri ("file:///tmp/foo#bar");
+ path = g_file_get_path (file);
+#ifdef G_OS_WIN32
+ g_assert_cmpstr (path, ==, "\\tmp\\foo");
+#else
+ g_assert_cmpstr (path, ==, "/tmp/foo");
+#endif
+ g_free (path);
+ g_object_unref (file);
+}
+
+static void
+test_from_uri_ignores_query_string (void)
+{
+ GFile *file;
+ gchar *path;
+ file = g_file_new_for_uri ("file:///tmp/foo?bar");
+ path = g_file_get_path (file);
+#ifdef G_OS_WIN32
+ g_assert_cmpstr (path, ==, "\\tmp\\foo");
+#else
+ g_assert_cmpstr (path, ==, "/tmp/foo");
+#endif
+ g_free (path);
+ g_object_unref (file);
+}
+
int
main (int argc, char *argv[])
{
@@ -3824,6 +3976,7 @@ main (int argc, char *argv[])
g_test_add_func ("/file/basic", test_basic);
g_test_add_func ("/file/build-filename", test_build_filename);
+ g_test_add_func ("/file/build-filenamev", test_build_filenamev);
g_test_add_func ("/file/parent", test_parent);
g_test_add_func ("/file/child", test_child);
g_test_add_func ("/file/empty-path", test_empty_path);
@@ -3845,6 +3998,7 @@ main (int argc, char *argv[])
g_test_add_func ("/file/async-delete", test_async_delete);
g_test_add_func ("/file/async-make-symlink", test_async_make_symlink);
g_test_add_func ("/file/copy-preserve-mode", test_copy_preserve_mode);
+ g_test_add_func ("/file/copy/progress", test_copy_progress);
g_test_add_func ("/file/measure", test_measure);
g_test_add_func ("/file/measure-async", test_measure_async);
g_test_add_func ("/file/load-bytes", test_load_bytes);
@@ -3867,6 +4021,10 @@ main (int argc, char *argv[])
g_test_add_func ("/file/query-default-handler-file-async", test_query_default_handler_file_async);
g_test_add_func ("/file/query-default-handler-uri", test_query_default_handler_uri);
g_test_add_func ("/file/query-default-handler-uri-async", test_query_default_handler_uri_async);
+ g_test_add_func ("/file/enumerator-cancellation", test_enumerator_cancellation);
+ g_test_add_func ("/file/from-uri/ignores-query-string", test_from_uri_ignores_query_string);
+ g_test_add_func ("/file/from-uri/ignores-fragment", test_from_uri_ignores_fragment);
return g_test_run ();
}
+
diff --git a/gio/tests/g-file-info-filesystem-readonly.c b/gio/tests/g-file-info-filesystem-readonly.c
index ddf99da1e..af2069dc7 100644
--- a/gio/tests/g-file-info-filesystem-readonly.c
+++ b/gio/tests/g-file-info-filesystem-readonly.c
@@ -1,6 +1,8 @@
/* Testcase for bug in GIO function g_file_query_filesystem_info()
* Author: Nelson Benítez León
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/g-file-info.c b/gio/tests/g-file-info.c
index d9ad04583..9d97d5ac4 100644
--- a/gio/tests/g-file-info.c
+++ b/gio/tests/g-file-info.c
@@ -2,6 +2,8 @@
* Copyright (C) 2008 Red Hat, Inc.
* Authors: Tomas Bzatek <tbzatek@redhat.com>
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -41,7 +43,7 @@
static void
test_assigned_values (GFileInfo *info)
{
- const char *name, *display_name, *mistake;
+ const char *name, *name_filepath, *display_name, *mistake;
guint64 size;
GFileType type;
@@ -54,12 +56,14 @@ test_assigned_values (GFileInfo *info)
/* Retrieve data back and compare */
name = g_file_info_get_attribute_byte_string (info, G_FILE_ATTRIBUTE_STANDARD_NAME);
+ name_filepath = g_file_info_get_attribute_file_path (info, G_FILE_ATTRIBUTE_STANDARD_NAME);
display_name = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME);
mistake = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_STANDARD_COPY_NAME);
size = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_STANDARD_SIZE);
type = g_file_info_get_file_type (info);
g_assert_cmpstr (name, ==, TEST_NAME);
+ g_assert_cmpstr (name_filepath, ==, name);
g_assert_cmpstr (display_name, ==, TEST_DISPLAY_NAME);
g_assert_null (mistake);
g_assert_cmpint (size, ==, TEST_SIZE);
@@ -100,7 +104,12 @@ test_g_file_info (void)
g_strfreev (attr_list);
test_assigned_values (info);
-
+
+ /* Test the file path encoding functions */
+ g_file_info_set_attribute_file_path (info, G_FILE_ATTRIBUTE_STANDARD_NAME, "something different");
+ g_assert_cmpstr (g_file_info_get_attribute_file_path (info, G_FILE_ATTRIBUTE_STANDARD_NAME), ==, "something different");
+ g_file_info_set_attribute_file_path (info, G_FILE_ATTRIBUTE_STANDARD_NAME, TEST_NAME);
+
/* Test dups */
info_dup = g_file_info_dup (info);
g_assert_nonnull (info_dup);
@@ -307,7 +316,7 @@ test_g_file_info_access_time (void)
g_assert_nonnull (dt_usecs);
ts = g_date_time_difference (dt_usecs, dt);
- g_assert_cmpint (ts, >, 0);
+ g_assert_cmpint (ts, >=, 0);
g_assert_cmpint (ts, <, G_USEC_PER_SEC);
/* Try again with nanosecond precision. */
@@ -442,7 +451,7 @@ test_g_file_info_creation_time (void)
g_assert_nonnull (dt_usecs);
ts = g_date_time_difference (dt_usecs, dt);
- g_assert_cmpint (ts, >, 0);
+ g_assert_cmpint (ts, >=, 0);
g_assert_cmpint (ts, <, G_USEC_PER_SEC);
/* Try again with nanosecond precision. */
@@ -1093,6 +1102,50 @@ test_xattrs (void)
g_object_unref (file);
}
+static void
+test_set_modified_date_time_precision (void)
+{
+ GDateTime *modified = NULL;
+ GFile *file = NULL;
+ GFileIOStream *stream = NULL;
+ GFileInfo *info = NULL;
+ GError *local_error = NULL;
+
+
+ g_test_summary ("Test that g_file_info_set_modified_date_time() preserves microseconds");
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/3116");
+
+ file = g_file_new_tmp ("g-file-info-test-set-modified-date-time-precision-XXXXXX", &stream, &local_error);
+ g_assert_no_error (local_error);
+
+ modified = g_date_time_new_from_iso8601 ("2000-01-01T00:00:00.123456Z", NULL);
+
+ info = g_file_query_info (file,
+ G_FILE_ATTRIBUTE_TIME_MODIFIED ","
+ G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC ","
+ G_FILE_ATTRIBUTE_TIME_MODIFIED_NSEC, G_FILE_QUERY_INFO_NONE, NULL, &local_error);
+ g_assert_no_error (local_error);
+
+ g_file_info_set_modification_date_time (info, modified);
+ g_assert_true (g_file_set_attributes_from_info (file, info, G_FILE_QUERY_INFO_NONE, NULL, &local_error));
+ g_assert_no_error (local_error);
+
+ g_clear_object (&info);
+ g_clear_pointer (&modified, g_date_time_unref);
+
+ info = g_file_query_info (file,
+ G_FILE_ATTRIBUTE_TIME_MODIFIED ","
+ G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC ","
+ G_FILE_ATTRIBUTE_TIME_MODIFIED_NSEC, G_FILE_QUERY_INFO_NONE, NULL, &local_error);
+ g_assert_no_error (local_error);
+
+ g_assert_cmpuint (g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC), ==, 123456);
+
+ g_clear_object (&stream);
+ g_clear_object (&info);
+ g_clear_object (&file);
+}
+
int
main (int argc,
char *argv[])
@@ -1107,6 +1160,7 @@ main (int argc,
g_test_add_func ("/g-file-info/internal-enhanced-stdio", test_internal_enhanced_stdio);
#endif
g_test_add_func ("/g-file-info/xattrs", test_xattrs);
+ g_test_add_func ("/g-file-info/set-modified-date-time-precision", test_set_modified_date_time_precision);
return g_test_run();
}
diff --git a/gio/tests/g-file.c b/gio/tests/g-file.c
index 8669e3aaf..33cf122fa 100644
--- a/gio/tests/g-file.c
+++ b/gio/tests/g-file.c
@@ -2,6 +2,8 @@
* Copyright (C) 2008 Red Hat, Inc.
* Authors: Tomas Bzatek <tbzatek@redhat.com>
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/g-icon.c b/gio/tests/g-icon.c
index 13985d6a1..0d0848b85 100644
--- a/gio/tests/g-icon.c
+++ b/gio/tests/g-icon.c
@@ -2,6 +2,8 @@
*
* Copyright (C) 2008 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/gapplication-example-open.c b/gio/tests/gapplication-example-open.c
index 6dcf53c22..0fc17bb20 100644
--- a/gio/tests/gapplication-example-open.c
+++ b/gio/tests/gapplication-example-open.c
@@ -15,10 +15,10 @@ activate (GApplication *application)
}
static void
-open (GApplication *application,
- GFile **files,
- gint n_files,
- const gchar *hint)
+app_open (GApplication *application,
+ GFile **files,
+ gint n_files,
+ const gchar *hint)
{
gint i;
@@ -45,7 +45,7 @@ main (int argc, char **argv)
app = g_application_new ("org.gtk.TestApplication",
G_APPLICATION_HANDLES_OPEN);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
- g_signal_connect (app, "open", G_CALLBACK (open), NULL);
+ g_signal_connect (app, "open", G_CALLBACK (app_open), NULL);
g_application_set_inactivity_timeout (app, 10000);
status = g_application_run (app, argc, argv);
diff --git a/gio/tests/gapplication.c b/gio/tests/gapplication.c
index 4320352d1..b0584eb5f 100644
--- a/gio/tests/gapplication.c
+++ b/gio/tests/gapplication.c
@@ -1071,6 +1071,8 @@ typedef struct
{
gboolean allow_replacement;
GSubprocess *subprocess;
+ GApplication *app; /* (not owned) */
+ guint timeout_id;
} TestReplaceData;
static void
@@ -1115,14 +1117,13 @@ activate (gpointer data)
/* GApplication complains if we don't connect to ::activate */
}
-static gboolean
-quit_already (gpointer data)
+static void
+quit_already (gpointer user_data)
{
- GApplication *app = data;
-
- g_application_quit (app);
+ TestReplaceData *data = user_data;
- return G_SOURCE_REMOVE;
+ g_application_quit (data->app);
+ data->timeout_id = 0;
}
static void
@@ -1162,18 +1163,19 @@ test_replace (gconstpointer data)
data.allow_replacement = allow;
data.subprocess = NULL;
+ data.timeout_id = 0;
bus = g_test_dbus_new (0);
g_test_dbus_up (bus);
- app = g_application_new ("org.gtk.TestApplication.Replace", allow ? G_APPLICATION_ALLOW_REPLACEMENT : G_APPLICATION_DEFAULT_FLAGS);
+ app = data.app = g_application_new ("org.gtk.TestApplication.Replace", allow ? G_APPLICATION_ALLOW_REPLACEMENT : G_APPLICATION_DEFAULT_FLAGS);
g_application_set_inactivity_timeout (app, 500);
g_signal_connect (app, "name-lost", G_CALLBACK (name_was_lost), &name_lost);
g_signal_connect (app, "startup", G_CALLBACK (startup_cb), &data);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
if (!allow)
- g_timeout_add_seconds (1, quit_already, app);
+ data.timeout_id = g_timeout_add_seconds_once (1, quit_already, &data);
g_application_run (app, G_N_ELEMENTS (argv) - 1, argv);
@@ -1183,6 +1185,7 @@ test_replace (gconstpointer data)
else
g_assert_false (name_lost);
+ g_clear_handle_id (&data.timeout_id, g_source_remove);
g_object_unref (app);
g_free (binpath);
@@ -1686,6 +1689,8 @@ main (int argc, char **argv)
{
g_setenv ("LC_ALL", "C", TRUE);
+ g_log_writer_default_set_use_stderr (TRUE);
+
g_test_init (&argc, &argv, NULL);
if (!g_test_subprocess ())
diff --git a/gio/tests/gdbus-addresses.c b/gio/tests/gdbus-addresses.c
index 75ad7e4cd..b7d11d09f 100644
--- a/gio/tests/gdbus-addresses.c
+++ b/gio/tests/gdbus-addresses.c
@@ -209,7 +209,7 @@ int
main (int argc,
char *argv[])
{
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
g_test_add_func ("/gdbus/empty-address", test_empty_address);
g_test_add_func ("/gdbus/unsupported-address", test_unsupported_address);
diff --git a/gio/tests/gdbus-auth.c b/gio/tests/gdbus-auth.c
index b0d163d98..657571be3 100644
--- a/gio/tests/gdbus-auth.c
+++ b/gio/tests/gdbus-auth.c
@@ -63,17 +63,10 @@ server_new_for_mechanism (const gchar *allowed_mechanism)
guid = g_dbus_generate_guid ();
#ifdef G_OS_UNIX
- if (g_unix_socket_address_abstract_names_supported ())
- {
- addr = g_strdup ("unix:tmpdir=/tmp/gdbus-test-");
- }
- else
- {
- gchar *tmpdir;
- tmpdir = g_dir_make_tmp ("gdbus-test-XXXXXX", NULL);
- addr = g_strdup_printf ("unix:tmpdir=%s", tmpdir);
- g_free (tmpdir);
- }
+ gchar *tmpdir;
+ tmpdir = g_dir_make_tmp ("gdbus-test-XXXXXX", NULL);
+ addr = g_strdup_printf ("unix:tmpdir=%s", tmpdir);
+ g_free (tmpdir);
#else
addr = g_strdup ("nonce-tcp:");
#endif
@@ -118,15 +111,6 @@ test_auth_on_new_connection (GDBusServer *server,
return FALSE;
}
-static gboolean
-test_auth_on_timeout (gpointer user_data)
-{
- g_error ("Timeout waiting for client");
- g_assert_not_reached ();
- return G_SOURCE_REMOVE;
-}
-
-
typedef struct
{
const gchar *address;
@@ -169,7 +153,6 @@ test_auth_mechanism (const gchar *allowed_client_mechanism,
GMainLoop *loop;
GThread *client_thread;
TestAuthData data;
- guint timeout_id;
server = server_new_for_mechanism (allowed_server_mechanism);
@@ -180,13 +163,12 @@ test_auth_mechanism (const gchar *allowed_client_mechanism,
G_CALLBACK (test_auth_on_new_connection),
loop);
- timeout_id = g_timeout_add_seconds (5, test_auth_on_timeout, NULL);
-
data.allowed_client_mechanism = allowed_client_mechanism;
data.allowed_server_mechanism = allowed_server_mechanism;
data.address = g_dbus_server_get_client_address (server);
- /* run the D-Bus client in a thread */
+ /* Run the D-Bus client in a thread. If this hangs forever, the test harness
+ * (typically Meson) will eventually kill the test. */
client_thread = g_thread_new ("gdbus-client-thread",
test_auth_client_thread_func,
&data);
@@ -198,7 +180,6 @@ test_auth_mechanism (const gchar *allowed_client_mechanism,
g_dbus_server_stop (server);
g_thread_join (client_thread);
- g_source_remove (timeout_id);
while (g_main_context_iteration (NULL, FALSE));
g_main_loop_unref (loop);
@@ -294,7 +275,7 @@ main (int argc,
temp_dbus_keyrings_setup ();
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
g_test_add_func ("/gdbus/auth/client/EXTERNAL", auth_client_external);
g_test_add_func ("/gdbus/auth/client/DBUS_COOKIE_SHA1", auth_client_dbus_cookie_sha1);
diff --git a/gio/tests/gdbus-bz627724.c b/gio/tests/gdbus-bz627724.c
index 62a600013..82d9e80d3 100644
--- a/gio/tests/gdbus-bz627724.c
+++ b/gio/tests/gdbus-bz627724.c
@@ -80,7 +80,7 @@ int
main (int argc,
char *argv[])
{
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
g_test_dbus_unset ();
diff --git a/gio/tests/gdbus-close-pending.c b/gio/tests/gdbus-close-pending.c
index f0792ddfc..61f1faa79 100644
--- a/gio/tests/gdbus-close-pending.c
+++ b/gio/tests/gdbus-close-pending.c
@@ -306,9 +306,9 @@ test_once (Fixture *f,
GDBusMessage *message;
gboolean pipe_res;
- pipe_res = g_unix_open_pipe (f->server_to_client, FD_CLOEXEC, &f->error);
+ pipe_res = g_unix_open_pipe (f->server_to_client, O_CLOEXEC, &f->error);
g_assert (pipe_res);
- pipe_res = g_unix_open_pipe (f->client_to_server, FD_CLOEXEC, &f->error);
+ pipe_res = g_unix_open_pipe (f->client_to_server, O_CLOEXEC, &f->error);
g_assert (pipe_res);
f->server_iostream = my_io_stream_new_for_fds (f->client_to_server[0],
@@ -385,7 +385,7 @@ int
main (int argc,
char *argv[])
{
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
g_test_add ("/gdbus/close-pending", Fixture, "close",
setup, test_many_times, teardown);
diff --git a/gio/tests/gdbus-connection-loss.c b/gio/tests/gdbus-connection-loss.c
index 134f15150..b1df43fdb 100644
--- a/gio/tests/gdbus-connection-loss.c
+++ b/gio/tests/gdbus-connection-loss.c
@@ -114,7 +114,7 @@ main (int argc,
gint ret;
gchar *path;
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
/* all the tests rely on a shared main loop */
loop = g_main_loop_new (NULL, FALSE);
diff --git a/gio/tests/gdbus-connection-slow.c b/gio/tests/gdbus-connection-slow.c
index 1d12bb27c..06f59493c 100644
--- a/gio/tests/gdbus-connection-slow.c
+++ b/gio/tests/gdbus-connection-slow.c
@@ -128,14 +128,12 @@ test_connection_flush (void)
/* the test will fail if the service name has not appeared after this amount of seconds */
#define LARGE_MESSAGE_TIMEOUT_SECONDS 10
-static gboolean
+static void
large_message_timeout_cb (gpointer data)
{
(void)data;
g_error ("Error: timeout waiting for dbus name to appear");
-
- return G_SOURCE_REMOVE;
}
static void
@@ -200,9 +198,9 @@ test_connection_large_message (void)
/* this is safe; testserver will exit once the bus goes away */
g_assert (g_spawn_command_line_async (g_test_get_filename (G_TEST_BUILT, "gdbus-testserver", NULL), NULL));
- timeout_id = g_timeout_add_seconds (LARGE_MESSAGE_TIMEOUT_SECONDS,
- large_message_timeout_cb,
- NULL);
+ timeout_id = g_timeout_add_seconds_once (LARGE_MESSAGE_TIMEOUT_SECONDS,
+ large_message_timeout_cb,
+ NULL);
watcher_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
"com.example.TestService",
@@ -225,7 +223,7 @@ main (int argc,
{
gint ret;
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
/* all the tests rely on a shared main loop */
loop = g_main_loop_new (NULL, FALSE);
diff --git a/gio/tests/gdbus-connection.c b/gio/tests/gdbus-connection.c
index d04dd0446..05b1f120a 100644
--- a/gio/tests/gdbus-connection.c
+++ b/gio/tests/gdbus-connection.c
@@ -1277,7 +1277,7 @@ main (int argc,
{
int ret;
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
/* all the tests rely on a shared main loop */
loop = g_main_loop_new (NULL, FALSE);
diff --git a/gio/tests/gdbus-error.c b/gio/tests/gdbus-error.c
index 73f84a9d8..4925b950b 100644
--- a/gio/tests/gdbus-error.c
+++ b/gio/tests/gdbus-error.c
@@ -260,7 +260,7 @@ int
main (int argc,
char *argv[])
{
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
g_test_add_func ("/gdbus/registered-errors", test_registered_errors);
g_test_add_func ("/gdbus/unregistered-errors", test_unregistered_errors);
diff --git a/gio/tests/gdbus-example-peer.c b/gio/tests/gdbus-example-peer.c
index f57d36832..29b3c2a07 100755
--- a/gio/tests/gdbus-example-peer.c
+++ b/gio/tests/gdbus-example-peer.c
@@ -147,7 +147,6 @@ on_new_connection (GDBusServer *server,
else
s = g_credentials_to_string (credentials);
-
g_print ("Client connected.\n"
"Peer credentials: %s\n"
"Negotiated capabilities: unix-fd-passing=%d\n",
@@ -165,6 +164,8 @@ on_new_connection (GDBusServer *server,
NULL); /* GError** */
g_assert (registration_id > 0);
+ g_free (s);
+
return TRUE;
}
@@ -266,10 +267,14 @@ main (int argc, char *argv[])
g_option_context_add_main_entries (opt_context, opt_entries, NULL);
if (!g_option_context_parse (opt_context, &argc, &argv, &error))
{
+ g_option_context_free (opt_context);
g_printerr ("Error parsing options: %s\n", error->message);
g_error_free (error);
goto out;
}
+
+ g_option_context_free (opt_context);
+
if (opt_address == NULL)
{
g_printerr ("Incorrect usage, try --help.\n");
@@ -373,6 +378,8 @@ main (int argc, char *argv[])
-1,
NULL,
&error);
+ g_free (greeting);
+
if (value == NULL)
{
g_printerr ("Error invoking HelloWorld(): %s\n", error->message);
@@ -390,5 +397,7 @@ main (int argc, char *argv[])
ret = 0;
out:
+ g_free (opt_address);
+
return ret;
}
diff --git a/gio/tests/gdbus-example-proxy-subclass.c b/gio/tests/gdbus-example-proxy-subclass.c
index 05314ba2a..91b377c48 100644
--- a/gio/tests/gdbus-example-proxy-subclass.c
+++ b/gio/tests/gdbus-example-proxy-subclass.c
@@ -340,9 +340,111 @@ accounts_user_frobnicate_finish (AccountsUser *user,
}
/* ---------------------------------------------------------------------------------------------------- */
+/* Example usage of the AccountsUser type */
+/* ---------------------------------------------------------------------------------------------------- */
+
+static void
+print_user (AccountsUser *user)
+{
+ g_print (" user-name = `%s'\n", accounts_user_get_user_name (user));
+ g_print (" real-name = `%s'\n", accounts_user_get_real_name (user));
+ g_print (" automatic-login = %s\n", accounts_user_get_automatic_login (user) ? "true" : "false");
+}
+
+static void
+on_changed (AccountsUser *user,
+ gpointer user_data)
+{
+ g_print ("+++ Received the AccountsUser::changed signal\n");
+ print_user (user);
+}
+
+static void
+on_notify (GObject *object,
+ GParamSpec *pspec,
+ gpointer user_data)
+{
+ AccountsUser *user = ACCOUNTS_USER (object);
+ g_print ("+++ Received the GObject::notify signal for property `%s'\n",
+ pspec->name);
+ print_user (user);
+}
+
+static void
+on_accounts_proxy_available (GObject *object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ GError *error = NULL;
+ GObject *user_object;
+ AccountsUser *user;
+
+ user_object = g_async_initable_new_finish (G_ASYNC_INITABLE (object),
+ result,
+ &error);
+ if (!user_object)
+ {
+ g_error ("Failed to create proxy: %s", error->message);
+ g_clear_error (&error);
+ return;
+ }
+ user = ACCOUNTS_USER (user_object);
+
+ g_print ("+++ Acquired proxy for user\n");
+ print_user (user);
+
+ g_signal_connect (user,
+ "notify",
+ G_CALLBACK (on_notify),
+ NULL);
+ g_signal_connect (user,
+ "changed",
+ G_CALLBACK (on_changed),
+ NULL);
+}
+
+static void
+on_accounts_appeared (GDBusConnection *connection,
+ const gchar *name,
+ const gchar *name_owner,
+ gpointer user_data)
+{
+ g_async_initable_new_async (ACCOUNTS_TYPE_USER, 0, NULL,
+ on_accounts_proxy_available,
+ "g-flags", 0,
+ "g-interface-info", NULL,
+ "g-unique-bus-name", name_owner,
+ "g-connection", connection,
+ "g-object-path", "/org/freedesktop/Accounts/User500",
+ "g-interface-name", "org.freedesktop.Accounts.User");
+}
+
+static void
+on_accounts_vanished (GDBusConnection *connection,
+ const gchar *name,
+ gpointer user_data)
+{
+}
+
+/* ---------------------------------------------------------------------------------------------------- */
gint
main (gint argc, gchar *argv[])
{
+ guint watcher_id;
+ GMainLoop *loop;
+
+ watcher_id = g_bus_watch_name (G_BUS_TYPE_SYSTEM,
+ "org.freedesktop.Accounts",
+ G_BUS_NAME_WATCHER_FLAGS_AUTO_START,
+ on_accounts_appeared,
+ on_accounts_vanished,
+ NULL, NULL);
+
+ loop = g_main_loop_new (NULL, FALSE);
+ g_main_loop_run (loop);
+ g_main_loop_unref (loop);
+ g_bus_unwatch_name (watcher_id);
+
return 0;
}
diff --git a/gio/tests/gdbus-exit-on-close.c b/gio/tests/gdbus-exit-on-close.c
index 916016870..e3aba16a9 100644
--- a/gio/tests/gdbus-exit-on-close.c
+++ b/gio/tests/gdbus-exit-on-close.c
@@ -201,7 +201,7 @@ main (int argc,
{
gint i;
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
for (i = 0; cases[i].name != NULL; i++)
{
diff --git a/gio/tests/gdbus-export.c b/gio/tests/gdbus-export.c
index 5ac53200c..2080ebe12 100644
--- a/gio/tests/gdbus-export.c
+++ b/gio/tests/gdbus-export.c
@@ -347,8 +347,8 @@ static gint
compare_strings (gconstpointer a,
gconstpointer b)
{
- const gchar *sa = *(const gchar **) a;
- const gchar *sb = *(const gchar **) b;
+ const gchar *sa = a;
+ const gchar *sb = b;
/* Array terminator must sort last */
if (sa == NULL)
@@ -413,7 +413,7 @@ get_nodes_at (GDBusConnection *c,
g_dbus_node_info_unref (node_info);
/* Nodes are semantically unordered; sort array so tests can rely on order */
- g_ptr_array_sort (p, compare_strings);
+ g_ptr_array_sort_values (p, compare_strings);
return (gchar **) g_ptr_array_free (p, FALSE);
}
@@ -1966,7 +1966,7 @@ main (int argc,
{
gint ret;
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
/* all the tests rely on a shared main loop */
loop = g_main_loop_new (NULL, FALSE);
diff --git a/gio/tests/gdbus-introspection.c b/gio/tests/gdbus-introspection.c
index 035de5723..44cb7a96a 100644
--- a/gio/tests/gdbus-introspection.c
+++ b/gio/tests/gdbus-introspection.c
@@ -307,7 +307,7 @@ main (int argc,
{
gint ret;
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
/* all the tests rely on a shared main loop */
loop = g_main_loop_new (NULL, FALSE);
diff --git a/gio/tests/gdbus-message.c b/gio/tests/gdbus-message.c
index 2963405da..647cd7a24 100644
--- a/gio/tests/gdbus-message.c
+++ b/gio/tests/gdbus-message.c
@@ -217,7 +217,7 @@ main (int argc,
{
setlocale (LC_ALL, "C");
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
g_test_add_func ("/gdbus/message/lock", message_lock);
g_test_add_func ("/gdbus/message/copy", message_copy);
diff --git a/gio/tests/gdbus-method-invocation.c b/gio/tests/gdbus-method-invocation.c
index 58f092734..1bcf57377 100644
--- a/gio/tests/gdbus-method-invocation.c
+++ b/gio/tests/gdbus-method-invocation.c
@@ -251,7 +251,7 @@ test_method_invocation_return_method_call (GDBusConnection *connection,
if (g_str_equal (action, "Valid") ||
g_str_equal (action, "WrongNumber"))
- g_dbus_method_invocation_return_value_with_unix_fd_list (invocation, g_variant_new ("(h)"), list);
+ g_dbus_method_invocation_return_value_with_unix_fd_list (invocation, g_variant_new ("(h)", 0), list);
else
g_assert_not_reached ();
diff --git a/gio/tests/gdbus-names.c b/gio/tests/gdbus-names.c
index 9487cd65f..c06971097 100644
--- a/gio/tests/gdbus-names.c
+++ b/gio/tests/gdbus-names.c
@@ -1340,7 +1340,7 @@ main (int argc,
{
gint ret;
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
g_test_dbus_unset ();
diff --git a/gio/tests/gdbus-object-manager-example/meson.build b/gio/tests/gdbus-object-manager-example/meson.build
index ce0335e11..df0999233 100644
--- a/gio/tests/gdbus-object-manager-example/meson.build
+++ b/gio/tests/gdbus-object-manager-example/meson.build
@@ -1,4 +1,9 @@
-# FIXME: set UNINSTALLED_GLIB_{SRC|BUILD}DIR=top_{src|build}dir ?
+gdbus_example_objectmanager_visibility_h = configure_file(
+ output: 'gdbus-example-objectmanager-visibility.h',
+ command: [gen_visibility_macros, '2.0', 'visibility-macros',
+ 'GDBUS_OBJECT_MANAGER_EXAMPLE', '@OUTPUT@'],
+)
+
gdbus_example_objectmanager_xml = files('gdbus-example-objectmanager.xml')
gdbus_example_objectmanager_generated = custom_target('objectmanager-gen',
input : gdbus_example_objectmanager_xml,
@@ -13,8 +18,8 @@ gdbus_example_objectmanager_generated = custom_target('objectmanager-gen',
'--output-directory', '@OUTDIR@',
'--generate-c-code', 'objectmanager-gen',
'--generate-docbook', 'objectmanager-gen',
- '--symbol-decorator', '_GLIB_EXTERN',
- '--symbol-decorator-define', 'HAVE_CONFIG_H',
+ '--symbol-decorator', 'GDBUS_OBJECT_MANAGER_EXAMPLE_AVAILABLE_IN_ALL',
+ '--symbol-decorator-header', 'gdbus-example-objectmanager-visibility.h',
'@INPUT@'])
gdbus_example_objectmanager_rst_gen = custom_target('objectmanager-rst-gen',
@@ -33,9 +38,15 @@ gdbus_example_objectmanager_rst_gen = custom_target('objectmanager-rst-gen',
],
)
+extra_c_args = []
+if glib_build_static_only
+ extra_c_args = '-DGDBUS_OBJECT_MANAGER_EXAMPLE_STATIC_COMPILATION'
+endif
+
libgdbus_example_objectmanager = library('gdbus-example-objectmanager',
- gdbus_example_objectmanager_generated,
- c_args : test_c_args,
+ gdbus_example_objectmanager_generated, gdbus_example_objectmanager_visibility_h,
+ c_args : [test_c_args, extra_c_args,
+ '-DGDBUS_OBJECT_MANAGER_EXAMPLE_COMPILATION'],
dependencies : [libglib_dep, libgmodule_dep, libgobject_dep, libgio_dep],
install : installed_tests_enabled,
install_dir : installed_tests_execdir)
@@ -46,4 +57,6 @@ libgdbus_example_objectmanager_dep = declare_dependency(
gdbus_example_objectmanager_rst_gen[0],
],
link_with : libgdbus_example_objectmanager,
- dependencies : [libgio_dep])
+ dependencies : [libgio_dep],
+ compile_args : extra_c_args,
+)
diff --git a/gio/tests/gdbus-overflow.c b/gio/tests/gdbus-overflow.c
index e3896e1b1..45fc109ac 100644
--- a/gio/tests/gdbus-overflow.c
+++ b/gio/tests/gdbus-overflow.c
@@ -209,7 +209,7 @@ main (int argc,
GDBusNodeInfo *introspection_data = NULL;
gchar *tmpdir = NULL;
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
introspection_data = g_dbus_node_info_new_for_xml (test_interface_introspection_xml, NULL);
g_assert (introspection_data != NULL);
@@ -219,13 +219,8 @@ main (int argc,
if (is_unix)
{
- if (g_unix_socket_address_abstract_names_supported ())
- tmp_address = g_strdup ("unix:tmpdir=/tmp/gdbus-test-");
- else
- {
- tmpdir = g_dir_make_tmp ("gdbus-test-XXXXXX", NULL);
- tmp_address = g_strdup_printf ("unix:tmpdir=%s", tmpdir);
- }
+ tmpdir = g_dir_make_tmp ("gdbus-test-XXXXXX", NULL);
+ tmp_address = g_strdup_printf ("unix:tmpdir=%s", tmpdir);
}
else
tmp_address = g_strdup ("nonce-tcp:");
diff --git a/gio/tests/gdbus-proxy-threads.c b/gio/tests/gdbus-proxy-threads.c
index a0a38d07c..9cb1a6e22 100644
--- a/gio/tests/gdbus-proxy-threads.c
+++ b/gio/tests/gdbus-proxy-threads.c
@@ -250,7 +250,7 @@ int
main (int argc,
char *argv[])
{
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
g_test_dbus_unset ();
diff --git a/gio/tests/gdbus-proxy-unique-name.c b/gio/tests/gdbus-proxy-unique-name.c
index ab39dbc4b..f00010c40 100644
--- a/gio/tests/gdbus-proxy-unique-name.c
+++ b/gio/tests/gdbus-proxy-unique-name.c
@@ -203,7 +203,7 @@ main (int argc,
{
gint ret;
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
/* all the tests rely on a shared main loop */
loop = g_main_loop_new (NULL, FALSE);
diff --git a/gio/tests/gdbus-proxy-well-known-name.c b/gio/tests/gdbus-proxy-well-known-name.c
index 5a11c1162..990320732 100644
--- a/gio/tests/gdbus-proxy-well-known-name.c
+++ b/gio/tests/gdbus-proxy-well-known-name.c
@@ -260,7 +260,7 @@ main (int argc,
{
gint ret;
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
/* all the tests rely on a shared main loop */
loop = g_main_loop_new (NULL, FALSE);
diff --git a/gio/tests/gdbus-proxy.c b/gio/tests/gdbus-proxy.c
index 646c5e77c..ac5f720fa 100644
--- a/gio/tests/gdbus-proxy.c
+++ b/gio/tests/gdbus-proxy.c
@@ -1017,7 +1017,7 @@ main (int argc,
gint ret;
GDBusNodeInfo *introspection_data = NULL;
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
introspection_data = g_dbus_node_info_new_for_xml (frob_dbus_interface_xml, NULL);
g_assert_nonnull (introspection_data);
diff --git a/gio/tests/gdbus-serialization.c b/gio/tests/gdbus-serialization.c
index 088152716..9ad540956 100644
--- a/gio/tests/gdbus-serialization.c
+++ b/gio/tests/gdbus-serialization.c
@@ -936,7 +936,7 @@ test_message_serialize_header_checks (void)
g_dbus_message_set_interface (message, NULL);
blob = g_dbus_message_to_blob (message, &blob_size, G_DBUS_CAPABILITY_FLAGS_NONE, &error);
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT);
- g_assert_cmpstr (error->message, ==, "Cannot serialize message: SIGNAL message: PATH, INTERFACE or MEMBER header field is missing");
+ g_assert_cmpstr (error->message, ==, "Cannot serialize message: SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid");
g_clear_error (&error);
g_assert_null (blob);
/* interface reserved value => error */
@@ -953,7 +953,7 @@ test_message_serialize_header_checks (void)
g_dbus_message_set_path (message, NULL);
blob = g_dbus_message_to_blob (message, &blob_size, G_DBUS_CAPABILITY_FLAGS_NONE, &error);
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT);
- g_assert_cmpstr (error->message, ==, "Cannot serialize message: SIGNAL message: PATH, INTERFACE or MEMBER header field is missing");
+ g_assert_cmpstr (error->message, ==, "Cannot serialize message: SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid");
g_clear_error (&error);
g_assert_null (blob);
/* path reserved value => error */
@@ -970,7 +970,7 @@ test_message_serialize_header_checks (void)
g_dbus_message_set_member (message, NULL);
blob = g_dbus_message_to_blob (message, &blob_size, G_DBUS_CAPABILITY_FLAGS_NONE, &error);
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT);
- g_assert_cmpstr (error->message, ==, "Cannot serialize message: SIGNAL message: PATH, INTERFACE or MEMBER header field is missing");
+ g_assert_cmpstr (error->message, ==, "Cannot serialize message: SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid");
g_clear_error (&error);
g_assert_null (blob);
/* reset member */
@@ -988,7 +988,7 @@ test_message_serialize_header_checks (void)
g_dbus_message_set_path (message, NULL);
blob = g_dbus_message_to_blob (message, &blob_size, G_DBUS_CAPABILITY_FLAGS_NONE, &error);
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT);
- g_assert_cmpstr (error->message, ==, "Cannot serialize message: METHOD_CALL message: PATH or MEMBER header field is missing");
+ g_assert_cmpstr (error->message, ==, "Cannot serialize message: METHOD_CALL message: PATH or MEMBER header field is missing or invalid");
g_clear_error (&error);
g_assert_null (blob);
/* reset path */
@@ -998,7 +998,7 @@ test_message_serialize_header_checks (void)
g_dbus_message_set_member (message, NULL);
blob = g_dbus_message_to_blob (message, &blob_size, G_DBUS_CAPABILITY_FLAGS_NONE, &error);
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT);
- g_assert_cmpstr (error->message, ==, "Cannot serialize message: METHOD_CALL message: PATH or MEMBER header field is missing");
+ g_assert_cmpstr (error->message, ==, "Cannot serialize message: METHOD_CALL message: PATH or MEMBER header field is missing or invalid");
g_clear_error (&error);
g_assert_null (blob);
/* reset member */
@@ -1018,7 +1018,7 @@ test_message_serialize_header_checks (void)
g_dbus_message_set_header (reply, G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL, NULL);
blob = g_dbus_message_to_blob (reply, &blob_size, G_DBUS_CAPABILITY_FLAGS_NONE, &error);
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT);
- g_assert_cmpstr (error->message, ==, "Cannot serialize message: METHOD_RETURN message: REPLY_SERIAL header field is missing");
+ g_assert_cmpstr (error->message, ==, "Cannot serialize message: METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid");
g_clear_error (&error);
g_assert_null (blob);
g_object_unref (reply);
@@ -1029,7 +1029,7 @@ test_message_serialize_header_checks (void)
g_dbus_message_set_error_name (reply, NULL);
blob = g_dbus_message_to_blob (reply, &blob_size, G_DBUS_CAPABILITY_FLAGS_NONE, &error);
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT);
- g_assert_cmpstr (error->message, ==, "Cannot serialize message: ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing");
+ g_assert_cmpstr (error->message, ==, "Cannot serialize message: ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid");
g_clear_error (&error);
g_assert_null (blob);
/* reset ERROR_NAME */
@@ -1038,7 +1038,7 @@ test_message_serialize_header_checks (void)
g_dbus_message_set_header (reply, G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL, NULL);
blob = g_dbus_message_to_blob (reply, &blob_size, G_DBUS_CAPABILITY_FLAGS_NONE, &error);
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT);
- g_assert_cmpstr (error->message, ==, "Cannot serialize message: ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing");
+ g_assert_cmpstr (error->message, ==, "Cannot serialize message: ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid");
g_clear_error (&error);
g_assert_null (blob);
g_object_unref (reply);
@@ -1615,6 +1615,127 @@ test_message_serialize_empty_structure (void)
g_clear_object (&message);
}
+static void
+test_message_parse_missing_header (void)
+{
+ const guint8 data[] = {
+ 'l', /* little-endian byte order */
+ 0x01, /* message type (method call) */
+ 0x00, /* message flags (none) */
+ 0x01, /* major protocol version */
+ 0x12, 0x00, 0x00, 0x00, /* body length (in bytes) */
+ 0x20, 0x20, 0x20, 0x20, /* message serial */
+ /* a{yv} of header fields: */
+ 0x24, 0x00, 0x00, 0x00, /* array length (in bytes), must be a multiple of 8 */
+ 0x01, /* array key (PATH, required for method call messages) */
+ /* Variant array value: */
+ 0x01, /* signature length */
+ 'o', /* one complete type */
+ 0x00, /* nul terminator */
+ /* (Variant array value payload) */
+ 0x01, 0x00, 0x00, 0x00,
+ '/', 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x30, /* array key (MEMBER, required for method call messages; CORRUPTED from 0x03) */
+ /* Variant array value: */
+ 0x01, /* signature length */
+ 's', /* one complete type */
+ 0x00, /* nul terminator */
+ /* (Variant array value payload) */
+ 0x03, 0x00, 0x00, 0x00,
+ 'H', 'e', 'y', 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x08, /* array key (SIGNATURE) */
+ /* Variant array value: */
+ 0x01, /* signature length */
+ 'g', /* one complete type */
+ 0x00, /* nul terminator */
+ /* (Variant array value payload) */
+ 0x02, 's', 's', 0x00,
+ /* Some arbitrary valid content inside the message body: */
+ 0x03, 0x00, 0x00, 0x00,
+ 'h', 'e', 'y', 0x00,
+ 0x05, 0x00, 0x00, 0x00,
+ 't', 'h', 'e', 'r', 'e', 0x00
+ };
+
+ gsize size = sizeof (data);
+ GDBusMessage *message = NULL;
+ GError *local_error = NULL;
+
+ g_test_summary ("Test that missing (required) headers prompt an error.");
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/3061");
+
+ message = g_dbus_message_new_from_blob ((guchar *) data, size,
+ G_DBUS_CAPABILITY_FLAGS_NONE,
+ &local_error);
+ g_assert_error (local_error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT);
+ g_assert_null (message);
+
+ g_clear_error (&local_error);
+}
+
+static void
+test_message_parse_invalid_header_type (void)
+{
+ const guint8 data[] = {
+ 'l', /* little-endian byte order */
+ 0x01, /* message type (method call) */
+ 0x00, /* message flags (none) */
+ 0x01, /* major protocol version */
+ 0x12, 0x00, 0x00, 0x00, /* body length (in bytes) */
+ 0x20, 0x20, 0x20, 0x20, /* message serial */
+ /* a{yv} of header fields: */
+ 0x24, 0x00, 0x00, 0x00, /* array length (in bytes), must be a multiple of 8 */
+ 0x01, /* array key (PATH, required for method call messages) */
+ /* Variant array value: */
+ 0x01, /* signature length */
+ 'o', /* one complete type */
+ 0x00, /* nul terminator */
+ /* (Variant array value payload) */
+ 0x01, 0x00, 0x00, 0x00,
+ '/', 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x03, /* array key (MEMBER, required for method call messages) */
+ /* Variant array value: */
+ 0x01, /* signature length */
+ 't', /* one complete type; CORRUPTED, MEMBER should be 's' */
+ 0x00, /* nul terminator */
+ /* (Padding to 64-bit alignment of 't)' */
+ 0x00, 0x00, 0x00, 0x00,
+ /* (Variant array value payload) */
+ 'H', 'e', 'y', 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x08, /* array key (SIGNATURE) */
+ /* Variant array value: */
+ 0x01, /* signature length */
+ 'g', /* one complete type */
+ 0x00, /* nul terminator */
+ /* (Variant array value payload) */
+ 0x02, 's', 's', 0x00,
+ /* Some arbitrary valid content inside the message body: */
+ 0x03, 0x00, 0x00, 0x00,
+ 'h', 'e', 'y', 0x00,
+ 0x05, 0x00, 0x00, 0x00,
+ 't', 'h', 'e', 'r', 'e', 0x00
+ };
+
+ gsize size = sizeof (data);
+ GDBusMessage *message = NULL;
+ GError *local_error = NULL;
+
+ g_test_summary ("Test that the type of well-known headers is checked.");
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/3061");
+
+ message = g_dbus_message_new_from_blob ((guchar *) data, size,
+ G_DBUS_CAPABILITY_FLAGS_NONE,
+ &local_error);
+ g_assert_error (local_error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT);
+ g_assert_null (message);
+
+ g_clear_error (&local_error);
+}
+
/* ---------------------------------------------------------------------------------------------------- */
int
@@ -1624,7 +1745,7 @@ main (int argc,
g_setenv ("LC_ALL", "C", TRUE);
setlocale (LC_ALL, "C");
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
g_test_add_func ("/gdbus/message-serialize/basic",
test_message_serialize_basic);
@@ -1657,6 +1778,10 @@ main (int argc,
test_message_parse_truncated);
g_test_add_func ("/gdbus/message-parse/empty-structure",
test_message_parse_empty_structure);
+ g_test_add_func ("/gdbus/message-parse/missing-header",
+ test_message_parse_missing_header);
+ g_test_add_func ("/gdbus/message-parse/invalid-header-type",
+ test_message_parse_invalid_header_type);
return g_test_run();
}
diff --git a/gio/tests/gdbus-server-auth.c b/gio/tests/gdbus-server-auth.c
index c683f61da..319a9948b 100644
--- a/gio/tests/gdbus-server-auth.c
+++ b/gio/tests/gdbus-server-auth.c
@@ -210,6 +210,7 @@ libdbus_call_task_cb (GTask *task,
libdbus_call->call,
-1,
&libdbus_call->error);
+ g_task_return_boolean (task, TRUE);
}
#endif /* HAVE_DBUS1 */
diff --git a/gio/tests/gdbus-test-codegen.c b/gio/tests/gdbus-test-codegen.c
index 44109f8e5..31de7f14e 100644
--- a/gio/tests/gdbus-test-codegen.c
+++ b/gio/tests/gdbus-test-codegen.c
@@ -26,6 +26,7 @@
#include <stdio.h>
#include "gdbus-tests.h"
+#include "gstdio.h"
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_64
#include "gdbus-test-codegen-generated-min-required-2-64.h"
@@ -410,6 +411,22 @@ on_handle_check_not_authorized_from_object (FooiGenAuthorize *object,
return G_DBUS_METHOD_INVOCATION_HANDLED;
}
+static gboolean
+on_handle_fdpassing_hello_fd (FooiGenMethodThreads *object,
+ GDBusMethodInvocation *invocation,
+ GUnixFDList *fd_list,
+ const gchar *greeting,
+ gpointer user_data)
+{
+ g_assert_true (G_IS_UNIX_FD_LIST (fd_list));
+ g_assert_cmpuint (g_unix_fd_list_get_length (fd_list), ==, 2);
+ g_assert_cmpstr (greeting, ==, "Hey fd!");
+ foo_igen_test_fdpassing_complete_hello_fd (FOO_IGEN_TEST_FDPASSING (object),
+ invocation, fd_list,
+ "I love to receive fds!");
+ return G_DBUS_METHOD_INVOCATION_HANDLED;
+}
+
/* ---------------------------------------------------------------------------------------------------- */
static gboolean
@@ -430,6 +447,7 @@ static GThread *method_handler_thread = NULL;
static FooiGenBar *exported_bar_object = NULL;
static FooiGenBat *exported_bat_object = NULL;
+static FooiGenTestFDPassing *exported_fd_passing_object = NULL;
static FooiGenAuthorize *exported_authorize_object = NULL;
static GDBusObjectSkeleton *authorize_enclosing_object = NULL;
static FooiGenMethodThreads *exported_thread_object_1 = NULL;
@@ -443,6 +461,7 @@ unexport_objects (void)
g_dbus_interface_skeleton_unexport (G_DBUS_INTERFACE_SKELETON (exported_authorize_object));
g_dbus_interface_skeleton_unexport (G_DBUS_INTERFACE_SKELETON (exported_thread_object_1));
g_dbus_interface_skeleton_unexport (G_DBUS_INTERFACE_SKELETON (exported_thread_object_2));
+ g_dbus_interface_skeleton_unexport (G_DBUS_INTERFACE_SKELETON (exported_fd_passing_object));
}
static void
@@ -584,6 +603,17 @@ on_bus_acquired (GDBusConnection *connection,
g_assert_cmpint (g_dbus_interface_skeleton_get_flags (G_DBUS_INTERFACE_SKELETON (exported_thread_object_2)), ==, G_DBUS_INTERFACE_SKELETON_FLAGS_NONE);
+ exported_fd_passing_object = foo_igen_test_fdpassing_skeleton_new ();
+ g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (exported_fd_passing_object),
+ connection,
+ "/fdpassing",
+ &error);
+ g_assert_no_error (error);
+ g_signal_connect (exported_fd_passing_object,
+ "handle-hello-fd",
+ G_CALLBACK (on_handle_fdpassing_hello_fd),
+ NULL);
+
method_handler_thread = g_thread_self ();
}
@@ -1125,6 +1155,45 @@ check_bar_proxy (FooiGenBar *proxy,
g_variant_unref (array_of_signatures);
}
+static void
+check_fdpassing_proxy (FooiGenTestFDPassing *proxy)
+{
+ GError *error = NULL;
+ GUnixFDList *fd_list = g_unix_fd_list_new ();
+ GUnixFDList *ret_fd_list = NULL;
+ char *response = NULL;
+ int fd;
+
+ fd = dup (0);
+ g_assert_cmpint (g_unix_fd_list_append (fd_list, fd, &error), ==, 0);
+ g_assert_no_error (error);
+ g_close (fd, &error);
+ g_assert_no_error (error);
+
+ fd = dup (0);
+ g_assert_cmpint (g_unix_fd_list_append (fd_list, fd, &error), ==, 1);
+ g_assert_no_error (error);
+ g_close (fd, &error);
+ g_assert_no_error (error);
+
+ foo_igen_test_fdpassing_call_hello_fd_sync (proxy, "Hey fd!",
+#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_64
+ G_DBUS_CALL_FLAGS_NO_AUTO_START, -1,
+#endif
+ fd_list,
+ &response, &ret_fd_list, NULL,
+ &error);
+ g_assert_no_error (error);
+
+ g_assert_true (G_IS_UNIX_FD_LIST (ret_fd_list));
+ g_assert_cmpuint (g_unix_fd_list_get_length (fd_list), ==, 2);
+
+ g_assert_cmpstr (response, ==, "I love to receive fds!");
+ g_clear_pointer (&response, g_free);
+ g_clear_object (&fd_list);
+ g_clear_object (&ret_fd_list);
+}
+
/* ---------------------------------------------------------------------------------------------------- */
static void
@@ -1309,6 +1378,7 @@ check_proxies_in_thread (gpointer user_data)
GError *error;
FooiGenBar *bar_proxy;
FooiGenBat *bat_proxy;
+ FooiGenTestFDPassing *fd_passing_proxy;
FooiGenAuthorize *authorize_proxy;
FooiGenMethodThreads *thread_proxy_1;
FooiGenMethodThreads *thread_proxy_2;
@@ -1370,6 +1440,16 @@ check_proxies_in_thread (gpointer user_data)
g_object_unref (thread_proxy_1);
g_object_unref (thread_proxy_2);
+ fd_passing_proxy = foo_igen_test_fdpassing_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
+ G_DBUS_PROXY_FLAGS_NONE,
+ "org.gtk.GDBus.BindingsTool.Test",
+ "/fdpassing",
+ NULL, /* GCancellable* */
+ &error);
+ g_assert_no_error (error);
+ check_fdpassing_proxy (fd_passing_proxy);
+ g_object_unref (fd_passing_proxy);
+
/* Wait for the proxy signals to all be unsubscribed. */
while (g_main_context_iteration (thread_context, FALSE))
{
@@ -1551,12 +1631,6 @@ typedef struct
guint num_interface_removed_signals;
} OMData;
-static gint
-my_pstrcmp (const gchar **a, const gchar **b)
-{
- return g_strcmp0 (*a, *b);
-}
-
static void
om_check_interfaces_added (const gchar *signal_name,
GVariant *parameters,
@@ -1597,8 +1671,10 @@ om_check_interfaces_added (const gchar *signal_name,
g_ptr_array_add (interfaces_in_message, (gpointer) iface_name);
}
g_assert_cmpint (interfaces_in_message->len, ==, interfaces->len);
- g_ptr_array_sort (interfaces, (GCompareFunc) my_pstrcmp);
- g_ptr_array_sort (interfaces_in_message, (GCompareFunc) my_pstrcmp);
+ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+ g_ptr_array_sort_values (interfaces, (GCompareFunc) g_strcmp0);
+ g_ptr_array_sort_values (interfaces_in_message, (GCompareFunc) g_strcmp0);
+ G_GNUC_END_IGNORE_DEPRECATIONS
for (n = 0; n < interfaces->len; n++)
g_assert_cmpstr (interfaces->pdata[n], ==, interfaces_in_message->pdata[n]);
g_ptr_array_unref (interfaces_in_message);
@@ -1646,8 +1722,10 @@ om_check_interfaces_removed (const gchar *signal_name,
g_ptr_array_add (interfaces_in_message, (gpointer) iface_name);
}
g_assert_cmpint (interfaces_in_message->len, ==, interfaces->len);
- g_ptr_array_sort (interfaces, (GCompareFunc) my_pstrcmp);
- g_ptr_array_sort (interfaces_in_message, (GCompareFunc) my_pstrcmp);
+ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+ g_ptr_array_sort_values (interfaces, (GCompareFunc) g_strcmp0);
+ g_ptr_array_sort_values (interfaces_in_message, (GCompareFunc) g_strcmp0);
+ G_GNUC_END_IGNORE_DEPRECATIONS
for (n = 0; n < interfaces->len; n++)
g_assert_cmpstr (interfaces->pdata[n], ==, interfaces_in_message->pdata[n]);
g_ptr_array_unref (interfaces_in_message);
@@ -2652,53 +2730,53 @@ test_standalone_interface_info (void)
/* ---------------------------------------------------------------------------------------------------- */
static gboolean
-handle_hello_fd (FooiGenFDPassing *object,
+handle_hello_fd (FooiGenTestFDPassing *object,
GDBusMethodInvocation *invocation,
GUnixFDList *fd_list,
const gchar *arg_greeting)
{
- foo_igen_fdpassing_complete_hello_fd (object, invocation, fd_list, arg_greeting);
+ foo_igen_test_fdpassing_complete_hello_fd (object, invocation, fd_list, arg_greeting);
return G_DBUS_METHOD_INVOCATION_HANDLED;
}
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_64
static gboolean
-handle_no_annotation (FooiGenFDPassing *object,
+handle_no_annotation (FooiGenTestFDPassing *object,
GDBusMethodInvocation *invocation,
GUnixFDList *fd_list,
GVariant *arg_greeting,
const gchar *arg_greeting_locale)
{
- foo_igen_fdpassing_complete_no_annotation (object, invocation, fd_list, arg_greeting, arg_greeting_locale);
+ foo_igen_test_fdpassing_complete_no_annotation (object, invocation, fd_list, arg_greeting, arg_greeting_locale);
return G_DBUS_METHOD_INVOCATION_HANDLED;
}
static gboolean
-handle_no_annotation_nested (FooiGenFDPassing *object,
+handle_no_annotation_nested (FooiGenTestFDPassing *object,
GDBusMethodInvocation *invocation,
GUnixFDList *fd_list,
GVariant *arg_files)
{
- foo_igen_fdpassing_complete_no_annotation_nested (object, invocation, fd_list);
+ foo_igen_test_fdpassing_complete_no_annotation_nested (object, invocation, fd_list);
return G_DBUS_METHOD_INVOCATION_HANDLED;
}
#else
static gboolean
-handle_no_annotation (FooiGenFDPassing *object,
+handle_no_annotation (FooiGenTestFDPassing *object,
GDBusMethodInvocation *invocation,
GVariant *arg_greeting,
const gchar *arg_greeting_locale)
{
- foo_igen_fdpassing_complete_no_annotation (object, invocation, arg_greeting, arg_greeting_locale);
+ foo_igen_test_fdpassing_complete_no_annotation (object, invocation, arg_greeting, arg_greeting_locale);
return G_DBUS_METHOD_INVOCATION_HANDLED;
}
static gboolean
-handle_no_annotation_nested (FooiGenFDPassing *object,
+handle_no_annotation_nested (FooiGenTestFDPassing *object,
GDBusMethodInvocation *invocation,
GVariant *arg_files)
{
- foo_igen_fdpassing_complete_no_annotation_nested (object, invocation);
+ foo_igen_test_fdpassing_complete_no_annotation_nested (object, invocation);
return G_DBUS_METHOD_INVOCATION_HANDLED;
}
#endif
@@ -2711,7 +2789,7 @@ handle_no_annotation_nested (FooiGenFDPassing *object,
static void
test_unix_fd_list (void)
{
- FooiGenFDPassingIface iface;
+ FooiGenTestFDPassingIface iface;
g_test_bug ("https://gitlab.gnome.org/GNOME/glib/issues/1726");
@@ -2736,7 +2814,7 @@ int
main (int argc,
char *argv[])
{
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
g_test_add_func ("/gdbus/codegen/annotations", test_annotations);
g_test_add_func ("/gdbus/codegen/interface_stability", test_interface_stability);
diff --git a/gio/tests/gdbus-test-fixture.c b/gio/tests/gdbus-test-fixture.c
index 2071bbad9..70f455e19 100644
--- a/gio/tests/gdbus-test-fixture.c
+++ b/gio/tests/gdbus-test-fixture.c
@@ -80,7 +80,7 @@ int
main (int argc,
char *argv[])
{
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
/* This test simply ensures that we can bring the GTestDBus up and down a hand
* full of times in a row, each time successfully activating the in-tree service
diff --git a/gio/tests/gdbus-testserver.c b/gio/tests/gdbus-testserver.c
index ae8e47b18..3a16db378 100644
--- a/gio/tests/gdbus-testserver.c
+++ b/gio/tests/gdbus-testserver.c
@@ -843,6 +843,8 @@ main (int argc, char *argv[])
{
guint owner_id;
+ g_log_writer_default_set_use_stderr (TRUE);
+
introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, NULL);
properties = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify)g_variant_unref);
g_hash_table_insert (properties, g_strdup ("y"), g_variant_ref_sink (g_variant_new_byte (1)));
diff --git a/gio/tests/gdbus-threading.c b/gio/tests/gdbus-threading.c
index 8323dd292..755b490e0 100644
--- a/gio/tests/gdbus-threading.c
+++ b/gio/tests/gdbus-threading.c
@@ -677,7 +677,7 @@ main (int argc,
gint ret;
gchar *path;
- g_test_init (&argc, &argv, NULL);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
session_bus_up ();
diff --git a/gio/tests/giomodule.c b/gio/tests/giomodule.c
index 4ea6efebd..77522d9b6 100644
--- a/gio/tests/giomodule.c
+++ b/gio/tests/giomodule.c
@@ -2,6 +2,8 @@
* Copyright (C) 2013 Red Hat, Inc
* Author: Matthias Clasen
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -23,10 +25,16 @@
#include <gio/gio.h>
#include <glibconfig.h>
-#ifdef _MSC_VER
-# define MODULE_FILENAME_PREFIX ""
+#ifdef G_OS_WIN32
+ #ifdef _MSC_VER
+ #define MODULE_FILENAME(x) "" x ".dll"
+ #else
+ #define MODULE_FILENAME(x) "lib" x ".dll"
+ #endif
+#elif defined(__APPLE__)
+ #define MODULE_FILENAME(x) "lib" x ".dylib"
#else
-# define MODULE_FILENAME_PREFIX "lib"
+ #define MODULE_FILENAME(x) "lib" x ".so"
#endif
static void
@@ -131,7 +139,7 @@ test_module_scan_all_with_scope (void)
ep = g_io_extension_point_register ("test-extension-point");
scope = g_io_module_scope_new (G_IO_MODULE_SCOPE_BLOCK_DUPLICATES);
- g_io_module_scope_block (scope, MODULE_FILENAME_PREFIX "testmoduleb." G_MODULE_SUFFIX);
+ g_io_module_scope_block (scope, MODULE_FILENAME ("testmoduleb"));
g_io_modules_scan_all_in_directory_with_scope (g_test_get_filename (G_TEST_BUILT, "modules", NULL), scope);
list = g_io_extension_point_get_extensions (ep);
g_assert_cmpint (g_list_length (list), ==, 1);
diff --git a/gio/tests/glistmodel.c b/gio/tests/glistmodel.c
index ee61d1d50..cd6ae91e2 100644
--- a/gio/tests/glistmodel.c
+++ b/gio/tests/glistmodel.c
@@ -73,7 +73,7 @@ test_store_non_gobjects (void)
g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
g_test_trap_assert_failed ();
- g_test_trap_assert_stderr ("*WARNING*value * of type 'GType' is invalid or "
+ g_test_trap_assert_stderr ("*CRITICAL*value * of type 'GType' is invalid or "
"out of range for property 'item-type'*");
}
@@ -572,13 +572,7 @@ test_store_splice_wrong_type (void)
}
static gint
-ptr_array_cmp_action_by_name (GAction **a, GAction **b)
-{
- return g_strcmp0 (g_action_get_name (*a), g_action_get_name (*b));
-}
-
-static gint
-list_model_cmp_action_by_name (GAction *a, GAction *b, gpointer user_data)
+cmp_action_by_name (GAction *a, GAction *b, gpointer user_data)
{
return g_strcmp0 (g_action_get_name (a), g_action_get_name (b));
}
@@ -606,16 +600,16 @@ test_store_sort (void)
g_ptr_array_add (array, g_simple_action_new ("1", NULL));
/* Sort an empty list */
- g_list_store_sort (store, (GCompareDataFunc)list_model_cmp_action_by_name, NULL);
+ g_list_store_sort (store, (GCompareDataFunc) cmp_action_by_name, NULL);
/* Add all */
g_list_store_splice (store, 0, 0, array->pdata, array->len);
g_assert_true (model_array_equal (model, array));
/* Sort both and check if the result is the same */
- g_ptr_array_sort (array, (GCompareFunc)ptr_array_cmp_action_by_name);
+ g_ptr_array_sort_values (array, (GCompareFunc)cmp_action_by_name);
g_assert_false (model_array_equal (model, array));
- g_list_store_sort (store, (GCompareDataFunc)list_model_cmp_action_by_name, NULL);
+ g_list_store_sort (store, (GCompareDataFunc) cmp_action_by_name, NULL);
g_assert_true (model_array_equal (model, array));
g_ptr_array_unref (array);
@@ -763,7 +757,7 @@ test_store_signal_items_changed (void)
/* Sort the list */
expect_items_changed (&expected, 0, 2, 2);
g_list_store_sort (store,
- (GCompareDataFunc)list_model_cmp_action_by_name,
+ (GCompareDataFunc) cmp_action_by_name,
NULL);
g_assert_true (expected.called);
g_assert_false (expected.notified);
@@ -773,7 +767,7 @@ test_store_signal_items_changed (void)
item = g_simple_action_new ("3", NULL);
g_list_store_insert_sorted (store,
item,
- (GCompareDataFunc)list_model_cmp_action_by_name,
+ (GCompareDataFunc) cmp_action_by_name,
NULL);
g_object_unref (item);
g_assert_true (expected.called);
diff --git a/gio/tests/gmenumodel.c b/gio/tests/gmenumodel.c
index 9d3e5cbf2..d75f36a29 100644
--- a/gio/tests/gmenumodel.c
+++ b/gio/tests/gmenumodel.c
@@ -7,12 +7,10 @@
#include "glib/glib-private.h"
-static gboolean
+static void
time_out (gpointer unused G_GNUC_UNUSED)
{
g_error ("Timed out");
- /* not reached */
- return FALSE;
}
static guint
@@ -22,7 +20,7 @@ add_timeout (guint seconds)
/* Safety-catch against the main loop having blocked */
alarm (seconds + 5);
#endif
- return g_timeout_add_seconds (seconds, time_out, NULL);
+ return g_timeout_add_seconds_once (seconds, time_out, NULL);
}
static void
@@ -831,13 +829,8 @@ service_thread_func (gpointer user_data)
flags = G_DBUS_SERVER_FLAGS_NONE;
#ifdef G_OS_UNIX
- if (g_unix_socket_address_abstract_names_supported ())
- address = g_strdup ("unix:tmpdir=/tmp/test-dbus-peer");
- else
- {
- tmpdir = g_dir_make_tmp ("test-dbus-peer-XXXXXX", NULL);
- address = g_strdup_printf ("unix:tmpdir=%s", tmpdir);
- }
+ tmpdir = g_dir_make_tmp ("test-dbus-peer-XXXXXX", NULL);
+ address = g_strdup_printf ("unix:tmpdir=%s", tmpdir);
#else
address = g_strdup ("nonce-tcp:");
flags |= G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS;
diff --git a/gio/tests/gsettings.c b/gio/tests/gsettings.c
index 1956ac5e6..aa30140ae 100644
--- a/gio/tests/gsettings.c
+++ b/gio/tests/gsettings.c
@@ -1,3 +1,5 @@
+#include "config.h"
+
#include <stdlib.h>
#include <locale.h>
#include <libintl.h>
@@ -10,6 +12,11 @@
#include "testenum.h"
+#ifdef HAVE_XLOCALE_H
+/* Needed on macOS and FreeBSD for uselocale() */
+#include <xlocale.h>
+#endif
+
static const gchar *locale_dir = ".";
static gboolean backend_set;
@@ -747,7 +754,7 @@ test_atomic (void)
* 1) The C library doesn't use LC_MESSAGES, that is implemented only
* in libintl (defined in its <libintl.h>).
*
- * 2) The locale names that setlocale() accepts and returns aren't in
+ * 2) The locale names that uselocale() accepts and returns aren't in
* the "de_DE" style, but like "German_Germany".
*
* 3) libintl looks at the Win32 thread locale and not the C library
@@ -765,29 +772,46 @@ test_atomic (void)
static void
test_l10n (void)
{
+#ifndef HAVE_USELOCALE
+ g_test_skip ("Unsafe to change locale because platform does not support uselocale()");
+#else
GSettings *settings;
gchar *str;
- gchar *locale;
+ locale_t original_locale;
+ locale_t new_locale;
+ locale_t result;
bindtextdomain ("test", locale_dir);
bind_textdomain_codeset ("test", "UTF-8");
- locale = g_strdup (setlocale (LC_MESSAGES, NULL));
+ original_locale = uselocale ((locale_t) 0);
+ g_assert_true (original_locale != (locale_t) 0);
+ new_locale = newlocale (LC_MESSAGES_MASK, "C", (locale_t) 0);
+ g_assert_true (new_locale != (locale_t) 0);
+ result = uselocale (new_locale);
+ g_assert_true (result == original_locale);
settings = g_settings_new ("org.gtk.test.localized");
-
- g_setenv ("LC_MESSAGES", "C", TRUE);
- setlocale (LC_MESSAGES, "C");
str = g_settings_get_string (settings, "error-message");
- g_setenv ("LC_MESSAGES", locale, TRUE);
- setlocale (LC_MESSAGES, locale);
+
+ result = uselocale (original_locale);
+ g_assert_true (result == new_locale);
+ freelocale (new_locale);
g_assert_cmpstr (str, ==, "Unnamed");
g_free (str);
str = NULL;
- g_setenv ("LC_MESSAGES", "de_DE.UTF-8", TRUE);
- setlocale (LC_MESSAGES, "de_DE.UTF-8");
+ new_locale = newlocale (LC_MESSAGES_MASK, "de_DE.UTF-8", (locale_t) 0);
+ if (new_locale == (locale_t) 0)
+ {
+ g_test_skip ("Cannot run test becaues de_DE.UTF-8 locale is not available");
+ g_object_unref (settings);
+ return;
+ }
+ result = uselocale (new_locale);
+ g_assert_true (result == original_locale);
+
/* Only do the test if translation is actually working... */
if (g_str_equal (dgettext ("test", "\"Unnamed\""), "\"Unbenannt\""))
{
@@ -798,12 +822,16 @@ test_l10n (void)
str = NULL;
}
else
- g_printerr ("warning: translation is not working... skipping test. ");
+ {
+ g_test_skip ("translation is not working");
+ }
+
+ result = uselocale (original_locale);
+ g_assert_true (result == new_locale);
+ freelocale (new_locale);
- g_setenv ("LC_MESSAGES", locale, TRUE);
- setlocale (LC_MESSAGES, locale);
- g_free (locale);
g_object_unref (settings);
+#endif
}
/* Test that message context works as expected with translated
@@ -816,39 +844,130 @@ test_l10n (void)
static void
test_l10n_context (void)
{
+#ifndef HAVE_USELOCALE
+ g_test_skip ("Unsafe to change locale because platform does not support uselocale()");
+#else
GSettings *settings;
gchar *str;
- gchar *locale;
+ locale_t original_locale;
+ locale_t new_locale;
+ locale_t result;
bindtextdomain ("test", locale_dir);
bind_textdomain_codeset ("test", "UTF-8");
- locale = g_strdup (setlocale (LC_MESSAGES, NULL));
-
settings = g_settings_new ("org.gtk.test.localized");
- g_setenv ("LC_MESSAGES", "C", TRUE);
- setlocale (LC_MESSAGES, "C");
+ original_locale = uselocale ((locale_t) 0);
+ g_assert_true (original_locale != (locale_t) 0);
+ new_locale = newlocale (LC_MESSAGES_MASK, "C", (locale_t) 0);
+ g_assert_true (new_locale != (locale_t) 0);
+ result = uselocale (new_locale);
+ g_assert_true (result == original_locale);
+
g_settings_get (settings, "backspace", "s", &str);
- g_setenv ("LC_MESSAGES", locale, TRUE);
- setlocale (LC_MESSAGES, locale);
+
+ result = uselocale (original_locale);
+ g_assert_true (result == new_locale);
+ freelocale (new_locale);
g_assert_cmpstr (str, ==, "BackSpace");
g_free (str);
str = NULL;
- g_setenv ("LC_MESSAGES", "de_DE.UTF-8", TRUE);
- setlocale (LC_MESSAGES, "de_DE.UTF-8");
+ new_locale = newlocale (LC_MESSAGES_MASK, "de_DE.UTF-8", (locale_t) 0);
+ if (new_locale == (locale_t) 0)
+ {
+ g_test_skip ("Cannot run test becaues de_DE.UTF-8 locale is not available");
+ g_object_unref (settings);
+ return;
+ }
+ result = uselocale (new_locale);
+ g_assert_true (result == original_locale);
+
/* Only do the test if translation is actually working... */
if (g_str_equal (dgettext ("test", "\"Unnamed\""), "\"Unbenannt\""))
settings_assert_cmpstr (settings, "backspace", ==, "Löschen");
else
- g_printerr ("warning: translation is not working... skipping test. ");
+ g_test_skip ("translation is not working");
+
+ result = uselocale (original_locale);
+ g_assert_true (result == new_locale);
+ freelocale (new_locale);
+
+ g_object_unref (settings);
+#endif
+}
+
+/* Test use of l10n="time" and LC_TIME. */
+static void
+test_l10n_time (void)
+{
+#ifndef HAVE_USELOCALE
+ g_test_skip ("Unsafe to change locale because platform does not support uselocale()");
+#else
+ GSettings *settings;
+ gchar *str;
+ locale_t original_locale;
+ locale_t new_locale;
+ locale_t result;
+
+ g_test_summary ("Test that l10n='time' attribute uses the correct category for translations");
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/2575");
+
+ bindtextdomain ("test", locale_dir);
+ bind_textdomain_codeset ("test", "UTF-8");
+
+ settings = g_settings_new ("org.gtk.test.localized");
+
+ original_locale = uselocale ((locale_t) 0);
+ g_assert_true (original_locale != (locale_t) 0);
+ new_locale = duplocale (original_locale);
+ g_assert_true (new_locale != (locale_t) 0);
+ new_locale = newlocale (LC_TIME_MASK, "C", new_locale);
+ g_assert_true (new_locale != (locale_t) 0);
+ result = uselocale (new_locale);
+ g_assert_true (result == original_locale);
+
+ str = g_settings_get_string (settings, "midnight");
+
+ result = uselocale (original_locale);
+ g_assert_true (result == new_locale);
+
+ g_assert_cmpstr (str, ==, "12:00 AM");
+ g_free (str);
+ str = NULL;
+
+ new_locale = newlocale (LC_TIME_MASK, "de_DE.UTF-8", new_locale);
+ if (new_locale == (locale_t) 0)
+ {
+ g_test_skip ("Cannot run test becaues de_DE.UTF-8 locale is not available");
+ g_object_unref (settings);
+ return;
+ }
+ result = uselocale (new_locale);
+ g_assert_true (result != (locale_t) 0);
+
+ /* Only do the test if translation is actually working... */
+ if (g_str_equal (dgettext ("test", "\"12:00 AM\""), "\"00:00\""))
+ {
+ str = g_settings_get_string (settings, "midnight");
+
+ g_assert_cmpstr (str, ==, "00:00");
+ g_free (str);
+ str = NULL;
+ }
+ else
+ {
+ g_test_skip ("translation is not working");
+ }
+
+ result = uselocale (original_locale);
+ g_assert_true (result == new_locale);
+ freelocale (new_locale);
- g_setenv ("LC_MESSAGES", locale, TRUE);
- setlocale (LC_MESSAGES, locale);
- g_free (locale);
g_object_unref (settings);
+#endif
}
enum
@@ -2886,6 +3005,7 @@ static void
test_per_desktop (void)
{
GSettings *settings;
+ GAction *action_string;
TestObject *obj;
gpointer p;
gchar *str;
@@ -2918,6 +3038,10 @@ test_per_desktop (void)
g_assert_cmpstr (str, ==, "GNOME");
g_free (str);
+ action_string = g_settings_create_action (settings, "desktop");
+ check_and_free (g_action_get_state (action_string), "'GNOME'");
+
+ g_clear_object (&action_string);
g_object_unref (settings);
g_object_unref (obj);
}
@@ -2929,6 +3053,7 @@ static void
test_per_desktop_subprocess (void)
{
GSettings *settings;
+ GAction *action_string;
TestObject *obj;
gpointer p;
gchar *str;
@@ -2956,6 +3081,10 @@ test_per_desktop_subprocess (void)
g_assert_cmpstr (str, ==, "GNOME Classic");
g_free (str);
+ action_string = g_settings_create_action (settings, "desktop");
+ check_and_free (g_action_get_state (action_string), "'GNOME Classic'");
+
+ g_clear_object (&action_string);
g_object_unref (settings);
g_object_unref (obj);
}
@@ -3007,6 +3136,8 @@ main (int argc, char *argv[])
if (!g_test_subprocess ())
{
GError *local_error = NULL;
+ char *subprocess_stdout = NULL;
+
/* A GVDB header is 6 guint32s, and requires a magic number in the first
* two guint32s. A set of zero bytes of a greater length is considered
* corrupt. */
@@ -3046,14 +3177,20 @@ main (int argc, char *argv[])
"--schema-file=org.gtk.test.enums.xml "
"--schema-file=org.gtk.test.gschema.xml "
"--override-file=org.gtk.test.gschema.override",
- NULL, NULL, &result, NULL));
+ &subprocess_stdout, NULL, &result, NULL));
+ if (subprocess_stdout && *g_strstrip (subprocess_stdout) != '\0')
+ g_test_message ("%s", subprocess_stdout);
+ g_clear_pointer (&subprocess_stdout, g_free);
g_assert_cmpint (result, ==, 0);
g_remove ("schema-source/gschemas.compiled");
g_mkdir ("schema-source", 0777);
g_assert_true (g_spawn_command_line_sync (GLIB_COMPILE_SCHEMAS " --targetdir=schema-source "
"--schema-file=" SRCDIR "/org.gtk.schemasourcecheck.gschema.xml",
- NULL, NULL, &result, NULL));
+ &subprocess_stdout, NULL, &result, NULL));
+ if (subprocess_stdout && *g_strstrip (subprocess_stdout) != '\0')
+ g_test_message ("%s", subprocess_stdout);
+ g_clear_pointer (&subprocess_stdout, g_free);
g_assert_cmpint (result, ==, 0);
g_remove ("schema-source-corrupt/gschemas.compiled");
@@ -3089,6 +3226,7 @@ main (int argc, char *argv[])
g_test_add_func ("/gsettings/l10n", test_l10n);
g_test_add_func ("/gsettings/l10n-context", test_l10n_context);
+ g_test_add_func ("/gsettings/l10n-time", test_l10n_time);
g_test_add_func ("/gsettings/delay-apply", test_delay_apply);
g_test_add_func ("/gsettings/delay-revert", test_delay_revert);
diff --git a/gio/tests/gsubprocess-testprog.c b/gio/tests/gsubprocess-testprog.c
index eee759dcd..05fc526f3 100644
--- a/gio/tests/gsubprocess-testprog.c
+++ b/gio/tests/gsubprocess-testprog.c
@@ -241,6 +241,66 @@ printenv_mode (int argc, char **argv)
return 0;
}
+#ifdef G_OS_UNIX
+static void
+on_sleep_exited (GObject *object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ GSubprocess *subprocess = G_SUBPROCESS (object);
+ gboolean *done = user_data;
+ GError *local_error = NULL;
+ gboolean ret;
+
+ ret = g_subprocess_wait_finish (subprocess, result, &local_error);
+ g_assert_no_error (local_error);
+ g_assert_true (ret);
+
+ *done = TRUE;
+ g_main_context_wakeup (NULL);
+}
+
+static int
+sleep_and_kill (int argc, char **argv)
+{
+ GPtrArray *args = NULL;
+ GSubprocessLauncher *launcher = NULL;
+ GSubprocess *proc = NULL;
+ GError *local_error = NULL;
+ pid_t sleep_pid;
+ gboolean done = FALSE;
+
+ args = g_ptr_array_new_with_free_func (g_free);
+
+ /* Run sleep "forever" in a shell; this will trigger PTRACE_EVENT_EXEC */
+ g_ptr_array_add (args, g_strdup ("sh"));
+ g_ptr_array_add (args, g_strdup ("-c"));
+ g_ptr_array_add (args, g_strdup ("exec sleep infinity"));
+ g_ptr_array_add (args, NULL);
+ launcher = g_subprocess_launcher_new (G_SUBPROCESS_FLAGS_NONE);
+ proc = g_subprocess_launcher_spawnv (launcher, (const gchar **) args->pdata, &local_error);
+ g_assert_no_error (local_error);
+ g_assert_nonnull (proc);
+
+ sleep_pid = atoi (g_subprocess_get_identifier (proc));
+
+ g_subprocess_wait_async (proc, NULL, on_sleep_exited, &done);
+
+ kill (sleep_pid, SIGKILL);
+
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
+
+ g_assert_false (g_subprocess_get_successful (proc));
+
+ g_clear_pointer (&args, g_ptr_array_unref);
+ g_clear_object (&launcher);
+ g_clear_object (&proc);
+
+ return EXIT_SUCCESS;
+}
+#endif
+
int
main (int argc, char **argv)
{
@@ -267,6 +327,8 @@ main (int argc, char **argv)
return 1;
}
+ g_log_writer_default_set_use_stderr (TRUE);
+
mode = argv[1];
if (strcmp (mode, "noop") == 0)
return 0;
@@ -297,6 +359,10 @@ main (int argc, char **argv)
return cwd_mode (argc, argv);
else if (strcmp (mode, "printenv") == 0)
return printenv_mode (argc, argv);
+#ifdef G_OS_UNIX
+ else if (strcmp (mode, "sleep-and-kill") == 0)
+ return sleep_and_kill (argc, argv);
+#endif
else
{
g_printerr ("Unknown MODE %s\n", argv[1]);
diff --git a/gio/tests/gsubprocess.c b/gio/tests/gsubprocess.c
index 036c2afad..5baff93a4 100644
--- a/gio/tests/gsubprocess.c
+++ b/gio/tests/gsubprocess.c
@@ -11,6 +11,10 @@
#include <fcntl.h>
#endif
+#ifdef __linux__
+#include <sys/ptrace.h>
+#endif
+
/* We write 2^1 + 2^2 ... + 2^10 or 2047 copies of "Hello World!\n"
* ultimately
*/
@@ -757,11 +761,15 @@ on_communicate_complete (GObject *proc,
{
if (data->is_utf8)
{
+ g_assert_nonnull (stdout_str);
stdout_data = (guint8*)stdout_str;
stdout_len = strlen (stdout_str);
}
else
- stdout_data = g_bytes_get_data (stdout_bytes, &stdout_len);
+ {
+ g_assert_nonnull (stdout_bytes);
+ stdout_data = g_bytes_get_data (stdout_bytes, &stdout_len);
+ }
g_assert_cmpmem (stdout_data, stdout_len, "# hello world" LINEEND, 13 + strlen (LINEEND));
}
@@ -1284,14 +1292,12 @@ test_communicate_utf8_invalid (void)
g_object_unref (proc);
}
-static gboolean
+static void
send_terminate (gpointer user_data)
{
GSubprocess *proc = user_data;
g_subprocess_force_exit (proc);
-
- return FALSE;
}
static void
@@ -1337,7 +1343,7 @@ test_terminate (void)
g_subprocess_wait_async (proc, NULL, on_request_quit_exited, loop);
- g_timeout_add_seconds (3, send_terminate, proc);
+ g_timeout_add_seconds_once (3, send_terminate, proc);
g_main_loop_run (loop);
@@ -1346,14 +1352,12 @@ test_terminate (void)
}
#ifdef G_OS_UNIX
-static gboolean
+static void
send_signal (gpointer user_data)
{
GSubprocess *proc = user_data;
g_subprocess_send_signal (proc, SIGKILL);
-
- return FALSE;
}
static void
@@ -1374,7 +1378,7 @@ test_signal (void)
g_subprocess_wait_async (proc, NULL, on_request_quit_exited, loop);
- g_timeout_add_seconds (3, send_signal, proc);
+ g_timeout_add_seconds_once (3, send_signal, proc);
g_main_loop_run (loop);
@@ -1746,9 +1750,9 @@ do_test_pass_fd (GSubprocessFlags flags,
char *basic_fd_str;
char *needdup_fd_str;
- g_unix_open_pipe (basic_pipefds, FD_CLOEXEC, error);
+ g_unix_open_pipe (basic_pipefds, O_CLOEXEC, error);
g_assert_no_error (local_error);
- g_unix_open_pipe (needdup_pipefds, FD_CLOEXEC, error);
+ g_unix_open_pipe (needdup_pipefds, O_CLOEXEC, error);
g_assert_no_error (local_error);
basic_fd_str = g_strdup_printf ("%d", basic_pipefds[1]);
@@ -1850,10 +1854,10 @@ do_test_fd_conflation (GSubprocessFlags flags,
return;
}
- g_unix_open_pipe (unused_pipefds, FD_CLOEXEC, &error);
+ g_unix_open_pipe (unused_pipefds, O_CLOEXEC, &error);
g_assert_no_error (error);
- g_unix_open_pipe (pipefds, FD_CLOEXEC, &error);
+ g_unix_open_pipe (pipefds, O_CLOEXEC, &error);
g_assert_no_error (error);
/* The fds should be sequential since we are in a new process. */
@@ -1989,7 +1993,119 @@ test_fd_conflation_child_err_report_fd (void)
do_test_fd_conflation (G_SUBPROCESS_FLAGS_NONE, empty_child_setup, TRUE);
}
+#ifdef __linux__
+
+/* Handle ptrace events on @main_child, and assert that when it exits, it does
+ * so with status %EXIT_SUCCESS, rather than signalling. Other than that, this
+ * just calls %PTRACE_CONT for all trace events. */
+static void
+trace_children (pid_t main_child)
+{
+ int wstatus;
+
+ g_assert_no_errno (waitpid (main_child, &wstatus, 0));
+ g_assert_no_errno (ptrace (PTRACE_SETOPTIONS, main_child, NULL,
+ (PTRACE_O_TRACEFORK |
+#ifdef HAVE_PTRACE_O_EXITKILL
+ PTRACE_O_EXITKILL |
#endif
+ PTRACE_O_TRACEVFORK |
+ PTRACE_O_TRACECLONE |
+ PTRACE_O_TRACEEXEC)));
+ g_assert_no_errno (ptrace (PTRACE_CONT, main_child, NULL, 0));
+
+ while (TRUE)
+ {
+ pid_t pid;
+ int wstatus;
+ int stop_signum;
+ int ptrace_event;
+
+ pid = waitpid (-1, &wstatus, 0);
+ if (pid == -1 && errno == ECHILD)
+ break;
+
+ g_assert_cmpint (errno, ==, 0);
+ g_assert_cmpint (pid, >=, 0);
+
+ if (WIFSTOPPED (wstatus))
+ stop_signum = WSTOPSIG (wstatus);
+ else
+ stop_signum = 0;
+
+ switch (stop_signum)
+ {
+ case SIGTRAP:
+ ptrace_event = (wstatus >> 16) & 0xffff;
+ switch (ptrace_event)
+ {
+ case 0:
+ g_assert_no_errno (ptrace (PTRACE_CONT, pid, NULL, stop_signum));
+ break;
+ default:
+ g_assert_no_errno (ptrace (PTRACE_CONT, pid, NULL, 0));
+ break;
+ }
+ break;
+ case SIGSTOP:
+ g_assert_no_errno (ptrace (PTRACE_CONT, pid, NULL, 0));
+ break;
+ default:
+ if (!WIFEXITED (wstatus) && !WIFSIGNALED (wstatus))
+ g_assert_no_errno (ptrace (PTRACE_CONT, pid, NULL, stop_signum));
+ break;
+ }
+
+ if (pid == main_child)
+ {
+ g_assert_false (WIFSIGNALED (wstatus));
+ if (WIFEXITED (wstatus))
+ {
+ g_assert_cmpint (WEXITSTATUS (wstatus), ==, EXIT_SUCCESS);
+ break;
+ }
+ }
+ }
+}
+
+#endif /* __linux__ */
+
+static void
+test_exit_status_trapped (void)
+{
+#ifdef __linux__
+ GPtrArray *args = NULL;
+ pid_t test_child;
+#endif
+
+ g_test_summary ("Test that exit status is reported correctly for ptrace()d child processes");
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3433");
+
+#ifdef __linux__
+ /* Call fork() directly here, rather than using #GSubprocess, so that we can
+ * safely call waitpid() on it ourselves without interfering with the internals
+ * of #GSubprocess.
+ * See https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3433#note_1749055 */
+ args = get_test_subprocess_args ("sleep-and-kill", NULL);
+ test_child = fork ();
+ if (test_child == 0)
+ {
+ /* Between fork() and exec() we can only call async-signal-safe functions. */
+ if (ptrace (PTRACE_TRACEME, 0, NULL, NULL) < 0)
+ abort ();
+
+ g_assert_no_errno (execvp (args->pdata[0], (char * const *) args->pdata));
+ }
+
+ trace_children (test_child);
+
+ g_clear_pointer (&args, g_ptr_array_unref);
+#else
+ g_test_skip ("ptrace() support for this test is only tested on Linux");
+#endif
+}
+
+#endif /* G_OS_UNIX */
static void
test_launcher_environment (void)
@@ -2133,6 +2249,7 @@ main (int argc, char **argv)
g_test_add_func ("/gsubprocess/fd-conflation/empty-child-setup", test_fd_conflation_empty_child_setup);
g_test_add_func ("/gsubprocess/fd-conflation/inherit-fds", test_fd_conflation_inherit_fds);
g_test_add_func ("/gsubprocess/fd-conflation/child-err-report-fd", test_fd_conflation_child_err_report_fd);
+ g_test_add_func ("/gsubprocess/exit-status/trapped", test_exit_status_trapped);
#endif
g_test_add_func ("/gsubprocess/launcher-environment", test_launcher_environment);
diff --git a/gio/tests/gtlsconsoleinteraction.c b/gio/tests/gtlsconsoleinteraction.c
index 8416574be..a0fee3d43 100644
--- a/gio/tests/gtlsconsoleinteraction.c
+++ b/gio/tests/gtlsconsoleinteraction.c
@@ -47,7 +47,7 @@ G_DEFINE_TYPE (GTlsConsoleInteraction, g_tls_console_interaction, G_TYPE_TLS_INT
#define BUFSIZ 8192
#endif
static gchar *
-getpass (const gchar *prompt)
+static_getpass (const gchar *prompt)
{
static gchar buf[BUFSIZ];
gint i;
@@ -71,6 +71,9 @@ getpass (const gchar *prompt)
return &buf[0];
}
+#undef getpass
+#define getpass static_getpass /* avoid overloading a potential
+ build environment defintion of getpass */
#endif
static GTlsInteractionResult
diff --git a/gio/tests/inet-address.c b/gio/tests/inet-address.c
index cae200417..5c663fd67 100644
--- a/gio/tests/inet-address.c
+++ b/gio/tests/inet-address.c
@@ -2,6 +2,8 @@
* Copyright (C) 2012 Red Hat, Inc
* Author: Matthias Clasen
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/io-stream.c b/gio/tests/io-stream.c
index 90c735790..6b5c006f1 100644
--- a/gio/tests/io-stream.c
+++ b/gio/tests/io-stream.c
@@ -2,6 +2,8 @@
* Copyright (C) 2010 Collabora Ltd.
* Authors: Xavier Claessens <xclaesse@gmail.com>
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/live-g-file.c b/gio/tests/live-g-file.c
index 9e2cc0c27..e10390027 100644
--- a/gio/tests/live-g-file.c
+++ b/gio/tests/live-g-file.c
@@ -2,6 +2,8 @@
* Copyright (C) 2008 Red Hat, Inc.
* Authors: Tomas Bzatek <tbzatek@redhat.com>
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -175,20 +177,6 @@ check_cap_dac_override (const char *tmpdir)
}
#endif
-#ifdef G_HAVE_ISO_VARARGS
-#define log(...) if (verbose) g_printerr (__VA_ARGS__)
-#elif defined(G_HAVE_GNUC_VARARGS)
-#define log(msg...) if (verbose) g_printerr (msg)
-#else /* no varargs macros */
-static void log (const g_char *format, ...)
-{
- va_list args;
- va_start (args, format);
- if (verbose) g_printerr (format, args);
- va_end (args);
-}
-#endif
-
static GFile *
create_empty_file (GFile * parent, const char *filename,
GFileCreateFlags create_flags)
@@ -255,8 +243,8 @@ test_create_structure (gconstpointer test_data)
struct StructureItem item;
g_assert_nonnull (test_data);
- log ("\n Going to create testing structure in '%s'...\n",
- (char *) test_data);
+ g_test_message ("\n Going to create testing structure in '%s'...",
+ (char *) test_data);
root = g_file_new_for_commandline_arg ((char *) test_data);
g_assert_nonnull (root);
@@ -278,16 +266,16 @@ test_create_structure (gconstpointer test_data)
switch (item.file_type)
{
case G_FILE_TYPE_REGULAR:
- log (" Creating file '%s'...\n", item.filename);
+ g_test_message (" Creating file '%s'...", item.filename);
child = create_empty_file (root, item.filename, item.create_flags);
break;
case G_FILE_TYPE_DIRECTORY:
- log (" Creating directory '%s'...\n", item.filename);
+ g_test_message (" Creating directory '%s'...", item.filename);
child = create_empty_dir (root, item.filename);
break;
case G_FILE_TYPE_SYMBOLIC_LINK:
- log (" Creating symlink '%s' --> '%s'...\n", item.filename,
- item.link_to);
+ g_test_message (" Creating symlink '%s' --> '%s'...", item.filename,
+ item.link_to);
child = create_symlink (root, item.filename, item.link_to);
break;
case G_FILE_TYPE_UNKNOWN:
@@ -332,7 +320,7 @@ test_create_structure (gconstpointer test_data)
}
/* create a pattern file */
- log (" Creating pattern file...");
+ g_test_message (" Creating pattern file...");
child = g_file_get_child (root, "pattern_file");
g_assert_nonnull (child);
@@ -354,7 +342,7 @@ test_create_structure (gconstpointer test_data)
g_object_unref (outds);
g_object_unref (outs);
g_object_unref (child);
- log (" done.\n");
+ g_test_message (" done.");
g_object_unref (root);
}
@@ -501,7 +489,7 @@ test_initial_structure (gconstpointer test_data)
struct StructureItem item;
g_assert_nonnull (test_data);
- log ("\n Testing sample structure in '%s'...\n", (char *) test_data);
+ g_test_message (" Testing sample structure in '%s'...", (char *) test_data);
root = g_file_new_for_commandline_arg ((char *) test_data);
g_assert_nonnull (root);
@@ -516,7 +504,7 @@ test_initial_structure (gconstpointer test_data)
|| (item.handle_special))
continue;
- log (" Testing file '%s'...\n", item.filename);
+ g_test_message (" Testing file '%s'...", item.filename);
child = file_exists (root, item.filename, &res);
g_assert_nonnull (child);
@@ -536,7 +524,7 @@ test_initial_structure (gconstpointer test_data)
}
/* read and test the pattern file */
- log (" Testing pattern file...\n");
+ g_test_message (" Testing pattern file...");
child = file_exists (root, "pattern_file", &res);
g_assert_nonnull (child);
g_assert_true (res);
@@ -567,8 +555,8 @@ test_initial_structure (gconstpointer test_data)
PATTERN_FILE_SIZE, NULL, &error);
g_assert_no_error (error);
total_read += read;
- log (" read %"G_GSSIZE_FORMAT" bytes, total = %"G_GSSIZE_FORMAT" of %d.\n",
- read, total_read, PATTERN_FILE_SIZE);
+ g_test_message (" read %"G_GSSIZE_FORMAT" bytes, total = %"G_GSSIZE_FORMAT" of %d.",
+ read, total_read, PATTERN_FILE_SIZE);
}
g_assert_cmpint (total_read, ==, PATTERN_FILE_SIZE);
@@ -633,8 +621,8 @@ traverse_recurse_dirs (GFile * parent, GFile * root)
}
g_assert_true (found);
- log (" Found file %s, relative to root: %s\n",
- g_file_info_get_display_name (info), relative_path);
+ g_test_message (" Found file %s, relative to root: %s",
+ g_file_info_get_display_name (info), relative_path);
if (g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY)
traverse_recurse_dirs (descend, root);
@@ -664,8 +652,8 @@ test_traverse_structure (gconstpointer test_data)
gboolean res;
g_assert_nonnull (test_data);
- log ("\n Traversing through the sample structure in '%s'...\n",
- (char *) test_data);
+ g_test_message (" Traversing through the sample structure in '%s'...",
+ (char *) test_data);
root = g_file_new_for_commandline_arg ((char *) test_data);
g_assert_nonnull (root);
@@ -693,7 +681,7 @@ test_enumerate (gconstpointer test_data)
g_assert_nonnull (test_data);
- log ("\n Test enumerate '%s'...\n", (char *) test_data);
+ g_test_message (" Test enumerate '%s'...", (char *) test_data);
root = g_file_new_for_commandline_arg ((char *) test_data);
g_assert_nonnull (root);
@@ -713,7 +701,7 @@ test_enumerate (gconstpointer test_data)
|| ((item.extra_flags & TEST_ENUMERATE_FILE) ==
TEST_ENUMERATE_FILE))
{
- log (" Testing file '%s'\n", item.filename);
+ g_test_message (" Testing file '%s'", item.filename);
child = g_file_get_child (root, item.filename);
g_assert_nonnull (child);
error = NULL;
@@ -772,7 +760,7 @@ do_copy_move (GFile * root, struct StructureItem item, const char *target_dir,
gboolean have_cap_dac_override = check_cap_dac_override (g_file_peek_path (root));
#endif
- log (" do_copy_move: '%s' --> '%s'\n", item.filename, target_dir);
+ g_test_message (" do_copy_move: '%s' --> '%s'", item.filename, target_dir);
dst_dir = g_file_get_child (root, target_dir);
g_assert_nonnull (dst_dir);
@@ -795,8 +783,8 @@ do_copy_move (GFile * root, struct StructureItem item, const char *target_dir,
NULL, NULL, &error);
if (error)
- log (" res = %d, error code %d = %s\n", res, error->code,
- error->message);
+ g_test_message (" res = %d, error code %d = %s", res, error->code,
+ error->message);
/* copying file/directory to itself (".") */
if (((item.extra_flags & TEST_NOT_EXISTS) != TEST_NOT_EXISTS) &&
@@ -871,8 +859,6 @@ test_copy_move (gconstpointer test_data)
guint i;
struct StructureItem item;
- log ("\n");
-
g_assert_nonnull (test_data);
root = g_file_new_for_commandline_arg ((char *) test_data);
g_assert_nonnull (root);
@@ -964,7 +950,6 @@ test_create (gconstpointer test_data)
GFileOutputStream *os;
g_assert_nonnull (test_data);
- log ("\n");
root = g_file_new_for_commandline_arg ((char *) test_data);
g_assert_nonnull (root);
@@ -979,7 +964,7 @@ test_create (gconstpointer test_data)
((item.extra_flags & TEST_REPLACE) == TEST_REPLACE) ||
((item.extra_flags & TEST_APPEND) == TEST_APPEND))
{
- log (" test_create: '%s'\n", item.filename);
+ g_test_message (" test_create: '%s'", item.filename);
child = g_file_get_child (root, item.filename);
g_assert_nonnull (child);
@@ -997,7 +982,7 @@ test_create (gconstpointer test_data)
if (error)
- log (" error code %d = %s\n", error->code, error->message);
+ g_test_message (" error code %d = %s", error->code, error->message);
if (((item.extra_flags & TEST_NOT_EXISTS) == 0) &&
((item.extra_flags & TEST_CREATE) == TEST_CREATE))
@@ -1028,8 +1013,8 @@ test_create (gconstpointer test_data)
res =
g_output_stream_close (G_OUTPUT_STREAM (os), NULL, &error);
if (error)
- log (" g_output_stream_close: error %d = %s\n",
- error->code, error->message);
+ g_test_message (" g_output_stream_close: error %d = %s",
+ error->code, error->message);
g_assert_true (res);
g_assert_no_error (error);
g_object_unref (os);
@@ -1051,7 +1036,6 @@ test_open (gconstpointer test_data)
GFileInputStream *input_stream;
g_assert_nonnull (test_data);
- log ("\n");
root = g_file_new_for_commandline_arg ((char *) test_data);
g_assert_nonnull (root);
@@ -1067,7 +1051,7 @@ test_open (gconstpointer test_data)
if ((item.extra_flags & TEST_OPEN) == TEST_OPEN)
{
- log (" test_open: '%s'\n", item.filename);
+ g_test_message (" test_open: '%s'", item.filename);
child = g_file_get_child (root, item.filename);
g_assert_nonnull (child);
@@ -1123,7 +1107,6 @@ test_delete (gconstpointer test_data)
gchar *path;
g_assert_nonnull (test_data);
- log ("\n");
root = g_file_new_for_commandline_arg ((char *) test_data);
g_assert_nonnull (root);
@@ -1145,7 +1128,7 @@ test_delete (gconstpointer test_data)
/* we don't care about result here */
path = g_file_get_path (child);
- log (" Deleting %s, path = %s\n", item.filename, path);
+ g_test_message (" Deleting %s, path = %s", item.filename, path);
g_free (path);
error = NULL;
@@ -1173,7 +1156,7 @@ test_delete (gconstpointer test_data)
if (error)
{
- log (" result = %d, error = %s\n", res, error->message);
+ g_test_message (" result = %d, error = %s", res, error->message);
g_error_free (error);
}
@@ -1311,7 +1294,7 @@ cleanup_dir_recurse (GFile *parent, GFile *root)
g_assert_nonnull (relative_path);
g_free (relative_path);
- log (" deleting '%s'\n", g_file_info_get_display_name (info));
+ g_test_message (" deleting '%s'", g_file_info_get_display_name (info));
if (g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY)
cleanup_dir_recurse (descend, root);
@@ -1342,8 +1325,8 @@ prep_clean_structure (gconstpointer test_data)
GFile *root;
g_assert_nonnull (test_data);
- log ("\n Cleaning target testing structure in '%s'...\n",
- (char *) test_data);
+ g_test_message (" Cleaning target testing structure in '%s'...",
+ (char *) test_data);
root = g_file_new_for_commandline_arg ((char *) test_data);
g_assert_nonnull (root);
diff --git a/gio/tests/max-version.c b/gio/tests/max-version.c
new file mode 100644
index 000000000..b6735cea6
--- /dev/null
+++ b/gio/tests/max-version.c
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2022 Collabora Ltd.
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GLIB_VERSION_MAX_ALLOWED
+/* This is the oldest version macro available */
+#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_26
+#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_26
+#endif
+
+#include <glib.h>
+
+/* All the headers that can validly be included in third-party code */
+#include <gio/gio.h>
+#include <gio/gnetworking.h>
+
+#define G_SETTINGS_ENABLE_BACKEND
+#include <gio/gsettingsbackend.h>
+
+#ifdef G_OS_UNIX
+#include <gio/gdesktopappinfo.h>
+#include <gio/gfiledescriptorbased.h>
+#include <gio/gunixconnection.h>
+#include <gio/gunixcredentialsmessage.h>
+#include <gio/gunixfdlist.h>
+#include <gio/gunixfdmessage.h>
+#include <gio/gunixinputstream.h>
+#include <gio/gunixmounts.h>
+#include <gio/gunixoutputstream.h>
+#include <gio/gunixsocketaddress.h>
+#endif
+
+#ifdef G_OS_WIN32
+#include <gio/gwin32inputstream.h>
+#include <gio/gwin32outputstream.h>
+#include <gio/gwin32registrykey.h>
+#endif
+
+#ifdef HAVE_COCOA
+#include <gio/gosxappinfo.h>
+#endif
+
+static void
+nothing (void)
+{
+ /* This doesn't really do anything: the real "test" is at compile time.
+ * Just make sure the GIO library gets linked. */
+ g_debug ("Loaded %s from GIO library", g_type_name (G_TYPE_CANCELLABLE));
+}
+
+int
+main (int argc,
+ char *argv[])
+{
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_func ("/max-version/tested-at-compile-time", nothing);
+ return g_test_run ();
+}
diff --git a/gio/tests/memory-input-stream.c b/gio/tests/memory-input-stream.c
index 2bf3d4564..871777cd2 100644
--- a/gio/tests/memory-input-stream.c
+++ b/gio/tests/memory-input-stream.c
@@ -2,6 +2,8 @@
* Copyright (C) 2007 Imendio AB
* Authors: Tim Janik
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/memory-output-stream.c b/gio/tests/memory-output-stream.c
index ec1644ed8..a517cb964 100644
--- a/gio/tests/memory-output-stream.c
+++ b/gio/tests/memory-output-stream.c
@@ -2,6 +2,8 @@
* Copyright (C) 2008 Red Hat, Inc.
* Author: Matthias Clasen
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/meson.build b/gio/tests/meson.build
index 41d4e3e6c..4ef3343ab 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
@@ -42,12 +42,16 @@ giotypefuncs_inc = custom_target(
input : gio_headers + [gioenumtypes_h] + gobject_install_headers,
command: [gengiotypefuncs_prog, '@OUTPUT@', '@INPUT@'])
+if glib_build_shared
+ subdir('modules')
+endif
+
# Test programs buildable on all platforms
gio_tests = {
'application-command-line': {},
'appmonitor' : {
# FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
- 'should_fail' : host_system == 'darwin',
+ 'can_fail' : host_system == 'darwin',
},
'async-close-output-stream' : {},
'async-splice-output-stream' : {},
@@ -57,7 +61,7 @@ gio_tests = {
'contexts' : {},
'contenttype' : {
# FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392 / https://gitlab.gnome.org/GNOME/glib/-/issues/1251
- 'should_fail' : host_system == 'darwin',
+ 'can_fail' : host_system == 'darwin',
},
'converter-stream' : {},
'credentials' : {},
@@ -68,14 +72,16 @@ gio_tests = {
'fileattributematcher' : {},
'filter-streams' : {},
'giomodule' : {
- # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
- 'should_fail' : host_system == 'darwin',
+ 'depends' : glib_build_shared ? [libtestmodulea, libtestmoduleb] : [],
+ },
+ 'gsubprocess' : {
+ 'suite': host_system == 'windows' ? ['flaky'] : [],
+ 'extra_programs': ['gsubprocess-testprog'],
},
- 'gsubprocess' : {},
'g-file' : {},
'g-file-info' : {
- # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
- 'should_fail' : host_system == 'darwin',
+ # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/3070
+ 'can_fail' : host_system == 'darwin' or host_system == 'windows' and cc.get_id() != 'gcc',
},
'g-icon' : {},
'gdbus-addresses' : {},
@@ -84,10 +90,11 @@ gio_tests = {
'dependencies' : [libgdbus_example_objectmanager_dep],
'install_rpath' : installed_tests_execdir,
# FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
- 'should_fail' : host_system == 'darwin',
+ 'can_fail' : host_system in ['darwin', 'windows'],
},
'inet-address' : {},
'io-stream' : {},
+ 'max-version' : {'install' : false},
'memory-input-stream' : {},
'memory-monitor' : {},
'memory-output-stream' : {},
@@ -102,12 +109,16 @@ gio_tests = {
'power-profile-monitor' : {},
'proxy-test' : {},
'readwrite' : {},
+ 'sandbox' : {
+ 'extra_sources': ['../gsandbox.c', 'portal-support-utils.c'],
+ 'c_args': ['-DG_PORTAL_SUPPORT_TEST'],
+ },
'simple-async-result' : {},
'simple-proxy' : {},
'sleepy-stream' : {},
'socket' : {
# FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
- 'should_fail' : host_system == 'darwin',
+ 'can_fail' : host_system == 'darwin',
},
'socket-listener' : {},
'socket-service' : {},
@@ -124,8 +135,9 @@ gio_tests = {
'tls-bindings' : {'extra_sources' : ['gtesttlsbackend.c']},
'unix-fd' : {},
'gdbus-address-get-session' : {
+ 'extra_programs': host_system != 'windows' ? ['dbus-launch'] : [],
# FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
- 'should_fail' : host_system == 'darwin',
+ 'can_fail' : host_system == 'darwin',
},
'win32-appinfo' : {},
}
@@ -133,14 +145,16 @@ gio_tests = {
if have_cxx
gio_tests += {
'cxx' : {
+ 'protocol': 'exitcode',
'source' : ['cxx.cpp'],
- 'suite': ['C++'],
+ 'suite': ['cpp'],
},
}
foreach std, arg: cxx_standards
gio_tests += {
'cxx-@0@'.format(std) : {
+ 'protocol': 'exitcode',
'source' : ['cxx.cpp'],
'suite' : ['cpp'],
'cpp_args' : [arg],
@@ -155,9 +169,14 @@ test_extra_programs = {
'gsubprocess-testprog' : {},
}
-python_tests = [
- 'codegen.py',
-]
+python_tests = {
+ # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/2764
+ 'codegen.py' : {
+ 'can_fail' : host_system == 'freebsd',
+ 'suite': ['gdbus-codegen', 'slow'],
+ 'timeout': 90,
+ },
+}
test_env = environment()
test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
@@ -217,6 +236,45 @@ if host_machine.system() != 'windows'
'gdbus-peer-object-manager' : {},
'gdbus-sasl' : {},
'live-g-file' : {},
+ 'portal-support-flatpak-none' : {
+ 'extra_sources': ['../gportalsupport.c', '../gsandbox.c', 'portal-support-utils.c'],
+ 'c_args': ['-DG_PORTAL_SUPPORT_TEST'],
+ 'suite': ['portal-support'],
+ },
+ 'portal-support-flatpak-full' : {
+ 'extra_sources': ['../gportalsupport.c', '../gsandbox.c', 'portal-support-utils.c'],
+ 'c_args': ['-DG_PORTAL_SUPPORT_TEST'],
+ 'suite': ['portal-support'],
+ },
+ 'portal-support-flatpak-network-only' : {
+ 'extra_sources': ['../gportalsupport.c', '../gsandbox.c', 'portal-support-utils.c'],
+ 'c_args': ['-DG_PORTAL_SUPPORT_TEST'],
+ 'suite': ['portal-support'],
+ },
+ 'portal-support-flatpak-gsettings-only' : {
+ 'extra_sources': ['../gportalsupport.c', '../gsandbox.c', 'portal-support-utils.c'],
+ 'c_args': ['-DG_PORTAL_SUPPORT_TEST'],
+ 'suite': ['portal-support'],
+ },
+ 'portal-support-none' : {
+ 'extra_sources': ['../gportalsupport.c', '../gsandbox.c'],
+ 'c_args': ['-DG_PORTAL_SUPPORT_TEST'],
+ 'suite': ['portal-support'],
+ },
+ 'portal-support-env-var' : {
+ 'extra_sources': ['../gportalsupport.c', '../gsandbox.c'],
+ 'suite': ['portal-support'],
+ },
+ 'portal-support-snap' : {
+ 'extra_sources': ['../gportalsupport.c', '../gsandbox.c', 'portal-support-utils.c'],
+ 'c_args': ['-DG_PORTAL_SUPPORT_TEST'],
+ 'suite': ['portal-support'],
+ },
+ 'portal-support-snap-classic' : {
+ 'extra_sources': ['../gportalsupport.c', '../gsandbox.c', 'portal-support-utils.c'],
+ 'c_args': ['-DG_PORTAL_SUPPORT_TEST'],
+ 'suite': ['portal-support'],
+ },
'resolver-parsing' : {'dependencies' : [network_libs]},
'socket-address' : {},
'stream-rw_all' : {},
@@ -224,11 +282,14 @@ if host_machine.system() != 'windows'
'unix-streams' : {},
'g-file-info-filesystem-readonly' : {},
'gschema-compile' : {'install' : false},
- 'trash' : {},
+ 'trash' : {
+ # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/3069
+ 'can_fail' : host_system == 'darwin',
+ },
}
# LD_PRELOAD modules don't work so well with AddressSanitizer
- if have_rtld_next and get_option('default_library') != 'static' and get_option('b_sanitize') == 'none'
+ if have_rtld_next and glib_build_shared and get_option('b_sanitize') == 'none'
gio_tests += {
'gsocketclient-slow' : {
'depends' : [
@@ -257,9 +318,12 @@ if host_machine.system() != 'windows'
gio_tests += {
'appinfo' : {
'install' : false,
+ 'extra_programs' : ['appinfo-test'],
},
'desktop-app-info' : {
'install' : false,
+ 'depends' : gio_launch_desktop,
+ 'extra_programs' : ['apps', 'appinfo-test'],
},
}
endif
@@ -345,6 +409,7 @@ if host_machine.system() != 'windows'
]
extra_sources = ['gdbus-sessionbus.c', 'gdbus-tests.c']
+ extra_programs = ['gdbus-testserver']
gio_tests += {
'actions' : {
@@ -355,31 +420,57 @@ if host_machine.system() != 'windows'
'gdbus-auth' : {'extra_sources' : extra_sources},
'gdbus-bz627724' : {'extra_sources' : extra_sources},
'gdbus-close-pending' : {'extra_sources' : extra_sources},
- 'gdbus-connection' : {'extra_sources' : extra_sources},
- 'gdbus-connection-loss' : {'extra_sources' : extra_sources},
- 'gdbus-connection-slow' : {'extra_sources' : extra_sources},
+ 'gdbus-connection' : {
+ 'extra_sources' : extra_sources,
+ 'extra_programs': extra_programs,
+ },
+ 'gdbus-connection-loss' : {
+ 'extra_sources' : extra_sources,
+ 'extra_programs': extra_programs,
+ },
+ 'gdbus-connection-slow' : {
+ 'extra_sources' : extra_sources,
+ 'extra_programs': extra_programs + ['gdbus-connection-flush-helper'],
+ },
'gdbus-error' : {'extra_sources' : extra_sources},
'gdbus-exit-on-close' : {'extra_sources' : extra_sources},
'gdbus-export' : {
'extra_sources' : extra_sources,
'suite' : ['slow'],
},
- 'gdbus-introspection' : {'extra_sources' : extra_sources},
+ 'gdbus-introspection' : {
+ 'extra_sources' : extra_sources,
+ 'extra_programs': extra_programs,
+ },
'gdbus-method-invocation' : {'extra_sources' : extra_sources},
- 'gdbus-names' : {'extra_sources' : extra_sources},
- 'gdbus-proxy' : {'extra_sources' : extra_sources},
+ 'gdbus-names' : {
+ 'extra_sources' : extra_sources,
+ 'extra_programs' : ['fake-service-name'],
+ },
+ 'gdbus-proxy' : {
+ 'extra_sources' : extra_sources,
+ 'extra_programs': extra_programs,
+ },
'gdbus-proxy-threads' : {
'extra_sources' : extra_sources,
'dependencies' : [dbus1_dep],
},
- 'gdbus-proxy-unique-name' : {'extra_sources' : extra_sources},
- 'gdbus-proxy-well-known-name' : {'extra_sources' : extra_sources},
+ 'gdbus-proxy-unique-name' : {
+ 'extra_sources' : extra_sources,
+ 'extra_programs': extra_programs,
+ },
+ 'gdbus-proxy-well-known-name' : {
+ 'extra_sources' : extra_sources,
+ 'extra_programs': extra_programs,
+ },
'gdbus-test-codegen' : {
'extra_sources' : [extra_sources, gdbus_test_codegen_generated, gdbus_test_codegen_generated_interface_info],
'c_args' : ['-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32'],
+ 'suite': ['gdbus-codegen'],
},
'gdbus-threading' : {
'extra_sources' : extra_sources,
+ 'extra_programs': extra_programs,
'suite' : ['slow'],
},
'gmenumodel' : {
@@ -394,19 +485,25 @@ if host_machine.system() != 'windows'
'extra_sources' : [extra_sources, gdbus_test_codegen_generated, gdbus_test_codegen_generated_interface_info],
'c_args' : ['-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_36',
'-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_36'],
+ 'suite': ['gdbus-codegen'],
},
'gdbus-test-codegen-min-required-2-64' : {
'source' : 'gdbus-test-codegen.c',
'extra_sources' : [extra_sources, gdbus_test_codegen_generated_min_required_2_64, gdbus_test_codegen_generated_interface_info],
'c_args' : ['-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_64'],
+ 'suite': ['gdbus-codegen'],
+ },
+ 'gapplication' : {
+ 'extra_sources' : extra_sources,
+ 'extra_programs': ['basic-application'],
},
- 'gapplication' : {'extra_sources' : extra_sources},
}
if not glib_have_cocoa
gio_tests += {
'dbus-appinfo' : {
'extra_sources' : extra_sources,
+ 'extra_programs' : ['fake-document-portal'],
},
}
endif
@@ -458,6 +555,7 @@ if host_machine.system() != 'windows'
'c_args' : ['-DSRCDIR="@0@"'.format(meson.current_source_dir()),
'-DTEST_LOCALE_PATH="@0@"'.format(test_mo_dir)],
'install' : false,
+ 'depends' : glib_compile_schemas,
},
}
endif
@@ -503,8 +601,8 @@ test_extra_programs += {
'proxy' : {'install' : false},
'resolver' : {'install' : false},
'send-data' : {'install' : false},
- 'socket-server' : {'install' : false},
- 'socket-client' : {
+ 'socket-testserver' : {'install' : false},
+ 'socket-testclient' : {
'extra_sources' : ['gtlsconsoleinteraction.c'],
'install' : false,
},
@@ -543,33 +641,37 @@ if host_machine.system() != 'windows'
endif
appinfo_test_desktop_files = [
- 'appinfo-test-gnome.desktop',
- 'appinfo-test-notgnome.desktop',
- 'appinfo-test.desktop',
- 'appinfo-test2.desktop',
+ 'appinfo-test-gnome',
+ 'appinfo-test-notgnome',
+ 'appinfo-test-path',
+ 'appinfo-test',
+ 'appinfo-test2',
]
-cdata = configuration_data()
-if installed_tests_enabled
- cdata.set('installed_tests_dir', installed_tests_execdir)
-else
- cdata.set('installed_tests_dir', meson.current_build_dir())
-endif
-
foreach appinfo_test_desktop_file : appinfo_test_desktop_files
+ input_desktop_file = appinfo_test_desktop_file + '.desktop.in'
+ output_desktop_file = appinfo_test_desktop_file + '.desktop'
+ configure_file(
+ input: input_desktop_file,
+ output: output_desktop_file,
+ configuration: {
+ 'installed_tests_dir' : meson.current_build_dir(),
+ },
+ )
+
if installed_tests_enabled
- configure_file(
- input: appinfo_test_desktop_file + '.in',
- output: appinfo_test_desktop_file,
+ installed_desktop = configure_file(
+ input: input_desktop_file,
+ output: appinfo_test_desktop_file + '-installed.desktop',
+ configuration: {
+ 'installed_tests_dir' : installed_tests_execdir,
+ },
+ )
+
+ install_data(installed_desktop,
install_dir: installed_tests_execdir,
install_tag: 'tests',
- configuration: cdata,
- )
- else
- configure_file(
- input: appinfo_test_desktop_file + '.in',
- output: appinfo_test_desktop_file,
- configuration: cdata,
+ rename: output_desktop_file,
)
endif
endforeach
@@ -654,11 +756,14 @@ if installed_tests_enabled
endforeach
endif
-if meson.can_run_host_binaries()
+# FIXME: Work around Meson not automatically using exe_wrapper around glib_compile_resources
+# https://github.com/mesonbuild/meson/issues/11029
+if not meson.is_cross_build()
+ resource_plugin = []
compiler_type = '--compiler=@0@'.format(cc.get_id())
- if get_option('default_library') != 'static'
+ if glib_build_shared
plugin_resources_c = custom_target('plugin-resources.c',
input : 'test4.gresource.xml',
output : 'plugin-resources.c',
@@ -671,7 +776,8 @@ if meson.can_run_host_binaries()
'--c-name', '_g_plugin',
'@INPUT@'])
- shared_module('resourceplugin', 'resourceplugin.c', plugin_resources_c,
+ resource_plugin += shared_module('resourceplugin',
+ sources: ['resourceplugin.c', plugin_resources_c],
link_args : export_dynamic_ldflags,
dependencies : common_gio_tests_deps,
install_dir : installed_tests_execdir,
@@ -833,12 +939,8 @@ if meson.can_run_host_binaries()
test_resources_binary = custom_target('test_resources.o',
input : test_gresource_binary,
output : 'test_resources.o',
- command : [ld,
- '-z', 'noexecstack',
- '-r',
- '-b','binary',
- '@INPUT@',
- '-o','@OUTPUT@'])
+ command : cc.cmd_array() + ['-Wl,-z,noexecstack', '-r', '-Wl,-b,binary',
+ '-nostdlib', '@INPUT@', '-o','@OUTPUT@'])
# Rename symbol to match the one in the C file
if cc.get_id() == 'gcc' and host_system == 'windows'
@@ -850,7 +952,7 @@ if meson.can_run_host_binaries()
input : test_resources_binary,
output : 'test_resources2.o',
command : [objcopy,
- '--strip-all',
+ '--strip-debug',
'--add-symbol', underscore + '_g_binary_test1_resource_data=.data:0',
'@INPUT@',
'@OUTPUT@'])
@@ -864,12 +966,28 @@ if meson.can_run_host_binaries()
gio_tests += {
'resources' : {
'extra_sources' : resources_extra_sources,
- # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
- 'should_fail' : host_system == 'darwin',
+ 'depends' : resource_plugin,
},
}
endif
+test_extra_programs_targets = {}
+foreach program_name, extra_args : test_extra_programs
+ source = extra_args.get('source', program_name + '.c')
+ extra_sources = extra_args.get('extra_sources', [])
+ install = installed_tests_enabled and extra_args.get('install', true)
+ test_extra_programs_targets += {
+ program_name : executable(program_name,
+ sources: [source, extra_sources],
+ c_args : test_c_args,
+ dependencies : common_gio_tests_deps + extra_args.get('dependencies', []),
+ install_dir : installed_tests_execdir,
+ install_tag : 'tests',
+ install : install,
+ )
+ }
+endforeach
+
foreach test_name, extra_args : gio_tests
source = extra_args.get('source', test_name + '.c')
extra_sources = extra_args.get('extra_sources', [])
@@ -911,41 +1029,52 @@ foreach test_name, extra_args : gio_tests
suite = ['gio'] + extra_args.get('suite', [])
timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
local_test_env = test_env
+ depends = [extra_args.get('depends', [])]
+
+ foreach program : extra_args.get('extra_programs', [])
+ depends += test_extra_programs_targets[program]
+ endforeach
foreach var, value : extra_args.get('env', {})
local_test_env.append(var, value)
endforeach
+ if extra_args.get('can_fail', false)
+ suite += 'failing'
+ endif
+
test(test_name, exe,
+ protocol : extra_args.get('protocol', test_protocol),
env : local_test_env,
timeout : timeout,
suite : suite,
is_parallel : extra_args.get('is_parallel', true),
- depends : extra_args.get('depends', []),
+ depends : depends,
should_fail : extra_args.get('should_fail', false),
)
endforeach
-foreach program_name, extra_args : test_extra_programs
- source = extra_args.get('source', program_name + '.c')
- extra_sources = extra_args.get('extra_sources', [])
- install = installed_tests_enabled and extra_args.get('install', true)
- executable(program_name, [source, extra_sources],
- c_args : test_c_args,
- dependencies : common_gio_tests_deps + extra_args.get('dependencies', []),
- install_dir : installed_tests_execdir,
- install_tag : 'tests',
- install : install,
- )
-endforeach
+foreach test_name, extra_args : python_tests
+ depends = [extra_args.get('depends', [])]
+ suite = ['gio', 'no-valgrind'] + extra_args.get('suite', [])
+
+ if extra_args.get('can_fail', false)
+ suite += 'failing'
+ endif
+
+ foreach program : extra_args.get('extra_programs', [])
+ depends += test_extra_programs_targets[program]
+ endforeach
-foreach test_name : python_tests
test(
test_name,
python,
+ protocol : extra_args.get('protocol', test_protocol),
+ depends: depends,
args: ['-B', files(test_name)],
env: test_env,
- suite: ['gio', 'no-valgrind'],
+ timeout: extra_args.get('timeout'),
+ suite: suite,
)
if installed_tests_enabled
@@ -979,8 +1108,82 @@ if installed_tests_enabled
)
endif
-subdir('services')
+if have_bash and have_pkg_config
+ prefix = get_option('prefix')
+ if prefix.endswith(':/')
+ prefix += '/'
+ endif
-if get_option('default_library') != 'static'
- subdir('modules')
+ pkg_config_tests = [
+ 'pkg-config --validate gio-2.0',
+ 'test "$(pkg-config --modversion gio-2.0)" = "@0@"'.format(glib_version),
+ 'test "$(pkg-config --variable=prefix gio-2.0)" = "@0@"'.format(
+ get_option('prefix')),
+ 'test "$(pkg-config --variable=datadir gio-2.0)" = "@0@"'.format(
+ prefix / get_option('datadir')),
+ 'test "$(pkg-config --variable=schemasdir gio-2.0)" = "@0@"'.format(
+ prefix / get_option('datadir') / schemas_subdir),
+ 'test "$(pkg-config --variable=giomoduledir gio-2.0)" = "@0@"'.format(
+ get_option('gio_module_dir') != '' ?
+ prefix / get_option('gio_module_dir') :
+ prefix / get_option('libdir') / 'gio' / 'modules'),
+ ]
+
+ gio_binaries = [
+ 'gio',
+ 'glib-compile-resources',
+ 'gdbus',
+ 'gdbus-codegen',
+ 'gresource',
+ 'gsettings',
+ ]
+ gio_multiarch_binaries = [
+ 'gio-querymodules',
+ 'glib-compile-schemas',
+ ]
+
+ foreach binary: gio_binaries
+ pkg_config_tests += [
+ 'test "$(pkg-config --variable=@0@ gio-2.0)" = "@1@"'.format(
+ binary.underscorify(),
+ prefix / get_option('bindir') / binary)
+ ]
+ endforeach
+
+ foreach binary: gio_multiarch_binaries
+ pkg_config_tests += [
+ 'test "$(pkg-config --variable=@0@ gio-2.0)" = "@1@"'.format(
+ binary.underscorify(),
+ prefix / multiarch_bindir / binary)
+ ]
+ endforeach
+
+ test('gio-2.0-pkg-config',
+ bash,
+ args: [ '-xe', '-c', '\n'.join(pkg_config_tests) ],
+ suite: ['gio', 'no-valgrind', 'pkg-config'],
+ env: {
+ 'PKG_CONFIG_PATH': meson.project_build_root() / 'meson-private',
+ },
+ )
+
+ platform_module = host_system == 'windows' ? 'gio-windows-2.0' : 'gio-unix-2.0'
+ pkg_config_tests = [
+ 'pkg-config --validate ' + platform_module,
+ 'test "$(pkg-config --modversion @0@)" = "@1@"'.format(platform_module,
+ glib_version),
+ 'test "$(pkg-config --variable=prefix @0@)" = "@1@"'.format(platform_module,
+ get_option('prefix')),
+ ]
+
+ test(platform_module + '-pkg-config',
+ bash,
+ args: [ '-xe', '-c', '\n'.join(pkg_config_tests) ],
+ suite: ['gio', 'no-valgrind', 'pkg-config'],
+ env: {
+ 'PKG_CONFIG_PATH': meson.project_build_root() / 'meson-private',
+ },
+ )
endif
+
+subdir('services')
diff --git a/gio/tests/modules/symbol-visibility.h b/gio/tests/modules/symbol-visibility.h
index e83894444..2aa1fc663 100644
--- a/gio/tests/modules/symbol-visibility.h
+++ b/gio/tests/modules/symbol-visibility.h
@@ -3,7 +3,7 @@
/* This is the same check that's done in configure to create config.h */
#ifdef _WIN32
-#ifdef GLIB_STATIC_COMPILATION
+#ifdef GLIB_TEST_STATIC_COMPILATION
#define GLIB_TEST_EXPORT_SYMBOL extern
#else
#ifdef _MSC_VER
diff --git a/gio/tests/modules/test-module-a.c b/gio/tests/modules/test-module-a.c
index 0a64ea60a..6ac065d8a 100644
--- a/gio/tests/modules/test-module-a.c
+++ b/gio/tests/modules/test-module-a.c
@@ -20,8 +20,6 @@
* if advised of the possibility of such damage.
*/
-#include "config.h" /* for _GLIB_EXTERN */
-
#include <gio/gio.h>
#include "symbol-visibility.h"
diff --git a/gio/tests/modules/test-module-b.c b/gio/tests/modules/test-module-b.c
index 8d3527e43..21932287f 100644
--- a/gio/tests/modules/test-module-b.c
+++ b/gio/tests/modules/test-module-b.c
@@ -20,8 +20,6 @@
* if advised of the possibility of such damage.
*/
-#include "config.h" /* for _GLIB_EXTERN */
-
#include <gio/gio.h>
#include "symbol-visibility.h"
diff --git a/gio/tests/network-address.c b/gio/tests/network-address.c
index da4d7f7e0..61fa41468 100644
--- a/gio/tests/network-address.c
+++ b/gio/tests/network-address.c
@@ -73,10 +73,12 @@ test_parse_uri (gconstpointer d)
g_error_free (error);
}
-static ParseTest host_tests[] =
-{
+static ParseTest host_tests[] = {
{ "www.gnome.org", NULL, "www.gnome.org", 1234, -1 },
{ "www.gnome.org:8080", NULL, "www.gnome.org", 8080, -1 },
+ { "www.gnome.org:http", NULL, "www.gnome.org", 80, -1 },
+ { "1.2.3.4:imaps", NULL, "1.2.3.4", 993, -1 },
+ { "1.2.3.4:doesnotexist", NULL, NULL, 0, G_IO_ERROR_INVALID_ARGUMENT },
{ "[2001:db8::1]", NULL, "2001:db8::1", 1234, -1 },
{ "[2001:db8::1]:888", NULL, "2001:db8::1", 888, -1 },
{ "[2001:db8::1%em1]", NULL, "2001:db8::1%em1", 1234, -1 },
@@ -85,15 +87,49 @@ static ParseTest host_tests[] =
{ "[hostnam]e", NULL, NULL, 0, G_IO_ERROR_INVALID_ARGUMENT },
{ "hostname:", NULL, NULL, 0, G_IO_ERROR_INVALID_ARGUMENT },
{ "hostname:-1", NULL, NULL, 0, G_IO_ERROR_INVALID_ARGUMENT },
- { "hostname:9999999", NULL, NULL, 0, G_IO_ERROR_INVALID_ARGUMENT }
+ { "hostname:9999999", NULL, NULL, 0, G_IO_ERROR_INVALID_ARGUMENT },
};
static void
test_parse_host (gconstpointer d)
{
const ParseTest *test = d;
+ ParseTest test_cpy;
GNetworkAddress *address;
GError *error;
+ const char *port_by_name = NULL;
+
+ if (g_str_equal (test->input, "www.gnome.org:http"))
+ port_by_name = "http";
+ else if (g_str_equal (test->input, "1.2.3.4:imaps"))
+ port_by_name = "imaps";
+ else if (g_str_equal (test->input, "1.2.3.4:doesnotexist"))
+ port_by_name = "doesnotexist";
+
+ if (port_by_name)
+ {
+ const struct servent *ent;
+ guint16 port;
+ gint error_code;
+
+ /* If using a named port, check that what’s resolved from the system’s
+ * `/etc/services` matches what’s hard-coded in `host_tests`. */
+
+ ent = getservbyname (port_by_name, "tcp");
+ port = ent ? g_ntohs (ent->s_port) : 0;
+ error_code = ent ? -1 : G_IO_ERROR_INVALID_ARGUMENT;
+
+ if (port != test->port || error_code != test->error_code)
+ {
+ /* We will lookup the port via getservbyname(), but on the
+ * tested system, the result is not as expected. Instead,
+ * adjust our expected test result. */
+ test_cpy = *test;
+ test_cpy.port = port;
+ test_cpy.error_code = error_code;
+ test = &test_cpy;
+ }
+ }
error = NULL;
address = (GNetworkAddress*)g_network_address_parse (test->input, 1234, &error);
@@ -114,6 +150,17 @@ test_parse_host (gconstpointer d)
g_object_unref (address);
if (error)
g_error_free (error);
+
+ if (test == &test_cpy)
+ {
+ char *msg;
+
+ /* We tested something, but it's not what we originally wanted to test. Mark the
+ * test as skipped. */
+ msg = g_strdup_printf ("getservbyname(\"%s\", \"tcp\") did not give expected result to validate the test", port_by_name);
+ g_test_skip (msg);
+ g_free (msg);
+ }
}
typedef struct {
diff --git a/gio/tests/org.gtk.test.gschema.xml.orig b/gio/tests/org.gtk.test.gschema.xml.orig
index aad4e54df..e01183897 100644
--- a/gio/tests/org.gtk.test.gschema.xml.orig
+++ b/gio/tests/org.gtk.test.gschema.xml.orig
@@ -83,6 +83,9 @@
<key name="backspace" type="s">
<default l10n="messages" context="keyboard label">"BackSpace"</default>
</key>
+ <key name="midnight" type="s">
+ <default l10n="time">"12:00 AM"</default>
+ </key>
</schema>
<schema id="org.gtk.test.binding" path="/tests/binding/">
diff --git a/gio/tests/permission.c b/gio/tests/permission.c
index 14094a0b5..a541b699f 100644
--- a/gio/tests/permission.c
+++ b/gio/tests/permission.c
@@ -2,6 +2,8 @@
* Copyright (C) 2012 Red Hat, Inc
* Author: Matthias Clasen
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/pollable.c b/gio/tests/pollable.c
index 56dfa3a31..540f200c6 100644
--- a/gio/tests/pollable.c
+++ b/gio/tests/pollable.c
@@ -263,14 +263,12 @@ test_pollable_unix_file (void)
static void
test_pollable_unix_nulldev (void)
{
- int fd;
-
g_test_summary ("Test that /dev/null is not considered pollable, but only if "
"on a system where we are able to tell it apart from devices "
"that actually implement poll");
#if defined (HAVE_EPOLL_CREATE) || defined (HAVE_KQUEUE)
- fd = g_open ("/dev/null", O_RDWR, 0);
+ int fd = g_open ("/dev/null", O_RDWR, 0);
g_assert_cmpint (fd, !=, -1);
g_assert_not_pollable (fd);
diff --git a/gio/tests/portal-support-env-var.c b/gio/tests/portal-support-env-var.c
new file mode 100644
index 000000000..b1d3fd3c3
--- /dev/null
+++ b/gio/tests/portal-support-env-var.c
@@ -0,0 +1,45 @@
+/*
+ * GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright (C) 2022 Canonical Ltd.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Marco Trevisan <marco.trevisan@canonical.com>
+ */
+
+#include "../gportalsupport.h"
+#include <gio/gio.h>
+
+static void
+test_portal_support_env_var (void)
+{
+ g_assert_true (glib_should_use_portal ());
+ g_assert_true (glib_network_available_in_sandbox ());
+ g_assert_true (glib_has_dconf_access_in_sandbox ());
+}
+
+int
+main (int argc, char **argv)
+{
+ g_test_init (&argc, &argv, NULL);
+
+ g_setenv ("GTK_USE_PORTAL", "1", TRUE);
+
+ g_test_add_func ("/portal-support/env-var", test_portal_support_env_var);
+
+ return g_test_run ();
+}
diff --git a/gio/tests/portal-support-flatpak-full.c b/gio/tests/portal-support-flatpak-full.c
new file mode 100644
index 000000000..539e96ffd
--- /dev/null
+++ b/gio/tests/portal-support-flatpak-full.c
@@ -0,0 +1,49 @@
+/*
+ * GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright (C) 2022 Canonical Ltd.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Marco Trevisan <marco.trevisan@canonical.com>
+ */
+
+#include "portal-support-utils.h"
+
+#include "../gportalsupport.h"
+#include <gio/gio.h>
+
+static void
+test_portal_support_flatpak_full (void)
+{
+ create_fake_flatpak_info (g_get_user_runtime_dir (),
+ (GStrv)(const char* []) {"foo", "bar", "network", "more", NULL},
+ "talk");
+
+ g_assert_true (glib_should_use_portal ());
+ g_assert_true (glib_network_available_in_sandbox ());
+ g_assert_true (glib_has_dconf_access_in_sandbox ());
+}
+
+int
+main (int argc, char **argv)
+{
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
+
+ g_test_add_func ("/portal-support/flatpak/full", test_portal_support_flatpak_full);
+
+ return g_test_run ();
+}
diff --git a/gio/tests/portal-support-flatpak-gsettings-only.c b/gio/tests/portal-support-flatpak-gsettings-only.c
new file mode 100644
index 000000000..1b8b93401
--- /dev/null
+++ b/gio/tests/portal-support-flatpak-gsettings-only.c
@@ -0,0 +1,49 @@
+/*
+ * GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright (C) 2022 Canonical Ltd.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Marco Trevisan <marco.trevisan@canonical.com>
+ */
+
+#include "portal-support-utils.h"
+
+#include "../gportalsupport.h"
+#include <gio/gio.h>
+
+static void
+test_portal_support_flatpak_gsettings_only (void)
+{
+ create_fake_flatpak_info (g_get_user_runtime_dir (),
+ (GStrv)(const char* []) {"unsupported-stuff", NULL},
+ "talk");
+
+ g_assert_true (glib_should_use_portal ());
+ g_assert_false (glib_network_available_in_sandbox ());
+ g_assert_true (glib_has_dconf_access_in_sandbox ());
+}
+
+int
+main (int argc, char **argv)
+{
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
+
+ g_test_add_func ("/portal-support/flatpak/gsettings", test_portal_support_flatpak_gsettings_only);
+
+ return g_test_run ();
+}
diff --git a/gio/tests/portal-support-flatpak-network-only.c b/gio/tests/portal-support-flatpak-network-only.c
new file mode 100644
index 000000000..1e4ff6df3
--- /dev/null
+++ b/gio/tests/portal-support-flatpak-network-only.c
@@ -0,0 +1,49 @@
+/*
+ * GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright (C) 2022 Canonical Ltd.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Marco Trevisan <marco.trevisan@canonical.com>
+ */
+
+#include "portal-support-utils.h"
+
+#include "../gportalsupport.h"
+#include <gio/gio.h>
+
+static void
+test_portal_support_flatpak_network (void)
+{
+ create_fake_flatpak_info (g_get_user_runtime_dir (),
+ (GStrv)(const char* []) {"foo", "bar", "network", "more", NULL},
+ "do-not-talk");
+
+ g_assert_true (glib_should_use_portal ());
+ g_assert_true (glib_network_available_in_sandbox ());
+ g_assert_false (glib_has_dconf_access_in_sandbox ());
+}
+
+int
+main (int argc, char **argv)
+{
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
+
+ g_test_add_func ("/portal-support/flatpak/network", test_portal_support_flatpak_network);
+
+ return g_test_run ();
+}
diff --git a/gio/tests/portal-support-flatpak-none.c b/gio/tests/portal-support-flatpak-none.c
new file mode 100644
index 000000000..7c3d8c826
--- /dev/null
+++ b/gio/tests/portal-support-flatpak-none.c
@@ -0,0 +1,47 @@
+/*
+ * GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright (C) 2022 Canonical Ltd.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Marco Trevisan <marco.trevisan@canonical.com>
+ */
+
+#include "portal-support-utils.h"
+
+#include "../gportalsupport.h"
+#include <gio/gio.h>
+
+static void
+test_portal_support_flatpak_none (void)
+{
+ create_fake_flatpak_info (g_get_user_runtime_dir (), NULL, NULL);
+
+ g_assert_true (glib_should_use_portal ());
+ g_assert_false (glib_network_available_in_sandbox ());
+ g_assert_false (glib_has_dconf_access_in_sandbox ());
+}
+
+int
+main (int argc, char **argv)
+{
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
+
+ g_test_add_func ("/portal-support/flatpak/none", test_portal_support_flatpak_none);
+
+ return g_test_run ();
+}
diff --git a/gio/tests/portal-support-none.c b/gio/tests/portal-support-none.c
new file mode 100644
index 000000000..1bc0a9391
--- /dev/null
+++ b/gio/tests/portal-support-none.c
@@ -0,0 +1,43 @@
+/*
+ * GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright (C) 2022 Canonical Ltd.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Marco Trevisan <marco.trevisan@canonical.com>
+ */
+
+#include "../gportalsupport.h"
+#include <gio/gio.h>
+
+static void
+test_portal_support_none (void)
+{
+ g_assert_false (glib_should_use_portal ());
+ g_assert_true (glib_network_available_in_sandbox ());
+ g_assert_true (glib_has_dconf_access_in_sandbox ());
+}
+
+int
+main (int argc, char **argv)
+{
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_func ("/portal-support/none", test_portal_support_none);
+
+ return g_test_run ();
+}
diff --git a/gio/tests/portal-support-snap-classic.c b/gio/tests/portal-support-snap-classic.c
new file mode 100644
index 000000000..093335d81
--- /dev/null
+++ b/gio/tests/portal-support-snap-classic.c
@@ -0,0 +1,122 @@
+/*
+ * GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright (C) 2022 Canonical Ltd.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Marco Trevisan <marco.trevisan@canonical.com>
+ */
+
+#include "portal-support-utils.h"
+
+#include "../gportalsupport.h"
+#include <gio/gio.h>
+
+typedef struct
+{
+ char *old_path;
+ char *old_snap;
+
+ const char *bin_path;
+ const char *snap_path;
+} SetupData;
+
+static void
+tests_setup (SetupData *setup_data,
+ gconstpointer data)
+{
+ setup_data->old_path = g_strdup (g_getenv ("PATH"));
+ setup_data->old_snap = g_strdup (g_getenv ("SNAP"));
+
+ setup_data->bin_path = g_get_user_runtime_dir ();
+ setup_data->snap_path = g_getenv ("G_TEST_TMPDIR");
+
+ g_assert_nonnull (setup_data->bin_path);
+ g_assert_nonnull (setup_data->snap_path);
+
+ g_setenv ("PATH", setup_data->bin_path, TRUE);
+ g_setenv ("SNAP", setup_data->snap_path, TRUE);
+}
+
+static void
+tests_teardown (SetupData *setup_data,
+ gconstpointer data)
+{
+ if (setup_data->old_path)
+ g_setenv ("PATH", setup_data->old_path, TRUE);
+ else
+ g_unsetenv ("PATH");
+
+ if (setup_data->old_snap)
+ g_setenv ("SNAP", setup_data->old_snap, TRUE);
+ else
+ g_unsetenv ("SNAP");
+
+ cleanup_snapfiles (setup_data->snap_path);
+ cleanup_snapfiles (setup_data->bin_path);
+
+ g_clear_pointer (&setup_data->old_path, g_free);
+ g_clear_pointer (&setup_data->old_snap, g_free);
+}
+
+static void
+test_portal_support_snap_no_snapctl (SetupData *setup,
+ gconstpointer data)
+{
+ g_assert_false (glib_should_use_portal ());
+ g_assert_true (glib_network_available_in_sandbox ());
+ g_assert_true (glib_has_dconf_access_in_sandbox ());
+}
+
+static void
+test_portal_support_snap_none (SetupData *setup,
+ gconstpointer data)
+{
+ create_fake_snap_yaml (setup->snap_path, TRUE);
+ create_fake_snapctl (setup->bin_path, NULL);
+
+ g_assert_false (glib_should_use_portal ());
+ g_assert_true (glib_network_available_in_sandbox ());
+ g_assert_true (glib_has_dconf_access_in_sandbox ());
+}
+
+static void
+test_portal_support_snap_all (SetupData *setup,
+ gconstpointer data)
+{
+ create_fake_snap_yaml (setup->snap_path, TRUE);
+ create_fake_snapctl (setup->bin_path, "desktop|network-status|gsettings");
+
+ g_assert_false (glib_should_use_portal ());
+ g_assert_true (glib_network_available_in_sandbox ());
+ g_assert_true (glib_has_dconf_access_in_sandbox ());
+}
+
+int
+main (int argc, char **argv)
+{
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
+
+ g_test_add ("/portal-support/snap-classic/no-snapctl", SetupData, NULL,
+ tests_setup, test_portal_support_snap_no_snapctl, tests_teardown);
+ g_test_add ("/portal-support/snap-classic/none", SetupData, NULL,
+ tests_setup, test_portal_support_snap_none, tests_teardown);
+ g_test_add ("/portal-support/snap-classic/all", SetupData, NULL,
+ tests_setup, test_portal_support_snap_all, tests_teardown);
+
+ return g_test_run ();
+}
diff --git a/gio/tests/portal-support-snap.c b/gio/tests/portal-support-snap.c
new file mode 100644
index 000000000..38f85ca65
--- /dev/null
+++ b/gio/tests/portal-support-snap.c
@@ -0,0 +1,211 @@
+/*
+ * GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright (C) 2022 Canonical Ltd.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Marco Trevisan <marco.trevisan@canonical.com>
+ */
+
+#include "portal-support-utils.h"
+
+#include "../gportalsupport.h"
+#include <gio/gio.h>
+#include <glib/gstdio.h>
+
+typedef struct
+{
+ char *old_path;
+ char *old_snap;
+
+ const char *bin_path;
+ const char *snap_path;
+} SetupData;
+
+static void
+tests_setup (SetupData *setup_data,
+ gconstpointer data)
+{
+ setup_data->old_path = g_strdup (g_getenv ("PATH"));
+ setup_data->old_snap = g_strdup (g_getenv ("SNAP"));
+
+ setup_data->bin_path = g_get_user_runtime_dir ();
+ setup_data->snap_path = g_getenv ("G_TEST_TMPDIR");
+
+ g_assert_nonnull (setup_data->bin_path);
+ g_assert_nonnull (setup_data->snap_path);
+
+ g_setenv ("PATH", setup_data->bin_path, TRUE);
+ g_setenv ("SNAP", setup_data->snap_path, TRUE);
+}
+
+static void
+tests_teardown (SetupData *setup_data,
+ gconstpointer data)
+{
+ if (setup_data->old_path)
+ g_setenv ("PATH", setup_data->old_path, TRUE);
+ else
+ g_unsetenv ("PATH");
+
+ if (setup_data->old_snap)
+ g_setenv ("SNAP", setup_data->old_snap, TRUE);
+ else
+ g_unsetenv ("SNAP");
+
+ cleanup_snapfiles (setup_data->snap_path);
+ cleanup_snapfiles (setup_data->bin_path);
+
+ g_clear_pointer (&setup_data->old_path, g_free);
+ g_clear_pointer (&setup_data->old_snap, g_free);
+}
+
+static void
+test_portal_support_snap_no_snapctl (SetupData *setup,
+ gconstpointer data)
+{
+ create_fake_snap_yaml (setup->snap_path, FALSE);
+
+ g_assert_false (glib_should_use_portal ());
+ g_assert_false (glib_network_available_in_sandbox ());
+ g_assert_false (glib_has_dconf_access_in_sandbox ());
+}
+
+static void
+test_portal_support_snap_none (SetupData *setup,
+ gconstpointer data)
+{
+ create_fake_snap_yaml (setup->snap_path, FALSE);
+ create_fake_snapctl (setup->bin_path, NULL);
+
+ g_assert_false (glib_should_use_portal ());
+ g_assert_false (glib_network_available_in_sandbox ());
+ g_assert_false (glib_has_dconf_access_in_sandbox ());
+}
+
+static void
+test_portal_support_snap_all (SetupData *setup,
+ gconstpointer data)
+{
+ create_fake_snap_yaml (setup->snap_path, FALSE);
+ create_fake_snapctl (setup->bin_path, "desktop|network-status|gsettings");
+
+ g_assert_true (glib_should_use_portal ());
+ g_assert_true (glib_network_available_in_sandbox ());
+ g_assert_true (glib_has_dconf_access_in_sandbox ());
+}
+
+static void
+test_portal_support_snap_desktop_only (SetupData *setup,
+ gconstpointer data)
+{
+ create_fake_snap_yaml (setup->snap_path, FALSE);
+ create_fake_snapctl (setup->bin_path, "desktop");
+
+ g_assert_true (glib_should_use_portal ());
+ g_assert_true (glib_network_available_in_sandbox ());
+ g_assert_false (glib_has_dconf_access_in_sandbox ());
+}
+
+static void
+test_portal_support_snap_network_only (SetupData *setup,
+ gconstpointer data)
+{
+ create_fake_snap_yaml (setup->snap_path, FALSE);
+ create_fake_snapctl (setup->bin_path, "network-status");
+
+ g_assert_false (glib_should_use_portal ());
+ g_assert_true (glib_network_available_in_sandbox ());
+ g_assert_false (glib_has_dconf_access_in_sandbox ());
+}
+
+static void
+test_portal_support_snap_gsettings_only (SetupData *setup,
+ gconstpointer data)
+{
+ create_fake_snap_yaml (setup->snap_path, FALSE);
+ create_fake_snapctl (setup->bin_path, "gsettings");
+
+ g_assert_false (glib_should_use_portal ());
+ g_assert_false (glib_network_available_in_sandbox ());
+ g_assert_true (glib_has_dconf_access_in_sandbox ());
+}
+
+static void
+test_portal_support_snap_updates_dynamically (SetupData *setup,
+ gconstpointer data)
+{
+ create_fake_snap_yaml (setup->snap_path, FALSE);
+ create_fake_snapctl (setup->bin_path, NULL);
+
+ g_assert_false (glib_should_use_portal ());
+ g_assert_false (glib_network_available_in_sandbox ());
+ g_assert_false (glib_has_dconf_access_in_sandbox ());
+
+ create_fake_snapctl (setup->bin_path, "desktop");
+ g_assert_true (glib_should_use_portal ());
+ g_assert_true (glib_network_available_in_sandbox ());
+ g_assert_false (glib_has_dconf_access_in_sandbox ());
+
+ create_fake_snapctl (setup->bin_path, "network-status|gsettings");
+ g_assert_false (glib_should_use_portal ());
+ g_assert_true (glib_network_available_in_sandbox ());
+ g_assert_true (glib_has_dconf_access_in_sandbox ());
+
+ create_fake_snapctl (setup->bin_path, "desktop|network-status|gsettings");
+ g_assert_true (glib_should_use_portal ());
+ g_assert_true (glib_network_available_in_sandbox ());
+ g_assert_true (glib_has_dconf_access_in_sandbox ());
+
+ create_fake_snapctl (setup->bin_path, "desktop|gsettings");
+ g_assert_true (glib_should_use_portal ());
+ g_assert_true (glib_network_available_in_sandbox ());
+ g_assert_true (glib_has_dconf_access_in_sandbox ());
+
+ create_fake_snapctl (setup->bin_path, "gsettings");
+ g_assert_false (glib_should_use_portal ());
+ g_assert_false (glib_network_available_in_sandbox ());
+ g_assert_true (glib_has_dconf_access_in_sandbox ());
+
+ create_fake_snapctl (setup->bin_path, NULL);
+ g_assert_false (glib_should_use_portal ());
+ g_assert_false (glib_network_available_in_sandbox ());
+ g_assert_false (glib_has_dconf_access_in_sandbox ());
+}
+
+int
+main (int argc, char **argv)
+{
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
+
+ g_test_add ("/portal-support/snap/no-snapctl", SetupData, NULL,
+ tests_setup, test_portal_support_snap_no_snapctl, tests_teardown);
+ g_test_add ("/portal-support/snap/none", SetupData, NULL,
+ tests_setup, test_portal_support_snap_none, tests_teardown);
+ g_test_add ("/portal-support/snap/all", SetupData, NULL,
+ tests_setup, test_portal_support_snap_all, tests_teardown);
+ g_test_add ("/portal-support/snap/desktop-only", SetupData, NULL,
+ tests_setup, test_portal_support_snap_desktop_only, tests_teardown);
+ g_test_add ("/portal-support/snap/network-only", SetupData, NULL,
+ tests_setup, test_portal_support_snap_network_only, tests_teardown);
+ g_test_add ("/portal-support/snap/gsettings-only", SetupData, NULL,
+ tests_setup, test_portal_support_snap_gsettings_only, tests_teardown);
+ g_test_add ("/portal-support/snap/updates-dynamically", SetupData, NULL,
+ tests_setup, test_portal_support_snap_updates_dynamically, tests_teardown);
+
+ return g_test_run ();
+}
diff --git a/gio/tests/portal-support-utils.c b/gio/tests/portal-support-utils.c
new file mode 100644
index 000000000..b7ee22630
--- /dev/null
+++ b/gio/tests/portal-support-utils.c
@@ -0,0 +1,168 @@
+/*
+ * GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright (C) 2022 Canonical Ltd.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Marco Trevisan <marco.trevisan@canonical.com>
+ */
+
+#include "portal-support-utils.h"
+
+#include <glib.h>
+#include <glib/gstdio.h>
+
+
+void
+cleanup_snapfiles (const gchar *path)
+{
+ GDir *dir = NULL;
+ const gchar *entry;
+
+ dir = g_dir_open (path, 0, NULL);
+ if (dir == NULL)
+ {
+ /* Assume it’s a file. Ignore failure. */
+ (void) g_remove (path);
+ return;
+ }
+
+ while ((entry = g_dir_read_name (dir)) != NULL)
+ {
+ gchar *sub_path = g_build_filename (path, entry, NULL);
+ cleanup_snapfiles (sub_path);
+ g_free (sub_path);
+ }
+
+ g_dir_close (dir);
+
+ g_rmdir (path);
+}
+
+void
+create_fake_snapctl (const char *path,
+ const char *supported_op)
+{
+ GError *error = NULL;
+ char *snapctl_content;
+ char *snapctl;
+
+ snapctl = g_build_filename (path, "snapctl", NULL);
+ snapctl_content = g_strdup_printf ("#!/bin/sh\n" \
+ "[ \"$1\" != 'is-connected' ] && exit 2\n"
+ "[ -z \"$2\" ] && exit 3\n"
+ "[ -n \"$3\" ] && exit 4\n"
+ "case \"$2\" in\n"
+ " %s) exit 0;;\n"
+ " *) exit 1;;\n"
+ "esac\n",
+ supported_op ? supported_op : "<invalid>");
+
+ g_file_set_contents (snapctl, snapctl_content, -1, &error);
+ g_assert_no_error (error);
+ g_assert_cmpint (g_chmod (snapctl, 0500), ==, 0);
+
+ g_test_message ("Created snapctl in %s", snapctl);
+
+ g_clear_error (&error);
+ g_free (snapctl_content);
+ g_free (snapctl);
+}
+
+void
+create_fake_snap_yaml (const char *snap_path,
+ gboolean is_classic)
+{
+ char *meta_path;
+ char *yaml_path;
+ char *yaml_contents;
+
+ g_assert_nonnull (snap_path);
+
+ yaml_contents = g_strconcat ("name: glib-test-portal-support\n"
+ "title: GLib Portal Support Test\n"
+ "version: 2.76\n"
+ "summary: Test it works\n",
+ is_classic ?
+ "confinement: classic\n" : NULL, NULL);
+
+ meta_path = g_build_filename (snap_path, "meta", NULL);
+ g_assert_cmpint (g_mkdir_with_parents (meta_path, 0700), ==, 0);
+
+ yaml_path = g_build_filename (meta_path, "snap.yaml", NULL);
+ g_file_set_contents (yaml_path, yaml_contents, -1, NULL);
+
+ g_test_message ("Created snap.yaml in %s", yaml_path);
+
+ g_free (meta_path);
+ g_free (yaml_path);
+ g_free (yaml_contents);
+}
+
+void
+create_fake_flatpak_info_from_key_file (const char *root_path,
+ GKeyFile *key_file)
+{
+ GError *error = NULL;
+ char *key_file_path;
+
+ g_assert_nonnull (root_path);
+
+ key_file_path = g_build_filename (root_path, ".flatpak-info", NULL);
+ g_test_message ("Creating .flatpak-info in %s", key_file_path);
+ g_key_file_save_to_file (key_file, key_file_path, &error);
+ g_assert_no_error (error);
+
+ g_free (key_file_path);
+}
+
+void
+create_fake_flatpak_info (const char *root_path,
+ const GStrv shared_context,
+ const char *dconf_dbus_policy)
+{
+ GKeyFile *key_file;
+
+ key_file = g_key_file_new ();
+
+ /* File format is defined at:
+ * https://docs.flatpak.org/en/latest/flatpak-command-reference.html
+ */
+ g_key_file_set_string (key_file, "Application", "name",
+ "org.gnome.GLib.Test.Flatpak");
+ g_key_file_set_string (key_file, "Application", "runtime",
+ "org.gnome.Platform/x86_64/44");
+ g_key_file_set_string (key_file, "Application", "sdk",
+ "org.gnome.Sdk/x86_64/44");
+
+ if (shared_context)
+ {
+ g_key_file_set_string_list (key_file, "Context", "shared",
+ (const char * const *) shared_context,
+ g_strv_length (shared_context));
+ }
+
+ if (dconf_dbus_policy)
+ {
+ g_key_file_set_string (key_file, "Session Bus Policy", "ca.desrt.dconf",
+ dconf_dbus_policy);
+ }
+
+ create_fake_flatpak_info_from_key_file (root_path, key_file);
+
+ g_key_file_free (key_file);
+}
diff --git a/gio/tests/portal-support-utils.h b/gio/tests/portal-support-utils.h
new file mode 100644
index 000000000..defbdcd4e
--- /dev/null
+++ b/gio/tests/portal-support-utils.h
@@ -0,0 +1,39 @@
+/*
+ * GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright (C) 2022 Canonical Ltd.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Marco Trevisan <marco.trevisan@canonical.com>
+ */
+
+#include <glib.h>
+
+void cleanup_snapfiles (const gchar *path);
+
+void create_fake_snap_yaml (const char *snap_path,
+ gboolean is_classic);
+
+void create_fake_snapctl (const char *path,
+ const char *supported_op);
+
+void create_fake_flatpak_info (const char *root_path,
+ const GStrv shared_context,
+ const char *dconf_dbus_policy);
+
+void create_fake_flatpak_info_from_key_file (const char *root_path,
+ GKeyFile *key_file);
diff --git a/gio/tests/resolver.c b/gio/tests/resolver.c
index ec9b9e9de..b8adb4a36 100644
--- a/gio/tests/resolver.c
+++ b/gio/tests/resolver.c
@@ -41,6 +41,7 @@ static int nlookups = 0;
static gboolean synchronous = FALSE;
static guint connectable_count = 0;
static GResolverRecordType record_type = 0;
+static gint timeout_ms = 0;
static G_NORETURN void
usage (void)
@@ -688,7 +689,7 @@ static gboolean
async_cancel (GIOChannel *source, GIOCondition cond, gpointer cancel)
{
g_cancellable_cancel (cancel);
- return FALSE;
+ return G_SOURCE_REMOVE;
}
#endif
@@ -722,6 +723,7 @@ static const GOptionEntry option_entries[] = {
{ "synchronous", 's', 0, G_OPTION_ARG_NONE, &synchronous, "Synchronous connections", NULL },
{ "connectable", 'c', 0, G_OPTION_ARG_INT, &connectable_count, "Connectable count", "C" },
{ "special-type", 't', 0, G_OPTION_ARG_CALLBACK, record_type_arg, "Record type like MX, TXT, NS or SOA", "RR" },
+ { "timeout", 0, 0, G_OPTION_ARG_INT, &timeout_ms, "Timeout (ms)", "ms" },
G_OPTION_ENTRY_NULL,
};
@@ -732,7 +734,7 @@ main (int argc, char **argv)
GError *error = NULL;
#ifdef G_OS_UNIX
GIOChannel *chan;
- guint watch;
+ GSource *watch_source = NULL;
#endif
context = g_option_context_new ("lookups ...");
@@ -749,6 +751,9 @@ main (int argc, char **argv)
resolver = g_resolver_get_default ();
+ if (timeout_ms != 0)
+ g_resolver_set_timeout (resolver, timeout_ms);
+
cancellable = g_cancellable_new ();
#ifdef G_OS_UNIX
@@ -763,7 +768,9 @@ main (int argc, char **argv)
exit (1);
}
chan = g_io_channel_unix_new (cancel_fds[0]);
- watch = g_io_add_watch (chan, G_IO_IN, async_cancel, cancellable);
+ watch_source = g_io_create_watch (chan, G_IO_IN);
+ g_source_set_callback (watch_source, (GSourceFunc) async_cancel, cancellable, NULL);
+ g_source_attach (watch_source, NULL);
g_io_channel_unref (chan);
#endif
@@ -787,7 +794,8 @@ main (int argc, char **argv)
g_main_loop_unref (loop);
#ifdef G_OS_UNIX
- g_source_remove (watch);
+ g_source_destroy (watch_source);
+ g_clear_pointer (&watch_source, g_source_unref);
#endif
g_object_unref (cancellable);
g_option_context_free (context);
diff --git a/gio/tests/resourceplugin.c b/gio/tests/resourceplugin.c
index 1f218f26f..1f5f7ef87 100644
--- a/gio/tests/resourceplugin.c
+++ b/gio/tests/resourceplugin.c
@@ -6,8 +6,6 @@
* g_io_module*() symbols, is defined to be _GLIB_EXTERN,
* which must be overridden to export the symbols.
*/
-#include "modules/symbol-visibility.h"
-#define _GLIB_EXTERN GLIB_TEST_EXPORT_SYMBOL
#include <gio/gio.h>
diff --git a/gio/tests/resources.c b/gio/tests/resources.c
index 910b18912..f567914d7 100644
--- a/gio/tests/resources.c
+++ b/gio/tests/resources.c
@@ -805,7 +805,11 @@ test_uri_query_info (void)
g_assert_nonnull (content_type);
mime_type = g_content_type_get_mime_type (content_type);
g_assert_nonnull (mime_type);
+#ifdef __APPLE__
+ g_assert_cmpstr (mime_type, ==, "text/*");
+#else
g_assert_cmpstr (mime_type, ==, "text/plain");
+#endif
g_free (mime_type);
g_object_unref (info);
diff --git a/gio/tests/sandbox.c b/gio/tests/sandbox.c
new file mode 100644
index 000000000..c0720e2df
--- /dev/null
+++ b/gio/tests/sandbox.c
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2022 Canonical Ltd
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "portal-support-utils.h"
+
+#include "../gsandbox.h"
+#include <gio/gio.h>
+#include <glib/gstdio.h>
+
+static void
+test_sandbox_none (void)
+{
+ g_assert_cmpint (glib_get_sandbox_type (), ==, G_SANDBOX_TYPE_UNKNOWN);
+}
+
+static void
+test_sandbox_snap (void)
+{
+ const char *temp_dir;
+ gchar *snap_path;
+
+ temp_dir = g_getenv ("G_TEST_TMPDIR");
+ g_assert_nonnull (temp_dir);
+
+ snap_path = g_build_filename (temp_dir, "snap", "current", NULL);
+ create_fake_snap_yaml (snap_path, FALSE);
+ g_setenv ("SNAP", snap_path, TRUE);
+
+ g_assert_cmpint (glib_get_sandbox_type (), ==, G_SANDBOX_TYPE_SNAP);
+
+ g_unsetenv ("SNAP");
+ g_free (snap_path);
+}
+
+static void
+test_sandbox_snap_classic (void)
+{
+ const char *temp_dir;
+ char *snap_path;
+
+ temp_dir = g_getenv ("G_TEST_TMPDIR");
+ g_assert_nonnull (temp_dir);
+
+ snap_path = g_build_filename (temp_dir, "snap", "current", NULL);
+ create_fake_snap_yaml (snap_path, TRUE);
+ g_setenv ("SNAP", snap_path, TRUE);
+
+ g_assert_cmpint (glib_get_sandbox_type (), ==, G_SANDBOX_TYPE_UNKNOWN);
+
+ g_unsetenv ("SNAP");
+ g_free (snap_path);
+}
+
+static void
+test_sandbox_flatpak (void)
+{
+ create_fake_flatpak_info (g_get_user_runtime_dir (), NULL, NULL);
+ g_assert_cmpint (glib_get_sandbox_type (), ==, G_SANDBOX_TYPE_FLATPAK);
+}
+
+int
+main (int argc, char **argv)
+{
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
+
+ g_test_add_func ("/sandbox/none", test_sandbox_none);
+ g_test_add_func ("/sandbox/snap", test_sandbox_snap);
+ g_test_add_func ("/sandbox/classic-snap", test_sandbox_snap_classic);
+ g_test_add_func ("/sandbox/flatpak", test_sandbox_flatpak);
+
+ return g_test_run ();
+}
diff --git a/gio/tests/socket-common.c b/gio/tests/socket-common.c
index 18d083a30..b740f68e7 100644
--- a/gio/tests/socket-common.c
+++ b/gio/tests/socket-common.c
@@ -1,4 +1,4 @@
-/* #included into both socket-client.c and socket-server.c */
+/* #included into both socket-testclient.c and socket-testserver.c */
#ifdef G_OS_UNIX
static const char *unix_socket_address_types[] = {
diff --git a/gio/tests/socket-client.c b/gio/tests/socket-testclient.c
index 025632767..025632767 100644
--- a/gio/tests/socket-client.c
+++ b/gio/tests/socket-testclient.c
diff --git a/gio/tests/socket-server.c b/gio/tests/socket-testserver.c
index 61715b02d..61715b02d 100644
--- a/gio/tests/socket-server.c
+++ b/gio/tests/socket-testserver.c
diff --git a/gio/tests/srvtarget.c b/gio/tests/srvtarget.c
index 84f803ee7..bc5fb51d9 100644
--- a/gio/tests/srvtarget.c
+++ b/gio/tests/srvtarget.c
@@ -1,6 +1,8 @@
/* GLib testing framework examples and tests
* Copyright (C) 2009 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/task.c b/gio/tests/task.c
index 10ff6f8b1..8dfc0e983 100644
--- a/gio/tests/task.c
+++ b/gio/tests/task.c
@@ -625,18 +625,40 @@ static void
test_name (void)
{
GTask *t1 = NULL;
+ char *orig = g_strdup ("some task");
gchar *name1 = NULL;
t1 = g_task_new (NULL, NULL, name_callback, &name1);
- g_task_set_name (t1, "some task");
+ (g_task_set_name) (t1, orig);
g_task_return_boolean (t1, TRUE);
g_object_unref (t1);
g_main_loop_run (loop);
- g_assert_cmpstr (name1, ==, "some task");
+ g_assert_cmpstr (name1, ==, orig);
g_free (name1);
+ g_free (orig);
+}
+
+static void
+test_name_macro_wrapper (void)
+{
+ GTask *t1 = NULL;
+ char *orig = g_strdup ("some task");
+ gchar *name1 = NULL;
+
+ t1 = g_task_new (NULL, NULL, name_callback, &name1);
+ g_task_set_name (t1, orig);
+ g_task_return_boolean (t1, TRUE);
+ g_object_unref (t1);
+
+ g_main_loop_run (loop);
+
+ g_assert_cmpstr (name1, ==, orig);
+
+ g_free (name1);
+ g_free (orig);
}
static void
@@ -656,6 +678,44 @@ name_callback (GObject *object,
g_main_loop_quit (loop);
}
+static void static_name_callback (GObject *object,
+ GAsyncResult *result,
+ gpointer user_data);
+
+static void
+test_static_name (void)
+{
+ GTask *t1 = NULL;
+ char *orig = "some task";
+ char *name1 = NULL;
+
+ t1 = g_task_new (NULL, NULL, static_name_callback, &name1);
+ g_task_set_static_name (t1, orig);
+ g_task_return_boolean (t1, TRUE);
+ g_object_unref (t1);
+
+ g_main_loop_run (loop);
+
+ g_assert_true (name1 == orig);
+}
+
+static void
+static_name_callback (GObject *object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ const char **name_out = user_data;
+ GError *local_error = NULL;
+
+ g_assert_null (*name_out);
+ *name_out = g_task_get_name (G_TASK (result));
+
+ g_task_propagate_boolean (G_TASK (result), &local_error);
+ g_assert_no_error (local_error);
+
+ g_main_loop_quit (loop);
+}
+
/* test_asynchronous_cancellation: cancelled tasks are returned
* asynchronously, i.e. not from inside the GCancellable::cancelled
* handler.
@@ -2358,6 +2418,77 @@ test_return_value_first (void)
g_test_trap_assert_stderr ("*CRITICAL*assertion '!task->ever_returned' failed*");
}
+static gboolean
+source_cb (gpointer user_data)
+{
+ return G_SOURCE_REMOVE;
+}
+
+static void
+test_attach_source_set_name (void)
+{
+ guint calls = 0;
+ GTask *task = NULL;
+ GSource *source = NULL;
+ GSourceFuncs source_funcs = { NULL, NULL, NULL, NULL, NULL, NULL };
+
+ g_test_summary ("Test that attaching a source to a task will set the source’s name if unset");
+
+ task = g_task_new (NULL, NULL, task_complete_cb, &calls);
+ g_task_set_name (task, "test name");
+
+ source = g_source_new (&source_funcs, sizeof (GSource));
+ g_task_attach_source (task, source, source_cb);
+ g_assert_cmpstr (g_source_get_name (source), ==, "test name");
+ g_source_unref (source);
+
+ source = g_source_new (&source_funcs, sizeof (GSource));
+ g_source_set_name (source, "not the task name");
+ g_task_attach_source (task, source, source_cb);
+ g_assert_cmpstr (g_source_get_name (source), ==, "not the task name");
+ g_source_unref (source);
+
+ g_object_unref (task);
+}
+
+static void
+test_finalize_without_return (void)
+{
+ GTask *task = NULL;
+ guint n_calls = 0;
+
+ /* With a callback set. */
+ task = g_task_new (NULL, NULL, task_complete_cb, &n_calls);
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "GTask * (source object: *, source tag: *) finalized without "
+ "ever returning (using g_task_return_*()). This potentially "
+ "indicates a bug in the program.");
+ g_object_unref (task);
+ g_test_assert_expected_messages ();
+
+ /* With a callback and task name set. */
+ task = g_task_new (NULL, NULL, task_complete_cb, &n_calls);
+ g_task_set_static_name (task, "oogly boogly");
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "GTask oogly boogly (source object: *, source tag: *) finalized without "
+ "ever returning (using g_task_return_*()). This potentially "
+ "indicates a bug in the program.");
+ g_object_unref (task);
+ g_test_assert_expected_messages ();
+
+ /* Without a callback set. */
+ task = g_task_new (NULL, NULL, NULL, NULL);
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,
+ "GTask * (source object: *, source tag: *) finalized without "
+ "ever returning (using g_task_return_*()). This potentially "
+ "indicates a bug in the program.");
+ g_object_unref (task);
+ g_test_assert_expected_messages ();
+}
+
int
main (int argc, char **argv)
{
@@ -2379,6 +2510,8 @@ main (int argc, char **argv)
g_test_add_func ("/gtask/report-error", test_report_error);
g_test_add_func ("/gtask/priority", test_priority);
g_test_add_func ("/gtask/name", test_name);
+ g_test_add_func ("/gtask/name/macro-wrapper", test_name_macro_wrapper);
+ g_test_add_func ("/gtask/static-name", test_static_name);
g_test_add_func ("/gtask/asynchronous-cancellation", test_asynchronous_cancellation);
g_test_add_func ("/gtask/check-cancellable", test_check_cancellable);
g_test_add_func ("/gtask/return-if-cancelled", test_return_if_cancelled);
@@ -2398,6 +2531,8 @@ main (int argc, char **argv)
g_test_add_func ("/gtask/return/in-idle/value-first", test_return_in_idle_value_first);
g_test_add_func ("/gtask/return/error-first", test_return_error_first);
g_test_add_func ("/gtask/return/value-first", test_return_value_first);
+ g_test_add_func ("/gtask/attach-source/set-name", test_attach_source_set_name);
+ g_test_add_func ("/gtask/finalize-without-return", test_finalize_without_return);
ret = g_test_run();
diff --git a/gio/tests/test-codegen.xml b/gio/tests/test-codegen.xml
index 3090cad4a..ae4eaa1ca 100644
--- a/gio/tests/test-codegen.xml
+++ b/gio/tests/test-codegen.xml
@@ -475,7 +475,7 @@
</interface>
<unknownTag/>
- <interface name="FDPassing">
+ <interface name="test.FDPassing">
<method name="HelloFD">
<annotation name="org.gtk.GDBus.C.UnixFD" value="1"/>
<arg name="greeting" direction="in" type="s"/>
diff --git a/gio/tests/testfilemonitor.c b/gio/tests/testfilemonitor.c
index 7274f792e..52a530244 100644
--- a/gio/tests/testfilemonitor.c
+++ b/gio/tests/testfilemonitor.c
@@ -1087,6 +1087,36 @@ test_finalize_in_callback (Fixture *fixture,
g_object_unref (file);
}
+static void
+test_root (Fixture *fixture,
+ gconstpointer user_data)
+{
+ GFile *file = NULL;
+ GFileMonitor *monitor = NULL;
+ GError *local_error = NULL;
+
+ g_test_summary ("Test that GFileMonitor can monitor the root directory.");
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3241");
+
+#if defined(G_OS_UNIX)
+ file = g_file_new_for_path ("/");
+#elif defined(G_OS_WIN32)
+ file = g_file_new_for_path ("C:\\");
+#else
+ g_test_skip ("Unsupported root directory");
+ return;
+#endif
+
+ /* We can’t test for any monitor events, but we can at least check that this
+ * doesn’t crash or error. */
+ monitor = g_file_monitor_directory (file, G_FILE_MONITOR_NONE, NULL, &local_error);
+ g_assert_no_error (local_error);
+ g_assert_nonnull (monitor);
+
+ g_clear_object (&monitor);
+ g_clear_object (&file);
+}
+
int
main (int argc, char *argv[])
{
@@ -1099,6 +1129,7 @@ main (int argc, char *argv[])
g_test_add ("/monitor/cross-dir-moves", Fixture, NULL, setup, test_cross_dir_moves, teardown);
g_test_add ("/monitor/file/hard-links", Fixture, NULL, setup, test_file_hard_links, teardown);
g_test_add ("/monitor/finalize-in-callback", Fixture, NULL, setup, test_finalize_in_callback, teardown);
+ g_test_add ("/monitor/root", Fixture, NULL, setup, test_root, teardown);
return g_test_run ();
}
diff --git a/gio/tests/thumbnail-verification.c b/gio/tests/thumbnail-verification.c
index f439c8b06..1c65b80fd 100644
--- a/gio/tests/thumbnail-verification.c
+++ b/gio/tests/thumbnail-verification.c
@@ -2,6 +2,8 @@
*
* Copyright (C) 2013 Collabora, Ltd.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/unix-fd.c b/gio/tests/unix-fd.c
index ecf1aea37..62c17df14 100644
--- a/gio/tests/unix-fd.c
+++ b/gio/tests/unix-fd.c
@@ -63,7 +63,7 @@ test_fd_list (void)
s = _pipe (sv, 4096, _O_NOINHERIT | _O_BINARY);
g_assert_cmpint (s, ==, 0);
#else
- g_unix_open_pipe (sv, FD_CLOEXEC, &err);
+ g_unix_open_pipe (sv, O_CLOEXEC, &err);
g_assert_no_error (err);
#endif
list = g_unix_fd_list_new_from_array (sv, -1);
diff --git a/gio/tests/unix-streams.c b/gio/tests/unix-streams.c
index e32e2861d..40f34ce28 100644
--- a/gio/tests/unix-streams.c
+++ b/gio/tests/unix-streams.c
@@ -1,6 +1,8 @@
/* GLib testing framework examples and tests
* Copyright (C) 2008 Red Hat, Inc
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -62,7 +64,7 @@ writer_thread (gpointer user_data)
offset += nwrote;
}
- g_assert (nwrote > 0 || err != NULL);
+ g_assert_true (nwrote > 0 || err != NULL);
}
while (err == NULL);
@@ -105,14 +107,14 @@ reader_thread (gpointer user_data)
if (nread == 0)
{
- g_assert (err == NULL);
+ g_assert_no_error (err);
/* pipe closed */
g_object_unref (in);
return NULL;
}
g_assert_cmpstr (buf, ==, DATA);
- g_assert (!g_cancellable_is_cancelled (reader_cancel));
+ g_assert_false (g_cancellable_is_cancelled (reader_cancel));
}
while (err == NULL);
@@ -144,9 +146,9 @@ main_thread_skipped (GObject *source, GAsyncResult *res, gpointer user_data)
nskipped = g_input_stream_skip_finish (in, res, &err);
- if (g_cancellable_is_cancelled (main_cancel))
+ if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED))
{
- g_assert_error (err, G_IO_ERROR, G_IO_ERROR_CANCELLED);
+ g_assert_true (g_cancellable_is_cancelled (main_cancel));
do_main_cancel (out);
g_clear_error (&err);
return;
@@ -180,9 +182,9 @@ main_thread_read (GObject *source, GAsyncResult *res, gpointer user_data)
nread = g_input_stream_read_finish (in, res, &err);
- if (g_cancellable_is_cancelled (main_cancel))
+ if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED))
{
- g_assert_error (err, G_IO_ERROR, G_IO_ERROR_CANCELLED);
+ g_assert_true (g_cancellable_is_cancelled (main_cancel));
do_main_cancel (out);
g_clear_error (&err);
return;
@@ -218,9 +220,9 @@ main_thread_wrote (GObject *source, GAsyncResult *res, gpointer user_data)
nwrote = g_output_stream_write_finish (out, res, &err);
- if (g_cancellable_is_cancelled (main_cancel))
+ if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED))
{
- g_assert_error (err, G_IO_ERROR, G_IO_ERROR_CANCELLED);
+ g_assert_true (g_cancellable_is_cancelled (main_cancel));
do_main_cancel (out);
g_clear_error (&err);
return;
@@ -271,7 +273,7 @@ test_pipe_io (gconstpointer nonblocking)
* read op to fail.
*/
- g_assert (pipe (writer_pipe) == 0 && pipe (reader_pipe) == 0);
+ g_assert_true (pipe (writer_pipe) == 0 && pipe (reader_pipe) == 0);
if (nonblocking)
{
@@ -331,13 +333,13 @@ test_basic (void)
"close-fd", &close_fd,
NULL);
g_assert_cmpint (fd, ==, 0);
- g_assert (close_fd);
+ g_assert_true (close_fd);
g_unix_input_stream_set_close_fd (is, FALSE);
- g_assert (!g_unix_input_stream_get_close_fd (is));
+ g_assert_false (g_unix_input_stream_get_close_fd (is));
g_assert_cmpint (g_unix_input_stream_get_fd (is), ==, 0);
- g_assert (!g_input_stream_has_pending (G_INPUT_STREAM (is)));
+ g_assert_false (g_input_stream_has_pending (G_INPUT_STREAM (is)));
g_object_unref (is);
@@ -347,13 +349,13 @@ test_basic (void)
"close-fd", &close_fd,
NULL);
g_assert_cmpint (fd, ==, 1);
- g_assert (close_fd);
+ g_assert_true (close_fd);
g_unix_output_stream_set_close_fd (os, FALSE);
- g_assert (!g_unix_output_stream_get_close_fd (os));
+ g_assert_false (g_unix_output_stream_get_close_fd (os));
g_assert_cmpint (g_unix_output_stream_get_fd (os), ==, 1);
- g_assert (!g_output_stream_has_pending (G_OUTPUT_STREAM (os)));
+ g_assert_false (g_output_stream_has_pending (G_OUTPUT_STREAM (os)));
g_object_unref (os);
}
diff --git a/gio/tests/vfs.c b/gio/tests/vfs.c
index b8a850dec..c94b40701 100644
--- a/gio/tests/vfs.c
+++ b/gio/tests/vfs.c
@@ -3,6 +3,8 @@
* Copyright (C) 2011 Red Hat, Inc
* Author: Matthias Clasen
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -106,18 +108,39 @@ test_local (void)
gchar **schemes;
vfs = g_vfs_get_local ();
- g_assert (g_vfs_is_active (vfs));
+ g_assert_true (g_vfs_is_active (vfs));
file = g_vfs_get_file_for_uri (vfs, "not a good uri");
- g_assert (G_IS_FILE (file));
+ g_assert_true (G_IS_FILE (file));
g_object_unref (file);
schemes = (gchar **)g_vfs_get_supported_uri_schemes (vfs);
- g_assert (g_strv_length (schemes) > 0);
+ g_assert_cmpuint (g_strv_length (schemes), >, 0);
g_assert_cmpstr (schemes[0], ==, "file");
}
+static void
+test_resource_malformed_escaping (void)
+{
+ GVfs *vfs;
+ GFile *file;
+
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/3090");
+ g_test_summary ("Test that g_vfs_get_file_for_uri() returns an invalid file for an invalid URI");
+
+ vfs = g_vfs_get_local ();
+ g_assert_true (g_vfs_is_active (vfs));
+
+ file = g_vfs_get_file_for_uri (vfs, "resource:///%not-valid-escaping/gtk.css");
+ g_assert_true (G_IS_FILE (file));
+
+ /* This only returns %NULL if the file was constructed with an invalid URI: */
+ g_assert_null (g_file_get_uri_scheme (file));
+
+ g_object_unref (file);
+}
+
int
main (int argc, char *argv[])
{
@@ -125,6 +148,7 @@ main (int argc, char *argv[])
g_test_add_func ("/gvfs/local", test_local);
g_test_add_func ("/gvfs/register-scheme", test_register_scheme);
+ g_test_add_func ("/gvfs/resource/malformed-escaping", test_resource_malformed_escaping);
return g_test_run ();
}
diff --git a/gio/tests/win32-appinfo.c b/gio/tests/win32-appinfo.c
index 8402a202e..cfbcbf60c 100644
--- a/gio/tests/win32-appinfo.c
+++ b/gio/tests/win32-appinfo.c
@@ -1,6 +1,8 @@
/* GLib testing framework examples and tests
* Copyright (C) 2019 Руслан Ижбулатов <lrn1986@gmail.com>
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gio/tests/win32-streams.c b/gio/tests/win32-streams.c
index 6451a9faa..aea660dfc 100644
--- a/gio/tests/win32-streams.c
+++ b/gio/tests/win32-streams.c
@@ -1,6 +1,8 @@
/* GLib testing framework examples and tests
* Copyright (C) 2008 Red Hat, Inc
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -40,7 +42,8 @@ static gpointer
writer_thread (gpointer user_data)
{
GOutputStream *out;
- gssize nwrote, offset;
+ gssize nwrote;
+ size_t offset;
GError *err = NULL;
HANDLE out_handle;
@@ -58,7 +61,7 @@ writer_thread (gpointer user_data)
g_usleep (10);
offset = 0;
- while (offset < (gssize) sizeof (DATA))
+ while (offset < sizeof (DATA))
{
nwrote = g_output_stream_write (out, DATA + offset,
sizeof (DATA) - offset,
diff --git a/gio/win32/gwin32fsmonitorutils.c b/gio/win32/gwin32fsmonitorutils.c
index f2ab5472a..dd945dc87 100644
--- a/gio/win32/gwin32fsmonitorutils.c
+++ b/gio/win32/gwin32fsmonitorutils.c
@@ -316,6 +316,7 @@ g_win32_fs_monitor_init (GWin32FSMonitorPrivate *monitor,
wcsdup (wshortname);
}
+ g_free (wfullpath);
g_free (fullpath);
}
else
diff --git a/gio/win32/meson.build b/gio/win32/meson.build
index 8d589989b..6699f10eb 100644
--- a/gio/win32/meson.build
+++ b/gio/win32/meson.build
@@ -9,7 +9,13 @@ giowin32_sources = [
giowin32_lib = static_library('giowin32',
sources : [giowin32_sources],
- include_directories : [configinc, glibinc, gioinc, gmoduleinc],
- dependencies : [libintl, gioenumtypes_dep],
+ include_directories : [configinc, glibinc, gioinc],
+ dependencies : [
+ libintl,
+ gioenumtypes_dep,
+ libglib_dep,
+ gmodule_inc_dep,
+ ],
+ gnu_symbol_visibility : 'hidden',
pic : true,
- c_args : gio_c_args)
+ c_args : [gio_c_args, gio_c_args_internal])
diff --git a/gio/xdgmime/meson.build b/gio/xdgmime/meson.build
index 4c8a552a2..1f7e88f33 100644
--- a/gio/xdgmime/meson.build
+++ b/gio/xdgmime/meson.build
@@ -14,4 +14,6 @@ xdgmime_lib = static_library('xdgmime',
include_directories : [configinc],
pic : true,
c_args : [ '-DHAVE_CONFIG_H',
- '-DXDG_PREFIX=_gio_xdg' ] + glib_hidden_visibility_args)
+ '-DXDG_PREFIX=_gio_xdg' ],
+ gnu_symbol_visibility : 'hidden',
+)
diff --git a/gio/xdgmime/xdgmime.c b/gio/xdgmime/xdgmime.c
index c3c11625e..0909581eb 100644
--- a/gio/xdgmime/xdgmime.c
+++ b/gio/xdgmime/xdgmime.c
@@ -6,23 +6,7 @@
* Copyright (C) 2003,2004 Red Hat, Inc.
* Copyright (C) 2003,2004 Jonathan Blandford <jrb@alum.mit.edu>
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifdef HAVE_CONFIG_H
@@ -143,7 +127,7 @@ xdg_dir_time_list_free (XdgDirTimeList *list)
static int
xdg_mime_init_from_directory (const char *directory,
- void *user_data)
+ void *user_data __attribute__((__unused__)))
{
char *file_name;
struct stat st;
@@ -835,13 +819,16 @@ xdg_mime_is_super_type (const char *mime)
int
_xdg_mime_mime_type_subclass (const char *mime,
- const char *base)
+ const char *base,
+ const char ***seen)
{
- const char *umime, *ubase;
- const char **parents;
+ const char *umime, *ubase, *parent;
+ const char **parents, **first_seen = NULL, **new_seen;
+
+ int i, ret = 0;
if (_caches)
- return _xdg_mime_cache_mime_type_subclass (mime, base);
+ return _xdg_mime_cache_mime_type_subclass (mime, base, NULL);
umime = _xdg_mime_unalias_mime_type (mime);
ubase = _xdg_mime_unalias_mime_type (base);
@@ -864,15 +851,42 @@ _xdg_mime_mime_type_subclass (const char *mime,
if (strcmp (ubase, "application/octet-stream") == 0 &&
strncmp (umime, "inode/", 6) != 0)
return 1;
-
+
+ if (!seen)
+ {
+ first_seen = calloc (1, sizeof (char *));
+ seen = &first_seen;
+ }
+
parents = _xdg_mime_parent_list_lookup (parent_list, umime);
for (; parents && *parents; parents++)
{
- if (_xdg_mime_mime_type_subclass (*parents, ubase))
- return 1;
+ parent = *parents;
+
+ /* Detect and avoid buggy circular relationships */
+ for (i = 0; (*seen)[i] != NULL; i++)
+ if (parent == (*seen)[i])
+ goto next_parent;
+ new_seen = realloc (*seen, (i + 2) * sizeof (char *));
+ if (!new_seen)
+ goto done;
+ new_seen[i] = parent;
+ new_seen[i + 1] = NULL;
+ *seen = new_seen;
+
+ if (_xdg_mime_mime_type_subclass (parent, ubase, seen))
+ {
+ ret = 1;
+ goto done;
+ }
+
+ next_parent:
+ continue;
}
- return 0;
+done:
+ free (first_seen);
+ return ret;
}
int
@@ -881,7 +895,7 @@ xdg_mime_mime_type_subclass (const char *mime,
{
xdg_mime_init ();
- return _xdg_mime_mime_type_subclass (mime, base);
+ return _xdg_mime_mime_type_subclass (mime, base, NULL);
}
char **
@@ -891,6 +905,8 @@ xdg_mime_list_mime_parents (const char *mime)
char **result;
int i, n;
+ xdg_mime_init ();
+
if (_caches)
return _xdg_mime_cache_list_mime_parents (mime);
diff --git a/gio/xdgmime/xdgmime.h b/gio/xdgmime/xdgmime.h
index c5909967f..093b12aa3 100644
--- a/gio/xdgmime/xdgmime.h
+++ b/gio/xdgmime/xdgmime.h
@@ -6,23 +6,7 @@
* Copyright (C) 2003 Red Hat, Inc.
* Copyright (C) 2003 Jonathan Blandford <jrb@alum.mit.edu>
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
@@ -125,7 +109,8 @@ void xdg_mime_set_dirs (const char * const *dirs);
int _xdg_mime_mime_type_equal (const char *mime_a,
const char *mime_b);
int _xdg_mime_mime_type_subclass (const char *mime,
- const char *base);
+ const char *base,
+ const char ***seen);
const char *_xdg_mime_unalias_mime_type (const char *mime);
diff --git a/gio/xdgmime/xdgmimealias.c b/gio/xdgmime/xdgmimealias.c
index 0fc51f94c..857d274a3 100644
--- a/gio/xdgmime/xdgmimealias.c
+++ b/gio/xdgmime/xdgmimealias.c
@@ -6,23 +6,7 @@
* Copyright (C) 2004 Red Hat, Inc.
* Copyright (C) 2004 Matthias Clasen <mclasen@redhat.com>
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifdef HAVE_CONFIG_H
diff --git a/gio/xdgmime/xdgmimealias.h b/gio/xdgmime/xdgmimealias.h
index 6e0cfff3b..05df00991 100644
--- a/gio/xdgmime/xdgmimealias.h
+++ b/gio/xdgmime/xdgmimealias.h
@@ -6,23 +6,7 @@
* Copyright (C) 2004 Red Hat, Inc.
* Copyright (C) 200 Matthias Clasen <mclasen@redhat.com>
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifndef __XDG_MIME_ALIAS_H__
diff --git a/gio/xdgmime/xdgmimecache.c b/gio/xdgmime/xdgmimecache.c
index 234e4b467..f7eddcbe6 100644
--- a/gio/xdgmime/xdgmimecache.c
+++ b/gio/xdgmime/xdgmimecache.c
@@ -5,23 +5,7 @@
*
* Copyright (C) 2005 Matthias Clasen <mclasen@redhat.com>
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifdef HAVE_CONFIG_H
@@ -92,6 +76,13 @@ struct _XdgMimeCache
#define GET_UINT16(cache,offset) (ntohs(*(xdg_uint16_t*)((cache) + (offset))))
#define GET_UINT32(cache,offset) (ntohl(*(xdg_uint32_t*)((cache) + (offset))))
+// Validates that it is safe to call GET_UINT32() at
+// cache->buffer[offset + (n * record_size)]. Ensures that offset is aligned to
+// a 4-byte boundary, and that offset+(n*record_size) does not overflow.
+// `record_size` values are known constants and never 0.
+#define OUT_OF_BOUNDS(offset,n,record_size,max) \
+ (((offset) & 0x3) || (offset) > (max) || (n) > ((max) - (offset)) / (record_size))
+
XdgMimeCache *
_xdg_mime_cache_ref (XdgMimeCache *cache)
{
@@ -132,7 +123,8 @@ _xdg_mime_cache_new_from_file (const char *file_name)
if (fd < 0)
return NULL;
- if (fstat (fd, &st) < 0 || st.st_size < 4)
+ // A valid cache must be at least 40 bytes for the header.
+ if (fstat (fd, &st) < 0 || st.st_size < 40)
goto done;
buffer = (char *) mmap (NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
@@ -225,6 +217,8 @@ cache_magic_matchlet_compare (XdgMimeCache *cache,
{
xdg_uint32_t n_children = GET_UINT32 (cache->buffer, offset + 24);
xdg_uint32_t child_offset = GET_UINT32 (cache->buffer, offset + 28);
+ if (OUT_OF_BOUNDS (child_offset, n_children, 32, cache->size))
+ return FALSE;
xdg_uint32_t i;
@@ -255,6 +249,8 @@ cache_magic_compare_to_data (XdgMimeCache *cache,
xdg_uint32_t mimetype_offset = GET_UINT32 (cache->buffer, offset + 4);
xdg_uint32_t n_matchlets = GET_UINT32 (cache->buffer, offset + 8);
xdg_uint32_t matchlet_offset = GET_UINT32 (cache->buffer, offset + 12);
+ if (OUT_OF_BOUNDS (matchlet_offset, n_matchlets, 32, cache->size))
+ return NULL;
xdg_uint32_t i;
@@ -287,8 +283,13 @@ cache_magic_lookup_data (XdgMimeCache *cache,
*prio = 0;
list_offset = GET_UINT32 (cache->buffer, 24);
+ if (OUT_OF_BOUNDS (list_offset, 1, 12, cache->size))
+ return NULL;
+
n_entries = GET_UINT32 (cache->buffer, list_offset);
offset = GET_UINT32 (cache->buffer, list_offset + 8);
+ if (OUT_OF_BOUNDS (offset, n_entries, 16, cache->size))
+ return NULL;
for (j = 0; j < n_entries; j++)
{
@@ -320,7 +321,12 @@ cache_alias_lookup (const char *alias)
continue;
list_offset = GET_UINT32 (cache->buffer, 4);
+ if (OUT_OF_BOUNDS (list_offset, 1, 4, cache->size))
+ continue;
+
n_entries = GET_UINT32 (cache->buffer, list_offset);
+ if (OUT_OF_BOUNDS (list_offset + 4, n_entries, 8, cache->size))
+ continue;
min = 0;
max = n_entries - 1;
@@ -361,6 +367,8 @@ cache_glob_lookup_literal (const char *file_name,
const char *ptr;
int i, min, max, mid, cmp;
+ assert (n_mime_types > 0);
+
for (i = 0; _caches[i]; i++)
{
XdgMimeCache *cache = _caches[i];
@@ -372,7 +380,12 @@ cache_glob_lookup_literal (const char *file_name,
continue;
list_offset = GET_UINT32 (cache->buffer, 12);
+ if (OUT_OF_BOUNDS (list_offset, 1, 4, cache->size))
+ continue;
+
n_entries = GET_UINT32 (cache->buffer, list_offset);
+ if (OUT_OF_BOUNDS (list_offset + 4, n_entries, 12, cache->size))
+ continue;
min = 0;
max = n_entries - 1;
@@ -433,7 +446,12 @@ cache_glob_lookup_fnmatch (const char *file_name,
continue;
list_offset = GET_UINT32 (cache->buffer, 20);
+ if (OUT_OF_BOUNDS (list_offset, 1, 4, cache->size))
+ continue;
+
n_entries = GET_UINT32 (cache->buffer, list_offset);
+ if (OUT_OF_BOUNDS (list_offset + 4, n_entries, 12, cache->size))
+ continue;
for (j = 0; j < n_entries && n < n_mime_types; j++)
{
@@ -504,6 +522,8 @@ cache_glob_node_lookup_suffix (XdgMimeCache *cache,
n = 0;
n_children = GET_UINT32 (cache->buffer, offset + 12 * mid + 4);
child_offset = GET_UINT32 (cache->buffer, offset + 12 * mid + 8);
+ if (OUT_OF_BOUNDS (child_offset, n_children, 12, cache->size))
+ continue;
if (len > 0)
{
@@ -565,8 +585,13 @@ cache_glob_lookup_suffix (const char *file_name,
continue;
list_offset = GET_UINT32 (cache->buffer, 16);
+ if (OUT_OF_BOUNDS (list_offset, 1, 8, cache->size))
+ continue;
+
n_entries = GET_UINT32 (cache->buffer, list_offset);
offset = GET_UINT32 (cache->buffer, list_offset + 4);
+ if (OUT_OF_BOUNDS (offset, n_entries, 12, cache->size))
+ continue;
n += cache_glob_node_lookup_suffix (cache,
n_entries, offset,
@@ -707,6 +732,9 @@ _xdg_mime_cache_get_max_buffer_extents (void)
continue;
offset = GET_UINT32 (cache->buffer, 24);
+ if (OUT_OF_BOUNDS (offset, 1, 8, cache->size))
+ continue;
+
max_extent = MAX (max_extent, GET_UINT32 (cache->buffer, offset + 4));
}
@@ -751,8 +779,8 @@ cache_get_mime_type_for_data (const void *data,
/* Pick glob-result R where mime_type inherits from R */
for (n = 0; n < n_mime_types; n++)
{
- if (mime_types[n] && _xdg_mime_cache_mime_type_subclass(mime_types[n], mime_type))
- return mime_types[n];
+ if (mime_types[n] && _xdg_mime_cache_mime_type_subclass (mime_types[n], mime_type, NULL))
+ return mime_types[n];
}
if (n == 0)
{
@@ -901,13 +929,15 @@ is_super_type (const char *mime)
int
_xdg_mime_cache_mime_type_subclass (const char *mime,
- const char *base)
+ const char *base,
+ const char ***seen)
{
- const char *umime, *ubase;
+ const char *umime, *ubase, *parent;
+ const char **first_seen = NULL, **new_seen;
xdg_uint32_t j;
- int i, min, max, med, cmp;
-
+ int i, k, min, max, med, cmp, ret = 0;
+
umime = _xdg_mime_cache_unalias_mime_type (mime);
ubase = _xdg_mime_cache_unalias_mime_type (base);
@@ -932,7 +962,13 @@ _xdg_mime_cache_mime_type_subclass (const char *mime,
if (strcmp (ubase, "application/octet-stream") == 0 &&
strncmp (umime, "inode/", 6) != 0)
return 1;
-
+
+ if (!seen)
+ {
+ first_seen = calloc (1, sizeof (char *));
+ seen = &first_seen;
+ }
+
for (i = 0; _caches[i]; i++)
{
XdgMimeCache *cache = _caches[i];
@@ -944,7 +980,12 @@ _xdg_mime_cache_mime_type_subclass (const char *mime,
continue;
list_offset = GET_UINT32 (cache->buffer, 8);
+ if (OUT_OF_BOUNDS (list_offset, 1, 4, cache->size))
+ continue;
+
n_entries = GET_UINT32 (cache->buffer, list_offset);
+ if (OUT_OF_BOUNDS (list_offset + 4, n_entries, 8, cache->size))
+ continue;
min = 0;
max = n_entries - 1;
@@ -966,10 +1007,27 @@ _xdg_mime_cache_mime_type_subclass (const char *mime,
for (j = 0; j < n_parents; j++)
{
parent_offset = GET_UINT32 (cache->buffer, offset + 4 + 4 * j);
- if (strcmp (cache->buffer + parent_offset, mime) != 0 &&
- strcmp (cache->buffer + parent_offset, umime) != 0 &&
- _xdg_mime_cache_mime_type_subclass (cache->buffer + parent_offset, ubase))
- return 1;
+ parent = cache->buffer + parent_offset;
+
+ /* Detect and avoid buggy circular relationships */
+ for (k = 0; (*seen)[k] != NULL; k++)
+ if (parent == (*seen)[k])
+ goto next_parent;
+ new_seen = realloc (*seen, (k + 2) * sizeof (char *));
+ if (!new_seen)
+ goto done;
+ new_seen[k] = parent;
+ new_seen[k + 1] = NULL;
+ *seen = new_seen;
+
+ if (_xdg_mime_cache_mime_type_subclass (parent, ubase, seen))
+ {
+ ret = 1;
+ goto done;
+ }
+
+ next_parent:
+ continue;
}
break;
@@ -977,7 +1035,9 @@ _xdg_mime_cache_mime_type_subclass (const char *mime,
}
}
- return 0;
+done:
+ free (first_seen);
+ return ret;
}
const char *
@@ -1014,7 +1074,12 @@ _xdg_mime_cache_list_mime_parents (const char *mime)
continue;
list_offset = GET_UINT32 (cache->buffer, 8);
+ if (OUT_OF_BOUNDS (list_offset, 1, 4, cache->size))
+ continue;
+
n_entries = GET_UINT32 (cache->buffer, list_offset);
+ if (OUT_OF_BOUNDS (list_offset + 4, n_entries, 8, cache->size))
+ continue;
for (j = 0; j < n_entries; j++)
{
@@ -1056,7 +1121,7 @@ _xdg_mime_cache_list_mime_parents (const char *mime)
}
static const char *
-cache_lookup_icon (const char *mime, int header)
+cache_lookup_icon (const char *mime, size_t header)
{
const char *ptr;
int i, min, max, mid, cmp;
@@ -1071,8 +1136,16 @@ cache_lookup_icon (const char *mime, int header)
if (cache->buffer == NULL)
continue;
+ if (OUT_OF_BOUNDS (header, 1, 4, cache->size))
+ continue;
+
list_offset = GET_UINT32 (cache->buffer, header);
+ if (OUT_OF_BOUNDS (list_offset, 1, 4, cache->size))
+ continue;
+
n_entries = GET_UINT32 (cache->buffer, list_offset);
+ if (OUT_OF_BOUNDS (list_offset + 4, n_entries, 8, cache->size))
+ continue;
min = 0;
max = n_entries - 1;
@@ -1127,6 +1200,9 @@ dump_glob_node (XdgMimeCache *cache,
mime_offset = GET_UINT32 (cache->buffer, offset + 4);
n_children = GET_UINT32 (cache->buffer, offset + 8);
child_offset = GET_UINT32 (cache->buffer, offset + 12);
+ if (OUT_OF_BOUNDS (child_offset, n_children, 20, cache->size))
+ return;
+
for (i = 0; i < depth; i++)
printf (" ");
printf ("%c", character);
@@ -1151,12 +1227,18 @@ _xdg_mime_cache_glob_dump (void)
xdg_uint32_t n_entries;
xdg_uint32_t offset;
- if (cache->buffer == NULL)
- continue;
+ if (cache->buffer == NULL)
+ continue;
list_offset = GET_UINT32 (cache->buffer, 16);
+ if (OUT_OF_BOUNDS (list_offset, 1, 8, cache->size))
+ return;
+
n_entries = GET_UINT32 (cache->buffer, list_offset);
offset = GET_UINT32 (cache->buffer, list_offset + 4);
+ if (OUT_OF_BOUNDS (offset, n_entries, 20, cache->size))
+ return;
+
for (j = 0; j < n_entries; j++)
dump_glob_node (cache, offset + 20 * j, 0);
}
diff --git a/gio/xdgmime/xdgmimecache.h b/gio/xdgmime/xdgmimecache.h
index df25b2a57..de7e5313b 100644
--- a/gio/xdgmime/xdgmimecache.h
+++ b/gio/xdgmime/xdgmimecache.h
@@ -5,23 +5,7 @@
*
* Copyright (C) 2005 Matthias Clasen <mclasen@redhat.com>
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifndef __XDG_MIME_CACHE_H__
@@ -70,7 +54,8 @@ int _xdg_mime_cache_mime_type_equal (const char *mime_a,
int _xdg_mime_cache_media_type_equal (const char *mime_a,
const char *mime_b);
int _xdg_mime_cache_mime_type_subclass (const char *mime_a,
- const char *mime_b);
+ const char *mime_b,
+ const char ***seen);
char **_xdg_mime_cache_list_mime_parents (const char *mime);
const char *_xdg_mime_cache_unalias_mime_type (const char *mime);
int _xdg_mime_cache_get_max_buffer_extents (void);
diff --git a/gio/xdgmime/xdgmimeglob.c b/gio/xdgmime/xdgmimeglob.c
index d68435c89..e84580873 100644
--- a/gio/xdgmime/xdgmimeglob.c
+++ b/gio/xdgmime/xdgmimeglob.c
@@ -6,23 +6,7 @@
* Copyright (C) 2003 Red Hat, Inc.
* Copyright (C) 2003 Jonathan Blandford <jrb@alum.mit.edu>
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifdef HAVE_CONFIG_H
diff --git a/gio/xdgmime/xdgmimeglob.h b/gio/xdgmime/xdgmimeglob.h
index 8b1fa3ad4..7ecee9a8f 100644
--- a/gio/xdgmime/xdgmimeglob.h
+++ b/gio/xdgmime/xdgmimeglob.h
@@ -6,23 +6,7 @@
* Copyright (C) 2003 Red Hat, Inc.
* Copyright (C) 2003 Jonathan Blandford <jrb@alum.mit.edu>
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifndef __XDG_MIME_GLOB_H__
diff --git a/gio/xdgmime/xdgmimeicon.c b/gio/xdgmime/xdgmimeicon.c
index feb6c869c..4aaa564f1 100644
--- a/gio/xdgmime/xdgmimeicon.c
+++ b/gio/xdgmime/xdgmimeicon.c
@@ -5,23 +5,7 @@
*
* Copyright (C) 2008 Red Hat, Inc.
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifdef HAVE_CONFIG_H
diff --git a/gio/xdgmime/xdgmimeicon.h b/gio/xdgmime/xdgmimeicon.h
index c416b3c5e..f7244305a 100644
--- a/gio/xdgmime/xdgmimeicon.h
+++ b/gio/xdgmime/xdgmimeicon.h
@@ -5,23 +5,7 @@
*
* Copyright (C) 2008 Red Hat, Inc.
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifndef __XDG_MIME_ICON_H__
diff --git a/gio/xdgmime/xdgmimeint.c b/gio/xdgmime/xdgmimeint.c
index 5e4513c50..f7ab067db 100644
--- a/gio/xdgmime/xdgmimeint.c
+++ b/gio/xdgmime/xdgmimeint.c
@@ -6,23 +6,7 @@
* Copyright (C) 2003 Red Hat, Inc.
* Copyright (C) 2003 Jonathan Blandford <jrb@alum.mit.edu>
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifdef HAVE_CONFIG_H
@@ -131,7 +115,7 @@ _xdg_ucs4_to_lower (xdg_unichar_t source)
}
int
-_xdg_utf8_validate (const char *source)
+_xdg_utf8_validate (const char *source __attribute__((unused)))
{
/* FIXME: actually write */
return TRUE;
diff --git a/gio/xdgmime/xdgmimeint.h b/gio/xdgmime/xdgmimeint.h
index 9a8256d17..041c4f489 100644
--- a/gio/xdgmime/xdgmimeint.h
+++ b/gio/xdgmime/xdgmimeint.h
@@ -6,23 +6,7 @@
* Copyright (C) 2003 Red Hat, Inc.
* Copyright (C) 2003 Jonathan Blandford <jrb@alum.mit.edu>
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifndef __XDG_MIME_INT_H__
diff --git a/gio/xdgmime/xdgmimemagic.c b/gio/xdgmime/xdgmimemagic.c
index dcee0fd59..98a1274c8 100644
--- a/gio/xdgmime/xdgmimemagic.c
+++ b/gio/xdgmime/xdgmimemagic.c
@@ -6,23 +6,7 @@
* Copyright (C) 2003 Red Hat, Inc.
* Copyright (C) 2003 Jonathan Blandford <jrb@alum.mit.edu>
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifdef HAVE_CONFIG_H
@@ -798,6 +782,11 @@ _xdg_mime_magic_read_magic_file (XdgMimeMagic *mime_magic,
break;
case XDG_MIME_MAGIC_ERROR:
state = _xdg_mime_magic_parse_error (magic_file);
+
+ /* After a parse error we can only be at EOF or reset to starting a
+ * new section. */
+ assert (state == XDG_MIME_MAGIC_EOF || state == XDG_MIME_MAGIC_SECTION);
+
break;
case XDG_MIME_MAGIC_EOF:
default:
diff --git a/gio/xdgmime/xdgmimemagic.h b/gio/xdgmime/xdgmimemagic.h
index eb06a81f8..81125c2a0 100644
--- a/gio/xdgmime/xdgmimemagic.h
+++ b/gio/xdgmime/xdgmimemagic.h
@@ -6,23 +6,7 @@
* Copyright (C) 2003 Red Hat, Inc.
* Copyright (C) 2003 Jonathan Blandford <jrb@alum.mit.edu>
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifndef __XDG_MIME_MAGIC_H__
diff --git a/gio/xdgmime/xdgmimeparent.c b/gio/xdgmime/xdgmimeparent.c
index 89b48fc16..e03a78f6c 100644
--- a/gio/xdgmime/xdgmimeparent.c
+++ b/gio/xdgmime/xdgmimeparent.c
@@ -6,23 +6,7 @@
* Copyright (C) 2004 Red Hat, Inc.
* Copyright (C) 2004 Matthias Clasen <mclasen@redhat.com>
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifdef HAVE_CONFIG_H
diff --git a/gio/xdgmime/xdgmimeparent.h b/gio/xdgmime/xdgmimeparent.h
index 29f43bc1f..b656e38cc 100644
--- a/gio/xdgmime/xdgmimeparent.h
+++ b/gio/xdgmime/xdgmimeparent.h
@@ -6,23 +6,7 @@
* Copyright (C) 2004 Red Hat, Inc.
* Copyright (C) 200 Matthias Clasen <mclasen@redhat.com>
*
- * Licensed under the Academic Free License version 2.0
- * Or under the following terms:
- *
- * This library 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.
- *
- * This library 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 this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * SPDX-License-Identifier: LGPL-2.1-or-later or AFL-2.0
*/
#ifndef __XDG_MIME_PARENT_H__
diff --git a/glib.doap b/glib.doap
index fec140168..32b217011 100644
--- a/glib.doap
+++ b/glib.doap
@@ -10,13 +10,13 @@
<shortdesc xml:lang="en">Low level core library</shortdesc>
- <description xml:lang="en">GLib is the low-level core library that forms the basis for projects such as GTK+ and GNOME. It provides data structure handling for C, portability wrappers, and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system.</description>
+ <description xml:lang="en">GLib is the low-level core library that forms the basis for projects such as GTK and GNOME. It provides data structure handling for C, portability wrappers, and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system.</description>
<homepage rdf:resource="http://www.gtk.org" />
<license rdf:resource="http://usefulinc.com/doap/licenses/lgpl" />
<bug-database rdf:resource="https://gitlab.gnome.org/GNOME/glib/issues/new"/>
<download-page rdf:resource="http://download.gnome.org/sources/glib/" />
- <mailing-list rdf:resource="https://discourse.gnome.org/tags/glib/" />
+ <developer-forum rdf:resource="https://discourse.gnome.org/tags/glib/" />
<category rdf:resource="http://api.gnome.org/doap-extensions#core" />
<programming-language>C</programming-language>
@@ -114,7 +114,7 @@
<foaf:Person>
<foaf:name>Antoine Jacoutot</foaf:name>
<foaf:mbox rdf:resource="mailto:ajacoutot@gnome.org"/>
- <gnome:userid>ajacoutot</gnome:userid>
+<!-- <gnome:userid>ajacoutot</gnome:userid> -->
</foaf:Person>
</maintainer>
diff --git a/glib/deprecated/gthread-deprecated.c b/glib/deprecated/gthread-deprecated.c
index eb392fd8b..49bcf4fca 100644
--- a/glib/deprecated/gthread-deprecated.c
+++ b/glib/deprecated/gthread-deprecated.c
@@ -376,7 +376,7 @@ g_thread_create_full (GThreadFunc func,
GThread *thread;
thread = g_thread_new_internal (NULL, g_deprecated_thread_proxy,
- func, data, stack_size, NULL, error);
+ func, data, stack_size, error);
if (thread && !joinable)
{
diff --git a/glib/docs.c b/glib/docs.c
index a8e31fb87..450616eb9 100644
--- a/glib/docs.c
+++ b/glib/docs.c
@@ -80,132 +80,221 @@
/**
* gpointer:
*
- * An untyped pointer.
- * #gpointer looks better and is easier to use than void*.
+ * An untyped pointer, exactly equivalent to `void *`.
+ *
+ * The standard C `void *` type should usually be preferred in
+ * new code, but `gpointer` can be used in contexts where a type name
+ * must be a single word, such as in the g_type_name() of %G_TYPE_POINTER
+ * or when generating a family of function names for multiple types
+ * using macros.
*/
/**
* gconstpointer:
*
- * An untyped pointer to constant data.
+ * An untyped pointer to constant data, exactly equivalent to `const void *`.
+ *
* The data pointed to should not be changed.
*
* This is typically used in function prototypes to indicate
* that the data pointed to will not be altered by the function.
+ *
+ * The standard C `const void *` type should usually be preferred in
+ * new code, but `gconstpointer` can be used in contexts where a type name
+ * must be a single word.
*/
/**
* gchar:
*
- * Corresponds to the standard C char type.
+ * Equivalent to the standard C `char` type.
+ *
+ * This type only exists for symmetry with `guchar`.
+ * The standard C `char` type should be preferred in new code.
*/
/**
* guchar:
*
- * Corresponds to the standard C unsigned char type.
+ * Equivalent to the standard C `unsigned char` type.
+ *
+ * The standard C `unsigned char` type should usually be preferred in
+ * new code, but `guchar` can be used in contexts where a type name
+ * must be a single word, such as in the g_type_name() of %G_TYPE_UCHAR
+ * or when generating a family of function names for multiple types
+ * using macros.
*/
/**
* gint:
*
- * Corresponds to the standard C int type.
- * Values of this type can range from %G_MININT to %G_MAXINT.
+ * Equivalent to the standard C `int` type.
+ *
+ * Values of this type can range from `INT_MIN` to `INT_MAX`,
+ * or equivalently from %G_MININT to %G_MAXINT.
+ *
+ * This type only exists for symmetry with `guint`.
+ * The standard C `int` type should be preferred in new code.
*/
/**
* G_MININT:
*
* The minimum value which can be held in a #gint.
+ *
+ * This is the same as standard C `INT_MIN`, which is available since C99
+ * and should be preferred in new code.
*/
/**
* G_MAXINT:
*
* The maximum value which can be held in a #gint.
+ *
+ * This is the same as standard C `INT_MAX`, which is available since C99
+ * and should be preferred in new code.
*/
/**
* guint:
*
- * Corresponds to the standard C unsigned int type.
- * Values of this type can range from 0 to %G_MAXUINT.
+ * Equivalent to the standard C `unsigned int` type.
+ *
+ * Values of this type can range from 0 to `UINT_MAX`,
+ * or equivalently 0 to %G_MAXUINT.
+ *
+ * The standard C `unsigned int` type should usually be preferred in
+ * new code, but `guint` can be used in contexts where a type name
+ * must be a single word, such as in the g_type_name() of %G_TYPE_UINT
+ * or when generating a family of function names for multiple types
+ * using macros.
*/
/**
* G_MAXUINT:
*
* The maximum value which can be held in a #guint.
+ *
+ * This is the same as standard C `UINT_MAX`, which is available since C99
+ * and should be preferred in new code.
*/
/**
* gshort:
*
- * Corresponds to the standard C short type.
- * Values of this type can range from %G_MINSHORT to %G_MAXSHORT.
+ * Equivalent to the standard C `short` type.
+ *
+ * Values of this type can range from `SHRT_MIN` to `SHRT_MAX`,
+ * or equivalently %G_MINSHORT to %G_MAXSHORT.
+ *
+ * This type only exists for symmetry with `gushort`.
+ * The standard C `short` type should be preferred in new code.
*/
/**
* G_MINSHORT:
*
* The minimum value which can be held in a #gshort.
+ *
+ * This is the same as standard C `SHRT_MIN`, which is available since C99
+ * and should be preferred in new code.
*/
/**
* G_MAXSHORT:
*
* The maximum value which can be held in a #gshort.
+ *
+ * This is the same as standard C `SHRT_MAX`, which is available since C99
+ * and should be preferred in new code.
*/
/**
* gushort:
*
- * Corresponds to the standard C unsigned short type.
- * Values of this type can range from 0 to %G_MAXUSHORT.
+ * Equivalent to the standard C `unsigned short` type.
+ *
+ * Values of this type can range from 0 to `USHRT_MAX`,
+ * or equivalently from 0 to %G_MAXUSHORT.
+ *
+ * The standard C `unsigned short` type should usually be preferred in
+ * new code, but `gushort` can be used in contexts where a type name
+ * must be a single word, such as when generating a family of function
+ * names for multiple types using macros.
*/
/**
* G_MAXUSHORT:
*
* The maximum value which can be held in a #gushort.
+ *
+ * This is the same as standard C `USHRT_MAX`, which is available since C99
+ * and should be preferred in new code.
*/
/**
* glong:
*
- * Corresponds to the standard C long type.
- * Values of this type can range from %G_MINLONG to %G_MAXLONG.
+ * Equivalent to the standard C `long` type.
+ *
+ * Values of this type can range from `LONG_MIN` to `LONG_MAX`,
+ * or equivalently %G_MINLONG to %G_MAXLONG.
+ *
+ * This type only exists for symmetry with `gulong`.
+ * The standard C `long` type should be preferred in new code.
*/
/**
* G_MINLONG:
*
* The minimum value which can be held in a #glong.
+ *
+ * This is the same as standard C `LONG_MIN`, which is available since C99
+ * and should be preferred in new code.
*/
/**
* G_MAXLONG:
*
* The maximum value which can be held in a #glong.
+ *
+ * This is the same as standard C `ULONG_MAX`, which is available since C99
+ * and should be preferred in new code.
*/
/**
* gulong:
*
- * Corresponds to the standard C unsigned long type.
+ * Equivalent to the standard C `unsigned long` type.
+ *
* Values of this type can range from 0 to %G_MAXULONG.
+ *
+ * The standard C `unsigned long` type should usually be preferred in
+ * new code, but `gulong` can be used in contexts where a type name
+ * must be a single word, such as in the g_type_name() of %G_TYPE_ULONG
+ * or when generating a family of function names for multiple types
+ * using macros.
*/
/**
* G_MAXULONG:
*
* The maximum value which can be held in a #gulong.
+ *
+ * This is the same as standard C `ULONG_MAX`, which is available since C99
+ * and should be preferred in new code.
*/
/**
* gint8:
*
- * A signed integer guaranteed to be 8 bits on all platforms.
+ * A signed integer guaranteed to be 8 bits on all platforms,
+ * similar to the standard C `int8_t`.
+ *
+ * The `int8_t` type should be preferred in new code, unless
+ * consistency with pre-existing APIs requires use of `gint8`
+ * (see #gsize for more details).
+ *
* Values of this type can range from %G_MININT8 (= -128) to
* %G_MAXINT8 (= 127).
*/
@@ -215,13 +304,22 @@
*
* The maximum value which can be held in a #gint8.
*
+ * This is the same as standard C `INT8_MAX`, which should be
+ * preferred in new code.
+ *
* Since: 2.4
*/
/**
* guint8:
*
- * An unsigned integer guaranteed to be 8 bits on all platforms.
+ * An unsigned integer guaranteed to be 8 bits on all platforms,
+ * similar to the standard C `uint8_t`.
+ *
+ * The `uint8_t` type should be preferred in new code, unless
+ * consistency with pre-existing APIs requires use of `guint8`
+ * (see #gsize for more details).
+ *
* Values of this type can range from 0 to %G_MAXUINT8 (= 255).
*/
@@ -230,13 +328,22 @@
*
* The maximum value which can be held in a #guint8.
*
+ * This is the same as standard C `UINT8_MAX`, which should be
+ * preferred in new code.
+ *
* Since: 2.4
*/
/**
* gint16:
*
- * A signed integer guaranteed to be 16 bits on all platforms.
+ * A signed integer guaranteed to be 16 bits on all platforms,
+ * similar to the standard C `int16_t`.
+ *
+ * The `int16_t` type should be preferred in new code, unless
+ * consistency with pre-existing APIs requires use of `gint16`
+ * (see #gsize for more details).
+ *
* Values of this type can range from %G_MININT16 (= -32,768) to
* %G_MAXINT16 (= 32,767).
*
@@ -249,6 +356,9 @@
*
* The maximum value which can be held in a #gint16.
*
+ * This is the same as standard C `INT16_MAX`, which should be
+ * preferred in new code.
+ *
* Since: 2.4
*/
@@ -267,6 +377,10 @@
* g_print ("%#" G_GINT16_MODIFIER "x", value);
* ]|
*
+ * This is not necessarily the correct modifier for printing and scanning
+ * `int16_t` values, even though the in-memory representation is the same.
+ * Standard C macros like `PRId16` and `SCNd16` should be used for `int16_t`.
+ *
* Since: 2.4
*/
@@ -284,13 +398,23 @@
* sscanf ("42", "%" G_GINT16_FORMAT, &in)
* out = in * 1000;
* g_print ("%" G_GINT32_FORMAT, out);
+ *
+ * This is not necessarily the correct format for printing and scanning
+ * `int16_t` values, even though the in-memory representation is the same.
+ * Standard C macros like `PRId16` and `SCNd16` should be used for `int16_t`.
* ]|
*/
/**
* guint16:
*
- * An unsigned integer guaranteed to be 16 bits on all platforms.
+ * An unsigned integer guaranteed to be 16 bits on all platforms,
+ * similar to the standard C `uint16_t`.
+ *
+ * The `uint16_t` type should be preferred in new code, unless
+ * consistency with pre-existing APIs requires use of `guint16`
+ * (see #gsize for more details).
+ *
* Values of this type can range from 0 to %G_MAXUINT16 (= 65,535).
*
* To print or scan values of this type, use
@@ -302,6 +426,9 @@
*
* The maximum value which can be held in a #guint16.
*
+ * This is the same as standard C `UINT16_MAX`, which should be
+ * preferred in new code.
+ *
* Since: 2.4
*/
@@ -310,17 +437,34 @@
*
* This is the platform dependent conversion specifier for scanning
* and printing values of type #guint16. See also %G_GINT16_FORMAT
+ *
+ * This is not necessarily the correct modifier for printing and scanning
+ * `uint16_t` values, even though the in-memory representation is the same.
+ * Standard C macros like `PRIu16` and `SCNu16` should be used for `uint16_t`.
*/
/**
* gint32:
*
* A signed integer guaranteed to be 32 bits on all platforms.
+ *
+ * The `int32_t` type should be preferred in new code, unless
+ * consistency with pre-existing APIs requires use of `gint16`
+ * (see #gsize for more details).
+ *
* Values of this type can range from %G_MININT32 (= -2,147,483,648)
* to %G_MAXINT32 (= 2,147,483,647).
*
* To print or scan values of this type, use
* %G_GINT32_MODIFIER and/or %G_GINT32_FORMAT.
+ *
+ * Note that on platforms with more than one 32-bit standard integer type,
+ * `gint32` and `int32_t` are not necessarily implemented by the same
+ * 32-bit integer type.
+ * For example, on an ILP32 platform where `int` and `long` are both 32-bit,
+ * it might be the case that one of these types is `int` and the other
+ * is `long`.
+ * See #gsize for more details of what this implies.
*/
/**
@@ -328,6 +472,9 @@
*
* The maximum value which can be held in a #gint32.
*
+ * This is the same as standard C `INT32_MAX`, which should be
+ * preferred in new code.
+ *
* Since: 2.4
*/
@@ -338,6 +485,10 @@
* for scanning and printing values of type #gint32 or #guint32. It
* is a string literal. See also %G_GINT16_MODIFIER.
*
+ * This is not necessarily the correct modifier for printing and scanning
+ * `int32_t` values, even though the in-memory representation is the same.
+ * Standard C macros like `PRId32` and `SCNd32` should be used for `int32_t`.
+ *
* Since: 2.4
*/
@@ -346,16 +497,31 @@
*
* This is the platform dependent conversion specifier for scanning
* and printing values of type #gint32. See also %G_GINT16_FORMAT.
+ *
+ * This is not necessarily the correct modifier for printing and scanning
+ * `int32_t` values, even though the in-memory representation is the same.
+ * Standard C macros like `PRId32` and `SCNd32` should be used for `int32_t`.
*/
/**
* guint32:
*
- * An unsigned integer guaranteed to be 32 bits on all platforms.
+ * An unsigned integer guaranteed to be 32 bits on all platforms,
+ * similar to the standard C `uint32_t`.
+ *
+ * The `uint32_t` type should be preferred in new code, unless
+ * consistency with pre-existing APIs requires use of `guint32`
+ * (see #gsize for more details).
+ *
* Values of this type can range from 0 to %G_MAXUINT32 (= 4,294,967,295).
*
* To print or scan values of this type, use
* %G_GINT32_MODIFIER and/or %G_GUINT32_FORMAT.
+ *
+ * Note that on platforms with more than one 32-bit standard integer type,
+ * `guint32` and `uint32_t` are not necessarily implemented by the same
+ * 32-bit integer type.
+ * See #gsize for more details of what this implies.
*/
/**
@@ -363,6 +529,9 @@
*
* The maximum value which can be held in a #guint32.
*
+ * This is the same as standard C `UINT32_MAX`, which should be
+ * preferred in new code.
+ *
* Since: 2.4
*/
@@ -371,18 +540,36 @@
*
* This is the platform dependent conversion specifier for scanning
* and printing values of type #guint32. See also %G_GINT16_FORMAT.
+ *
+ * This is not necessarily the correct modifier for printing and scanning
+ * `uint32_t` values, even though the in-memory representation is the same.
+ * Standard C macros like `PRIu32` and `SCNu32` should be used for `uint32_t`.
*/
/**
* gint64:
*
- * A signed integer guaranteed to be 64 bits on all platforms.
+ * A signed integer guaranteed to be 64 bits on all platforms,
+ * similar to the standard C `int64_t`.
+ *
+ * The `int64_t` type should be preferred in new code, unless
+ * consistency with pre-existing APIs requires use of `gint64`
+ * (see #gsize for more details).
+ *
* Values of this type can range from %G_MININT64
* (= -9,223,372,036,854,775,808) to %G_MAXINT64
* (= 9,223,372,036,854,775,807).
*
* To print or scan values of this type, use
* %G_GINT64_MODIFIER and/or %G_GINT64_FORMAT.
+ *
+ * Note that on platforms with more than one 64-bit standard integer type,
+ * `gint64` and `int64_t` are not necessarily implemented by the same
+ * 64-bit integer type.
+ * For example, on a platform where both `long` and `long long` are 64-bit,
+ * it might be the case that one of those types is used for `gint64`
+ * and the other is used for `int64_t`.
+ * See #gsize for more details of what this implies.
*/
/**
@@ -402,6 +589,10 @@
* though the types are supported. On such platforms %G_GINT64_MODIFIER
* is not defined.
*
+ * This is not necessarily the correct modifier for printing and scanning
+ * `int64_t` values, even though the in-memory representation is the same.
+ * Standard C macros like `PRId64` and `SCNd64` should be used for `int64_t`.
+ *
* Since: 2.4
*/
@@ -417,23 +608,41 @@
* if %G_GINT64_FORMAT is defined. Due to its weak error handling, scanf()
* is not recommended for parsing anyway; consider using g_ascii_strtoull()
* instead.
+ *
+ * This is not necessarily the correct format for printing and scanning
+ * `int64_t` values, even though the in-memory representation is the same.
+ * Standard C macros like `PRId64` and `SCNd64` should be used for `int64_t`.
*/
/**
* guint64:
*
- * An unsigned integer guaranteed to be 64-bits on all platforms.
+ * An unsigned integer guaranteed to be 64-bits on all platforms,
+ * similar to the standard C `uint64_t` type.
+ *
+ * The `uint64_t` type should be preferred in new code, unless
+ * consistency with pre-existing APIs requires use of `guint64`
+ * (see #gsize for more details).
+ *
* Values of this type can range from 0 to %G_MAXUINT64
* (= 18,446,744,073,709,551,615).
*
* To print or scan values of this type, use
* %G_GINT64_MODIFIER and/or %G_GUINT64_FORMAT.
+ *
+ * Note that on platforms with more than one 64-bit standard integer type,
+ * `guint64` and `uint64_t` are not necessarily implemented by the same
+ * 64-bit integer type.
+ * See #gsize for more details of what this implies.
*/
/**
* G_MAXUINT64:
*
* The maximum value which can be held in a #guint64.
+ *
+ * This is the same as standard C `UINT64_MAX`, which should be
+ * preferred in new code.
*/
/**
@@ -448,6 +657,10 @@
* if %G_GINT64_FORMAT is defined. Due to its weak error handling, scanf()
* is not recommended for parsing anyway; consider using g_ascii_strtoull()
* instead.
+ *
+ * This is not necessarily the correct modifier for printing and scanning
+ * `uint64_t` values, even though the in-memory representation is the same.
+ * Standard C macros like `PRIu64` and `SCNu64` should be used for `uint64_t`.
*/
/**
@@ -456,6 +669,9 @@
*
* This macro is used to insert 64-bit integer literals
* into the source code.
+ *
+ * It is similar to the standard C `INT64_C` macro,
+ * which should be preferred in new code.
*/
/**
@@ -465,14 +681,19 @@
* This macro is used to insert 64-bit unsigned integer
* literals into the source code.
*
+ * It is similar to the standard C `UINT64_C` macro,
+ * which should be preferred in new code.
+ *
* Since: 2.10
*/
/**
* gfloat:
*
- * Corresponds to the standard C float type.
- * Values of this type can range from -%G_MAXFLOAT to %G_MAXFLOAT.
+ * Equivalent to the standard C `float` type.
+ *
+ * Values of this type can range from `-FLT_MAX` to `FLT_MAX`,
+ * or equivalently from -%G_MAXFLOAT to %G_MAXFLOAT.
*/
/**
@@ -482,19 +703,27 @@
*
* If you are interested in the smallest value which can be held
* in a #gfloat, use -%G_MAXFLOAT.
+ *
+ * This is the same as standard C `FLT_MIN`, which is available since C99
+ * and should be preferred in new code.
*/
/**
* G_MAXFLOAT:
*
* The maximum value which can be held in a #gfloat.
+ *
+ * This is the same as standard C `FLT_MAX`, which is available since C99
+ * and should be preferred in new code.
*/
/**
* gdouble:
*
- * Corresponds to the standard C double type.
- * Values of this type can range from -%G_MAXDOUBLE to %G_MAXDOUBLE.
+ * Equivalent to the standard C `double` type.
+ *
+ * Values of this type can range from `-DBL_MAX` to `DBL_MAX`,
+ * or equivalently from -%G_MAXDOUBLE to %G_MAXDOUBLE.
*/
/**
@@ -504,26 +733,66 @@
*
* If you are interested in the smallest value which can be held
* in a #gdouble, use -%G_MAXDOUBLE.
+ *
+ * This is the same as standard C `DBL_MIN`, which is available since C99
+ * and should be preferred in new code.
*/
/**
* G_MAXDOUBLE:
*
* The maximum value which can be held in a #gdouble.
+ *
+ * This is the same as standard C `DBL_MAX`, which is available since C99
+ * and should be preferred in new code.
*/
/**
* gsize:
*
- * An unsigned integer type of the result of the sizeof operator,
- * corresponding to the size_t type defined in C99.
- * This type is wide enough to hold the numeric value of a pointer,
- * so it is usually 32 bit wide on a 32-bit platform and 64 bit wide
+ * An unsigned integer type of the result of the `sizeof` operator,
+ * corresponding to the `size_t` type defined in C99.
+ *
+ * The standard `size_t` type should be preferred in new code, unless
+ * consistency with pre-existing APIs requires `gsize`
+ * (see below for more details).
+ *
+ * `gsize` is usually 32 bit wide on a 32-bit platform and 64 bit wide
* on a 64-bit platform. Values of this type can range from 0 to
* %G_MAXSIZE.
*
+ * This type is wide enough to hold the size of the largest possible
+ * memory allocation, but is not guaranteed to be wide enough to hold
+ * the numeric value of a pointer: on platforms that use tagged pointers,
+ * such as [CHERI](https://cheri-cpu.org/), pointers can be numerically
+ * larger than the size of the address space.
+ * If the numeric value of a pointer needs to be stored in an integer
+ * without information loss, use the standard C types `intptr_t` or
+ * `uintptr_t`, or the similar GLib types #gintptr or #guintptr.
+ *
* To print or scan values of this type, use
* %G_GSIZE_MODIFIER and/or %G_GSIZE_FORMAT.
+ *
+ * Note that on platforms where more than one standard integer type is
+ * the same size, `size_t` and `gsize` are always the same size but are
+ * not necessarily implemented by the same standard integer type.
+ * For example, on an ILP32 platform where `int`, `long` and pointers
+ * are all 32-bit, `size_t` might be `unsigned long` while `gsize`
+ * might be `unsigned int`.
+ * This can result in compiler warnings or unexpected C++ name-mangling
+ * if the two types are used inconsistently.
+ *
+ * As a result, changing a type from `gsize` to `size_t` in existing APIs
+ * might be an incompatible API or ABI change, especially if C++
+ * is involved. The safe option is to leave existing APIs using the same type
+ * that they have historically used, and only use the standard C types in
+ * new APIs.
+ *
+ * Similar considerations apply to all the fixed-size types
+ * (#gint8, #guint8, #gint16, #guint16, #gint32, #guint32, #gint64,
+ * #guint64 and #goffset), as well as #gintptr and #guintptr.
+ * Types that are 32 bits or larger are particularly likely to be
+ * affected by this.
*/
/**
@@ -531,6 +800,9 @@
*
* The maximum value which can be held in a #gsize.
*
+ * This is the same as standard C `SIZE_MAX` (available since C99),
+ * which should be preferred in new code.
+ *
* Since: 2.4
*/
@@ -541,6 +813,11 @@
* for scanning and printing values of type #gsize. It
* is a string literal.
*
+ * Note that this is not necessarily the correct modifier to scan or
+ * print a `size_t`, even though the in-memory representation is the
+ * same. The Standard C `"z"` modifier should be used for `size_t`,
+ * assuming a C99-compliant `printf` implementation is available.
+ *
* Since: 2.6
*/
@@ -550,6 +827,11 @@
* This is the platform dependent conversion specifier for scanning
* and printing values of type #gsize. See also %G_GINT16_FORMAT.
*
+ * Note that this is not necessarily the correct format to scan or
+ * print a `size_t`, even though the in-memory representation is the
+ * same. The standard C `"zu"` format should be used for `size_t`,
+ * assuming a C99-compliant `printf` implementation is available.
+ *
* Since: 2.6
*/
@@ -557,10 +839,23 @@
* gssize:
*
* A signed variant of #gsize, corresponding to the
- * ssize_t defined on most platforms.
+ * `ssize_t` defined in POSIX or the similar `SSIZE_T` in Windows.
+ *
+ * In new platform-specific code, consider using `ssize_t` or `SSIZE_T`
+ * directly.
+ *
* Values of this type can range from %G_MINSSIZE
* to %G_MAXSSIZE.
*
+ * Note that on platforms where `ssize_t` is implemented, `ssize_t` and
+ * `gssize` might be implemented by different standard integer types
+ * of the same size. Similarly, on Windows, `SSIZE_T` and `gssize`
+ * might be implemented by different standard integer types of the same
+ * size. See #gsize for more details.
+ *
+ * This type is also not guaranteed to be the same as standard C
+ * `ptrdiff_t`, although they are the same on many platforms.
+ *
* To print or scan values of this type, use
* %G_GSSIZE_MODIFIER and/or %G_GSSIZE_FORMAT.
*/
@@ -587,6 +882,11 @@
* This is the platform dependent conversion specifier for scanning
* and printing values of type #gssize. See also %G_GINT16_FORMAT.
*
+ * Note that this is not necessarily the correct format to scan or print
+ * a POSIX `ssize_t` or a Windows `SSIZE_T`, even though the in-memory
+ * representation is the same.
+ * On POSIX platforms, the `"zd"` format should be used for `ssize_t`.
+ *
* Since: 2.6
*/
@@ -597,6 +897,11 @@
* for scanning and printing values of type #gssize. It
* is a string literal.
*
+ * Note that this is not necessarily the correct modifier to scan or print
+ * a POSIX `ssize_t` or a Windows `SSIZE_T`, even though the in-memory
+ * representation is the same.
+ * On POSIX platforms, the `"z"` modifier should be used for `ssize_t`.
+ *
* Since: 2.6
*/
@@ -606,13 +911,18 @@
* A signed integer type that is used for file offsets,
* corresponding to the POSIX type `off_t` as if compiling with
* `_FILE_OFFSET_BITS` set to 64. #goffset is always 64 bits wide, even on
- * 32-bit architectures.
+ * 32-bit architectures, and even if `off_t` is only 32 bits.
* Values of this type can range from %G_MINOFFSET to
* %G_MAXOFFSET.
*
* To print or scan values of this type, use
* %G_GOFFSET_MODIFIER and/or %G_GOFFSET_FORMAT.
*
+ * On platforms with more than one 64-bit standard integer type,
+ * even if `off_t` is also 64 bits in size, `goffset` and `off_t` are not
+ * necessarily implemented by the same 64-bit integer type.
+ * See #gsize for more details of what this implies.
+ *
* Since: 2.14
*/
@@ -635,6 +945,9 @@
* for scanning and printing values of type #goffset. It is a string
* literal. See also %G_GINT64_MODIFIER.
*
+ * This modifier should only be used with #goffset values, and not
+ * with `off_t`, which is not necessarily the same type or even the same size.
+ *
* Since: 2.20
*/
@@ -644,6 +957,9 @@
* This is the platform dependent conversion specifier for scanning
* and printing values of type #goffset. See also %G_GINT64_FORMAT.
*
+ * This format should only be used with #goffset values, and not
+ * with `off_t`, which is not necessarily the same type or even the same size.
+ *
* Since: 2.20
*/
@@ -665,6 +981,14 @@
* Corresponds to the C99 type intptr_t,
* a signed integer type that can hold any pointer.
*
+ * The standard `intptr_t` type should be preferred in new code, unless
+ * consistency with pre-existing APIs requires `gintptr`.
+ * Note that `intptr_t` and `gintptr` might be implemented by different
+ * standard integer types of the same size. See #gsize for more details.
+ *
+ * #gintptr is not guaranteed to be the same type or the same size as #gssize,
+ * even though they are the same on many CPU architectures.
+ *
* To print or scan values of this type, use
* %G_GINTPTR_MODIFIER and/or %G_GINTPTR_FORMAT.
*
@@ -678,6 +1002,12 @@
* for scanning and printing values of type #gintptr or #guintptr.
* It is a string literal.
*
+ * Note that this is not necessarily the correct modifier to scan or
+ * print an `intptr_t`, even though the in-memory representation is the
+ * same.
+ * Standard C macros like `PRIdPTR` and `SCNdPTR` should be used for
+ * `intptr_t`.
+ *
* Since: 2.22
*/
@@ -687,6 +1017,12 @@
* This is the platform dependent conversion specifier for scanning
* and printing values of type #gintptr.
*
+ * Note that this is not necessarily the correct format to scan or
+ * print an `intptr_t`, even though the in-memory representation is the
+ * same.
+ * Standard C macros like `PRIdPTR` and `SCNdPTR` should be used for
+ * `intptr_t`.
+ *
* Since: 2.22
*/
@@ -696,6 +1032,14 @@
* Corresponds to the C99 type uintptr_t,
* an unsigned integer type that can hold any pointer.
*
+ * The standard `uintptr_t` type should be preferred in new code, unless
+ * consistency with pre-existing APIs requires `guintptr`.
+ * Note that `uintptr_t` and `guintptr` might be implemented by different
+ * standard integer types of the same size. See #gsize for more details.
+ *
+ * #guintptr is not guaranteed to be the same type or the same size as #gsize,
+ * even though they are the same on many CPU architectures.
+ *
* To print or scan values of this type, use
* %G_GINTPTR_MODIFIER and/or %G_GUINTPTR_FORMAT.
*
@@ -708,6 +1052,12 @@
* This is the platform dependent conversion specifier
* for scanning and printing values of type #guintptr.
*
+ * Note that this is not necessarily the correct format to scan or
+ * print a `uintptr_t`, even though the in-memory representation is the
+ * same.
+ * Standard C macros like `PRIuPTR` and `SCNuPTR` should be used for
+ * `uintptr_t`.
+ *
* Since: 2.22
*/
@@ -718,7 +1068,7 @@
* @title: Type Conversion Macros
* @short_description: portably storing integers in pointer variables
*
- * Many times GLib, GTK+, and other libraries allow you to pass "user
+ * Many times GLib, GTK, and other libraries allow you to pass "user
* data" to a callback, in the form of a void pointer. From time to time
* you want to pass an integer instead of a pointer. You could allocate
* an integer, with something like:
@@ -1659,6 +2009,19 @@
*
* This macro is defined only on UNIX. So you can bracket
* UNIX-specific code in "\#ifdef G_OS_UNIX".
+ *
+ * To detect whether to compile features that require a specific kernel
+ * or operating system, check for the appropriate OS-specific predefined
+ * macros instead, for example:
+ *
+ * - Linux kernel (any libc, including glibc, musl or Android): `\#ifdef __linux__`
+ * - Linux kernel and GNU user-space: `\#if defined(__linux__) && defined(__GLIBC__)`
+ * - FreeBSD kernel (any libc, including glibc): `\#ifdef __FreeBSD_kernel__`
+ * - FreeBSD kernel and user-space: `\#ifdef __FreeBSD__`
+ * - Apple operating systems (macOS, iOS, tvOS), regardless of whether
+ * Cocoa/Carbon toolkits are available: `\#ifdef __APPLE__`
+ *
+ * See <https://sourceforge.net/p/predef/wiki/OperatingSystems/> for more.
*/
/**
@@ -1818,7 +2181,12 @@
*
* Returns the offset, in bytes, of a member of a struct.
*
- * Returns: the offset of @member from the start of @struct_type
+ * Consider using standard C `offsetof()`, available since at least C89
+ * and C++98, in new code (but note that `offsetof()` returns a `size_t`
+ * rather than a `long`).
+ *
+ * Returns: the offset of @member from the start of @struct_type,
+ * as a value of type #glong.
*/
/**
@@ -1885,6 +2253,9 @@
*
* Each invocation of `G_VA_COPY (ap1, ap2)` must be matched with a
* corresponding `va_end (ap1)` call in the same function.
+ *
+ * This is equivalent to standard C `va_copy()`, available since C99
+ * and C++11, which should be preferred in new code.
*/
/**
@@ -2157,6 +2528,87 @@
*/
/**
+ * G_C_STD_VERSION:
+ *
+ * The C standard version the code is compiling against, it's normally
+ * defined with the same value of `__STDC_VERSION__` for C standard
+ * compatible compilers, while it uses the lowest standard version
+ * in pure MSVC, given that in such compiler the definition depends on
+ * a compilation flag.
+ *
+ * This is granted to be undefined when compiling with a C++ compiler.
+ *
+ * See also: %G_C_STD_CHECK_VERSION and %G_CXX_STD_VERSION
+ *
+ * Since: 2.76
+ */
+
+/**
+ * G_C_STD_CHECK_VERSION:
+ * @version: The C version to be checked for compatibility
+ *
+ * Macro to check if the current compiler supports a specified @version
+ * of the C standard. Such value must be numeric and can be provided both
+ * in the short form for the well-known versions (e.g. `90`, `99`...) or in
+ * the complete form otherwise (e.g. `199000L`, `199901L`, `205503L`...).
+ *
+ * When a C++ compiler is used, the macro is defined and returns always %FALSE.
+ *
+ * This value is compared against %G_C_STD_VERSION.
+ *
+ * |[<!-- language="C" -->
+ * #if G_C_STD_CHECK_VERSION(17)
+ * #endif
+ * ]|
+ *
+ * See also: %G_CXX_STD_CHECK_VERSION
+ *
+ * Returns: %TRUE if @version is supported by the compiler, %FALSE otherwise
+ *
+ * Since: 2.76
+ */
+
+/**
+ * G_CXX_STD_VERSION:
+ *
+ * The C++ standard version the code is compiling against, it's defined
+ * with the same value of `__cplusplus` for C++ standard compatible
+ * compilers, while it uses `_MSVC_LANG` in MSVC, given that the
+ * standard definition depends on a compilation flag in such compiler.
+ *
+ * This is granted to be undefined when not compiling with a C++ compiler.
+ *
+ * See also: %G_CXX_STD_CHECK_VERSION and %G_C_STD_VERSION
+ *
+ * Since: 2.76
+ */
+
+/**
+ * G_CXX_STD_CHECK_VERSION:
+ * @version: The C++ version to be checked for compatibility
+ *
+ * Macro to check if the current compiler supports a specified @version
+ * of the C++ standard. Such value must be numeric and can be provided both
+ * in the short form for the well-known versions (e.g. `11`, `17`...) or in
+ * the complete form otherwise (e.g. `201103L`, `201703L`, `205503L`...).
+ *
+ * When a C compiler is used, the macro is defined and returns always %FALSE.
+ *
+ * This value is compared against %G_CXX_STD_VERSION.
+ *
+ * |[<!-- language="C" -->
+ * #if G_CXX_STD_CHECK_VERSION(20)
+ * #endif
+ * ]|
+ *
+ * See also: %G_C_STD_CHECK_VERSION
+ *
+ * Returns: %TRUE if @version is supported by the compiler, %FALSE otherwise
+ *
+ * Since: 2.76
+ */
+
+/**
* G_LIKELY:
* @expr: the expression
*
@@ -2567,11 +3019,18 @@
* }
* ]|
*
- * g_print(), g_printerr() and g_set_print_handler() are intended to be used for
+ * g_print() and g_printerr() are intended to be used for
* output from command line applications, since they output to standard output
* and standard error by default — whereas functions like g_message() and
* g_log() may be redirected to special purpose message windows, files, or the
* system journal.
+ *
+ * If the console encoding is not UTF-8 (as specified by g_get_console_charset())
+ * then these functions convert the message first. Any Unicode
+ * characters not defined by that charset are replaced by `'?'`. On Linux,
+ * setlocale() must be called early in main() to load the encoding. This behaviour
+ * can be changed by providing custom handlers to g_set_print_handler(),
+ * g_set_printerr_handler() and g_log_set_handler().
*/
/* Windows Compatibility Functions {{{1 */
diff --git a/glib/garray.c b/glib/garray.c
index 408bad9c9..e6cef312d 100644
--- a/glib/garray.c
+++ b/glib/garray.c
@@ -35,6 +35,7 @@
#include "garray.h"
+#include "galloca.h"
#include "gbytes.h"
#include "ghash.h"
#include "gslice.h"
@@ -191,6 +192,123 @@ g_array_new (gboolean zero_terminated,
}
/**
+ * g_array_new_take: (skip)
+ * @data: (array length=len) (transfer full) (nullable): an array of
+ * elements of @element_size, or %NULL for an empty array
+ * @len: the number of elements in @data
+ * @clear: %TRUE if #GArray elements should be automatically cleared
+ * to 0 when they are allocated
+ * @element_size: the size of each element in bytes
+ *
+ * Creates a new #GArray with @data as array data, @len as length and a
+ * reference count of 1.
+ *
+ * This avoids having to copy the data manually, when it can just be
+ * inherited.
+ * After this call, @data belongs to the #GArray and may no longer be
+ * modified by the caller. The memory of @data has to be dynamically
+ * allocated and will eventually be freed with g_free().
+ *
+ * In case the elements need to be cleared when the array is freed, use
+ * g_array_set_clear_func() to set a #GDestroyNotify function to perform
+ * such task.
+ *
+ * Do not use it if @len or @element_size are greater than %G_MAXUINT.
+ * #GArray stores the length of its data in #guint, which may be shorter
+ * than #gsize.
+ *
+ * Returns: (transfer full): A new #GArray
+ *
+ * Since: 2.76
+ */
+GArray *
+g_array_new_take (gpointer data,
+ gsize len,
+ gboolean clear,
+ gsize element_size)
+{
+ GRealArray *rarray;
+ GArray *array;
+
+ g_return_val_if_fail (data != NULL || len == 0, NULL);
+ g_return_val_if_fail (len <= G_MAXUINT, NULL);
+ g_return_val_if_fail (element_size <= G_MAXUINT, NULL);
+
+ array = g_array_sized_new (FALSE, clear, element_size, 0);
+ rarray = (GRealArray *) array;
+ rarray->data = (guint8 *) g_steal_pointer (&data);
+ rarray->len = len;
+ rarray->elt_capacity = len;
+
+ return array;
+}
+
+/**
+ * g_array_new_take_zero_terminated: (skip)
+ * @data: (array zero-terminated=1): an array of elements of @element_size
+ * @clear: %TRUE if #GArray elements should be automatically cleared
+ * to 0 when they are allocated
+ * @element_size: the size of each element in bytes
+ *
+ * Creates a new #GArray with @data as array data, computing the length of it
+ * and setting the reference count to 1.
+ *
+ * This avoids having to copy the data manually, when it can just be
+ * inherited.
+ * After this call, @data belongs to the #GArray and may no longer be
+ * modified by the caller. The memory of @data has to be dynamically
+ * allocated and will eventually be freed with g_free().
+ *
+ * The length is calculated by iterating through @data until the first %NULL
+ * element is found.
+ *
+ * In case the elements need to be cleared when the array is freed, use
+ * g_array_set_clear_func() to set a #GDestroyNotify function to perform
+ * such task.
+ *
+ * Do not use it if @data length or @element_size are greater than %G_MAXUINT.
+ * #GArray stores the length of its data in #guint, which may be shorter
+ * than #gsize.
+ *
+ * Returns: (transfer full): A new #GArray
+ *
+ * Since: 2.76
+ */
+GArray *
+g_array_new_take_zero_terminated (gpointer data,
+ gboolean clear,
+ gsize element_size)
+{
+ GArray *array;
+ gsize len = 0;
+
+ g_return_val_if_fail (element_size <= G_MAXUINT, NULL);
+
+ if (data != NULL)
+ {
+ guint8 *array_data = data;
+
+ for (gsize i = 0; ; ++i)
+ {
+ const guint8 *element_start = array_data + (i * element_size);
+
+ if (*element_start == 0 &&
+ memcmp (element_start, element_start + 1, element_size - 1) == 0)
+ break;
+
+ len += 1;
+ }
+ }
+
+ g_return_val_if_fail (len <= G_MAXUINT, NULL);
+
+ array = g_array_new_take (data, len, clear, element_size);
+ ((GRealArray *)array)->zero_terminated = TRUE;
+
+ return array;
+}
+
+/**
* g_array_steal:
* @array: a #GArray.
* @len: (optional) (out): pointer to retrieve the number of
@@ -285,7 +403,8 @@ g_array_sized_new (gboolean zero_terminated,
if (array->zero_terminated || reserved_size != 0)
{
g_array_maybe_expand (array, reserved_size);
- g_array_zero_terminate(array);
+ g_assert (array->data != NULL);
+ g_array_zero_terminate (array);
}
return (GArray*) array;
@@ -911,7 +1030,7 @@ g_array_sort_with_data (GArray *farray,
*
* This example defines a comparison function and search an element in a #GArray:
* |[<!-- language="C" -->
- * static gint*
+ * static gint
* cmpint (gconstpointer a, gconstpointer b)
* {
* const gint *_a = a;
@@ -1071,7 +1190,7 @@ struct _GRealPtrArray
guint len;
guint alloc;
gatomicrefcount ref_count;
- guint8 null_terminated; /* always either 0 or 1, so it can be added to array lengths */
+ guint8 null_terminated : 1; /* always either 0 or 1, so it can be added to array lengths */
GDestroyNotify element_free_func;
};
@@ -1120,7 +1239,10 @@ ptr_array_new (guint reserved_size,
if (G_LIKELY (reserved_size < G_MAXUINT) &&
null_terminated)
reserved_size++;
+
g_ptr_array_maybe_expand (array, reserved_size);
+ g_assert (array->pdata != NULL);
+
if (null_terminated)
{
/* don't use ptr_array_maybe_null_terminate(). It helps the compiler
@@ -1147,6 +1269,235 @@ g_ptr_array_new (void)
}
/**
+ * g_ptr_array_new_take: (skip)
+ * @data: (array length=len) (transfer full) (nullable): an array of pointers,
+ * or %NULL for an empty array
+ * @len: the number of pointers in @data
+ * @element_free_func: (nullable): A function to free elements on @array
+ * destruction or %NULL
+ *
+ * Creates a new #GPtrArray with @data as pointers, @len as length and a
+ * reference count of 1.
+ *
+ * This avoids having to copy such data manually.
+ * After this call, @data belongs to the #GPtrArray and may no longer be
+ * modified by the caller. The memory of @data has to be dynamically
+ * allocated and will eventually be freed with g_free().
+ *
+ * It also sets @element_free_func for freeing each element when the array is
+ * destroyed either via g_ptr_array_unref(), when g_ptr_array_free() is called
+ * with @free_segment set to %TRUE or when removing elements.
+ *
+ * Do not use it if @len is greater than %G_MAXUINT. #GPtrArray
+ * stores the length of its data in #guint, which may be shorter than
+ * #gsize.
+ *
+ * Returns: (transfer full): A new #GPtrArray
+ *
+ * Since: 2.76
+ */
+GPtrArray *
+g_ptr_array_new_take (gpointer *data,
+ gsize len,
+ GDestroyNotify element_free_func)
+{
+ GPtrArray *array;
+ GRealPtrArray *rarray;
+
+ g_return_val_if_fail (data != NULL || len == 0, NULL);
+ g_return_val_if_fail (len <= G_MAXUINT, NULL);
+
+ array = ptr_array_new (0, element_free_func, FALSE);
+ rarray = (GRealPtrArray *)array;
+
+ rarray->pdata = g_steal_pointer (&data);
+ rarray->len = len;
+ rarray->alloc = len;
+
+ return array;
+}
+
+/**
+ * g_ptr_array_new_take_null_terminated: (skip)
+ * @data: (array zero-terminated=1) (transfer full) (nullable): an array
+ * of pointers, %NULL terminated, or %NULL for an empty array
+ * @element_free_func: (nullable): a function to free elements on @array
+ * destruction or %NULL
+ *
+ * Creates a new #GPtrArray with @data as pointers, computing the length of it
+ * and setting the reference count to 1.
+ *
+ * This avoids having to copy such data manually.
+ * After this call, @data belongs to the #GPtrArray and may no longer be
+ * modified by the caller. The memory of @data has to be dynamically
+ * allocated and will eventually be freed with g_free().
+ *
+ * The length is calculated by iterating through @data until the first %NULL
+ * element is found.
+ *
+ * It also sets @element_free_func for freeing each element when the array is
+ * destroyed either via g_ptr_array_unref(), when g_ptr_array_free() is called
+ * with @free_segment set to %TRUE or when removing elements.
+ *
+ * Do not use it if the @data length is greater than %G_MAXUINT. #GPtrArray
+ * stores the length of its data in #guint, which may be shorter than
+ * #gsize.
+ *
+ * Returns: (transfer full): A new #GPtrArray
+ *
+ * Since: 2.76
+ */
+GPtrArray *
+g_ptr_array_new_take_null_terminated (gpointer *data,
+ GDestroyNotify element_free_func)
+{
+ GPtrArray *array;
+ gsize len = 0;
+
+ if (data != NULL)
+ {
+ for (gsize i = 0; data[i] != NULL; ++i)
+ len += 1;
+ }
+
+ g_return_val_if_fail (len <= G_MAXUINT, NULL);
+
+ array = g_ptr_array_new_take (g_steal_pointer (&data), len, element_free_func);
+ ((GRealPtrArray *)array)->null_terminated = TRUE;
+
+ return array;
+}
+
+static GPtrArray *
+ptr_array_new_from_array (gpointer *data,
+ gsize len,
+ GCopyFunc copy_func,
+ gpointer copy_func_user_data,
+ GDestroyNotify element_free_func,
+ gboolean null_terminated)
+{
+ GPtrArray *array;
+ GRealPtrArray *rarray;
+
+ g_assert (data != NULL || len == 0);
+ g_assert (len <= G_MAXUINT);
+
+ array = ptr_array_new (len, element_free_func, null_terminated);
+ rarray = (GRealPtrArray *)array;
+
+ if (copy_func != NULL)
+ {
+ for (gsize i = 0; i < len; i++)
+ rarray->pdata[i] = copy_func (data[i], copy_func_user_data);
+ }
+ else if (len != 0)
+ {
+ memcpy (rarray->pdata, data, len * sizeof (gpointer));
+ }
+
+ if (null_terminated && rarray->pdata != NULL)
+ rarray->pdata[len] = NULL;
+
+ rarray->len = len;
+
+ return array;
+}
+
+/**
+ * g_ptr_array_new_from_array: (skip)
+ * @data: (array length=len) (transfer none) (nullable): an array of pointers,
+ * or %NULL for an empty array
+ * @len: the number of pointers in @data
+ * @copy_func: (nullable): a copy function used to copy every element in the
+ * array or %NULL.
+ * @copy_func_user_data: user data passed to @copy_func, or %NULL
+ * @element_free_func: (nullable): a function to free elements on @array
+ * destruction or %NULL
+ *
+ * Creates a new #GPtrArray, copying @len pointers from @data, and setting
+ * the array’s reference count to 1.
+ *
+ * This avoids having to manually add each element one by one.
+ *
+ * If @copy_func is provided, then it is used to copy each element before
+ * adding them to the new array. If it is %NULL then the pointers are copied
+ * directly.
+ *
+ * It also sets @element_free_func for freeing each element when the array is
+ * destroyed either via g_ptr_array_unref(), when g_ptr_array_free() is called
+ * with @free_segment set to %TRUE or when removing elements.
+ *
+ * Do not use it if @len is greater than %G_MAXUINT. #GPtrArray
+ * stores the length of its data in #guint, which may be shorter than
+ * #gsize.
+ *
+ * Returns: (transfer full): A new #GPtrArray
+ *
+ * Since: 2.76
+ */
+GPtrArray *
+g_ptr_array_new_from_array (gpointer *data,
+ gsize len,
+ GCopyFunc copy_func,
+ gpointer copy_func_user_data,
+ GDestroyNotify element_free_func)
+{
+ g_return_val_if_fail (data != NULL || len == 0, NULL);
+ g_return_val_if_fail (len <= G_MAXUINT, NULL);
+
+ return ptr_array_new_from_array (
+ data, len, copy_func, copy_func_user_data, element_free_func, FALSE);
+}
+
+/**
+ * g_ptr_array_new_from_null_terminated_array: (skip)
+ * @data: (array zero-terminated=1) (transfer none) (nullable): an array of
+ * pointers, %NULL terminated; or %NULL for an empty array
+ * @copy_func: (nullable): a copy function used to copy every element in the
+ * array or %NULL.
+ * @copy_func_user_data: user data passed to @copy_func, or %NULL
+ * @element_free_func: (nullable): a function to free elements on @array
+ * destruction or %NULL
+ *
+ * Creates a new #GPtrArray copying the pointers from @data after having
+ * computed the length of it and with a reference count of 1.
+ * This avoids having to manually add each element one by one.
+ * If @copy_func is provided, then it is used to copy the data in the new
+ * array.
+ * It also set @element_free_func for freeing each element when the array is
+ * destroyed either via g_ptr_array_unref(), when g_ptr_array_free() is called
+ * with @free_segment set to %TRUE or when removing elements.
+ *
+ * Do not use it if the @data has more than %G_MAXUINT elements. #GPtrArray
+ * stores the length of its data in #guint, which may be shorter than
+ * #gsize.
+ *
+ * Returns: (transfer full): A new #GPtrArray
+ *
+ * Since: 2.76
+ */
+GPtrArray *
+g_ptr_array_new_from_null_terminated_array (gpointer *data,
+ GCopyFunc copy_func,
+ gpointer copy_func_user_data,
+ GDestroyNotify element_free_func)
+{
+ gsize len = 0;
+
+ if (data != NULL)
+ {
+ for (gsize i = 0; data[i] != NULL; ++i)
+ len += 1;
+ }
+
+ g_assert (data != NULL || len == 0);
+ g_return_val_if_fail (len <= G_MAXUINT, NULL);
+
+ return ptr_array_new_from_array (
+ data, len, copy_func, copy_func_user_data, element_free_func, TRUE);
+}
+
+/**
* g_ptr_array_steal:
* @array: a #GPtrArray.
* @len: (optional) (out): pointer to retrieve the number of
@@ -2109,12 +2460,15 @@ g_ptr_array_insert (GPtrArray *array,
*
* Sorts the array, using @compare_func which should be a qsort()-style
* comparison function (returns less than zero for first arg is less
- * than second arg, zero for equal, greater than zero if irst arg is
+ * than second arg, zero for equal, greater than zero if first arg is
* greater than second arg).
*
* Note that the comparison function for g_ptr_array_sort() doesn't
* take the pointers from the array as arguments, it takes pointers to
- * the pointers in the array. Here is a full example of usage:
+ * the pointers in the array.
+ *
+ * Use g_ptr_array_sort_values() if you want to use normal
+ * #GCompareFuncs, otherwise here is a full example of use:
*
* |[<!-- language="C" -->
* typedef struct
@@ -2171,7 +2525,10 @@ g_ptr_array_sort (GPtrArray *array,
*
* Note that the comparison function for g_ptr_array_sort_with_data()
* doesn't take the pointers from the array as arguments, it takes
- * pointers to the pointers in the array. Here is a full example of use:
+ * pointers to the pointers in the array.
+ *
+ * Use g_ptr_array_sort_values_with_data() if you want to use normal
+ * #GCompareDataFuncs, otherwise here is a full example of use:
*
* |[<!-- language="C" -->
* typedef enum { SORT_NAME, SORT_SIZE } SortMode;
@@ -2235,6 +2592,80 @@ g_ptr_array_sort_with_data (GPtrArray *array,
user_data);
}
+static inline gint
+compare_ptr_array_values (gconstpointer a, gconstpointer b, gpointer user_data)
+{
+ gconstpointer aa = *((gconstpointer *) a);
+ gconstpointer bb = *((gconstpointer *) b);
+ GCompareFunc compare_func = user_data;
+
+ return compare_func (aa, bb);
+}
+
+/**
+ * g_ptr_array_sort_values:
+ * @array: a #GPtrArray
+ * @compare_func: a #GCompareFunc comparison function
+ *
+ * Sorts the array, using @compare_func which should be a qsort()-style
+ * comparison function (returns less than zero for first arg is less
+ * than second arg, zero for equal, greater than zero if first arg is
+ * greater than second arg).
+ *
+ * This is guaranteed to be a stable sort.
+ *
+ * Since: 2.76
+ */
+void
+g_ptr_array_sort_values (GPtrArray *array,
+ GCompareFunc compare_func)
+{
+ g_ptr_array_sort_with_data (array, compare_ptr_array_values, compare_func);
+}
+
+typedef struct
+{
+ GCompareDataFunc compare_func;
+ gpointer user_data;
+} GPtrArraySortValuesData;
+
+static inline gint
+compare_ptr_array_values_with_data (gconstpointer a,
+ gconstpointer b,
+ gpointer user_data)
+{
+ gconstpointer aa = *((gconstpointer *) a);
+ gconstpointer bb = *((gconstpointer *) b);
+ GPtrArraySortValuesData *data = user_data;
+
+ return data->compare_func (aa, bb, data->user_data);
+}
+
+/**
+ * g_ptr_array_sort_values_with_data:
+ * @array: a #GPtrArray
+ * @compare_func: a #GCompareDataFunc comparison function
+ * @user_data: data to pass to @compare_func
+ *
+ * Like g_ptr_array_sort_values(), but the comparison function has an extra
+ * user data argument.
+ *
+ * This is guaranteed to be a stable sort.
+ *
+ * Since: 2.76
+ */
+void
+g_ptr_array_sort_values_with_data (GPtrArray *array,
+ GCompareDataFunc compare_func,
+ gpointer user_data)
+{
+ g_ptr_array_sort_with_data (array, compare_ptr_array_values_with_data,
+ &(GPtrArraySortValuesData){
+ .compare_func = compare_func,
+ .user_data = user_data,
+ });
+}
+
/**
* g_ptr_array_foreach:
* @array: a #GPtrArray
@@ -2422,8 +2853,10 @@ g_byte_array_steal (GByteArray *array,
* @data: (transfer full) (array length=len): byte data for the array
* @len: length of @data
*
- * Create byte array containing the data. The data will be owned by the array
- * and will be freed with g_free(), i.e. it could be allocated using g_strdup().
+ * Creates a byte array containing the @data.
+ * After this call, @data belongs to the #GByteArray and may no longer be
+ * modified by the caller. The memory of @data has to be dynamically
+ * allocated and will eventually be freed with g_free().
*
* Do not use it if @len is greater than %G_MAXUINT. #GByteArray
* stores the length of its data in #guint, which may be shorter than
diff --git a/glib/garray.h b/glib/garray.h
index 2300e5f58..5dc32b2a7 100644
--- a/glib/garray.h
+++ b/glib/garray.h
@@ -72,6 +72,15 @@ GLIB_AVAILABLE_IN_ALL
GArray* g_array_new (gboolean zero_terminated,
gboolean clear_,
guint element_size);
+GLIB_AVAILABLE_IN_2_76
+GArray* g_array_new_take (gpointer data,
+ gsize len,
+ gboolean clear,
+ gsize element_size);
+GLIB_AVAILABLE_IN_2_76
+GArray* g_array_new_take_zero_terminated (gpointer data,
+ gboolean clear,
+ gsize element_size);
GLIB_AVAILABLE_IN_2_64
gpointer g_array_steal (GArray *array,
gsize *len);
@@ -142,6 +151,16 @@ GLIB_AVAILABLE_IN_ALL
GPtrArray* g_ptr_array_new (void);
GLIB_AVAILABLE_IN_ALL
GPtrArray* g_ptr_array_new_with_free_func (GDestroyNotify element_free_func);
+GLIB_AVAILABLE_IN_2_76
+GPtrArray* g_ptr_array_new_take (gpointer *data,
+ gsize len,
+ GDestroyNotify element_free_func);
+GLIB_AVAILABLE_IN_2_76
+GPtrArray* g_ptr_array_new_from_array (gpointer *data,
+ gsize len,
+ GCopyFunc copy_func,
+ gpointer copy_func_user_data,
+ GDestroyNotify element_free_func);
GLIB_AVAILABLE_IN_2_64
gpointer* g_ptr_array_steal (GPtrArray *array,
gsize *len);
@@ -158,6 +177,14 @@ GLIB_AVAILABLE_IN_2_74
GPtrArray* g_ptr_array_new_null_terminated (guint reserved_size,
GDestroyNotify element_free_func,
gboolean null_terminated);
+GLIB_AVAILABLE_IN_2_76
+GPtrArray* g_ptr_array_new_take_null_terminated (gpointer *data,
+ GDestroyNotify element_free_func);
+GLIB_AVAILABLE_IN_2_76
+GPtrArray* g_ptr_array_new_from_null_terminated_array (gpointer *data,
+ GCopyFunc copy_func,
+ gpointer copy_func_user_data,
+ GDestroyNotify element_free_func);
GLIB_AVAILABLE_IN_ALL
gpointer* g_ptr_array_free (GPtrArray *array,
gboolean free_seg);
@@ -215,6 +242,13 @@ GLIB_AVAILABLE_IN_ALL
void g_ptr_array_sort_with_data (GPtrArray *array,
GCompareDataFunc compare_func,
gpointer user_data);
+GLIB_AVAILABLE_IN_2_76
+void g_ptr_array_sort_values (GPtrArray *array,
+ GCompareFunc compare_func);
+GLIB_AVAILABLE_IN_2_76
+void g_ptr_array_sort_values_with_data (GPtrArray *array,
+ GCompareDataFunc compare_func,
+ gpointer user_data);
GLIB_AVAILABLE_IN_ALL
void g_ptr_array_foreach (GPtrArray *array,
GFunc func,
diff --git a/glib/gatomic.h b/glib/gatomic.h
index e1b5d2391..148424dc3 100644
--- a/glib/gatomic.h
+++ b/glib/gatomic.h
@@ -170,7 +170,7 @@ G_END_DECLS
(void) (0 ? *(atomic) ^ *(atomic) : 1); \
__atomic_fetch_sub ((atomic), 1, __ATOMIC_SEQ_CST) == 1; \
}))
-#if defined(glib_typeof) && defined(__cplusplus)
+#if defined(glib_typeof) && defined(G_CXX_STD_VERSION)
/* See comments below about equivalent g_atomic_pointer_compare_and_exchange()
* shenanigans for type-safety when compiling in C++ mode. */
#define g_atomic_int_compare_and_exchange(atomic, oldval, newval) \
@@ -180,7 +180,7 @@ G_END_DECLS
(void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1); \
__atomic_compare_exchange_n ((atomic), &gaicae_oldval, (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
}))
-#else /* if !(defined(glib_typeof) && defined(__cplusplus)) */
+#else /* if !(defined(glib_typeof) && defined(G_CXX_STD_VERSION)) */
#define g_atomic_int_compare_and_exchange(atomic, oldval, newval) \
(G_GNUC_EXTENSION ({ \
gint gaicae_oldval = (oldval); \
@@ -230,7 +230,7 @@ G_END_DECLS
(guint) __atomic_fetch_xor ((atomic), (val), __ATOMIC_SEQ_CST); \
}))
-#if defined(glib_typeof) && defined(__cplusplus)
+#if defined(glib_typeof) && defined(G_CXX_STD_VERSION)
/* This is typesafe because we check we can assign oldval to the type of
* (*atomic). Unfortunately it can only be done in C++ because gcc/clang warn
* when atomic is volatile and not oldval, or when atomic is gsize* and oldval
@@ -241,13 +241,14 @@ G_END_DECLS
* https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1715#note_1024120. */
#define g_atomic_pointer_compare_and_exchange(atomic, oldval, newval) \
(G_GNUC_EXTENSION ({ \
- G_STATIC_ASSERT (sizeof (oldval) == sizeof (gpointer)); \
+ G_STATIC_ASSERT (sizeof (static_cast<glib_typeof (*(atomic))>((oldval))) \
+ == sizeof (gpointer)); \
glib_typeof (*(atomic)) gapcae_oldval = (oldval); \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
(void) (0 ? (gpointer) *(atomic) : NULL); \
__atomic_compare_exchange_n ((atomic), &gapcae_oldval, (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
}))
-#else /* if !(defined(glib_typeof) && defined(__cplusplus) */
+#else /* if !(defined(glib_typeof) && defined(G_CXX_STD_VERSION) */
#define g_atomic_pointer_compare_and_exchange(atomic, oldval, newval) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof (oldval) == sizeof (gpointer)); \
diff --git a/glib/gbacktrace.c b/glib/gbacktrace.c
index 9c52a7d29..0f81502e5 100644
--- a/glib/gbacktrace.c
+++ b/glib/gbacktrace.c
@@ -45,6 +45,7 @@
#include <time.h>
#ifdef G_OS_UNIX
+#include "glib-unixprivate.h"
#include <errno.h>
#include <unistd.h>
#include <sys/wait.h>
@@ -397,7 +398,8 @@ stack_trace (const char * const *args)
stack_trace_done = FALSE;
signal (SIGCHLD, stack_trace_sigchld);
- if ((pipe (in_fd) == -1) || (pipe (out_fd) == -1))
+ if (!g_unix_open_pipe_internal (in_fd, TRUE, FALSE) ||
+ !g_unix_open_pipe_internal (out_fd, TRUE, FALSE))
{
perror ("unable to open pipe");
_exit (0);
diff --git a/glib/gbookmarkfile.c b/glib/gbookmarkfile.c
index 68618fb1c..80e835bac 100644
--- a/glib/gbookmarkfile.c
+++ b/glib/gbookmarkfile.c
@@ -53,7 +53,7 @@
/**
- * SECTION:bookmarkfile
+ * SECTION:gbookmarkfile
* @title: Bookmark file parser
* @short_description: parses files containing bookmarks
*
@@ -287,6 +287,24 @@ bookmark_app_info_free (BookmarkAppInfo *app_info)
g_slice_free (BookmarkAppInfo, app_info);
}
+static BookmarkAppInfo *
+bookmark_app_info_copy (BookmarkAppInfo *app_info)
+{
+ BookmarkAppInfo *copy;
+
+ if (!app_info)
+ return NULL;
+
+ copy = bookmark_app_info_new (app_info->name);
+ copy->count = app_info->count;
+ copy->exec = g_strdup (app_info->exec);
+
+ if (app_info->stamp)
+ copy->stamp = g_date_time_ref (app_info->stamp);
+
+ return copy;
+}
+
static gchar *
bookmark_app_info_dump (BookmarkAppInfo *app_info)
{
@@ -300,14 +318,27 @@ bookmark_app_info_dump (BookmarkAppInfo *app_info)
name = g_markup_escape_text (app_info->name, -1);
exec = g_markup_escape_text (app_info->exec, -1);
- modified = g_date_time_format_iso8601 (app_info->stamp);
count = g_strdup_printf ("%u", app_info->count);
+ if (app_info->stamp)
+ {
+ char *tmp;
+
+ tmp = g_date_time_format_iso8601 (app_info->stamp);
+ modified = g_strconcat (" " BOOKMARK_MODIFIED_ATTRIBUTE "=\"", tmp, "\"",
+ NULL);
+ g_free (tmp);
+ }
+ else
+ {
+ modified = g_strdup ("");
+ }
+
retval = g_strconcat (" "
"<" BOOKMARK_NAMESPACE_NAME ":" BOOKMARK_APPLICATION_ELEMENT
" " BOOKMARK_NAME_ATTRIBUTE "=\"", name, "\""
- " " BOOKMARK_EXEC_ATTRIBUTE "=\"", exec, "\""
- " " BOOKMARK_MODIFIED_ATTRIBUTE "=\"", modified, "\""
+ " " BOOKMARK_EXEC_ATTRIBUTE "=\"", exec, "\"",
+ modified,
" " BOOKMARK_COUNT_ATTRIBUTE "=\"", count, "\"/>\n",
NULL);
@@ -369,6 +400,37 @@ bookmark_metadata_free (BookmarkMetadata *metadata)
g_slice_free (BookmarkMetadata, metadata);
}
+static BookmarkMetadata *
+bookmark_metadata_copy (BookmarkMetadata *metadata)
+{
+ BookmarkMetadata *copy;
+ GList *l;
+
+ if (!metadata)
+ return NULL;
+
+ copy = bookmark_metadata_new ();
+ copy->is_private = metadata->is_private;
+ copy->mime_type = g_strdup (metadata->mime_type);
+ copy->icon_href = g_strdup (metadata->icon_href);
+ copy->icon_mime = g_strdup (metadata->icon_mime);
+
+ copy->groups = g_list_copy_deep (metadata->groups, (GCopyFunc) g_strdup, NULL);
+ copy->applications =
+ g_list_copy_deep (metadata->applications, (GCopyFunc) bookmark_app_info_copy, NULL);
+
+ for (l = copy->applications; l; l = l->next)
+ {
+ BookmarkAppInfo *app_info = l->data;
+ g_hash_table_insert (copy->apps_by_name, app_info->name, app_info);
+ }
+
+ g_assert (g_hash_table_size (copy->apps_by_name) ==
+ g_hash_table_size (metadata->apps_by_name));
+
+ return copy;
+}
+
static gchar *
bookmark_metadata_dump (BookmarkMetadata *metadata)
{
@@ -543,6 +605,31 @@ bookmark_item_free (BookmarkItem *item)
g_slice_free (BookmarkItem, item);
}
+static BookmarkItem *
+bookmark_item_copy (BookmarkItem *item)
+{
+ BookmarkItem* copy;
+
+ if (!item)
+ return NULL;
+
+ copy = bookmark_item_new (item->uri);
+
+ copy->title = g_strdup (item->title);
+ copy->description = g_strdup (item->description);
+
+ copy->metadata = bookmark_metadata_copy (item->metadata);
+
+ if (item->added)
+ copy->added = g_date_time_ref (item->added);
+ if (item->modified)
+ copy->modified = g_date_time_ref (item->modified);
+ if (item->visited)
+ copy->visited = g_date_time_ref (item->visited);
+
+ return copy;
+}
+
static void
bookmark_item_touch_modified (BookmarkItem *item)
{
@@ -696,12 +783,7 @@ g_bookmark_file_clear (GBookmarkFile *bookmark)
g_list_free_full (bookmark->items, (GDestroyNotify) bookmark_item_free);
bookmark->items = NULL;
- if (bookmark->items_by_uri)
- {
- g_hash_table_destroy (bookmark->items_by_uri);
-
- bookmark->items_by_uri = NULL;
- }
+ g_clear_pointer (&bookmark->items_by_uri, g_hash_table_unref);
}
struct _ParseData
@@ -1672,6 +1754,42 @@ g_bookmark_file_new (void)
}
/**
+ * g_bookmark_file_copy:
+ * @bookmark: A #GBookmarkFile
+ *
+ * Deeply copies a @bookmark #GBookmarkFile object to a new one.
+ *
+ * Returns: (transfer full): the copy of @bookmark. Use
+ * g_bookmark_free() when finished using it.
+ *
+ * Since: 2.76
+ */
+GBookmarkFile *
+g_bookmark_file_copy (GBookmarkFile *bookmark)
+{
+ GBookmarkFile *copy;
+ GList *l;
+
+ g_return_val_if_fail (bookmark != NULL, NULL);
+
+ copy = g_bookmark_file_new ();
+ copy->title = g_strdup (bookmark->title);
+ copy->description = g_strdup (bookmark->description);
+ copy->items = g_list_copy_deep (bookmark->items, (GCopyFunc) bookmark_item_copy, NULL);
+
+ for (l = copy->items; l; l = l->next)
+ {
+ BookmarkItem *item = l->data;
+ g_hash_table_insert (copy->items_by_uri, item->uri, item);
+ }
+
+ g_assert (g_hash_table_size (copy->items_by_uri) ==
+ g_hash_table_size (bookmark->items_by_uri));
+
+ return copy;
+}
+
+/**
* g_bookmark_file_free:
* @bookmark: a #GBookmarkFile
*
diff --git a/glib/gbookmarkfile.h b/glib/gbookmarkfile.h
index e40186202..f753420ed 100644
--- a/glib/gbookmarkfile.h
+++ b/glib/gbookmarkfile.h
@@ -84,6 +84,9 @@ GBookmarkFile *g_bookmark_file_new (void);
GLIB_AVAILABLE_IN_ALL
void g_bookmark_file_free (GBookmarkFile *bookmark);
+GLIB_AVAILABLE_IN_2_76
+GBookmarkFile *g_bookmark_file_copy (GBookmarkFile *bookmark);
+
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_load_from_file (GBookmarkFile *bookmark,
const gchar *filename,
diff --git a/glib/gbytes.c b/glib/gbytes.c
index e4d269710..380e39f96 100644
--- a/glib/gbytes.c
+++ b/glib/gbytes.c
@@ -108,11 +108,9 @@ g_bytes_new (gconstpointer data,
*
* Creates a new #GBytes from @data.
*
- * After this call, @data belongs to the bytes and may no longer be
- * modified by the caller. g_free() will be called on @data when the
- * bytes is no longer in use. Because of this @data must have been created by
- * a call to g_malloc(), g_malloc0() or g_realloc() or by one of the many
- * functions that wrap these calls (such as g_new(), g_strdup(), etc).
+ * After this call, @data belongs to the #GBytes and may no longer be
+ * modified by the caller. The memory of @data has to be dynamically
+ * allocated and will eventually be freed with g_free().
*
* For creating #GBytes with memory from other allocators, see
* g_bytes_new_with_free_func().
diff --git a/glib/gcharset.c b/glib/gcharset.c
index 573f8c055..82cd0a7b8 100644
--- a/glib/gcharset.c
+++ b/glib/gcharset.c
@@ -188,7 +188,8 @@ charset_cache_free (gpointer data)
*
* On Linux, the character set is found by consulting nl_langinfo() if
* available. If not, the environment variables `LC_ALL`, `LC_CTYPE`, `LANG`
- * and `CHARSET` are queried in order.
+ * and `CHARSET` are queried in order. nl_langinfo() returns the C locale if
+ * no locale has been loaded by setlocale().
*
* The return value is %TRUE if the locale's encoding is UTF-8, in that
* case you can perhaps avoid calling g_convert().
@@ -445,7 +446,7 @@ read_aliases (const gchar *file,
FILE *fp;
char buf[256];
- fp = fopen (file,"r");
+ fp = fopen (file, "re");
if (!fp)
return;
while (fgets (buf, 256, fp))
diff --git a/glib/gconstructor.h b/glib/gconstructor.h
index 29509e4a4..9d2554c5f 100644
--- a/glib/gconstructor.h
+++ b/glib/gconstructor.h
@@ -95,6 +95,7 @@
#define G_MSVC_CTOR(_func,_sym_prefix) \
static void _func(void); \
extern int (* _array ## _func)(void); \
+ int _func ## _wrapper(void); \
int _func ## _wrapper(void) { _func(); g_slist_find (NULL, _array ## _func); return 0; } \
__pragma(comment(linker,"/include:" _sym_prefix # _func "_wrapper")) \
__pragma(section(".CRT$XCU",read)) \
@@ -103,6 +104,7 @@
#define G_MSVC_DTOR(_func,_sym_prefix) \
static void _func(void); \
extern int (* _array ## _func)(void); \
+ int _func ## _constructor(void); \
int _func ## _constructor(void) { atexit (_func); g_slist_find (NULL, _array ## _func); return 0; } \
__pragma(comment(linker,"/include:" _sym_prefix # _func "_constructor")) \
__pragma(section(".CRT$XCU",read)) \
diff --git a/glib/gconvert.c b/glib/gconvert.c
index 829fe38de..69bcc2f97 100644
--- a/glib/gconvert.c
+++ b/glib/gconvert.c
@@ -56,7 +56,6 @@
#include "glibintl.h"
-
/**
* SECTION:conversions
* @title: Character Set Conversion
@@ -85,7 +84,7 @@
* Character: P r e s e n t a c i ó n . s x i
* Hex code: 50 72 65 73 65 6e 74 61 63 69 c3 b3 6e 2e 73 78 69
* ]|
- * Glib uses UTF-8 for its strings, and GUI toolkits like GTK+ that use
+ * GLib uses UTF-8 for its strings, and GUI toolkits like GTK that use
* GLib do the same thing. If you get a file name from the file system,
* for example, from readdir() or from g_dir_read_name(), and you wish
* to display the file name to the user, you will need to convert it
@@ -1663,7 +1662,12 @@ hostname_validate (const char *hostname)
* errors. Any of the errors in #GConvertError may occur.
*
* Converts an escaped ASCII-encoded URI to a local filename in the
- * encoding used for filenames.
+ * encoding used for filenames.
+ *
+ * Since GLib 2.78, the query string and fragment can be present in the URI,
+ * but are not part of the resulting filename.
+ * We take inspiration from https://url.spec.whatwg.org/#file-state,
+ * but we don't support the entire standard.
*
* Returns: (type filename): a newly-allocated string holding
* the resulting filename, or %NULL on an error.
@@ -1673,11 +1677,13 @@ g_filename_from_uri (const gchar *uri,
gchar **hostname,
GError **error)
{
- const char *path_part;
+ const char *past_scheme;
const char *host_part;
char *unescaped_hostname;
char *result;
char *filename;
+ char *past_path;
+ char *temp_uri;
int offs;
#ifdef G_OS_WIN32
char *p, *slash;
@@ -1693,40 +1699,44 @@ g_filename_from_uri (const gchar *uri,
uri);
return NULL;
}
+
+ temp_uri = g_strdup (uri);
+
+ past_scheme = temp_uri + strlen ("file:");
- path_part = uri + strlen ("file:");
-
- if (strchr (path_part, '#') != NULL)
- {
- g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_BAD_URI,
- _("The local file URI “%s” may not include a “#”"),
- uri);
- return NULL;
- }
-
- if (has_case_prefix (path_part, "///"))
- path_part += 2;
- else if (has_case_prefix (path_part, "//"))
+ past_path = strchr (past_scheme, '?');
+ if (past_path != NULL)
+ *past_path = '\0';
+
+ past_path = strchr (past_scheme, '#');
+ if (past_path != NULL)
+ *past_path = '\0';
+
+ if (has_case_prefix (past_scheme, "///"))
+ past_scheme += 2;
+ else if (has_case_prefix (past_scheme, "//"))
{
- path_part += 2;
- host_part = path_part;
+ past_scheme += 2;
+ host_part = past_scheme;
- path_part = strchr (path_part, '/');
+ past_scheme = strchr (past_scheme, '/');
- if (path_part == NULL)
+ if (past_scheme == NULL)
{
+ g_free (temp_uri);
g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_BAD_URI,
_("The URI “%s” is invalid"),
uri);
return NULL;
}
- unescaped_hostname = g_unescape_uri_string (host_part, path_part - host_part, "", TRUE);
+ unescaped_hostname = g_unescape_uri_string (host_part, past_scheme - host_part, "", TRUE);
if (unescaped_hostname == NULL ||
!hostname_validate (unescaped_hostname))
{
g_free (unescaped_hostname);
+ g_free (temp_uri);
g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_BAD_URI,
_("The hostname of the URI “%s” is invalid"),
uri);
@@ -1739,10 +1749,11 @@ g_filename_from_uri (const gchar *uri,
g_free (unescaped_hostname);
}
- filename = g_unescape_uri_string (path_part, -1, "/", FALSE);
+ filename = g_unescape_uri_string (past_scheme, -1, "/", FALSE);
if (filename == NULL)
{
+ g_free (temp_uri);
g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_BAD_URI,
_("The URI “%s” contains invalidly escaped characters"),
uri);
@@ -1786,6 +1797,8 @@ g_filename_from_uri (const gchar *uri,
result = g_strdup (filename + offs);
g_free (filename);
+ g_free (temp_uri);
+
return result;
}
diff --git a/glib/gdataset.c b/glib/gdataset.c
index 500022630..452c48730 100644
--- a/glib/gdataset.c
+++ b/glib/gdataset.c
@@ -144,12 +144,13 @@
#define G_DATALIST_GET_POINTER(datalist) \
((GData*) ((gsize) g_atomic_pointer_get (datalist) & ~(gsize) G_DATALIST_FLAGS_MASK_INTERNAL))
-#define G_DATALIST_SET_POINTER(datalist, pointer) G_STMT_START { \
- gpointer _oldv, _newv; \
- do { \
- _oldv = g_atomic_pointer_get (datalist); \
+#define G_DATALIST_SET_POINTER(datalist, pointer) G_STMT_START { \
+ gpointer _oldv = g_atomic_pointer_get (datalist); \
+ gpointer _newv; \
+ do { \
_newv = (gpointer) (((gsize) _oldv & G_DATALIST_FLAGS_MASK_INTERNAL) | (gsize) pointer); \
- } while (!g_atomic_pointer_compare_and_exchange ((void**) datalist, _oldv, _newv)); \
+ } while (!g_atomic_pointer_compare_and_exchange_full ((void**) datalist, _oldv, \
+ _newv, &_oldv)); \
} G_STMT_END
/* --- structures --- */
@@ -934,8 +935,9 @@ g_datalist_id_get_data (GData **datalist,
* g_datalist_id_dup_data: (skip)
* @datalist: location of a datalist
* @key_id: the #GQuark identifying a data element
- * @dup_func: (nullable) (scope call): function to duplicate the old value
- * @user_data: (closure): passed as user_data to @dup_func
+ * @dup_func: (scope call) (closure user_data) (nullable): function to
+ * duplicate the old value
+ * @user_data: passed as user_data to @dup_func
*
* This is a variant of g_datalist_id_get_data() which
* returns a 'duplicate' of the value. @dup_func defines the
@@ -1175,8 +1177,8 @@ g_datalist_get_data (GData **datalist,
/**
* g_dataset_foreach:
* @dataset_location: (not nullable): the location identifying the dataset.
- * @func: (scope call): the function to call for each data element.
- * @user_data: (closure): user data to pass to the function.
+ * @func: (scope call) (closure user_data): the function to call for each data element.
+ * @user_data: user data to pass to the function.
*
* Calls the given function for each data element which is associated
* with the given location. Note that this function is NOT thread-safe.
@@ -1214,8 +1216,8 @@ g_dataset_foreach (gconstpointer dataset_location,
/**
* g_datalist_foreach:
* @datalist: a datalist.
- * @func: (scope call): the function to call for each data element.
- * @user_data: (closure): user data to pass to the function.
+ * @func: (scope call) (closure user_data): the function to call for each data element.
+ * @user_data: user data to pass to the function.
*
* Calls the given function for each data element of the datalist. The
* function is called with each data element's #GQuark id and data,
diff --git a/glib/gdate.c b/glib/gdate.c
index 85892ec9b..f60ec0cbf 100644
--- a/glib/gdate.c
+++ b/glib/gdate.c
@@ -53,6 +53,7 @@
#include "gtestutils.h"
#include "gthread.h"
#include "gunicode.h"
+#include "gutilsprivate.h"
#ifdef G_OS_WIN32
#include "garray.h"
@@ -1403,6 +1404,33 @@ g_date_set_parse (GDate *d,
G_UNLOCK (g_date_global);
}
+gboolean
+_g_localtime (time_t timet, struct tm *out_tm)
+{
+ gboolean success = TRUE;
+
+#ifdef HAVE_LOCALTIME_R
+ if (!localtime_r (&timet, out_tm))
+ success = FALSE;
+#else
+ {
+ struct tm *ptm = localtime (&timet);
+
+ if (ptm == NULL)
+ {
+ /* Happens at least in Microsoft's C library if you pass a
+ * negative time_t.
+ */
+ success = FALSE;
+ }
+ else
+ memcpy (out_tm, ptm, sizeof (struct tm));
+ }
+#endif
+
+ return success;
+}
+
/**
* g_date_set_time_t:
* @date: a #GDate
@@ -1427,33 +1455,21 @@ g_date_set_time_t (GDate *date,
time_t timet)
{
struct tm tm;
-
+ gboolean success;
+
g_return_if_fail (date != NULL);
-
-#ifdef HAVE_LOCALTIME_R
- localtime_r (&timet, &tm);
-#else
- {
- struct tm *ptm = localtime (&timet);
- if (ptm == NULL)
- {
- /* Happens at least in Microsoft's C library if you pass a
- * negative time_t. Use 2000-01-01 as default date.
- */
-#ifndef G_DISABLE_CHECKS
- g_return_if_fail_warning (G_LOG_DOMAIN, "g_date_set_time", "ptm != NULL");
-#endif
+ success = _g_localtime (timet, &tm);
+ if (!success)
+ {
+ /* Still set a default date, 2000-01-01.
+ *
+ * We may assert out below. */
+ tm.tm_mon = 0;
+ tm.tm_mday = 1;
+ tm.tm_year = 100;
+ }
- tm.tm_mon = 0;
- tm.tm_mday = 1;
- tm.tm_year = 100;
- }
- else
- memcpy ((void *) &tm, (void *) ptm, sizeof(struct tm));
- }
-#endif
-
date->julian = FALSE;
date->month = tm.tm_mon + 1;
@@ -1463,6 +1479,11 @@ g_date_set_time_t (GDate *date,
g_return_if_fail (g_date_valid_dmy (date->day, date->month, date->year));
date->dmy = TRUE;
+
+#ifndef G_DISABLE_CHECKS
+ if (!success)
+ g_return_if_fail_warning (G_LOG_DOMAIN, "g_date_set_time", "localtime() == NULL");
+#endif
}
diff --git a/glib/gdatetime.c b/glib/gdatetime.c
index a9c472e55..2640e3b24 100644
--- a/glib/gdatetime.c
+++ b/glib/gdatetime.c
@@ -3340,103 +3340,103 @@ g_date_time_format_utf8 (GDateTime *datetime,
* Creates a newly allocated string representing the requested @format.
*
* The format strings understood by this function are a subset of the
- * strftime() format language as specified by C99. The \%D, \%U and \%W
- * conversions are not supported, nor is the 'E' modifier. The GNU
- * extensions \%k, \%l, \%s and \%P are supported, however, as are the
- * '0', '_' and '-' modifiers. The Python extension \%f is also supported.
+ * `strftime()` format language as specified by C99. The `%D`, `%U` and `%W`
+ * conversions are not supported, nor is the `E` modifier. The GNU
+ * extensions `%k`, `%l`, `%s` and `%P` are supported, however, as are the
+ * `0`, `_` and `-` modifiers. The Python extension `%f` is also supported.
*
- * In contrast to strftime(), this function always produces a UTF-8
+ * In contrast to `strftime()`, this function always produces a UTF-8
* string, regardless of the current locale. Note that the rendering of
- * many formats is locale-dependent and may not match the strftime()
+ * many formats is locale-dependent and may not match the `strftime()`
* output exactly.
*
* The following format specifiers are supported:
*
- * - \%a: the abbreviated weekday name according to the current locale
- * - \%A: the full weekday name according to the current locale
- * - \%b: the abbreviated month name according to the current locale
- * - \%B: the full month name according to the current locale
- * - \%c: the preferred date and time representation for the current locale
- * - \%C: the century number (year/100) as a 2-digit integer (00-99)
- * - \%d: the day of the month as a decimal number (range 01 to 31)
- * - \%e: the day of the month as a decimal number (range 1 to 31);
- * single digits are preceded by a figure space
- * - \%F: equivalent to `%Y-%m-%d` (the ISO 8601 date format)
- * - \%g: the last two digits of the ISO 8601 week-based year as a
- * decimal number (00-99). This works well with \%V and \%u.
- * - \%G: the ISO 8601 week-based year as a decimal number. This works
- * well with \%V and \%u.
- * - \%h: equivalent to \%b
- * - \%H: the hour as a decimal number using a 24-hour clock (range 00 to 23)
- * - \%I: the hour as a decimal number using a 12-hour clock (range 01 to 12)
- * - \%j: the day of the year as a decimal number (range 001 to 366)
- * - \%k: the hour (24-hour clock) as a decimal number (range 0 to 23);
- * single digits are preceded by a figure space
- * - \%l: the hour (12-hour clock) as a decimal number (range 1 to 12);
- * single digits are preceded by a figure space
- * - \%m: the month as a decimal number (range 01 to 12)
- * - \%M: the minute as a decimal number (range 00 to 59)
- * - \%f: the microsecond as a decimal number (range 000000 to 999999)
- * - \%p: either "AM" or "PM" according to the given time value, or the
+ * - `%a`: the abbreviated weekday name according to the current locale
+ * - `%A`: the full weekday name according to the current locale
+ * - `%b`: the abbreviated month name according to the current locale
+ * - `%B`: the full month name according to the current locale
+ * - `%c`: the preferred date and time representation for the current locale
+ * - `%C`: the century number (year/100) as a 2-digit integer (00-99)
+ * - `%d`: the day of the month as a decimal number (range 01 to 31)
+ * - `%e`: the day of the month as a decimal number (range 1 to 31);
+ * single digits are preceded by a figure space (U+2007)
+ * - `%F`: equivalent to `%Y-%m-%d` (the ISO 8601 date format)
+ * - `%g`: the last two digits of the ISO 8601 week-based year as a
+ * decimal number (00-99). This works well with `%V` and `%u`.
+ * - `%G`: the ISO 8601 week-based year as a decimal number. This works
+ * well with `%V` and `%u`.
+ * - `%h`: equivalent to `%b`
+ * - `%H`: the hour as a decimal number using a 24-hour clock (range 00 to 23)
+ * - `%I`: the hour as a decimal number using a 12-hour clock (range 01 to 12)
+ * - `%j`: the day of the year as a decimal number (range 001 to 366)
+ * - `%k`: the hour (24-hour clock) as a decimal number (range 0 to 23);
+ * single digits are preceded by a figure space (U+2007)
+ * - `%l`: the hour (12-hour clock) as a decimal number (range 1 to 12);
+ * single digits are preceded by a figure space (U+2007)
+ * - `%m`: the month as a decimal number (range 01 to 12)
+ * - `%M`: the minute as a decimal number (range 00 to 59)
+ * - `%f`: the microsecond as a decimal number (range 000000 to 999999)
+ * - `%p`: either ‘AM’ or ‘PM’ according to the given time value, or the
* corresponding strings for the current locale. Noon is treated as
- * "PM" and midnight as "AM". Use of this format specifier is discouraged, as
- * many locales have no concept of AM/PM formatting. Use \%c or \%X instead.
- * - \%P: like \%p but lowercase: "am" or "pm" or a corresponding string for
+ * ‘PM’ and midnight as ‘AM’. Use of this format specifier is discouraged, as
+ * many locales have no concept of AM/PM formatting. Use `%c` or `%X` instead.
+ * - `%P`: like `%p` but lowercase: ‘am’ or ‘pm’ or a corresponding string for
* the current locale. Use of this format specifier is discouraged, as
- * many locales have no concept of AM/PM formatting. Use \%c or \%X instead.
- * - \%r: the time in a.m. or p.m. notation. Use of this format specifier is
- * discouraged, as many locales have no concept of AM/PM formatting. Use \%c
- * or \%X instead.
- * - \%R: the time in 24-hour notation (\%H:\%M)
- * - \%s: the number of seconds since the Epoch, that is, since 1970-01-01
+ * many locales have no concept of AM/PM formatting. Use `%c` or `%X` instead.
+ * - `%r`: the time in a.m. or p.m. notation. Use of this format specifier is
+ * discouraged, as many locales have no concept of AM/PM formatting. Use `%c`
+ * or `%X` instead.
+ * - `%R`: the time in 24-hour notation (`%H:%M`)
+ * - `%s`: the number of seconds since the Epoch, that is, since 1970-01-01
* 00:00:00 UTC
- * - \%S: the second as a decimal number (range 00 to 60)
- * - \%t: a tab character
- * - \%T: the time in 24-hour notation with seconds (\%H:\%M:\%S)
- * - \%u: the ISO 8601 standard day of the week as a decimal, range 1 to 7,
- * Monday being 1. This works well with \%G and \%V.
- * - \%V: the ISO 8601 standard week number of the current year as a decimal
+ * - `%S`: the second as a decimal number (range 00 to 60)
+ * - `%t`: a tab character
+ * - `%T`: the time in 24-hour notation with seconds (`%H:%M:%S`)
+ * - `%u`: the ISO 8601 standard day of the week as a decimal, range 1 to 7,
+ * Monday being 1. This works well with `%G` and `%V`.
+ * - `%V`: the ISO 8601 standard week number of the current year as a decimal
* number, range 01 to 53, where week 1 is the first week that has at
* least 4 days in the new year. See g_date_time_get_week_of_year().
- * This works well with \%G and \%u.
- * - \%w: the day of the week as a decimal, range 0 to 6, Sunday being 0.
- * This is not the ISO 8601 standard format -- use \%u instead.
- * - \%x: the preferred date representation for the current locale without
+ * This works well with `%G` and `%u`.
+ * - `%w`: the day of the week as a decimal, range 0 to 6, Sunday being 0.
+ * This is not the ISO 8601 standard format — use `%u` instead.
+ * - `%x`: the preferred date representation for the current locale without
* the time
- * - \%X: the preferred time representation for the current locale without
+ * - `%X`: the preferred time representation for the current locale without
* the date
- * - \%y: the year as a decimal number without the century
- * - \%Y: the year as a decimal number including the century
- * - \%z: the time zone as an offset from UTC (+hhmm)
- * - \%:z: the time zone as an offset from UTC (+hh:mm).
- * This is a gnulib strftime() extension. Since: 2.38
- * - \%::z: the time zone as an offset from UTC (+hh:mm:ss). This is a
- * gnulib strftime() extension. Since: 2.38
- * - \%:::z: the time zone as an offset from UTC, with : to necessary
- * precision (e.g., -04, +05:30). This is a gnulib strftime() extension. Since: 2.38
- * - \%Z: the time zone or name or abbreviation
- * - \%\%: a literal \% character
+ * - `%y`: the year as a decimal number without the century
+ * - `%Y`: the year as a decimal number including the century
+ * - `%z`: the time zone as an offset from UTC (`+hhmm`)
+ * - `%:z`: the time zone as an offset from UTC (`+hh:mm`).
+ * This is a gnulib `strftime()` extension. Since: 2.38
+ * - `%::z`: the time zone as an offset from UTC (`+hh:mm:ss`). This is a
+ * gnulib `strftime()` extension. Since: 2.38
+ * - `%:::z`: the time zone as an offset from UTC, with `:` to necessary
+ * precision (e.g., `-04`, `+05:30`). This is a gnulib `strftime()` extension. Since: 2.38
+ * - `%Z`: the time zone or name or abbreviation
+ * - `%%`: a literal `%` character
*
* Some conversion specifications can be modified by preceding the
* conversion specifier by one or more modifier characters. The
* following modifiers are supported for many of the numeric
* conversions:
*
- * - O: Use alternative numeric symbols, if the current locale supports those.
- * - _: Pad a numeric result with spaces. This overrides the default padding
+ * - `O`: Use alternative numeric symbols, if the current locale supports those.
+ * - `_`: Pad a numeric result with spaces. This overrides the default padding
* for the specifier.
- * - -: Do not pad a numeric result. This overrides the default padding
+ * - `-`: Do not pad a numeric result. This overrides the default padding
* for the specifier.
- * - 0: Pad a numeric result with zeros. This overrides the default padding
+ * - `0`: Pad a numeric result with zeros. This overrides the default padding
* for the specifier.
*
- * Additionally, when O is used with B, b, or h, it produces the alternative
+ * Additionally, when `O` is used with `B`, `b`, or `h`, it produces the alternative
* form of a month name. The alternative form should be used when the month
* name is used without a day number (e.g., standalone). It is required in
* some languages (Baltic, Slavic, Greek, and more) due to their grammatical
- * rules. For other languages there is no difference. \%OB is a GNU and BSD
- * strftime() extension expected to be added to the future POSIX specification,
- * \%Ob and \%Oh are GNU strftime() extensions. Since: 2.56
+ * rules. For other languages there is no difference. `%OB` is a GNU and BSD
+ * `strftime()` extension expected to be added to the future POSIX specification,
+ * `%Ob` and `%Oh` are GNU `strftime()` extensions. Since: 2.56
*
* Returns: (transfer full) (nullable): a newly allocated string formatted to
* the requested format or %NULL in the case that there was an error (such
diff --git a/glib/gerror.c b/glib/gerror.c
index 61817fa7b..ea168e020 100644
--- a/glib/gerror.c
+++ b/glib/gerror.c
@@ -53,7 +53,7 @@
* These two kinds of errors are fundamentally different: runtime errors
* should be handled or reported to the user, programming errors should
* be eliminated by fixing the bug in the program. This is why most
- * functions in GLib and GTK+ do not use the #GError facility.
+ * functions in GLib and GTK do not use the #GError facility.
*
* Functions that can fail take a return location for a #GError as their
* last argument. On error, a new #GError instance will be allocated and
@@ -755,13 +755,14 @@ g_error_new_valist (GQuark domain,
const gchar *format,
va_list args)
{
+ g_return_val_if_fail (format != NULL, NULL);
+
/* Historically, GError allowed this (although it was never meant to work),
* and it has significant use in the wild, which g_return_val_if_fail
* would break. It should maybe g_return_val_if_fail in GLib 4.
* (GNOME#660371, GNOME#560482)
*/
g_warn_if_fail (domain != 0);
- g_warn_if_fail (format != NULL);
return g_error_new_steal (domain, code, g_strdup_vprintf (format, args), NULL);
}
@@ -887,9 +888,10 @@ g_error_copy (const GError *error)
ErrorDomainInfo info;
g_return_val_if_fail (error != NULL, NULL);
- /* See g_error_new_valist for why these don't return */
+ g_return_val_if_fail (error->message != NULL, NULL);
+
+ /* See g_error_new_valist for why this doesn’t return */
g_warn_if_fail (error->domain != 0);
- g_warn_if_fail (error->message != NULL);
copy = g_error_new_steal (error->domain,
error->code,
diff --git a/glib/gfileutils.c b/glib/gfileutils.c
index f0c8f6776..0918a6547 100644
--- a/glib/gfileutils.c
+++ b/glib/gfileutils.c
@@ -313,10 +313,13 @@ g_mkdir_with_parents (const gchar *pathname,
*
* You should never use g_file_test() to test whether it is safe
* to perform an operation, because there is always the possibility
- * of the condition changing before you actually perform the operation.
+ * of the condition changing before you actually perform the operation,
+ * see [TOCTOU](https://en.wikipedia.org/wiki/Time-of-check_to_time-of-use).
+ *
* For example, you might think you could use %G_FILE_TEST_IS_SYMLINK
* to know whether it is safe to write to a file without being
* tricked into writing into a different location. It doesn't work!
+ *
* |[<!-- language="C" -->
* // DON'T DO THIS
* if (!g_file_test (filename, G_FILE_TEST_IS_SYMLINK))
@@ -324,6 +327,21 @@ g_mkdir_with_parents (const gchar *pathname,
* fd = g_open (filename, O_WRONLY);
* // write to fd
* }
+ *
+ * // DO THIS INSTEAD
+ * fd = g_open (filename, O_WRONLY | O_NOFOLLOW | O_CLOEXEC);
+ * if (fd == -1)
+ * {
+ * // check error
+ * if (errno == ELOOP)
+ * // file is a symlink and can be ignored
+ * else
+ * // handle errors as before
+ * }
+ * else
+ * {
+ * // write to fd
+ * }
* ]|
*
* Another thing to note is that %G_FILE_TEST_EXISTS and
@@ -890,7 +908,7 @@ get_contents_posix (const gchar *filename,
gint fd;
/* O_BINARY useful on Cygwin */
- fd = open (filename, O_RDONLY|O_BINARY);
+ fd = open (filename, O_RDONLY | O_BINARY | O_CLOEXEC);
if (fd < 0)
{
@@ -1065,7 +1083,7 @@ rename_file (const char *old_name,
if (do_fsync)
{
gchar *dir = g_path_get_dirname (new_name);
- int dir_fd = g_open (dir, O_RDONLY, 0);
+ int dir_fd = g_open (dir, O_RDONLY | O_CLOEXEC, 0);
if (dir_fd >= 0)
{
@@ -1121,6 +1139,36 @@ fd_should_be_fsynced (int fd,
#endif /* !HAVE_FSYNC */
}
+static gboolean
+truncate_file (int fd,
+ off_t length,
+ const char *dest_file,
+ GError **error)
+{
+ while (
+#ifdef G_OS_WIN32
+ g_win32_ftruncate (fd, length) < 0
+#else
+ ftruncate (fd, length) < 0
+#endif
+ )
+ {
+ int saved_errno = errno;
+
+ if (saved_errno == EINTR)
+ continue;
+
+ if (error != NULL)
+ set_file_error (error,
+ dest_file,
+ "Failed to write file “%s”: ftruncate() failed: %s",
+ saved_errno);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
/* closes @fd once it’s finished (on success or error) */
static gboolean
write_to_file (const gchar *contents,
@@ -1143,8 +1191,13 @@ write_to_file (const gchar *contents,
{
gssize s;
- s = write (fd, contents, MIN (length, G_MAXSSIZE));
-
+#ifdef G_OS_WIN32
+ /* 'write' on windows uses int types, so limit count to G_MAXINT */
+ s = write (fd, contents, MIN (length, (gsize) G_MAXINT));
+#else
+ /* Limit count to G_MAXSSIZE to fit into the return value. */
+ s = write (fd, contents, MIN (length, (gsize) G_MAXSSIZE));
+#endif
if (s < 0)
{
int saved_errno = errno;
@@ -1328,7 +1381,7 @@ g_file_set_contents_full (const gchar *filename,
tmp_filename = g_strdup_printf ("%s.XXXXXX", filename);
errno = 0;
- fd = g_mkstemp_full (tmp_filename, O_RDWR | O_BINARY, mode);
+ fd = g_mkstemp_full (tmp_filename, O_RDWR | O_BINARY | O_CLOEXEC, mode);
if (fd == -1)
{
@@ -1452,6 +1505,8 @@ consistent_out:
}
do_fsync = fd_should_be_fsynced (direct_fd, filename, flags);
+ if (!truncate_file (direct_fd, 0, filename, error))
+ return FALSE;
if (!write_to_file (contents, length, g_steal_fd (&direct_fd), filename,
do_fsync, error))
return FALSE;
@@ -1477,7 +1532,7 @@ get_tmp_file (gchar *tmpl,
static const char letters[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
static const int NLETTERS = sizeof (letters) - 1;
- glong value;
+ gint64 value;
gint64 now_us;
static int counter = 0;
@@ -1498,7 +1553,7 @@ get_tmp_file (gchar *tmpl,
for (count = 0; count < 100; value += 7777, ++count)
{
- glong v = value;
+ gint64 v = value;
/* Fill in the random bits. */
XXXXXX[0] = letters[v % NLETTERS];
@@ -1574,8 +1629,8 @@ wrap_g_open (const gchar *filename,
* g_dir_make_tmp() instead.
*
* Returns: (nullable) (type filename): A pointer to @tmpl, which has been
- * modified to hold the directory name. In case of errors, %NULL is
- * returned, and %errno will be set.
+ * modified to hold the directory name. In case of errors, %NULL is
+ * returned, and %errno will be set.
*
* Since: 2.30
*/
@@ -1610,8 +1665,8 @@ g_mkdtemp_full (gchar *tmpl,
* g_dir_make_tmp() instead.
*
* Returns: (nullable) (type filename): A pointer to @tmpl, which has been
- * modified to hold the directory name. In case of errors, %NULL is
- * returned and %errno will be set.
+ * modified to hold the directory name. In case of errors, %NULL is
+ * returned and %errno will be set.
*
* Since: 2.30
*/
@@ -1625,7 +1680,7 @@ g_mkdtemp (gchar *tmpl)
* g_mkstemp_full: (skip)
* @tmpl: (type filename): template filename
* @flags: flags to pass to an open() call in addition to O_EXCL
- * and O_CREAT, which are passed automatically
+ * and O_CREAT, which are passed automatically
* @mode: permissions to create the temporary file with
*
* Opens a temporary file. See the mkstemp() documentation
@@ -1641,9 +1696,9 @@ g_mkdtemp (gchar *tmpl)
* on Windows it should be in UTF-8.
*
* Returns: A file handle (as from open()) to the file
- * opened for reading and writing. The file handle should be
- * closed with close(). In case of errors, -1 is returned
- * and %errno will be set.
+ * opened for reading and writing. The file handle should be
+ * closed with close(). In case of errors, -1 is returned
+ * and %errno will be set.
*
* Since: 2.22
*/
@@ -1673,15 +1728,15 @@ g_mkstemp_full (gchar *tmpl,
* Most importantly, on Windows it should be in UTF-8.
*
* Returns: A file handle (as from open()) to the file
- * opened for reading and writing. The file is opened in binary
- * mode on platforms where there is a difference. The file handle
- * should be closed with close(). In case of errors, -1 is
- * returned and %errno will be set.
+ * opened for reading and writing. The file is opened in binary
+ * mode on platforms where there is a difference. The file handle
+ * should be closed with close(). In case of errors, -1 is
+ * returned and %errno will be set.
*/
gint
g_mkstemp (gchar *tmpl)
{
- return g_mkstemp_full (tmpl, O_RDWR | O_BINARY, 0600);
+ return g_mkstemp_full (tmpl, O_RDWR | O_BINARY | O_CLOEXEC, 0600);
}
static gint
@@ -1764,9 +1819,9 @@ g_get_tmp_name (const gchar *tmpl,
/**
* g_file_open_tmp:
* @tmpl: (type filename) (nullable): Template for file name, as in
- * g_mkstemp(), basename only, or %NULL for a default template
+ * g_mkstemp(), basename only, or %NULL for a default template
* @name_used: (out) (type filename): location to store actual name used,
- * or %NULL
+ * or %NULL
* @error: return location for a #GError
*
* Opens a file for writing in the preferred directory for temporary
@@ -1787,9 +1842,9 @@ g_get_tmp_name (const gchar *tmpl,
* name encoding.
*
* Returns: A file handle (as from open()) to the file opened for
- * reading and writing. The file is opened in binary mode on platforms
- * where there is a difference. The file handle should be closed with
- * close(). In case of errors, -1 is returned and @error will be set.
+ * reading and writing. The file is opened in binary mode on platforms
+ * where there is a difference. The file handle should be closed with
+ * close(). In case of errors, -1 is returned and @error will be set.
*/
gint
g_file_open_tmp (const gchar *tmpl,
@@ -1803,7 +1858,7 @@ g_file_open_tmp (const gchar *tmpl,
result = g_get_tmp_name (tmpl, &fulltemplate,
wrap_g_open,
- O_CREAT | O_EXCL | O_RDWR | O_BINARY,
+ O_CREAT | O_EXCL | O_RDWR | O_BINARY | O_CLOEXEC,
0600,
error);
if (result != -1)
@@ -1820,7 +1875,7 @@ g_file_open_tmp (const gchar *tmpl,
/**
* g_dir_make_tmp:
* @tmpl: (type filename) (nullable): Template for directory name,
- * as in g_mkdtemp(), basename only, or %NULL for a default template
+ * as in g_mkdtemp(), basename only, or %NULL for a default template
* @error: return location for a #GError
*
* Creates a subdirectory in the preferred directory for temporary
@@ -1836,9 +1891,9 @@ g_file_open_tmp (const gchar *tmpl,
* modified, and might thus be a read-only literal string.
*
* Returns: (type filename) (transfer full): The actual name used. This string
- * should be freed with g_free() when not needed any longer and is
- * is in the GLib file name encoding. In case of errors, %NULL is
- * returned and @error will be set.
+ * should be freed with g_free() when not needed any longer and is
+ * is in the GLib file name encoding. In case of errors, %NULL is
+ * returned and @error will be set.
*
* Since: 2.30
*/
@@ -1963,11 +2018,12 @@ g_build_path_va (const gchar *separator,
* g_build_pathv:
* @separator: a string used to separator the elements of the path.
* @args: (array zero-terminated=1) (element-type filename): %NULL-terminated
- * array of strings containing the path elements.
+ * array of strings containing the path elements.
*
- * Behaves exactly like g_build_path(), but takes the path elements
- * as a string array, instead of varargs. This function is mainly
- * meant for language bindings.
+ * Behaves exactly like g_build_path(), but takes the path elements
+ * as a string array, instead of variadic arguments.
+ *
+ * This function is mainly meant for language bindings.
*
* Returns: (type filename) (transfer full): a newly-allocated string that
* must be freed with g_free().
@@ -1992,10 +2048,12 @@ g_build_pathv (const gchar *separator,
* @...: remaining elements in path, terminated by %NULL
*
* Creates a path from a series of elements using @separator as the
- * separator between elements. At the boundary between two elements,
- * any trailing occurrences of separator in the first element, or
- * leading occurrences of separator in the second element are removed
- * and exactly one copy of the separator is inserted.
+ * separator between elements.
+ *
+ * At the boundary between two elements, any trailing occurrences of
+ * separator in the first element, or leading occurrences of separator
+ * in the second element are removed and exactly one copy of the
+ * separator is inserted.
*
* Empty elements are ignored.
*
@@ -2018,8 +2076,7 @@ g_build_pathv (const gchar *separator,
* copies of the separator, elements consisting only of copies
* of the separator are ignored.
*
- * Returns: (type filename) (transfer full): a newly-allocated string that
- * must be freed with g_free().
+ * Returns: (type filename) (transfer full): the newly allocated path
**/
gchar *
g_build_path (const gchar *separator,
@@ -2175,11 +2232,16 @@ g_build_filename_va (const gchar *first_argument,
* @first_element: (type filename): the first element in the path
* @args: va_list of remaining elements in path
*
+ * Creates a filename from a list of elements using the correct
+ * separator for the current platform.
+ *
* Behaves exactly like g_build_filename(), but takes the path elements
- * as a va_list. This function is mainly meant for language bindings.
+ * as a va_list.
*
- * Returns: (type filename) (transfer full): a newly-allocated string that
- * must be freed with g_free().
+ * This function is mainly meant for implementing other variadic arguments
+ * functions.
+ *
+ * Returns: (type filename) (transfer full): the newly allocated path
*
* Since: 2.56
*/
@@ -2195,14 +2257,19 @@ g_build_filename_valist (const gchar *first_element,
/**
* g_build_filenamev:
* @args: (array zero-terminated=1) (element-type filename): %NULL-terminated
- * array of strings containing the path elements.
+ * array of strings containing the path elements.
*
- * Behaves exactly like g_build_filename(), but takes the path elements
- * as a string array, instead of varargs. This function is mainly
+ * Creates a filename from a vector of elements using the correct
+ * separator for the current platform.
+ *
+ * This function behaves exactly like g_build_filename(), but takes the path
+ * elements as a string array, instead of varargs. This function is mainly
* meant for language bindings.
*
- * Returns: (type filename) (transfer full): a newly-allocated string that
- * must be freed with g_free().
+ * If you are building a path programmatically you may want to use
+ * #GPathBuf instead.
+ *
+ * Returns: (type filename) (transfer full): the newly allocated path
*
* Since: 2.8
*/
@@ -2218,7 +2285,7 @@ g_build_filenamev (gchar **args)
* @...: remaining elements in path, terminated by %NULL
*
* Creates a filename from a series of elements using the correct
- * separator for filenames.
+ * separator for the current platform.
*
* On Unix, this function behaves identically to `g_build_path
* (G_DIR_SEPARATOR_S, first_element, ....)`.
@@ -2233,9 +2300,11 @@ g_build_filenamev (gchar **args)
* path. If the first element is a relative path, the result will
* be a relative path.
*
- * Returns: (type filename) (transfer full): a newly-allocated string that
- * must be freed with g_free().
- **/
+ * If you are building a path programmatically you may want to use
+ * #GPathBuf instead.
+ *
+ * Returns: (type filename) (transfer full): the newly allocated path
+ */
gchar *
g_build_filename (const gchar *first_element,
...)
@@ -2256,14 +2325,15 @@ g_build_filename (const gchar *first_element,
* @error: return location for a #GError
*
* Reads the contents of the symbolic link @filename like the POSIX
- * readlink() function.
+ * `readlink()` function.
+ *
+ * The returned string is in the encoding used for filenames. Use
+ * g_filename_to_utf8() to convert it to UTF-8.
*
- * The returned string is in the encoding used
- * for filenames. Use g_filename_to_utf8() to convert it to UTF-8.
+ * The returned string may also be a relative path. Use g_build_filename()
+ * to convert it to an absolute path:
*
- * The returned string may also be a relative path. Use g_build_filename() to
- * convert it to an absolute path:
- * |[
+ * |[<!-- language="C" -->
* g_autoptr(GError) local_error = NULL;
* g_autofree gchar *link_target = g_file_read_link ("/etc/localtime", &local_error);
*
@@ -2279,7 +2349,7 @@ g_build_filename (const gchar *first_element,
* ]|
*
* Returns: (type filename) (transfer full): A newly-allocated string with
- * the contents of the symbolic link, or %NULL if an error occurred.
+ * the contents of the symbolic link, or %NULL if an error occurred.
*
* Since: 2.4
*/
@@ -2486,12 +2556,12 @@ g_path_skip_root (const gchar *file_name)
* string.
*
* Returns: (type filename): the name of the file without any leading
- * directory components
+ * directory components
*
* Deprecated:2.2: Use g_path_get_basename() instead, but notice
- * that g_path_get_basename() allocates new memory for the
- * returned string, unlike this function which returns a pointer
- * into the argument.
+ * that g_path_get_basename() allocates new memory for the
+ * returned string, unlike this function which returns a pointer
+ * into the argument.
*/
const gchar *
g_basename (const gchar *file_name)
@@ -2534,7 +2604,7 @@ g_basename (const gchar *file_name)
* separator is returned. If @file_name is empty, it gets ".".
*
* Returns: (type filename) (transfer full): a newly allocated string
- * containing the last component of the filename
+ * containing the last component of the filename
*/
gchar *
g_path_get_basename (const gchar *file_name)
@@ -2728,7 +2798,8 @@ g_path_get_dirname (const gchar *file_name)
* No file system I/O is done.
*
* Returns: (type filename) (transfer full): a newly allocated string with the
- * canonical file path
+ * canonical file path
+ *
* Since: 2.58
*/
gchar *
@@ -2901,7 +2972,7 @@ g_get_current_dir (void)
const gchar *pwd;
gchar *buffer = NULL;
gchar *dir = NULL;
- static gulong max_len = 0;
+ static gsize buffer_size = 0;
struct stat pwdbuf, dotbuf;
pwd = g_getenv ("PWD");
@@ -2910,27 +2981,31 @@ g_get_current_dir (void)
dotbuf.st_dev == pwdbuf.st_dev && dotbuf.st_ino == pwdbuf.st_ino)
return g_strdup (pwd);
- if (max_len == 0)
- max_len = (G_PATH_LENGTH == -1) ? 2048 : G_PATH_LENGTH;
+ if (buffer_size == 0)
+ buffer_size = (G_PATH_LENGTH == -1) ? 2048 : G_PATH_LENGTH;
- while (max_len < G_MAXULONG / 2)
+ while (buffer_size < G_MAXSIZE / 2)
{
g_free (buffer);
- buffer = g_new (gchar, max_len + 1);
+ buffer = g_new (gchar, buffer_size);
*buffer = 0;
- dir = getcwd (buffer, max_len);
+ dir = getcwd (buffer, buffer_size);
if (dir || errno != ERANGE)
break;
- max_len *= 2;
+ buffer_size *= 2;
}
+ /* Check that getcwd() nul-terminated the string. It should do, but the specs
+ * don’t actually explicitly state that:
+ * https://pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html */
+ g_assert (dir == NULL || strnlen (dir, buffer_size) < buffer_size);
+
if (!dir || !*buffer)
{
- /* hm, should we g_error() out here?
- * this can happen if e.g. "./" has mode \0000
- */
+ /* Fallback return value */
+ g_assert (buffer_size >= 2);
buffer[0] = G_DIR_SEPARATOR;
buffer[1] = 0;
}
diff --git a/glib/ggettext.c b/glib/ggettext.c
index 42f3d0e72..71654fb84 100644
--- a/glib/ggettext.c
+++ b/glib/ggettext.c
@@ -362,12 +362,12 @@ _g_dgettext_should_translate (void)
* translations for the current locale.
*
* The advantage of using this function over dgettext() proper is that
- * libraries using this function (like GTK+) will not use translations
+ * libraries using this function (like GTK) will not use translations
* if the application using the library does not have translations for
* the current locale. This results in a consistent English-only
* interface instead of one having partial translations. For this
* feature to work, the call to textdomain() and setlocale() should
- * precede any g_dgettext() invocations. For GTK+, it means calling
+ * precede any g_dgettext() invocations. For GTK, it means calling
* textdomain() before gtk_init or its variants.
*
* This function disables translations if and only if upon its first
@@ -385,7 +385,7 @@ _g_dgettext_should_translate (void)
*
* Note that this behavior may not be desired for example if an application
* has its untranslated messages in a language other than English. In those
- * cases the application should call textdomain() after initializing GTK+.
+ * cases the application should call textdomain() after initializing GTK.
*
* Applications should normally not use this function directly,
* but use the _() macro for translations.
diff --git a/glib/ghash.c b/glib/ghash.c
index 463242ecd..500d503c3 100644
--- a/glib/ghash.c
+++ b/glib/ghash.c
@@ -251,7 +251,8 @@
#define BIG_ENTRY_SIZE (SIZEOF_VOID_P)
#define SMALL_ENTRY_SIZE (SIZEOF_INT)
-#if SMALL_ENTRY_SIZE < BIG_ENTRY_SIZE
+/* NB: The USE_SMALL_ARRAYS code assumes pointers are at most 8 bytes. */
+#if SMALL_ENTRY_SIZE < BIG_ENTRY_SIZE && BIG_ENTRY_SIZE <= 8
# define USE_SMALL_ARRAYS
#endif
@@ -260,8 +261,8 @@ struct _GHashTable
gsize size;
gint mod;
guint mask;
- gint nnodes;
- gint noccupied; /* nnodes + tombstones */
+ guint nnodes;
+ guint noccupied; /* nnodes + tombstones */
guint have_big_keys : 1;
guint have_big_values : 1;
@@ -292,7 +293,7 @@ typedef struct
gpointer dummy2;
gint position;
gboolean dummy3;
- gint version;
+ gintptr version;
} RealIter;
G_STATIC_ASSERT (sizeof (GHashTableIter) == sizeof (RealIter));
@@ -548,6 +549,7 @@ g_hash_table_remove_node (GHashTable *hash_table,
g_hash_table_assign_key_or_value (hash_table->keys, i, hash_table->have_big_keys, NULL);
g_hash_table_assign_key_or_value (hash_table->values, i, hash_table->have_big_values, NULL);
+ g_assert (hash_table->nnodes > 0);
hash_table->nnodes--;
if (notify && hash_table->key_destroy_func)
@@ -909,8 +911,8 @@ g_hash_table_resize (GHashTable *hash_table)
static inline void
g_hash_table_maybe_resize (GHashTable *hash_table)
{
- gint noccupied = hash_table->noccupied;
- gint size = hash_table->size;
+ gsize noccupied = hash_table->noccupied;
+ gsize size = hash_table->size;
if ((size > hash_table->nnodes * 4 && size > 1 << HASH_TABLE_MIN_SHIFT) ||
(size <= noccupied + (noccupied / 16)))
@@ -1834,7 +1836,9 @@ g_hash_table_steal (GHashTable *hash_table,
*
* If found, the stolen key and value are removed from the hash table without
* calling the key and value destroy functions, and ownership is transferred to
- * the caller of this method; as with g_hash_table_steal().
+ * the caller of this method, as with g_hash_table_steal(). That is the case
+ * regardless whether @stolen_key or @stolen_value output parameters are
+ * requested.
*
* You can pass %NULL for @lookup_key, provided the hash and equal functions
* of @hash_table are %NULL-safe.
@@ -1940,6 +1944,80 @@ g_hash_table_steal_all (GHashTable *hash_table)
g_hash_table_maybe_resize (hash_table);
}
+/**
+ * g_hash_table_steal_all_keys: (skip)
+ * @hash_table: a #GHashTable
+ *
+ * Removes all keys and their associated values from a #GHashTable
+ * without calling the key destroy functions, returning the keys
+ * as a #GPtrArray with the free func set to the @hash_table key
+ * destroy function.
+ *
+ * Returns: (transfer container): a #GPtrArray containing each key of
+ * the table. Unref with with g_ptr_array_unref() when done.
+ *
+ * Since: 2.76
+ */
+GPtrArray *
+g_hash_table_steal_all_keys (GHashTable *hash_table)
+{
+ GPtrArray *array;
+ GDestroyNotify key_destroy_func;
+
+ g_return_val_if_fail (hash_table != NULL, NULL);
+
+ array = g_hash_table_get_keys_as_ptr_array (hash_table);
+
+ /* Ignore the key destroy notify calls during removal, and use it for the
+ * array elements instead, but restore it after the hash table has been
+ * cleared, so that newly added keys will continue using it.
+ */
+ key_destroy_func = g_steal_pointer (&hash_table->key_destroy_func);
+ g_ptr_array_set_free_func (array, key_destroy_func);
+
+ g_hash_table_remove_all (hash_table);
+ hash_table->key_destroy_func = g_steal_pointer (&key_destroy_func);
+
+ return array;
+}
+
+/**
+ * g_hash_table_steal_all_values: (skip)
+ * @hash_table: a #GHashTable
+ *
+ * Removes all keys and their associated values from a #GHashTable
+ * without calling the value destroy functions, returning the values
+ * as a #GPtrArray with the free func set to the @hash_table value
+ * destroy function.
+ *
+ * Returns: (transfer container): a #GPtrArray containing each value of
+ * the table. Unref with with g_ptr_array_unref() when done.
+ *
+ * Since: 2.76
+ */
+GPtrArray *
+g_hash_table_steal_all_values (GHashTable *hash_table)
+{
+ GPtrArray *array;
+ GDestroyNotify value_destroy_func;
+
+ g_return_val_if_fail (hash_table != NULL, NULL);
+
+ array = g_hash_table_get_values_as_ptr_array (hash_table);
+
+ /* Ignore the value destroy notify calls during removal, and use it for the
+ * array elements instead, but restore it after the hash table has been
+ * cleared, so that newly added values will continue using it.
+ */
+ value_destroy_func = g_steal_pointer (&hash_table->value_destroy_func);
+ g_ptr_array_set_free_func (array, value_destroy_func);
+
+ g_hash_table_remove_all (hash_table);
+ hash_table->value_destroy_func = g_steal_pointer (&value_destroy_func);
+
+ return array;
+}
+
/*
* g_hash_table_foreach_remove_or_steal:
* @hash_table: a #GHashTable
@@ -2262,7 +2340,7 @@ g_hash_table_get_keys_as_array (GHashTable *hash_table,
if (HASH_IS_REAL (hash_table->hashes[i]))
result[j++] = g_hash_table_fetch_key_or_value (hash_table->keys, i, hash_table->have_big_keys);
}
- g_assert_cmpint (j, ==, hash_table->nnodes);
+ g_assert (j == hash_table->nnodes);
result[j] = NULL;
if (length)
@@ -2272,6 +2350,45 @@ g_hash_table_get_keys_as_array (GHashTable *hash_table,
}
/**
+ * g_hash_table_get_keys_as_ptr_array: (skip)
+ * @hash_table: a #GHashTable
+ *
+ * Retrieves every key inside @hash_table, as a #GPtrArray.
+ * The returned data is valid until changes to the hash release those keys.
+ *
+ * This iterates over every entry in the hash table to build its return value.
+ * To iterate over the entries in a #GHashTable more efficiently, use a
+ * #GHashTableIter.
+ *
+ * You should always unref the returned array with g_ptr_array_unref().
+ *
+ * Returns: (transfer container): a #GPtrArray containing each key from
+ * the table. Unref with with g_ptr_array_unref() when done.
+ *
+ * Since: 2.76
+ **/
+GPtrArray *
+g_hash_table_get_keys_as_ptr_array (GHashTable *hash_table)
+{
+ GPtrArray *array;
+
+ g_return_val_if_fail (hash_table != NULL, NULL);
+
+ array = g_ptr_array_sized_new (hash_table->size);
+ for (gsize i = 0; i < hash_table->size; ++i)
+ {
+ if (HASH_IS_REAL (hash_table->hashes[i]))
+ {
+ g_ptr_array_add (array, g_hash_table_fetch_key_or_value (
+ hash_table->keys, i, hash_table->have_big_keys));
+ }
+ }
+ g_assert (array->len == hash_table->nnodes);
+
+ return array;
+}
+
+/**
* g_hash_table_get_values:
* @hash_table: a #GHashTable
*
@@ -2307,6 +2424,45 @@ g_hash_table_get_values (GHashTable *hash_table)
return retval;
}
+/**
+ * g_hash_table_get_values_as_ptr_array: (skip)
+ * @hash_table: a #GHashTable
+ *
+ * Retrieves every value inside @hash_table, as a #GPtrArray.
+ * The returned data is valid until changes to the hash release those values.
+ *
+ * This iterates over every entry in the hash table to build its return value.
+ * To iterate over the entries in a #GHashTable more efficiently, use a
+ * #GHashTableIter.
+ *
+ * You should always unref the returned array with g_ptr_array_unref().
+ *
+ * Returns: (transfer container): a #GPtrArray containing each value from
+ * the table. Unref with with g_ptr_array_unref() when done.
+ *
+ * Since: 2.76
+ **/
+GPtrArray *
+g_hash_table_get_values_as_ptr_array (GHashTable *hash_table)
+{
+ GPtrArray *array;
+
+ g_return_val_if_fail (hash_table != NULL, NULL);
+
+ array = g_ptr_array_sized_new (hash_table->size);
+ for (gsize i = 0; i < hash_table->size; ++i)
+ {
+ if (HASH_IS_REAL (hash_table->hashes[i]))
+ {
+ g_ptr_array_add (array, g_hash_table_fetch_key_or_value (
+ hash_table->values, i, hash_table->have_big_values));
+ }
+ }
+ g_assert (array->len == hash_table->nnodes);
+
+ return array;
+}
+
/* Hash functions.
*/
@@ -2494,7 +2650,9 @@ g_int64_equal (gconstpointer v1,
guint
g_int64_hash (gconstpointer v)
{
- return (guint) *(const gint64*) v;
+ const guint64 *bits = v;
+
+ return (guint) ((*bits >> 32) ^ (*bits & 0xffffffffU));
}
/**
@@ -2535,5 +2693,8 @@ g_double_equal (gconstpointer v1,
guint
g_double_hash (gconstpointer v)
{
- return (guint) *(const gdouble*) v;
+ /* Same as g_int64_hash() */
+ const guint64 *bits = v;
+
+ return (guint) ((*bits >> 32) ^ (*bits & 0xffffffffU));
}
diff --git a/glib/ghash.h b/glib/ghash.h
index 396148de5..3eb8f3be0 100644
--- a/glib/ghash.h
+++ b/glib/ghash.h
@@ -32,6 +32,7 @@
#endif
#include <glib/gtypes.h>
+#include <glib/garray.h>
#include <glib/glist.h>
G_BEGIN_DECLS
@@ -93,6 +94,10 @@ gboolean g_hash_table_steal_extended (GHashTable *hash_table,
gpointer *stolen_value);
GLIB_AVAILABLE_IN_ALL
void g_hash_table_steal_all (GHashTable *hash_table);
+GLIB_AVAILABLE_IN_2_76
+GPtrArray * g_hash_table_steal_all_keys (GHashTable *hash_table);
+GLIB_AVAILABLE_IN_2_76
+GPtrArray * g_hash_table_steal_all_values (GHashTable *hash_table);
GLIB_AVAILABLE_IN_ALL
gpointer g_hash_table_lookup (GHashTable *hash_table,
gconstpointer key);
@@ -129,6 +134,11 @@ GList * g_hash_table_get_values (GHashTable *hash_table);
GLIB_AVAILABLE_IN_2_40
gpointer * g_hash_table_get_keys_as_array (GHashTable *hash_table,
guint *length);
+GLIB_AVAILABLE_IN_2_76
+GPtrArray * g_hash_table_get_keys_as_ptr_array (GHashTable *hash_table);
+
+GLIB_AVAILABLE_IN_2_76
+GPtrArray * g_hash_table_get_values_as_ptr_array (GHashTable *hash_table);
GLIB_AVAILABLE_IN_ALL
void g_hash_table_iter_init (GHashTableIter *iter,
diff --git a/glib/ghook.c b/glib/ghook.c
index 6ef89733d..3db220187 100644
--- a/glib/ghook.c
+++ b/glib/ghook.c
@@ -584,7 +584,7 @@ g_hook_list_invoke_check (GHookList *hook_list,
/**
* GHookCheckMarshaller:
* @hook: a #GHook
- * @user_data: user data
+ * @marshal_data: user data
*
* Defines the type of function used by g_hook_list_marshal_check().
*
@@ -636,7 +636,7 @@ g_hook_list_marshal_check (GHookList *hook_list,
/**
* GHookMarshaller:
* @hook: a #GHook
- * @user_data: user data
+ * @marshal_data: user data
*
* Defines the type of function used by g_hook_list_marshal().
*/
@@ -793,7 +793,7 @@ g_hook_get (GHookList *hook_list,
/**
* GHookFindFunc:
* @hook: a #GHook
- * @user_data: user data passed to g_hook_find_func()
+ * @data: user data passed to g_hook_find_func()
*
* Defines the type of the function passed to g_hook_find().
*
diff --git a/glib/ghook.h b/glib/ghook.h
index 203bc364e..1bd858219 100644
--- a/glib/ghook.h
+++ b/glib/ghook.h
@@ -43,11 +43,11 @@ typedef struct _GHookList GHookList;
typedef gint (*GHookCompareFunc) (GHook *new_hook,
GHook *sibling);
typedef gboolean (*GHookFindFunc) (GHook *hook,
- gpointer user_data);
+ gpointer data);
typedef void (*GHookMarshaller) (GHook *hook,
- gpointer user_data);
+ gpointer marshal_data);
typedef gboolean (*GHookCheckMarshaller) (GHook *hook,
- gpointer user_data);
+ gpointer marshal_data);
typedef void (*GHookFunc) (gpointer data);
typedef gboolean (*GHookCheckFunc) (gpointer data);
typedef void (*GHookFinalizeFunc) (GHookList *hook_list,
diff --git a/glib/giochannel.c b/glib/giochannel.c
index 25baf42c9..7572c47a2 100644
--- a/glib/giochannel.c
+++ b/glib/giochannel.c
@@ -679,7 +679,7 @@ g_io_add_watch_full (GIOChannel *channel,
* GIOFunc:
* @source: the #GIOChannel event source
* @condition: the condition which has been satisfied
- * @user_data: user data set in g_io_add_watch() or g_io_add_watch_full()
+ * @data: user data set in g_io_add_watch() or g_io_add_watch_full()
*
* Specifies the type of function passed to g_io_add_watch() or
* g_io_add_watch_full(), which is called when the requested condition
@@ -913,7 +913,7 @@ g_io_channel_set_line_term (GIOChannel *channel,
/**
* g_io_channel_get_line_term:
* @channel: a #GIOChannel
- * @length: a location to return the length of the line terminator
+ * @length: (out) (optional): a location to return the length of the line terminator
*
* This returns the string that #GIOChannel uses to determine
* where in the file a line break occurs. A value of %NULL
@@ -2205,16 +2205,18 @@ g_io_channel_write_chars (GIOChannel *channel,
{
gsize count_unsigned;
GIOStatus status;
- gssize wrote_bytes = 0;
+ gsize wrote_bytes = 0;
g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR);
+ g_return_val_if_fail (buf != NULL || count == 0, G_IO_STATUS_ERROR);
g_return_val_if_fail ((error == NULL) || (*error == NULL),
G_IO_STATUS_ERROR);
g_return_val_if_fail (channel->is_writeable, G_IO_STATUS_ERROR);
- if ((count < 0) && buf)
- count = strlen (buf);
- count_unsigned = count;
+ if (count < 0)
+ count_unsigned = strlen (buf);
+ else
+ count_unsigned = count;
if (count_unsigned == 0)
{
@@ -2223,8 +2225,7 @@ g_io_channel_write_chars (GIOChannel *channel,
return G_IO_STATUS_NORMAL;
}
- g_return_val_if_fail (buf != NULL, G_IO_STATUS_ERROR);
- g_return_val_if_fail (count_unsigned > 0, G_IO_STATUS_ERROR);
+ g_assert (count_unsigned > 0);
/* Raw write case */
@@ -2266,7 +2267,7 @@ g_io_channel_write_chars (GIOChannel *channel,
if (!channel->write_buf)
channel->write_buf = g_string_sized_new (channel->buf_size);
- while (wrote_bytes < count)
+ while (wrote_bytes < count_unsigned)
{
gsize space_in_buf;
@@ -2312,7 +2313,11 @@ g_io_channel_write_chars (GIOChannel *channel,
if (!channel->encoding)
{
- gssize write_this = MIN (space_in_buf, count_unsigned - wrote_bytes);
+ gsize write_this = MIN (space_in_buf, count_unsigned - wrote_bytes);
+
+ /* g_string_append_len() takes a gssize, so don’t overflow it*/
+ if (write_this > G_MAXSSIZE)
+ write_this = G_MAXSSIZE;
g_string_append_len (channel->write_buf, buf, write_this);
buf += write_this;
@@ -2475,7 +2480,10 @@ reconvert:
g_warning ("Illegal sequence due to partial character "
"at the end of a previous write.");
else
- wrote_bytes += from_buf_len - left_len - from_buf_old_len;
+ {
+ g_assert (from_buf_len >= left_len + from_buf_old_len);
+ wrote_bytes += from_buf_len - left_len - from_buf_old_len;
+ }
if (bytes_written)
*bytes_written = wrote_bytes;
channel->partial_write_buf[0] = '\0';
diff --git a/glib/giochannel.h b/glib/giochannel.h
index dee3d7d05..913019cd4 100644
--- a/glib/giochannel.h
+++ b/glib/giochannel.h
@@ -130,7 +130,7 @@ struct _GIOChannel
typedef gboolean (*GIOFunc) (GIOChannel *source,
GIOCondition condition,
- gpointer user_data);
+ gpointer data);
struct _GIOFuncs
{
GIOStatus (*io_read) (GIOChannel *channel,
diff --git a/glib/giounix.c b/glib/giounix.c
index 067cecf9a..84e81357c 100644
--- a/glib/giounix.c
+++ b/glib/giounix.c
@@ -44,6 +44,10 @@
#include <fcntl.h>
#include <glib/gstdio.h>
+#ifndef O_CLOEXEC
+#define O_CLOEXEC 0
+#endif
+
#include "giochannel.h"
#include "gerror.h"
@@ -131,8 +135,6 @@ g_io_unix_prepare (GSource *source,
GIOUnixWatch *watch = (GIOUnixWatch *)source;
GIOCondition buffer_condition = g_io_channel_get_buffer_condition (watch->channel);
- *timeout = -1;
-
/* Only return TRUE here if _all_ bits in watch->condition will be set
*/
return ((watch->condition & buffer_condition) == watch->condition);
@@ -527,7 +529,7 @@ g_io_channel_new_file (const gchar *filename,
create_mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
- fid = g_open (filename, flags, create_mode);
+ fid = g_open (filename, flags | O_CLOEXEC, create_mode);
if (fid == -1)
{
int err = errno;
diff --git a/glib/giowin32.c b/glib/giowin32.c
index b9b481921..f0e025d4a 100644
--- a/glib/giowin32.c
+++ b/glib/giowin32.c
@@ -709,8 +709,6 @@ g_io_win32_prepare (GSource *source,
GIOWin32Channel *channel = (GIOWin32Channel *)watch->channel;
int event_mask;
- *timeout = -1;
-
if (channel->debug)
g_print ("g_io_win32_prepare: source=%p channel=%p", source, channel);
diff --git a/glib/gkeyfile.c b/glib/gkeyfile.c
index 6ae738ca1..d08a485c0 100644
--- a/glib/gkeyfile.c
+++ b/glib/gkeyfile.c
@@ -53,6 +53,10 @@
#endif /* G_OS_WIN23 */
+#ifndef O_CLOEXEC
+#define O_CLOEXEC 0
+#endif
+
#include "gconvert.h"
#include "gdataset.h"
#include "gerror.h"
@@ -70,7 +74,7 @@
/**
- * SECTION:keyfile
+ * SECTION:gkeyfile
* @title: Key-value file parser
* @short_description: parses .ini-like config files
*
@@ -156,6 +160,7 @@
* restricted to ASCII characters.
*
* Here is an example of loading a key file and reading a value:
+ *
* |[<!-- language="C" -->
* g_autoptr(GError) error = NULL;
* g_autoptr(GKeyFile) key_file = g_key_file_new ();
@@ -182,6 +187,7 @@
* ]|
*
* Here is an example of creating and saving a key file:
+ *
* |[<!-- language="C" -->
* g_autoptr(GKeyFile) key_file = g_key_file_new ();
* const gchar *val = …;
@@ -525,8 +531,6 @@ struct _GKeyFileGroup
{
const gchar *name; /* NULL for above first group (which will be comments) */
- GKeyFileKeyValuePair *comment; /* Special comment that is stuck to the top of a group */
-
GList *key_value_pairs;
/* Used in parallel with key_value_pairs for
@@ -569,13 +573,15 @@ static void g_key_file_remove_key_value_pair_node (GKeyFile
static void g_key_file_add_key_value_pair (GKeyFile *key_file,
GKeyFileGroup *group,
- GKeyFileKeyValuePair *pair);
+ GKeyFileKeyValuePair *pair,
+ GList *sibling);
static void g_key_file_add_key (GKeyFile *key_file,
GKeyFileGroup *group,
const gchar *key,
const gchar *value);
static void g_key_file_add_group (GKeyFile *key_file,
- const gchar *group_name);
+ const gchar *group_name,
+ gboolean created);
static gboolean g_key_file_is_group_name (const gchar *name);
static gboolean g_key_file_is_key_name (const gchar *name,
gsize len);
@@ -634,7 +640,7 @@ G_DEFINE_QUARK (g-key-file-error-quark, g_key_file_error)
static void
g_key_file_init (GKeyFile *key_file)
{
- key_file->current_group = g_slice_new0 (GKeyFileGroup);
+ key_file->current_group = g_new0 (GKeyFileGroup, 1);
key_file->groups = g_list_prepend (NULL, key_file->current_group);
key_file->group_hash = NULL;
key_file->start_group = NULL;
@@ -696,7 +702,7 @@ g_key_file_new (void)
{
GKeyFile *key_file;
- key_file = g_slice_new0 (GKeyFile);
+ key_file = g_new0 (GKeyFile, 1);
key_file->ref_count = 1;
g_key_file_init (key_file);
@@ -761,7 +767,7 @@ find_file_in_data_dirs (const gchar *file,
path = g_build_filename (data_dir, sub_dir,
candidate_file, NULL);
- fd = g_open (path, O_RDONLY, 0);
+ fd = g_open (path, O_RDONLY | O_CLOEXEC, 0);
if (fd == -1)
{
@@ -917,7 +923,7 @@ g_key_file_load_from_file (GKeyFile *key_file,
g_return_val_if_fail (key_file != NULL, FALSE);
g_return_val_if_fail (file != NULL, FALSE);
- fd = g_open (file, O_RDONLY, 0);
+ fd = g_open (file, O_RDONLY | O_CLOEXEC, 0);
errsv = errno;
if (fd == -1)
@@ -1201,7 +1207,7 @@ g_key_file_free (GKeyFile *key_file)
g_key_file_clear (key_file);
if (g_atomic_int_dec_and_test (&key_file->ref_count))
- g_slice_free (GKeyFile, key_file);
+ g_free_sized (key_file, sizeof (GKeyFile));
else
g_key_file_init (key_file);
}
@@ -1223,7 +1229,7 @@ g_key_file_unref (GKeyFile *key_file)
if (g_atomic_int_dec_and_test (&key_file->ref_count))
{
g_key_file_clear (key_file);
- g_slice_free (GKeyFile, key_file);
+ g_free_sized (key_file, sizeof (GKeyFile));
}
}
@@ -1313,7 +1319,7 @@ g_key_file_parse_comment (GKeyFile *key_file,
g_warn_if_fail (key_file->current_group != NULL);
- pair = g_slice_new (GKeyFileKeyValuePair);
+ pair = g_new (GKeyFileKeyValuePair, 1);
pair->key = NULL;
pair->value = g_strndup (line, length);
@@ -1350,7 +1356,7 @@ g_key_file_parse_group (GKeyFile *key_file,
return;
}
- g_key_file_add_group (key_file, group_name);
+ g_key_file_add_group (key_file, group_name, FALSE);
g_free (group_name);
}
@@ -1438,11 +1444,12 @@ g_key_file_parse_key_value_pair (GKeyFile *key_file,
{
GKeyFileKeyValuePair *pair;
- pair = g_slice_new (GKeyFileKeyValuePair);
+ pair = g_new (GKeyFileKeyValuePair, 1);
pair->key = g_steal_pointer (&key);
pair->value = g_strndup (value_start, value_len);
- g_key_file_add_key_value_pair (key_file, key_file->current_group, pair);
+ g_key_file_add_key_value_pair (key_file, key_file->current_group, pair,
+ key_file->current_group->key_value_pairs);
}
g_free (key);
@@ -1606,14 +1613,6 @@ g_key_file_to_data (GKeyFile *key_file,
group = (GKeyFileGroup *) group_node->data;
- /* separate groups by at least an empty line */
- if (data_string->len >= 2 &&
- data_string->str[data_string->len - 2] != '\n')
- g_string_append_c (data_string, '\n');
-
- if (group->comment != NULL)
- g_string_append_printf (data_string, "%s\n", group->comment->value);
-
if (group->name != NULL)
g_string_append_printf (data_string, "[%s]\n", group->name);
@@ -1898,7 +1897,7 @@ g_key_file_set_value (GKeyFile *key_file,
if (!group)
{
- g_key_file_add_group (key_file, group_name);
+ g_key_file_add_group (key_file, group_name, TRUE);
group = (GKeyFileGroup *) key_file->groups->data;
g_key_file_add_key (key_file, group, key, value);
@@ -3335,7 +3334,7 @@ g_key_file_set_key_comment (GKeyFile *key_file,
/* Now we can add our new comment
*/
- pair = g_slice_new (GKeyFileKeyValuePair);
+ pair = g_new (GKeyFileKeyValuePair, 1);
pair->key = NULL;
pair->value = g_key_file_parse_comment_as_value (key_file, comment);
@@ -3346,12 +3345,50 @@ g_key_file_set_key_comment (GKeyFile *key_file,
}
static gboolean
+g_key_file_set_top_comment (GKeyFile *key_file,
+ const gchar *comment,
+ GError **error)
+{
+ GList *group_node;
+ GKeyFileGroup *group;
+ GKeyFileKeyValuePair *pair;
+
+ /* The last group in the list should be the top (comments only)
+ * group in the file
+ */
+ g_warn_if_fail (key_file->groups != NULL);
+ group_node = g_list_last (key_file->groups);
+ group = (GKeyFileGroup *) group_node->data;
+ g_warn_if_fail (group->name == NULL);
+
+ /* Note all keys must be comments at the top of
+ * the file, so we can just free it all.
+ */
+ g_list_free_full (group->key_value_pairs, (GDestroyNotify) g_key_file_key_value_pair_free);
+ group->key_value_pairs = NULL;
+
+ if (comment == NULL)
+ return TRUE;
+
+ pair = g_new (GKeyFileKeyValuePair, 1);
+ pair->key = NULL;
+ pair->value = g_key_file_parse_comment_as_value (key_file, comment);
+
+ group->key_value_pairs =
+ g_list_prepend (group->key_value_pairs, pair);
+
+ return TRUE;
+}
+
+static gboolean
g_key_file_set_group_comment (GKeyFile *key_file,
const gchar *group_name,
const gchar *comment,
GError **error)
{
GKeyFileGroup *group;
+ GList *group_node;
+ GKeyFileKeyValuePair *pair;
g_return_val_if_fail (group_name != NULL && g_key_file_is_group_name (group_name), FALSE);
@@ -3366,12 +3403,22 @@ g_key_file_set_group_comment (GKeyFile *key_file,
return FALSE;
}
+ if (group == key_file->start_group)
+ return g_key_file_set_top_comment (key_file, comment, error);
+
/* First remove any existing comment
*/
- if (group->comment)
+ group_node = g_key_file_lookup_group_node (key_file, group_name);
+ group = group_node->next->data;
+ for (GList *lp = group->key_value_pairs; lp != NULL; )
{
- g_key_file_key_value_pair_free (group->comment);
- group->comment = NULL;
+ GList *lnext = lp->next;
+ pair = lp->data;
+ if (pair->key != NULL)
+ break;
+
+ g_key_file_remove_key_value_pair_node (key_file, group, lp);
+ lp = lnext;
}
if (comment == NULL)
@@ -3379,45 +3426,10 @@ g_key_file_set_group_comment (GKeyFile *key_file,
/* Now we can add our new comment
*/
- group->comment = g_slice_new (GKeyFileKeyValuePair);
- group->comment->key = NULL;
- group->comment->value = g_key_file_parse_comment_as_value (key_file, comment);
-
- return TRUE;
-}
-
-static gboolean
-g_key_file_set_top_comment (GKeyFile *key_file,
- const gchar *comment,
- GError **error)
-{
- GList *group_node;
- GKeyFileGroup *group;
- GKeyFileKeyValuePair *pair;
-
- /* The last group in the list should be the top (comments only)
- * group in the file
- */
- g_warn_if_fail (key_file->groups != NULL);
- group_node = g_list_last (key_file->groups);
- group = (GKeyFileGroup *) group_node->data;
- g_warn_if_fail (group->name == NULL);
-
- /* Note all keys must be comments at the top of
- * the file, so we can just free it all.
- */
- g_list_free_full (group->key_value_pairs, (GDestroyNotify) g_key_file_key_value_pair_free);
- group->key_value_pairs = NULL;
-
- if (comment == NULL)
- return TRUE;
-
- pair = g_slice_new (GKeyFileKeyValuePair);
+ pair = g_new (GKeyFileKeyValuePair, 1);
pair->key = NULL;
pair->value = g_key_file_parse_comment_as_value (key_file, comment);
-
- group->key_value_pairs =
- g_list_prepend (group->key_value_pairs, pair);
+ group->key_value_pairs = g_list_prepend (group->key_value_pairs, pair);
return TRUE;
}
@@ -3546,10 +3558,7 @@ g_key_file_get_key_comment (GKeyFile *key_file,
}
if (string != NULL)
- {
- comment = string->str;
- g_string_free (string, FALSE);
- }
+ comment = g_string_free_and_steal (g_steal_pointer (&string));
else
comment = NULL;
@@ -3628,9 +3637,6 @@ g_key_file_get_group_comment (GKeyFile *key_file,
return NULL;
}
- if (group->comment)
- return g_strdup (group->comment->value);
-
group_node = g_key_file_lookup_group_node (key_file, group_name);
group_node = group_node->next;
group = (GKeyFileGroup *)group_node->data;
@@ -3825,7 +3831,8 @@ g_key_file_has_key (GKeyFile *key_file,
static void
g_key_file_add_group (GKeyFile *key_file,
- const gchar *group_name)
+ const gchar *group_name,
+ gboolean created)
{
GKeyFileGroup *group;
@@ -3839,14 +3846,33 @@ g_key_file_add_group (GKeyFile *key_file,
return;
}
- group = g_slice_new0 (GKeyFileGroup);
+ group = g_new0 (GKeyFileGroup, 1);
group->name = g_strdup (group_name);
group->lookup_map = g_hash_table_new (g_str_hash, g_str_equal);
key_file->groups = g_list_prepend (key_file->groups, group);
key_file->current_group = group;
if (key_file->start_group == NULL)
- key_file->start_group = group;
+ {
+ key_file->start_group = group;
+ }
+ else if (!(key_file->flags & G_KEY_FILE_KEEP_COMMENTS) || created)
+ {
+ /* separate groups by a blank line if we don't keep comments or group is created */
+ GKeyFileGroup *next_group = key_file->groups->next->data;
+ GKeyFileKeyValuePair *pair;
+ if (next_group->key_value_pairs != NULL)
+ pair = next_group->key_value_pairs->data;
+
+ if (next_group->key_value_pairs == NULL ||
+ (pair->key != NULL && !g_strstr_len (pair->value, -1, "\n")))
+ {
+ GKeyFileKeyValuePair *pair = g_new (GKeyFileKeyValuePair, 1);
+ pair->key = NULL;
+ pair->value = g_strdup ("");
+ next_group->key_value_pairs = g_list_prepend (next_group->key_value_pairs, pair);
+ }
+ }
if (!key_file->group_hash)
key_file->group_hash = g_hash_table_new (g_str_hash, g_str_equal);
@@ -3861,7 +3887,7 @@ g_key_file_key_value_pair_free (GKeyFileKeyValuePair *pair)
{
g_free (pair->key);
g_free (pair->value);
- g_slice_free (GKeyFileKeyValuePair, pair);
+ g_free_sized (pair, sizeof (GKeyFileKeyValuePair));
}
}
@@ -3957,12 +3983,6 @@ g_key_file_remove_group_node (GKeyFile *key_file,
g_warn_if_fail (group->key_value_pairs == NULL);
- if (group->comment)
- {
- g_key_file_key_value_pair_free (group->comment);
- group->comment = NULL;
- }
-
if (group->lookup_map)
{
g_hash_table_destroy (group->lookup_map);
@@ -3970,7 +3990,7 @@ g_key_file_remove_group_node (GKeyFile *key_file,
}
g_free ((gchar *) group->name);
- g_slice_free (GKeyFileGroup, group);
+ g_free_sized (group, sizeof (GKeyFileGroup));
g_list_free_1 (group_node);
}
@@ -4016,10 +4036,11 @@ g_key_file_remove_group (GKeyFile *key_file,
static void
g_key_file_add_key_value_pair (GKeyFile *key_file,
GKeyFileGroup *group,
- GKeyFileKeyValuePair *pair)
+ GKeyFileKeyValuePair *pair,
+ GList *sibling)
{
g_hash_table_replace (group->lookup_map, pair->key, pair);
- group->key_value_pairs = g_list_prepend (group->key_value_pairs, pair);
+ group->key_value_pairs = g_list_insert_before (group->key_value_pairs, sibling, pair);
}
static void
@@ -4029,12 +4050,18 @@ g_key_file_add_key (GKeyFile *key_file,
const gchar *value)
{
GKeyFileKeyValuePair *pair;
+ GList *lp;
- pair = g_slice_new (GKeyFileKeyValuePair);
+ pair = g_new (GKeyFileKeyValuePair, 1);
pair->key = g_strdup (key);
pair->value = g_strdup (value);
- g_key_file_add_key_value_pair (key_file, group, pair);
+ /* skip group comment */
+ lp = group->key_value_pairs;
+ while (lp != NULL && ((GKeyFileKeyValuePair *) lp->data)->key == NULL)
+ lp = lp->next;
+
+ g_key_file_add_key_value_pair (key_file, group, pair, lp);
}
/**
@@ -4286,8 +4313,11 @@ g_key_file_parse_value_as_string (GKeyFile *key_file,
GError **error)
{
gchar *string_value, *q0, *q;
+ GSList *tmp_pieces = NULL;
const gchar *p;
+ g_assert (pieces == NULL || *pieces == NULL);
+
string_value = g_new (gchar, strlen (value) + 1);
p = value;
@@ -4321,11 +4351,12 @@ g_key_file_parse_value_as_string (GKeyFile *key_file,
break;
case '\0':
+ g_clear_error (error);
g_set_error_literal (error, G_KEY_FILE_ERROR,
G_KEY_FILE_ERROR_INVALID_VALUE,
_("Key file contains escape character "
"at end of line"));
- break;
+ goto error;
default:
if (pieces && *p == key_file->list_separator)
@@ -4343,24 +4374,39 @@ g_key_file_parse_value_as_string (GKeyFile *key_file,
sequence[1] = *p;
sequence[2] = '\0';
+ /* FIXME: This should be a fatal error, but there was a
+ * bug which prevented that being reported for a long
+ * time, so a lot of applications and in-the-field key
+ * files use invalid escape sequences without anticipating
+ * problems. For now (GLib 2.78), message about it; in
+ * future, the behaviour may become fatal again.
+ *
+ * The previous behaviour was to set the #GError but not
+ * return failure from the function, so the caller could
+ * explicitly check for invalid escapes, but also ignore
+ * the error if they want. This is not how #GError is
+ * meant to be used, but the #GKeyFile code is very old.
+ *
+ * See https://gitlab.gnome.org/GNOME/glib/-/issues/3098 */
+ g_clear_error (error);
g_set_error (error, G_KEY_FILE_ERROR,
G_KEY_FILE_ERROR_INVALID_VALUE,
_("Key file contains invalid escape "
"sequence “%s”"), sequence);
- }
- }
+ }
+ }
break;
}
}
else
- {
- *q = *p;
- if (pieces && (*p == key_file->list_separator))
- {
- *pieces = g_slist_prepend (*pieces, g_strndup (q0, q - q0));
- q0 = q + 1;
- }
- }
+ {
+ *q = *p;
+ if (pieces && (*p == key_file->list_separator))
+ {
+ tmp_pieces = g_slist_prepend (tmp_pieces, g_strndup (q0, q - q0));
+ q0 = q + 1;
+ }
+ }
if (*p == '\0')
break;
@@ -4371,13 +4417,19 @@ g_key_file_parse_value_as_string (GKeyFile *key_file,
*q = '\0';
if (pieces)
- {
- if (q0 < q)
- *pieces = g_slist_prepend (*pieces, g_strndup (q0, q - q0));
- *pieces = g_slist_reverse (*pieces);
- }
+ {
+ if (q0 < q)
+ tmp_pieces = g_slist_prepend (tmp_pieces, g_strndup (q0, q - q0));
+ *pieces = g_slist_reverse (tmp_pieces);
+ }
return string_value;
+
+error:
+ g_free (string_value);
+ g_slist_free_full (tmp_pieces, g_free);
+
+ return NULL;
}
static gchar *
diff --git a/glib/glib-autocleanups.h b/glib/glib-autocleanups.h
index e2e0075e5..6adf23282 100644
--- a/glib/glib-autocleanups.h
+++ b/glib/glib-autocleanups.h
@@ -101,5 +101,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariantType, g_variant_type_free)
G_DEFINE_AUTO_CLEANUP_FREE_FUNC(GStrv, g_strfreev, NULL)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRefString, g_ref_string_release)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUri, g_uri_unref)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (GPathBuf, g_path_buf_free)
+G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (GPathBuf, g_path_buf_clear)
G_GNUC_END_IGNORE_DEPRECATIONS
diff --git a/glib/glib-init.c b/glib/glib-init.c
index 00f6c3c66..933f891da 100644
--- a/glib/glib-init.c
+++ b/glib/glib-init.c
@@ -89,7 +89,24 @@ G_STATIC_ASSERT (sizeof (void *) == GLIB_SIZEOF_VOID_P);
G_STATIC_ASSERT (sizeof (gintptr) == sizeof (void *));
G_STATIC_ASSERT (sizeof (guintptr) == sizeof (void *));
+G_STATIC_ASSERT (sizeof (short) == sizeof (gshort));
+G_STATIC_ASSERT (G_MINSHORT == SHRT_MIN);
+G_STATIC_ASSERT (G_MAXSHORT == SHRT_MAX);
+G_STATIC_ASSERT (sizeof (unsigned short) == sizeof (gushort));
+G_STATIC_ASSERT (G_MAXUSHORT == USHRT_MAX);
+
+G_STATIC_ASSERT (sizeof (int) == sizeof (gint));
+G_STATIC_ASSERT (G_MININT == INT_MIN);
+G_STATIC_ASSERT (G_MAXINT == INT_MAX);
+G_STATIC_ASSERT (sizeof (unsigned int) == sizeof (guint));
+G_STATIC_ASSERT (G_MAXUINT == UINT_MAX);
+
G_STATIC_ASSERT (sizeof (long) == GLIB_SIZEOF_LONG);
+G_STATIC_ASSERT (sizeof (long) == sizeof (glong));
+G_STATIC_ASSERT (G_MINLONG == LONG_MIN);
+G_STATIC_ASSERT (G_MAXLONG == LONG_MAX);
+G_STATIC_ASSERT (sizeof (unsigned long) == sizeof (gulong));
+G_STATIC_ASSERT (G_MAXULONG == ULONG_MAX);
G_STATIC_ASSERT (G_HAVE_GINT64 == 1);
@@ -99,11 +116,28 @@ G_STATIC_ASSERT (sizeof (size_t) == GLIB_SIZEOF_SIZE_T);
G_STATIC_ASSERT (sizeof (size_t) == GLIB_SIZEOF_SSIZE_T);
G_STATIC_ASSERT (sizeof (gsize) == GLIB_SIZEOF_SSIZE_T);
G_STATIC_ASSERT (sizeof (gsize) == sizeof (size_t));
+G_STATIC_ASSERT (G_MAXSIZE == SIZE_MAX);
/* Again this is size_t not ssize_t, because ssize_t is POSIX, not C99 */
G_STATIC_ASSERT (sizeof (gssize) == sizeof (size_t));
G_STATIC_ASSERT (G_ALIGNOF (gsize) == G_ALIGNOF (size_t));
G_STATIC_ASSERT (G_ALIGNOF (gssize) == G_ALIGNOF (size_t));
-
+/* We assume that GSIZE_TO_POINTER is reversible by GPOINTER_TO_SIZE
+ * without losing information.
+ * However, we do not assume that GPOINTER_TO_SIZE can store an arbitrary
+ * pointer in a gsize (known to be false on CHERI). */
+G_STATIC_ASSERT (sizeof (size_t) <= sizeof (void *));
+/* Standard C does not guarantee that size_t is the same as uintptr_t,
+ * but GLib currently assumes they are the same: see
+ * <https://gitlab.gnome.org/GNOME/glib/-/issues/2842>.
+ *
+ * To enable working on bringup for new architectures these assertions
+ * can be disabled with -DG_ENABLE_EXPERIMENTAL_ABI_COMPILATION.
+ *
+ * FIXME: remove these assertions once the API/ABI has stabilized. */
+#ifndef G_ENABLE_EXPERIMENTAL_ABI_COMPILATION
+G_STATIC_ASSERT (sizeof (size_t) == sizeof (uintptr_t));
+G_STATIC_ASSERT (G_ALIGNOF (size_t) == G_ALIGNOF (uintptr_t));
+#endif
/* goffset is always 64-bit, even if off_t is only 32-bit
* (compiling without large-file-support on 32-bit) */
G_STATIC_ASSERT (sizeof (goffset) == sizeof (gint64));
@@ -186,7 +220,7 @@ G_STATIC_ASSERT (sizeof (int) == sizeof (gint32));
*
* Parses a string containing debugging options
* into a %guint containing bit flags. This is used
- * within GDK and GTK+ to parse the debug options passed on the
+ * within GDK and GTK to parse the debug options passed on the
* command line or through environment variables.
*
* If @string is equal to "all", all flags are set. Any flags
diff --git a/glib/glib-private.c b/glib/glib-private.c
index b78f0a22e..9f4887aa2 100644
--- a/glib/glib-private.c
+++ b/glib/glib-private.c
@@ -24,6 +24,10 @@
#include "glib-private.h"
#include "glib-init.h"
+#ifdef USE_INVALID_PARAMETER_HANDLER
+#include <crtdbg.h>
+#endif
+
/**
* glib__private__:
* @arg: Do not use this argument
@@ -60,7 +64,85 @@ glib__private__ (void)
g_win32_reopen_noninherited,
g_win32_handle_is_socket,
#endif
+
+ g_win32_push_empty_invalid_parameter_handler,
+ g_win32_pop_invalid_parameter_handler,
+
+ g_find_program_for_path,
+
+ g_uri_get_default_scheme_port,
};
return &table;
}
+
+#ifdef USE_INVALID_PARAMETER_HANDLER
+/*
+ * This is the (empty) invalid parameter handler
+ * that is used for Visual C++ 2005 (and later) builds
+ * so that we can use this instead of the system automatically
+ * aborting the process, when calling _get_osfhandle(), isatty()
+ * and _commit() (via g_fsync()) and so on with an invalid file
+ * descriptor.
+ *
+ * This is necessary so that the gspawn helper and the test programs
+ * will continue to run as expected, since we are purposely or
+ * forced to use invalid FDs.
+ *
+ * Please see https://learn.microsoft.com/en-us/cpp/c-runtime-library/parameter-validation?view=msvc-170
+ * for an explanation on this.
+ */
+static void
+empty_invalid_parameter_handler (const wchar_t *expression,
+ const wchar_t *function,
+ const wchar_t *file,
+ unsigned int line,
+ uintptr_t pReserved)
+{
+}
+
+/* fallback to _set_invalid_parameter_handler() if we don't have _set_thread_local_invalid_parameter_handler() */
+#ifndef HAVE__SET_THREAD_LOCAL_INVALID_PARAMETER_HANDLER
+# define _set_thread_local_invalid_parameter_handler _set_invalid_parameter_handler
+#endif
+
+#endif
+/*
+ * g_win32_push_empty_invalid_parameter_handler:
+ * @handler: a possibly uninitialized GWin32InvalidParameterHandler
+ */
+void
+g_win32_push_empty_invalid_parameter_handler (GWin32InvalidParameterHandler *handler)
+{
+#ifdef USE_INVALID_PARAMETER_HANDLER
+ /* use the empty invalid parameter handler to override the default invalid parameter_handler */
+ handler->pushed_handler = empty_invalid_parameter_handler;
+ handler->old_handler = _set_thread_local_invalid_parameter_handler (handler->pushed_handler);
+
+ /* Disable the message box for assertions. */
+ handler->pushed_report_mode = 0;
+ handler->prev_report_mode = _CrtSetReportMode(_CRT_ASSERT, handler->pushed_report_mode);
+#endif
+}
+
+/*
+ * g_win32_pop_invalid_parameter_handler:
+ * @handler: a GWin32InvalidParameterHandler processed with
+ * g_win32_push_empty_invalid_parameter_handler()
+ */
+void
+g_win32_pop_invalid_parameter_handler (GWin32InvalidParameterHandler *handler)
+{
+#ifdef USE_INVALID_PARAMETER_HANDLER
+ G_GNUC_UNUSED _invalid_parameter_handler popped_handler;
+ G_GNUC_UNUSED int popped_report_mode;
+
+ /* Restore previous/default invalid parameter handler, check the value returned matches the one we previously pushed */
+ popped_handler = _set_thread_local_invalid_parameter_handler (handler->old_handler);
+ g_return_if_fail (handler->pushed_handler == popped_handler);
+
+ /* Restore the message box for assertions, check the value returned matches the one we previously pushed */
+ popped_report_mode = _CrtSetReportMode(_CRT_ASSERT, handler->prev_report_mode);
+ g_return_if_fail (handler->pushed_report_mode == popped_report_mode);
+#endif
+}
diff --git a/glib/glib-private.h b/glib/glib-private.h
index de9122754..f49e38f7b 100644
--- a/glib/glib-private.h
+++ b/glib/glib-private.h
@@ -121,6 +121,27 @@ GMainContext * g_get_worker_context (void);
gboolean g_check_setuid (void);
GMainContext * g_main_context_new_with_next_id (guint next_id);
+#if (defined (HAVE__SET_THREAD_LOCAL_INVALID_PARAMETER_HANDLER) || \
+ defined (HAVE__SET_INVALID_PARAMETER_HANDLER)) && \
+ defined (HAVE__CRT_SET_REPORT_MODE)
+# define USE_INVALID_PARAMETER_HANDLER
+#endif
+
+#ifdef USE_INVALID_PARAMETER_HANDLER
+struct _GWin32InvalidParameterHandler
+{
+ _invalid_parameter_handler old_handler;
+ _invalid_parameter_handler pushed_handler;
+ int prev_report_mode;
+ int pushed_report_mode;
+};
+#else
+struct _GWin32InvalidParameterHandler
+{
+ int unused_really;
+};
+#endif
+
#ifdef G_OS_WIN32
GLIB_AVAILABLE_IN_ALL
gchar *_glib_get_locale_dir (void);
@@ -129,8 +150,19 @@ gchar *_glib_get_locale_dir (void);
GDir * g_dir_open_with_errno (const gchar *path, guint flags);
GDir * g_dir_new_from_dirp (gpointer dirp);
+typedef struct _GWin32InvalidParameterHandler GWin32InvalidParameterHandler;
+void g_win32_push_empty_invalid_parameter_handler (GWin32InvalidParameterHandler *items);
+void g_win32_pop_invalid_parameter_handler (GWin32InvalidParameterHandler *items);
+
+char *g_find_program_for_path (const char *program,
+ const char *path,
+ const char *working_dir);
+
+int g_uri_get_default_scheme_port (const char *scheme);
+
#define GLIB_PRIVATE_CALL(symbol) (glib__private__()->symbol)
+
typedef struct {
/* See gwakeup.c */
GWakeup * (* g_wakeup_new) (void);
@@ -182,6 +214,18 @@ typedef struct {
#endif
+ /* See glib-private.c */
+ void (* g_win32_push_empty_invalid_parameter_handler) (GWin32InvalidParameterHandler *items);
+
+ void (* g_win32_pop_invalid_parameter_handler) (GWin32InvalidParameterHandler *items);
+
+ /* See gutils.c */
+ char *(* g_find_program_for_path) (const char *program,
+ const char *path,
+ const char *working_dir);
+
+ /* See guri.c */
+ int (* g_uri_get_default_scheme_port) (const char *scheme);
/* Add other private functions here, initialize them in glib-private.c */
} GLibPrivateVTable;
diff --git a/glib/glib-typeof.h b/glib/glib-typeof.h
index 106859d7b..c3519fa47 100644
--- a/glib/glib-typeof.h
+++ b/glib/glib-typeof.h
@@ -34,11 +34,10 @@
* This symbol is private.
*/
#undef glib_typeof
-#if (!defined(__cplusplus) || (!defined (_MSVC_LANG) && __cplusplus < 201103L)) && \
+#if !G_CXX_STD_CHECK_VERSION (11) && \
(G_GNUC_CHECK_VERSION(4, 8) || defined(__clang__))
#define glib_typeof(t) __typeof__ (t)
-#elif defined(__cplusplus) && \
- (__cplusplus >= 201103L || (defined (_MSVC_LANG) && _MSVC_LANG > 201103L)) && \
+#elif G_CXX_STD_CHECK_VERSION (11) && \
GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_68
/* C++11 decltype() is close enough for our usage */
#include <type_traits>
diff --git a/glib/glib-unix.c b/glib/glib-unix.c
index bc152d766..df5726cf0 100644
--- a/glib/glib-unix.c
+++ b/glib/glib-unix.c
@@ -23,12 +23,8 @@
#include "config.h"
-/* To make bionic export pipe2() */
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE 1
-#endif
-
#include "glib-unix.h"
+#include "glib-unixprivate.h"
#include "gmain-internal.h"
#include <string.h>
@@ -41,6 +37,12 @@ G_STATIC_ASSERT (G_ALIGNOF (gssize) == G_ALIGNOF (ssize_t));
G_STATIC_ASSERT (sizeof (GPid) == sizeof (pid_t));
G_STATIC_ASSERT (G_ALIGNOF (GPid) == G_ALIGNOF (pid_t));
+/* If this assertion fails, then the ABI of g_unix_open_pipe() would be
+ * ambiguous on this platform.
+ * On Linux, usually O_NONBLOCK == 04000 and FD_CLOEXEC == 1, but the same
+ * might not be true everywhere. */
+G_STATIC_ASSERT (O_NONBLOCK != FD_CLOEXEC);
+
/**
* SECTION:gunix
* @title: UNIX-specific utilities and integration
@@ -78,12 +80,20 @@ g_unix_set_error_from_errno (GError **error,
*
* Similar to the UNIX pipe() call, but on modern systems like Linux
* uses the pipe2() system call, which atomically creates a pipe with
- * the configured flags. The only supported flag currently is
- * %FD_CLOEXEC. If for example you want to configure %O_NONBLOCK, that
- * must still be done separately with fcntl().
+ * the configured flags.
*
- * This function does not take %O_CLOEXEC, it takes %FD_CLOEXEC as if
- * for fcntl(); these are different on Linux/glibc.
+ * As of GLib 2.78, the supported flags are `O_CLOEXEC`/`FD_CLOEXEC` (see below)
+ * and `O_NONBLOCK`. Prior to GLib 2.78, only `FD_CLOEXEC` was supported — if
+ * you wanted to configure `O_NONBLOCK` then that had to be done separately with
+ * `fcntl()`.
+ *
+ * It is a programmer error to call this function with unsupported flags, and a
+ * critical warning will be raised.
+ *
+ * As of GLib 2.78, it is preferred to pass `O_CLOEXEC` in, rather than
+ * `FD_CLOEXEC`, as that matches the underlying `pipe()` API more closely. Prior
+ * to 2.78, only `FD_CLOEXEC` was supported. Support for `FD_CLOEXEC` may be
+ * deprecated and removed in future.
*
* Returns: %TRUE on success, %FALSE if not (and errno will be set).
*
@@ -94,48 +104,19 @@ g_unix_open_pipe (int *fds,
int flags,
GError **error)
{
- int ecode;
-
- /* We only support FD_CLOEXEC */
- g_return_val_if_fail ((flags & (FD_CLOEXEC)) == flags, FALSE);
-
-#ifdef HAVE_PIPE2
- {
- int pipe2_flags = 0;
- if (flags & FD_CLOEXEC)
- pipe2_flags |= O_CLOEXEC;
- /* Atomic */
- ecode = pipe2 (fds, pipe2_flags);
- if (ecode == -1 && errno != ENOSYS)
- return g_unix_set_error_from_errno (error, errno);
- else if (ecode == 0)
- return TRUE;
- /* Fall through on -ENOSYS, we must be running on an old kernel */
- }
+ /* We only support O_CLOEXEC/FD_CLOEXEC and O_NONBLOCK */
+ g_return_val_if_fail ((flags & (O_CLOEXEC | FD_CLOEXEC | O_NONBLOCK)) == flags, FALSE);
+
+#if O_CLOEXEC != FD_CLOEXEC && !defined(G_DISABLE_CHECKS)
+ if (flags & FD_CLOEXEC)
+ g_debug ("g_unix_open_pipe() called with FD_CLOEXEC; please migrate to using O_CLOEXEC instead");
#endif
- ecode = pipe (fds);
- if (ecode == -1)
- return g_unix_set_error_from_errno (error, errno);
- if (flags == 0)
- return TRUE;
+ if (!g_unix_open_pipe_internal (fds,
+ (flags & (O_CLOEXEC | FD_CLOEXEC)) != 0,
+ (flags & O_NONBLOCK) != 0))
+ return g_unix_set_error_from_errno (error, errno);
- ecode = fcntl (fds[0], F_SETFD, flags);
- if (ecode == -1)
- {
- int saved_errno = errno;
- close (fds[0]);
- close (fds[1]);
- return g_unix_set_error_from_errno (error, saved_errno);
- }
- ecode = fcntl (fds[1], F_SETFD, flags);
- if (ecode == -1)
- {
- int saved_errno = errno;
- close (fds[0]);
- close (fds[1]);
- return g_unix_set_error_from_errno (error, saved_errno);
- }
return TRUE;
}
@@ -166,21 +147,9 @@ g_unix_set_fd_nonblocking (gint fd,
return g_unix_set_error_from_errno (error, errno);
if (nonblock)
- {
-#ifdef O_NONBLOCK
- fcntl_flags |= O_NONBLOCK;
-#else
- fcntl_flags |= O_NDELAY;
-#endif
- }
+ fcntl_flags |= O_NONBLOCK;
else
- {
-#ifdef O_NONBLOCK
- fcntl_flags &= ~O_NONBLOCK;
-#else
- fcntl_flags &= ~O_NDELAY;
-#endif
- }
+ fcntl_flags &= ~O_NONBLOCK;
if (fcntl (fd, F_SETFL, fcntl_flags) == -1)
return g_unix_set_error_from_errno (error, errno);
@@ -326,12 +295,15 @@ GSourceFuncs g_unix_fd_source_funcs = {
/**
* g_unix_fd_source_new:
* @fd: a file descriptor
- * @condition: IO conditions to watch for on @fd
+ * @condition: I/O conditions to watch for on @fd
*
- * Creates a #GSource to watch for a particular IO condition on a file
+ * Creates a #GSource to watch for a particular I/O condition on a file
* descriptor.
*
- * The source will never close the fd -- you must do it yourself.
+ * The source will never close the @fd — you must do it yourself.
+ *
+ * Any callback attached to the returned #GSource must have type
+ * #GUnixFDSourceFunc.
*
* Returns: the newly created #GSource
*
diff --git a/glib/glib-unixprivate.h b/glib/glib-unixprivate.h
new file mode 100644
index 000000000..fa13fe861
--- /dev/null
+++ b/glib/glib-unixprivate.h
@@ -0,0 +1,117 @@
+/* glib-unixprivate.h - Unix specific integration private functions
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __G_UNIXPRIVATE_H__
+#define __G_UNIXPRIVATE_H__
+
+#include "config.h"
+
+#ifndef G_OS_UNIX
+#error "This header may only be used on UNIX"
+#endif
+
+/* To make bionic export pipe2() */
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
+
+#include "gmacros.h"
+#include "gtypes.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+G_BEGIN_DECLS
+
+static inline gboolean
+g_unix_open_pipe_internal (int *fds,
+ gboolean close_on_exec,
+ gboolean nonblock)
+ {
+#ifdef HAVE_PIPE2
+ do
+ {
+ int ecode;
+ int flags = 0;
+
+ if (close_on_exec)
+ flags |= O_CLOEXEC;
+ if (nonblock)
+ flags |= O_NONBLOCK;
+
+ /* Atomic */
+ ecode = pipe2 (fds, flags);
+ if (ecode == -1 && errno != ENOSYS)
+ return FALSE;
+ else if (ecode == 0)
+ return TRUE;
+ /* Fall through on -ENOSYS, we must be running on an old kernel */
+ }
+ while (FALSE);
+#endif
+
+ if (pipe (fds) == -1)
+ return FALSE;
+
+ if (close_on_exec)
+ {
+ if (fcntl (fds[0], F_SETFD, FD_CLOEXEC) == -1 ||
+ fcntl (fds[1], F_SETFD, FD_CLOEXEC) == -1)
+ {
+ int saved_errno = errno;
+
+ close (fds[0]);
+ close (fds[1]);
+ fds[0] = -1;
+ fds[1] = -1;
+
+ errno = saved_errno;
+ return FALSE;
+ }
+ }
+
+ if (nonblock)
+ {
+#ifdef O_NONBLOCK
+ int flags = O_NONBLOCK;
+#else
+ int flags = O_NDELAY;
+#endif
+
+ if (fcntl (fds[0], F_SETFL, flags) == -1 ||
+ fcntl (fds[1], F_SETFL, flags) == -1)
+ {
+ int saved_errno = errno;
+
+ close (fds[0]);
+ close (fds[1]);
+ fds[0] = -1;
+ fds[1] = -1;
+
+ errno = saved_errno;
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+G_END_DECLS
+
+#endif /* __G_UNIXPRIVATE_H__ */
diff --git a/glib/glib.h b/glib/glib.h
index cfd28ce0d..40e501997 100644
--- a/glib/glib.h
+++ b/glib/glib.h
@@ -64,6 +64,7 @@
#include <glib/gmessages.h>
#include <glib/gnode.h>
#include <glib/goption.h>
+#include <glib/gpathbuf.h>
#include <glib/gpattern.h>
#include <glib/gpoll.h>
#include <glib/gprimes.h>
diff --git a/glib/glib.stp.in b/glib/glib.stp.in
index 5714fc171..4ca889fa4 100644
--- a/glib/glib.stp.in
+++ b/glib/glib.stp.in
@@ -1,4 +1,5 @@
global glib_quarks_2_0_@LT_CURRENT@_@LT_REVISION@
+global gvarianttypeinfo_2_0_@LT_CURRENT@_@LT_REVISION@
/* This is needed to keep track of gquark for use in other probes.*/
probe process("@ABS_GLIB_RUNTIME_LIBDIR@/libglib-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("quark__new")
@@ -643,3 +644,205 @@ probe glib.rcbox_free = process("@ABS_GLIB_RUNTIME_LIBDIR@/libglib-2.0.so.0.@LT_
mem = $arg1; /* ARG: @mem: Raw memory pointer */
probestr = sprintf("glib.rcbox_free(mem=%p)", mem);
}
+
+/**
+ * probe glib.variant_type_info_new:
+ * @info: Raw info structure pointer
+ * @typestr: GVariant type string
+ **/
+probe glib.variant_type_info_new = process("@ABS_GLIB_RUNTIME_LIBDIR@/libglib-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("variant__type_info_new")
+{
+ info = $arg1;
+ typestr = user_string($arg2);
+ gvarianttypeinfo[pid(), info] = typestr;
+}
+
+/**
+ * probe glib.variant_type_info_free:
+ * @info: Raw info structure pointer
+ **/
+probe glib.variant_type_info_free = process("@ABS_GLIB_RUNTIME_LIBDIR@/libglib-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("variant__type_info_free")
+{
+ info = $arg1;
+ delete gvarianttypeinfo[pid(), info];
+}
+
+/**
+ * probe glib.variant_start_serialise:
+ * @value: pointer to #GVariant
+ * @typeinfo: the raw typeinfo structure pointer
+ * @typestr: the type string of the #GVariant
+ *
+ * Indicates that a @value has started the process of serialising
+ * itself. This involves dropping references on the child elements of
+ * @value, so when mixed with the end_serialise probe, it is possible to
+ * see the context in which the unrefs are occuring.
+ **/
+probe glib.variant_start_serialise = process("@ABS_GLIB_RUNTIME_LIBDIR@/libglib-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("variant__start_serialise")
+{
+ value = $arg1;
+ typeinfo = $arg2;
+ typestr = gvarianttypeinfo[pid(), typeinfo];
+}
+
+/**
+ * probe glib.variant_end_serialise:
+ * @value: pointer to #GVariant
+ * @typeinfo: the raw typeinfo structure pointer
+ * @typestr: the type string of the #GVariant
+ *
+ * Indicates that a @value has ended the process of serialising itself.
+ **/
+probe glib.variant_end_serialise = process("@ABS_GLIB_RUNTIME_LIBDIR@/libglib-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("variant__end_serialise")
+{
+ value = $arg1;
+ typeinfo = $arg2;
+ typestr = gvarianttypeinfo[pid(), typeinfo];
+}
+
+/**
+ * probe glib.variant_from_buffer:
+ * @value: pointer to #GVariant
+ * @typeinfo: the raw typeinfo structure pointer
+ * @typestr: the type string of the #GVariant
+ * @ref_count: the initial reference count
+ * @state: the internal state bitfield
+ *
+ * Reports that a serialised #GVariant has been created from a buffer.
+ * This can happen in two cases. The first is when a leaf value is
+ * created (with g_variant_new_string(), for example). The second is
+ * when a container #GVariant is created by loading from serialised data
+ * (with g_variant_new_from_data(), for example).
+ **/
+probe glib.variant_from_buffer = process("@ABS_GLIB_RUNTIME_LIBDIR@/libglib-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("variant__from_buffer")
+{
+ value = $arg1;
+ typeinfo = $arg2;
+ typestr = gvarianttypeinfo[pid(), typeinfo];
+ ref_count = $arg3;
+ state = $arg4;
+}
+
+/**
+ * probe glib.variant_from_children:
+ * @value: pointer to #GVariant
+ * @typeinfo: the raw typeinfo structure pointer
+ * @typestr: the type string of the #GVariant
+ * @ref_count: the initial reference count
+ * @state: the internal state bitfield
+ *
+ * Reports that a tree-form #GVariant has been created from a number of
+ * child elements. This happens in response to the calls like
+ * g_variant_new_array() and also for g_variant_builder_end().
+ **/
+probe glib.variant_from_children = process("@ABS_GLIB_RUNTIME_LIBDIR@/libglib-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("variant__from_children")
+{
+ value = $arg1;
+ typeinfo = $arg2;
+ typestr = gvarianttypeinfo[pid(), typeinfo];
+ ref_count = $arg3;
+ state = $arg4;
+}
+
+/**
+ * probe glib.variant_unref:
+ * @value: pointer to #GVariant
+ * @typeinfo: the raw typeinfo structure pointer
+ * @typestr: the type string of the #GVariant
+ * @ref_count: the reference count before the call
+ * @state: the internal state bitfield
+ *
+ * Reports that g_variant_unref() has been called on a value.
+ **/
+probe glib.variant_unref = process("@ABS_GLIB_RUNTIME_LIBDIR@/libglib-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("variant__unref")
+{
+ value = $arg1;
+ typeinfo = $arg2;
+ typestr = gvarianttypeinfo[pid(), typeinfo];
+ old_ref_count = $arg3;
+ new_ref_count = old_ref_count - 1;
+ state = $arg4;
+}
+
+/**
+ * probe glib.variant_ref:
+ * @value: pointer to #GVariant
+ * @typeinfo: the raw typeinfo structure pointer
+ * @typestr: the type string of the #GVariant
+ * @ref_count: the reference count before the call
+ * @state: the internal state bitfield
+ *
+ * Reports that g_variant_ref() has been called on a value.
+ **/
+probe glib.variant_ref = process("@ABS_GLIB_RUNTIME_LIBDIR@/libglib-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("variant__ref")
+{
+ value = $arg1;
+ typeinfo = $arg2;
+ typestr = gvarianttypeinfo[pid(), typeinfo];
+ old_ref_count = $arg3;
+ new_ref_count = $arg3 + 1;
+ state = $arg4;
+}
+
+/**
+ * probe glib.variant_ref_sink:
+ * @value: pointer to #GVariant
+ * @typeinfo: the raw typeinfo structure pointer
+ * @typestr: the type string of the #GVariant
+ * @ref_count: the reference count before the call
+ * @state: the internal state bitfield
+ * @floating: the floating bit of @state
+ *
+ * Reports that g_variant_ref_sink() has been called on a value.
+ **/
+probe glib.variant_ref_sink = process("@ABS_GLIB_RUNTIME_LIBDIR@/libglib-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("variant__ref_sink")
+{
+ value = $arg1;
+ typeinfo = $arg2;
+ typestr = gvarianttypeinfo[pid(), typeinfo];
+ ref_count = $arg3;
+ state = $arg4;
+ floating = $arg5;
+}
+
+/**
+ * probe glib.variant_take_ref:
+ * @value: pointer to #GVariant
+ * @typeinfo: the raw typeinfo structure pointer
+ * @typestr: the type string of the #GVariant
+ * @ref_count: the reference count before the call
+ * @state: the internal state bitfield
+ * @floating: the floating bit of @state
+ *
+ * Reports that g_variant_take_ref() has been called on a value.
+ **/
+probe glib.variant_take_ref = process("@ABS_GLIB_RUNTIME_LIBDIR@/libglib-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("variant__take_ref")
+{
+ value = $arg1;
+ typeinfo = $arg2;
+ typestr = gvarianttypeinfo[pid(), typeinfo];
+ ref_count = $arg3;
+ state = $arg4;
+ floating = $arg5;
+}
+
+/**
+ * probe glib.variant_from_parent:
+ * @value: pointer to #GVariant
+ * @typeinfo: the raw typeinfo structure pointer
+ * @typestr: the type string of the #GVariant
+ * @ref_count: the initial reference count
+ * @state: the internal state bitfield
+ *
+ * Reports that a #GVariant has been created as a result of calling
+ * g_variant_get_child_value() on a serialised #GVariant (ie:
+ * deserialisation has occured).
+ **/
+probe glib.variant_from_parent = process("@ABS_GLIB_RUNTIME_LIBDIR@/libglib-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("variant__from_parent")
+{
+ value = $arg1;
+ typeinfo = $arg2;
+ typestr = gvarianttypeinfo[pid(), typeinfo];
+ ref_count = $arg3;
+ state = $arg4;
+}
diff --git a/glib/glib_gdb.py b/glib/glib_gdb.py
index 8c15d583c..66d9f6990 100644
--- a/glib/glib_gdb.py
+++ b/glib/glib_gdb.py
@@ -16,17 +16,28 @@ def g_quark_to_string(quark):
quark = long(quark)
if quark == 0:
return None
+ max_q = None
try:
val = read_global_var("quarks")
- max_q = long(read_global_var("quark_seq_id"))
+ try:
+ max_q = long(read_global_var("quark_seq_id"))
+ # quark_seq_id gets optimized out in some builds so work around it
+ except gdb.error:
+ pass
except Exception:
try:
val = read_global_var("g_quarks")
- max_q = long(read_global_var("g_quark_seq_id"))
+ try:
+ max_q = long(read_global_var("g_quark_seq_id"))
+ except gdb.error:
+ pass
except Exception:
return None
- if quark < max_q:
- return val[quark].string()
+ if max_q is None or quark < max_q:
+ try:
+ return val[quark].string()
+ except gdb.MemoryError:
+ print(f"Invalid quark {quark}")
return None
diff --git a/glib/glib_probes.d b/glib/glib_probes.d
index 14bb8f1ec..d663b81bf 100644
--- a/glib/glib_probes.d
+++ b/glib/glib_probes.d
@@ -47,4 +47,15 @@ provider glib {
probe rcbox__acquire(void*, unsigned int);
probe rcbox__release(void*, unsigned int);
probe rcbox__free(void*);
+ probe variant__type_info_new(void*, const char*);
+ probe variant__type_info_free(void*);
+ probe variant__start_serialise(void*, const char*);
+ probe variant__end_serialise(void*, const char*);
+ probe variant__from_buffer(void*, const char*, int, int);
+ probe variant__from_children(void*, const char*, int, int);
+ probe variant__unref(void*, const char*, int, int);
+ probe variant__ref(void*, const char*, int, int);
+ probe variant__ref_sink(void*, const char*, int, int, int);
+ probe variant__take_ref(void*, const char*, int, int, int);
+ probe variant__from_parent(void*, const char*, int, int, void*);
};
diff --git a/glib/glibconfig.h.in b/glib/glibconfig.h.in
index ffedee1d2..4e018a5f1 100644
--- a/glib/glibconfig.h.in
+++ b/glib/glibconfig.h.in
@@ -12,17 +12,19 @@
#include <float.h>
#mesondefine GLIB_HAVE_ALLOCA_H
+#mesondefine GLIB_STATIC_COMPILATION
+#mesondefine GOBJECT_STATIC_COMPILATION
+#mesondefine GIO_STATIC_COMPILATION
+#mesondefine GMODULE_STATIC_COMPILATION
+#mesondefine G_INTL_STATIC_COMPILATION
+#mesondefine FFI_STATIC_BUILD
+
/* Specifies that GLib's g_print*() functions wrap the
* system printf functions. This is useful to know, for example,
* when using glibc's register_printf_function().
*/
#mesondefine GLIB_USING_SYSTEM_PRINTF
-#mesondefine GLIB_STATIC_COMPILATION
-#mesondefine GOBJECT_STATIC_COMPILATION
-#mesondefine G_INTL_STATIC_COMPILATION
-#mesondefine FFI_STATIC_BUILD
-
G_BEGIN_DECLS
#define G_MINFLOAT FLT_MIN
@@ -116,6 +118,7 @@ typedef unsigned @glib_intptr_type_define@ guintptr;
@glib_os@
+#define G_VA_COPY va_copy
@glib_vacopy@
#define G_HAVE_ISO_VARARGS 1
@@ -129,7 +132,6 @@ typedef unsigned @glib_intptr_type_define@ guintptr;
#endif
#mesondefine G_HAVE_GROWING_STACK
-#mesondefine G_HAVE_GNUC_VISIBILITY
#ifndef _MSC_VER
# define G_HAVE_GNUC_VARARGS 1
@@ -186,7 +188,13 @@ typedef unsigned @glib_intptr_type_define@ guintptr;
#define GLIB_SYSDEF_POLLERR =@g_pollerr@
#define GLIB_SYSDEF_POLLNVAL =@g_pollnval@
+/* No way to disable deprecation warnings for macros, so only emit deprecation
+ * warnings on platforms where usage of this macro is broken */
+#if defined(__APPLE__) || defined(_MSC_VER) || defined(__CYGWIN__)
+#define G_MODULE_SUFFIX "@g_module_suffix@" GLIB_DEPRECATED_MACRO_IN_2_76
+#else
#define G_MODULE_SUFFIX "@g_module_suffix@"
+#endif
typedef @g_pid_type@ GPid;
#define G_PID_FORMAT @g_pid_format@
@@ -204,6 +212,8 @@ typedef @g_pid_type@ GPid;
#define G_SEARCHPATH_SEPARATOR '@g_searchpath_separator@'
#define G_SEARCHPATH_SEPARATOR_S "@g_searchpath_separator@"
+#mesondefine G_HAVE_FREE_SIZED
+
G_END_DECLS
#endif /* __GLIBCONFIG_H__ */
diff --git a/glib/gmacros.h b/glib/gmacros.h
index d4e5124cf..1be50a45b 100644
--- a/glib/gmacros.h
+++ b/glib/gmacros.h
@@ -64,21 +64,64 @@
#define G_GNUC_EXTENSION
#endif
+#if !defined (__cplusplus)
+
+# undef G_CXX_STD_VERSION
+# define G_CXX_STD_CHECK_VERSION(version) (0)
+
+# if defined (__STDC_VERSION__)
+# define G_C_STD_VERSION __STDC_VERSION__
+# else
+# define G_C_STD_VERSION 199000L
+# endif /* defined (__STDC_VERSION__) */
+
+# define G_C_STD_CHECK_VERSION(version) ( \
+ ((version) >= 199000L && (version) <= G_C_STD_VERSION) || \
+ ((version) == 89 && G_C_STD_VERSION >= 199000L) || \
+ ((version) == 90 && G_C_STD_VERSION >= 199000L) || \
+ ((version) == 99 && G_C_STD_VERSION >= 199901L) || \
+ ((version) == 11 && G_C_STD_VERSION >= 201112L) || \
+ ((version) == 17 && G_C_STD_VERSION >= 201710L) || \
+ 0)
+
+#else /* defined (__cplusplus) */
+
+# undef G_C_STD_VERSION
+# define G_C_STD_CHECK_VERSION(version) (0)
+
+# if defined (_MSVC_LANG)
+# define G_CXX_STD_VERSION (_MSVC_LANG > __cplusplus ? _MSVC_LANG : __cplusplus)
+# else
+# define G_CXX_STD_VERSION __cplusplus
+# endif /* defined(_MSVC_LANG) */
+
+# define G_CXX_STD_CHECK_VERSION(version) ( \
+ ((version) >= 199711L && (version) <= G_CXX_STD_VERSION) || \
+ ((version) == 98 && G_CXX_STD_VERSION >= 199711L) || \
+ ((version) == 03 && G_CXX_STD_VERSION >= 199711L) || \
+ ((version) == 11 && G_CXX_STD_VERSION >= 201103L) || \
+ ((version) == 14 && G_CXX_STD_VERSION >= 201402L) || \
+ ((version) == 17 && G_CXX_STD_VERSION >= 201703L) || \
+ ((version) == 20 && G_CXX_STD_VERSION >= 202002L) || \
+ 0)
+
+#endif /* !defined (__cplusplus) */
+
/* Every compiler that we target supports inlining, but some of them may
* complain about it if we don't say "__inline". If we have C99, or if
- * we are using C++, then we can use "inline" directly. Unfortunately
- * Visual Studio does not support __STDC_VERSION__, so we need to check
- * whether we are on Visual Studio 2013 or earlier to see that we need to
- * say "__inline" in C mode.
+ * we are using C++, then we can use "inline" directly.
* Otherwise, we say "__inline" to avoid the warning.
+ * Unfortunately Visual Studio does not define __STDC_VERSION__ (if not
+ * using /std:cXX) so we need to check whether we are on Visual Studio 2013
+ * or earlier to see whether we need to say "__inline" in C mode.
*/
#define G_CAN_INLINE
-#ifndef __cplusplus
+#ifdef G_C_STD_VERSION
# ifdef _MSC_VER
# if (_MSC_VER < 1900)
# define G_INLINE_DEFINE_NEEDED
# endif
-# elif !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199900)
+# elif !G_C_STD_CHECK_VERSION (99)
# define G_INLINE_DEFINE_NEEDED
# endif
#endif
@@ -129,22 +172,23 @@
*/
#define g_macro__has_attribute(x) g_macro__has_attribute_##x
-#define g_macro__has_attribute___pure__ G_GNUC_CHECK_VERSION (2, 96)
-#define g_macro__has_attribute___malloc__ G_GNUC_CHECK_VERSION (2, 96)
-#define g_macro__has_attribute___noinline__ G_GNUC_CHECK_VERSION (2, 96)
-#define g_macro__has_attribute___sentinel__ G_GNUC_CHECK_VERSION (4, 0)
#define g_macro__has_attribute___alloc_size__ G_GNUC_CHECK_VERSION (4, 3)
+#define g_macro__has_attribute___always_inline__ G_GNUC_CHECK_VERSION (2, 0)
+#define g_macro__has_attribute___const__ G_GNUC_CHECK_VERSION (2, 4)
+#define g_macro__has_attribute___deprecated__ G_GNUC_CHECK_VERSION (3, 1)
#define g_macro__has_attribute___format__ G_GNUC_CHECK_VERSION (2, 4)
#define g_macro__has_attribute___format_arg__ G_GNUC_CHECK_VERSION (2, 4)
+#define g_macro__has_attribute___malloc__ G_GNUC_CHECK_VERSION (2, 96)
+#define g_macro__has_attribute___no_instrument_function__ G_GNUC_CHECK_VERSION (2, 4)
+#define g_macro__has_attribute___noinline__ G_GNUC_CHECK_VERSION (2, 96)
#define g_macro__has_attribute___noreturn__ (G_GNUC_CHECK_VERSION (2, 8) || (0x5110 <= __SUNPRO_C))
-#define g_macro__has_attribute___const__ G_GNUC_CHECK_VERSION (2, 4)
+#define g_macro__has_attribute___pure__ G_GNUC_CHECK_VERSION (2, 96)
+#define g_macro__has_attribute___sentinel__ G_GNUC_CHECK_VERSION (4, 0)
#define g_macro__has_attribute___unused__ G_GNUC_CHECK_VERSION (2, 4)
-#define g_macro__has_attribute___no_instrument_function__ G_GNUC_CHECK_VERSION (2, 4)
+#define g_macro__has_attribute_cleanup G_GNUC_CHECK_VERSION (3, 3)
#define g_macro__has_attribute_fallthrough G_GNUC_CHECK_VERSION (6, 0)
-#define g_macro__has_attribute___deprecated__ G_GNUC_CHECK_VERSION (3, 1)
#define g_macro__has_attribute_may_alias G_GNUC_CHECK_VERSION (3, 3)
#define g_macro__has_attribute_warn_unused_result G_GNUC_CHECK_VERSION (3, 4)
-#define g_macro__has_attribute_cleanup G_GNUC_CHECK_VERSION (3, 3)
#endif
@@ -819,34 +863,32 @@
#ifndef __GI_SCANNER__ /* The static assert macro really confuses the introspection parser */
#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
#define G_PASTE(identifier1,identifier2) G_PASTE_ARGS (identifier1, identifier2)
-#if !defined(__cplusplus) && defined(__STDC_VERSION__) && \
- (__STDC_VERSION__ >= 201112L || g_macro__has_feature(c_static_assert) || g_macro__has_extension(c_static_assert))
-#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
-#elif (defined(__cplusplus) && __cplusplus >= 201103L) || \
- (defined(__cplusplus) && defined (_MSC_VER) && (_MSC_VER >= 1600)) || \
- (defined (_MSC_VER) && (_MSC_VER >= 1800))
+#if G_CXX_STD_CHECK_VERSION (11)
#define G_STATIC_ASSERT(expr) static_assert (expr, "Expression evaluates to false")
+#elif (G_C_STD_CHECK_VERSION (11) || \
+ g_macro__has_feature(c_static_assert) || g_macro__has_extension(c_static_assert))
+#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false")
#else
#ifdef __COUNTER__
#define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED
#else
#define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __LINE__)[(expr) ? 1 : -1] G_GNUC_UNUSED
#endif
-#endif /* __STDC_VERSION__ */
+#endif /* G_CXX_STD_CHECK_VERSION (11) */
#define G_STATIC_ASSERT_EXPR(expr) ((void) sizeof (char[(expr) ? 1 : -1]))
#endif /* !__GI_SCANNER__ */
/* Provide a string identifying the current code position */
-#if defined(__GNUC__) && (__GNUC__ < 3) && !defined(__cplusplus)
+#if defined (__GNUC__) && (__GNUC__ < 3) && !defined (G_CXX_STD_VERSION)
#define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) ":" __PRETTY_FUNCTION__ "()"
#else
#define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
#endif
/* Provide a string identifying the current function, non-concatenatable */
-#if defined (__GNUC__) && defined (__cplusplus)
+#if defined (__GNUC__) && defined (G_CXX_STD_VERSION)
#define G_STRFUNC ((const char*) (__PRETTY_FUNCTION__))
-#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#elif G_C_STD_CHECK_VERSION (99)
#define G_STRFUNC ((const char*) (__func__))
#elif defined (__GNUC__) || (defined(_MSC_VER) && (_MSC_VER > 1300))
#define G_STRFUNC ((const char*) (__FUNCTION__))
@@ -855,7 +897,7 @@
#endif
/* Guard C code in headers, while including them from C++ */
-#ifdef __cplusplus
+#ifdef G_CXX_STD_VERSION
#define G_BEGIN_DECLS extern "C" {
#define G_END_DECLS }
#else
@@ -869,11 +911,13 @@
* defined then the current definition is correct.
*/
#ifndef NULL
-# ifdef __cplusplus
-# define NULL (0L)
-# else /* !__cplusplus */
-# define NULL ((void*) 0)
-# endif /* !__cplusplus */
+# if G_CXX_STD_CHECK_VERSION (11)
+# define NULL (nullptr)
+# elif defined (G_CXX_STD_VERSION)
+# define NULL (0L)
+# else
+# define NULL ((void*) 0)
+# endif /* G_CXX_STD_CHECK_VERSION (11) */
#endif
#ifndef FALSE
@@ -908,7 +952,7 @@
/* Macros by analogy to GINT_TO_POINTER, GPOINTER_TO_INT
*/
#define GPOINTER_TO_SIZE(p) ((gsize) (p))
-#define GSIZE_TO_POINTER(s) ((gpointer) (gsize) (s))
+#define GSIZE_TO_POINTER(s) ((gpointer) (guintptr) (gsize) (s))
/* Provide convenience macros for handling structure
* fields through their offsets.
@@ -972,7 +1016,7 @@
*
* Since: 2.60
*/
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(__cplusplus)
+#if G_C_STD_CHECK_VERSION (11)
#define G_ALIGNOF(type) _Alignof (type) \
GLIB_AVAILABLE_MACRO_IN_2_60
#else
@@ -1024,18 +1068,18 @@
* evaluated when a header is included. This results in warnings in third party
* code which includes glib.h, even if the third party code doesn’t use the new
* macro itself. */
-#if g_macro__has_attribute(__noreturn__)
+#if G_CXX_STD_CHECK_VERSION (11)
+ /* Use ISO C++11 syntax when the compiler supports it. */
+# define G_NORETURN [[noreturn]]
+#elif g_macro__has_attribute(__noreturn__)
/* For compatibility with G_NORETURN_FUNCPTR on clang, use
__attribute__((__noreturn__)), not _Noreturn. */
# define G_NORETURN __attribute__ ((__noreturn__))
#elif defined (_MSC_VER) && (1200 <= _MSC_VER)
/* Use MSVC specific syntax. */
# define G_NORETURN __declspec (noreturn)
- /* Use ISO C++11 syntax when the compiler supports it. */
-#elif defined (__cplusplus) && __cplusplus >= 201103
-# define G_NORETURN [[noreturn]]
/* Use ISO C11 syntax when the compiler supports it. */
-#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112
+#elif G_C_STD_CHECK_VERSION (11)
# define G_NORETURN _Noreturn
#else
# define G_NORETURN /* empty */
@@ -1103,7 +1147,7 @@
* code which includes glib.h, even if the third party code doesn’t use the new
* macro itself. */
#if g_macro__has_attribute(__always_inline__)
-# if defined (__cplusplus) && __cplusplus >= 201103L
+# if G_CXX_STD_CHECK_VERSION (11)
/* Use ISO C++11 syntax when the compiler supports it. */
# define G_ALWAYS_INLINE [[gnu::always_inline]]
# else
@@ -1111,7 +1155,11 @@
# endif
#elif defined (_MSC_VER)
/* Use MSVC specific syntax. */
-# define G_ALWAYS_INLINE __forceinline
+# if G_CXX_STD_CHECK_VERSION (20) && _MSC_VER >= 1927
+# define G_ALWAYS_INLINE [[msvc::forceinline]]
+# else
+# define G_ALWAYS_INLINE __forceinline
+# endif
#else
# define G_ALWAYS_INLINE /* empty */
#endif
@@ -1147,16 +1195,24 @@
* code which includes glib.h, even if the third party code doesn’t use the new
* macro itself. */
#if g_macro__has_attribute(__noinline__)
-# if defined (__cplusplus) && __cplusplus >= 201103L
+# if G_CXX_STD_CHECK_VERSION (11)
/* Use ISO C++11 syntax when the compiler supports it. */
-# define G_NO_INLINE [[gnu::noinline]]
+# if defined (__GNUC__)
+# define G_NO_INLINE [[gnu::noinline]]
+# elif defined (_MSC_VER)
+# if G_CXX_STD_CHECK_VERSION (20) && _MSC_VER >= 1927
+# define G_NO_INLINE [[msvc::noinline]]
+# else
+# define G_NO_INLINE __declspec (noinline)
+# endif
+# endif
# else
# define G_NO_INLINE __attribute__ ((__noinline__))
# endif
#elif defined (_MSC_VER) && (1200 <= _MSC_VER)
/* Use MSVC specific syntax. */
-# if defined (__cplusplus) && __cplusplus >= 201103L
/* Use ISO C++11 syntax when the compiler supports it. */
+# if G_CXX_STD_CHECK_VERSION (20) && _MSC_VER >= 1927
# define G_NO_INLINE [[msvc::noinline]]
# else
# define G_NO_INLINE __declspec (noinline)
@@ -1174,15 +1230,16 @@
* putting assignments in g_return_if_fail ().
*/
#if G_GNUC_CHECK_VERSION(2, 0) && defined(__OPTIMIZE__)
-#define _G_BOOLEAN_EXPR(expr) \
+#define _G_BOOLEAN_EXPR_IMPL(uniq, expr) \
G_GNUC_EXTENSION ({ \
- int _g_boolean_var_; \
+ int G_PASTE (_g_boolean_var_, uniq); \
if (expr) \
- _g_boolean_var_ = 1; \
+ G_PASTE (_g_boolean_var_, uniq) = 1; \
else \
- _g_boolean_var_ = 0; \
- _g_boolean_var_; \
+ G_PASTE (_g_boolean_var_, uniq) = 0; \
+ G_PASTE (_g_boolean_var_, uniq); \
})
+#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr)
#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
#else
@@ -1190,6 +1247,10 @@
#define G_UNLIKELY(expr) (expr)
#endif
+#if __GNUC__ >= 4 && !defined(_WIN32) && !defined(__CYGWIN__)
+#define G_HAVE_GNUC_VISIBILITY 1
+#endif
+
/* GLIB_CANNOT_IGNORE_DEPRECATIONS is defined above for compilers that do not
* have a way to temporarily suppress deprecation warnings. In these cases,
* suppress the deprecated attribute altogether (otherwise a simple #include
@@ -1223,28 +1284,12 @@
#define G_UNAVAILABLE(maj,min) G_DEPRECATED
#endif
-#ifndef _GLIB_EXTERN
-#define _GLIB_EXTERN extern
-#endif
-
/* These macros are used to mark deprecated symbols in GLib headers,
* and thus have to be exposed in installed headers. But please
* do *not* use them in other projects. Instead, use G_DEPRECATED
* or define your own wrappers around it.
*/
-#ifdef GLIB_DISABLE_DEPRECATION_WARNINGS
-#define GLIB_DEPRECATED _GLIB_EXTERN
-#define GLIB_DEPRECATED_FOR(f) _GLIB_EXTERN
-#define GLIB_UNAVAILABLE(maj,min) _GLIB_EXTERN
-#define GLIB_UNAVAILABLE_STATIC_INLINE(maj,min)
-#else
-#define GLIB_DEPRECATED G_DEPRECATED _GLIB_EXTERN
-#define GLIB_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GLIB_EXTERN
-#define GLIB_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _GLIB_EXTERN
-#define GLIB_UNAVAILABLE_STATIC_INLINE(maj,min) G_UNAVAILABLE(maj,min)
-#endif
-
#if !defined(GLIB_DISABLE_DEPRECATION_WARNINGS) && \
(G_GNUC_CHECK_VERSION(4, 6) || \
__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
@@ -1288,7 +1333,7 @@
#if g_macro__has_attribute(cleanup)
-/* these macros are private */
+/* these macros are private; note that gstdio.h also uses _GLIB_CLEANUP */
#define _GLIB_AUTOPTR_FUNC_NAME(TypeName) glib_autoptr_cleanup_##TypeName
#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
#define _GLIB_AUTOPTR_TYPENAME(TypeName) TypeName##_autoptr
diff --git a/glib/gmain.c b/glib/gmain.c
index 21e6b0ba0..8400e9726 100644
--- a/glib/gmain.c
+++ b/glib/gmain.c
@@ -133,7 +133,7 @@
* @short_description: manages all available sources of events
*
* The main event loop manages all the available sources of events for
- * GLib and GTK+ applications. These events can come from any number of
+ * GLib and GTK applications. These events can come from any number of
* different types of sources such as file descriptors (plain files,
* pipes or sockets) and timeouts. New types of event sources can also
* be added using g_source_attach().
@@ -165,12 +165,12 @@
* exit the main loop, and g_main_loop_run() returns.
*
* It is possible to create new instances of #GMainLoop recursively.
- * This is often used in GTK+ applications when showing modal dialog
+ * This is often used in GTK applications when showing modal dialog
* boxes. Note that event sources are associated with a particular
* #GMainContext, and will be checked and dispatched for all main
* loops associated with that GMainContext.
*
- * GTK+ contains wrappers of some of these functions, e.g. gtk_main(),
+ * GTK contains wrappers of some of these functions, e.g. gtk_main(),
* gtk_main_quit() and gtk_events_pending().
*
* ## Creating new source types
@@ -374,14 +374,11 @@ struct _GChildWatchSource
{
GSource source;
GPid pid;
- /* On Unix this is a wait status, which is the thing you pass to WEXITSTATUS()
- * to get the status returned from the process’ main() or passed to exit(): */
- gint child_status;
- /* @poll is always used on Windows, and used on Unix iff @using_pidfd is set: */
+ /* @poll is always used on Windows.
+ * On Unix, poll.fd will be negative if PIDFD is unavailable. */
GPollFD poll;
#ifndef G_OS_WIN32
- gboolean child_exited; /* (atomic); not used iff @using_pidfd is set */
- gboolean using_pidfd;
+ gboolean child_maybe_exited; /* (atomic) */
#endif /* G_OS_WIN32 */
};
@@ -446,11 +443,25 @@ static void g_source_set_priority_unlocked (GSource *source,
static void g_child_source_remove_internal (GSource *child_source,
GMainContext *context);
-static void g_main_context_poll (GMainContext *context,
- gint timeout,
- gint priority,
- GPollFD *fds,
- gint n_fds);
+static gboolean g_main_context_acquire_unlocked (GMainContext *context);
+static void g_main_context_release_unlocked (GMainContext *context);
+static gboolean g_main_context_prepare_unlocked (GMainContext *context,
+ gint *priority);
+static gint g_main_context_query_unlocked (GMainContext *context,
+ gint max_priority,
+ gint *timeout,
+ GPollFD *fds,
+ gint n_fds);
+static gboolean g_main_context_check_unlocked (GMainContext *context,
+ gint max_priority,
+ GPollFD *fds,
+ gint n_fds);
+static void g_main_context_dispatch_unlocked (GMainContext *context);
+static void g_main_context_poll_unlocked (GMainContext *context,
+ int timeout,
+ int priority,
+ GPollFD *fds,
+ int n_fds);
static void g_main_context_add_poll_unlocked (GMainContext *context,
gint priority,
GPollFD *fd);
@@ -474,6 +485,11 @@ static gboolean g_child_watch_dispatch (GSource *source,
GSourceFunc callback,
gpointer user_data);
static void g_child_watch_finalize (GSource *source);
+
+#ifndef G_OS_WIN32
+static void unref_unix_signal_handler_unlocked (int signum);
+#endif
+
#ifdef G_OS_UNIX
static void g_unix_signal_handler (int signum);
static gboolean g_unix_signal_watch_prepare (GSource *source,
@@ -567,7 +583,7 @@ GSourceFuncs g_idle_funcs =
/**
* g_main_context_ref:
- * @context: a #GMainContext
+ * @context: (not nullable): a #GMainContext
*
* Increases the reference count on a #GMainContext object by one.
*
@@ -595,7 +611,7 @@ poll_rec_list_free (GMainContext *context,
/**
* g_main_context_unref:
- * @context: a #GMainContext
+ * @context: (not nullable): a #GMainContext
*
* Decreases the reference count on a #GMainContext object by one. If
* the result is zero, free the context and free all associated memory.
@@ -787,12 +803,12 @@ g_main_context_new_with_flags (GMainContextFlags flags)
/**
* g_main_context_default:
*
- * Returns the global default main context. This is the main context
+ * Returns the global-default main context. This is the main context
* used for main loop functions when a main loop is not explicitly
* specified, and corresponds to the "main" main loop. See also
* g_main_context_get_thread_default().
*
- * Returns: (transfer none): the global default main context.
+ * Returns: (transfer none): the global-default main context.
**/
GMainContext *
g_main_context_default (void)
@@ -809,7 +825,7 @@ g_main_context_default (void)
#ifdef G_MAIN_POLL_DEBUG
if (_g_main_poll_debug)
- g_print ("default context=%p\n", context);
+ g_print ("global-default main context=%p\n", context);
#endif
g_once_init_leave (&default_main_context, context);
@@ -840,14 +856,15 @@ static GPrivate thread_context_stack = G_PRIVATE_INIT (free_context_stack);
/**
* g_main_context_push_thread_default:
- * @context: (nullable): a #GMainContext, or %NULL for the global default context
+ * @context: (nullable): a #GMainContext, or %NULL for the global-default
+ * main context
*
* Acquires @context and sets it as the thread-default context for the
* current thread. This will cause certain asynchronous operations
* (such as most [gio][gio]-based I/O) which are
* started in this thread to run under @context and deliver their
* results to its main loop, rather than running under the global
- * default context in the main thread. Note that calling this function
+ * default main context in the main thread. Note that calling this function
* changes the context returned by g_main_context_get_thread_default(),
* not the one returned by g_main_context_default(), so it does not affect
* the context used by functions like g_idle_add().
@@ -911,7 +928,8 @@ g_main_context_push_thread_default (GMainContext *context)
/**
* g_main_context_pop_thread_default:
- * @context: (nullable): a #GMainContext object, or %NULL
+ * @context: (nullable): a #GMainContext, or %NULL for the global-default
+ * main context
*
* Pops @context off the thread-default context stack (verifying that
* it was on the top of the stack).
@@ -956,7 +974,7 @@ g_main_context_pop_thread_default (GMainContext *context)
* g_main_context_ref_thread_default() instead.
*
* Returns: (transfer none) (nullable): the thread-default #GMainContext, or
- * %NULL if the thread-default context is the global default context.
+ * %NULL if the thread-default context is the global-default main context.
*
* Since: 2.22
**/
@@ -979,7 +997,7 @@ g_main_context_get_thread_default (void)
* g_main_context_get_thread_default(), but also adds a reference to
* it with g_main_context_ref(). In addition, unlike
* g_main_context_get_thread_default(), if the thread-default context
- * is the global default context, this will return that #GMainContext
+ * is the global-default context, this will return that #GMainContext
* (with a ref added to it) rather than returning %NULL.
*
* Returns: (transfer full): the thread-default #GMainContext. Unref
@@ -1336,7 +1354,8 @@ g_source_attach_unlocked (GSource *source,
/**
* g_source_attach:
* @source: a #GSource
- * @context: (nullable): a #GMainContext (if %NULL, the default context will be used)
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
*
* Adds a #GSource to a @context so that it will be executed within
* that context. Remove it by calling g_source_destroy().
@@ -2180,7 +2199,7 @@ g_source_set_name_full (GSource *source,
*
* The source name should describe in a human-readable way
* what the source does. For example, "X11 event queue"
- * or "GTK+ repaint idle handler" or whatever it is.
+ * or "GTK repaint idle handler" or whatever it is.
*
* It is permitted to call this function multiple times, but is not
* recommended due to the potential performance impact. For example,
@@ -2442,7 +2461,8 @@ g_source_unref (GSource *source)
/**
* g_main_context_find_source_by_id:
- * @context: (nullable): a #GMainContext (if %NULL, the default context will be used)
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
* @source_id: the source ID, as returned by g_source_get_id().
*
* Finds a #GSource given a pair of context and ID.
@@ -2483,7 +2503,8 @@ g_main_context_find_source_by_id (GMainContext *context,
/**
* g_main_context_find_source_by_funcs_user_data:
- * @context: (nullable): a #GMainContext (if %NULL, the default context will be used).
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used).
* @funcs: the @source_funcs passed to g_source_new().
* @user_data: the user data from the callback.
*
@@ -2533,7 +2554,8 @@ g_main_context_find_source_by_funcs_user_data (GMainContext *context,
/**
* g_main_context_find_source_by_user_data:
- * @context: a #GMainContext
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
* @user_data: the user_data for the callback.
*
* Finds a source with the given user data for the callback. If
@@ -3101,7 +3123,7 @@ get_dispatch (void)
*
* Returns the depth of the stack of calls to
* g_main_context_dispatch() on any #GMainContext in the current thread.
- * That is, when called from the toplevel, it gives 0. When
+ * That is, when called from the toplevel, it gives 0. When
* called from within a callback from g_main_context_iteration()
* (or g_main_loop_run(), etc.) it returns 1. When called from within
* a callback to a recursive call to g_main_context_iteration(),
@@ -3493,7 +3515,8 @@ g_main_dispatch (GMainContext *context)
/**
* g_main_context_acquire:
- * @context: a #GMainContext
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
*
* Tries to become the owner of the specified context.
* If some other thread is the owner of the context,
@@ -3504,7 +3527,10 @@ g_main_dispatch (GMainContext *context)
*
* You must be the owner of a context before you
* can call g_main_context_prepare(), g_main_context_query(),
- * g_main_context_check(), g_main_context_dispatch().
+ * g_main_context_check(), g_main_context_dispatch(), g_main_context_release().
+ *
+ * Since 2.76 @context can be %NULL to use the global-default
+ * main context.
*
* Returns: %TRUE if the operation succeeded, and
* this thread is now the owner of @context.
@@ -3513,13 +3539,24 @@ gboolean
g_main_context_acquire (GMainContext *context)
{
gboolean result = FALSE;
- GThread *self = G_THREAD_SELF;
if (context == NULL)
context = g_main_context_default ();
LOCK_CONTEXT (context);
+ result = g_main_context_acquire_unlocked (context);
+
+ UNLOCK_CONTEXT (context);
+
+ return result;
+}
+
+static gboolean
+g_main_context_acquire_unlocked (GMainContext *context)
+{
+ GThread *self = G_THREAD_SELF;
+
if (!context->owner)
{
context->owner = self;
@@ -3530,34 +3567,55 @@ g_main_context_acquire (GMainContext *context)
if (context->owner == self)
{
context->owner_count++;
- result = TRUE;
+ return TRUE;
}
else
{
TRACE (GLIB_MAIN_CONTEXT_ACQUIRE (context, FALSE /* failure */));
+ return FALSE;
}
-
- UNLOCK_CONTEXT (context);
-
- return result;
}
/**
* g_main_context_release:
- * @context: a #GMainContext
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
*
* Releases ownership of a context previously acquired by this thread
* with g_main_context_acquire(). If the context was acquired multiple
* times, the ownership will be released only when g_main_context_release()
* is called as many times as it was acquired.
+ *
+ * You must have successfully acquired the context with
+ * g_main_context_acquire() before you may call this function.
**/
void
g_main_context_release (GMainContext *context)
{
if (context == NULL)
context = g_main_context_default ();
-
+
LOCK_CONTEXT (context);
+ g_main_context_release_unlocked (context);
+ UNLOCK_CONTEXT (context);
+}
+
+static void
+g_main_context_release_unlocked (GMainContext *context)
+{
+ /* NOTE: We should also have the following assert here:
+ * g_return_if_fail (context->owner == G_THREAD_SELF);
+ * However, this breaks NetworkManager, which has been (non-compliantly but
+ * apparently safely) releasing a #GMainContext from a thread which didn’t
+ * acquire it.
+ * Breaking that would be quite disruptive, so we won’t do that now. However,
+ * GLib reserves the right to add that assertion in future, if doing so would
+ * allow for optimisations or refactorings. By that point, NetworkManager will
+ * have to have reworked its use of #GMainContext.
+ *
+ * See: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3513
+ */
+ g_return_if_fail (context->owner_count > 0);
context->owner_count--;
if (context->owner_count == 0)
@@ -3581,8 +3639,6 @@ g_main_context_release (GMainContext *context)
g_mutex_unlock (waiter->mutex);
}
}
-
- UNLOCK_CONTEXT (context);
}
static gboolean
@@ -3594,9 +3650,6 @@ g_main_context_wait_internal (GMainContext *context,
GThread *self = G_THREAD_SELF;
gboolean loop_internal_waiter;
- if (context == NULL)
- context = g_main_context_default ();
-
loop_internal_waiter = (mutex == &context->mutex);
if (!loop_internal_waiter)
@@ -3640,7 +3693,8 @@ g_main_context_wait_internal (GMainContext *context,
/**
* g_main_context_wait:
- * @context: a #GMainContext
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
* @cond: a condition variable
* @mutex: a mutex, currently held
*
@@ -3679,7 +3733,8 @@ g_main_context_wait (GMainContext *context,
/**
* g_main_context_prepare:
- * @context: a #GMainContext
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
* @priority: (out) (optional): location to store priority of highest priority
* source already ready.
*
@@ -3696,24 +3751,36 @@ gboolean
g_main_context_prepare (GMainContext *context,
gint *priority)
{
- guint i;
- gint n_ready = 0;
- gint current_priority = G_MAXINT;
- GSource *source;
- GSourceIter iter;
+ gboolean ready;
if (context == NULL)
context = g_main_context_default ();
LOCK_CONTEXT (context);
+ ready = g_main_context_prepare_unlocked (context, priority);
+
+ UNLOCK_CONTEXT (context);
+
+ return ready;
+}
+
+static gboolean
+g_main_context_prepare_unlocked (GMainContext *context,
+ gint *priority)
+{
+ guint i;
+ gint n_ready = 0;
+ gint current_priority = G_MAXINT;
+ GSource *source;
+ GSourceIter iter;
+
context->time_is_fresh = FALSE;
if (context->in_check_or_prepare)
{
g_warning ("g_main_context_prepare() called recursively from within a source's check() or "
"prepare() member.");
- UNLOCK_CONTEXT (context);
return FALSE;
}
@@ -3726,7 +3793,6 @@ g_main_context_prepare (GMainContext *context,
if (dispatch)
g_main_dispatch (context, &current_time);
- UNLOCK_CONTEXT (context);
return TRUE;
}
#endif
@@ -3784,10 +3850,7 @@ g_main_context_prepare (GMainContext *context,
context->in_check_or_prepare--;
}
else
- {
- source_timeout = -1;
- result = FALSE;
- }
+ result = FALSE;
if (result == FALSE && source->priv->ready_time != -1)
{
@@ -3844,8 +3907,6 @@ g_main_context_prepare (GMainContext *context,
g_source_iter_clear (&iter);
TRACE (GLIB_MAIN_CONTEXT_AFTER_PREPARE (context, current_priority, n_ready));
-
- UNLOCK_CONTEXT (context);
if (priority)
*priority = current_priority;
@@ -3855,7 +3916,8 @@ g_main_context_prepare (GMainContext *context,
/**
* g_main_context_query:
- * @context: a #GMainContext
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
* @max_priority: maximum priority source to check
* @timeout_: (out): location to store timeout to be used in polling
* @fds: (out caller-allocates) (array length=n_fds): location to
@@ -3882,11 +3944,30 @@ g_main_context_query (GMainContext *context,
gint n_fds)
{
gint n_poll;
- GPollRec *pollrec, *lastpollrec;
- gushort events;
+
+ if (context == NULL)
+ context = g_main_context_default ();
LOCK_CONTEXT (context);
+ n_poll = g_main_context_query_unlocked (context, max_priority, timeout, fds, n_fds);
+
+ UNLOCK_CONTEXT (context);
+
+ return n_poll;
+}
+
+static gint
+g_main_context_query_unlocked (GMainContext *context,
+ gint max_priority,
+ gint *timeout,
+ GPollFD *fds,
+ gint n_fds)
+{
+ gint n_poll;
+ GPollRec *pollrec, *lastpollrec;
+ gushort events;
+
TRACE (GLIB_MAIN_CONTEXT_BEFORE_QUERY (context, max_priority));
/* fds is filled sequentially from poll_records. Since poll_records
@@ -3943,14 +4024,13 @@ g_main_context_query (GMainContext *context,
TRACE (GLIB_MAIN_CONTEXT_AFTER_QUERY (context, context->timeout,
fds, n_poll));
- UNLOCK_CONTEXT (context);
-
return n_poll;
}
/**
* g_main_context_check:
- * @context: a #GMainContext
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
* @max_priority: the maximum numerical priority of sources to check
* @fds: (array length=n_fds): array of #GPollFD's that was passed to
* the last call to g_main_context_query()
@@ -3964,6 +4044,9 @@ g_main_context_query (GMainContext *context,
* You must have successfully acquired the context with
* g_main_context_acquire() before you may call this function.
*
+ * Since 2.76 @context can be %NULL to use the global-default
+ * main context.
+ *
* Returns: %TRUE if some sources are ready to be dispatched.
**/
gboolean
@@ -3972,19 +4055,36 @@ g_main_context_check (GMainContext *context,
GPollFD *fds,
gint n_fds)
{
+ gboolean ready;
+
+ LOCK_CONTEXT (context);
+
+ ready = g_main_context_check_unlocked (context, max_priority, fds, n_fds);
+
+ UNLOCK_CONTEXT (context);
+
+ return ready;
+}
+
+static gboolean
+g_main_context_check_unlocked (GMainContext *context,
+ gint max_priority,
+ GPollFD *fds,
+ gint n_fds)
+{
GSource *source;
GSourceIter iter;
GPollRec *pollrec;
gint n_ready = 0;
gint i;
-
- LOCK_CONTEXT (context);
+ if (context == NULL)
+ context = g_main_context_default ();
+
if (context->in_check_or_prepare)
{
g_warning ("g_main_context_check() called recursively from within a source's check() or "
"prepare() member.");
- UNLOCK_CONTEXT (context);
return FALSE;
}
@@ -4010,7 +4110,6 @@ g_main_context_check (GMainContext *context,
{
TRACE (GLIB_MAIN_CONTEXT_AFTER_CHECK (context, 0));
- UNLOCK_CONTEXT (context);
return FALSE;
}
@@ -4146,25 +4245,38 @@ g_main_context_check (GMainContext *context,
TRACE (GLIB_MAIN_CONTEXT_AFTER_CHECK (context, n_ready));
- UNLOCK_CONTEXT (context);
-
return n_ready > 0;
}
/**
* g_main_context_dispatch:
- * @context: a #GMainContext
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
*
* Dispatches all pending sources.
*
* You must have successfully acquired the context with
* g_main_context_acquire() before you may call this function.
+ *
+ * Since 2.76 @context can be %NULL to use the global-default
+ * main context.
**/
void
g_main_context_dispatch (GMainContext *context)
{
+ if (context == NULL)
+ context = g_main_context_default ();
+
LOCK_CONTEXT (context);
+ g_main_context_dispatch_unlocked (context);
+
+ UNLOCK_CONTEXT (context);
+}
+
+static void
+g_main_context_dispatch_unlocked (GMainContext *context)
+{
TRACE (GLIB_MAIN_CONTEXT_BEFORE_DISPATCH (context));
if (context->pending_dispatches->len > 0)
@@ -4173,16 +4285,14 @@ g_main_context_dispatch (GMainContext *context)
}
TRACE (GLIB_MAIN_CONTEXT_AFTER_DISPATCH (context));
-
- UNLOCK_CONTEXT (context);
}
/* HOLDS context lock */
static gboolean
-g_main_context_iterate (GMainContext *context,
- gboolean block,
- gboolean dispatch,
- GThread *self)
+g_main_context_iterate_unlocked (GMainContext *context,
+ gboolean block,
+ gboolean dispatch,
+ GThread *self)
{
gint max_priority = 0;
gint timeout;
@@ -4191,16 +4301,12 @@ g_main_context_iterate (GMainContext *context,
GPollFD *fds = NULL;
gint64 begin_time_nsec G_GNUC_UNUSED;
- UNLOCK_CONTEXT (context);
-
begin_time_nsec = G_TRACE_CURRENT_TIME;
- if (!g_main_context_acquire (context))
+ if (!g_main_context_acquire_unlocked (context))
{
gboolean got_ownership;
- LOCK_CONTEXT (context);
-
if (!block)
return FALSE;
@@ -4211,8 +4317,6 @@ g_main_context_iterate (GMainContext *context,
if (!got_ownership)
return FALSE;
}
- else
- LOCK_CONTEXT (context);
if (!context->cached_poll_array)
{
@@ -4223,44 +4327,40 @@ g_main_context_iterate (GMainContext *context,
allocated_nfds = context->cached_poll_array_size;
fds = context->cached_poll_array;
- UNLOCK_CONTEXT (context);
-
- g_main_context_prepare (context, &max_priority);
+ g_main_context_prepare_unlocked (context, &max_priority);
- while ((nfds = g_main_context_query (context, max_priority, &timeout, fds,
- allocated_nfds)) > allocated_nfds)
+ while ((nfds = g_main_context_query_unlocked (
+ context, max_priority, &timeout, fds,
+ allocated_nfds)) > allocated_nfds)
{
- LOCK_CONTEXT (context);
g_free (fds);
context->cached_poll_array_size = allocated_nfds = nfds;
context->cached_poll_array = fds = g_new (GPollFD, nfds);
- UNLOCK_CONTEXT (context);
}
if (!block)
timeout = 0;
- g_main_context_poll (context, timeout, max_priority, fds, nfds);
+ g_main_context_poll_unlocked (context, timeout, max_priority, fds, nfds);
- some_ready = g_main_context_check (context, max_priority, fds, nfds);
+ some_ready = g_main_context_check_unlocked (context, max_priority, fds, nfds);
if (dispatch)
- g_main_context_dispatch (context);
+ g_main_context_dispatch_unlocked (context);
- g_main_context_release (context);
+ g_main_context_release_unlocked (context);
g_trace_mark (begin_time_nsec, G_TRACE_CURRENT_TIME - begin_time_nsec,
"GLib", "g_main_context_iterate",
"Context %p, %s ⇒ %s", context, block ? "blocking" : "non-blocking", some_ready ? "dispatched" : "nothing");
- LOCK_CONTEXT (context);
-
return some_ready;
}
/**
* g_main_context_pending:
- * @context: (nullable): a #GMainContext (if %NULL, the default context will be used)
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
*
* Checks if any sources have pending events for the given context.
*
@@ -4275,7 +4375,7 @@ g_main_context_pending (GMainContext *context)
context = g_main_context_default();
LOCK_CONTEXT (context);
- retval = g_main_context_iterate (context, FALSE, FALSE, G_THREAD_SELF);
+ retval = g_main_context_iterate_unlocked (context, FALSE, FALSE, G_THREAD_SELF);
UNLOCK_CONTEXT (context);
return retval;
@@ -4283,7 +4383,8 @@ g_main_context_pending (GMainContext *context)
/**
* g_main_context_iteration:
- * @context: (nullable): a #GMainContext (if %NULL, the default context will be used)
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
* @may_block: whether the call may block.
*
* Runs a single iteration for the given main loop. This involves
@@ -4310,7 +4411,7 @@ g_main_context_iteration (GMainContext *context, gboolean may_block)
context = g_main_context_default();
LOCK_CONTEXT (context);
- retval = g_main_context_iterate (context, may_block, TRUE, G_THREAD_SELF);
+ retval = g_main_context_iterate_unlocked (context, may_block, TRUE, G_THREAD_SELF);
UNLOCK_CONTEXT (context);
return retval;
@@ -4318,7 +4419,8 @@ g_main_context_iteration (GMainContext *context, gboolean may_block)
/**
* g_main_loop_new:
- * @context: (nullable): a #GMainContext (if %NULL, the default context will be used).
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used).
* @is_running: set to %TRUE to indicate that the loop is running. This
* is not very important since calling g_main_loop_run() will set this to
* %TRUE anyway.
@@ -4407,13 +4509,13 @@ g_main_loop_run (GMainLoop *loop)
/* Hold a reference in case the loop is unreffed from a callback function */
g_atomic_int_inc (&loop->ref_count);
- if (!g_main_context_acquire (loop->context))
+ LOCK_CONTEXT (loop->context);
+
+ if (!g_main_context_acquire_unlocked (loop->context))
{
gboolean got_ownership = FALSE;
/* Another thread owns this context */
- LOCK_CONTEXT (loop->context);
-
g_atomic_int_set (&loop->is_running, TRUE);
while (g_atomic_int_get (&loop->is_running) && !got_ownership)
@@ -4423,34 +4525,35 @@ g_main_loop_run (GMainLoop *loop)
if (!g_atomic_int_get (&loop->is_running))
{
- UNLOCK_CONTEXT (loop->context);
if (got_ownership)
- g_main_context_release (loop->context);
+ g_main_context_release_unlocked (loop->context);
+
+ UNLOCK_CONTEXT (loop->context);
g_main_loop_unref (loop);
return;
}
g_assert (got_ownership);
}
- else
- LOCK_CONTEXT (loop->context);
- if (loop->context->in_check_or_prepare)
+ if G_UNLIKELY (loop->context->in_check_or_prepare)
{
g_warning ("g_main_loop_run(): called recursively from within a source's "
"check() or prepare() member, iteration not possible.");
+ g_main_context_release_unlocked (loop->context);
+ UNLOCK_CONTEXT (loop->context);
g_main_loop_unref (loop);
return;
}
g_atomic_int_set (&loop->is_running, TRUE);
while (g_atomic_int_get (&loop->is_running))
- g_main_context_iterate (loop->context, TRUE, TRUE, self);
+ g_main_context_iterate_unlocked (loop->context, TRUE, TRUE, self);
+
+ g_main_context_release_unlocked (loop->context);
UNLOCK_CONTEXT (loop->context);
- g_main_context_release (loop->context);
-
g_main_loop_unref (loop);
}
@@ -4517,11 +4620,11 @@ g_main_loop_get_context (GMainLoop *loop)
/* HOLDS: context's lock */
static void
-g_main_context_poll (GMainContext *context,
- gint timeout,
- gint priority,
- GPollFD *fds,
- gint n_fds)
+g_main_context_poll_unlocked (GMainContext *context,
+ int timeout,
+ int priority,
+ GPollFD *fds,
+ int n_fds)
{
#ifdef G_MAIN_POLL_DEBUG
GTimer *poll_timer;
@@ -4544,13 +4647,12 @@ g_main_context_poll (GMainContext *context,
poll_timer = g_timer_new ();
}
#endif
-
- LOCK_CONTEXT (context);
-
poll_func = context->poll_func;
UNLOCK_CONTEXT (context);
ret = (*poll_func) (fds, n_fds, timeout);
+ LOCK_CONTEXT (context);
+
errsv = errno;
if (ret < 0 && errsv != EINTR)
{
@@ -4565,8 +4667,6 @@ g_main_context_poll (GMainContext *context,
#ifdef G_MAIN_POLL_DEBUG
if (_g_main_poll_debug)
{
- LOCK_CONTEXT (context);
-
g_print ("g_main_poll(%d) timeout: %d - elapsed %12.10f seconds",
n_fds,
timeout,
@@ -4603,8 +4703,6 @@ g_main_context_poll (GMainContext *context,
pollrec = pollrec->next;
}
g_print ("\n");
-
- UNLOCK_CONTEXT (context);
}
#endif
} /* if (n_fds || timeout != 0) */
@@ -4612,7 +4710,8 @@ g_main_context_poll (GMainContext *context,
/**
* g_main_context_add_poll:
- * @context: (nullable): a #GMainContext (or %NULL for the default context)
+ * @context: (nullable): a #GMainContext (or %NULL for the global-default
+ * main context)
* @fd: a #GPollFD structure holding information about a file
* descriptor to watch.
* @priority: the priority for this file descriptor which should be
@@ -4686,7 +4785,8 @@ g_main_context_add_poll_unlocked (GMainContext *context,
/**
* g_main_context_remove_poll:
- * @context:a #GMainContext
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
* @fd: a #GPollFD descriptor previously added with g_main_context_add_poll()
*
* Removes file descriptor from the set of file descriptors to be
@@ -4808,7 +4908,8 @@ g_source_get_time (GSource *source)
/**
* g_main_context_set_poll_func:
- * @context: a #GMainContext
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
* @func: the function to call to poll all file descriptors
*
* Sets the function to use to handle polling of file descriptors. It
@@ -4840,7 +4941,8 @@ g_main_context_set_poll_func (GMainContext *context,
/**
* g_main_context_get_poll_func:
- * @context: a #GMainContext
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
*
* Gets the poll function set by g_main_context_set_poll_func().
*
@@ -4865,7 +4967,8 @@ g_main_context_get_poll_func (GMainContext *context)
/**
* g_main_context_wakeup:
- * @context: a #GMainContext
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
*
* If @context is currently blocking in g_main_context_iteration()
* waiting for a source to become ready, cause it to stop blocking
@@ -4911,7 +5014,8 @@ g_main_context_wakeup (GMainContext *context)
/**
* g_main_context_is_owner:
- * @context: a #GMainContext
+ * @context: (nullable): a #GMainContext (if %NULL, the global-default
+ * main context will be used)
*
* Determines whether this thread holds the (recursive)
* ownership of this #GMainContext. This is useful to
@@ -5303,21 +5407,7 @@ g_timeout_add_seconds_full (gint priority,
gpointer data,
GDestroyNotify notify)
{
- GSource *source;
- guint id;
-
- g_return_val_if_fail (function != NULL, 0);
-
- source = g_timeout_source_new_seconds (interval);
-
- if (priority != G_PRIORITY_DEFAULT)
- g_source_set_priority (source, priority);
-
- g_source_set_callback (source, function, data, notify);
- id = g_source_attach (source, NULL);
- g_source_unref (source);
-
- return id;
+ return timeout_add_full (priority, interval, TRUE, FALSE, function, data, notify);
}
/**
@@ -5364,49 +5454,92 @@ g_timeout_add_seconds (guint interval,
return g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, interval, function, data, NULL);
}
+/**
+ * g_timeout_add_seconds_once:
+ * @interval: the time after which the function will be called, in seconds
+ * @function: function to call
+ * @data: data to pass to @function
+ *
+ * This function behaves like g_timeout_add_once() but with a range in seconds.
+ *
+ * Returns: the ID (greater than 0) of the event source
+ *
+ * Since: 2.78
+ */
+guint
+g_timeout_add_seconds_once (guint interval,
+ GSourceOnceFunc function,
+ gpointer data)
+{
+ return timeout_add_full (G_PRIORITY_DEFAULT, interval, TRUE, TRUE, (GSourceFunc) function, data, NULL);
+}
+
/* Child watch functions */
-#ifdef G_OS_WIN32
+#ifdef HAVE_PIDFD
+static int
+siginfo_t_to_wait_status (const siginfo_t *info)
+{
+ /* Each of these returns is essentially the inverse of WIFEXITED(),
+ * WIFSIGNALED(), etc. */
+ switch (info->si_code)
+ {
+ case CLD_EXITED:
+ return W_EXITCODE (info->si_status, 0);
+ case CLD_KILLED:
+ return W_EXITCODE (0, info->si_status);
+ case CLD_DUMPED:
+ return W_EXITCODE (0, info->si_status | WCOREFLAG);
+ case CLD_CONTINUED:
+ return __W_CONTINUED;
+ case CLD_STOPPED:
+ case CLD_TRAPPED:
+ default:
+ return W_STOPCODE (info->si_status);
+ }
+}
+#endif /* HAVE_PIDFD */
static gboolean
g_child_watch_prepare (GSource *source,
gint *timeout)
{
- *timeout = -1;
+#ifdef G_OS_WIN32
return FALSE;
+#else /* G_OS_WIN32 */
+ {
+ GChildWatchSource *child_watch_source;
+
+ child_watch_source = (GChildWatchSource *) source;
+
+ if (child_watch_source->poll.fd >= 0)
+ return FALSE;
+
+ return g_atomic_int_get (&child_watch_source->child_maybe_exited);
+ }
+#endif /* G_OS_WIN32 */
}
-static gboolean
-g_child_watch_check (GSource *source)
+static gboolean
+g_child_watch_check (GSource *source)
{
GChildWatchSource *child_watch_source;
gboolean child_exited;
child_watch_source = (GChildWatchSource *) source;
- child_exited = child_watch_source->poll.revents & G_IO_IN;
-
- if (child_exited)
+#ifdef G_OS_WIN32
+ child_exited = !!(child_watch_source->poll.revents & G_IO_IN);
+#else /* G_OS_WIN32 */
+#ifdef HAVE_PIDFD
+ if (child_watch_source->poll.fd >= 0)
{
- DWORD child_status;
-
- /*
- * Note: We do _not_ check for the special value of STILL_ACTIVE
- * since we know that the process has exited and doing so runs into
- * problems if the child process "happens to return STILL_ACTIVE(259)"
- * as Microsoft's Platform SDK puts it.
- */
- if (!GetExitCodeProcess (child_watch_source->pid, &child_status))
- {
- gchar *emsg = g_win32_error_message (GetLastError ());
- g_warning (G_STRLOC ": GetExitCodeProcess() failed: %s", emsg);
- g_free (emsg);
-
- child_watch_source->child_status = -1;
- }
- else
- child_watch_source->child_status = child_status;
+ child_exited = !!(child_watch_source->poll.revents & G_IO_IN);
+ return child_exited;
}
+#endif /* HAVE_PIDFD */
+ child_exited = g_atomic_int_get (&child_watch_source->child_maybe_exited);
+#endif /* G_OS_WIN32 */
return child_exited;
}
@@ -5414,9 +5547,23 @@ g_child_watch_check (GSource *source)
static void
g_child_watch_finalize (GSource *source)
{
+#ifndef G_OS_WIN32
+ GChildWatchSource *child_watch_source = (GChildWatchSource *) source;
+
+ if (child_watch_source->poll.fd >= 0)
+ {
+ close (child_watch_source->poll.fd);
+ return;
+ }
+
+ G_LOCK (unix_signal_lock);
+ unix_child_watches = g_slist_remove (unix_child_watches, source);
+ unref_unix_signal_handler_unlocked (SIGCHLD);
+ G_UNLOCK (unix_signal_lock);
+#endif /* G_OS_WIN32 */
}
-#else /* G_OS_WIN32 */
+#ifndef G_OS_WIN32
static void
wake_source (GSource *source)
@@ -5500,30 +5647,8 @@ dispatch_unix_signals_unlocked (void)
{
GChildWatchSource *source = node->data;
- if (!source->using_pidfd &&
- !g_atomic_int_get (&source->child_exited))
- {
- pid_t pid;
- do
- {
- g_assert (source->pid > 0);
-
- pid = waitpid (source->pid, &source->child_status, WNOHANG);
- if (pid > 0)
- {
- g_atomic_int_set (&source->child_exited, TRUE);
- wake_source ((GSource *) source);
- }
- else if (pid == -1 && errno == ECHILD)
- {
- g_warning ("GChildWatchSource: Exit status of a child process was requested but ECHILD was received by waitpid(). See the documentation of g_child_watch_source_new() for possible causes.");
- source->child_status = 0;
- g_atomic_int_set (&source->child_exited, TRUE);
- wake_source ((GSource *) source);
- }
- }
- while (pid == -1 && errno == EINTR);
- }
+ if (g_atomic_int_compare_and_exchange (&source->child_maybe_exited, FALSE, TRUE))
+ wake_source ((GSource *) source);
}
}
@@ -5550,79 +5675,6 @@ dispatch_unix_signals (void)
}
static gboolean
-g_child_watch_prepare (GSource *source,
- gint *timeout)
-{
- GChildWatchSource *child_watch_source;
-
- child_watch_source = (GChildWatchSource *) source;
-
- return g_atomic_int_get (&child_watch_source->child_exited);
-}
-
-#ifdef HAVE_PIDFD
-static int
-siginfo_t_to_wait_status (const siginfo_t *info)
-{
- /* Each of these returns is essentially the inverse of WIFEXITED(),
- * WIFSIGNALED(), etc. */
- switch (info->si_code)
- {
- case CLD_EXITED:
- return W_EXITCODE (info->si_status, 0);
- case CLD_KILLED:
- return W_EXITCODE (0, info->si_status);
- case CLD_DUMPED:
- return W_EXITCODE (0, info->si_status | WCOREFLAG);
- case CLD_CONTINUED:
- return __W_CONTINUED;
- case CLD_STOPPED:
- case CLD_TRAPPED:
- default:
- return W_STOPCODE (info->si_status);
- }
-}
-#endif /* HAVE_PIDFD */
-
-static gboolean
-g_child_watch_check (GSource *source)
-{
- GChildWatchSource *child_watch_source;
-
- child_watch_source = (GChildWatchSource *) source;
-
-#ifdef HAVE_PIDFD
- if (child_watch_source->using_pidfd)
- {
- gboolean child_exited = child_watch_source->poll.revents & G_IO_IN;
-
- if (child_exited)
- {
- siginfo_t child_info = { 0, };
-
- /* Get the exit status */
- if (waitid (P_PIDFD, child_watch_source->poll.fd, &child_info, WEXITED | WNOHANG) >= 0 &&
- child_info.si_pid != 0)
- {
- /* waitid() helpfully provides the wait status in a decomposed
- * form which is quite useful. Unfortunately we have to report it
- * to the #GChildWatchFunc as a waitpid()-style platform-specific
- * wait status, so that the user code in #GChildWatchFunc can then
- * call WIFEXITED() (etc.) on it. That means re-composing the
- * status information. */
- child_watch_source->child_status = siginfo_t_to_wait_status (&child_info);
- child_watch_source->child_exited = TRUE;
- }
- }
-
- return child_exited;
- }
-#endif /* HAVE_PIDFD */
-
- return g_atomic_int_get (&child_watch_source->child_exited);
-}
-
-static gboolean
g_unix_signal_watch_prepare (GSource *source,
gint *timeout)
{
@@ -5800,24 +5852,6 @@ g_unix_signal_watch_finalize (GSource *source)
G_UNLOCK (unix_signal_lock);
}
-static void
-g_child_watch_finalize (GSource *source)
-{
- GChildWatchSource *child_watch_source = (GChildWatchSource *) source;
-
- if (child_watch_source->using_pidfd)
- {
- if (child_watch_source->poll.fd >= 0)
- close (child_watch_source->poll.fd);
- return;
- }
-
- G_LOCK (unix_signal_lock);
- unix_child_watches = g_slist_remove (unix_child_watches, source);
- unref_unix_signal_handler_unlocked (SIGCHLD);
- G_UNLOCK (unix_signal_lock);
-}
-
#endif /* G_OS_WIN32 */
static gboolean
@@ -5827,9 +5861,124 @@ g_child_watch_dispatch (GSource *source,
{
GChildWatchSource *child_watch_source;
GChildWatchFunc child_watch_callback = (GChildWatchFunc) callback;
+ int wait_status;
child_watch_source = (GChildWatchSource *) source;
+ /* We only (try to) reap the child process right before dispatching the callback.
+ * That way, the caller can rely that the process is there until the callback
+ * is invoked; or, if the caller calls g_source_destroy() without the callback
+ * being dispatched, the process is still not reaped. */
+
+#ifdef G_OS_WIN32
+ {
+ DWORD child_status;
+
+ /*
+ * Note: We do _not_ check for the special value of STILL_ACTIVE
+ * since we know that the process has exited and doing so runs into
+ * problems if the child process "happens to return STILL_ACTIVE(259)"
+ * as Microsoft's Platform SDK puts it.
+ */
+ if (!GetExitCodeProcess (child_watch_source->pid, &child_status))
+ {
+ gchar *emsg = g_win32_error_message (GetLastError ());
+ g_warning (G_STRLOC ": GetExitCodeProcess() failed: %s", emsg);
+ g_free (emsg);
+
+ /* Unknown error. We got signaled that the process might be exited,
+ * but now we failed to reap it? Assume the process is gone and proceed. */
+ wait_status = -1;
+ }
+ else
+ wait_status = child_status;
+ }
+#else /* G_OS_WIN32 */
+ {
+ gboolean child_exited = FALSE;
+
+ wait_status = -1;
+
+#ifdef HAVE_PIDFD
+ if (child_watch_source->poll.fd >= 0)
+ {
+ siginfo_t child_info = {
+ 0,
+ };
+
+ /* Get the exit status */
+ if (waitid (P_PIDFD, child_watch_source->poll.fd, &child_info, WEXITED | WNOHANG) >= 0)
+ {
+ if (child_info.si_pid != 0)
+ {
+ /* waitid() helpfully provides the wait status in a decomposed
+ * form which is quite useful. Unfortunately we have to report it
+ * to the #GChildWatchFunc as a waitpid()-style platform-specific
+ * wait status, so that the user code in #GChildWatchFunc can then
+ * call WIFEXITED() (etc.) on it. That means re-composing the
+ * status information. */
+ wait_status = siginfo_t_to_wait_status (&child_info);
+ child_exited = TRUE;
+ }
+ else
+ {
+ g_debug (G_STRLOC ": pidfd signaled but pid %" G_PID_FORMAT " didn't exit",
+ child_watch_source->pid);
+ return TRUE;
+ }
+ }
+ else
+ {
+ int errsv = errno;
+
+ g_warning (G_STRLOC ": waitid(pid:%" G_PID_FORMAT ", pidfd=%d) failed: %s (%d). %s",
+ child_watch_source->pid, child_watch_source->poll.fd, g_strerror (errsv), errsv,
+ "See documentation of g_child_watch_source_new() for possible causes.");
+
+ /* Assume the process is gone and proceed. */
+ child_exited = TRUE;
+ }
+ }
+#endif /* HAVE_PIDFD*/
+
+ if (!child_exited)
+ {
+ pid_t pid;
+ int wstatus;
+
+ waitpid_again:
+
+ /* We must reset the flag before waitpid(). Otherwise, there would be a
+ * race. */
+ g_atomic_int_set (&child_watch_source->child_maybe_exited, FALSE);
+
+ pid = waitpid (child_watch_source->pid, &wstatus, WNOHANG);
+
+ if (G_UNLIKELY (pid < 0 && errno == EINTR))
+ goto waitpid_again;
+
+ if (pid == 0)
+ {
+ /* Not exited yet. Wait longer. */
+ return TRUE;
+ }
+
+ if (pid > 0)
+ wait_status = wstatus;
+ else
+ {
+ int errsv = errno;
+
+ g_warning (G_STRLOC ": waitpid(pid:%" G_PID_FORMAT ") failed: %s (%d). %s",
+ child_watch_source->pid, g_strerror (errsv), errsv,
+ "See documentation of g_child_watch_source_new() for possible causes.");
+
+ /* Assume the process is gone and proceed. */
+ }
+ }
+ }
+#endif /* G_OS_WIN32 */
+
if (!callback)
{
g_warning ("Child watch source dispatched without callback. "
@@ -5837,7 +5986,7 @@ g_child_watch_dispatch (GSource *source,
return FALSE;
}
- (child_watch_callback) (child_watch_source->pid, child_watch_source->child_status, user_data);
+ (child_watch_callback) (child_watch_source->pid, wait_status, user_data);
/* We never keep a child watch source around as the child is gone */
return FALSE;
@@ -5896,6 +6045,14 @@ g_unix_signal_handler (int signum)
* mechanism, including `waitpid(pid, ...)` or a second child-watch
* source for the same @pid
* * the application must not ignore `SIGCHLD`
+ * * Before 2.78, the application could not send a signal (`kill()`) to the
+ * watched @pid in a race free manner. Since 2.78, you can do that while the
+ * associated #GMainContext is acquired.
+ * * Before 2.78, even after destroying the #GSource, you could not
+ * be sure that @pid wasn't already reaped. Hence, it was also not
+ * safe to `kill()` or `waitpid()` on the process ID after the child watch
+ * source was gone. Destroying the source before it fired made it
+ * impossible to reliably reap the process.
*
* If any of those conditions are not met, this and related APIs will
* not work correctly. This can often be diagnosed via a GLib warning
@@ -5946,29 +6103,28 @@ g_child_watch_source_new (GPid pid)
* better than SIGCHLD.
*/
child_watch_source->poll.fd = (int) syscall (SYS_pidfd_open, pid, 0);
- errsv = errno;
if (child_watch_source->poll.fd >= 0)
{
- child_watch_source->using_pidfd = TRUE;
child_watch_source->poll.events = G_IO_IN;
g_source_add_poll (source, &child_watch_source->poll);
-
return source;
}
- else
- {
- g_debug ("pidfd_open(%" G_PID_FORMAT ") failed with error: %s",
- pid, g_strerror (errsv));
- /* Fall through; likely the kernel isn’t new enough to support pidfd_open() */
- }
-#endif /* HAVE_PIDFD */
+
+ errsv = errno;
+ g_debug ("pidfd_open(%" G_PID_FORMAT ") failed with error: %s",
+ pid, g_strerror (errsv));
+ /* Fall through; likely the kernel isn’t new enough to support pidfd_open() */
+#endif /* HAVE_PIDFD */
+
+ /* We can do that without atomic, as the source is not yet added in
+ * unix_child_watches (which we do next under a lock). */
+ child_watch_source->child_maybe_exited = TRUE;
+ child_watch_source->poll.fd = -1;
G_LOCK (unix_signal_lock);
ref_unix_signal_handler_unlocked (SIGCHLD);
unix_child_watches = g_slist_prepend (unix_child_watches, child_watch_source);
- if (waitpid (pid, &child_watch_source->child_status, WNOHANG) > 0)
- child_watch_source->child_exited = TRUE;
G_UNLOCK (unix_signal_lock);
#endif /* !G_OS_WIN32 */
@@ -6300,14 +6456,15 @@ g_idle_remove_by_data (gpointer data)
/**
* g_main_context_invoke:
- * @context: (nullable): a #GMainContext, or %NULL
+ * @context: (nullable): a #GMainContext, or %NULL for the global-default
+ * main context
* @function: function to call
* @data: data to pass to @function
*
* Invokes a function in such a way that @context is owned during the
* invocation of @function.
*
- * If @context is %NULL then the global default main context — as
+ * If @context is %NULL then the global-default main context — as
* returned by g_main_context_default() — is used.
*
* If @context is owned by the current thread, @function is called
@@ -6340,7 +6497,8 @@ g_main_context_invoke (GMainContext *context,
/**
* g_main_context_invoke_full:
- * @context: (nullable): a #GMainContext, or %NULL
+ * @context: (nullable): a #GMainContext, or %NULL for the global-default
+ * main context
* @priority: the priority at which to run @function
* @function: function to call
* @data: data to pass to @function
@@ -6466,6 +6624,8 @@ g_get_worker_context (void)
* [`signal-safety(7)`](man:signal-safety(7))), making it safe to call from a
* signal handler or a #GSpawnChildSetupFunc.
*
+ * This function preserves the value of `errno`.
+ *
* Returns: the value that @fd_ptr previously had
* Since: 2.70
*/
diff --git a/glib/gmain.h b/glib/gmain.h
index ae3cc3ec5..14a1d2b06 100644
--- a/glib/gmain.h
+++ b/glib/gmain.h
@@ -73,7 +73,7 @@ typedef struct _GMainContext GMainContext;
* GMainLoop:
*
* The `GMainLoop` struct is an opaque data type
- * representing the main event loop of a GLib or GTK+ application.
+ * representing the main event loop of a GLib or GTK application.
*/
typedef struct _GMainLoop GMainLoop;
@@ -324,7 +324,7 @@ struct _GSourceFuncs
*
* Use this for high priority event sources.
*
- * It is not used within GLib or GTK+.
+ * It is not used within GLib or GTK.
*/
#define G_PRIORITY_HIGH -100
@@ -344,7 +344,7 @@ struct _GSourceFuncs
*
* Use this for high priority idle functions.
*
- * GTK+ uses %G_PRIORITY_HIGH_IDLE + 10 for resizing operations,
+ * GTK uses %G_PRIORITY_HIGH_IDLE + 10 for resizing operations,
* and %G_PRIORITY_HIGH_IDLE + 20 for redrawing operations. (This is
* done to ensure that any pending resizes are processed before any
* pending redraws, so that widgets are not redrawn twice unnecessarily.)
@@ -366,7 +366,7 @@ struct _GSourceFuncs
*
* Use this for very low priority background tasks.
*
- * It is not used within GLib or GTK+.
+ * It is not used within GLib or GTK.
*/
#define G_PRIORITY_LOW 300
@@ -800,6 +800,10 @@ GLIB_AVAILABLE_IN_ALL
guint g_timeout_add_seconds (guint interval,
GSourceFunc function,
gpointer data);
+GLIB_AVAILABLE_IN_2_78
+guint g_timeout_add_seconds_once (guint interval,
+ GSourceOnceFunc function,
+ gpointer data);
GLIB_AVAILABLE_IN_ALL
guint g_child_watch_add_full (gint priority,
GPid pid,
diff --git a/glib/gmappedfile.c b/glib/gmappedfile.c
index 16b38b358..4d7a89eb2 100644
--- a/glib/gmappedfile.c
+++ b/glib/gmappedfile.c
@@ -50,6 +50,10 @@
#endif
+#ifndef O_CLOEXEC
+#define O_CLOEXEC 0
+#endif
+
#include "gconvert.h"
#include "gerror.h"
#include "gfileutils.h"
@@ -252,7 +256,7 @@ g_mapped_file_new (const gchar *filename,
g_return_val_if_fail (filename != NULL, NULL);
g_return_val_if_fail (!error || *error == NULL, NULL);
- fd = g_open (filename, (writable ? O_RDWR : O_RDONLY) | _O_BINARY, 0);
+ fd = g_open (filename, (writable ? O_RDWR : O_RDONLY) | _O_BINARY | O_CLOEXEC, 0);
if (fd == -1)
{
int save_errno = errno;
diff --git a/glib/gmarkup.c b/glib/gmarkup.c
index 2f9450216..9422abde4 100644
--- a/glib/gmarkup.c
+++ b/glib/gmarkup.c
@@ -85,6 +85,11 @@
* - Character references
*
* - Sections marked as CDATA
+
+ * ## An example parser # {#example}
+ *
+ * Here is an example for a markup parser:
+ * [markup-example.c](https://gitlab.gnome.org/GNOME/glib/-/blob/HEAD/glib/tests/markup-example.c)
*/
G_DEFINE_QUARK (g-markup-error-quark, g_markup_error)
@@ -195,13 +200,6 @@ free_list_node (GMarkupParseContext *context, GSList *node)
context->spare_list_nodes = g_slist_concat (node, context->spare_list_nodes);
}
-static inline void
-string_blank (GString *string)
-{
- string->str[0] = '\0';
- string->len = 0;
-}
-
/**
* g_markup_parse_context_new:
* @parser: a #GMarkupParser
@@ -856,7 +854,7 @@ release_chunk (GMarkupParseContext *context, GString *str)
g_string_free (str, TRUE);
return;
}
- string_blank (str);
+ g_string_truncate (str, 0);
node = get_list_node (context, str);
context->spare_chunks = g_slist_concat (node, context->spare_chunks);
}
@@ -881,7 +879,7 @@ add_to_partial (GMarkupParseContext *context,
}
if (text_start != text_end)
- g_string_insert_len (context->partial_chunk, -1,
+ g_string_append_len (context->partial_chunk,
text_start, text_end - text_start);
}
@@ -889,7 +887,7 @@ static inline void
truncate_partial (GMarkupParseContext *context)
{
if (context->partial_chunk != NULL)
- string_blank (context->partial_chunk);
+ g_string_truncate (context->partial_chunk, 0);
}
static inline const gchar*
@@ -2530,7 +2528,7 @@ g_markup_vprintf_escaped (const gchar *format,
/* Use them to format the arguments
*/
- G_VA_COPY (args2, args);
+ va_copy (args2, args);
output1 = g_strdup_vprintf (format1->str, args);
diff --git a/glib/gmem.c b/glib/gmem.c
index abbd4e751..07e23af71 100644
--- a/glib/gmem.c
+++ b/glib/gmem.c
@@ -220,20 +220,60 @@ g_realloc (gpointer mem,
*
* Frees the memory pointed to by @mem.
*
+ * If you know the allocated size of @mem, calling g_free_sized() may be faster,
+ * depending on the libc implementation in use.
+ *
+ * Starting from GLib 2.78, this may happen automatically in case a GCC
+ * compatible compiler is used with some optimization level and the allocated
+ * size is known at compile time (see [documentation of
+ * `__builtin_object_size()`](https://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html)
+ * to understand its caveats).
+ *
* If @mem is %NULL it simply returns, so there is no need to check @mem
* against %NULL before calling this function.
*/
void
-g_free (gpointer mem)
+(g_free) (gpointer mem)
{
free (mem);
TRACE(GLIB_MEM_FREE((void*) mem));
}
/**
+ * g_free_sized:
+ * @mem: (nullable): the memory to free
+ * @size: size of @mem, in bytes
+ *
+ * Frees the memory pointed to by @mem, assuming it is has the given @size.
+ *
+ * If @mem is %NULL this is a no-op (and @size is ignored).
+ *
+ * It is an error if @size doesn’t match the size passed when @mem was
+ * allocated. @size is passed to this function to allow optimizations in the
+ * allocator. If you don’t know the allocation size, use g_free() instead.
+ *
+ * In case a GCC compatible compiler is used, this function may be used
+ * automatically via g_free() if the allocated size is known at compile time,
+ * since GLib 2.78.
+ *
+ * Since: 2.76
+ */
+void
+g_free_sized (void *mem,
+ size_t size)
+{
+#ifdef HAVE_FREE_SIZED
+ free_sized (mem, size);
+#else
+ free (mem);
+#endif
+ TRACE (GLIB_MEM_FREE ((void*) mem));
+}
+
+/**
* g_clear_pointer: (skip)
- * @pp: (not nullable): a pointer to a variable, struct member etc. holding a
- * pointer
+ * @pp: (nullable) (not optional) (inout) (transfer full): a pointer to a
+ * variable, struct member etc. holding a pointer
* @destroy: a function to which a gpointer can be passed, to destroy *@pp
*
* Clears a reference to a variable.
@@ -578,7 +618,7 @@ g_mem_profile (void)
* the program is terminated.
*
* Aligned memory allocations returned by this function can only be
- * freed using g_aligned_free().
+ * freed using g_aligned_free_sized() or g_aligned_free().
*
* Returns: (transfer full): the allocated memory
*
@@ -702,3 +742,33 @@ g_aligned_free (gpointer mem)
{
aligned_free (mem);
}
+
+/**
+ * g_aligned_free_sized:
+ * @mem: (nullable): the memory to free
+ * @alignment: alignment of @mem
+ * @size: size of @mem, in bytes
+ *
+ * Frees the memory pointed to by @mem, assuming it is has the given @size and
+ * @alignment.
+ *
+ * If @mem is %NULL this is a no-op (and @size is ignored).
+ *
+ * It is an error if @size doesn’t match the size, or @alignment doesn’t match
+ * the alignment, passed when @mem was allocated. @size and @alignment are
+ * passed to this function to allow optimizations in the allocator. If you
+ * don’t know either of them, use g_aligned_free() instead.
+ *
+ * Since: 2.76
+ */
+void
+g_aligned_free_sized (void *mem,
+ size_t alignment,
+ size_t size)
+{
+#ifdef HAVE_FREE_ALIGNED_SIZED
+ free_aligned_sized (mem, alignment, size);
+#else
+ aligned_free (mem);
+#endif
+}
diff --git a/glib/gmem.h b/glib/gmem.h
index bae51fa47..9f3d42733 100644
--- a/glib/gmem.h
+++ b/glib/gmem.h
@@ -71,7 +71,10 @@ typedef struct _GMemVTable GMemVTable;
*/
GLIB_AVAILABLE_IN_ALL
-void g_free (gpointer mem);
+void (g_free) (gpointer mem);
+GLIB_AVAILABLE_IN_2_76
+void g_free_sized (gpointer mem,
+ size_t size);
GLIB_AVAILABLE_IN_2_34
void g_clear_pointer (gpointer *pp,
@@ -123,6 +126,10 @@ gpointer g_aligned_alloc0 (gsize n_blocks,
gsize alignment) G_GNUC_WARN_UNUSED_RESULT G_GNUC_ALLOC_SIZE2(1,2);
GLIB_AVAILABLE_IN_2_72
void g_aligned_free (gpointer mem);
+GLIB_AVAILABLE_IN_2_76
+void g_aligned_free_sized (gpointer mem,
+ size_t alignment,
+ size_t size);
#if defined(glib_typeof) && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_58
#define g_clear_pointer(pp, destroy) \
@@ -158,6 +165,15 @@ void g_aligned_free (gpointer mem);
GLIB_AVAILABLE_MACRO_IN_2_34
#endif /* __GNUC__ */
+
+#if G_GNUC_CHECK_VERSION (4, 1) && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_78 && defined(G_HAVE_FREE_SIZED)
+
+#define g_free(mem) \
+ (__builtin_object_size ((mem), 0) != ((size_t) - 1)) ? \
+ g_free_sized (mem, __builtin_object_size ((mem), 0)) : (g_free) (mem)
+
+#endif /* G_GNUC_CHECK_VERSION (4, 1) && && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_78 && defined(G_HAVE_FREE_SIZED) */
+
/**
* g_steal_pointer:
* @pp: (not nullable): a pointer to a pointer
diff --git a/glib/gmessages.c b/glib/gmessages.c
index b4178c220..5460dcf4b 100644
--- a/glib/gmessages.c
+++ b/glib/gmessages.c
@@ -186,21 +186,23 @@
#include <sys/uio.h>
#endif
-#include "glib-init.h"
#include "galloca.h"
#include "gbacktrace.h"
#include "gcharset.h"
#include "gconvert.h"
#include "genviron.h"
+#include "glib-init.h"
+#include "glib-private.h"
#include "gmain.h"
#include "gmem.h"
+#include "gpattern.h"
#include "gprintfint.h"
-#include "gtestutils.h"
-#include "gthread.h"
#include "gstrfuncs.h"
#include "gstring.h"
-#include "gpattern.h"
+#include "gtestutils.h"
+#include "gthread.h"
#include "gthreadprivate.h"
+#include "gutilsprivate.h"
#if defined(__linux__) && !defined(__BIONIC__)
#include "gjournal-private.h"
@@ -219,22 +221,6 @@
#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
#endif
-#if defined (_MSC_VER) && (_MSC_VER >=1400)
-/* This is ugly, but we need it for isatty() in case we have bad fd's,
- * otherwise Windows will abort() the program on msvcrt80.dll and later
- */
-#include <crtdbg.h>
-
-_GLIB_EXTERN void
-myInvalidParameterHandler(const wchar_t *expression,
- const wchar_t *function,
- const wchar_t *file,
- unsigned int line,
- uintptr_t pReserved)
-{
-}
-#endif
-
#include "gwin32.h"
#endif
@@ -256,7 +242,7 @@ myInvalidParameterHandler(const wchar_t *expression,
* not advisable, as it cannot be filtered against using the `G_MESSAGES_DEBUG`
* environment variable.
*
- * For example, GTK+ uses this in its `Makefile.am`:
+ * For example, GTK uses this in its `Makefile.am`:
* |[
* AM_CPPFLAGS = -DG_LOG_DOMAIN=\"Gtk\"
* ]|
@@ -516,12 +502,14 @@ struct _GLogHandler
GLogHandler *next;
};
+static void g_default_print_func (const gchar *string);
+static void g_default_printerr_func (const gchar *string);
/* --- variables --- */
static GMutex g_messages_lock;
static GLogDomain *g_log_domains = NULL;
-static GPrintFunc glib_print_func = NULL;
-static GPrintFunc glib_printerr_func = NULL;
+static GPrintFunc glib_print_func = g_default_print_func;
+static GPrintFunc glib_printerr_func = g_default_printerr_func;
static GPrivate g_log_depth;
static GPrivate g_log_structured_depth;
static GLogFunc default_log_func = g_log_default_handler;
@@ -536,6 +524,11 @@ static gboolean g_log_debug_enabled = FALSE; /* (atomic) */
/* --- functions --- */
static void _g_log_abort (gboolean breakpoint);
+static inline const char * format_string (const char *format,
+ va_list args,
+ char **out_allocated_string)
+ G_GNUC_PRINTF (1, 0);
+static inline FILE * log_level_to_file (GLogLevelFlags log_level);
static void
_g_log_abort (gboolean breakpoint)
@@ -839,7 +832,7 @@ g_log_set_fatal_mask (const gchar *log_domain,
* | G_LOG_FLAG_RECURSION, my_log_handler, NULL);
* ]|
*
- * This example adds a log handler for all critical messages from GTK+:
+ * This example adds a log handler for all critical messages from GTK:
*
* |[<!-- language="C" -->
* g_log_set_handler ("Gtk", G_LOG_LEVEL_CRITICAL | G_LOG_FLAG_FATAL
@@ -1217,8 +1210,6 @@ mklevel_prefix (gchar level_prefix[STRING_BUFFER_SIZE],
GLogLevelFlags log_level,
gboolean use_color)
{
- gboolean to_stdout = !gmessages_use_stderr;
-
/* we may not call _any_ GLib functions here */
strcpy (level_prefix, log_level_to_color (log_level, use_color));
@@ -1227,19 +1218,15 @@ mklevel_prefix (gchar level_prefix[STRING_BUFFER_SIZE],
{
case G_LOG_LEVEL_ERROR:
strcat (level_prefix, "ERROR");
- to_stdout = FALSE;
break;
case G_LOG_LEVEL_CRITICAL:
strcat (level_prefix, "CRITICAL");
- to_stdout = FALSE;
break;
case G_LOG_LEVEL_WARNING:
strcat (level_prefix, "WARNING");
- to_stdout = FALSE;
break;
case G_LOG_LEVEL_MESSAGE:
strcat (level_prefix, "Message");
- to_stdout = FALSE;
break;
case G_LOG_LEVEL_INFO:
strcat (level_prefix, "INFO");
@@ -1269,7 +1256,7 @@ mklevel_prefix (gchar level_prefix[STRING_BUFFER_SIZE],
if ((log_level & G_LOG_FLAG_FATAL) != 0 && !g_test_initialized ())
win32_keep_fatal_message = TRUE;
#endif
- return to_stdout ? stdout : stderr;
+ return log_level_to_file (log_level);
}
typedef struct {
@@ -1309,7 +1296,8 @@ g_logv (const gchar *log_domain,
{
gboolean was_fatal = (log_level & G_LOG_FLAG_FATAL) != 0;
gboolean was_recursion = (log_level & G_LOG_FLAG_RECURSION) != 0;
- gchar buffer[1025], *msg, *msg_alloc = NULL;
+ char buffer[1025], *msg_alloc = NULL;
+ const char *msg;
gint i;
log_level &= G_LOG_LEVEL_MASK;
@@ -1327,7 +1315,9 @@ g_logv (const gchar *log_domain,
msg = buffer;
}
else
- msg = msg_alloc = g_strdup_vprintf (format, args);
+ {
+ msg = format_string (format, args, &msg_alloc);
+ }
if (expected_messages)
{
@@ -1495,7 +1485,7 @@ log_level_to_priority (GLogLevelFlags log_level)
return "5";
}
-static FILE *
+static inline FILE *
log_level_to_file (GLogLevelFlags log_level)
{
if (gmessages_use_stderr)
@@ -1798,7 +1788,7 @@ g_log_structured (const gchar *log_domain,
}
else
{
- message = message_allocated = g_strdup_vprintf (format, args);
+ message = format_string (format, args, &message_allocated);
}
/* Add MESSAGE, PRIORITY and GLIB_DOMAIN. */
@@ -2042,7 +2032,7 @@ g_log_structured_standard (const gchar *log_domain,
}
else
{
- fields[4].value = message_allocated = g_strdup_vprintf (message_format, args);
+ fields[4].value = format_string (message_format, args, &message_allocated);
}
va_end (args);
@@ -2111,12 +2101,7 @@ g_log_writer_supports_color (gint output_fd)
{
#ifdef G_OS_WIN32
gboolean result = FALSE;
-
-#if (defined (_MSC_VER) && _MSC_VER >= 1400)
- _invalid_parameter_handler oldHandler, newHandler;
- int prev_report_mode = 0;
-#endif
-
+ GWin32InvalidParameterHandler handler;
#endif
g_return_val_if_fail (output_fd >= 0, FALSE);
@@ -2143,17 +2128,7 @@ g_log_writer_supports_color (gint output_fd)
*/
#ifdef G_OS_WIN32
-#if (defined (_MSC_VER) && _MSC_VER >= 1400)
- /* Set up our empty invalid parameter handler, for isatty(),
- * in case of bad fd's passed in for isatty(), so that
- * msvcrt80.dll+ won't abort the program
- */
- newHandler = myInvalidParameterHandler;
- oldHandler = _set_invalid_parameter_handler (newHandler);
-
- /* Disable the message box for assertions. */
- prev_report_mode = _CrtSetReportMode(_CRT_ASSERT, 0);
-#endif
+ g_win32_push_empty_invalid_parameter_handler (&handler);
if (g_win32_check_windows_version (10, 0, 0, G_WIN32_OS_ANY))
{
@@ -2185,10 +2160,7 @@ g_log_writer_supports_color (gint output_fd)
result = win32_is_pipe_tty (output_fd);
reset_invalid_param_handler:
-#if defined (_MSC_VER) && (_MSC_VER >= 1400)
- _CrtSetReportMode(_CRT_ASSERT, prev_report_mode);
- _set_invalid_parameter_handler (oldHandler);
-#endif
+ g_win32_pop_invalid_parameter_handler (&handler);
return result;
#else
@@ -2289,7 +2261,7 @@ g_log_writer_format_fields (GLogLevelFlags log_level,
GString *gstring;
gint64 now;
time_t now_secs;
- struct tm *now_tm;
+ struct tm now_tm;
gchar time_buf[128];
/* Extract some common fields. */
@@ -2342,9 +2314,8 @@ g_log_writer_format_fields (GLogLevelFlags log_level,
/* Timestamp */
now = g_get_real_time ();
now_secs = (time_t) (now / 1000000);
- now_tm = localtime (&now_secs);
- if (G_LIKELY (now_tm != NULL))
- strftime (time_buf, sizeof (time_buf), "%H:%M:%S", now_tm);
+ if (_g_localtime (now_secs, &now_tm))
+ strftime (time_buf, sizeof (time_buf), "%H:%M:%S", &now_tm);
else
strcpy (time_buf, "(error)");
@@ -3168,6 +3139,7 @@ _g_log_fallback_handler (const gchar *log_domain,
write_string (stream, level_prefix);
write_string (stream, ": ");
write_string (stream, message);
+ write_string (stream, "\n");
}
static void
@@ -3314,29 +3286,32 @@ g_log_default_handler (const gchar *log_domain,
/**
* g_set_print_handler:
- * @func: the new print handler
+ * @func: (nullable): the new print handler or %NULL to
+ * reset to the default
*
- * Sets the print handler.
+ * Sets the print handler to @func, or resets it to the
+ * default GLib handler if %NULL.
*
* Any messages passed to g_print() will be output via
- * the new handler. The default handler simply outputs
- * the message to stdout. By providing your own handler
- * you can redirect the output, to a GTK+ widget or a
+ * the new handler. The default handler outputs
+ * the encoded message to stdout. By providing your own handler
+ * you can redirect the output, to a GTK widget or a
* log file for example.
*
- * Returns: the old print handler
+ * Since 2.76 this functions always returns a valid
+ * #GPrintFunc, and never returns %NULL. If no custom
+ * print handler was set, it will return the GLib
+ * default print handler and that can be re-used to
+ * decorate its output and/or to write to stderr
+ * in all platforms. Before GLib 2.76, this was %NULL.
+ *
+ * Returns: (not nullable): the old print handler
*/
GPrintFunc
g_set_print_handler (GPrintFunc func)
{
- GPrintFunc old_print_func;
-
- g_mutex_lock (&g_messages_lock);
- old_print_func = glib_print_func;
- glib_print_func = func;
- g_mutex_unlock (&g_messages_lock);
-
- return old_print_func;
+ return g_atomic_pointer_exchange (&glib_print_func,
+ func ? func : g_default_print_func);
}
static void
@@ -3368,13 +3343,47 @@ print_string (FILE *stream,
fflush (stream);
}
+G_ALWAYS_INLINE static inline const char *
+format_string (const char *format,
+ va_list args,
+ char **out_allocated_string)
+{
+#ifdef G_ENABLE_DEBUG
+ g_assert (out_allocated_string != NULL);
+#endif
+
+ /* If there is no formatting to be done, avoid an allocation */
+ if (strchr (format, '%') == NULL)
+ {
+ *out_allocated_string = NULL;
+ return format;
+ }
+ else
+ {
+ *out_allocated_string = g_strdup_vprintf (format, args);
+ return *out_allocated_string;
+ }
+}
+
+static void
+g_default_print_func (const gchar *string)
+{
+ print_string (stdout, string);
+}
+
+static void
+g_default_printerr_func (const gchar *string)
+{
+ print_string (stderr, string);
+}
+
/**
* g_print:
* @format: the message format. See the printf() documentation
* @...: the parameters to insert into the format string
*
* Outputs a formatted message via the print handler.
- * The default print handler simply outputs the message to stdout, without
+ * The default print handler outputs the encoded message to stdout, without
* appending a trailing new-line character. Typically, @format should end with
* its own new-line character.
*
@@ -3389,52 +3398,49 @@ g_print (const gchar *format,
...)
{
va_list args;
- gchar *string;
+ const gchar *string;
+ gchar *free_me = NULL;
GPrintFunc local_glib_print_func;
g_return_if_fail (format != NULL);
va_start (args, format);
- string = g_strdup_vprintf (format, args);
+ string = format_string (format, args, &free_me);
va_end (args);
- g_mutex_lock (&g_messages_lock);
- local_glib_print_func = glib_print_func;
- g_mutex_unlock (&g_messages_lock);
-
- if (local_glib_print_func)
- local_glib_print_func (string);
- else
- print_string (stdout, string);
-
- g_free (string);
+ local_glib_print_func = g_atomic_pointer_get (&glib_print_func);
+ local_glib_print_func (string);
+ g_free (free_me);
}
/**
* g_set_printerr_handler:
- * @func: the new error message handler
+ * @func: (nullable): he new error message handler or %NULL
+ * to reset to the default
*
- * Sets the handler for printing error messages.
+ * Sets the handler for printing error messages to @func,
+ * or resets it to the default GLib handler if %NULL.
*
* Any messages passed to g_printerr() will be output via
- * the new handler. The default handler simply outputs the
+ * the new handler. The default handler outputs the encoded
* message to stderr. By providing your own handler you can
- * redirect the output, to a GTK+ widget or a log file for
+ * redirect the output, to a GTK widget or a log file for
* example.
*
- * Returns: the old error message handler
+ * Since 2.76 this functions always returns a valid
+ * #GPrintFunc, and never returns %NULL. If no custom error
+ * print handler was set, it will return the GLib default
+ * error print handler and that can be re-used to decorate
+ * its output and/or to write to stderr in all platforms.
+ * Before GLib 2.76, this was %NULL.
+ *
+ * Returns: (not nullable): the old error message handler
*/
GPrintFunc
g_set_printerr_handler (GPrintFunc func)
{
- GPrintFunc old_printerr_func;
-
- g_mutex_lock (&g_messages_lock);
- old_printerr_func = glib_printerr_func;
- glib_printerr_func = func;
- g_mutex_unlock (&g_messages_lock);
-
- return old_printerr_func;
+ return g_atomic_pointer_exchange (&glib_printerr_func,
+ func ? func : g_default_printerr_func);
}
/**
@@ -3443,7 +3449,7 @@ g_set_printerr_handler (GPrintFunc func)
* @...: the parameters to insert into the format string
*
* Outputs a formatted message via the error message handler.
- * The default handler simply outputs the message to stderr, without appending
+ * The default handler outputs the encoded message to stderr, without appending
* a trailing new-line character. Typically, @format should end with its own
* new-line character.
*
@@ -3456,25 +3462,19 @@ g_printerr (const gchar *format,
...)
{
va_list args;
- gchar *string;
+ const char *string;
+ char *free_me = NULL;
GPrintFunc local_glib_printerr_func;
g_return_if_fail (format != NULL);
va_start (args, format);
- string = g_strdup_vprintf (format, args);
+ string = format_string (format, args, &free_me);
va_end (args);
- g_mutex_lock (&g_messages_lock);
- local_glib_printerr_func = glib_printerr_func;
- g_mutex_unlock (&g_messages_lock);
-
- if (local_glib_printerr_func)
- local_glib_printerr_func (string);
- else
- print_string (stderr, string);
-
- g_free (string);
+ local_glib_printerr_func = g_atomic_pointer_get (&glib_printerr_func);
+ local_glib_printerr_func (string);
+ g_free (free_me);
}
/**
diff --git a/glib/gmessages.h b/glib/gmessages.h
index 119b72e91..eab6d0678 100644
--- a/glib/gmessages.h
+++ b/glib/gmessages.h
@@ -291,8 +291,8 @@ void g_warn_message (const char *domain,
int line,
const char *func,
const char *warnexpr) G_ANALYZER_NORETURN;
-GLIB_DEPRECATED
G_NORETURN
+GLIB_DEPRECATED
void g_assert_warning (const char *log_domain,
const char *file,
const int line,
@@ -409,7 +409,7 @@ void g_log_structured_standard (const gchar *log_domain,
format)
#endif
#else /* no varargs macros */
-static G_NORETURN void g_error (const gchar *format, ...) G_ANALYZER_NORETURN;
+G_NORETURN static void g_error (const gchar *format, ...) G_ANALYZER_NORETURN;
static void g_critical (const gchar *format, ...) G_ANALYZER_NORETURN;
static inline void
diff --git a/glib/gnode.c b/glib/gnode.c
index a9988ebd8..b9a68c2f6 100644
--- a/glib/gnode.c
+++ b/glib/gnode.c
@@ -868,7 +868,7 @@ g_node_depth_traverse_level (GNode *node,
/**
* GNodeTraverseFunc:
* @node: a #GNode.
- * @user_data: user data passed to g_node_traverse().
+ * @data: user data passed to g_node_traverse().
*
* Specifies the type of function passed to g_node_traverse(). The
* function is called with each of the nodes visited, together with the
@@ -1245,7 +1245,7 @@ g_node_last_sibling (GNode *node)
/**
* GNodeForeachFunc:
* @node: a #GNode.
- * @user_data: user data passed to g_node_children_foreach().
+ * @data: user data passed to g_node_children_foreach().
*
* Specifies the type of function passed to g_node_children_foreach().
* The function is called with each child node, together with the user
diff --git a/glib/gnode.h b/glib/gnode.h
index b3f89f02a..94ab99621 100644
--- a/glib/gnode.h
+++ b/glib/gnode.h
@@ -58,9 +58,9 @@ typedef enum
} GTraverseType;
typedef gboolean (*GNodeTraverseFunc) (GNode *node,
- gpointer user_data);
+ gpointer data);
typedef void (*GNodeForeachFunc) (GNode *node,
- gpointer user_data);
+ gpointer data);
/* N-way tree implementation
*/
diff --git a/glib/gnulib/meson.build b/glib/gnulib/meson.build
index 38b530aa0..c8040f648 100644
--- a/glib/gnulib/meson.build
+++ b/glib/gnulib/meson.build
@@ -3,6 +3,13 @@
extra_gnulib_args = cc.get_supported_arguments([
'-Wno-format-nonliteral', '-Wno-duplicated-branches'])
+if host_system == 'windows' and cc.get_id() == 'clang'
+ extra_gnulib_args += cc.get_supported_arguments([
+ '-Wno-unused-but-set-variable',
+ '-Wno-implicit-fallthrough',
+ ])
+endif
+
math_h_config = configuration_data ()
unneeded_funcs = [
@@ -362,10 +369,19 @@ endif
gnulib_sources += other_needed_math_sources
+# g-gnulib.h includes glib.h that requires some headers to be generated
+gnulib_sources += [
+ 'g-gnulib.h',
+ glib_built_headers,
+]
+
gnulib_lib = static_library('gnulib', gnulib_sources,
dependencies : [libm],
include_directories : [configinc, glibinc, include_directories ('.')],
pic : true,
- c_args : ['-DGCC_LINT=1', '-DLIBDIR="@0@"'.format(glib_libdir), '-DGLIB_COMPILATION', '-DG_LOG_DOMAIN="GLib"' ] + glib_hidden_visibility_args + extra_gnulib_args)
+ c_args : ['-DGCC_LINT=1', '-DLIBDIR="@0@"'.format(glib_libdir), '-DG_LOG_DOMAIN="GLib"',
+ glib_c_args_internal, extra_gnulib_args],
+ gnu_symbol_visibility : 'hidden',
+)
gnulib_libm_dependency = [libm]
diff --git a/glib/goption.c b/glib/goption.c
index 0b3a05e90..0f6f331d9 100644
--- a/glib/goption.c
+++ b/glib/goption.c
@@ -20,7 +20,7 @@
*/
/**
- * SECTION:option
+ * SECTION:goptioncontext
* @Short_description: parses commandline options
* @Title: Commandline option parser
*
@@ -65,7 +65,7 @@
* Help Options:
* -h, --help Show help options
* --help-all Show all help options
- * --help-gtk Show GTK+ Options
+ * --help-gtk Show GTK Options
*
* Application Options:
* -r, --repeats=N Average over N repetitions
@@ -2297,6 +2297,11 @@ g_option_context_parse (GOptionContext *context,
*
* Creates a new #GOptionGroup.
*
+ * @description is typically used to provide a title for the group. If so, it
+ * is recommended that it’s written in title case, and has a trailing colon so
+ * that it matches the style of built-in GLib group titles such as
+ * ‘Application Options:’.
+ *
* Returns: a newly created option group. It should be added
* to a #GOptionContext or freed with g_option_group_unref().
*
diff --git a/glib/goption.h b/glib/goption.h
index 6d7de3ae5..dcb0e554c 100644
--- a/glib/goption.h
+++ b/glib/goption.h
@@ -138,8 +138,8 @@ typedef enum
* single dash followed by a single letter (for a short name) or two dashes
* followed by a long option name.
* @value: The value to be parsed.
- * @user_data: User data added to the #GOptionGroup containing the option when
- * it was created with g_option_group_new()
+ * @data: User data added to the #GOptionGroup containing the option when it
+ * was created with g_option_group_new()
* @error: A return location for errors. The error code %G_OPTION_ERROR_FAILED
* is intended to be used for errors in #GOptionArgFunc callbacks.
*
@@ -151,15 +151,15 @@ typedef enum
*/
typedef gboolean (*GOptionArgFunc) (const gchar *option_name,
const gchar *value,
- gpointer user_data,
+ gpointer data,
GError **error);
/**
* GOptionParseFunc:
* @context: The active #GOptionContext
* @group: The group to which the function belongs
- * @user_data: User data added to the #GOptionGroup containing the option when
- * it was created with g_option_group_new()
+ * @data: User data added to the #GOptionGroup containing the option when it
+ * was created with g_option_group_new()
* @error: A return location for error details
*
* The type of function that can be called before and after parsing.
@@ -169,22 +169,22 @@ typedef gboolean (*GOptionArgFunc) (const gchar *option_name,
*/
typedef gboolean (*GOptionParseFunc) (GOptionContext *context,
GOptionGroup *group,
- gpointer user_data,
+ gpointer data,
GError **error);
/**
* GOptionErrorFunc:
* @context: The active #GOptionContext
* @group: The group to which the function belongs
- * @user_data: User data added to the #GOptionGroup containing the option when
- * it was created with g_option_group_new()
+ * @data: User data added to the #GOptionGroup containing the option when it
+ * was created with g_option_group_new()
* @error: The #GError containing details about the parse error
*
* The type of function to be used as callback when a parse error occurs.
*/
typedef void (*GOptionErrorFunc) (GOptionContext *context,
GOptionGroup *group,
- gpointer user_data,
+ gpointer data,
GError **error);
/**
@@ -234,13 +234,13 @@ GQuark g_option_error_quark (void);
* called to handle the extra argument. Otherwise, @arg_data is a
* pointer to a location to store the value, the required type of
* the location depends on the @arg type:
- * - %G_OPTION_ARG_NONE: %gboolean
- * - %G_OPTION_ARG_STRING: %gchar*
- * - %G_OPTION_ARG_INT: %gint
- * - %G_OPTION_ARG_FILENAME: %gchar*
- * - %G_OPTION_ARG_STRING_ARRAY: %gchar**
- * - %G_OPTION_ARG_FILENAME_ARRAY: %gchar**
- * - %G_OPTION_ARG_DOUBLE: %gdouble
+ * - %G_OPTION_ARG_NONE: %gboolean
+ * - %G_OPTION_ARG_STRING: %gchar*
+ * - %G_OPTION_ARG_INT: %gint
+ * - %G_OPTION_ARG_FILENAME: %gchar*
+ * - %G_OPTION_ARG_STRING_ARRAY: %gchar**
+ * - %G_OPTION_ARG_FILENAME_ARRAY: %gchar**
+ * - %G_OPTION_ARG_DOUBLE: %gdouble
* If @arg type is %G_OPTION_ARG_STRING or %G_OPTION_ARG_FILENAME,
* the location will contain a newly allocated string if the option
* was given. That string needs to be freed by the callee using g_free().
diff --git a/glib/gpathbuf.c b/glib/gpathbuf.c
new file mode 100644
index 000000000..c7cf04849
--- /dev/null
+++ b/glib/gpathbuf.c
@@ -0,0 +1,598 @@
+/* gpathbuf.c: A mutable path builder
+ *
+ * SPDX-FileCopyrightText: 2023 Emmanuele Bassi
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ */
+
+#include "config.h"
+
+#include "gpathbuf.h"
+
+#include "garray.h"
+#include "gfileutils.h"
+#include "ghash.h"
+#include "gmessages.h"
+#include "gstrfuncs.h"
+
+/**
+ * SECTION:gpathbuf
+ * @Title: GPathBuf
+ * @Short_description: A mutable path builder
+ *
+ * `GPathBuf` is a helper type that allows you to easily build paths from
+ * individual elements, using the platform specific conventions for path
+ * separators.
+ *
+ * |[<!-- language="C" -->
+ * g_auto (GPathBuf) path;
+ *
+ * g_path_buf_init (&path);
+ *
+ * g_path_buf_push (&path, "usr");
+ * g_path_buf_push (&path, "bin");
+ * g_path_buf_push (&path, "echo");
+ *
+ * g_autofree char *echo = g_path_buf_to_path (&path);
+ * g_assert_cmpstr (echo, ==, "/usr/bin/echo");
+ * ]|
+ *
+ * You can also load a full path and then operate on its components:
+ *
+ * |[<!-- language="C" -->
+ * g_auto (GPathBuf) path;
+ *
+ * g_path_buf_init_from_path (&path, "/usr/bin/echo");
+ *
+ * g_path_buf_pop (&path);
+ * g_path_buf_push (&path, "sh");
+ *
+ * g_autofree char *sh = g_path_buf_to_path (&path);
+ * g_assert_cmpstr (sh, ==, "/usr/bin/sh");
+ * ]|
+ *
+ * `GPathBuf` is available since GLib 2.76.
+ */
+
+typedef struct {
+ /* (nullable) (owned) (element-type filename) */
+ GPtrArray *path;
+
+ /* (nullable) (owned) */
+ char *extension;
+
+ gpointer padding[6];
+} RealPathBuf;
+
+G_STATIC_ASSERT (sizeof (GPathBuf) == sizeof (RealPathBuf));
+
+#define PATH_BUF(b) ((RealPathBuf *) (b))
+
+/**
+ * g_path_buf_init:
+ * @buf: a path buffer
+ *
+ * Initializes a `GPathBuf` instance.
+ *
+ * Returns: (transfer none): the initialized path builder
+ *
+ * Since: 2.76
+ */
+GPathBuf *
+g_path_buf_init (GPathBuf *buf)
+{
+ RealPathBuf *rbuf = PATH_BUF (buf);
+
+ rbuf->path = NULL;
+ rbuf->extension = NULL;
+
+ return buf;
+}
+
+/**
+ * g_path_buf_init_from_path:
+ * @buf: a path buffer
+ * @path: (type filename) (nullable): a file system path
+ *
+ * Initializes a `GPathBuf` instance with the given path.
+ *
+ * Returns: (transfer none): the initialized path builder
+ *
+ * Since: 2.76
+ */
+GPathBuf *
+g_path_buf_init_from_path (GPathBuf *buf,
+ const char *path)
+{
+ g_return_val_if_fail (buf != NULL, NULL);
+ g_return_val_if_fail (path == NULL || *path != '\0', NULL);
+
+ g_path_buf_init (buf);
+
+ if (path == NULL)
+ return buf;
+ else
+ return g_path_buf_push (buf, path);
+}
+
+/**
+ * g_path_buf_clear:
+ * @buf: a path buffer
+ *
+ * Clears the contents of the path buffer.
+ *
+ * This function should be use to free the resources in a stack-allocated
+ * `GPathBuf` initialized using g_path_buf_init() or
+ * g_path_buf_init_from_path().
+ *
+ * Since: 2.76
+ */
+void
+g_path_buf_clear (GPathBuf *buf)
+{
+ RealPathBuf *rbuf = PATH_BUF (buf);
+
+ g_return_if_fail (buf != NULL);
+
+ g_clear_pointer (&rbuf->path, g_ptr_array_unref);
+ g_clear_pointer (&rbuf->extension, g_free);
+}
+
+/**
+ * g_path_buf_clear_to_path:
+ * @buf: a path buffer
+ *
+ * Clears the contents of the path buffer and returns the built path.
+ *
+ * This function returns `NULL` if the `GPathBuf` is empty.
+ *
+ * See also: g_path_buf_to_path()
+ *
+ * Returns: (transfer full) (nullable) (type filename): the built path
+ *
+ * Since: 2.76
+ */
+char *
+g_path_buf_clear_to_path (GPathBuf *buf)
+{
+ char *res;
+
+ g_return_val_if_fail (buf != NULL, NULL);
+
+ res = g_path_buf_to_path (buf);
+ g_path_buf_clear (buf);
+
+ return g_steal_pointer (&res);
+}
+
+/**
+ * g_path_buf_new:
+ *
+ * Allocates a new `GPathBuf`.
+ *
+ * Returns: (transfer full): the newly allocated path buffer
+ *
+ * Since: 2.76
+ */
+GPathBuf *
+g_path_buf_new (void)
+{
+ return g_path_buf_init (g_new (GPathBuf, 1));
+}
+
+/**
+ * g_path_buf_new_from_path:
+ * @path: (type filename) (nullable): the path used to initialize the buffer
+ *
+ * Allocates a new `GPathBuf` with the given @path.
+ *
+ * Returns: (transfer full): the newly allocated path buffer
+ *
+ * Since: 2.76
+ */
+GPathBuf *
+g_path_buf_new_from_path (const char *path)
+{
+ return g_path_buf_init_from_path (g_new (GPathBuf, 1), path);
+}
+
+/**
+ * g_path_buf_free:
+ * @buf: (transfer full) (not nullable): a path buffer
+ *
+ * Frees a `GPathBuf` allocated by g_path_buf_new().
+ *
+ * Since: 2.76
+ */
+void
+g_path_buf_free (GPathBuf *buf)
+{
+ g_return_if_fail (buf != NULL);
+
+ g_path_buf_clear (buf);
+ g_free (buf);
+}
+
+/**
+ * g_path_buf_free_to_path:
+ * @buf: (transfer full) (not nullable): a path buffer
+ *
+ * Frees a `GPathBuf` allocated by g_path_buf_new(), and
+ * returns the path inside the buffer.
+ *
+ * This function returns `NULL` if the `GPathBuf` is empty.
+ *
+ * See also: g_path_buf_to_path()
+ *
+ * Returns: (transfer full) (nullable) (type filename): the path
+ *
+ * Since: 2.76
+ */
+char *
+g_path_buf_free_to_path (GPathBuf *buf)
+{
+ char *res;
+
+ g_return_val_if_fail (buf != NULL, NULL);
+
+ res = g_path_buf_clear_to_path (buf);
+ g_path_buf_free (buf);
+
+ return g_steal_pointer (&res);
+}
+
+/**
+ * g_path_buf_copy:
+ * @buf: (not nullable): a path buffer
+ *
+ * Copies the contents of a path buffer into a new `GPathBuf`.
+ *
+ * Returns: (transfer full): the newly allocated path buffer
+ *
+ * Since: 2.76
+ */
+GPathBuf *
+g_path_buf_copy (GPathBuf *buf)
+{
+ RealPathBuf *rbuf = PATH_BUF (buf);
+ RealPathBuf *rcopy;
+ GPathBuf *copy;
+
+ g_return_val_if_fail (buf != NULL, NULL);
+
+ copy = g_path_buf_new ();
+ rcopy = PATH_BUF (copy);
+
+ if (rbuf->path != NULL)
+ {
+ rcopy->path = g_ptr_array_new_null_terminated (rbuf->path->len, g_free, TRUE);
+ for (guint i = 0; i < rbuf->path->len; i++)
+ {
+ const char *p = g_ptr_array_index (rbuf->path, i);
+
+ if (p != NULL)
+ g_ptr_array_add (rcopy->path, g_strdup (p));
+ }
+ }
+
+ rcopy->extension = g_strdup (rbuf->extension);
+
+ return copy;
+}
+
+/**
+ * g_path_buf_push:
+ * @buf: a path buffer
+ * @path: (type filename): a path
+ *
+ * Extends the given path buffer with @path.
+ *
+ * If @path is absolute, it replaces the current path.
+ *
+ * If @path contains a directory separator, the buffer is extended by
+ * as many elements the path provides.
+ *
+ * On Windows, both forward slashes and backslashes are treated as
+ * directory separators. On other platforms, %G_DIR_SEPARATOR_S is the
+ * only directory separator.
+ *
+ * |[<!-- language="C" -->
+ * GPathBuf buf, cmp;
+ *
+ * g_path_buf_init_from_path (&buf, "/tmp");
+ * g_path_buf_push (&buf, ".X11-unix/X0");
+ * g_path_buf_init_from_path (&cmp, "/tmp/.X11-unix/X0");
+ * g_assert_true (g_path_buf_equal (&buf, &cmp));
+ * g_path_buf_clear (&cmp);
+ *
+ * g_path_buf_push (&buf, "/etc/locale.conf");
+ * g_path_buf_init_from_path (&cmp, "/etc/locale.conf");
+ * g_assert_true (g_path_buf_equal (&buf, &cmp));
+ * g_path_buf_clear (&cmp);
+ *
+ * g_path_buf_clear (&buf);
+ * ]|
+ *
+ * Returns: (transfer none): the same pointer to @buf, for convenience
+ *
+ * Since: 2.76
+ */
+GPathBuf *
+g_path_buf_push (GPathBuf *buf,
+ const char *path)
+{
+ RealPathBuf *rbuf = PATH_BUF (buf);
+
+ g_return_val_if_fail (buf != NULL, NULL);
+ g_return_val_if_fail (path != NULL && *path != '\0', buf);
+
+ if (g_path_is_absolute (path))
+ {
+#ifdef G_OS_WIN32
+ char **elements = g_strsplit_set (path, "\\/", -1);
+#else
+ char **elements = g_strsplit (path, G_DIR_SEPARATOR_S, -1);
+#endif
+
+#ifdef G_OS_UNIX
+ /* strsplit() will add an empty element for the leading root,
+ * which will cause the path build to ignore it; to avoid it,
+ * we re-inject the root as the first element.
+ *
+ * The first string is empty, but it's still allocated, so we
+ * need to free it to avoid leaking it.
+ */
+ g_free (elements[0]);
+ elements[0] = g_strdup ("/");
+#endif
+
+ g_clear_pointer (&rbuf->path, g_ptr_array_unref);
+ rbuf->path = g_ptr_array_new_null_terminated (g_strv_length (elements), g_free, TRUE);
+
+ /* Skip empty elements caused by repeated separators */
+ for (guint i = 0; elements[i] != NULL; i++)
+ {
+ if (*elements[i] != '\0')
+ g_ptr_array_add (rbuf->path, g_steal_pointer (&elements[i]));
+ else
+ g_free (elements[i]);
+ }
+
+ g_free (elements);
+ }
+ else
+ {
+ char **elements = g_strsplit (path, G_DIR_SEPARATOR_S, -1);
+
+ if (rbuf->path == NULL)
+ rbuf->path = g_ptr_array_new_null_terminated (g_strv_length (elements), g_free, TRUE);
+
+ /* Skip empty elements caused by repeated separators */
+ for (guint i = 0; elements[i] != NULL; i++)
+ {
+ if (*elements[i] != '\0')
+ g_ptr_array_add (rbuf->path, g_steal_pointer (&elements[i]));
+ else
+ g_free (elements[i]);
+ }
+
+ g_free (elements);
+ }
+
+ return buf;
+}
+
+/**
+ * g_path_buf_pop:
+ * @buf: a path buffer
+ *
+ * Removes the last element of the path buffer.
+ *
+ * If there is only one element in the path buffer (for example, `/` on
+ * Unix-like operating systems or the drive on Windows systems), it will
+ * not be removed and %FALSE will be returned instead.
+ *
+ * |[<!-- language="C" -->
+ * GPathBuf buf, cmp;
+ *
+ * g_path_buf_init_from_path (&buf, "/bin/sh");
+ *
+ * g_path_buf_pop (&buf);
+ * g_path_buf_init_from_path (&cmp, "/bin");
+ * g_assert_true (g_path_buf_equal (&buf, &cmp));
+ * g_path_buf_clear (&cmp);
+ *
+ * g_path_buf_pop (&buf);
+ * g_path_buf_init_from_path (&cmp, "/");
+ * g_assert_true (g_path_buf_equal (&buf, &cmp));
+ * g_path_buf_clear (&cmp);
+ *
+ * g_path_buf_clear (&buf);
+ * ]|
+ *
+ * Returns: `TRUE` if the buffer was modified and `FALSE` otherwise
+ *
+ * Since: 2.76
+ */
+gboolean
+g_path_buf_pop (GPathBuf *buf)
+{
+ RealPathBuf *rbuf = PATH_BUF (buf);
+
+ g_return_val_if_fail (buf != NULL, FALSE);
+ g_return_val_if_fail (rbuf->path != NULL, FALSE);
+
+ /* Keep the first element of the buffer; it's either '/' or the drive */
+ if (rbuf->path->len > 1)
+ {
+ g_ptr_array_remove_index (rbuf->path, rbuf->path->len - 1);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+/**
+ * g_path_buf_set_filename:
+ * @buf: a path buffer
+ * @file_name: (type filename) (not nullable): the file name in the path
+ *
+ * Sets the file name of the path.
+ *
+ * If the path buffer is empty, the filename is left unset and this
+ * function returns `FALSE`.
+ *
+ * If the path buffer only contains the root element (on Unix-like operating
+ * systems) or the drive (on Windows), this is the equivalent of pushing
+ * the new @file_name.
+ *
+ * If the path buffer contains a path, this is the equivalent of
+ * popping the path buffer and pushing @file_name, creating a
+ * sibling of the original path.
+ *
+ * |[<!-- language="C" -->
+ * GPathBuf buf, cmp;
+ *
+ * g_path_buf_init_from_path (&buf, "/");
+ *
+ * g_path_buf_set_filename (&buf, "bar");
+ * g_path_buf_init_from_path (&cmp, "/bar");
+ * g_assert_true (g_path_buf_equal (&buf, &cmp));
+ * g_path_buf_clear (&cmp);
+ *
+ * g_path_buf_set_filename (&buf, "baz.txt");
+ * g_path_buf_init_from_path (&cmp, "/baz.txt");
+ * g_assert_true (g_path_buf_equal (&buf, &cmp);
+ * g_path_buf_clear (&cmp);
+ *
+ * g_path_buf_clear (&buf);
+ * ]|
+ *
+ * Returns: `TRUE` if the file name was replaced, and `FALSE` otherwise
+ *
+ * Since: 2.76
+ */
+gboolean
+g_path_buf_set_filename (GPathBuf *buf,
+ const char *file_name)
+{
+ g_return_val_if_fail (buf != NULL, FALSE);
+ g_return_val_if_fail (file_name != NULL, FALSE);
+
+ if (PATH_BUF (buf)->path == NULL)
+ return FALSE;
+
+ g_path_buf_pop (buf);
+ g_path_buf_push (buf, file_name);
+
+ return TRUE;
+}
+
+/**
+ * g_path_buf_set_extension:
+ * @buf: a path buffer
+ * @extension: (type filename) (nullable): the file extension
+ *
+ * Adds an extension to the file name in the path buffer.
+ *
+ * If @extension is `NULL`, the extension will be unset.
+ *
+ * If the path buffer does not have a file name set, this function returns
+ * `FALSE` and leaves the path buffer unmodified.
+ *
+ * Returns: `TRUE` if the extension was replaced, and `FALSE` otherwise
+ *
+ * Since: 2.76
+ */
+gboolean
+g_path_buf_set_extension (GPathBuf *buf,
+ const char *extension)
+{
+ RealPathBuf *rbuf = PATH_BUF (buf);
+
+ g_return_val_if_fail (buf != NULL, FALSE);
+
+ if (rbuf->path != NULL)
+ return g_set_str (&rbuf->extension, extension);
+ else
+ return FALSE;
+}
+
+/**
+ * g_path_buf_to_path:
+ * @buf: a path buffer
+ *
+ * Retrieves the built path from the path buffer.
+ *
+ * On Windows, the result contains backslashes as directory separators,
+ * even if forward slashes were used in input.
+ *
+ * If the path buffer is empty, this function returns `NULL`.
+ *
+ * Returns: (transfer full) (type filename) (nullable): the path
+ *
+ * Since: 2.76
+ */
+char *
+g_path_buf_to_path (GPathBuf *buf)
+{
+ RealPathBuf *rbuf = PATH_BUF (buf);
+ char *path = NULL;
+
+ g_return_val_if_fail (buf != NULL, NULL);
+
+ if (rbuf->path != NULL)
+ path = g_build_filenamev ((char **) rbuf->path->pdata);
+
+ if (path != NULL && rbuf->extension != NULL)
+ {
+ char *tmp = g_strconcat (path, ".", rbuf->extension, NULL);
+
+ g_free (path);
+ path = g_steal_pointer (&tmp);
+ }
+
+ return path;
+}
+
+/**
+ * g_path_buf_equal:
+ * @v1: (not nullable): a path buffer to compare
+ * @v2: (not nullable): a path buffer to compare
+ *
+ * Compares two path buffers for equality and returns `TRUE`
+ * if they are equal.
+ *
+ * The path inside the paths buffers are not going to be normalized,
+ * so `X/Y/Z/A/..`, `X/./Y/Z` and `X/Y/Z` are not going to be considered
+ * equal.
+ *
+ * This function can be passed to g_hash_table_new() as the
+ * `key_equal_func` parameter.
+ *
+ * Returns: `TRUE` if the two path buffers are equal,
+ * and `FALSE` otherwise
+ *
+ * Since: 2.76
+ */
+gboolean
+g_path_buf_equal (gconstpointer v1,
+ gconstpointer v2)
+{
+ if (v1 == v2)
+ return TRUE;
+
+ /* We resolve the buffer into a path to normalize its contents;
+ * this won't resolve symbolic links or `.` and `..` components
+ */
+ char *p1 = g_path_buf_to_path ((GPathBuf *) v1);
+ char *p2 = g_path_buf_to_path ((GPathBuf *) v2);
+
+ gboolean res = p1 != NULL && p2 != NULL
+ ? g_str_equal (p1, p2)
+ : FALSE;
+
+ g_free (p1);
+ g_free (p2);
+
+ return res;
+}
diff --git a/glib/gpathbuf.h b/glib/gpathbuf.h
new file mode 100644
index 000000000..b42341998
--- /dev/null
+++ b/glib/gpathbuf.h
@@ -0,0 +1,90 @@
+/* gpathbuf.h: A mutable path builder
+ *
+ * SPDX-FileCopyrightText: 2023 Emmanuele Bassi
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ */
+
+#pragma once
+
+#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
+#error "Only <glib.h> can be included directly."
+#endif
+
+#include <glib/gtypes.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GPathBuf GPathBuf;
+
+/**
+ * GPathBuf: (copy-func g_path_buf_copy) (free-func g_path_buf_free)
+ *
+ * A mutable path builder.
+ *
+ * Since: 2.76
+ */
+struct _GPathBuf
+{
+ /*< private >*/
+ gpointer dummy[8];
+};
+
+/**
+ * G_PATH_BUF_INIT:
+ *
+ * Initializes a #GPathBuf on the stack.
+ *
+ * A stack-allocated `GPathBuf` must be initialized if it is used
+ * together with g_auto() to avoid warnings and crashes if the
+ * function returns before calling g_path_buf_init().
+ *
+ * |[<!-- language="C" -->
+ * g_auto (GPathBuf) buf = G_PATH_BUF_INIT;
+ * ]|
+ *
+ * Since: 2.76
+ */
+#define G_PATH_BUF_INIT { { NULL, } } \
+ GLIB_AVAILABLE_MACRO_IN_2_76
+
+GLIB_AVAILABLE_IN_2_76
+GPathBuf * g_path_buf_new (void);
+GLIB_AVAILABLE_IN_2_76
+GPathBuf * g_path_buf_new_from_path (const char *path);
+GLIB_AVAILABLE_IN_2_76
+GPathBuf * g_path_buf_init (GPathBuf *buf);
+GLIB_AVAILABLE_IN_2_76
+GPathBuf * g_path_buf_init_from_path (GPathBuf *buf,
+ const char *path);
+GLIB_AVAILABLE_IN_2_76
+void g_path_buf_clear (GPathBuf *buf);
+GLIB_AVAILABLE_IN_2_76
+char * g_path_buf_clear_to_path (GPathBuf *buf) G_GNUC_WARN_UNUSED_RESULT;
+GLIB_AVAILABLE_IN_2_76
+void g_path_buf_free (GPathBuf *buf);
+GLIB_AVAILABLE_IN_2_76
+char * g_path_buf_free_to_path (GPathBuf *buf) G_GNUC_WARN_UNUSED_RESULT;
+GLIB_AVAILABLE_IN_2_76
+GPathBuf * g_path_buf_copy (GPathBuf *buf);
+
+GLIB_AVAILABLE_IN_2_76
+GPathBuf * g_path_buf_push (GPathBuf *buf,
+ const char *path);
+GLIB_AVAILABLE_IN_2_76
+gboolean g_path_buf_pop (GPathBuf *buf);
+
+GLIB_AVAILABLE_IN_2_76
+gboolean g_path_buf_set_filename (GPathBuf *buf,
+ const char *file_name);
+GLIB_AVAILABLE_IN_2_76
+gboolean g_path_buf_set_extension (GPathBuf *buf,
+ const char *extension);
+
+GLIB_AVAILABLE_IN_2_76
+char * g_path_buf_to_path (GPathBuf *buf) G_GNUC_WARN_UNUSED_RESULT;
+
+GLIB_AVAILABLE_IN_2_76
+gboolean g_path_buf_equal (gconstpointer v1,
+ gconstpointer v2);
+
+G_END_DECLS
diff --git a/glib/gprintf.c b/glib/gprintf.c
index 818a55ad2..a0ccef9ab 100644
--- a/glib/gprintf.c
+++ b/glib/gprintf.c
@@ -342,7 +342,14 @@ g_vasprintf (gchar **string,
if (len < 0)
{
if (saved_errno == ENOMEM)
- g_error ("%s: failed to allocate memory", G_STRLOC);
+ {
+ /* Try and print a message to be a bit helpful, but stick to the
+ * bare minimum to avoid any code path which could try and fail to
+ * allocate additional memory. */
+ fputs (G_STRLOC, stderr);
+ fputs (": failed to allocate memory\n", stderr);
+ g_abort ();
+ }
else
*string = NULL;
}
@@ -353,7 +360,7 @@ g_vasprintf (gchar **string,
{
va_list args2;
- G_VA_COPY (args2, args);
+ va_copy (args2, args);
*string = g_new (gchar, g_printf_string_upper_bound (format, args));
diff --git a/glib/gqsort.c b/glib/gqsort.c
index a5060e403..a0edcd4d9 100644
--- a/glib/gqsort.c
+++ b/glib/gqsort.c
@@ -128,23 +128,23 @@ msort_with_tmp (const struct msort_param *p, void *b, size_t n)
case 2:
while (n1 > 0 && n2 > 0)
{
- unsigned long *tmpl = (unsigned long *) tmp;
- unsigned long *bl;
+ guintptr *tmpl = (guintptr *) tmp;
+ guintptr *bl;
tmp += s;
if ((*cmp) (b1, b2, arg) <= 0)
{
- bl = (unsigned long *) b1;
+ bl = (guintptr *) b1;
b1 += s;
--n1;
}
else
{
- bl = (unsigned long *) b2;
+ bl = (guintptr *) b2;
b2 += s;
--n2;
}
- while (tmpl < (unsigned long *) tmp)
+ while (tmpl < (guintptr *) tmp)
*tmpl++ = *bl++;
}
break;
@@ -265,15 +265,15 @@ msort_r (void *b, size_t n, size_t s, GCompareDataFunc cmp, void *arg)
else
{
if ((s & (sizeof (guint32) - 1)) == 0
- && (guintptr) b % ALIGNOF_GUINT32 == 0)
+ && (gsize) (guintptr) b % G_ALIGNOF(guint32) == 0)
{
if (s == sizeof (guint32))
p.var = 0;
else if (s == sizeof (guint64)
- && (guintptr) b % ALIGNOF_GUINT64 == 0)
+ && (gsize) (guintptr) b % G_ALIGNOF(guint64) == 0)
p.var = 1;
- else if ((s & (sizeof (unsigned long) - 1)) == 0
- && (guintptr) b % ALIGNOF_UNSIGNED_LONG == 0)
+ else if ((s & (sizeof (void *) - 1)) == 0
+ && (gsize) (guintptr) b % G_ALIGNOF(void *) == 0)
p.var = 2;
}
msort_with_tmp (&p, b, n);
diff --git a/glib/gquark.c b/glib/gquark.c
index cdd9bdf9a..12ec34cda 100644
--- a/glib/gquark.c
+++ b/glib/gquark.c
@@ -43,6 +43,7 @@
#include "gtestutils.h"
#include "glib_trace.h"
#include "glib-init.h"
+#include "glib-private.h"
#define QUARK_BLOCK_SIZE 2048
#define QUARK_STRING_BLOCK_SIZE (4096 - sizeof (gsize))
@@ -246,7 +247,7 @@ g_quark_from_string (const gchar *string)
* with statically allocated strings in the main program, but not with
* statically allocated memory in dynamically loaded modules, if you
* expect to ever unload the module again (e.g. do not use this
- * function in GTK+ theme engines).
+ * function in GTK theme engines).
*
* This function must not be used before library constructors have finished
* running. In particular, this means it cannot be used to initialize global
@@ -301,6 +302,7 @@ quark_new (gchar *string)
* us to do lockless lookup of the arrays, and there shouldn't be that
* many quarks in an app
*/
+ g_ignore_leak (g_atomic_pointer_get (&quarks));
g_atomic_pointer_set (&quarks, quarks_new);
}
diff --git a/glib/grand.c b/glib/grand.c
index 1c56d0195..5fb44576d 100644
--- a/glib/grand.c
+++ b/glib/grand.c
@@ -230,7 +230,7 @@ g_rand_new (void)
do
{
- dev_urandom = fopen("/dev/urandom", "rb");
+ dev_urandom = fopen ("/dev/urandom", "rbe");
}
while G_UNLIKELY (dev_urandom == NULL && errno == EINTR);
diff --git a/glib/grefcount.h b/glib/grefcount.h
index 88fc716e7..53b96932e 100644
--- a/glib/grefcount.h
+++ b/glib/grefcount.h
@@ -50,6 +50,60 @@ GLIB_AVAILABLE_IN_2_58
gboolean g_atomic_ref_count_compare (gatomicrefcount *arc,
gint val);
+/**
+ * G_REF_COUNT_INIT:
+ *
+ * Evaluates to the initial reference count for `grefcount`.
+ *
+ * This macro is useful for initializing `grefcount` fields inside
+ * structures, for instance:
+ *
+ * |[<!-- language="C" -->
+ * typedef struct {
+ * grefcount ref_count;
+ * char *name;
+ * char *address;
+ * } Person;
+ *
+ * static const Person default_person = {
+ * .ref_count = G_REF_COUNT_INIT,
+ * .name = "Default name",
+ * .address = "Default address",
+ * };
+ * ]|
+ *
+ * Since: 2.78
+ */
+#define G_REF_COUNT_INIT -1 \
+ GLIB_AVAILABLE_MACRO_IN_2_78
+
+/**
+ * G_ATOMIC_REF_COUNT_INIT:
+ *
+ * Evaluates to the initial reference count for `gatomicrefcount`.
+ *
+ * This macro is useful for initializing `gatomicrefcount` fields inside
+ * structures, for instance:
+ *
+ * |[<!-- language="C" -->
+ * typedef struct {
+ * gatomicrefcount ref_count;
+ * char *name;
+ * char *address;
+ * } Person;
+ *
+ * static const Person default_person = {
+ * .ref_count = G_ATOMIC_REF_COUNT_INIT,
+ * .name = "Default name",
+ * .address = "Default address",
+ * };
+ * ]|
+ *
+ * Since: 2.78
+ */
+#define G_ATOMIC_REF_COUNT_INIT 1 \
+ GLIB_AVAILABLE_MACRO_IN_2_78
+
/* On GCC we can use __extension__ to inline the API without using
* ancillary functions; we only do this when disabling checks, as
* it disables warnings when saturating the reference counters
diff --git a/glib/gregex.c b/glib/gregex.c
index 41ad675a7..116ecacbb 100644
--- a/glib/gregex.c
+++ b/glib/gregex.c
@@ -232,6 +232,7 @@ struct _GMatchInfo
gssize string_len; /* length of string, in bytes */
pcre2_match_context *match_context;
pcre2_match_data *match_data;
+ pcre2_jit_stack *jit_stack;
};
typedef enum
@@ -252,6 +253,13 @@ struct _GRegex
GRegexMatchFlags orig_match_opts; /* options used as default match options, gregex values */
uint32_t jit_options; /* options which were enabled for jit compiler */
JITStatus jit_status; /* indicates the status of jit compiler for this compiled regex */
+ /* The jit_status here does _not_ correspond to whether we used the JIT in the last invocation,
+ * which may be affected by match_options or a JIT_STACK_LIMIT error, but whether it was ever
+ * enabled for the current regex AND current set of jit_options.
+ * JIT_STATUS_DEFAULT means enablement was never tried,
+ * JIT_STATUS_ENABLED means it was tried and successful (even if we're not currently using it),
+ * and JIT_STATUS_DISABLED means it was tried and failed (so we shouldn't try again).
+ */
};
/* TRUE if ret is an error code, FALSE otherwise. */
@@ -483,8 +491,6 @@ translate_match_error (gint errcode)
/* not used by pcre2_match() */
break;
case PCRE2_ERROR_MATCHLIMIT:
- case PCRE2_ERROR_JIT_STACKLIMIT:
- return _("backtracking limit reached");
case PCRE2_ERROR_CALLOUT:
/* callouts are not implemented */
break;
@@ -896,22 +902,22 @@ recalc_match_offsets (GMatchInfo *match_info,
}
static JITStatus
-enable_jit_with_match_options (GRegex *regex,
+enable_jit_with_match_options (GMatchInfo *match_info,
uint32_t match_options)
{
gint retval;
uint32_t old_jit_options, new_jit_options;
- if (!(regex->orig_compile_opts & G_REGEX_OPTIMIZE))
+ if (!(match_info->regex->orig_compile_opts & G_REGEX_OPTIMIZE))
return JIT_STATUS_DISABLED;
- if (regex->jit_status == JIT_STATUS_DISABLED)
+ if (match_info->regex->jit_status == JIT_STATUS_DISABLED)
return JIT_STATUS_DISABLED;
if (match_options & G_REGEX_PCRE2_JIT_UNSUPPORTED_OPTIONS)
return JIT_STATUS_DISABLED;
- old_jit_options = regex->jit_options;
+ old_jit_options = match_info->regex->jit_options;
new_jit_options = old_jit_options | PCRE2_JIT_COMPLETE;
if (match_options & PCRE2_PARTIAL_HARD)
new_jit_options |= PCRE2_JIT_PARTIAL_HARD;
@@ -920,34 +926,49 @@ enable_jit_with_match_options (GRegex *regex,
/* no new options enabled */
if (new_jit_options == old_jit_options)
- return regex->jit_status;
+ {
+ g_assert (match_info->regex->jit_status != JIT_STATUS_DEFAULT);
+ return match_info->regex->jit_status;
+ }
- retval = pcre2_jit_compile (regex->pcre_re, new_jit_options);
- switch (retval)
+ retval = pcre2_jit_compile (match_info->regex->pcre_re, new_jit_options);
+ if (retval == 0)
{
- case 0: /* JIT enabled successfully */
- regex->jit_options = new_jit_options;
- return JIT_STATUS_ENABLED;
- case PCRE2_ERROR_NOMEMORY:
- g_debug ("JIT compilation was requested with G_REGEX_OPTIMIZE, "
- "but JIT was unable to allocate executable memory for the "
- "compiler. Falling back to interpretive code.");
- return JIT_STATUS_DISABLED;
- case PCRE2_ERROR_JIT_BADOPTION:
- g_debug ("JIT compilation was requested with G_REGEX_OPTIMIZE, "
- "but JIT support is not available. Falling back to "
- "interpretive code.");
- return JIT_STATUS_DISABLED;
- break;
- default:
- g_debug ("JIT compilation was requested with G_REGEX_OPTIMIZE, "
- "but request for JIT support had unexpectedly failed (error %d). "
- "Falling back to interpretive code.", retval);
- return JIT_STATUS_DISABLED;
- break;
+ match_info->regex->jit_status = JIT_STATUS_ENABLED;
+
+ match_info->regex->jit_options = new_jit_options;
+ /* Set min stack size for JIT to 32KiB and max to 512KiB */
+ match_info->jit_stack = pcre2_jit_stack_create (1 << 15, 1 << 19, NULL);
+ pcre2_jit_stack_assign (match_info->match_context, NULL, match_info->jit_stack);
}
+ else
+ {
+ match_info->regex->jit_status = JIT_STATUS_DISABLED;
- return regex->jit_status;
+ switch (retval)
+ {
+ case PCRE2_ERROR_NOMEMORY:
+ g_debug ("JIT compilation was requested with G_REGEX_OPTIMIZE, "
+ "but JIT was unable to allocate executable memory for the "
+ "compiler. Falling back to interpretive code.");
+ break;
+ case PCRE2_ERROR_JIT_BADOPTION:
+ g_debug ("JIT compilation was requested with G_REGEX_OPTIMIZE, "
+ "but JIT support is not available. Falling back to "
+ "interpretive code.");
+ break;
+ default:
+ g_debug ("JIT compilation was requested with G_REGEX_OPTIMIZE, "
+ "but request for JIT support had unexpectedly failed (error %d). "
+ "Falling back to interpretive code.",
+ retval);
+ break;
+ }
+ }
+
+ return match_info->regex->jit_status;
+
+ g_assert_not_reached ();
}
/**
@@ -1023,6 +1044,8 @@ g_match_info_unref (GMatchInfo *match_info)
g_regex_unref (match_info->regex);
if (match_info->match_context)
pcre2_match_context_free (match_info->match_context);
+ if (match_info->jit_stack)
+ pcre2_jit_stack_free (match_info->jit_stack);
if (match_info->match_data)
pcre2_match_data_free (match_info->match_data);
g_free (match_info->offsets);
@@ -1091,7 +1114,7 @@ g_match_info_next (GMatchInfo *match_info,
opts = match_info->regex->match_opts | match_info->match_opts;
- jit_status = enable_jit_with_match_options (match_info->regex, opts);
+ jit_status = enable_jit_with_match_options (match_info, opts);
if (jit_status == JIT_STATUS_ENABLED)
{
match_info->matches = pcre2_jit_match (match_info->regex->pcre_re,
@@ -1101,8 +1124,18 @@ g_match_info_next (GMatchInfo *match_info,
opts,
match_info->match_data,
match_info->match_context);
+ /* if the JIT stack limit was reached, fall back to non-JIT matching in
+ * the next conditional statement */
+ if (match_info->matches == PCRE2_ERROR_JIT_STACKLIMIT)
+ {
+ g_debug ("PCRE2 JIT stack limit reached, falling back to "
+ "non-optimized matching.");
+ opts |= PCRE2_NO_JIT;
+ jit_status = JIT_STATUS_DISABLED;
+ }
}
- else
+
+ if (jit_status != JIT_STATUS_ENABLED)
{
match_info->matches = pcre2_match (match_info->regex->pcre_re,
(PCRE2_SPTR8) match_info->string,
@@ -1492,8 +1525,8 @@ get_matched_substring_number (const GMatchInfo *match_info,
for (entry = (guchar*) first; entry <= (guchar*) last; entry += entrysize)
{
- gint n = (entry[0] << 8) + entry[1];
- if (match_info->offsets[n*2] >= 0)
+ guint n = (entry[0] << 8) + entry[1];
+ if (n * 2 < match_info->n_offsets && match_info->offsets[n * 2] >= 0)
return n;
}
@@ -1764,7 +1797,6 @@ G_GNUC_END_IGNORE_DEPRECATIONS
regex->orig_compile_opts = compile_options;
regex->match_opts = pcre_match_options;
regex->orig_match_opts = match_options;
- regex->jit_status = enable_jit_with_match_options (regex, regex->match_opts);
return regex;
}
@@ -3584,7 +3616,7 @@ g_regex_escape_nul (const gchar *string,
/**
* g_regex_escape_string:
- * @string: (array length=length): the string to escape
+ * @string: the string to escape
* @length: the length of @string, in bytes, or -1 if @string is nul-terminated
*
* Escapes the special characters used for regular expressions
diff --git a/glib/gsequence.c b/glib/gsequence.c
index 5c068f5ca..ead827d46 100644
--- a/glib/gsequence.c
+++ b/glib/gsequence.c
@@ -85,7 +85,7 @@
* GSequenceIterCompareFunc:
* @a: a #GSequenceIter
* @b: a #GSequenceIter
- * @user_data: user data
+ * @data: user data
*
* A #GSequenceIterCompareFunc is a function used to compare iterators.
* It must return zero if the iterators compare equal, a negative value
diff --git a/glib/gsequence.h b/glib/gsequence.h
index 464fe80fb..c1b340493 100644
--- a/glib/gsequence.h
+++ b/glib/gsequence.h
@@ -34,7 +34,7 @@ typedef struct _GSequenceNode GSequenceIter;
typedef gint (* GSequenceIterCompareFunc) (GSequenceIter *a,
GSequenceIter *b,
- gpointer user_data);
+ gpointer data);
/* GSequence */
diff --git a/glib/gslice.c b/glib/gslice.c
index 36fa0841f..6bcb2020b 100644
--- a/glib/gslice.c
+++ b/glib/gslice.c
@@ -21,75 +21,33 @@
#include "config.h"
#include "glibconfig.h"
-#if defined(HAVE_POSIX_MEMALIGN) && !defined(_XOPEN_SOURCE)
-#define _XOPEN_SOURCE 600 /* posix_memalign() */
-#endif
-#include <stdlib.h> /* posix_memalign() */
+#include <stdio.h>
#include <string.h>
-#include <errno.h>
-
-#ifdef G_OS_UNIX
-#include <unistd.h> /* sysconf() */
-#endif
-#ifdef G_OS_WIN32
-#include <windows.h>
-#include <process.h>
-#endif
-
-#include <stdio.h> /* fputs */
#include "gslice.h"
-#include "gmain.h"
#include "gmem.h" /* gslice.h */
-#include "gstrfuncs.h"
-#include "gutils.h"
-#include "gtrashstack.h"
-#include "gtestutils.h"
-#include "gthread.h"
-#include "gthreadprivate.h"
#include "glib_trace.h"
#include "gprintf.h"
-#include "gvalgrind.h"
-
/**
* SECTION:memory_slices
* @title: Memory Slices
* @short_description: efficient way to allocate groups of equal-sized
* chunks of memory
*
- * Memory slices provide a space-efficient and multi-processing scalable
- * way to allocate equal-sized pieces of memory, just like the original
- * #GMemChunks (from GLib 2.8), while avoiding their excessive
- * memory-waste, scalability and performance problems.
- *
- * To achieve these goals, the slice allocator uses a sophisticated,
- * layered design that has been inspired by Bonwick's slab allocator
- * ([Bonwick94](http://citeseer.ist.psu.edu/bonwick94slab.html)
- * Jeff Bonwick, The slab allocator: An object-caching kernel
- * memory allocator. USENIX 1994, and
- * [Bonwick01](http://citeseer.ist.psu.edu/bonwick01magazines.html)
- * Bonwick and Jonathan Adams, Magazines and vmem: Extending the
- * slab allocator to many cpu's and arbitrary resources. USENIX 2001)
- *
- * It uses posix_memalign() to optimize allocations of many equally-sized
- * chunks, and has per-thread free lists (the so-called magazine layer)
- * to quickly satisfy allocation requests of already known structure sizes.
- * This is accompanied by extra caching logic to keep freed memory around
- * for some time before returning it to the system. Memory that is unused
- * due to alignment constraints is used for cache colorization (random
- * distribution of chunk addresses) to improve CPU cache utilization. The
- * caching layer of the slice allocator adapts itself to high lock contention
- * to improve scalability.
- *
- * The slice allocator can allocate blocks as small as two pointers, and
- * unlike malloc(), it does not reserve extra space per block. For large block
- * sizes, g_slice_new() and g_slice_alloc() will automatically delegate to the
- * system malloc() implementation. For newly written code it is recommended
- * to use the new `g_slice` API instead of g_malloc() and
- * friends, as long as objects are not resized during their lifetime and the
- * object size used at allocation time is still available when freeing.
+ * GSlice was a space-efficient and multi-processing scalable way to allocate
+ * equal sized pieces of memory. Since GLib 2.76, its implementation has been
+ * removed and it calls g_malloc() and g_free_sized(), because the performance
+ * of the system-default allocators has improved on all platforms since GSlice
+ * was written.
+ *
+ * The GSlice APIs have not been deprecated, as they are widely in use and doing
+ * so would be very disruptive for little benefit.
+ *
+ * New code should be written using g_new()/g_malloc() and g_free_sized() or
+ * g_free(). There is no particular benefit in porting existing code away from
+ * g_slice_new()/g_slice_free() unless it’s being rewritten anyway.
*
* Here is an example for using the slice allocator:
* |[<!-- language="C" -->
@@ -132,209 +90,19 @@
* ]|
*/
-/* the GSlice allocator is split up into 4 layers, roughly modelled after the slab
- * allocator and magazine extensions as outlined in:
- * + [Bonwick94] Jeff Bonwick, The slab allocator: An object-caching kernel
- * memory allocator. USENIX 1994, http://citeseer.ist.psu.edu/bonwick94slab.html
- * + [Bonwick01] Bonwick and Jonathan Adams, Magazines and vmem: Extending the
- * slab allocator to many cpu's and arbitrary resources.
- * USENIX 2001, http://citeseer.ist.psu.edu/bonwick01magazines.html
- * the layers are:
- * - the thread magazines. for each (aligned) chunk size, a magazine (a list)
- * of recently freed and soon to be allocated chunks is maintained per thread.
- * this way, most alloc/free requests can be quickly satisfied from per-thread
- * free lists which only require one g_private_get() call to retrieve the
- * thread handle.
- * - the magazine cache. allocating and freeing chunks to/from threads only
- * occurs at magazine sizes from a global depot of magazines. the depot
- * maintaines a 15 second working set of allocated magazines, so full
- * magazines are not allocated and released too often.
- * the chunk size dependent magazine sizes automatically adapt (within limits,
- * see [3]) to lock contention to properly scale performance across a variety
- * of SMP systems.
- * - the slab allocator. this allocator allocates slabs (blocks of memory) close
- * to the system page size or multiples thereof which have to be page aligned.
- * the blocks are divided into smaller chunks which are used to satisfy
- * allocations from the upper layers. the space provided by the reminder of
- * the chunk size division is used for cache colorization (random distribution
- * of chunk addresses) to improve processor cache utilization. multiple slabs
- * with the same chunk size are kept in a partially sorted ring to allow O(1)
- * freeing and allocation of chunks (as long as the allocation of an entirely
- * new slab can be avoided).
- * - the page allocator. on most modern systems, posix_memalign(3) or
- * memalign(3) should be available, so this is used to allocate blocks with
- * system page size based alignments and sizes or multiples thereof.
- * if no memalign variant is provided, valloc() is used instead and
- * block sizes are limited to the system page size (no multiples thereof).
- * as a fallback, on system without even valloc(), a malloc(3)-based page
- * allocator with alloc-only behaviour is used.
- *
- * NOTES:
- * [1] some systems memalign(3) implementations may rely on boundary tagging for
- * the handed out memory chunks. to avoid excessive page-wise fragmentation,
- * we reserve 2 * sizeof (void*) per block size for the systems memalign(3),
- * specified in NATIVE_MALLOC_PADDING.
- * [2] using the slab allocator alone already provides for a fast and efficient
- * allocator, it doesn't properly scale beyond single-threaded uses though.
- * also, the slab allocator implements eager free(3)-ing, i.e. does not
- * provide any form of caching or working set maintenance. so if used alone,
- * it's vulnerable to trashing for sequences of balanced (alloc, free) pairs
- * at certain thresholds.
- * [3] magazine sizes are bound by an implementation specific minimum size and
- * a chunk size specific maximum to limit magazine storage sizes to roughly
- * 16KB.
- * [4] allocating ca. 8 chunks per block/page keeps a good balance between
- * external and internal fragmentation (<= 12.5%). [Bonwick94]
- */
-
-/* --- macros and constants --- */
-#define LARGEALIGNMENT (256)
-#define P2ALIGNMENT (2 * sizeof (gsize)) /* fits 2 pointers (assumed to be 2 * GLIB_SIZEOF_SIZE_T below) */
-#define ALIGN(size, base) ((base) * (gsize) (((size) + (base) - 1) / (base)))
-#define NATIVE_MALLOC_PADDING P2ALIGNMENT /* per-page padding left for native malloc(3) see [1] */
-#define SLAB_INFO_SIZE P2ALIGN (sizeof (SlabInfo) + NATIVE_MALLOC_PADDING)
-#define MAX_MAGAZINE_SIZE (256) /* see [3] and allocator_get_magazine_threshold() for this */
-#define MIN_MAGAZINE_SIZE (4)
-#define MAX_STAMP_COUNTER (7) /* distributes the load of gettimeofday() */
-#define MAX_SLAB_CHUNK_SIZE(al) (((al)->max_page_size - SLAB_INFO_SIZE) / 8) /* we want at last 8 chunks per page, see [4] */
-#define MAX_SLAB_INDEX(al) (SLAB_INDEX (al, MAX_SLAB_CHUNK_SIZE (al)) + 1)
-#define SLAB_INDEX(al, asize) ((asize) / P2ALIGNMENT - 1) /* asize must be P2ALIGNMENT aligned */
-#define SLAB_CHUNK_SIZE(al, ix) (((ix) + 1) * P2ALIGNMENT)
-#define SLAB_BPAGE_SIZE(al,csz) (8 * (csz) + SLAB_INFO_SIZE)
-
-/* optimized version of ALIGN (size, P2ALIGNMENT) */
-#if GLIB_SIZEOF_SIZE_T * 2 == 8 /* P2ALIGNMENT */
-#define P2ALIGN(size) (((size) + 0x7) & ~(gsize) 0x7)
-#elif GLIB_SIZEOF_SIZE_T * 2 == 16 /* P2ALIGNMENT */
-#define P2ALIGN(size) (((size) + 0xf) & ~(gsize) 0xf)
-#else
-#define P2ALIGN(size) ALIGN (size, P2ALIGNMENT)
-#endif
-
-/* special helpers to avoid gmessage.c dependency */
-static void mem_error (const char *format, ...) G_GNUC_PRINTF (1,2);
-#define mem_assert(cond) do { if (G_LIKELY (cond)) ; else mem_error ("assertion failed: %s", #cond); } while (0)
-
-/* --- structures --- */
-typedef struct _ChunkLink ChunkLink;
-typedef struct _SlabInfo SlabInfo;
-typedef struct _CachedMagazine CachedMagazine;
-struct _ChunkLink {
- ChunkLink *next;
- ChunkLink *data;
-};
-struct _SlabInfo {
- ChunkLink *chunks;
- guint n_allocated;
- SlabInfo *next, *prev;
-};
-typedef struct {
- ChunkLink *chunks;
- gsize count; /* approximative chunks list length */
-} Magazine;
-typedef struct {
- Magazine *magazine1; /* array of MAX_SLAB_INDEX (allocator) */
- Magazine *magazine2; /* array of MAX_SLAB_INDEX (allocator) */
-} ThreadMemory;
-typedef struct {
- gboolean always_malloc;
- gboolean bypass_magazines;
- gboolean debug_blocks;
- gsize working_set_msecs;
- guint color_increment;
-} SliceConfig;
-typedef struct {
- /* const after initialization */
- gsize min_page_size, max_page_size;
- SliceConfig config;
- gsize max_slab_chunk_size_for_magazine_cache;
- /* magazine cache */
- GMutex magazine_mutex;
- ChunkLink **magazines; /* array of MAX_SLAB_INDEX (allocator) */
- guint *contention_counters; /* array of MAX_SLAB_INDEX (allocator) */
- gint mutex_counter;
- guint stamp_counter;
- guint last_stamp;
- /* slab allocator */
- GMutex slab_mutex;
- SlabInfo **slab_stack; /* array of MAX_SLAB_INDEX (allocator) */
- guint color_accu;
-} Allocator;
-
-/* --- g-slice prototypes --- */
-static gpointer slab_allocator_alloc_chunk (gsize chunk_size);
-static void slab_allocator_free_chunk (gsize chunk_size,
- gpointer mem);
-static void private_thread_memory_cleanup (gpointer data);
-static gpointer allocator_memalign (gsize alignment,
- gsize memsize);
-static void allocator_memfree (gsize memsize,
- gpointer mem);
-static inline void magazine_cache_update_stamp (void);
-static inline gsize allocator_get_magazine_threshold (Allocator *allocator,
- guint ix);
-
-/* --- g-slice memory checker --- */
-static void smc_notify_alloc (void *pointer,
- size_t size);
-static int smc_notify_free (void *pointer,
- size_t size);
-
-/* --- variables --- */
-static GPrivate private_thread_memory = G_PRIVATE_INIT (private_thread_memory_cleanup);
-static gsize sys_page_size = 0;
-static Allocator allocator[1] = { { 0, }, };
-static SliceConfig slice_config = {
- FALSE, /* always_malloc */
- FALSE, /* bypass_magazines */
- FALSE, /* debug_blocks */
- 15 * 1000, /* working_set_msecs */
- 1, /* color increment, alt: 0x7fffffff */
-};
-static GMutex smc_tree_mutex; /* mutex for G_SLICE=debug-blocks */
-
/* --- auxiliary functions --- */
void
g_slice_set_config (GSliceConfig ckey,
gint64 value)
{
- g_return_if_fail (sys_page_size == 0);
- switch (ckey)
- {
- case G_SLICE_CONFIG_ALWAYS_MALLOC:
- slice_config.always_malloc = value != 0;
- break;
- case G_SLICE_CONFIG_BYPASS_MAGAZINES:
- slice_config.bypass_magazines = value != 0;
- break;
- case G_SLICE_CONFIG_WORKING_SET_MSECS:
- slice_config.working_set_msecs = value;
- break;
- case G_SLICE_CONFIG_COLOR_INCREMENT:
- slice_config.color_increment = value;
- break;
- default: ;
- }
+ /* deprecated, no implementation */
}
gint64
g_slice_get_config (GSliceConfig ckey)
{
- switch (ckey)
- {
- case G_SLICE_CONFIG_ALWAYS_MALLOC:
- return slice_config.always_malloc;
- case G_SLICE_CONFIG_BYPASS_MAGAZINES:
- return slice_config.bypass_magazines;
- case G_SLICE_CONFIG_WORKING_SET_MSECS:
- return slice_config.working_set_msecs;
- case G_SLICE_CONFIG_CHUNK_SIZES:
- return MAX_SLAB_INDEX (allocator);
- case G_SLICE_CONFIG_COLOR_INCREMENT:
- return slice_config.color_increment;
- default:
- return 0;
- }
+ /* deprecated, no implementation */
+ return 0;
}
gint64*
@@ -342,566 +110,8 @@ g_slice_get_config_state (GSliceConfig ckey,
gint64 address,
guint *n_values)
{
- guint i = 0;
- g_return_val_if_fail (n_values != NULL, NULL);
- *n_values = 0;
- switch (ckey)
- {
- gint64 array[64];
- case G_SLICE_CONFIG_CONTENTION_COUNTER:
- array[i++] = SLAB_CHUNK_SIZE (allocator, address);
- array[i++] = allocator->contention_counters[address];
- array[i++] = allocator_get_magazine_threshold (allocator, address);
- *n_values = i;
- return g_memdup2 (array, sizeof (array[0]) * *n_values);
- default:
- return NULL;
- }
-}
-
-static void
-slice_config_init (SliceConfig *config)
-{
- const gchar *val;
- gchar *val_allocated = NULL;
-
- *config = slice_config;
-
- /* Note that the empty string (`G_SLICE=""`) is treated differently from the
- * envvar being unset. In the latter case, we also check whether running under
- * valgrind. */
-#ifndef G_OS_WIN32
- val = g_getenv ("G_SLICE");
-#else
- /* The win32 implementation of g_getenv() has to do UTF-8 ↔ UTF-16 conversions
- * which use the slice allocator, leading to deadlock. Use a simple in-place
- * implementation here instead.
- *
- * Ignore references to other environment variables: only support values which
- * are a combination of always-malloc and debug-blocks. */
- {
-
- wchar_t wvalue[128]; /* at least big enough for `always-malloc,debug-blocks` */
- gsize len;
-
- len = GetEnvironmentVariableW (L"G_SLICE", wvalue, G_N_ELEMENTS (wvalue));
-
- if (len == 0)
- {
- if (GetLastError () == ERROR_ENVVAR_NOT_FOUND)
- val = NULL;
- else
- val = "";
- }
- else if (len >= G_N_ELEMENTS (wvalue))
- {
- /* @wvalue isn’t big enough. Give up. */
- g_warning ("Unsupported G_SLICE value");
- val = NULL;
- }
- else
- {
- /* it’s safe to use g_utf16_to_utf8() here as it only allocates using
- * malloc() rather than GSlice */
- val = val_allocated = g_utf16_to_utf8 (wvalue, -1, NULL, NULL, NULL);
- }
-
- }
-#endif /* G_OS_WIN32 */
-
- if (val != NULL)
- {
- gint flags;
- const GDebugKey keys[] = {
- { "always-malloc", 1 << 0 },
- { "debug-blocks", 1 << 1 },
- };
-
- flags = g_parse_debug_string (val, keys, G_N_ELEMENTS (keys));
- if (flags & (1 << 0))
- config->always_malloc = TRUE;
- if (flags & (1 << 1))
- config->debug_blocks = TRUE;
- }
- else
- {
- /* G_SLICE was not specified, so check if valgrind is running and
- * disable ourselves if it is.
- *
- * This way it's possible to force gslice to be enabled under
- * valgrind just by setting G_SLICE to the empty string.
- */
-#ifdef ENABLE_VALGRIND
- if (RUNNING_ON_VALGRIND)
- config->always_malloc = TRUE;
-#endif
- }
-
- g_free (val_allocated);
-}
-
-static void
-g_slice_init_nomessage (void)
-{
- /* we may not use g_error() or friends here */
- mem_assert (sys_page_size == 0);
- mem_assert (MIN_MAGAZINE_SIZE >= 4);
-
-#ifdef G_OS_WIN32
- {
- SYSTEM_INFO system_info;
- GetSystemInfo (&system_info);
- sys_page_size = system_info.dwPageSize;
- }
-#else
- sys_page_size = sysconf (_SC_PAGESIZE); /* = sysconf (_SC_PAGE_SIZE); = getpagesize(); */
-#endif
- mem_assert (sys_page_size >= 2 * LARGEALIGNMENT);
- mem_assert ((sys_page_size & (sys_page_size - 1)) == 0);
- slice_config_init (&allocator->config);
- allocator->min_page_size = sys_page_size;
-#if HAVE_POSIX_MEMALIGN || HAVE_MEMALIGN
- /* allow allocation of pages up to 8KB (with 8KB alignment).
- * this is useful because many medium to large sized structures
- * fit less than 8 times (see [4]) into 4KB pages.
- * we allow very small page sizes here, to reduce wastage in
- * threads if only small allocations are required (this does
- * bear the risk of increasing allocation times and fragmentation
- * though).
- */
- allocator->min_page_size = MAX (allocator->min_page_size, 4096);
- allocator->max_page_size = MAX (allocator->min_page_size, 8192);
- allocator->min_page_size = MIN (allocator->min_page_size, 128);
-#else
- /* we can only align to system page size */
- allocator->max_page_size = sys_page_size;
-#endif
- if (allocator->config.always_malloc)
- {
- allocator->contention_counters = NULL;
- allocator->magazines = NULL;
- allocator->slab_stack = NULL;
- }
- else
- {
- allocator->contention_counters = g_new0 (guint, MAX_SLAB_INDEX (allocator));
- allocator->magazines = g_new0 (ChunkLink*, MAX_SLAB_INDEX (allocator));
- allocator->slab_stack = g_new0 (SlabInfo*, MAX_SLAB_INDEX (allocator));
- }
-
- allocator->mutex_counter = 0;
- allocator->stamp_counter = MAX_STAMP_COUNTER; /* force initial update */
- allocator->last_stamp = 0;
- allocator->color_accu = 0;
- magazine_cache_update_stamp();
- /* values cached for performance reasons */
- allocator->max_slab_chunk_size_for_magazine_cache = MAX_SLAB_CHUNK_SIZE (allocator);
- if (allocator->config.always_malloc || allocator->config.bypass_magazines)
- allocator->max_slab_chunk_size_for_magazine_cache = 0; /* non-optimized cases */
-}
-
-static inline guint
-allocator_categorize (gsize aligned_chunk_size)
-{
- /* speed up the likely path */
- if (G_LIKELY (aligned_chunk_size && aligned_chunk_size <= allocator->max_slab_chunk_size_for_magazine_cache))
- return 1; /* use magazine cache */
-
- if (!allocator->config.always_malloc &&
- aligned_chunk_size &&
- aligned_chunk_size <= MAX_SLAB_CHUNK_SIZE (allocator))
- {
- if (allocator->config.bypass_magazines)
- return 2; /* use slab allocator, see [2] */
- return 1; /* use magazine cache */
- }
- return 0; /* use malloc() */
-}
-
-static inline void
-g_mutex_lock_a (GMutex *mutex,
- guint *contention_counter)
-{
- gboolean contention = FALSE;
- if (!g_mutex_trylock (mutex))
- {
- g_mutex_lock (mutex);
- contention = TRUE;
- }
- if (contention)
- {
- allocator->mutex_counter++;
- if (allocator->mutex_counter >= 1) /* quickly adapt to contention */
- {
- allocator->mutex_counter = 0;
- *contention_counter = MIN (*contention_counter + 1, MAX_MAGAZINE_SIZE);
- }
- }
- else /* !contention */
- {
- allocator->mutex_counter--;
- if (allocator->mutex_counter < -11) /* moderately recover magazine sizes */
- {
- allocator->mutex_counter = 0;
- *contention_counter = MAX (*contention_counter, 1) - 1;
- }
- }
-}
-
-static inline ThreadMemory*
-thread_memory_from_self (void)
-{
- ThreadMemory *tmem = g_private_get (&private_thread_memory);
- if (G_UNLIKELY (!tmem))
- {
- static GMutex init_mutex;
- guint n_magazines;
-
- g_mutex_lock (&init_mutex);
- if G_UNLIKELY (sys_page_size == 0)
- g_slice_init_nomessage ();
- g_mutex_unlock (&init_mutex);
-
- n_magazines = MAX_SLAB_INDEX (allocator);
- tmem = g_private_set_alloc0 (&private_thread_memory, sizeof (ThreadMemory) + sizeof (Magazine) * 2 * n_magazines);
- tmem->magazine1 = (Magazine*) (tmem + 1);
- tmem->magazine2 = &tmem->magazine1[n_magazines];
- }
- return tmem;
-}
-
-static inline ChunkLink*
-magazine_chain_pop_head (ChunkLink **magazine_chunks)
-{
- /* magazine chains are linked via ChunkLink->next.
- * each ChunkLink->data of the toplevel chain may point to a subchain,
- * linked via ChunkLink->next. ChunkLink->data of the subchains just
- * contains uninitialized junk.
- */
- ChunkLink *chunk = (*magazine_chunks)->data;
- if (G_UNLIKELY (chunk))
- {
- /* allocating from freed list */
- (*magazine_chunks)->data = chunk->next;
- }
- else
- {
- chunk = *magazine_chunks;
- *magazine_chunks = chunk->next;
- }
- return chunk;
-}
-
-#if 0 /* useful for debugging */
-static guint
-magazine_count (ChunkLink *head)
-{
- guint count = 0;
- if (!head)
- return 0;
- while (head)
- {
- ChunkLink *child = head->data;
- count += 1;
- for (child = head->data; child; child = child->next)
- count += 1;
- head = head->next;
- }
- return count;
-}
-#endif
-
-static inline gsize
-allocator_get_magazine_threshold (Allocator *local_allocator,
- guint ix)
-{
- /* the magazine size calculated here has a lower bound of MIN_MAGAZINE_SIZE,
- * which is required by the implementation. also, for moderately sized chunks
- * (say >= 64 bytes), magazine sizes shouldn't be much smaller then the number
- * of chunks available per page/2 to avoid excessive traffic in the magazine
- * cache for small to medium sized structures.
- * the upper bound of the magazine size is effectively provided by
- * MAX_MAGAZINE_SIZE. for larger chunks, this number is scaled down so that
- * the content of a single magazine doesn't exceed ca. 16KB.
- */
- gsize chunk_size = SLAB_CHUNK_SIZE (local_allocator, ix);
- guint threshold = MAX (MIN_MAGAZINE_SIZE, local_allocator->max_page_size / MAX (5 * chunk_size, 5 * 32));
- guint contention_counter = local_allocator->contention_counters[ix];
- if (G_UNLIKELY (contention_counter)) /* single CPU bias */
- {
- /* adapt contention counter thresholds to chunk sizes */
- contention_counter = contention_counter * 64 / chunk_size;
- threshold = MAX (threshold, contention_counter);
- }
- return threshold;
-}
-
-/* --- magazine cache --- */
-static inline void
-magazine_cache_update_stamp (void)
-{
- if (allocator->stamp_counter >= MAX_STAMP_COUNTER)
- {
- gint64 now_us = g_get_real_time ();
- allocator->last_stamp = now_us / 1000; /* milli seconds */
- allocator->stamp_counter = 0;
- }
- else
- allocator->stamp_counter++;
-}
-
-static inline ChunkLink*
-magazine_chain_prepare_fields (ChunkLink *magazine_chunks)
-{
- ChunkLink *chunk1;
- ChunkLink *chunk2;
- ChunkLink *chunk3;
- ChunkLink *chunk4;
- /* checked upon initialization: mem_assert (MIN_MAGAZINE_SIZE >= 4); */
- /* ensure a magazine with at least 4 unused data pointers */
- chunk1 = magazine_chain_pop_head (&magazine_chunks);
- chunk2 = magazine_chain_pop_head (&magazine_chunks);
- chunk3 = magazine_chain_pop_head (&magazine_chunks);
- chunk4 = magazine_chain_pop_head (&magazine_chunks);
- chunk4->next = magazine_chunks;
- chunk3->next = chunk4;
- chunk2->next = chunk3;
- chunk1->next = chunk2;
- return chunk1;
-}
-
-/* access the first 3 fields of a specially prepared magazine chain */
-#define magazine_chain_prev(mc) ((mc)->data)
-#define magazine_chain_stamp(mc) ((mc)->next->data)
-#define magazine_chain_uint_stamp(mc) GPOINTER_TO_UINT ((mc)->next->data)
-#define magazine_chain_next(mc) ((mc)->next->next->data)
-#define magazine_chain_count(mc) ((mc)->next->next->next->data)
-
-static void
-magazine_cache_trim (Allocator *local_allocator,
- guint ix,
- guint stamp)
-{
- /* g_mutex_lock (local_allocator->mutex); done by caller */
- /* trim magazine cache from tail */
- ChunkLink *current = magazine_chain_prev (local_allocator->magazines[ix]);
- ChunkLink *trash = NULL;
- while (!G_APPROX_VALUE (stamp, magazine_chain_uint_stamp (current),
- local_allocator->config.working_set_msecs))
- {
- /* unlink */
- ChunkLink *prev = magazine_chain_prev (current);
- ChunkLink *next = magazine_chain_next (current);
- magazine_chain_next (prev) = next;
- magazine_chain_prev (next) = prev;
- /* clear special fields, put on trash stack */
- magazine_chain_next (current) = NULL;
- magazine_chain_count (current) = NULL;
- magazine_chain_stamp (current) = NULL;
- magazine_chain_prev (current) = trash;
- trash = current;
- /* fixup list head if required */
- if (current == local_allocator->magazines[ix])
- {
- local_allocator->magazines[ix] = NULL;
- break;
- }
- current = prev;
- }
- g_mutex_unlock (&local_allocator->magazine_mutex);
- /* free trash */
- if (trash)
- {
- const gsize chunk_size = SLAB_CHUNK_SIZE (local_allocator, ix);
- g_mutex_lock (&local_allocator->slab_mutex);
- while (trash)
- {
- current = trash;
- trash = magazine_chain_prev (current);
- magazine_chain_prev (current) = NULL; /* clear special field */
- while (current)
- {
- ChunkLink *chunk = magazine_chain_pop_head (&current);
- slab_allocator_free_chunk (chunk_size, chunk);
- }
- }
- g_mutex_unlock (&local_allocator->slab_mutex);
- }
-}
-
-static void
-magazine_cache_push_magazine (guint ix,
- ChunkLink *magazine_chunks,
- gsize count) /* must be >= MIN_MAGAZINE_SIZE */
-{
- ChunkLink *current = magazine_chain_prepare_fields (magazine_chunks);
- ChunkLink *next, *prev;
- g_mutex_lock (&allocator->magazine_mutex);
- /* add magazine at head */
- next = allocator->magazines[ix];
- if (next)
- prev = magazine_chain_prev (next);
- else
- next = prev = current;
- magazine_chain_next (prev) = current;
- magazine_chain_prev (next) = current;
- magazine_chain_prev (current) = prev;
- magazine_chain_next (current) = next;
- magazine_chain_count (current) = (gpointer) count;
- /* stamp magazine */
- magazine_cache_update_stamp();
- magazine_chain_stamp (current) = GUINT_TO_POINTER (allocator->last_stamp);
- allocator->magazines[ix] = current;
- /* free old magazines beyond a certain threshold */
- magazine_cache_trim (allocator, ix, allocator->last_stamp);
- /* g_mutex_unlock (allocator->mutex); was done by magazine_cache_trim() */
-}
-
-static ChunkLink*
-magazine_cache_pop_magazine (guint ix,
- gsize *countp)
-{
- g_mutex_lock_a (&allocator->magazine_mutex, &allocator->contention_counters[ix]);
- if (!allocator->magazines[ix])
- {
- guint magazine_threshold = allocator_get_magazine_threshold (allocator, ix);
- gsize i, chunk_size = SLAB_CHUNK_SIZE (allocator, ix);
- ChunkLink *chunk, *head;
- g_mutex_unlock (&allocator->magazine_mutex);
- g_mutex_lock (&allocator->slab_mutex);
- head = slab_allocator_alloc_chunk (chunk_size);
- head->data = NULL;
- chunk = head;
- for (i = 1; i < magazine_threshold; i++)
- {
- chunk->next = slab_allocator_alloc_chunk (chunk_size);
- chunk = chunk->next;
- chunk->data = NULL;
- }
- chunk->next = NULL;
- g_mutex_unlock (&allocator->slab_mutex);
- *countp = i;
- return head;
- }
- else
- {
- ChunkLink *current = allocator->magazines[ix];
- ChunkLink *prev = magazine_chain_prev (current);
- ChunkLink *next = magazine_chain_next (current);
- /* unlink */
- magazine_chain_next (prev) = next;
- magazine_chain_prev (next) = prev;
- allocator->magazines[ix] = next == current ? NULL : next;
- g_mutex_unlock (&allocator->magazine_mutex);
- /* clear special fields and hand out */
- *countp = (gsize) magazine_chain_count (current);
- magazine_chain_prev (current) = NULL;
- magazine_chain_next (current) = NULL;
- magazine_chain_count (current) = NULL;
- magazine_chain_stamp (current) = NULL;
- return current;
- }
-}
-
-/* --- thread magazines --- */
-static void
-private_thread_memory_cleanup (gpointer data)
-{
- ThreadMemory *tmem = data;
- const guint n_magazines = MAX_SLAB_INDEX (allocator);
- guint ix;
- for (ix = 0; ix < n_magazines; ix++)
- {
- Magazine *mags[2];
- guint j;
- mags[0] = &tmem->magazine1[ix];
- mags[1] = &tmem->magazine2[ix];
- for (j = 0; j < 2; j++)
- {
- Magazine *mag = mags[j];
- if (mag->count >= MIN_MAGAZINE_SIZE)
- magazine_cache_push_magazine (ix, mag->chunks, mag->count);
- else
- {
- const gsize chunk_size = SLAB_CHUNK_SIZE (allocator, ix);
- g_mutex_lock (&allocator->slab_mutex);
- while (mag->chunks)
- {
- ChunkLink *chunk = magazine_chain_pop_head (&mag->chunks);
- slab_allocator_free_chunk (chunk_size, chunk);
- }
- g_mutex_unlock (&allocator->slab_mutex);
- }
- }
- }
- g_free (tmem);
-}
-
-static void
-thread_memory_magazine1_reload (ThreadMemory *tmem,
- guint ix)
-{
- Magazine *mag = &tmem->magazine1[ix];
- mem_assert (mag->chunks == NULL); /* ensure that we may reset mag->count */
- mag->count = 0;
- mag->chunks = magazine_cache_pop_magazine (ix, &mag->count);
-}
-
-static void
-thread_memory_magazine2_unload (ThreadMemory *tmem,
- guint ix)
-{
- Magazine *mag = &tmem->magazine2[ix];
- magazine_cache_push_magazine (ix, mag->chunks, mag->count);
- mag->chunks = NULL;
- mag->count = 0;
-}
-
-static inline void
-thread_memory_swap_magazines (ThreadMemory *tmem,
- guint ix)
-{
- Magazine xmag = tmem->magazine1[ix];
- tmem->magazine1[ix] = tmem->magazine2[ix];
- tmem->magazine2[ix] = xmag;
-}
-
-static inline gboolean
-thread_memory_magazine1_is_empty (ThreadMemory *tmem,
- guint ix)
-{
- return tmem->magazine1[ix].chunks == NULL;
-}
-
-static inline gboolean
-thread_memory_magazine2_is_full (ThreadMemory *tmem,
- guint ix)
-{
- return tmem->magazine2[ix].count >= allocator_get_magazine_threshold (allocator, ix);
-}
-
-static inline gpointer
-thread_memory_magazine1_alloc (ThreadMemory *tmem,
- guint ix)
-{
- Magazine *mag = &tmem->magazine1[ix];
- ChunkLink *chunk = magazine_chain_pop_head (&mag->chunks);
- if (G_LIKELY (mag->count > 0))
- mag->count--;
- return chunk;
-}
-
-static inline void
-thread_memory_magazine2_free (ThreadMemory *tmem,
- guint ix,
- gpointer mem)
-{
- Magazine *mag = &tmem->magazine2[ix];
- ChunkLink *chunk = mem;
- chunk->data = NULL;
- chunk->next = mag->chunks;
- mag->chunks = chunk;
- mag->count++;
+ /* deprecated, no implementation */
+ return NULL;
}
/* --- API functions --- */
@@ -915,13 +125,14 @@ thread_memory_magazine2_free (ThreadMemory *tmem,
*
* It calls g_slice_alloc() with `sizeof (@type)` and casts the
* returned pointer to a pointer of the given type, avoiding a type
- * cast in the source code. Note that the underlying slice allocation
- * mechanism can be changed with the [`G_SLICE=always-malloc`][G_SLICE]
- * environment variable.
+ * cast in the source code.
*
* This can never return %NULL as the minimum allocation size from
* `sizeof (@type)` is 1 byte.
*
+ * Since GLib 2.76 this always uses the system malloc() implementation
+ * internally.
+ *
* Returns: (not nullable): a pointer to the allocated block, cast to a pointer
* to @type
*
@@ -938,13 +149,13 @@ thread_memory_magazine2_free (ThreadMemory *tmem,
* It calls g_slice_alloc0() with `sizeof (@type)`
* and casts the returned pointer to a pointer of the given type,
* avoiding a type cast in the source code.
- * Note that the underlying slice allocation mechanism can
- * be changed with the [`G_SLICE=always-malloc`][G_SLICE]
- * environment variable.
*
* This can never return %NULL as the minimum allocation size from
* `sizeof (@type)` is 1 byte.
*
+ * Since GLib 2.76 this always uses the system malloc() implementation
+ * internally.
+ *
* Returns: (not nullable): a pointer to the allocated block, cast to a pointer
* to @type
*
@@ -962,12 +173,12 @@ thread_memory_magazine2_free (ThreadMemory *tmem,
* It calls g_slice_copy() with `sizeof (@type)`
* and casts the returned pointer to a pointer of the given type,
* avoiding a type cast in the source code.
- * Note that the underlying slice allocation mechanism can
- * be changed with the [`G_SLICE=always-malloc`][G_SLICE]
- * environment variable.
*
* This can never return %NULL.
*
+ * Since GLib 2.76 this always uses the system malloc() implementation
+ * internally.
+ *
* Returns: (not nullable): a pointer to the allocated block, cast to a pointer
* to @type
*
@@ -977,7 +188,7 @@ thread_memory_magazine2_free (ThreadMemory *tmem,
/**
* g_slice_free:
* @type: the type of the block to free, typically a structure name
- * @mem: a pointer to the block to free
+ * @mem: (nullable): a pointer to the block to free
*
* A convenience macro to free a block of memory that has
* been allocated from the slice allocator.
@@ -985,18 +196,19 @@ thread_memory_magazine2_free (ThreadMemory *tmem,
* It calls g_slice_free1() using `sizeof (type)`
* as the block size.
* Note that the exact release behaviour can be changed with the
- * [`G_DEBUG=gc-friendly`][G_DEBUG] environment variable, also see
- * [`G_SLICE`][G_SLICE] for related debugging options.
+ * [`G_DEBUG=gc-friendly`][G_DEBUG] environment variable.
*
* If @mem is %NULL, this macro does nothing.
*
+ * Since GLib 2.76 this always uses the system free() implementation internally.
+ *
* Since: 2.10
*/
/**
* g_slice_free_chain:
* @type: the type of the @mem_chain blocks
- * @mem_chain: a pointer to the first block of the chain
+ * @mem_chain: (nullable): a pointer to the first block of the chain
* @next: the field name of the next pointer in @type
*
* Frees a linked list of memory blocks of structure type @type.
@@ -1006,11 +218,12 @@ thread_memory_magazine2_free (ThreadMemory *tmem,
* a @next pointer (similar to #GSList). The name of the
* @next field in @type is passed as third argument.
* Note that the exact release behaviour can be changed with the
- * [`G_DEBUG=gc-friendly`][G_DEBUG] environment variable, also see
- * [`G_SLICE`][G_SLICE] for related debugging options.
+ * [`G_DEBUG=gc-friendly`][G_DEBUG] environment variable.
*
* If @mem_chain is %NULL, this function does nothing.
*
+ * Since GLib 2.76 this always uses the system free() implementation internally.
+ *
* Since: 2.10
*/
@@ -1018,19 +231,15 @@ thread_memory_magazine2_free (ThreadMemory *tmem,
* g_slice_alloc:
* @block_size: the number of bytes to allocate
*
- * Allocates a block of memory from the slice allocator.
+ * Allocates a block of memory from the libc allocator.
*
* The block address handed out can be expected to be aligned
- * to at least `1 * sizeof (void*)`, though in general slices
- * are `2 * sizeof (void*)` bytes aligned; if a `malloc()`
- * fallback implementation is used instead, the alignment may
- * be reduced in a libc dependent fashion.
+ * to at least `1 * sizeof (void*)`.
*
- * Note that the underlying slice allocation mechanism can
- * be changed with the [`G_SLICE=always-malloc`][G_SLICE]
- * environment variable.
+ * Since GLib 2.76 this always uses the system malloc() implementation
+ * internally.
*
- * Returns: a pointer to the allocated memory block, which will
+ * Returns: (nullable): a pointer to the allocated memory block, which will
* be %NULL if and only if @mem_size is 0
*
* Since: 2.10
@@ -1038,43 +247,9 @@ thread_memory_magazine2_free (ThreadMemory *tmem,
gpointer
g_slice_alloc (gsize mem_size)
{
- ThreadMemory *tmem;
- gsize chunk_size;
gpointer mem;
- guint acat;
-
- /* This gets the private structure for this thread. If the private
- * structure does not yet exist, it is created.
- *
- * This has a side effect of causing GSlice to be initialised, so it
- * must come first.
- */
- tmem = thread_memory_from_self ();
-
- chunk_size = P2ALIGN (mem_size);
- acat = allocator_categorize (chunk_size);
- if (G_LIKELY (acat == 1)) /* allocate through magazine layer */
- {
- guint ix = SLAB_INDEX (allocator, chunk_size);
- if (G_UNLIKELY (thread_memory_magazine1_is_empty (tmem, ix)))
- {
- thread_memory_swap_magazines (tmem, ix);
- if (G_UNLIKELY (thread_memory_magazine1_is_empty (tmem, ix)))
- thread_memory_magazine1_reload (tmem, ix);
- }
- mem = thread_memory_magazine1_alloc (tmem, ix);
- }
- else if (acat == 2) /* allocate through slab allocator */
- {
- g_mutex_lock (&allocator->slab_mutex);
- mem = slab_allocator_alloc_chunk (chunk_size);
- g_mutex_unlock (&allocator->slab_mutex);
- }
- else /* delegate to system malloc */
- mem = g_malloc (mem_size);
- if (G_UNLIKELY (allocator->config.debug_blocks))
- smc_notify_alloc (mem, mem_size);
+ mem = g_malloc (mem_size);
TRACE (GLIB_SLICE_ALLOC((void*)mem, mem_size));
return mem;
@@ -1085,12 +260,13 @@ g_slice_alloc (gsize mem_size)
* @block_size: the number of bytes to allocate
*
* Allocates a block of memory via g_slice_alloc() and initializes
- * the returned memory to 0. Note that the underlying slice allocation
- * mechanism can be changed with the [`G_SLICE=always-malloc`][G_SLICE]
- * environment variable.
+ * the returned memory to 0.
+ *
+ * Since GLib 2.76 this always uses the system malloc() implementation
+ * internally.
*
- * Returns: a pointer to the allocated block, which will be %NULL if and only
- * if @mem_size is 0
+ * Returns: (nullable): a pointer to the allocated block, which will be %NULL
+ * if and only if @mem_size is 0
*
* Since: 2.10
*/
@@ -1113,8 +289,11 @@ g_slice_alloc0 (gsize mem_size)
*
* @mem_block must be non-%NULL if @block_size is non-zero.
*
- * Returns: a pointer to the allocated memory block, which will be %NULL if and
- * only if @mem_size is 0
+ * Since GLib 2.76 this always uses the system malloc() implementation
+ * internally.
+ *
+ * Returns: (nullable): a pointer to the allocated memory block,
+ * which will be %NULL if and only if @mem_size is 0
*
* Since: 2.14
*/
@@ -1131,7 +310,7 @@ g_slice_copy (gsize mem_size,
/**
* g_slice_free1:
* @block_size: the size of the block
- * @mem_block: a pointer to the block to free
+ * @mem_block: (nullable): a pointer to the block to free
*
* Frees a block of memory.
*
@@ -1139,58 +318,29 @@ g_slice_copy (gsize mem_size,
* g_slice_alloc0() and the @block_size has to match the size
* specified upon allocation. Note that the exact release behaviour
* can be changed with the [`G_DEBUG=gc-friendly`][G_DEBUG] environment
- * variable, also see [`G_SLICE`][G_SLICE] for related debugging options.
+ * variable.
*
* If @mem_block is %NULL, this function does nothing.
*
+ * Since GLib 2.76 this always uses the system free_sized() implementation
+ * internally.
+ *
* Since: 2.10
*/
void
g_slice_free1 (gsize mem_size,
gpointer mem_block)
{
- gsize chunk_size = P2ALIGN (mem_size);
- guint acat = allocator_categorize (chunk_size);
- if (G_UNLIKELY (!mem_block))
- return;
- if (G_UNLIKELY (allocator->config.debug_blocks) &&
- !smc_notify_free (mem_block, mem_size))
- abort();
- if (G_LIKELY (acat == 1)) /* allocate through magazine layer */
- {
- ThreadMemory *tmem = thread_memory_from_self();
- guint ix = SLAB_INDEX (allocator, chunk_size);
- if (G_UNLIKELY (thread_memory_magazine2_is_full (tmem, ix)))
- {
- thread_memory_swap_magazines (tmem, ix);
- if (G_UNLIKELY (thread_memory_magazine2_is_full (tmem, ix)))
- thread_memory_magazine2_unload (tmem, ix);
- }
- if (G_UNLIKELY (g_mem_gc_friendly))
- memset (mem_block, 0, chunk_size);
- thread_memory_magazine2_free (tmem, ix, mem_block);
- }
- else if (acat == 2) /* allocate through slab allocator */
- {
- if (G_UNLIKELY (g_mem_gc_friendly))
- memset (mem_block, 0, chunk_size);
- g_mutex_lock (&allocator->slab_mutex);
- slab_allocator_free_chunk (chunk_size, mem_block);
- g_mutex_unlock (&allocator->slab_mutex);
- }
- else /* delegate to system malloc */
- {
- if (G_UNLIKELY (g_mem_gc_friendly))
- memset (mem_block, 0, mem_size);
- g_free (mem_block);
- }
+ if (G_UNLIKELY (g_mem_gc_friendly && mem_block))
+ memset (mem_block, 0, mem_size);
+ g_free_sized (mem_block, mem_size);
TRACE (GLIB_SLICE_FREE((void*)mem_block, mem_size));
}
/**
* g_slice_free_chain_with_offset:
* @block_size: the size of the blocks
- * @mem_chain: a pointer to the first block of the chain
+ * @mem_chain: (nullable): a pointer to the first block of the chain
* @next_offset: the offset of the @next field in the blocks
*
* Frees a linked list of memory blocks of structure type @type.
@@ -1200,11 +350,13 @@ g_slice_free1 (gsize mem_size,
* @next pointer (similar to #GSList). The offset of the @next
* field in each block is passed as third argument.
* Note that the exact release behaviour can be changed with the
- * [`G_DEBUG=gc-friendly`][G_DEBUG] environment variable, also see
- * [`G_SLICE`][G_SLICE] for related debugging options.
+ * [`G_DEBUG=gc-friendly`][G_DEBUG] environment variable.
*
* If @mem_chain is %NULL, this function does nothing.
*
+ * Since GLib 2.76 this always uses the system free_sized() implementation
+ * internally.
+ *
* Since: 2.10
*/
void
@@ -1213,589 +365,20 @@ g_slice_free_chain_with_offset (gsize mem_size,
gsize next_offset)
{
gpointer slice = mem_chain;
- /* while the thread magazines and the magazine cache are implemented so that
- * they can easily be extended to allow for free lists containing more free
- * lists for the first level nodes, which would allow O(1) freeing in this
- * function, the benefit of such an extension is questionable, because:
- * - the magazine size counts will become mere lower bounds which confuses
- * the code adapting to lock contention;
- * - freeing a single node to the thread magazines is very fast, so this
- * O(list_length) operation is multiplied by a fairly small factor;
- * - memory usage histograms on larger applications seem to indicate that
- * the amount of released multi node lists is negligible in comparison
- * to single node releases.
- * - the major performance bottle neck, namely g_private_get() or
- * g_mutex_lock()/g_mutex_unlock() has already been moved out of the
- * inner loop for freeing chained slices.
- */
- gsize chunk_size = P2ALIGN (mem_size);
- guint acat = allocator_categorize (chunk_size);
- if (G_LIKELY (acat == 1)) /* allocate through magazine layer */
- {
- ThreadMemory *tmem = thread_memory_from_self();
- guint ix = SLAB_INDEX (allocator, chunk_size);
- while (slice)
- {
- guint8 *current = slice;
- slice = *(gpointer*) (current + next_offset);
- if (G_UNLIKELY (allocator->config.debug_blocks) &&
- !smc_notify_free (current, mem_size))
- abort();
- if (G_UNLIKELY (thread_memory_magazine2_is_full (tmem, ix)))
- {
- thread_memory_swap_magazines (tmem, ix);
- if (G_UNLIKELY (thread_memory_magazine2_is_full (tmem, ix)))
- thread_memory_magazine2_unload (tmem, ix);
- }
- if (G_UNLIKELY (g_mem_gc_friendly))
- memset (current, 0, chunk_size);
- thread_memory_magazine2_free (tmem, ix, current);
- }
- }
- else if (acat == 2) /* allocate through slab allocator */
+ while (slice)
{
- g_mutex_lock (&allocator->slab_mutex);
- while (slice)
- {
- guint8 *current = slice;
- slice = *(gpointer*) (current + next_offset);
- if (G_UNLIKELY (allocator->config.debug_blocks) &&
- !smc_notify_free (current, mem_size))
- abort();
- if (G_UNLIKELY (g_mem_gc_friendly))
- memset (current, 0, chunk_size);
- slab_allocator_free_chunk (chunk_size, current);
- }
- g_mutex_unlock (&allocator->slab_mutex);
- }
- else /* delegate to system malloc */
- while (slice)
- {
- guint8 *current = slice;
- slice = *(gpointer*) (current + next_offset);
- if (G_UNLIKELY (allocator->config.debug_blocks) &&
- !smc_notify_free (current, mem_size))
- abort();
- if (G_UNLIKELY (g_mem_gc_friendly))
- memset (current, 0, mem_size);
- g_free (current);
- }
-}
-
-/* --- single page allocator --- */
-static void
-allocator_slab_stack_push (Allocator *local_allocator,
- guint ix,
- SlabInfo *sinfo)
-{
- /* insert slab at slab ring head */
- if (!local_allocator->slab_stack[ix])
- {
- sinfo->next = sinfo;
- sinfo->prev = sinfo;
- }
- else
- {
- SlabInfo *next = local_allocator->slab_stack[ix], *prev = next->prev;
- next->prev = sinfo;
- prev->next = sinfo;
- sinfo->next = next;
- sinfo->prev = prev;
- }
- local_allocator->slab_stack[ix] = sinfo;
-}
-
-static gsize
-allocator_aligned_page_size (Allocator *local_allocator,
- gsize n_bytes)
-{
- gsize val = (gsize) 1 << g_bit_storage (n_bytes - 1);
- val = MAX (val, local_allocator->min_page_size);
- return val;
-}
-
-static void
-allocator_add_slab (Allocator *local_allocator,
- guint ix,
- gsize chunk_size)
-{
- ChunkLink *chunk;
- SlabInfo *sinfo;
- gsize addr, padding, n_chunks, color = 0;
- gsize page_size;
- int errsv;
- gpointer aligned_memory;
- guint8 *mem;
- guint i;
-
- page_size = allocator_aligned_page_size (local_allocator, SLAB_BPAGE_SIZE (local_allocator, chunk_size));
- /* allocate 1 page for the chunks and the slab */
- aligned_memory = allocator_memalign (page_size, page_size - NATIVE_MALLOC_PADDING);
- errsv = errno;
- mem = aligned_memory;
-
- if (!mem)
- {
- const gchar *syserr = strerror (errsv);
- mem_error ("failed to allocate %u bytes (alignment: %u): %s\n",
- (guint) (page_size - NATIVE_MALLOC_PADDING), (guint) page_size, syserr);
- }
- /* mask page address */
- addr = ((gsize) mem / page_size) * page_size;
- /* assert alignment */
- mem_assert (aligned_memory == (gpointer) addr);
- /* basic slab info setup */
- sinfo = (SlabInfo*) (mem + page_size - SLAB_INFO_SIZE);
- sinfo->n_allocated = 0;
- sinfo->chunks = NULL;
- /* figure cache colorization */
- n_chunks = ((guint8*) sinfo - mem) / chunk_size;
- padding = ((guint8*) sinfo - mem) - n_chunks * chunk_size;
- if (padding)
- {
- color = (local_allocator->color_accu * P2ALIGNMENT) % padding;
- local_allocator->color_accu += local_allocator->config.color_increment;
- }
- /* add chunks to free list */
- chunk = (ChunkLink*) (mem + color);
- sinfo->chunks = chunk;
- for (i = 0; i < n_chunks - 1; i++)
- {
- chunk->next = (ChunkLink*) ((guint8*) chunk + chunk_size);
- chunk = chunk->next;
- }
- chunk->next = NULL; /* last chunk */
- /* add slab to slab ring */
- allocator_slab_stack_push (local_allocator, ix, sinfo);
-}
-
-static gpointer
-slab_allocator_alloc_chunk (gsize chunk_size)
-{
- ChunkLink *chunk;
- guint ix = SLAB_INDEX (allocator, chunk_size);
- /* ensure non-empty slab */
- if (!allocator->slab_stack[ix] || !allocator->slab_stack[ix]->chunks)
- allocator_add_slab (allocator, ix, chunk_size);
- /* allocate chunk */
- chunk = allocator->slab_stack[ix]->chunks;
- allocator->slab_stack[ix]->chunks = chunk->next;
- allocator->slab_stack[ix]->n_allocated++;
- /* rotate empty slabs */
- if (!allocator->slab_stack[ix]->chunks)
- allocator->slab_stack[ix] = allocator->slab_stack[ix]->next;
- return chunk;
-}
-
-static void
-slab_allocator_free_chunk (gsize chunk_size,
- gpointer mem)
-{
- ChunkLink *chunk;
- gboolean was_empty;
- guint ix = SLAB_INDEX (allocator, chunk_size);
- gsize page_size = allocator_aligned_page_size (allocator, SLAB_BPAGE_SIZE (allocator, chunk_size));
- gsize addr = ((gsize) mem / page_size) * page_size;
- /* mask page address */
- guint8 *page = (guint8*) addr;
- SlabInfo *sinfo = (SlabInfo*) (page + page_size - SLAB_INFO_SIZE);
- /* assert valid chunk count */
- mem_assert (sinfo->n_allocated > 0);
- /* add chunk to free list */
- was_empty = sinfo->chunks == NULL;
- chunk = (ChunkLink*) mem;
- chunk->next = sinfo->chunks;
- sinfo->chunks = chunk;
- sinfo->n_allocated--;
- /* keep slab ring partially sorted, empty slabs at end */
- if (was_empty)
- {
- /* unlink slab */
- SlabInfo *next = sinfo->next, *prev = sinfo->prev;
- next->prev = prev;
- prev->next = next;
- if (allocator->slab_stack[ix] == sinfo)
- allocator->slab_stack[ix] = next == sinfo ? NULL : next;
- /* insert slab at head */
- allocator_slab_stack_push (allocator, ix, sinfo);
- }
- /* eagerly free complete unused slabs */
- if (!sinfo->n_allocated)
- {
- /* unlink slab */
- SlabInfo *next = sinfo->next, *prev = sinfo->prev;
- next->prev = prev;
- prev->next = next;
- if (allocator->slab_stack[ix] == sinfo)
- allocator->slab_stack[ix] = next == sinfo ? NULL : next;
- /* free slab */
- allocator_memfree (page_size, page);
- }
-}
-
-/* --- memalign implementation --- */
-#ifdef HAVE_MALLOC_H
-#include <malloc.h> /* memalign() */
-#endif
-
-/* from config.h:
- * define HAVE_POSIX_MEMALIGN 1 // if free(posix_memalign(3)) works, <stdlib.h>
- * define HAVE_MEMALIGN 1 // if free(memalign(3)) works, <malloc.h>
- * define HAVE_VALLOC 1 // if free(valloc(3)) works, <stdlib.h> or <malloc.h>
- * if none is provided, we implement malloc(3)-based alloc-only page alignment
- */
-
-#if !(HAVE_POSIX_MEMALIGN || HAVE_MEMALIGN || HAVE_VALLOC)
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-static GTrashStack *compat_valloc_trash = NULL;
-G_GNUC_END_IGNORE_DEPRECATIONS
-#endif
-
-static gpointer
-allocator_memalign (gsize alignment,
- gsize memsize)
-{
- gpointer aligned_memory = NULL;
- gint err = ENOMEM;
-#if HAVE_POSIX_MEMALIGN
- err = posix_memalign (&aligned_memory, alignment, memsize);
-#elif HAVE_MEMALIGN
- errno = 0;
- aligned_memory = memalign (alignment, memsize);
- err = errno;
-#elif HAVE_VALLOC
- errno = 0;
- aligned_memory = valloc (memsize);
- err = errno;
-#else
- /* simplistic non-freeing page allocator */
- mem_assert (alignment == sys_page_size);
- mem_assert (memsize <= sys_page_size);
- if (!compat_valloc_trash)
- {
- const guint n_pages = 16;
- guint8 *mem = malloc (n_pages * sys_page_size);
- err = errno;
- if (mem)
- {
- gint i = n_pages;
- guint8 *amem = (guint8*) ALIGN ((gsize) mem, sys_page_size);
- if (amem != mem)
- i--; /* mem wasn't page aligned */
- G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- while (--i >= 0)
- g_trash_stack_push (&compat_valloc_trash, amem + i * sys_page_size);
- G_GNUC_END_IGNORE_DEPRECATIONS
- }
- }
- G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- aligned_memory = g_trash_stack_pop (&compat_valloc_trash);
- G_GNUC_END_IGNORE_DEPRECATIONS
-#endif
- if (!aligned_memory)
- errno = err;
- return aligned_memory;
-}
-
-static void
-allocator_memfree (gsize memsize,
- gpointer mem)
-{
-#if HAVE_POSIX_MEMALIGN || HAVE_MEMALIGN || HAVE_VALLOC
- free (mem);
-#else
- mem_assert (memsize <= sys_page_size);
- G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- g_trash_stack_push (&compat_valloc_trash, mem);
- G_GNUC_END_IGNORE_DEPRECATIONS
-#endif
-}
-
-static void
-mem_error (const char *format,
- ...)
-{
- const char *pname;
- va_list args;
- /* at least, put out "MEMORY-ERROR", in case we segfault during the rest of the function */
- fputs ("\n***MEMORY-ERROR***: ", stderr);
- pname = g_get_prgname();
- g_fprintf (stderr, "%s[%ld]: GSlice: ", pname ? pname : "", (long)getpid());
- va_start (args, format);
- g_vfprintf (stderr, format, args);
- va_end (args);
- fputs ("\n", stderr);
- abort();
- _exit (1);
-}
-
-/* --- g-slice memory checker tree --- */
-typedef size_t SmcKType; /* key type */
-typedef size_t SmcVType; /* value type */
-typedef struct {
- SmcKType key;
- SmcVType value;
-} SmcEntry;
-static void smc_tree_insert (SmcKType key,
- SmcVType value);
-static gboolean smc_tree_lookup (SmcKType key,
- SmcVType *value_p);
-static gboolean smc_tree_remove (SmcKType key);
-
-
-/* --- g-slice memory checker implementation --- */
-static void
-smc_notify_alloc (void *pointer,
- size_t size)
-{
- size_t address = (size_t) pointer;
- if (pointer)
- smc_tree_insert (address, size);
-}
-
-#if 0
-static void
-smc_notify_ignore (void *pointer)
-{
- size_t address = (size_t) pointer;
- if (pointer)
- smc_tree_remove (address);
-}
-#endif
-
-static int
-smc_notify_free (void *pointer,
- size_t size)
-{
- size_t address = (size_t) pointer;
- SmcVType real_size;
- gboolean found_one;
-
- if (!pointer)
- return 1; /* ignore */
- found_one = smc_tree_lookup (address, &real_size);
- if (!found_one)
- {
- g_fprintf (stderr, "GSlice: MemChecker: attempt to release non-allocated block: %p size=%" G_GSIZE_FORMAT "\n", pointer, size);
- return 0;
- }
- if (real_size != size && (real_size || size))
- {
- g_fprintf (stderr, "GSlice: MemChecker: attempt to release block with invalid size: %p size=%" G_GSIZE_FORMAT " invalid-size=%" G_GSIZE_FORMAT "\n", pointer, real_size, size);
- return 0;
- }
- if (!smc_tree_remove (address))
- {
- g_fprintf (stderr, "GSlice: MemChecker: attempt to release non-allocated block: %p size=%" G_GSIZE_FORMAT "\n", pointer, size);
- return 0;
- }
- return 1; /* all fine */
-}
-
-/* --- g-slice memory checker tree implementation --- */
-#define SMC_TRUNK_COUNT (4093 /* 16381 */) /* prime, to distribute trunk collisions (big, allocated just once) */
-#define SMC_BRANCH_COUNT (511) /* prime, to distribute branch collisions */
-#define SMC_TRUNK_EXTENT (SMC_BRANCH_COUNT * 2039) /* key address space per trunk, should distribute uniformly across BRANCH_COUNT */
-#define SMC_TRUNK_HASH(k) ((k / SMC_TRUNK_EXTENT) % SMC_TRUNK_COUNT) /* generate new trunk hash per megabyte (roughly) */
-#define SMC_BRANCH_HASH(k) (k % SMC_BRANCH_COUNT)
-
-typedef struct {
- SmcEntry *entries;
- unsigned int n_entries;
-} SmcBranch;
-
-static SmcBranch **smc_tree_root = NULL;
-
-static void
-smc_tree_abort (int errval)
-{
- const char *syserr = strerror (errval);
- mem_error ("MemChecker: failure in debugging tree: %s", syserr);
-}
-
-static inline SmcEntry*
-smc_tree_branch_grow_L (SmcBranch *branch,
- unsigned int index)
-{
- unsigned int old_size = branch->n_entries * sizeof (branch->entries[0]);
- unsigned int new_size = old_size + sizeof (branch->entries[0]);
- SmcEntry *entry;
- mem_assert (index <= branch->n_entries);
- branch->entries = (SmcEntry*) realloc (branch->entries, new_size);
- if (!branch->entries)
- smc_tree_abort (errno);
- entry = branch->entries + index;
- memmove (entry + 1, entry, (branch->n_entries - index) * sizeof (entry[0]));
- branch->n_entries += 1;
- return entry;
-}
-
-static inline SmcEntry*
-smc_tree_branch_lookup_nearest_L (SmcBranch *branch,
- SmcKType key)
-{
- unsigned int n_nodes = branch->n_entries, offs = 0;
- SmcEntry *check = branch->entries;
- int cmp = 0;
- while (offs < n_nodes)
- {
- unsigned int i = (offs + n_nodes) >> 1;
- check = branch->entries + i;
- cmp = key < check->key ? -1 : key != check->key;
- if (cmp == 0)
- return check; /* return exact match */
- else if (cmp < 0)
- n_nodes = i;
- else /* (cmp > 0) */
- offs = i + 1;
- }
- /* check points at last mismatch, cmp > 0 indicates greater key */
- return cmp > 0 ? check + 1 : check; /* return insertion position for inexact match */
-}
-
-static void
-smc_tree_insert (SmcKType key,
- SmcVType value)
-{
- unsigned int ix0, ix1;
- SmcEntry *entry;
-
- g_mutex_lock (&smc_tree_mutex);
- ix0 = SMC_TRUNK_HASH (key);
- ix1 = SMC_BRANCH_HASH (key);
- if (!smc_tree_root)
- {
- smc_tree_root = calloc (SMC_TRUNK_COUNT, sizeof (smc_tree_root[0]));
- if (!smc_tree_root)
- smc_tree_abort (errno);
- }
- if (!smc_tree_root[ix0])
- {
- smc_tree_root[ix0] = calloc (SMC_BRANCH_COUNT, sizeof (smc_tree_root[0][0]));
- if (!smc_tree_root[ix0])
- smc_tree_abort (errno);
- }
- entry = smc_tree_branch_lookup_nearest_L (&smc_tree_root[ix0][ix1], key);
- if (!entry || /* need create */
- entry >= smc_tree_root[ix0][ix1].entries + smc_tree_root[ix0][ix1].n_entries || /* need append */
- entry->key != key) /* need insert */
- entry = smc_tree_branch_grow_L (&smc_tree_root[ix0][ix1], entry - smc_tree_root[ix0][ix1].entries);
- entry->key = key;
- entry->value = value;
- g_mutex_unlock (&smc_tree_mutex);
-}
-
-static gboolean
-smc_tree_lookup (SmcKType key,
- SmcVType *value_p)
-{
- SmcEntry *entry = NULL;
- unsigned int ix0 = SMC_TRUNK_HASH (key), ix1 = SMC_BRANCH_HASH (key);
- gboolean found_one = FALSE;
- *value_p = 0;
- g_mutex_lock (&smc_tree_mutex);
- if (smc_tree_root && smc_tree_root[ix0])
- {
- entry = smc_tree_branch_lookup_nearest_L (&smc_tree_root[ix0][ix1], key);
- if (entry &&
- entry < smc_tree_root[ix0][ix1].entries + smc_tree_root[ix0][ix1].n_entries &&
- entry->key == key)
- {
- found_one = TRUE;
- *value_p = entry->value;
- }
- }
- g_mutex_unlock (&smc_tree_mutex);
- return found_one;
-}
-
-static gboolean
-smc_tree_remove (SmcKType key)
-{
- unsigned int ix0 = SMC_TRUNK_HASH (key), ix1 = SMC_BRANCH_HASH (key);
- gboolean found_one = FALSE;
- g_mutex_lock (&smc_tree_mutex);
- if (smc_tree_root && smc_tree_root[ix0])
- {
- SmcEntry *entry = smc_tree_branch_lookup_nearest_L (&smc_tree_root[ix0][ix1], key);
- if (entry &&
- entry < smc_tree_root[ix0][ix1].entries + smc_tree_root[ix0][ix1].n_entries &&
- entry->key == key)
- {
- unsigned int i = entry - smc_tree_root[ix0][ix1].entries;
- smc_tree_root[ix0][ix1].n_entries -= 1;
- memmove (entry, entry + 1, (smc_tree_root[ix0][ix1].n_entries - i) * sizeof (entry[0]));
- if (!smc_tree_root[ix0][ix1].n_entries)
- {
- /* avoid useless pressure on the memory system */
- free (smc_tree_root[ix0][ix1].entries);
- smc_tree_root[ix0][ix1].entries = NULL;
- }
- found_one = TRUE;
- }
+ guint8 *current = slice;
+ slice = *(gpointer *) (current + next_offset);
+ if (G_UNLIKELY (g_mem_gc_friendly))
+ memset (current, 0, mem_size);
+ g_free_sized (current, mem_size);
}
- g_mutex_unlock (&smc_tree_mutex);
- return found_one;
}
#ifdef G_ENABLE_DEBUG
void
g_slice_debug_tree_statistics (void)
{
- g_mutex_lock (&smc_tree_mutex);
- if (smc_tree_root)
- {
- unsigned int i, j, t = 0, o = 0, b = 0, su = 0, ex = 0, en = 4294967295u;
- double tf, bf;
- for (i = 0; i < SMC_TRUNK_COUNT; i++)
- if (smc_tree_root[i])
- {
- t++;
- for (j = 0; j < SMC_BRANCH_COUNT; j++)
- if (smc_tree_root[i][j].n_entries)
- {
- b++;
- su += smc_tree_root[i][j].n_entries;
- en = MIN (en, smc_tree_root[i][j].n_entries);
- ex = MAX (ex, smc_tree_root[i][j].n_entries);
- }
- else if (smc_tree_root[i][j].entries)
- o++; /* formerly used, now empty */
- }
- en = b ? en : 0;
- tf = MAX (t, 1.0); /* max(1) to be a valid divisor */
- bf = MAX (b, 1.0); /* max(1) to be a valid divisor */
- g_fprintf (stderr, "GSlice: MemChecker: %u trunks, %u branches, %u old branches\n", t, b, o);
- g_fprintf (stderr, "GSlice: MemChecker: %f branches per trunk, %.2f%% utilization\n",
- b / tf,
- 100.0 - (SMC_BRANCH_COUNT - b / tf) / (0.01 * SMC_BRANCH_COUNT));
- g_fprintf (stderr, "GSlice: MemChecker: %f entries per branch, %u minimum, %u maximum\n",
- su / bf, en, ex);
- }
- else
- g_fprintf (stderr, "GSlice: MemChecker: root=NULL\n");
- g_mutex_unlock (&smc_tree_mutex);
-
- /* sample statistics (beast + GSLice + 24h scripted core & GUI activity):
- * PID %CPU %MEM VSZ RSS COMMAND
- * 8887 30.3 45.8 456068 414856 beast-0.7.1 empty.bse
- * $ cat /proc/8887/statm # total-program-size resident-set-size shared-pages text/code data/stack library dirty-pages
- * 114017 103714 2354 344 0 108676 0
- * $ cat /proc/8887/status
- * Name: beast-0.7.1
- * VmSize: 456068 kB
- * VmLck: 0 kB
- * VmRSS: 414856 kB
- * VmData: 434620 kB
- * VmStk: 84 kB
- * VmExe: 1376 kB
- * VmLib: 13036 kB
- * VmPTE: 456 kB
- * Threads: 3
- * (gdb) print g_slice_debug_tree_statistics ()
- * GSlice: MemChecker: 422 trunks, 213068 branches, 0 old branches
- * GSlice: MemChecker: 504.900474 branches per trunk, 98.81% utilization
- * GSlice: MemChecker: 4.965039 entries per branch, 1 minimum, 37 maximum
- */
+ g_fprintf (stderr, "GSlice: Implementation dropped in GLib 2.76\n");
}
#endif /* G_ENABLE_DEBUG */
diff --git a/glib/gspawn-private.h b/glib/gspawn-private.h
index 400c173cf..64d3c8150 100644
--- a/glib/gspawn-private.h
+++ b/glib/gspawn-private.h
@@ -24,6 +24,7 @@
#include <errno.h>
+#include "glibintl.h"
#include "gspawn.h"
static inline gint
@@ -115,3 +116,24 @@ _g_spawn_exec_err_to_g_error (gint en)
return G_SPAWN_ERROR_FAILED;
}
}
+
+static inline gboolean
+_g_spawn_invalid_source_fd (gint fd,
+ const gint *source_fds,
+ gsize n_fds,
+ GError **error)
+{
+ gsize i;
+
+ for (i = 0; i < n_fds; i++)
+ if (fd == source_fds[i])
+ {
+ g_set_error (error,
+ G_SPAWN_ERROR,
+ G_SPAWN_ERROR_INVAL,
+ _("Invalid source FDs argument"));
+ return TRUE;
+ }
+
+ return FALSE;
+}
diff --git a/glib/gspawn-win32-helper.c b/glib/gspawn-win32-helper.c
index 72b49baf6..35b25905c 100644
--- a/glib/gspawn-win32-helper.c
+++ b/glib/gspawn-win32-helper.c
@@ -23,20 +23,6 @@
#include <fcntl.h>
-/* For _CrtSetReportMode, we don't want Windows CRT (2005 and later)
- * to terminate the process if a bad file descriptor is passed into
- * _get_osfhandle(). This is necessary because we use _get_osfhandle()
- * to check the validity of the fd before we try to call close() on
- * it as attempting to close an invalid fd will cause the Windows CRT
- * to abort() this program internally.
- *
- * Please see http://msdn.microsoft.com/zh-tw/library/ks2530z6%28v=vs.80%29.aspx
- * for an explanation on this.
- */
-#if (defined (_MSC_VER) && _MSC_VER >= 1400)
-#include <crtdbg.h>
-#endif
-
#undef G_LOG_DOMAIN
#include "glib.h"
#define GSPAWN_HELPER
@@ -168,30 +154,6 @@ checked_dup2 (int oldfd, int newfd, int report_fd)
return newfd;
}
-#if (defined (_MSC_VER) && _MSC_VER >= 1400)
-/*
- * This is the (empty) invalid parameter handler
- * that is used for Visual C++ 2005 (and later) builds
- * so that we can use this instead of the system automatically
- * aborting the process.
- *
- * This is necessary as we use _get_oshandle() to check the validity
- * of the file descriptors as we close them, so when an invalid file
- * descriptor is passed into that function as we check on it, we get
- * -1 as the result, instead of the gspawn helper program aborting.
- *
- * Please see http://msdn.microsoft.com/zh-tw/library/ks2530z6%28v=vs.80%29.aspx
- * for an explanation on this.
- */
-extern void
-myInvalidParameterHandler(const wchar_t *expression,
- const wchar_t *function,
- const wchar_t *file,
- unsigned int line,
- uintptr_t pReserved);
-#endif
-
-
#ifndef HELPER_CONSOLE
int _stdcall
WinMain (struct HINSTANCE__ *hInstance,
@@ -220,16 +182,7 @@ main (int ignored_argc, char **ignored_argv)
char **argv;
wchar_t **wargv;
char c;
-
-#if (defined (_MSC_VER) && _MSC_VER >= 1400)
- /* set up our empty invalid parameter handler */
- _invalid_parameter_handler oldHandler, newHandler;
- newHandler = myInvalidParameterHandler;
- oldHandler = _set_invalid_parameter_handler(newHandler);
-
- /* Disable the message box for assertions. */
- _CrtSetReportMode(_CRT_ASSERT, 0);
-#endif
+ GWin32InvalidParameterHandler handler;
/* Fetch the wide-char argument vector */
wargv = CommandLineToArgvW (GetCommandLineW(), &argc);
@@ -398,11 +351,13 @@ main (int ignored_argc, char **ignored_argv)
/* argv[ARG_CLOSE_DESCRIPTORS] is "y" if file descriptors from 3
* upwards should be closed
*/
+ GLIB_PRIVATE_CALL (g_win32_push_empty_invalid_parameter_handler) (&handler);
if (argv[ARG_CLOSE_DESCRIPTORS][0] == 'y')
for (i = 3; i < 1000; i++) /* FIXME real limit? */
if (!g_hash_table_contains (fds, GINT_TO_POINTER (i)))
if (_get_osfhandle (i) != -1)
close (i);
+ GLIB_PRIVATE_CALL (g_win32_pop_invalid_parameter_handler) (&handler);
/* We don't want our child to inherit the error report and
* helper sync fds.
diff --git a/glib/gspawn-win32.c b/glib/gspawn-win32.c
index cae4c288c..f14911b1b 100644
--- a/glib/gspawn-win32.c
+++ b/glib/gspawn-win32.c
@@ -65,8 +65,10 @@
#include <wchar.h>
#ifdef _MSC_VER
+#ifdef HAVE_VCRUNTIME_H
#include <vcruntime.h> /* for _UCRT */
#endif
+#endif
#ifndef GSPAWN_HELPER
#ifdef G_SPAWN_WIN32_DEBUG
@@ -163,8 +165,85 @@ safe_wspawnvpe (int _Mode,
#else
-#define safe_wspawnve _spawnve
-#define safe_wspawnvpe _wspawnvpe
+/**< private >
+ * ensure_cmd_environment:
+ *
+ * Workaround for an issue in the universal C Runtime library (UCRT). This adds
+ * a custom environment variable to this process's environment block that looks
+ * like the cmd.exe's shell-related environment variables, i.e the name starts
+ * with an equal sign character: '='. This is needed because the UCRT may crash
+ * if those environment variables are missing from the calling process's block.
+ *
+ * Reference:
+ *
+ * https://developercommunity.visualstudio.com/t/UCRT-Crash-in-_wspawne-functions/10262748
+ */
+static void
+ensure_cmd_environment (void)
+{
+ static gsize initialization_value = 0;
+
+ if (g_once_init_enter (&initialization_value))
+ {
+ wchar_t *block = GetEnvironmentStringsW ();
+ gboolean have_cmd_environment = FALSE;
+
+ if (block)
+ {
+ const wchar_t *p = block;
+
+ while (*p != L'\0')
+ {
+ if (*p == L'=')
+ {
+ have_cmd_environment = TRUE;
+ break;
+ }
+
+ p += wcslen (p) + 1;
+ }
+
+ if (!FreeEnvironmentStringsW (block))
+ g_warning ("%s failed with error code %u",
+ "FreeEnvironmentStrings",
+ (guint) GetLastError ());
+ }
+
+ if (!have_cmd_environment)
+ {
+ if (!SetEnvironmentVariableW (L"=GLIB", L"GLIB"))
+ {
+ g_critical ("%s failed with error code %u",
+ "SetEnvironmentVariable",
+ (guint) GetLastError ());
+ }
+ }
+
+ g_once_init_leave (&initialization_value, 1);
+ }
+}
+
+static intptr_t
+safe_wspawnve (int _mode,
+ const wchar_t * _filename,
+ const wchar_t *const *_args,
+ const wchar_t *const *_env)
+{
+ ensure_cmd_environment ();
+
+ return _wspawnve (_mode, _filename, _args, _env);;
+}
+
+static intptr_t
+safe_wspawnvpe (int _mode,
+ const wchar_t * _filename,
+ const wchar_t *const *_args,
+ const wchar_t *const *_env)
+{
+ ensure_cmd_environment ();
+
+ return _wspawnvpe (_mode, _filename, _args, _env);
+}
#endif /* _UCRT */
@@ -658,6 +737,9 @@ fork_exec (gint *exit_status,
{
if (!make_pipe (stdin_pipe, error))
goto cleanup_and_fail;
+ if (_g_spawn_invalid_source_fd (stdin_pipe[0], source_fds, n_fds, error) ||
+ _g_spawn_invalid_source_fd (stdin_pipe[1], source_fds, n_fds, error))
+ goto cleanup_and_fail;
stdin_fd = stdin_pipe[0];
}
@@ -665,6 +747,9 @@ fork_exec (gint *exit_status,
{
if (!make_pipe (stdout_pipe, error))
goto cleanup_and_fail;
+ if (_g_spawn_invalid_source_fd (stdout_pipe[0], source_fds, n_fds, error) ||
+ _g_spawn_invalid_source_fd (stdout_pipe[1], source_fds, n_fds, error))
+ goto cleanup_and_fail;
stdout_fd = stdout_pipe[1];
}
@@ -672,18 +757,14 @@ fork_exec (gint *exit_status,
{
if (!make_pipe (stderr_pipe, error))
goto cleanup_and_fail;
+ if (_g_spawn_invalid_source_fd (stderr_pipe[0], source_fds, n_fds, error) ||
+ _g_spawn_invalid_source_fd (stderr_pipe[1], source_fds, n_fds, error))
+ goto cleanup_and_fail;
stderr_fd = stderr_pipe[1];
}
argc = protect_argv (argv, &protected_argv);
- /*
- * FIXME: Workaround broken spawnvpe functions that SEGV when "=X:="
- * environment variables are missing. Calling chdir() will set the magic
- * environment variable again.
- */
- _chdir (".");
-
if (stdin_fd == -1 && stdout_fd == -1 && stderr_fd == -1 &&
(flags & G_SPAWN_CHILD_INHERITS_STDIN) &&
!(flags & G_SPAWN_STDOUT_TO_DEV_NULL) &&
@@ -703,9 +784,15 @@ fork_exec (gint *exit_status,
if (!make_pipe (child_err_report_pipe, error))
goto cleanup_and_fail;
+ if (_g_spawn_invalid_source_fd (child_err_report_pipe[0], source_fds, n_fds, error) ||
+ _g_spawn_invalid_source_fd (child_err_report_pipe[1], source_fds, n_fds, error))
+ goto cleanup_and_fail;
if (!make_pipe (helper_sync_pipe, error))
goto cleanup_and_fail;
+ if (_g_spawn_invalid_source_fd (helper_sync_pipe[0], source_fds, n_fds, error) ||
+ _g_spawn_invalid_source_fd (helper_sync_pipe[1], source_fds, n_fds, error))
+ goto cleanup_and_fail;
new_argv = g_new (char *, argc + 1 + ARG_COUNT);
if (might_be_console_process ())
diff --git a/glib/gspawn.c b/glib/gspawn.c
index 4f4c55d99..2f7465b78 100644
--- a/glib/gspawn.c
+++ b/glib/gspawn.c
@@ -32,6 +32,7 @@
#include <string.h>
#include <stdlib.h> /* for fdwalk */
#include <dirent.h>
+#include <unistd.h>
#ifdef HAVE_SPAWN_H
#include <spawn.h>
@@ -69,10 +70,18 @@
#include "glibintl.h"
#include "glib-unix.h"
+#ifdef __APPLE__
+#include <libproc.h>
+#include <sys/proc_info.h>
+#endif
+
#define INHERITS_OR_NULL_STDIN (G_SPAWN_STDIN_FROM_DEV_NULL | G_SPAWN_CHILD_INHERITS_STDIN)
#define INHERITS_OR_NULL_STDOUT (G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_CHILD_INHERITS_STDOUT)
#define INHERITS_OR_NULL_STDERR (G_SPAWN_STDERR_TO_DEV_NULL | G_SPAWN_CHILD_INHERITS_STDERR)
+#define IS_STD_FILENO(_fd) ((_fd >= STDIN_FILENO) && (_fd <= STDERR_FILENO))
+#define IS_VALID_FILENO(_fd) (_fd >= 0)
+
/* posix_spawn() is assumed the fastest way to spawn, but glibc's
* implementation was buggy before glibc 2.24, so avoid it on old versions.
*/
@@ -209,8 +218,9 @@ G_DEFINE_QUARK (g-spawn-exit-error-quark, g_spawn_exit_error)
* @envp: (array zero-terminated=1) (element-type filename) (nullable):
* child's environment, or %NULL to inherit parent's
* @flags: flags from #GSpawnFlags
- * @child_setup: (scope async) (nullable): function to run in the child just before exec()
- * @user_data: (closure): user data for @child_setup
+ * @child_setup: (scope async) (closure user_data) (nullable): function to run
+ * in the child just before `exec()`
+ * @user_data: user data for @child_setup
* @child_pid: (out) (optional): return location for child process reference, or %NULL
* @error: return location for error
*
@@ -323,8 +333,9 @@ read_data (GString *str,
* @envp: (array zero-terminated=1) (element-type filename) (nullable):
* child's environment, or %NULL to inherit parent's
* @flags: flags from #GSpawnFlags
- * @child_setup: (scope async) (nullable): function to run in the child just before exec()
- * @user_data: (closure): user data for @child_setup
+ * @child_setup: (scope call) (closure user_data) (nullable): function to run
+ * in the child just before `exec()`
+ * @user_data: user data for @child_setup
* @standard_output: (out) (array zero-terminated=1) (element-type guint8) (optional): return location for child output, or %NULL
* @standard_error: (out) (array zero-terminated=1) (element-type guint8) (optional): return location for child error messages, or %NULL
* @wait_status: (out) (optional): return location for child wait status, as returned by waitpid(), or %NULL
@@ -584,8 +595,9 @@ g_spawn_sync (const gchar *working_directory,
* child's environment, or %NULL to inherit parent's, in the GLib file
* name encoding
* @flags: flags from #GSpawnFlags
- * @child_setup: (scope async) (nullable): function to run in the child just before exec()
- * @user_data: (closure): user data for @child_setup
+ * @child_setup: (scope async) (closure user_data) (nullable): function to run
+ * in the child just before `exec()`
+ * @user_data: user data for @child_setup
* @child_pid: (out) (optional): return location for child process ID, or %NULL
* @standard_input: (out) (optional): return location for file descriptor to write to child's stdin, or %NULL
* @standard_output: (out) (optional): return location for file descriptor to read child's stdout, or %NULL
@@ -634,8 +646,9 @@ g_spawn_async_with_pipes (const gchar *working_directory,
* child's environment, or %NULL to inherit parent's, in the GLib file
* name encoding
* @flags: flags from #GSpawnFlags
- * @child_setup: (scope async) (nullable): function to run in the child just before `exec()`
- * @user_data: (closure): user data for @child_setup
+ * @child_setup: (scope async) (closure user_data) (nullable): function to run
+ * in the child just before `exec()`
+ * @user_data: user data for @child_setup
* @stdin_fd: file descriptor to use for child's stdin, or `-1`
* @stdout_fd: file descriptor to use for child's stdout, or `-1`
* @stderr_fd: file descriptor to use for child's stderr, or `-1`
@@ -920,8 +933,9 @@ g_spawn_async_with_pipes_and_fds (const gchar *working_directory,
* it must be non-empty and %NULL-terminated
* @envp: (array zero-terminated=1) (nullable): child's environment, or %NULL to inherit parent's, in the GLib file name encoding
* @flags: flags from #GSpawnFlags
- * @child_setup: (scope async) (nullable): function to run in the child just before exec()
- * @user_data: (closure): user data for @child_setup
+ * @child_setup: (scope async) (closure user_data) (nullable): function to run
+ * in the child just before `exec()`
+ * @user_data: user data for @child_setup
* @child_pid: (out) (optional): return location for child process ID, or %NULL
* @stdin_fd: file descriptor to use for child's stdin, or `-1`
* @stdout_fd: file descriptor to use for child's stdout, or `-1`
@@ -1334,13 +1348,31 @@ dupfd_cloexec (int old_fd, int new_fd_min)
return fd;
}
-/* This function is called between fork() and exec() and hence must be
- * async-signal-safe (see signal-safety(7)). */
+/* fdwalk()-compatible callback to close a fd for non-compliant
+ * implementations of fdwalk() that potentially pass already
+ * closed fds.
+ *
+ * It is not an error to pass an invalid fd to this function.
+ *
+ * This function is called between fork() and exec() and hence must be
+ * async-signal-safe (see signal-safety(7)).
+ */
G_GNUC_UNUSED static int
-close_func (void *data, int fd)
+close_func_with_invalid_fds (void *data, int fd)
{
+ /* We use close and not g_close here because on some platforms, we
+ * don't know how to close only valid, open file descriptors, so we
+ * have to pass bad fds to close too. g_close warns if given a bad
+ * fd.
+ *
+ * This function returns no error, because there is nothing that the caller
+ * could do with that information. That is even the case for EINTR. See
+ * g_close() about the specialty of EINTR and why that is correct.
+ * If g_close() ever gets extended to handle EINTR specially, then this place
+ * should get updated to do the same handling.
+ */
if (fd >= GPOINTER_TO_INT (data))
- g_close (fd, NULL);
+ close (fd);
return 0;
}
@@ -1385,6 +1417,8 @@ filename_to_fd (const char *p)
}
#endif
+static int safe_fdwalk_with_invalid_fds (int (*cb)(void *data, int fd), void *data);
+
/* This function is called between fork() and exec() and hence must be
* async-signal-safe (see signal-safety(7)). */
static int
@@ -1400,31 +1434,34 @@ safe_fdwalk (int (*cb)(void *data, int fd), void *data)
return fdwalk (cb, data);
#else
/* Fallback implementation of fdwalk. It should be async-signal safe, but it
- * may be slow on non-Linux operating systems, especially on systems allowing
- * very high number of open file descriptors.
+ * may fail on non-Linux operating systems. See safe_fdwalk_with_invalid_fds
+ * for a slower alternative.
*/
- gint open_max = -1;
+
+#ifdef __linux__
gint fd;
gint res = 0;
-
-#if 0 && defined(HAVE_SYS_RESOURCE_H)
- struct rlimit rl;
-#endif
-#ifdef __linux__
/* Avoid use of opendir/closedir since these are not async-signal-safe. */
int dir_fd = open ("/proc/self/fd", O_RDONLY | O_DIRECTORY);
if (dir_fd >= 0)
{
- char buf[4096];
+ /* buf needs to be aligned correctly to receive linux_dirent64.
+ * C11 has _Alignof for this purpose, but for now a
+ * union serves the same purpose. */
+ union
+ {
+ char buf[4096];
+ struct linux_dirent64 alignment;
+ } u;
int pos, nread;
struct linux_dirent64 *de;
- while ((nread = syscall (SYS_getdents64, dir_fd, buf, sizeof(buf))) > 0)
+ while ((nread = syscall (SYS_getdents64, dir_fd, u.buf, sizeof (u.buf))) > 0)
{
for (pos = 0; pos < nread; pos += de->d_reclen)
{
- de = (struct linux_dirent64 *)(buf + pos);
+ de = (struct linux_dirent64 *) (u.buf + pos);
fd = filename_to_fd (de->d_name);
if (fd < 0 || fd == dir_fd)
@@ -1439,7 +1476,8 @@ safe_fdwalk (int (*cb)(void *data, int fd), void *data)
return res;
}
- /* If /proc is not mounted or not accessible we fall back to the old
+ /* If /proc is not mounted or not accessible we fail here and rely on
+ * safe_fdwalk_with_invalid_fds to fall back to the old
* rlimit trick. */
#endif
@@ -1455,6 +1493,8 @@ safe_fdwalk (int (*cb)(void *data, int fd), void *data)
* fcntl(fd, F_PREVFD)
* - return highest allocated file descriptor < fd.
*/
+ gint fd;
+ gint res = 0;
open_max = fcntl (INT_MAX, F_PREVFD); /* find the maximum fd */
if (open_max < 0) /* No open files */
@@ -1463,9 +1503,30 @@ safe_fdwalk (int (*cb)(void *data, int fd), void *data)
for (fd = -1; (fd = fcntl (fd, F_NEXTFD, open_max)) != -1; )
if ((res = cb (data, fd)) != 0 || fd == open_max)
break;
-#else
+
+ return res;
+#endif
+
+ return safe_fdwalk_with_invalid_fds (cb, data);
+#endif
+}
+
+/* This function is called between fork() and exec() and hence must be
+ * async-signal-safe (see signal-safety(7)). */
+static int
+safe_fdwalk_with_invalid_fds (int (*cb)(void *data, int fd), void *data)
+{
+ /* Fallback implementation of fdwalk. It should be async-signal safe, but it
+ * may be slow, especially on systems allowing very high number of open file
+ * descriptors.
+ */
+ gint open_max = -1;
+ gint fd;
+ gint res = 0;
#if 0 && defined(HAVE_SYS_RESOURCE_H)
+ struct rlimit rl;
+
/* Use getrlimit() function provided by the system if it is known to be
* async-signal safe.
*
@@ -1495,13 +1556,41 @@ safe_fdwalk (int (*cb)(void *data, int fd), void *data)
if (open_max < 0)
open_max = 4096;
+#if defined(__APPLE__)
+ /* proc_pidinfo isn't documented as async-signal-safe but looking at the implementation
+ * in the darwin tree here:
+ *
+ * https://opensource.apple.com/source/Libc/Libc-498/darwin/libproc.c.auto.html
+ *
+ * It's just a thin wrapper around a syscall, so it's probably okay.
+ */
+ {
+ char buffer[4096 * PROC_PIDLISTFD_SIZE];
+ ssize_t buffer_size;
+
+ buffer_size = proc_pidinfo (getpid (), PROC_PIDLISTFDS, 0, buffer, sizeof (buffer));
+
+ if (buffer_size > 0 &&
+ sizeof (buffer) >= (size_t) buffer_size &&
+ (buffer_size % PROC_PIDLISTFD_SIZE) == 0)
+ {
+ const struct proc_fdinfo *fd_info = (const struct proc_fdinfo *) buffer;
+ size_t number_of_fds = (size_t) buffer_size / PROC_PIDLISTFD_SIZE;
+
+ for (size_t i = 0; i < number_of_fds; i++)
+ if ((res = cb (data, fd_info[i].proc_fd)) != 0)
+ break;
+
+ return res;
+ }
+ }
+#endif
+
for (fd = 0; fd < open_max; fd++)
if ((res = cb (data, fd)) != 0)
break;
-#endif
return res;
-#endif
}
/* This function is called between fork() and exec() and hence must be
@@ -1509,6 +1598,8 @@ safe_fdwalk (int (*cb)(void *data, int fd), void *data)
static int
safe_fdwalk_set_cloexec (int lowfd)
{
+ int ret;
+
#if defined(HAVE_CLOSE_RANGE) && defined(CLOSE_RANGE_CLOEXEC)
/* close_range() is available in Linux since kernel 5.9, and on FreeBSD at
* around the same time. It was designed for use in async-signal-safe
@@ -1520,11 +1611,14 @@ safe_fdwalk_set_cloexec (int lowfd)
* Handle ENOSYS in case it’s supported in libc but not the kernel; if so,
* fall back to safe_fdwalk(). Handle EINVAL in case `CLOSE_RANGE_CLOEXEC`
* is not supported. */
- int ret = close_range (lowfd, G_MAXUINT, CLOSE_RANGE_CLOEXEC);
+ ret = close_range (lowfd, G_MAXUINT, CLOSE_RANGE_CLOEXEC);
if (ret == 0 || !(errno == ENOSYS || errno == EINVAL))
return ret;
#endif /* HAVE_CLOSE_RANGE */
- return safe_fdwalk (set_cloexec, GINT_TO_POINTER (lowfd));
+
+ ret = safe_fdwalk (set_cloexec, GINT_TO_POINTER (lowfd));
+
+ return ret;
}
/* This function is called between fork() and exec() and hence must be
@@ -1534,6 +1628,20 @@ safe_fdwalk_set_cloexec (int lowfd)
static int
safe_closefrom (int lowfd)
{
+ int ret;
+
+#if defined(HAVE_CLOSE_RANGE)
+ /* close_range() is available in Linux since kernel 5.9, and on FreeBSD at
+ * around the same time. It was designed for use in async-signal-safe
+ * situations: https://bugs.python.org/issue38061
+ *
+ * Handle ENOSYS in case it’s supported in libc but not the kernel; if so,
+ * fall back to safe_fdwalk(). */
+ ret = close_range (lowfd, G_MAXUINT, 0);
+ if (ret == 0 || errno != ENOSYS)
+ return ret;
+#endif /* HAVE_CLOSE_RANGE */
+
#if defined(__FreeBSD__) || defined(__OpenBSD__) || \
(defined(__sun__) && defined(F_CLOSEFROM))
/* Use closefrom function provided by the system if it is known to be
@@ -1565,19 +1673,9 @@ safe_closefrom (int lowfd)
*/
return fcntl (lowfd, F_CLOSEM);
#else
+ ret = safe_fdwalk (close_func_with_invalid_fds, GINT_TO_POINTER (lowfd));
-#if defined(HAVE_CLOSE_RANGE)
- /* close_range() is available in Linux since kernel 5.9, and on FreeBSD at
- * around the same time. It was designed for use in async-signal-safe
- * situations: https://bugs.python.org/issue38061
- *
- * Handle ENOSYS in case it’s supported in libc but not the kernel; if so,
- * fall back to safe_fdwalk(). */
- int ret = close_range (lowfd, G_MAXUINT, 0);
- if (ret == 0 || errno != ENOSYS)
- return ret;
-#endif /* HAVE_CLOSE_RANGE */
- return safe_fdwalk (close_func, GINT_TO_POINTER (lowfd));
+ return ret;
#endif
}
@@ -1597,6 +1695,30 @@ safe_dup2 (gint fd1, gint fd2)
/* This function is called between fork() and exec() and hence must be
* async-signal-safe (see signal-safety(7)). */
+static gboolean
+relocate_fd_out_of_standard_range (gint *fd)
+{
+ gint ret = -1;
+ const int min_fileno = STDERR_FILENO + 1;
+
+ do
+ ret = fcntl (*fd, F_DUPFD, min_fileno);
+ while (ret < 0 && errno == EINTR);
+
+ /* Note we don't need to close the old fd, because the caller is expected
+ * to close fds in the standard range itself.
+ */
+ if (ret >= min_fileno)
+ {
+ *fd = ret;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+/* This function is called between fork() and exec() and hence must be
+ * async-signal-safe (see signal-safety(7)). */
static gint
safe_open (const char *path, gint mode)
{
@@ -1614,7 +1736,7 @@ enum
CHILD_CHDIR_FAILED,
CHILD_EXEC_FAILED,
CHILD_OPEN_FAILED,
- CHILD_DUP2_FAILED,
+ CHILD_DUPFD_FAILED,
CHILD_FORK_FAILED,
CHILD_CLOSE_FAILED,
};
@@ -1653,17 +1775,42 @@ do_exec (gint child_err_report_fd,
if (working_directory && chdir (working_directory) < 0)
write_err_and_exit (child_err_report_fd,
CHILD_CHDIR_FAILED);
-
- /* Redirect pipes as required */
- if (stdin_fd >= 0)
+
+ /* It's possible the caller assigned stdin to an fd with a
+ * file number that is supposed to be reserved for
+ * stdout or stderr.
+ *
+ * If so, move it up out of the standard range, so it doesn't
+ * cause a conflict.
+ */
+ if (IS_STD_FILENO (stdin_fd) && stdin_fd != STDIN_FILENO)
+ {
+ int old_fd = stdin_fd;
+
+ if (!relocate_fd_out_of_standard_range (&stdin_fd))
+ write_err_and_exit (child_err_report_fd, CHILD_DUPFD_FAILED);
+
+ if (stdout_fd == old_fd)
+ stdout_fd = stdin_fd;
+
+ if (stderr_fd == old_fd)
+ stderr_fd = stdin_fd;
+ }
+
+ /* Redirect pipes as required
+ *
+ * There are two cases where we don't need to do the redirection
+ * 1. Where the associated file descriptor is cleared/invalid
+ * 2. When the associated file descriptor is already given the
+ * correct file number.
+ */
+ if (IS_VALID_FILENO (stdin_fd) && stdin_fd != STDIN_FILENO)
{
if (safe_dup2 (stdin_fd, 0) < 0)
write_err_and_exit (child_err_report_fd,
- CHILD_DUP2_FAILED);
+ CHILD_DUPFD_FAILED);
- if (!((stdout_fd >= 0 || stdout_to_null) && stdin_fd == 1) &&
- !((stderr_fd >= 0 || stderr_to_null) && stdin_fd == 2))
- set_cloexec (GINT_TO_POINTER(0), stdin_fd);
+ set_cloexec (GINT_TO_POINTER(0), stdin_fd);
}
else if (!child_inherits_stdin)
{
@@ -1674,19 +1821,34 @@ do_exec (gint child_err_report_fd,
CHILD_OPEN_FAILED);
if (safe_dup2 (read_null, 0) < 0)
write_err_and_exit (child_err_report_fd,
- CHILD_DUP2_FAILED);
+ CHILD_DUPFD_FAILED);
close_and_invalidate (&read_null);
}
- if (stdout_fd >= 0)
+ /* Like with stdin above, it's possible the caller assigned
+ * stdout to an fd with a file number that's intruding on the
+ * standard range.
+ *
+ * If so, move it out of the way, too.
+ */
+ if (IS_STD_FILENO (stdout_fd) && stdout_fd != STDOUT_FILENO)
+ {
+ int old_fd = stdout_fd;
+
+ if (!relocate_fd_out_of_standard_range (&stdout_fd))
+ write_err_and_exit (child_err_report_fd, CHILD_DUPFD_FAILED);
+
+ if (stderr_fd == old_fd)
+ stderr_fd = stdout_fd;
+ }
+
+ if (IS_VALID_FILENO (stdout_fd) && stdout_fd != STDOUT_FILENO)
{
if (safe_dup2 (stdout_fd, 1) < 0)
write_err_and_exit (child_err_report_fd,
- CHILD_DUP2_FAILED);
+ CHILD_DUPFD_FAILED);
- if (!((stdin_fd >= 0 || !child_inherits_stdin) && stdout_fd == 0) &&
- !((stderr_fd >= 0 || stderr_to_null) && stdout_fd == 2))
- set_cloexec (GINT_TO_POINTER(0), stdout_fd);
+ set_cloexec (GINT_TO_POINTER(0), stdout_fd);
}
else if (stdout_to_null)
{
@@ -1696,19 +1858,29 @@ do_exec (gint child_err_report_fd,
CHILD_OPEN_FAILED);
if (safe_dup2 (write_null, 1) < 0)
write_err_and_exit (child_err_report_fd,
- CHILD_DUP2_FAILED);
+ CHILD_DUPFD_FAILED);
close_and_invalidate (&write_null);
}
- if (stderr_fd >= 0)
+ if (IS_STD_FILENO (stderr_fd) && stderr_fd != STDERR_FILENO)
+ {
+ if (!relocate_fd_out_of_standard_range (&stderr_fd))
+ write_err_and_exit (child_err_report_fd, CHILD_DUPFD_FAILED);
+ }
+
+ /* Like with stdin/stdout above, it's possible the caller assigned
+ * stderr to an fd with a file number that's intruding on the
+ * standard range.
+ *
+ * Make sure it's out of the way, also.
+ */
+ if (IS_VALID_FILENO (stderr_fd) && stderr_fd != STDERR_FILENO)
{
if (safe_dup2 (stderr_fd, 2) < 0)
write_err_and_exit (child_err_report_fd,
- CHILD_DUP2_FAILED);
+ CHILD_DUPFD_FAILED);
- if (!((stdin_fd >= 0 || !child_inherits_stdin) && stderr_fd == 0) &&
- !((stdout_fd >= 0 || stdout_to_null) && stderr_fd == 1))
- set_cloexec (GINT_TO_POINTER(0), stderr_fd);
+ set_cloexec (GINT_TO_POINTER(0), stderr_fd);
}
else if (stderr_to_null)
{
@@ -1718,7 +1890,7 @@ do_exec (gint child_err_report_fd,
CHILD_OPEN_FAILED);
if (safe_dup2 (write_null, 2) < 0)
write_err_and_exit (child_err_report_fd,
- CHILD_DUP2_FAILED);
+ CHILD_DUPFD_FAILED);
close_and_invalidate (&write_null);
}
@@ -1732,7 +1904,7 @@ do_exec (gint child_err_report_fd,
if (child_setup == NULL && n_fds == 0)
{
if (safe_dup2 (child_err_report_fd, 3) < 0)
- write_err_and_exit (child_err_report_fd, CHILD_DUP2_FAILED);
+ write_err_and_exit (child_err_report_fd, CHILD_DUPFD_FAILED);
set_cloexec (GINT_TO_POINTER (0), 3);
if (safe_closefrom (4) < 0)
write_err_and_exit (child_err_report_fd, CHILD_CLOSE_FAILED);
@@ -1768,7 +1940,7 @@ do_exec (gint child_err_report_fd,
if (max_target_fd == G_MAXINT)
{
errno = EINVAL;
- write_err_and_exit (child_err_report_fd, CHILD_DUP2_FAILED);
+ write_err_and_exit (child_err_report_fd, CHILD_DUPFD_FAILED);
}
/* If we're doing remapping fd assignments, we need to handle
@@ -1782,7 +1954,7 @@ do_exec (gint child_err_report_fd,
{
source_fds[i] = dupfd_cloexec (source_fds[i], max_target_fd + 1);
if (source_fds[i] < 0)
- write_err_and_exit (child_err_report_fd, CHILD_DUP2_FAILED);
+ write_err_and_exit (child_err_report_fd, CHILD_DUPFD_FAILED);
}
}
@@ -1804,11 +1976,11 @@ do_exec (gint child_err_report_fd,
{
child_err_report_fd = dupfd_cloexec (child_err_report_fd, max_target_fd + 1);
if (child_err_report_fd < 0)
- write_err_and_exit (child_err_report_fd, CHILD_DUP2_FAILED);
+ write_err_and_exit (child_err_report_fd, CHILD_DUPFD_FAILED);
}
if (safe_dup2 (source_fds[i], target_fds[i]) < 0)
- write_err_and_exit (child_err_report_fd, CHILD_DUP2_FAILED);
+ write_err_and_exit (child_err_report_fd, CHILD_DUPFD_FAILED);
close_and_invalidate (&source_fds[i]);
}
@@ -2174,6 +2346,9 @@ fork_exec (gboolean intermediate_child,
{
if (!g_unix_open_pipe (stdin_pipe, pipe_flags, error))
goto cleanup_and_fail;
+ if (_g_spawn_invalid_source_fd (stdin_pipe[0], source_fds, n_fds, error) ||
+ _g_spawn_invalid_source_fd (stdin_pipe[1], source_fds, n_fds, error))
+ goto cleanup_and_fail;
child_close_fds[n_child_close_fds++] = stdin_pipe[1];
stdin_fd = stdin_pipe[0];
}
@@ -2182,6 +2357,9 @@ fork_exec (gboolean intermediate_child,
{
if (!g_unix_open_pipe (stdout_pipe, pipe_flags, error))
goto cleanup_and_fail;
+ if (_g_spawn_invalid_source_fd (stdout_pipe[0], source_fds, n_fds, error) ||
+ _g_spawn_invalid_source_fd (stdout_pipe[1], source_fds, n_fds, error))
+ goto cleanup_and_fail;
child_close_fds[n_child_close_fds++] = stdout_pipe[0];
stdout_fd = stdout_pipe[1];
}
@@ -2190,6 +2368,9 @@ fork_exec (gboolean intermediate_child,
{
if (!g_unix_open_pipe (stderr_pipe, pipe_flags, error))
goto cleanup_and_fail;
+ if (_g_spawn_invalid_source_fd (stderr_pipe[0], source_fds, n_fds, error) ||
+ _g_spawn_invalid_source_fd (stderr_pipe[1], source_fds, n_fds, error))
+ goto cleanup_and_fail;
child_close_fds[n_child_close_fds++] = stderr_pipe[0];
stderr_fd = stderr_pipe[1];
}
@@ -2331,9 +2512,18 @@ fork_exec (gboolean intermediate_child,
if (!g_unix_open_pipe (child_err_report_pipe, pipe_flags, error))
goto cleanup_and_fail;
-
- if (intermediate_child && !g_unix_open_pipe (child_pid_report_pipe, pipe_flags, error))
+ if (_g_spawn_invalid_source_fd (child_err_report_pipe[0], source_fds, n_fds, error) ||
+ _g_spawn_invalid_source_fd (child_err_report_pipe[1], source_fds, n_fds, error))
goto cleanup_and_fail;
+
+ if (intermediate_child)
+ {
+ if (!g_unix_open_pipe (child_pid_report_pipe, pipe_flags, error))
+ goto cleanup_and_fail;
+ if (_g_spawn_invalid_source_fd (child_pid_report_pipe[0], source_fds, n_fds, error) ||
+ _g_spawn_invalid_source_fd (child_pid_report_pipe[1], source_fds, n_fds, error))
+ goto cleanup_and_fail;
+ }
pid = fork ();
@@ -2528,7 +2718,7 @@ fork_exec (gboolean intermediate_child,
g_strerror (buf[1]));
break;
- case CHILD_DUP2_FAILED:
+ case CHILD_DUPFD_FAILED:
g_set_error (error,
G_SPAWN_ERROR,
G_SPAWN_ERROR_FAILED,
diff --git a/glib/gspawn.h b/glib/gspawn.h
index 277c98cea..a3c4aca52 100644
--- a/glib/gspawn.h
+++ b/glib/gspawn.h
@@ -104,7 +104,7 @@ typedef enum
/**
* GSpawnChildSetupFunc:
- * @user_data: user data to pass to the function.
+ * @data: user data passed to the function.
*
* Specifies the type of the setup function passed to g_spawn_async(),
* g_spawn_sync() and g_spawn_async_with_pipes(), which can, in very
@@ -137,7 +137,7 @@ typedef enum
* and g_environ_unsetenv(), and then pass the complete environment
* list to the `g_spawn...` function.
*/
-typedef void (* GSpawnChildSetupFunc) (gpointer user_data);
+typedef void (* GSpawnChildSetupFunc) (gpointer data);
/**
* GSpawnFlags:
diff --git a/glib/gstdio.c b/glib/gstdio.c
index fa291c287..b4e1971fc 100644
--- a/glib/gstdio.c
+++ b/glib/gstdio.c
@@ -1758,6 +1758,15 @@ g_utime (const gchar *filename,
* attempt to correctly handle %EINTR, which has platform-specific
* semantics.
*
+ * It is a bug to call this function with an invalid file descriptor.
+ *
+ * On POSIX platforms since GLib 2.76, this function is async-signal safe
+ * if (and only if) @error is %NULL and @fd is a valid open file descriptor.
+ * This makes it safe to call from a signal handler or a #GSpawnChildSetupFunc
+ * under those conditions.
+ * See [`signal(7)`](man:signal(7)) and
+ * [`signal-safety(7)`](man:signal-safety(7)) for more details.
+ *
* Returns: %TRUE on success, %FALSE if there was an error.
*
* Since: 2.36
@@ -1783,11 +1792,16 @@ g_close (gint fd,
* on Linux at least. Anyone who wants to add a conditional check
* for e.g. HP-UX is welcome to do so later...
*
+ * close_func_with_invalid_fds() in gspawn.c has similar logic.
+ *
* https://lwn.net/Articles/576478/
* http://lkml.indiana.edu/hypermail/linux/kernel/0509.1/0877.html
* https://bugzilla.gnome.org/show_bug.cgi?id=682819
* http://utcc.utoronto.ca/~cks/space/blog/unix/CloseEINTR
* https://sites.google.com/site/michaelsafyan/software-engineering/checkforeintrwheninvokingclosethinkagain
+ *
+ * `close$NOCANCEL()` in gstdioprivate.h, on macOS, ensures that the fd is
+ * closed even if it did return EINTR.
*/
return TRUE;
}
@@ -1799,8 +1813,145 @@ g_close (gint fd,
g_strerror (errsv));
}
+ if (errsv == EBADF)
+ {
+ /* There is a bug. Fail an assertion. Note that this function is supposed to be
+ * async-signal-safe, but in case an assertion fails, all bets are already off. */
+ if (fd >= 0)
+ {
+ /* Closing an non-negative, invalid file descriptor is a bug. The bug is
+ * not necessarily in the caller of g_close(), but somebody else
+ * might have wrongly closed fd. In any case, there is a serious bug
+ * somewhere. */
+ g_critical ("g_close(fd:%d) failed with EBADF. The tracking of file descriptors got messed up", fd);
+ }
+ else
+ {
+ /* Closing a negative "file descriptor" is less problematic. It's still a nonsensical action
+ * from the caller. Assert against that too. */
+ g_critical ("g_close(fd:%d) failed with EBADF. This is not a valid file descriptor", fd);
+ }
+ }
+
errno = errsv;
+
return FALSE;
}
+
return TRUE;
}
+
+/**
+ * g_clear_fd: (skip)
+ * @fd_ptr: (not optional) (inout) (transfer full): a pointer to a file descriptor
+ * @error: Used to return an error on failure
+ *
+ * If @fd_ptr points to a file descriptor, close it and return
+ * whether closing it was successful, like g_close().
+ * If @fd_ptr points to a negative number, return %TRUE without closing
+ * anything.
+ * In both cases, set @fd_ptr to `-1` before returning.
+ *
+ * Like g_close(), if closing the file descriptor fails, the error is
+ * stored in both %errno and @error. If this function succeeds,
+ * %errno is undefined.
+ *
+ * On POSIX platforms, this function is async-signal safe
+ * if @error is %NULL and @fd_ptr points to either a negative number or a
+ * valid open file descriptor.
+ * This makes it safe to call from a signal handler or a #GSpawnChildSetupFunc
+ * under those conditions.
+ * See [`signal(7)`](man:signal(7)) and
+ * [`signal-safety(7)`](man:signal-safety(7)) for more details.
+ *
+ * It is a programming error for @fd_ptr to point to a non-negative
+ * number that is not a valid file descriptor.
+ *
+ * A typical use of this function is to clean up a file descriptor at
+ * the end of its scope, whether it has been set successfully or not:
+ *
+ * |[
+ * gboolean
+ * operate_on_fd (GError **error)
+ * {
+ * gboolean ret = FALSE;
+ * int fd = -1;
+ *
+ * fd = open_a_fd (error);
+ *
+ * if (fd < 0)
+ * goto out;
+ *
+ * if (!do_something (fd, error))
+ * goto out;
+ *
+ * if (!g_clear_fd (&fd, error))
+ * goto out;
+ *
+ * ret = TRUE;
+ *
+ * out:
+ * // OK to call even if fd was never opened or was already closed
+ * g_clear_fd (&fd, NULL);
+ * return ret;
+ * }
+ * ]|
+ *
+ * This function is also useful in conjunction with #g_autofd.
+ *
+ * Returns: %TRUE on success
+ * Since: 2.76
+ */
+
+/**
+ * g_autofd: (skip)
+ *
+ * Macro to add an attribute to a file descriptor variable to ensure
+ * automatic cleanup using g_clear_fd().
+ *
+ * This macro behaves like #g_autofree rather than g_autoptr(): it is
+ * an attribute supplied before the type name, rather than wrapping the
+ * type definition.
+ *
+ * Otherwise, this macro has similar constraints as g_autoptr(): it is
+ * only supported on GCC and clang, and the variable must be initialized
+ * (to either a valid file descriptor or a negative number).
+ *
+ * Using this macro is async-signal-safe if the constraints described above
+ * are met, so it can be used in a signal handler or after `fork()`.
+ *
+ * Any error from closing the file descriptor when it goes out of scope
+ * is ignored. Use g_clear_fd() if error-checking is required.
+ *
+ * |[
+ * gboolean
+ * operate_on_fds (GError **error)
+ * {
+ * g_autofd int fd1 = open_a_fd (..., error);
+ * g_autofd int fd2 = -1;
+ *
+ * // it is safe to return early here, nothing will be closed
+ * if (fd1 < 0)
+ * return FALSE;
+ *
+ * fd2 = open_a_fd (..., error);
+ *
+ * // fd1 will be closed automatically if we return here
+ * if (fd2 < 0)
+ * return FALSE;
+ *
+ * // fd1 and fd2 will be closed automatically if we return here
+ * if (!do_something_useful (fd1, fd2, error))
+ * return FALSE;
+ *
+ * // fd2 will be closed automatically if we return here
+ * if (!g_clear_fd (&fd1, error))
+ * return FALSE;
+ *
+ * // fd2 will be automatically closed here if still open
+ * return TRUE;
+ * }
+ * ]|
+ *
+ * Since: 2.76
+ */
diff --git a/glib/gstdio.h b/glib/gstdio.h
index 441029848..7acdb9cef 100644
--- a/glib/gstdio.h
+++ b/glib/gstdio.h
@@ -23,6 +23,7 @@
#include <glib/gprintf.h>
+#include <errno.h>
#include <sys/stat.h>
G_BEGIN_DECLS
@@ -178,6 +179,53 @@ GLIB_AVAILABLE_IN_2_36
gboolean g_close (gint fd,
GError **error);
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_76
+static inline gboolean
+g_clear_fd (int *fd_ptr,
+ GError **error)
+{
+ int fd = *fd_ptr;
+
+ *fd_ptr = -1;
+
+ if (fd < 0)
+ return TRUE;
+
+ /* Suppress "Not available before" warning */
+ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+ return g_close (fd, error);
+ G_GNUC_END_IGNORE_DEPRECATIONS
+}
+
+/* g_autofd should be defined on the same compilers where g_autofree is
+ * This avoids duplicating the feature-detection here. */
+#ifdef g_autofree
+#ifndef __GTK_DOC_IGNORE__
+/* Not public API */
+static inline void
+_g_clear_fd_ignore_error (int *fd_ptr)
+{
+ /* Don't overwrite thread-local errno if closing the fd fails */
+ int errsv = errno;
+
+ /* Suppress "Not available before" warning */
+ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+
+ if (!g_clear_fd (fd_ptr, NULL))
+ {
+ /* Do nothing: we ignore all errors, except for EBADF which
+ * is a programming error, checked for by g_close(). */
+ }
+
+ G_GNUC_END_IGNORE_DEPRECATIONS
+
+ errno = errsv;
+}
+#endif
+
+#define g_autofd _GLIB_CLEANUP(_g_clear_fd_ignore_error) GLIB_AVAILABLE_MACRO_IN_2_76
+#endif
+
G_END_DECLS
#endif /* __G_STDIO_H__ */
diff --git a/glib/gstdioprivate.h b/glib/gstdioprivate.h
index ecc354ada..c9e7826eb 100644
--- a/glib/gstdioprivate.h
+++ b/glib/gstdioprivate.h
@@ -68,7 +68,36 @@ int g_win32_fstat (int fd,
GWin32PrivateStat *buf);
#endif
-
+/* The POSIX standard specifies that if close() fails with EINTR the
+ * file descriptor may or may not be in fact closed. Since another
+ * thread might have already reused the FD if it was in fact closed
+ * either a test of FD to ensure that it's closed nor a second
+ * call to close() may indicate the wrong FD, so the error must be
+ * ignored.
+ *
+ * However, since Mac OS X 10.5 (Leopard) Apple provdes a hidden
+ * implementation of close that doesn't allow another thread
+ * to cancel the close so it never fails with EINTR.
+ *
+ * The official way to enable this is to set __DARWIN_NON_CANCELABLE
+ * in the build, but that applies to all system calls, not just
+ * close(). Following Chromium's example (see
+ * https://chromium.googlesource.com/chromium/src/base/+/refs/heads/main/mac/close_nocancel.cc )
+ * we choose to expose and use the hidden close variant only.
+ */
+#ifdef __APPLE__
+#include <sys/cdefs.h>
+#include <unistd.h>
+# if !__DARWIN_NON_CANCELABLE
+# if !__DARWIN_ONLY_UNIX_CONFORMANCE
+# define close close$NOCANCEL$UNIX2003
+int close$NOCANCEL$UNIX2003 (int fd);
+# else
+# define close close$NOCANCEL
+int close$NOCANCEL (int fd);
+# endif
+# endif
+#endif
G_END_DECLS
#endif /* __G_STDIOPRIVATE_H__ */
diff --git a/glib/gstrfuncs.c b/glib/gstrfuncs.c
index ee934e5d7..22a608ddd 100644
--- a/glib/gstrfuncs.c
+++ b/glib/gstrfuncs.c
@@ -352,12 +352,12 @@ get_C_locale (void)
* Returns: a newly-allocated copy of @str
*/
gchar*
-g_strdup (const gchar *str)
+(g_strdup) (const gchar *str)
{
gchar *new_str;
gsize length;
- if (str)
+ if G_LIKELY (str)
{
length = strlen (str) + 1;
new_str = g_new (char, length);
@@ -495,12 +495,12 @@ g_strnfill (gsize length,
* @dest: destination buffer.
* @src: source string.
*
- * Copies a nul-terminated string into the dest buffer, include the
- * trailing nul, and return a pointer to the trailing nul byte.
- * This is useful for concatenating multiple strings together
- * without having to repeatedly scan for the end.
+ * Copies a nul-terminated string into the destination buffer, including
+ * the trailing nul byte, and returns a pointer to the trailing nul byte
+ * in `dest`. The return value is useful for concatenating multiple
+ * strings without having to repeatedly scan for the end.
*
- * Returns: a pointer to trailing nul byte.
+ * Returns: a pointer to the trailing nul byte in `dest`.
**/
gchar *
g_stpcpy (gchar *dest,
@@ -1362,14 +1362,17 @@ g_strerror (gint errnum)
G_UNLOCK (errors);
errno = saved_errno;
- return msg;
+ return NULL;
}
if (!g_get_console_charset (NULL))
{
msg = g_locale_to_utf8 (msg, -1, NULL, NULL, &error);
if (error)
- g_print ("%s\n", error->message);
+ {
+ g_print ("%s\n", error->message);
+ g_error_free (error);
+ }
}
else if (msg == (const gchar *)buf)
msg = g_strdup (buf);
@@ -2408,8 +2411,8 @@ g_strchomp (gchar *string)
* to represent empty elements, you'll need to check for the empty string
* before calling g_strsplit().
*
- * Returns: a newly-allocated %NULL-terminated array of strings. Use
- * g_strfreev() to free it.
+ * Returns: (transfer full): a newly-allocated %NULL-terminated array of
+ * strings. Use g_strfreev() to free it.
*/
gchar**
g_strsplit (const gchar *string,
@@ -2489,8 +2492,8 @@ g_strsplit (const gchar *string,
* Note that this function works on bytes not characters, so it can't be used
* to delimit UTF-8 strings for anything but ASCII characters.
*
- * Returns: a newly-allocated %NULL-terminated array of strings. Use
- * g_strfreev() to free it.
+ * Returns: (transfer full): a newly-allocated %NULL-terminated array of
+ * strings. Use g_strfreev() to free it.
*
* Since: 2.4
**/
@@ -2765,7 +2768,7 @@ g_strjoin (const gchar *separator,
*
* Searches the string @haystack for the first occurrence
* of the string @needle, limiting the length of the search
- * to @haystack_len.
+ * to @haystack_len or a nul terminator byte (whichever is reached first).
*
* Returns: a pointer to the found occurrence, or
* %NULL if not found.
@@ -2928,9 +2931,8 @@ g_strrstr_len (const gchar *haystack,
*
* Since: 2.2
*/
-gboolean
-g_str_has_suffix (const gchar *str,
- const gchar *suffix)
+gboolean (g_str_has_suffix) (const gchar *str,
+ const gchar *suffix)
{
gsize str_len;
gsize suffix_len;
@@ -2958,9 +2960,8 @@ g_str_has_suffix (const gchar *str,
*
* Since: 2.2
*/
-gboolean
-g_str_has_prefix (const gchar *str,
- const gchar *prefix)
+gboolean (g_str_has_prefix) (const gchar *str,
+ const gchar *prefix)
{
g_return_val_if_fail (str != NULL, FALSE);
g_return_val_if_fail (prefix != NULL, FALSE);
diff --git a/glib/gstrfuncs.h b/glib/gstrfuncs.h
index 37d2728d8..cb021b658 100644
--- a/glib/gstrfuncs.h
+++ b/glib/gstrfuncs.h
@@ -32,9 +32,12 @@
#endif
#include <stdarg.h>
+#include <string.h>
+
#include <glib/gmacros.h>
#include <glib/gtypes.h>
#include <glib/gerror.h>
+#include <glib/gmem.h>
G_BEGIN_DECLS
@@ -137,11 +140,73 @@ gchar * g_strrstr_len (const gchar *haystack,
const gchar *needle);
GLIB_AVAILABLE_IN_ALL
-gboolean g_str_has_suffix (const gchar *str,
- const gchar *suffix);
+gboolean (g_str_has_suffix) (const gchar *str,
+ const gchar *suffix);
GLIB_AVAILABLE_IN_ALL
-gboolean g_str_has_prefix (const gchar *str,
- const gchar *prefix);
+gboolean (g_str_has_prefix) (const gchar *str,
+ const gchar *prefix);
+
+#if G_GNUC_CHECK_VERSION (2, 0)
+#ifndef __GTK_DOC_IGNORE__
+#ifndef __GI_SCANNER__
+
+/* This macro is defeat a false -Wnonnull warning in GCC.
+ * Without it, it thinks strlen and memcmp may be getting passed NULL
+ * despite the explicit check for NULL right above the calls.
+ */
+#define _G_STR_NONNULL(x) ((x) + !(x))
+
+#define g_str_has_prefix(STR, PREFIX) \
+ (__builtin_constant_p (PREFIX)? \
+ G_GNUC_EXTENSION ({ \
+ const char * const __str = (STR); \
+ const char * const __prefix = (PREFIX); \
+ gboolean __result = FALSE; \
+ \
+ if G_UNLIKELY (__str == NULL || __prefix == NULL) \
+ __result = (g_str_has_prefix) (__str, __prefix); \
+ else \
+ { \
+ const size_t __str_len = strlen (_G_STR_NONNULL (__str)); \
+ const size_t __prefix_len = strlen (_G_STR_NONNULL (__prefix)); \
+ if (__str_len >= __prefix_len) \
+ __result = memcmp (_G_STR_NONNULL (__str), \
+ _G_STR_NONNULL (__prefix), \
+ __prefix_len) == 0; \
+ } \
+ __result; \
+ }) \
+ : \
+ (g_str_has_prefix) (STR, PREFIX) \
+ )
+
+#define g_str_has_suffix(STR, SUFFIX) \
+ (__builtin_constant_p (SUFFIX)? \
+ G_GNUC_EXTENSION ({ \
+ const char * const __str = (STR); \
+ const char * const __suffix = (SUFFIX); \
+ gboolean __result = FALSE; \
+ \
+ if G_UNLIKELY (__str == NULL || __suffix == NULL) \
+ __result = (g_str_has_suffix) (__str, __suffix); \
+ else \
+ { \
+ const size_t __str_len = strlen (_G_STR_NONNULL (__str)); \
+ const size_t __suffix_len = strlen (_G_STR_NONNULL (__suffix)); \
+ if (__str_len >= __suffix_len) \
+ __result = memcmp (__str + __str_len - __suffix_len, \
+ _G_STR_NONNULL (__suffix), \
+ __suffix_len) == 0; \
+ } \
+ __result; \
+ }) \
+ : \
+ (g_str_has_suffix) (STR, SUFFIX) \
+ )
+
+#endif /* !defined (__GI_SCANNER__) */
+#endif /* !defined (__GTK_DOC_IGNORE__) */
+#endif /* G_GNUC_CHECK_VERSION (2, 0) */
/* String to/from double conversion functions */
@@ -216,7 +281,7 @@ gchar* g_strup (gchar *string);
* ought to be freed with g_free from the caller at some point.
*/
GLIB_AVAILABLE_IN_ALL
-gchar* g_strdup (const gchar *str) G_GNUC_MALLOC;
+gchar* (g_strdup) (const gchar *str) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_strdup_printf (const gchar *format,
...) G_GNUC_PRINTF (1, 2) G_GNUC_MALLOC;
@@ -236,6 +301,32 @@ GLIB_AVAILABLE_IN_ALL
gchar* g_strjoin (const gchar *separator,
...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
+#if G_GNUC_CHECK_VERSION(2, 0)
+#ifndef __GTK_DOC_IGNORE__
+#ifndef __GI_SCANNER__
+
+G_ALWAYS_INLINE static inline char *
+g_strdup_inline (const char *str)
+{
+ if (__builtin_constant_p (!str) && !str)
+ return NULL;
+
+ if (__builtin_constant_p (!!str) && !!str && __builtin_constant_p (strlen (str)))
+ {
+ const size_t len = strlen (str) + 1;
+ char *dup_str = (char *) g_malloc (len);
+ return (char *) memcpy (dup_str, str, len);
+ }
+
+ return g_strdup (str);
+}
+
+#define g_strdup(x) g_strdup_inline (x)
+
+#endif /* !defined (__GI_SCANNER__) */
+#endif /* !defined (__GTK_DOC_IGNORE__) */
+#endif /* G_GNUC_CHECK_VERSION (2, 0) */
+
/* Make a copy of a string interpreting C string -style escape
* sequences. Inverse of g_strescape. The recognized sequences are \b
* \f \n \r \t \\ \" and the octal format.
@@ -363,6 +454,51 @@ gboolean g_ascii_string_to_unsigned (const gchar *str,
guint64 *out_num,
GError **error);
+/**
+ * g_set_str: (skip)
+ * @str_pointer: (inout) (not optional) (nullable): a pointer to either a string or %NULL
+ * @new_str: (nullable): a string to assign to @str_pointer, or %NULL
+ *
+ * Updates a pointer to a string to a copy of @new_str. The previous string
+ * pointed to by @str_pointer will be freed with g_free().
+ *
+ * @str_pointer must not be %NULL, but can point to a %NULL value.
+ *
+ * One convenient usage of this function is in implementing property settings:
+ * |[
+ * void
+ * foo_set_bar (Foo *foo,
+ * const char *new_bar)
+ * {
+ * g_return_if_fail (IS_FOO (foo));
+ *
+ * if (g_set_str (&foo->bar, new_bar))
+ * g_object_notify (foo, "bar");
+ * }
+ * ]|
+ *
+ * Returns: %TRUE if the value of @str_pointer changed, %FALSE otherwise
+ *
+ * Since: 2.76
+ */
+GLIB_AVAILABLE_STATIC_INLINE_IN_2_76
+static inline gboolean
+g_set_str (char **str_pointer,
+ const char *new_str)
+{
+ char *copy;
+
+ if (*str_pointer == new_str ||
+ (*str_pointer && new_str && strcmp (*str_pointer, new_str) == 0))
+ return FALSE;
+
+ copy = g_strdup (new_str);
+ g_free (*str_pointer);
+ *str_pointer = copy;
+
+ return TRUE;
+}
+
G_END_DECLS
#endif /* __G_STRFUNCS_H__ */
diff --git a/glib/gstring.c b/glib/gstring.c
index 6abb70b39..9f0414429 100644
--- a/glib/gstring.c
+++ b/glib/gstring.c
@@ -75,22 +75,29 @@
*/
static void
-g_string_maybe_expand (GString *string,
- gsize len)
+g_string_expand (GString *string,
+ gsize len)
{
/* Detect potential overflow */
if G_UNLIKELY ((G_MAXSIZE - string->len - 1) < len)
g_error ("adding %" G_GSIZE_FORMAT " to string would overflow", len);
- if (string->len + len >= string->allocated_len)
- {
- string->allocated_len = g_nearest_pow (string->len + len + 1);
- /* If the new size is bigger than G_MAXSIZE / 2, only allocate enough
- * memory for this string and don't over-allocate. */
- if (string->allocated_len == 0)
- string->allocated_len = string->len + len + 1;
- string->str = g_realloc (string->str, string->allocated_len);
- }
+ string->allocated_len = g_nearest_pow (string->len + len + 1);
+ /* If the new size is bigger than G_MAXSIZE / 2, only allocate enough
+ * memory for this string and don't over-allocate.
+ */
+ if (string->allocated_len == 0)
+ string->allocated_len = string->len + len + 1;
+
+ string->str = g_realloc (string->str, string->allocated_len);
+}
+
+static inline void
+g_string_maybe_expand (GString *string,
+ gsize len)
+{
+ if (G_UNLIKELY (string->len + len >= string->allocated_len))
+ g_string_expand (string, len);
}
/**
@@ -113,7 +120,7 @@ g_string_sized_new (gsize dfl_size)
string->len = 0;
string->str = NULL;
- g_string_maybe_expand (string, MAX (dfl_size, 64));
+ g_string_expand (string, MAX (dfl_size, 64));
string->str[0] = 0;
return string;
@@ -149,6 +156,41 @@ g_string_new (const gchar *init)
}
/**
+ * g_string_new_take: (constructor)
+ * @init: (nullable) (transfer full): initial text used as the string.
+ * Ownership of the string is transferred to the #GString.
+ * Passing %NULL creates an empty string.
+ *
+ * Creates a new #GString, initialized with the given string.
+ *
+ * After this call, @init belongs to the #GString and may no longer be
+ * modified by the caller. The memory of @data has to be dynamically
+ * allocated and will eventually be freed with g_free().
+ *
+ * Returns: (transfer full): the new #GString
+ *
+ * Since: 2.78
+ */
+GString *
+g_string_new_take (gchar *init)
+{
+ GString *string;
+
+ if (init == NULL)
+ {
+ return g_string_new (NULL);
+ }
+
+ string = g_slice_new (GString);
+
+ string->str = init;
+ string->len = strlen (string->str);
+ string->allocated_len = string->len + 1;
+
+ return string;
+}
+
+/**
* g_string_new_len: (constructor)
* @init: initial contents of the string
* @len: length of @init to use
@@ -192,12 +234,15 @@ g_string_new_len (const gchar *init,
* it's %FALSE, the caller gains ownership of the buffer and must
* free it after use with g_free().
*
+ * Instead of passing %FALSE to this function, consider using
+ * g_string_free_and_steal().
+ *
* Returns: (nullable): the character data of @string
* (i.e. %NULL if @free_segment is %TRUE)
*/
gchar *
-g_string_free (GString *string,
- gboolean free_segment)
+(g_string_free) (GString *string,
+ gboolean free_segment)
{
gchar *segment;
@@ -217,6 +262,25 @@ g_string_free (GString *string,
}
/**
+ * g_string_free_and_steal:
+ * @string: (transfer full): a #GString
+ *
+ * Frees the memory allocated for the #GString.
+ *
+ * The caller gains ownership of the buffer and
+ * must free it after use with g_free().
+ *
+ * Returns: (transfer full): the character data of @string
+ *
+ * Since: 2.76
+ */
+gchar *
+g_string_free_and_steal (GString *string)
+{
+ return (g_string_free) (string, FALSE);
+}
+
+/**
* g_string_free_to_bytes:
* @string: (transfer full): a #GString
*
@@ -351,8 +415,8 @@ g_string_assign (GString *string,
* Returns: (transfer none): @string
*/
GString *
-g_string_truncate (GString *string,
- gsize len)
+(g_string_truncate) (GString *string,
+ gsize len)
{
g_return_val_if_fail (string != NULL, NULL);
@@ -532,8 +596,8 @@ g_string_append_uri_escaped (GString *string,
* Returns: (transfer none): @string
*/
GString *
-g_string_append (GString *string,
- const gchar *val)
+(g_string_append) (GString *string,
+ const gchar *val)
{
return g_string_insert_len (string, -1, val, -1);
}
@@ -557,9 +621,9 @@ g_string_append (GString *string,
* Returns: (transfer none): @string
*/
GString *
-g_string_append_len (GString *string,
- const gchar *val,
- gssize len)
+(g_string_append_len) (GString *string,
+ const gchar *val,
+ gssize len)
{
return g_string_insert_len (string, -1, val, len);
}
@@ -574,10 +638,9 @@ g_string_append_len (GString *string,
*
* Returns: (transfer none): @string
*/
-#undef g_string_append_c
GString *
-g_string_append_c (GString *string,
- gchar c)
+(g_string_append_c) (GString *string,
+ gchar c)
{
g_return_val_if_fail (string != NULL, NULL);
diff --git a/glib/gstring.h b/glib/gstring.h
index 17a7e3c2d..b4ccb34a9 100644
--- a/glib/gstring.h
+++ b/glib/gstring.h
@@ -34,7 +34,9 @@
#include <glib/gtypes.h>
#include <glib/gunicode.h>
#include <glib/gbytes.h>
+#include <glib/gstrfuncs.h>
#include <glib/gutils.h> /* for G_CAN_INLINE */
+#include <string.h>
G_BEGIN_DECLS
@@ -49,14 +51,31 @@ struct _GString
GLIB_AVAILABLE_IN_ALL
GString* g_string_new (const gchar *init);
+GLIB_AVAILABLE_IN_2_78
+GString* g_string_new_take (gchar *init);
GLIB_AVAILABLE_IN_ALL
GString* g_string_new_len (const gchar *init,
gssize len);
GLIB_AVAILABLE_IN_ALL
GString* g_string_sized_new (gsize dfl_size);
GLIB_AVAILABLE_IN_ALL
-gchar* g_string_free (GString *string,
+gchar* (g_string_free) (GString *string,
gboolean free_segment);
+GLIB_AVAILABLE_IN_2_76
+gchar* g_string_free_and_steal (GString *string) G_GNUC_WARN_UNUSED_RESULT;
+
+#if G_GNUC_CHECK_VERSION (2, 0) && (GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_76)
+
+#define g_string_free(str, free_segment) \
+ (__builtin_constant_p (free_segment) ? \
+ ((free_segment) ? \
+ (g_string_free) ((str), (free_segment)) : \
+ g_string_free_and_steal (str)) \
+ : \
+ (g_string_free) ((str), (free_segment)))
+
+#endif /* G_GNUC_CHECK_VERSION (2, 0) && (GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_76) */
+
GLIB_AVAILABLE_IN_2_34
GBytes* g_string_free_to_bytes (GString *string);
GLIB_AVAILABLE_IN_ALL
@@ -162,13 +181,22 @@ GString* g_string_append_uri_escaped (GString *string,
const gchar *reserved_chars_allowed,
gboolean allow_utf8);
-/* -- optimize g_strig_append_c --- */
#ifdef G_CAN_INLINE
+
+#if defined (_MSC_VER) && !defined (__clang__)
+#pragma warning (push)
+#pragma warning (disable : 4141) /* silence "warning C4141: 'inline' used more than once" */
+#endif
+
+#ifndef __GTK_DOC_IGNORE__
+
+G_ALWAYS_INLINE
static inline GString*
g_string_append_c_inline (GString *gstring,
gchar c)
{
- if (gstring->len + 1 < gstring->allocated_len)
+ if (G_LIKELY (gstring != NULL &&
+ gstring->len + 1 < gstring->allocated_len))
{
gstring->str[gstring->len++] = c;
gstring->str[gstring->len] = 0;
@@ -177,9 +205,83 @@ g_string_append_c_inline (GString *gstring,
g_string_insert_c (gstring, -1, c);
return gstring;
}
-#define g_string_append_c(gstr,c) g_string_append_c_inline (gstr, c)
-#endif /* G_CAN_INLINE */
+#define g_string_append_c(gstr,c) \
+ g_string_append_c_inline (gstr, c)
+
+G_ALWAYS_INLINE
+static inline GString *
+g_string_append_len_inline (GString *gstring,
+ const char *val,
+ gssize len)
+{
+ gsize len_unsigned;
+
+ if G_UNLIKELY (gstring == NULL)
+ return g_string_append_len (gstring, val, len);
+
+ if G_UNLIKELY (val == NULL)
+ return (len != 0) ? g_string_append_len (gstring, val, len) : gstring;
+
+ if (len < 0)
+ len_unsigned = strlen (val);
+ else
+ len_unsigned = (gsize) len;
+
+ if (G_LIKELY (gstring->len + len_unsigned < gstring->allocated_len))
+ {
+ char *end = gstring->str + gstring->len;
+ if (G_LIKELY (val + len_unsigned <= end || val > end + len_unsigned))
+ memcpy (end, val, len_unsigned);
+ else
+ memmove (end, val, len_unsigned);
+ gstring->len += len_unsigned;
+ gstring->str[gstring->len] = 0;
+ return gstring;
+ }
+ else
+ return g_string_insert_len (gstring, -1, val, len);
+}
+
+#define g_string_append_len(gstr, val, len) \
+ g_string_append_len_inline (gstr, val, len)
+
+G_ALWAYS_INLINE
+static inline GString *
+g_string_truncate_inline (GString *gstring,
+ gsize len)
+{
+ gstring->len = MIN (len, gstring->len);
+ gstring->str[gstring->len] = '\0';
+ return gstring;
+}
+
+#define g_string_truncate(gstr, len) \
+ g_string_truncate_inline (gstr, len)
+
+#if G_GNUC_CHECK_VERSION (2, 0)
+
+#define g_string_append(gstr, val) \
+ (__builtin_constant_p (val) ? \
+ G_GNUC_EXTENSION ({ \
+ const char * const __val = (val); \
+ g_string_append_len (gstr, __val, \
+ G_LIKELY (__val != NULL) ? \
+ (gssize) strlen (_G_STR_NONNULL (__val)) \
+ : (gssize) -1); \
+ }) \
+ : \
+ g_string_append_len (gstr, val, (gssize) -1))
+
+#endif /* G_GNUC_CHECK_VERSION (2, 0) */
+
+#endif /* __GTK_DOC_IGNORE__ */
+
+#if defined (_MSC_VER) && !defined (__clang__)
+#pragma warning (pop) /* #pragma warning (disable : 4141) */
+#endif
+
+#endif /* G_CAN_INLINE */
GLIB_DEPRECATED
GString *g_string_down (GString *string);
diff --git a/glib/gtester.c b/glib/gtester.c
index af1f29164..24f84f6c9 100644
--- a/glib/gtester.c
+++ b/glib/gtester.c
@@ -305,7 +305,7 @@ launch_test_binary (const char *binary,
gboolean loop_pending;
gint i = 0;
- if (!g_unix_open_pipe (report_pipe, FD_CLOEXEC, &error))
+ if (!g_unix_open_pipe (report_pipe, O_CLOEXEC, &error))
{
if (subtest_mode_fatal)
g_error ("Failed to open pipe for test binary: %s: %s", binary, error->message);
diff --git a/glib/gtestutils.c b/glib/gtestutils.c
index de70e921a..483275a0a 100644
--- a/glib/gtestutils.c
+++ b/glib/gtestutils.c
@@ -33,6 +33,10 @@
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
+#include <inttypes.h>
+#ifdef HAVE_SYS_PRCTL_H
+#include <sys/prctl.h>
+#endif
#ifdef HAVE_SYS_RESOURCE_H
#include <sys/resource.h>
#endif
@@ -58,6 +62,10 @@
#include "glib-private.h"
#include "gutilsprivate.h"
+#define TAP_VERSION G_STRINGIFY (13)
+/* FIXME: Remove '#' prefix when we'll depend on a meson version supporting TAP 14
+ * See https://gitlab.gnome.org/GNOME/glib/-/issues/2885 */
+#define TAP_SUBTEST_PREFIX "# " /* a 4-space indented line */
/**
* SECTION:testing
@@ -85,11 +93,15 @@
* The API is designed to handle creation and registration of test suites
* and test cases implicitly. A simple call like
* |[<!-- language="C" -->
+ * g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
+ *
* g_test_add_func ("/misc/assertions", test_assertions);
* ]|
* creates a test suite called "misc" with a single test case named
* "assertions", which consists of running the test_assertions function.
*
+ * g_test_init() should be called before calling any other test functions.
+ *
* In addition to the traditional g_assert_true(), the test framework provides
* an extended set of assertions for comparisons: g_assert_cmpfloat(),
* g_assert_cmpfloat_with_epsilon(), g_assert_cmpint(), g_assert_cmpuint(),
@@ -166,7 +178,7 @@
* }
* ]|
*
- * ### Integrating GTest in your project
+ * ## Integrating GTest in your project
*
* If you are using the [Meson](http://mesonbuild.com) build system, you will
* typically use the provided `test()` primitive to call the test binaries,
@@ -845,7 +857,10 @@ static void gtest_default_log_handler (const gchar *log_domain,
GLogLevelFlags log_level,
const gchar *message,
gpointer unused_data);
-
+static void g_test_tap_print (unsigned subtest_level,
+ gboolean commented,
+ const char *format,
+ ...) G_GNUC_PRINTF (3, 4);
static const char * const g_test_result_names[] = {
"OK",
@@ -866,6 +881,7 @@ static gchar *test_run_seedstr = NULL;
G_LOCK_DEFINE_STATIC (test_run_rand);
static GRand *test_run_rand = NULL;
static gchar *test_run_name = "";
+static gchar *test_run_name_path = "";
static GSList **test_filename_free_list;
static guint test_run_forks = 0;
static guint test_run_count = 0;
@@ -900,6 +916,7 @@ static const char *test_built_files_dir; /* points into test_argv0_dirnam
static char *test_initial_cwd = NULL;
static gboolean test_in_forked_child = FALSE;
static gboolean test_in_subprocess = FALSE;
+static gboolean test_is_subtest = FALSE;
static GTestConfig mutable_test_config_vars = {
FALSE, /* test_initialized */
TRUE, /* test_quick */
@@ -910,8 +927,98 @@ static GTestConfig mutable_test_config_vars = {
};
const GTestConfig * const g_test_config_vars = &mutable_test_config_vars;
static gboolean no_g_set_prgname = FALSE;
+static GPrintFunc g_default_print_func = NULL;
+
+enum
+{
+ G_TEST_CASE_LARGS_RESULT = 0,
+ G_TEST_CASE_LARGS_RUN_FORKS = 1,
+ G_TEST_CASE_LARGS_EXECUTION_TIME = 2,
+
+ G_TEST_CASE_LARGS_MAX
+};
/* --- functions --- */
+static inline gboolean
+is_subtest (void)
+{
+ return test_is_subtest || test_in_forked_child || test_in_subprocess;
+}
+
+static void
+g_test_print_handler_full (const gchar *string,
+ gboolean use_tap_format,
+ gboolean is_tap_comment,
+ unsigned subtest_level)
+{
+ g_assert (string != NULL);
+
+ if (G_LIKELY (use_tap_format) && strchr (string, '\n') != NULL)
+ {
+ static gboolean last_had_final_newline = TRUE;
+ GString *output = g_string_new_len (NULL, strlen (string) + 2);
+ const char *line = string;
+
+ do
+ {
+ const char *next = strchr (line, '\n');
+
+ if (last_had_final_newline && (next || *line != '\0'))
+ {
+ for (unsigned l = 0; l < subtest_level; ++l)
+ g_string_append (output, TAP_SUBTEST_PREFIX);
+
+ if G_LIKELY (is_tap_comment)
+ g_string_append (output, "# ");
+ }
+
+ if (next)
+ {
+ next += 1; /* Include the newline */
+ g_string_append_len (output, line, next - line);
+ }
+ else
+ {
+ g_string_append (output, line);
+ last_had_final_newline = (*line == '\0');
+ }
+
+ line = next;
+ }
+ while (line != NULL);
+
+ g_default_print_func (output->str);
+ g_string_free (g_steal_pointer (&output), TRUE);
+ }
+ else
+ {
+ g_default_print_func (string);
+ }
+}
+
+static void
+g_test_print_handler (const gchar *string)
+{
+ g_test_print_handler_full (string, test_tap_log, TRUE, is_subtest () ? 1 : 0);
+}
+
+static void
+g_test_tap_print (unsigned subtest_level,
+ gboolean commented,
+ const char *format,
+ ...)
+{
+ va_list args;
+ char *string;
+
+ va_start (args, format);
+ string = g_strdup_vprintf (format, args);
+ va_end (args);
+
+ g_test_print_handler_full (string, TRUE, commented, subtest_level);
+ g_free (string);
+}
+
const char*
g_test_log_type_name (GTestLogType log_type)
{
@@ -948,6 +1055,7 @@ g_test_log_send (guint n_bytes,
{
GTestLogBuffer *lbuffer = g_test_log_buffer_new ();
GTestLogMsg *msg;
+ GString *output;
guint ui;
g_test_log_buffer_push (lbuffer, n_bytes, buffer);
msg = g_test_log_buffer_pop (lbuffer);
@@ -955,22 +1063,25 @@ g_test_log_send (guint n_bytes,
g_warn_if_fail (lbuffer->data->len == 0);
g_test_log_buffer_free (lbuffer);
/* print message */
- g_printerr ("{*LOG(%s)", g_test_log_type_name (msg->log_type));
+ output = g_string_new (NULL);
+ g_string_printf (output, "{*LOG(%s)", g_test_log_type_name (msg->log_type));
for (ui = 0; ui < msg->n_strings; ui++)
- g_printerr (":{%s}", msg->strings[ui]);
+ g_string_append_printf (output, ":{%s}", msg->strings[ui]);
if (msg->n_nums)
{
- g_printerr (":(");
+ g_string_append (output, ":(");
for (ui = 0; ui < msg->n_nums; ui++)
{
if ((long double) (long) msg->nums[ui] == msg->nums[ui])
- g_printerr ("%s%ld", ui ? ";" : "", (long) msg->nums[ui]);
+ g_string_append_printf (output, "%s%ld", ui ? ";" : "", (long) msg->nums[ui]);
else
- g_printerr ("%s%.16g", ui ? ";" : "", (double) msg->nums[ui]);
+ g_string_append_printf (output, "%s%.16g", ui ? ";" : "", (double) msg->nums[ui]);
}
- g_printerr (")");
+ g_string_append_c (output, ')');
}
- g_printerr (":LOG*}\n");
+ g_string_append (output, ":LOG*}");
+ g_printerr ("%s\n", output->str);
+ g_string_free (output, TRUE);
g_test_log_msg_free (msg);
}
}
@@ -988,14 +1099,39 @@ g_test_log (GTestLogType lbit,
gchar *astrings[3] = { NULL, NULL, NULL };
guint8 *dbuffer;
guint32 dbufferlen;
+ unsigned subtest_level;
+ gdouble timing;
+
+ if (g_once_init_enter (&g_default_print_func))
+ {
+ g_once_init_leave (&g_default_print_func,
+ g_set_print_handler (g_test_print_handler));
+ g_assert_nonnull (g_default_print_func);
+ }
+
+ subtest_level = is_subtest () ? 1 : 0;
switch (lbit)
{
case G_TEST_LOG_START_BINARY:
if (test_tap_log)
- g_print ("# random seed: %s\n", string2);
+ {
+ if (!is_subtest ())
+ {
+ g_test_tap_print (0, FALSE, "TAP version " TAP_VERSION "\n");
+ }
+ else
+ {
+ g_test_tap_print (subtest_level > 0 ? subtest_level - 1 : 0, TRUE,
+ "Subtest: %s\n", test_argv0);
+ }
+
+ g_print ("random seed: %s\n", string2);
+ }
else if (g_test_verbose ())
- g_print ("GTest: random seed: %s\n", string2);
+ {
+ g_print ("GTest: random seed: %s\n", string2);
+ }
break;
case G_TEST_LOG_START_SUITE:
if (test_tap_log)
@@ -1003,9 +1139,9 @@ g_test_log (GTestLogType lbit,
/* We only print the TAP "plan" (1..n) ahead of time if we did
* not use the -p option to select specific tests to be run. */
if (string1[0] != 0)
- g_print ("# Start of %s tests\n", string1);
+ g_print ("Start of %s tests\n", string1);
else if (test_paths == NULL)
- g_print ("1..%d\n", test_count);
+ g_test_tap_print (subtest_level, FALSE, "1..%d\n", test_count);
}
break;
case G_TEST_LOG_STOP_SUITE:
@@ -1015,17 +1151,18 @@ g_test_log (GTestLogType lbit,
* we were using -p, we need to print how many tests we ran at
* the end instead. */
if (string1[0] != 0)
- g_print ("# End of %s tests\n", string1);
+ g_print ("End of %s tests\n", string1);
else if (test_paths != NULL)
- g_print ("1..%d\n", test_run_count);
+ g_test_tap_print (subtest_level, FALSE, "1..%d\n", test_run_count);
}
break;
case G_TEST_LOG_STOP_CASE:
- result = largs[0];
+ result = largs[G_TEST_CASE_LARGS_RESULT];
+ timing = largs[G_TEST_CASE_LARGS_EXECUTION_TIME];
fail = result == G_TEST_RUN_FAILURE;
if (test_tap_log)
{
- const gchar *ok;
+ GString *tap_output;
/* The TAP representation for an expected failure starts with
* "not ok", even though it does not actually count as failing
@@ -1034,28 +1171,43 @@ g_test_log (GTestLogType lbit,
* for which GTestResult does not currently have a
* representation. */
if (fail || result == G_TEST_RUN_INCOMPLETE)
- ok = "not ok";
+ tap_output = g_string_new ("not ok");
else
- ok = "ok";
+ tap_output = g_string_new ("ok");
+
+ if (is_subtest ())
+ g_string_prepend (tap_output, TAP_SUBTEST_PREFIX);
- g_print ("%s %d %s", ok, test_run_count, string1);
+ g_string_append_printf (tap_output, " %d %s", test_run_count, string1);
if (result == G_TEST_RUN_INCOMPLETE)
- g_print (" # TODO %s\n", string2 ? string2 : "");
+ g_string_append_printf (tap_output, " # TODO %s", string2 ? string2 : "");
else if (result == G_TEST_RUN_SKIPPED)
- g_print (" # SKIP %s\n", string2 ? string2 : "");
+ g_string_append_printf (tap_output, " # SKIP %s", string2 ? string2 : "");
else if (result == G_TEST_RUN_FAILURE && string2 != NULL)
- g_print (" - %s\n", string2);
- else
- g_print ("\n");
+ g_string_append_printf (tap_output, " - %s", string2);
+
+ g_string_append_c (tap_output, '\n');
+ g_default_print_func (tap_output->str);
+ g_string_free (g_steal_pointer (&tap_output), TRUE);
+
+ /* Print msg for any slow tests, where 'slow' means >= 0.5 secs */
+ if (timing > 0.5)
+ {
+ tap_output = g_string_new ("# ");
+ g_string_append_printf (tap_output, "slow test %s executed in %0.2lf secs\n",
+ string1, timing);
+ g_default_print_func (tap_output->str);
+ g_string_free (g_steal_pointer (&tap_output), TRUE);
+ }
}
else if (g_test_verbose ())
g_print ("GTest: result: %s\n", g_test_result_names[result]);
- else if (!g_test_quiet ())
+ else if (!g_test_quiet () && !test_in_subprocess)
g_print ("%s\n", g_test_result_names[result]);
if (fail && test_mode_fatal)
{
if (test_tap_log)
- g_print ("Bail out!\n");
+ g_test_tap_print (0, FALSE, "Bail out!\n");
g_abort ();
}
if (result == G_TEST_RUN_SKIPPED || result == G_TEST_RUN_INCOMPLETE)
@@ -1063,44 +1215,67 @@ g_test_log (GTestLogType lbit,
break;
case G_TEST_LOG_SKIP_CASE:
if (test_tap_log)
- g_print ("ok %d %s # SKIP\n", test_run_count, string1);
+ {
+ g_test_tap_print (subtest_level, FALSE, "ok %d %s # SKIP\n",
+ test_run_count, string1);
+ }
break;
case G_TEST_LOG_MIN_RESULT:
if (test_tap_log)
- g_print ("# min perf: %s\n", string1);
+ g_print ("min perf: %s\n", string1);
else if (g_test_verbose ())
g_print ("(MINPERF:%s)\n", string1);
break;
case G_TEST_LOG_MAX_RESULT:
if (test_tap_log)
- g_print ("# max perf: %s\n", string1);
+ g_print ("max perf: %s\n", string1);
else if (g_test_verbose ())
g_print ("(MAXPERF:%s)\n", string1);
break;
case G_TEST_LOG_MESSAGE:
if (test_tap_log)
+ g_print ("%s\n", string1);
+ else if (g_test_verbose ())
+ g_print ("(MSG: %s)\n", string1);
+ break;
+ case G_TEST_LOG_ERROR:
+ if (test_tap_log)
{
- if (strstr (string1, "\n") == NULL)
- g_print ("# %s\n", string1);
- else
+ char *message = g_strdup (string1);
+
+ if (message)
{
- char **lines = g_strsplit (string1, "\n", -1);
- gsize i;
+ char *line = message;
- for (i = 0; lines[i] != NULL; i++)
- g_print ("# %s\n", lines[i]);
+ while ((line = strchr (line, '\n')))
+ *(line++) = ' ';
- g_strfreev (lines);
+ message = g_strstrip (message);
}
+
+ if (test_run_name && *test_run_name != '\0')
+ {
+ if (message && *message != '\0')
+ g_test_tap_print (subtest_level, FALSE, "not ok %s - %s\n",
+ test_run_name, message);
+ else
+ g_test_tap_print (subtest_level, FALSE, "not ok %s\n",
+ test_run_name);
+
+ g_clear_pointer (&message, g_free);
+ }
+
+ if (message && *message != '\0')
+ g_test_tap_print (subtest_level, FALSE, "Bail out! %s\n", message);
+ else
+ g_test_tap_print (subtest_level, FALSE, "Bail out!\n");
+
+ g_free (message);
}
else if (g_test_verbose ())
- g_print ("(MSG: %s)\n", string1);
- break;
- case G_TEST_LOG_ERROR:
- if (test_tap_log)
- g_print ("Bail out! %s\n", string1);
- else if (g_test_verbose ())
- g_print ("(ERROR: %s)\n", string1);
+ {
+ g_print ("(ERROR: %s)\n", string1);
+ }
break;
default: ;
}
@@ -1130,6 +1305,33 @@ g_test_log (GTestLogType lbit,
}
}
+/**
+ * g_test_disable_crash_reporting:
+ *
+ * Attempt to disable system crash reporting infrastructure.
+ *
+ * This function should be called before exercising code paths that are
+ * expected or intended to crash, to avoid wasting resources in system-wide
+ * crash collection infrastructure such as systemd-coredump or abrt.
+ *
+ * Since: 2.78
+ */
+void
+g_test_disable_crash_reporting (void)
+{
+#ifdef HAVE_SYS_RESOURCE_H
+ struct rlimit limit = { 0, 0 };
+
+ (void) setrlimit (RLIMIT_CORE, &limit);
+#endif
+
+#if defined(HAVE_PRCTL) && defined(PR_SET_DUMPABLE)
+ /* On Linux, RLIMIT_CORE = 0 is ignored if core dumps are
+ * configured to be written to a pipe, but PR_SET_DUMPABLE is not. */
+ (void) prctl (PR_SET_DUMPABLE, 0, 0, 0, 0);
+#endif
+}
+
/* We intentionally parse the command line without GOptionContext
* because otherwise you would never be able to test it.
*/
@@ -1204,12 +1406,8 @@ parse_args (gint *argc_p,
* tests spawn a *lot* of them. Avoid spamming system crash
* collection programs such as systemd-coredump and abrt.
*/
-#ifdef HAVE_SYS_RESOURCE_H
- {
- struct rlimit limit = { 0, 0 };
- (void) setrlimit (RLIMIT_CORE, &limit);
- }
-#endif
+ g_test_disable_crash_reporting ();
+
argv[i] = NULL;
/* Force non-TAP output when spawning a subprocess, since people often
@@ -1448,7 +1646,7 @@ test_do_isolate_dirs (GError **error)
* deep. Add a `.dirs` directory to contain all the paths we create, and
* guarantee none of them clash with test paths below the current one — test
* paths may not contain components starting with `.`. */
- subdir = g_build_filename (test_tmpdir, test_run_name, ".dirs", NULL);
+ subdir = g_build_filename (test_tmpdir, test_run_name_path, ".dirs", NULL);
/* We have to create the runtime directory (because it must be bound to
* the session lifetime, which we consider to be the lifetime of the unit
@@ -1520,7 +1718,7 @@ test_rm_isolate_dirs (void)
if (!test_isolate_dirs)
return;
- subdir = g_build_filename (test_tmpdir, test_run_name, NULL);
+ subdir = g_build_filename (test_tmpdir, test_run_name_path, NULL);
rm_rf (subdir);
g_free (subdir);
}
@@ -1537,6 +1735,8 @@ test_rm_isolate_dirs (void)
* test random number generator, the name for g_get_prgname()
* and parsing test related command line args.
*
+ * This should be called before calling any other `g_test_*()` functions.
+ *
* So far, the following arguments are understood:
*
* - `-l`: List test cases available in a test executable.
@@ -1633,16 +1833,31 @@ void
}
va_end (args);
- /* setup random seed string */
- g_snprintf (seedstr, sizeof (seedstr), "R02S%08x%08x%08x%08x", g_random_int(), g_random_int(), g_random_int(), g_random_int());
- test_run_seedstr = seedstr;
-
/* parse args, sets up mode, changes seed, etc. */
parse_args (argc, argv);
+ if (test_run_seedstr == NULL)
+ {
+ /* setup random seed string */
+ g_snprintf (seedstr, sizeof (seedstr), "R02S%08x%08x%08x%08x",
+ g_random_int(), g_random_int(), g_random_int(), g_random_int());
+ test_run_seedstr = seedstr;
+ }
+
if (!g_get_prgname() && !no_g_set_prgname)
g_set_prgname ((*argv)[0]);
+ if (g_getenv ("G_TEST_ROOT_PROCESS"))
+ {
+ test_is_subtest = TRUE;
+ }
+ else if (!g_setenv ("G_TEST_ROOT_PROCESS", test_argv0 ? test_argv0 : "root", TRUE))
+ {
+ g_printerr ("%s: Failed to set environment variable ‘%s’\n",
+ test_argv0, "G_TEST_ROOT_PROCESS");
+ exit (1);
+ }
+
/* Set up the temporary directory for isolating the test. We have to do this
* early, as we want the return values from g_get_user_data_dir() (and
* friends) to return subdirectories of the temporary directory throughout
@@ -1683,7 +1898,13 @@ void
g_free (tmpl);
/* Propagate the temporary directory to subprocesses. */
- g_setenv ("G_TEST_TMPDIR", test_isolate_dirs_tmpdir, TRUE);
+ if (!g_setenv ("G_TEST_TMPDIR", test_isolate_dirs_tmpdir, TRUE))
+ {
+ g_printerr ("%s: Failed to set environment variable ‘%s’\n",
+ (*argv)[0], "G_TEST_TMPDIR");
+ exit (1);
+ }
+ _g_unset_cached_tmp_dir ();
/* And clear the traditional environment variables so subprocesses
* spawned by the code under test can’t trash anything. If a test
@@ -1709,7 +1930,14 @@ void
gsize i;
for (i = 0; i < G_N_ELEMENTS (overridden_environment_variables); i++)
- g_setenv (overridden_environment_variables[i], "/dev/null", TRUE);
+ {
+ if (!g_setenv (overridden_environment_variables[i], "/dev/null", TRUE))
+ {
+ g_printerr ("%s: Failed to set environment variable ‘%s’\n",
+ (*argv)[0], overridden_environment_variables[i]);
+ exit (1);
+ }
+ }
}
}
@@ -2904,7 +3132,7 @@ test_case_run (GTestCase *tc)
else
{
GTimer *test_run_timer = g_timer_new();
- long double largs[3];
+ long double largs[G_TEST_CASE_LARGS_MAX];
void *fixture;
g_test_log (G_TEST_LOG_START_CASE, test_run_name, NULL, 0, NULL);
test_run_forks = 0;
@@ -2950,9 +3178,9 @@ test_case_run (GTestCase *tc)
}
success = test_run_success;
test_run_success = G_TEST_RUN_FAILURE;
- largs[0] = success; /* OK */
- largs[1] = test_run_forks;
- largs[2] = g_timer_elapsed (test_run_timer, NULL);
+ largs[G_TEST_CASE_LARGS_RESULT] = success; /* OK */
+ largs[G_TEST_CASE_LARGS_RUN_FORKS] = test_run_forks;
+ largs[G_TEST_CASE_LARGS_EXECUTION_TIME] = g_timer_elapsed (test_run_timer, NULL);
g_test_log (G_TEST_LOG_STOP_CASE, test_run_name, test_run_msg, G_N_ELEMENTS (largs), largs);
g_clear_pointer (&test_run_msg, g_free);
g_timer_destroy (test_run_timer);
@@ -2989,7 +3217,12 @@ test_should_run (const char *test_path,
return TRUE;
if (g_test_verbose ())
- g_print ("GTest: skipping: %s\n", test_run_name);
+ {
+ if (test_tap_log)
+ g_print ("skipping: %s\n", test_run_name);
+ else
+ g_print ("GTest: skipping: %s\n", test_run_name);
+ }
return FALSE;
}
@@ -3005,6 +3238,7 @@ g_test_run_suite_internal (GTestSuite *suite,
{
guint n_bad = 0;
gchar *old_name = test_run_name;
+ gchar *old_name_path = test_run_name_path;
GSList *iter;
g_return_val_if_fail (suite != NULL, -1);
@@ -3016,12 +3250,14 @@ g_test_run_suite_internal (GTestSuite *suite,
GTestCase *tc = iter->data;
test_run_name = g_build_path ("/", old_name, tc->name, NULL);
+ test_run_name_path = g_build_path (G_DIR_SEPARATOR_S, old_name_path, tc->name, NULL);
if (test_should_run (test_run_name, path))
{
if (!test_case_run (tc))
n_bad++;
}
g_free (test_run_name);
+ g_free (test_run_name_path);
}
for (iter = suite->suites; iter; iter = iter->next)
@@ -3029,6 +3265,7 @@ g_test_run_suite_internal (GTestSuite *suite,
GTestSuite *ts = iter->data;
test_run_name = g_build_path ("/", old_name, ts->name, NULL);
+ test_run_name_path = g_build_path (G_DIR_SEPARATOR_S, old_name_path, ts->name, NULL);
if (test_prefix_extended) {
if (!path || path_has_prefix (test_run_name, path))
n_bad += g_test_run_suite_internal (ts, test_run_name);
@@ -3039,9 +3276,11 @@ g_test_run_suite_internal (GTestSuite *suite,
}
g_free (test_run_name);
+ g_free (test_run_name_path);
}
test_run_name = old_name;
+ test_run_name_path = old_name_path;
g_test_log (G_TEST_LOG_STOP_SUITE, suite->name, NULL, 0, NULL);
@@ -3103,6 +3342,7 @@ g_test_run_suite (GTestSuite *suite)
test_count = g_test_suite_count (suite);
test_run_name = g_strdup_printf ("/%s", suite->name);
+ test_run_name_path = g_build_path (G_DIR_SEPARATOR_S, suite->name, NULL);
if (test_paths)
{
@@ -3114,8 +3354,8 @@ g_test_run_suite (GTestSuite *suite)
else
n_bad = g_test_run_suite_internal (suite, NULL);
- g_free (test_run_name);
- test_run_name = NULL;
+ g_clear_pointer (&test_run_name, g_free);
+ g_clear_pointer (&test_run_name_path, g_free);
return n_bad;
}
@@ -3196,9 +3436,10 @@ gtest_default_log_handler (const gchar *log_domain,
msg = g_strjoinv ("", (gchar**) strv);
g_test_log (fatal ? G_TEST_LOG_ERROR : G_TEST_LOG_MESSAGE, msg, NULL, 0, NULL);
- g_log_default_handler (log_domain, log_level, message, unused_data);
-
g_free (msg);
+
+ if (!test_tap_log)
+ g_log_default_handler (log_domain, log_level, message, unused_data);
}
void
@@ -3293,6 +3534,43 @@ g_assertion_message_expr (const char *domain,
}
void
+g_assertion_message_cmpint (const char *domain,
+ const char *file,
+ int line,
+ const char *func,
+ const char *expr,
+ guint64 arg1,
+ const char *cmp,
+ guint64 arg2,
+ char numtype)
+{
+ char *s = NULL;
+
+ switch (numtype)
+ {
+ case 'i':
+ s = g_strdup_printf ("assertion failed (%s): "
+ "(%" PRIi64 " %s %" PRIi64 ")",
+ expr, (int64_t) arg1, cmp, (int64_t) arg2);
+ break;
+ case 'u':
+ s = g_strdup_printf ("assertion failed (%s): "
+ "(%" PRIu64 " %s %" PRIu64 ")",
+ expr, (uint64_t) arg1, cmp, (uint64_t) arg2);
+ break;
+ case 'x':
+ s = g_strdup_printf ("assertion failed (%s): "
+ "(0x%08" PRIx64 " %s 0x%08" PRIx64 ")",
+ expr, (uint64_t) arg1, cmp, (uint64_t) arg2);
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+ g_assertion_message (domain, file, line, func, s);
+ g_free (s);
+}
+
+void
g_assertion_message_cmpnum (const char *domain,
const char *file,
int line,
@@ -3307,10 +3585,16 @@ g_assertion_message_cmpnum (const char *domain,
switch (numtype)
{
- case 'i': s = g_strdup_printf ("assertion failed (%s): (%" G_GINT64_MODIFIER "i %s %" G_GINT64_MODIFIER "i)", expr, (gint64) arg1, cmp, (gint64) arg2); break;
- case 'x': s = g_strdup_printf ("assertion failed (%s): (0x%08" G_GINT64_MODIFIER "x %s 0x%08" G_GINT64_MODIFIER "x)", expr, (guint64) arg1, cmp, (guint64) arg2); break;
case 'f': s = g_strdup_printf ("assertion failed (%s): (%.9g %s %.9g)", expr, (double) arg1, cmp, (double) arg2); break;
/* ideally use: floats=%.7g double=%.17g */
+ case 'i':
+ case 'x':
+ /* Backwards compatibility to apps compiled before 2.78 */
+ g_assertion_message_cmpint (domain, file, line, func, expr,
+ (guint64) arg1, cmp, (guint64) arg2, numtype);
+ break;
+ default:
+ g_assert_not_reached ();
}
g_assertion_message (domain, file, line, func, s);
g_free (s);
@@ -3522,7 +3806,10 @@ child_read (GIOChannel *io, GIOCondition cond, gpointer user_data)
{
g_string_append_len (data->stdout_str, buf, nread);
if (data->echo_stdout)
- echo_file = stdout;
+ {
+ if G_UNLIKELY (!test_tap_log)
+ echo_file = stdout;
+ }
}
else
{
@@ -3603,6 +3890,22 @@ wait_for_child (GPid pid,
g_main_loop_unref (data.loop);
g_main_context_unref (context);
+ if (echo_stdout && test_tap_log && data.stdout_str->len > 0)
+ {
+ gboolean added_newline = FALSE;
+
+ if (data.stdout_str->str[data.stdout_str->len - 1] != '\n')
+ {
+ g_string_append_c (data.stdout_str, '\n');
+ added_newline = TRUE;
+ }
+
+ g_test_print_handler_full (data.stdout_str->str, TRUE, TRUE, 1);
+
+ if (added_newline)
+ g_string_truncate (data.stdout_str, data.stdout_str->len - 1);
+ }
+
test_trap_last_pid = pid;
test_trap_last_status = data.child_status;
test_trap_last_stdout = g_string_free (data.stdout_str, FALSE);
@@ -3651,8 +3954,9 @@ wait_for_child (GPid pid,
* Since: 2.16
*
* Deprecated: This function is implemented only on Unix platforms,
- * and is not always reliable due to problems inherent in
- * fork-without-exec. Use g_test_trap_subprocess() instead.
+ * is not always reliable due to problems inherent in fork-without-exec
+ * and doesn't set close-on-exec flag on its file descriptors.
+ * Use g_test_trap_subprocess() instead.
*/
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
gboolean
@@ -3702,12 +4006,7 @@ g_test_trap_fork (guint64 usec_timeout,
* tests spawn a *lot* of them. Avoid spamming system crash
* collection programs such as systemd-coredump and abrt.
*/
-#ifdef HAVE_SYS_RESOURCE_H
- {
- struct rlimit limit = { 0, 0 };
- (void) setrlimit (RLIMIT_CORE, &limit);
- }
-#endif
+ g_test_disable_crash_reporting ();
return TRUE;
}
@@ -3768,6 +4067,11 @@ G_GNUC_END_IGNORE_DEPRECATIONS
* the subprocess, you can call g_test_subprocess() (after calling
* g_test_init()) to see whether you are in a subprocess.
*
+ * Internally, this function tracks the child process using
+ * g_child_watch_source_new(), so your process must not ignore `SIGCHLD`, and
+ * must not attempt to watch or wait for the child process via another
+ * mechanism.
+ *
* The following example tests that calling
* `my_object_new(1000000)` will abort with an error
* message.
@@ -3826,7 +4130,12 @@ g_test_trap_subprocess (const char *test_path,
}
if (g_test_verbose ())
- g_print ("GTest: subprocess: %s\n", test_path);
+ {
+ if (test_tap_log)
+ g_print ("subprocess: %s\n", test_path);
+ else
+ g_print ("GTest: subprocess: %s\n", test_path);
+ }
test_trap_clear ();
test_trap_last_subprocess = g_strdup (test_path);
@@ -4050,8 +4359,10 @@ g_test_trap_assertions (const char *domain,
logged_child_output = logged_child_output || log_child_output (process_id);
- msg = g_strdup_printf ("stdout of child process (%s) %s: %s\nstdout was:\n%s",
- process_id, match_error, stdout_pattern, test_trap_last_stdout);
+ g_test_message ("stdout was:\n%s", test_trap_last_stdout);
+
+ msg = g_strdup_printf ("stdout of child process (%s) %s: %s",
+ process_id, match_error, stdout_pattern);
g_assertion_message (domain, file, line, func, msg);
g_free (msg);
}
@@ -4061,8 +4372,10 @@ g_test_trap_assertions (const char *domain,
logged_child_output = logged_child_output || log_child_output (process_id);
- msg = g_strdup_printf ("stderr of child process (%s) %s: %s\nstderr was:\n%s",
- process_id, match_error, stderr_pattern, test_trap_last_stderr);
+ g_test_message ("stderr was:\n%s", test_trap_last_stderr);
+
+ msg = g_strdup_printf ("stderr of child process (%s) %s: %s",
+ process_id, match_error, stderr_pattern);
g_assertion_message (domain, file, line, func, msg);
g_free (msg);
}
@@ -4456,6 +4769,8 @@ g_test_get_filename (GTestFileType file_type,
*
* This function returns a valid string only within a test function.
*
+ * Note that this is a test path, not a file system path.
+ *
* Returns: the test path for the test currently being run
*
* Since: 2.68
diff --git a/glib/gtestutils.h b/glib/gtestutils.h
index 4e38eb414..30ede2588 100644
--- a/glib/gtestutils.h
+++ b/glib/gtestutils.h
@@ -49,6 +49,26 @@ typedef void (*GTestFixtureFunc) (gpointer fixture,
g_assertion_message_cmpstr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
#s1 " " #cmp " " #s2, __s1, #cmp, __s2); \
} G_STMT_END
+#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_78
+#define g_assert_cmpint(n1, cmp, n2) G_STMT_START { \
+ gint64 __n1 = (n1), __n2 = (n2); \
+ if (__n1 cmp __n2) ; else \
+ g_assertion_message_cmpint (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ #n1 " " #cmp " " #n2, (guint64)__n1, #cmp, (guint64)__n2, 'i'); \
+ } G_STMT_END
+#define g_assert_cmpuint(n1, cmp, n2) G_STMT_START { \
+ guint64 __n1 = (n1), __n2 = (n2); \
+ if (__n1 cmp __n2) ; else \
+ g_assertion_message_cmpint (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ #n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'u'); \
+ } G_STMT_END
+#define g_assert_cmphex(n1, cmp, n2) G_STMT_START { \
+ guint64 __n1 = (n1), __n2 = (n2); \
+ if (__n1 cmp __n2) ; else \
+ g_assertion_message_cmpint (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ #n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'x'); \
+ } G_STMT_END
+#else /* GLIB_VERSION_MIN_REQUIRED < GLIB_VERSION_2_78 */
#define g_assert_cmpint(n1, cmp, n2) G_STMT_START { \
gint64 __n1 = (n1), __n2 = (n2); \
if (__n1 cmp __n2) ; else \
@@ -67,6 +87,7 @@ typedef void (*GTestFixtureFunc) (gpointer fixture,
g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
#n1 " " #cmp " " #n2, (long double) __n1, #cmp, (long double) __n2, 'x'); \
} G_STMT_END
+#endif /* GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_78 */
#define g_assert_cmpfloat(n1,cmp,n2) G_STMT_START { \
long double __n1 = (long double) (n1), __n2 = (long double) (n2); \
if (__n1 cmp __n2) ; else \
@@ -80,9 +101,28 @@ typedef void (*GTestFixtureFunc) (gpointer fixture,
g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
#n1 " == " #n2 " (+/- " #epsilon ")", __n1, "==", __n2, 'f'); \
} G_STMT_END
+#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_78
#define g_assert_cmpmem(m1, l1, m2, l2) G_STMT_START {\
gconstpointer __m1 = m1, __m2 = m2; \
- int __l1 = l1, __l2 = l2; \
+ size_t __l1 = (size_t) l1, __l2 = (size_t) l2; \
+ if (__l1 != 0 && __m1 == NULL) \
+ g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ "assertion failed (" #l1 " == 0 || " #m1 " != NULL)"); \
+ else if (__l2 != 0 && __m2 == NULL) \
+ g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ "assertion failed (" #l2 " == 0 || " #m2 " != NULL)"); \
+ else if (__l1 != __l2) \
+ g_assertion_message_cmpint (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ #l1 " (len(" #m1 ")) == " #l2 " (len(" #m2 "))", \
+ __l1, "==", __l2, 'u'); \
+ else if (__l1 != 0 && __m2 != NULL && memcmp (__m1, __m2, __l1) != 0) \
+ g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ "assertion failed (" #m1 " == " #m2 ")"); \
+ } G_STMT_END
+#else /* GLIB_VERSION_MIN_REQUIRED < GLIB_VERSION_2_78 */
+#define g_assert_cmpmem(m1, l1, m2, l2) G_STMT_START {\
+ gconstpointer __m1 = m1, __m2 = m2; \
+ size_t __l1 = (size_t) l1, __l2 = (size_t) l2; \
if (__l1 != 0 && __m1 == NULL) \
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
"assertion failed (" #l1 " == 0 || " #m1 " != NULL)"); \
@@ -97,6 +137,7 @@ typedef void (*GTestFixtureFunc) (gpointer fixture,
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
"assertion failed (" #m1 " == " #m2 ")"); \
} G_STMT_END
+#endif /* GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_78 */
#define g_assert_cmpvariant(v1, v2) \
G_STMT_START \
{ \
@@ -195,7 +236,7 @@ typedef void (*GTestFixtureFunc) (gpointer fixture,
} G_STMT_END
/* Use nullptr in C++ to catch misuse of these macros. */
-#if defined(__cplusplus) && __cplusplus >= 201100L
+#if G_CXX_STD_CHECK_VERSION (11)
#define g_assert_null(expr) G_STMT_START { if G_LIKELY ((expr) == nullptr) ; else \
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
"'" #expr "' should be nullptr"); \
@@ -366,6 +407,8 @@ GLIB_AVAILABLE_IN_2_38
gboolean g_test_failed (void);
GLIB_AVAILABLE_IN_2_38
void g_test_set_nonfatal_assertions (void);
+GLIB_AVAILABLE_IN_2_78
+void g_test_disable_crash_reporting (void);
/**
* g_test_add:
@@ -541,8 +584,8 @@ void g_assertion_message (const char *domain,
int line,
const char *func,
const char *message) G_ANALYZER_NORETURN;
-GLIB_AVAILABLE_IN_ALL
G_NORETURN
+GLIB_AVAILABLE_IN_ALL
void g_assertion_message_expr (const char *domain,
const char *file,
int line,
@@ -567,6 +610,16 @@ void g_assertion_message_cmpstrv (const char *domain,
const char * const *arg1,
const char * const *arg2,
gsize first_wrong_idx) G_ANALYZER_NORETURN;
+GLIB_AVAILABLE_IN_2_78
+void g_assertion_message_cmpint (const char *domain,
+ const char *file,
+ int line,
+ const char *func,
+ const char *expr,
+ guint64 arg1,
+ const char *cmp,
+ guint64 arg2,
+ char numtype) G_ANALYZER_NORETURN;
GLIB_AVAILABLE_IN_ALL
void g_assertion_message_cmpnum (const char *domain,
const char *file,
diff --git a/glib/gthread-posix.c b/glib/gthread-posix.c
index 84f62881d..ad4c006fd 100644
--- a/glib/gthread-posix.c
+++ b/glib/gthread-posix.c
@@ -1047,24 +1047,101 @@ g_private_impl_free (pthread_key_t *key)
free (key);
}
-static inline pthread_key_t *
-g_private_get_impl (GPrivate *key)
+static gpointer
+g_private_impl_new_direct (GDestroyNotify notify)
{
- pthread_key_t *impl = g_atomic_pointer_get (&key->p);
+ gpointer impl = (void *) (gssize) -1;
+ pthread_key_t key;
+ gint status;
- if G_UNLIKELY (impl == NULL)
+ status = pthread_key_create (&key, notify);
+ if G_UNLIKELY (status != 0)
+ g_thread_abort (status, "pthread_key_create");
+
+ memcpy (&impl, &key, sizeof (pthread_key_t));
+
+ /* pthread_key_create could theoretically put a NULL value into key.
+ * If that happens, waste the result and create a new one, since we
+ * use NULL to mean "not yet allocated".
+ *
+ * This will only happen once per program run.
+ *
+ * We completely avoid this problem for the case where pthread_key_t
+ * is smaller than void* (for example, on 64 bit Linux) by putting
+ * some high bits in the value of 'impl' to start with. Since we only
+ * overwrite part of the pointer, we will never end up with NULL.
+ */
+ if (sizeof (pthread_key_t) == sizeof (gpointer))
{
- impl = g_private_impl_new (key->notify);
- if (!g_atomic_pointer_compare_and_exchange (&key->p, NULL, impl))
+ if G_UNLIKELY (impl == NULL)
{
- g_private_impl_free (impl);
- impl = key->p;
+ status = pthread_key_create (&key, notify);
+ if G_UNLIKELY (status != 0)
+ g_thread_abort (status, "pthread_key_create");
+
+ memcpy (&impl, &key, sizeof (pthread_key_t));
+
+ if G_UNLIKELY (impl == NULL)
+ g_thread_abort (status, "pthread_key_create (gave NULL result twice)");
}
}
return impl;
}
+static void
+g_private_impl_free_direct (gpointer impl)
+{
+ pthread_key_t tmp;
+ gint status;
+
+ memcpy (&tmp, &impl, sizeof (pthread_key_t));
+
+ status = pthread_key_delete (tmp);
+ if G_UNLIKELY (status != 0)
+ g_thread_abort (status, "pthread_key_delete");
+}
+
+static inline pthread_key_t
+g_private_get_impl (GPrivate *key)
+{
+ if (sizeof (pthread_key_t) > sizeof (gpointer))
+ {
+ pthread_key_t *impl = g_atomic_pointer_get (&key->p);
+
+ if G_UNLIKELY (impl == NULL)
+ {
+ impl = g_private_impl_new (key->notify);
+ if (!g_atomic_pointer_compare_and_exchange (&key->p, NULL, impl))
+ {
+ g_private_impl_free (impl);
+ impl = key->p;
+ }
+ }
+
+ return *impl;
+ }
+ else
+ {
+ gpointer impl = g_atomic_pointer_get (&key->p);
+ pthread_key_t tmp;
+
+ if G_UNLIKELY (impl == NULL)
+ {
+ impl = g_private_impl_new_direct (key->notify);
+ if (!g_atomic_pointer_compare_and_exchange (&key->p, NULL, impl))
+ {
+ g_private_impl_free_direct (impl);
+ impl = key->p;
+ }
+ }
+
+ memcpy (&tmp, &impl, sizeof (pthread_key_t));
+
+ return tmp;
+ }
+}
+
/**
* g_private_get:
* @key: a #GPrivate
@@ -1081,7 +1158,7 @@ gpointer
g_private_get (GPrivate *key)
{
/* quote POSIX: No errors are returned from pthread_getspecific(). */
- return pthread_getspecific (*g_private_get_impl (key));
+ return pthread_getspecific (g_private_get_impl (key));
}
/**
@@ -1101,7 +1178,7 @@ g_private_set (GPrivate *key,
{
gint status;
- if G_UNLIKELY ((status = pthread_setspecific (*g_private_get_impl (key), value)) != 0)
+ if G_UNLIKELY ((status = pthread_setspecific (g_private_get_impl (key), value)) != 0)
g_thread_abort (status, "pthread_setspecific");
}
@@ -1123,13 +1200,13 @@ void
g_private_replace (GPrivate *key,
gpointer value)
{
- pthread_key_t *impl = g_private_get_impl (key);
+ pthread_key_t impl = g_private_get_impl (key);
gpointer old;
gint status;
- old = pthread_getspecific (*impl);
+ old = pthread_getspecific (impl);
- if G_UNLIKELY ((status = pthread_setspecific (*impl, value)) != 0)
+ if G_UNLIKELY ((status = pthread_setspecific (impl, value)) != 0)
g_thread_abort (status, "pthread_setspecific");
if (old && key->notify)
@@ -1157,9 +1234,6 @@ typedef struct
GMutex lock;
void *(*proxy) (void *);
-
- /* Must be statically allocated and valid forever */
- const GThreadSchedulerSettings *scheduler_settings;
} GThreadPosix;
void
@@ -1175,106 +1249,9 @@ g_system_thread_free (GRealThread *thread)
g_slice_free (GThreadPosix, pt);
}
-gboolean
-g_system_thread_get_scheduler_settings (GThreadSchedulerSettings *scheduler_settings)
-{
- /* FIXME: Implement the same for macOS and the BSDs so it doesn't go through
- * the fallback code using an additional thread. */
-#if defined(HAVE_SYS_SCHED_GETATTR)
- pid_t tid;
- int res;
- /* FIXME: The struct definition does not seem to be possible to pull in
- * via any of the normal system headers and it's only declared in the
- * kernel headers. That's why we hardcode 56 here right now. */
- guint size = 56; /* Size as of Linux 5.3.9 */
- guint flags = 0;
-
- tid = (pid_t) syscall (SYS_gettid);
-
- scheduler_settings->attr = g_malloc0 (size);
-
- do
- {
- int errsv;
-
- res = syscall (SYS_sched_getattr, tid, scheduler_settings->attr, size, flags);
- errsv = errno;
- if (res == -1)
- {
- if (errsv == EAGAIN)
- {
- continue;
- }
- else if (errsv == E2BIG)
- {
- g_assert (size < G_MAXINT);
- size *= 2;
- scheduler_settings->attr = g_realloc (scheduler_settings->attr, size);
- /* Needs to be zero-initialized */
- memset (scheduler_settings->attr, 0, size);
- }
- else
- {
- g_debug ("Failed to get thread scheduler attributes: %s", g_strerror (errsv));
- g_free (scheduler_settings->attr);
-
- return FALSE;
- }
- }
- }
- while (res == -1);
-
- /* Try setting them on the current thread to see if any system policies are
- * in place that would disallow doing so */
- res = syscall (SYS_sched_setattr, tid, scheduler_settings->attr, flags);
- if (res == -1)
- {
- int errsv = errno;
-
- g_debug ("Failed to set thread scheduler attributes: %s", g_strerror (errsv));
- g_free (scheduler_settings->attr);
-
- return FALSE;
- }
-
- return TRUE;
-#else
- return FALSE;
-#endif
-}
-
-#if defined(HAVE_SYS_SCHED_GETATTR)
-static void *
-linux_pthread_proxy (void *data)
-{
- GThreadPosix *thread = data;
- static gboolean printed_scheduler_warning = FALSE; /* (atomic) */
-
- /* Set scheduler settings first if requested */
- if (thread->scheduler_settings)
- {
- pid_t tid = 0;
- guint flags = 0;
- int res;
- int errsv;
-
- tid = (pid_t) syscall (SYS_gettid);
- res = syscall (SYS_sched_setattr, tid, thread->scheduler_settings->attr, flags);
- errsv = errno;
- if (res == -1 && g_atomic_int_compare_and_exchange (&printed_scheduler_warning, FALSE, TRUE))
- g_critical ("Failed to set scheduler settings: %s", g_strerror (errsv));
- else if (res == -1)
- g_debug ("Failed to set scheduler settings: %s", g_strerror (errsv));
- }
-
- return thread->proxy (data);
-}
-#endif
-
GRealThread *
g_system_thread_new (GThreadFunc proxy,
gulong stack_size,
- const GThreadSchedulerSettings *scheduler_settings,
const char *name,
GThreadFunc func,
gpointer data,
@@ -1293,7 +1270,6 @@ g_system_thread_new (GThreadFunc proxy,
base_thread->thread.func = func;
base_thread->thread.data = data;
base_thread->name = g_strdup (name);
- thread->scheduler_settings = scheduler_settings;
thread->proxy = proxy;
posix_check_cmd (pthread_attr_init (&attr));
@@ -1313,18 +1289,13 @@ g_system_thread_new (GThreadFunc proxy,
#endif /* HAVE_PTHREAD_ATTR_SETSTACKSIZE */
#ifdef HAVE_PTHREAD_ATTR_SETINHERITSCHED
- if (!scheduler_settings)
{
/* While this is the default, better be explicit about it */
pthread_attr_setinheritsched (&attr, PTHREAD_INHERIT_SCHED);
}
#endif /* HAVE_PTHREAD_ATTR_SETINHERITSCHED */
-#if defined(HAVE_SYS_SCHED_GETATTR)
- ret = pthread_create (&thread->system_thread, &attr, linux_pthread_proxy, thread);
-#else
ret = pthread_create (&thread->system_thread, &attr, (void* (*)(void*))proxy, thread);
-#endif
posix_check_cmd (pthread_attr_destroy (&attr));
@@ -1629,16 +1600,18 @@ g_cond_wait_until (GCond *cond,
* have any relation to the one used by the kernel for the `futex` syscall.
*
* Specifically, the libc headers might use 64-bit `time_t` while the kernel
- * headers use 32-bit `__kernel_old_time_t` on certain systems.
+ * headers use 32-bit types on certain systems.
*
* To get around this problem we
* a) check if `futex_time64` is available, which only exists on 32-bit
* platforms and always uses 64-bit `time_t`.
* b) otherwise (or if that returns `ENOSYS`), we call the normal `futex`
- * syscall with the `struct timespec` used by the kernel, which uses
- * `__kernel_long_t` for both its fields. We use that instead of
- * `__kernel_old_time_t` because it is equivalent and available in the
- * kernel headers for a longer time.
+ * syscall with the `struct timespec` used by the kernel. By default, we
+ * use `__kernel_long_t` for both its fields, which is equivalent to
+ * `__kernel_old_time_t` and is available in the kernel headers for a
+ * longer time.
+ * c) With very old headers (~2.6.x), `__kernel_long_t` is not available, and
+ * we use an older definition that uses `__kernel_time_t` and `long`.
*
* Also some 32-bit systems do not define `__NR_futex` at all and only
* define `__NR_futex_time64`.
@@ -1678,14 +1651,24 @@ g_cond_wait_until (GCond *cond,
#ifdef __NR_futex
{
+# ifdef __kernel_long_t
+# define KERNEL_SPAN_SEC_TYPE __kernel_long_t
struct
{
__kernel_long_t tv_sec;
__kernel_long_t tv_nsec;
} span_arg;
-
+# else
+ /* Very old kernel headers: version 2.6.32 and thereabouts */
+# define KERNEL_SPAN_SEC_TYPE __kernel_time_t
+ struct
+ {
+ __kernel_time_t tv_sec;
+ long tv_nsec;
+ } span_arg;
+# endif
/* Make sure to only ever call this if the end time actually fits into the target type */
- if (G_UNLIKELY (sizeof (__kernel_long_t) < 8 && span.tv_sec > G_MAXINT32))
+ if (G_UNLIKELY (sizeof (KERNEL_SPAN_SEC_TYPE) < 8 && span.tv_sec > G_MAXINT32))
g_error ("%s: Can’t wait for more than %us", G_STRFUNC, G_MAXINT32);
span_arg.tv_sec = span.tv_sec;
@@ -1697,6 +1680,7 @@ g_cond_wait_until (GCond *cond,
return success;
}
+# undef KERNEL_SPAN_SEC_TYPE
#endif /* defined(__NR_futex) */
/* We can't end up here because of the checks above */
diff --git a/glib/gthread-win32.c b/glib/gthread-win32.c
index 25fbe54db..58e244ebe 100644
--- a/glib/gthread-win32.c
+++ b/glib/gthread-win32.c
@@ -463,19 +463,9 @@ g_thread_win32_proxy (gpointer data)
return 0;
}
-gboolean
-g_system_thread_get_scheduler_settings (GThreadSchedulerSettings *scheduler_settings)
-{
- HANDLE current_thread = GetCurrentThread ();
- scheduler_settings->thread_prio = GetThreadPriority (current_thread);
-
- return TRUE;
-}
-
GRealThread *
g_system_thread_new (GThreadFunc proxy,
gulong stack_size,
- const GThreadSchedulerSettings *scheduler_settings,
const char *name,
GThreadFunc func,
gpointer data,
@@ -515,16 +505,10 @@ g_system_thread_new (GThreadFunc proxy,
* On Windows, by default all new threads are created with NORMAL thread
* priority.
*/
-
- if (scheduler_settings)
- {
- thread_prio = scheduler_settings->thread_prio;
- }
- else
- {
- HANDLE current_thread = GetCurrentThread ();
- thread_prio = GetThreadPriority (current_thread);
- }
+ {
+ HANDLE current_thread = GetCurrentThread ();
+ thread_prio = GetThreadPriority (current_thread);
+ }
if (thread_prio == THREAD_PRIORITY_ERROR_RETURN)
{
diff --git a/glib/gthread.c b/glib/gthread.c
index bc9b1c2b3..eed759590 100644
--- a/glib/gthread.c
+++ b/glib/gthread.c
@@ -474,7 +474,7 @@
/**
* GThreadFunc:
- * @user_data: data passed to the thread
+ * @data: data passed to the thread
*
* Specifies the type of the @func functions passed to g_thread_new()
* or g_thread_try_new().
@@ -885,7 +885,7 @@ g_thread_new (const gchar *name,
GError *error = NULL;
GThread *thread;
- thread = g_thread_new_internal (name, g_thread_proxy, func, data, 0, NULL, &error);
+ thread = g_thread_new_internal (name, g_thread_proxy, func, data, 0, &error);
if G_UNLIKELY (thread == NULL)
g_error ("creating thread '%s': %s", name ? name : "", error->message);
@@ -916,7 +916,7 @@ g_thread_try_new (const gchar *name,
gpointer data,
GError **error)
{
- return g_thread_new_internal (name, g_thread_proxy, func, data, 0, NULL, error);
+ return g_thread_new_internal (name, g_thread_proxy, func, data, 0, error);
}
GThread *
@@ -925,7 +925,6 @@ g_thread_new_internal (const gchar *name,
GThreadFunc func,
gpointer data,
gsize stack_size,
- const GThreadSchedulerSettings *scheduler_settings,
GError **error)
{
g_return_val_if_fail (func != NULL, NULL);
@@ -933,16 +932,7 @@ g_thread_new_internal (const gchar *name,
g_atomic_int_inc (&g_thread_n_created_counter);
g_trace_mark (G_TRACE_CURRENT_TIME, 0, "GLib", "GThread created", "%s", name ? name : "(unnamed)");
- return (GThread *) g_system_thread_new (proxy, stack_size, scheduler_settings,
- name, func, data, error);
-}
-
-gboolean
-g_thread_get_scheduler_settings (GThreadSchedulerSettings *scheduler_settings)
-{
- g_return_val_if_fail (scheduler_settings != NULL, FALSE);
-
- return g_system_thread_get_scheduler_settings (scheduler_settings);
+ return (GThread *) g_system_thread_new (proxy, stack_size, name, func, data, error);
}
/**
diff --git a/glib/gthread.h b/glib/gthread.h
index 5a8fc5fb1..14bb5a07d 100644
--- a/glib/gthread.h
+++ b/glib/gthread.h
@@ -46,7 +46,7 @@ typedef enum
G_THREAD_ERROR_AGAIN /* Resource temporarily unavailable */
} GThreadError;
-typedef gpointer (*GThreadFunc) (gpointer user_data);
+typedef gpointer (*GThreadFunc) (gpointer data);
typedef struct _GThread GThread;
@@ -154,7 +154,7 @@ GThread * g_thread_try_new (const gchar *name,
GError **error);
GLIB_AVAILABLE_IN_ALL
GThread * g_thread_self (void);
-GLIB_AVAILABLE_IN_ALL
+G_NORETURN GLIB_AVAILABLE_IN_ALL
void g_thread_exit (gpointer retval);
GLIB_AVAILABLE_IN_ALL
gpointer g_thread_join (GThread *thread);
diff --git a/glib/gthreadpool.c b/glib/gthreadpool.c
index 0d656f072..c18de89d0 100644
--- a/glib/gthreadpool.c
+++ b/glib/gthreadpool.c
@@ -30,6 +30,7 @@
#include "gasyncqueue.h"
#include "gasyncqueueprivate.h"
+#include "glib-private.h"
#include "gmain.h"
#include "gtestutils.h"
#include "gthreadprivate.h"
@@ -116,9 +117,6 @@ static gint max_unused_threads = 2;
static gint kill_unused_threads = 0;
static guint max_idle_time = 15 * 1000;
-static GThreadSchedulerSettings shared_thread_scheduler_settings;
-static gboolean have_shared_thread_scheduler_settings = FALSE;
-
typedef struct
{
/* Either thread or error are set in the end. Both transfer-full. */
@@ -470,30 +468,22 @@ g_thread_pool_start_thread (GRealThreadPool *pool,
{
/* For non-exclusive thread-pools this can be called at any time
* when a new thread is needed. We make sure to create a new thread
- * here with the correct scheduler settings: either by directly
- * providing them if supported by the GThread implementation or by
- * going via our helper thread.
+ * here with the correct scheduler settings by going via our helper
+ * thread.
*/
- if (have_shared_thread_scheduler_settings)
- {
- thread = g_thread_new_internal (name, g_thread_proxy, g_thread_pool_thread_proxy, pool, 0, &shared_thread_scheduler_settings, error);
- }
- else
- {
- SpawnThreadData spawn_thread_data = { (GThreadPool *) pool, NULL, NULL };
+ SpawnThreadData spawn_thread_data = { (GThreadPool *) pool, NULL, NULL };
- g_async_queue_lock (spawn_thread_queue);
+ g_async_queue_lock (spawn_thread_queue);
- g_async_queue_push_unlocked (spawn_thread_queue, &spawn_thread_data);
+ g_async_queue_push_unlocked (spawn_thread_queue, &spawn_thread_data);
- while (!spawn_thread_data.thread && !spawn_thread_data.error)
- g_cond_wait (&spawn_thread_cond, _g_async_queue_get_mutex (spawn_thread_queue));
+ while (!spawn_thread_data.thread && !spawn_thread_data.error)
+ g_cond_wait (&spawn_thread_cond, _g_async_queue_get_mutex (spawn_thread_queue));
- thread = spawn_thread_data.thread;
- if (!thread)
- g_propagate_error (error, g_steal_pointer (&spawn_thread_data.error));
- g_async_queue_unlock (spawn_thread_queue);
- }
+ thread = spawn_thread_data.thread;
+ if (!thread)
+ g_propagate_error (error, g_steal_pointer (&spawn_thread_data.error));
+ g_async_queue_unlock (spawn_thread_queue);
}
if (thread == NULL)
@@ -546,6 +536,15 @@ g_thread_pool_start_thread (GRealThreadPool *pool,
* since their threads are never considered idle and returned to the
* global pool.
*
+ * Note that the threads used by exclusive thread pools will all inherit the
+ * scheduler settings of the current thread while the threads used by
+ * non-exclusive thread pools will inherit the scheduler settings from the
+ * first thread that created such a thread pool.
+ *
+ * At least one thread will be spawned when this function is called, either to
+ * create the @max_threads exclusive threads, or to preserve the scheduler
+ * settings of the current thread for future spawns.
+ *
* @error can be %NULL to ignore errors, or non-%NULL to report
* errors. An error can only occur when @exclusive is set to %TRUE
* and not all @max_threads threads could be created.
@@ -581,6 +580,9 @@ g_thread_pool_new (GFunc func,
* to g_thread_pool_push() in the case that the #GThreadPool is stopped
* and freed before all tasks have been executed.
*
+ * @item_free_func will *not* be called on items successfully passed to @func.
+ * @func is responsible for freeing the items passed to it.
+ *
* Returns: (transfer full): the new #GThreadPool
*
* Since: 2.70
@@ -619,40 +621,31 @@ g_thread_pool_new_full (GFunc func,
if (!unused_thread_queue)
unused_thread_queue = g_async_queue_new ();
- /* For the very first non-exclusive thread-pool we remember the thread
- * scheduler settings of the thread creating the pool, if supported by
- * the GThread implementation. This is then used for making sure that
- * all threads created on the non-exclusive thread-pool have the same
- * scheduler settings, and more importantly don't just inherit them
- * from the thread that just happened to push a new task and caused
- * a new thread to be created.
+ /*
+ * Spawn a helper thread that is only responsible for spawning new threads
+ * with the scheduler settings of the current thread.
+ *
+ * This is then used for making sure that all threads created on the
+ * non-exclusive thread-pool have the same scheduler settings, and more
+ * importantly don't just inherit them from the thread that just happened to
+ * push a new task and caused a new thread to be created.
*
* Not doing so could cause real-time priority threads or otherwise
* threads with problematic scheduler settings to be part of the
* non-exclusive thread-pools.
*
- * If this is not supported by the GThread implementation then we here
- * start a thread that will inherit the scheduler settings from this
- * very thread and whose only purpose is to spawn new threads with the
- * same settings for use by the non-exclusive thread-pools.
- *
- *
- * For non-exclusive thread-pools this is not required as all threads
- * are created immediately below and are running forever, so they will
+ * For exclusive thread-pools this is not required as all threads are
+ * created immediately below and are running forever, so they will
* automatically inherit the scheduler settings from this very thread.
*/
- if (!exclusive && !have_shared_thread_scheduler_settings && !spawn_thread_queue)
+ if (!exclusive && !spawn_thread_queue)
{
- if (g_thread_get_scheduler_settings (&shared_thread_scheduler_settings))
- {
- have_shared_thread_scheduler_settings = TRUE;
- }
- else
- {
- spawn_thread_queue = g_async_queue_new ();
- g_cond_init (&spawn_thread_cond);
- g_thread_new ("pool-spawner", g_thread_pool_spawn_thread, NULL);
- }
+ GThread *pool_spawner = NULL;
+
+ spawn_thread_queue = g_async_queue_new ();
+ g_cond_init (&spawn_thread_cond);
+ pool_spawner = g_thread_new ("pool-spawner", g_thread_pool_spawn_thread, NULL);
+ g_ignore_leak (pool_spawner);
}
G_UNLOCK (init);
diff --git a/glib/gthreadprivate.h b/glib/gthreadprivate.h
index 6eaf42275..61dfdae34 100644
--- a/glib/gthreadprivate.h
+++ b/glib/gthreadprivate.h
@@ -41,6 +41,7 @@ struct _GRealThread
/* system thread implementation (gthread-posix.c, gthread-win32.c) */
#if defined(HAVE_FUTEX) || defined(HAVE_FUTEX_TIME64)
+#include <errno.h>
#include <linux/futex.h>
#include <sys/syscall.h>
#include <unistd.h>
@@ -53,6 +54,12 @@ struct _GRealThread
/* Wrapper macro to call `futex_time64` and/or `futex` with simple
* parameters and without returning the return value.
*
+ * We expect futex to sometimes return EAGAIN due to the race
+ * between the caller checking the current value and deciding to
+ * do the futex op. To avoid splattering errno on success, we
+ * restore the original errno if EAGAIN is seen. See also:
+ * https://gitlab.gnome.org/GNOME/glib/-/issues/3034
+ *
* If the `futex_time64` syscall does not exist (`ENOSYS`), we retry again
* with the normal `futex` syscall. This can happen if newer kernel headers
* are used than the kernel that is actually running.
@@ -64,24 +71,42 @@ struct _GRealThread
#define g_futex_simple(uaddr, futex_op, ...) \
G_STMT_START \
{ \
+ int saved_errno = errno; \
int res = syscall (__NR_futex_time64, uaddr, (gsize) futex_op, __VA_ARGS__); \
if (res < 0 && errno == ENOSYS) \
- syscall (__NR_futex, uaddr, (gsize) futex_op, __VA_ARGS__); \
+ { \
+ errno = saved_errno; \
+ res = syscall (__NR_futex, uaddr, (gsize) futex_op, __VA_ARGS__); \
+ } \
+ if (res < 0 && errno == EAGAIN) \
+ { \
+ errno = saved_errno; \
+ } \
} \
G_STMT_END
#elif defined(__NR_futex_time64)
-#define g_futex_simple(uaddr, futex_op, ...) \
- G_STMT_START \
- { \
- syscall (__NR_futex_time64, uaddr, (gsize) futex_op, __VA_ARGS__); \
- } \
+#define g_futex_simple(uaddr, futex_op, ...) \
+ G_STMT_START \
+ { \
+ int saved_errno = errno; \
+ int res = syscall (__NR_futex_time64, uaddr, (gsize) futex_op, __VA_ARGS__); \
+ if (res < 0 && errno == EAGAIN) \
+ { \
+ errno = saved_errno; \
+ } \
+ } \
G_STMT_END
#elif defined(__NR_futex)
-#define g_futex_simple(uaddr, futex_op, ...) \
- G_STMT_START \
- { \
- syscall (__NR_futex, uaddr, (gsize) futex_op, __VA_ARGS__); \
- } \
+#define g_futex_simple(uaddr, futex_op, ...) \
+ G_STMT_START \
+ { \
+ int saved_errno = errno; \
+ int res = syscall (__NR_futex, uaddr, (gsize) futex_op, __VA_ARGS__); \
+ if (res < 0 && errno == EAGAIN) \
+ { \
+ errno = saved_errno; \
+ } \
+ } \
G_STMT_END
#else /* !defined(__NR_futex) && !defined(__NR_futex_time64) */
#error "Neither __NR_futex nor __NR_futex_time64 are defined but were found by meson"
@@ -89,47 +114,27 @@ struct _GRealThread
#endif
-/* Platform-specific scheduler settings for a thread */
-typedef struct
-{
-#if defined(HAVE_SYS_SCHED_GETATTR)
- /* This is for modern Linux */
- struct sched_attr *attr;
-#elif defined(G_OS_WIN32)
- gint thread_prio;
-#else
- /* TODO: Add support for macOS and the BSDs */
- void *dummy;
-#endif
-} GThreadSchedulerSettings;
-
void g_system_thread_wait (GRealThread *thread);
GRealThread *g_system_thread_new (GThreadFunc proxy,
gulong stack_size,
- const GThreadSchedulerSettings *scheduler_settings,
const char *name,
GThreadFunc func,
gpointer data,
GError **error);
void g_system_thread_free (GRealThread *thread);
-void g_system_thread_exit (void);
+G_NORETURN void g_system_thread_exit (void);
void g_system_thread_set_name (const gchar *name);
-gboolean g_system_thread_get_scheduler_settings (GThreadSchedulerSettings *scheduler_settings);
-
/* gthread.c */
GThread *g_thread_new_internal (const gchar *name,
GThreadFunc proxy,
GThreadFunc func,
gpointer data,
gsize stack_size,
- const GThreadSchedulerSettings *scheduler_settings,
GError **error);
-gboolean g_thread_get_scheduler_settings (GThreadSchedulerSettings *scheduler_settings);
-
gpointer g_thread_proxy (gpointer thread);
guint g_thread_n_created (void);
diff --git a/glib/gtimer.c b/glib/gtimer.c
index d2d259918..dde502a15 100644
--- a/glib/gtimer.c
+++ b/glib/gtimer.c
@@ -269,6 +269,9 @@ g_timer_is_active (GTimer *timer)
void
g_usleep (gulong microseconds)
{
+ if G_UNLIKELY (microseconds == 0)
+ return;
+
#ifdef G_OS_WIN32
/* Round up to the next millisecond */
Sleep (microseconds ? (1 + (microseconds - 1) / 1000) : 0);
diff --git a/glib/gtimezone.c b/glib/gtimezone.c
index 00492995c..4a4a2d010 100644
--- a/glib/gtimezone.c
+++ b/glib/gtimezone.c
@@ -445,9 +445,7 @@ zone_for_constant_offset (GTimeZone *gtz, const gchar *name)
gtz->transitions = NULL;
}
-#ifdef G_OS_UNIX
-
-#if defined(__sun) && defined(__SVR4)
+#if defined(G_OS_UNIX) && defined(__sun) && defined(__SVR4)
/*
* only used by Illumos distros or Solaris < 11: parse the /etc/default/init
* text file looking for TZ= followed by the timezone, possibly quoted
@@ -513,6 +511,7 @@ zone_identifier_illumos (void)
}
#endif /* defined(__sun) && defined(__SRVR) */
+#ifdef G_OS_UNIX
/*
* returns the path to the top of the Olson zoneinfo timezone hierarchy.
*/
@@ -709,7 +708,7 @@ init_zone_from_iana_info (GTimeZone *gtz,
const struct tzhead *header = header_data;
GTimeZone *footertz = NULL;
guint extra_time_count = 0, extra_type_count = 0;
- gint64 last_explicit_transition_time;
+ gint64 last_explicit_transition_time = 0;
g_return_if_fail (size >= sizeof (struct tzhead) &&
memcmp (header, "TZif", 4) == 0);
@@ -2223,7 +2222,7 @@ interval_valid (GTimeZone *tz,
* g_time_zone_adjust_time:
* @tz: a #GTimeZone
* @type: the #GTimeType of @time_
- * @time_: a pointer to a number of seconds since January 1, 1970
+ * @time_: (inout): a pointer to a number of seconds since January 1, 1970
*
* Finds an interval within @tz that corresponds to the given @time_,
* possibly adjusting @time_ if required to fit into an interval.
diff --git a/glib/gtree.c b/glib/gtree.c
index df765b679..bfae6399d 100644
--- a/glib/gtree.c
+++ b/glib/gtree.c
@@ -69,6 +69,8 @@
**/
#define MAX_GTREE_HEIGHT 40
+/* G_MAXUINT nodes will be covered by tree height of log2(G_MAXUINT) + 2. */
+G_STATIC_ASSERT ((G_GUINT64_CONSTANT (1) << (MAX_GTREE_HEIGHT - 2)) >= G_MAXUINT);
/**
* GTree:
@@ -105,7 +107,8 @@ static GTreeNode* g_tree_node_new (gpointer key,
static GTreeNode *g_tree_insert_internal (GTree *tree,
gpointer key,
gpointer value,
- gboolean replace);
+ gboolean replace,
+ gboolean null_ret_ok);
static gboolean g_tree_remove_internal (GTree *tree,
gconstpointer key,
gboolean steal);
@@ -454,6 +457,26 @@ g_tree_destroy (GTree *tree)
g_tree_unref (tree);
}
+static GTreeNode *
+g_tree_insert_replace_node_internal (GTree *tree,
+ gpointer key,
+ gpointer value,
+ gboolean replace,
+ gboolean null_ret_ok)
+{
+ GTreeNode *node;
+
+ g_return_val_if_fail (tree != NULL, NULL);
+
+ node = g_tree_insert_internal (tree, key, value, replace, null_ret_ok);
+
+#ifdef G_TREE_DEBUG
+ g_tree_node_check (tree->root);
+#endif
+
+ return node;
+}
+
/**
* g_tree_insert_node:
* @tree: a #GTree
@@ -474,7 +497,8 @@ g_tree_destroy (GTree *tree)
* result in a O(n log(n)) operation where most of the other operations
* are O(log(n)).
*
- * Returns: (transfer none): the inserted (or set) node.
+ * Returns: (transfer none) (nullable): the inserted (or set) node or %NULL
+ * if insertion would overflow the tree node counter.
*
* Since: 2.68
*/
@@ -483,17 +507,7 @@ g_tree_insert_node (GTree *tree,
gpointer key,
gpointer value)
{
- GTreeNode *node;
-
- g_return_val_if_fail (tree != NULL, NULL);
-
- node = g_tree_insert_internal (tree, key, value, FALSE);
-
-#ifdef G_TREE_DEBUG
- g_tree_node_check (tree->root);
-#endif
-
- return node;
+ return g_tree_insert_replace_node_internal (tree, key, value, FALSE, TRUE);
}
/**
@@ -512,7 +526,7 @@ g_tree_insert (GTree *tree,
gpointer key,
gpointer value)
{
- g_tree_insert_node (tree, key, value);
+ g_tree_insert_replace_node_internal (tree, key, value, FALSE, FALSE);
}
/**
@@ -531,7 +545,8 @@ g_tree_insert (GTree *tree,
* The tree is automatically 'balanced' as new key/value pairs are added,
* so that the distance from the root to every leaf is as small as possible.
*
- * Returns: (transfer none): the inserted (or set) node.
+ * Returns: (transfer none) (nullable): the inserted (or set) node or %NULL
+ * if insertion would overflow the tree node counter.
*
* Since: 2.68
*/
@@ -540,17 +555,7 @@ g_tree_replace_node (GTree *tree,
gpointer key,
gpointer value)
{
- GTreeNode *node;
-
- g_return_val_if_fail (tree != NULL, NULL);
-
- node = g_tree_insert_internal (tree, key, value, TRUE);
-
-#ifdef G_TREE_DEBUG
- g_tree_node_check (tree->root);
-#endif
-
- return node;
+ return g_tree_insert_replace_node_internal (tree, key, value, TRUE, TRUE);
}
/**
@@ -567,7 +572,26 @@ g_tree_replace (GTree *tree,
gpointer key,
gpointer value)
{
- g_tree_replace_node (tree, key, value);
+ g_tree_insert_replace_node_internal (tree, key, value, TRUE, FALSE);
+}
+
+/* internal checked nnodes increment routine */
+static gboolean
+g_tree_nnodes_inc_checked (GTree *tree, gboolean overflow_fatal)
+{
+ if (G_UNLIKELY (tree->nnodes == G_MAXUINT))
+ {
+ if (overflow_fatal)
+ {
+ g_error ("Incrementing GTree nnodes counter would overflow");
+ }
+
+ return FALSE;
+ }
+
+ tree->nnodes++;
+
+ return TRUE;
}
/* internal insert routine */
@@ -575,7 +599,8 @@ static GTreeNode *
g_tree_insert_internal (GTree *tree,
gpointer key,
gpointer value,
- gboolean replace)
+ gboolean replace,
+ gboolean null_ret_ok)
{
GTreeNode *node, *retnode;
GTreeNode *path[MAX_GTREE_HEIGHT];
@@ -586,7 +611,12 @@ g_tree_insert_internal (GTree *tree,
if (!tree->root)
{
tree->root = g_tree_node_new (key, value);
+
+#ifdef G_TREE_DEBUG
+ g_assert (tree->nnodes == 0);
+#endif
tree->nnodes++;
+
return tree->root;
}
@@ -630,16 +660,20 @@ g_tree_insert_internal (GTree *tree,
}
else
{
- GTreeNode *child = g_tree_node_new (key, value);
+ GTreeNode *child;
+
+ if (!g_tree_nnodes_inc_checked (tree, !null_ret_ok))
+ {
+ return NULL;
+ }
+ child = g_tree_node_new (key, value);
child->left = node->left;
child->right = node;
node->left = child;
node->left_child = TRUE;
node->balance -= 1;
- tree->nnodes++;
-
retnode = child;
break;
}
@@ -653,16 +687,20 @@ g_tree_insert_internal (GTree *tree,
}
else
{
- GTreeNode *child = g_tree_node_new (key, value);
+ GTreeNode *child;
+ if (!g_tree_nnodes_inc_checked (tree, !null_ret_ok))
+ {
+ return NULL;
+ }
+
+ child = g_tree_node_new (key, value);
child->right = node->right;
child->left = node;
node->right = child;
node->right_child = TRUE;
node->balance += 1;
- tree->nnodes++;
-
retnode = child;
break;
}
@@ -1197,7 +1235,7 @@ g_tree_foreach_node (GTree *tree,
* GTraverseFunc:
* @key: a key of a #GTree node
* @value: the value corresponding to the key
- * @user_data: user data passed to g_tree_traverse()
+ * @data: user data passed to g_tree_traverse()
*
* Specifies the type of function passed to g_tree_traverse(). It is
* passed the key and value of each node, together with the @user_data
@@ -1454,6 +1492,11 @@ g_tree_height (GTree *tree)
* Gets the number of nodes in a #GTree.
*
* Returns: the number of nodes in @tree
+ *
+ * The node counter value type is really a #guint,
+ * but it is returned as a #gint due to backward
+ * compatibility issues (can be cast back to #guint to
+ * support its full range of values).
*/
gint
g_tree_nnodes (GTree *tree)
diff --git a/glib/gtree.h b/glib/gtree.h
index baff68526..74ab9ce95 100644
--- a/glib/gtree.h
+++ b/glib/gtree.h
@@ -50,12 +50,12 @@ typedef struct _GTreeNode GTreeNode;
typedef gboolean (*GTraverseFunc) (gpointer key,
gpointer value,
- gpointer user_data);
+ gpointer data);
/**
* GTraverseNodeFunc:
* @node: a #GTreeNode
- * @user_data: user data passed to g_tree_foreach_node()
+ * @data: user data passed to g_tree_foreach_node()
*
* Specifies the type of function passed to g_tree_foreach_node(). It is
* passed each node, together with the @user_data parameter passed to
@@ -66,7 +66,7 @@ typedef gboolean (*GTraverseFunc) (gpointer key,
* Since: 2.68
*/
typedef gboolean (*GTraverseNodeFunc) (GTreeNode *node,
- gpointer user_data);
+ gpointer data);
/* Balanced binary trees
*/
diff --git a/glib/gtypes.h b/glib/gtypes.h
index 8ef190961..9d912d523 100644
--- a/glib/gtypes.h
+++ b/glib/gtypes.h
@@ -34,6 +34,10 @@
#include <glibconfig.h>
#include <glib/gmacros.h>
#include <glib/gversionmacros.h>
+
+/* Must be included after the 3 headers above */
+#include <glib/glib-visibility.h>
+
#include <time.h>
G_BEGIN_DECLS
@@ -144,7 +148,7 @@ typedef void (*GHFunc) (gpointer key,
/**
* GCopyFunc:
* @src: (not nullable): A pointer to the data which should be copied
- * @user_data: Additional data
+ * @data: Additional data
*
* A function of this signature is used to copy the node data
* when doing a deep-copy of a tree.
@@ -154,21 +158,21 @@ typedef void (*GHFunc) (gpointer key,
* Since: 2.4
*/
typedef gpointer (*GCopyFunc) (gconstpointer src,
- gpointer user_data);
+ gpointer data);
/**
* GFreeFunc:
* @data: a data pointer
*
* Declares a type of function which takes an arbitrary
* data pointer argument and has no return value. It is
- * not currently used in GLib or GTK+.
+ * not currently used in GLib or GTK.
*/
typedef void (*GFreeFunc) (gpointer data);
/**
* GTranslateFunc:
* @str: the untranslated string
- * @user_data: user data specified when installing the function, e.g.
+ * @data: user data specified when installing the function, e.g.
* in g_option_group_set_translate_func()
*
* The type of functions which are used to translate user-visible
@@ -178,7 +182,7 @@ typedef void (*GFreeFunc) (gpointer data);
* The returned string is owned by GLib and must not be freed.
*/
typedef const gchar * (*GTranslateFunc) (const gchar *str,
- gpointer user_data);
+ gpointer data);
/* Define some mathematical constants that aren't available
@@ -584,27 +588,4 @@ typedef gint gatomicrefcount; /* should be accessed only using atomics */
G_END_DECLS
-/* We prefix variable declarations so they can
- * properly get exported in Windows DLLs.
- */
-#ifndef GLIB_VAR
-# ifdef G_PLATFORM_WIN32
-# ifdef GLIB_STATIC_COMPILATION
-# define GLIB_VAR extern
-# else /* !GLIB_STATIC_COMPILATION */
-# ifdef GLIB_COMPILATION
-# ifdef DLL_EXPORT
-# define GLIB_VAR extern __declspec(dllexport)
-# else /* !DLL_EXPORT */
-# define GLIB_VAR extern
-# endif /* !DLL_EXPORT */
-# else /* !GLIB_COMPILATION */
-# define GLIB_VAR extern __declspec(dllimport)
-# endif /* !GLIB_COMPILATION */
-# endif /* !GLIB_STATIC_COMPILATION */
-# else /* !G_PLATFORM_WIN32 */
-# define GLIB_VAR _GLIB_EXTERN
-# endif /* !G_PLATFORM_WIN32 */
-#endif /* GLIB_VAR */
-
#endif /* __G_TYPES_H__ */
diff --git a/glib/gunicode.h b/glib/gunicode.h
index 63117ea28..85b3e0907 100644
--- a/glib/gunicode.h
+++ b/glib/gunicode.h
@@ -210,7 +210,7 @@ typedef enum
* Since new unicode versions may add new types here, applications should be ready
* to handle unknown values. They may be regarded as %G_UNICODE_BREAK_UNKNOWN.
*
- * See [Unicode Line Breaking Algorithm](http://www.unicode.org/unicode/reports/tr14/).
+ * See [Unicode Line Breaking Algorithm](https://www.unicode.org/reports/tr14/).
*/
typedef enum
{
@@ -833,6 +833,10 @@ gchar *g_utf8_strncpy (gchar *dest,
const gchar *src,
gsize n);
+GLIB_AVAILABLE_IN_2_78
+gchar *g_utf8_truncate_middle (const gchar *string,
+ gsize truncate_length);
+
/* Find the UTF-8 character corresponding to ch, in string p. These
functions are equivalants to strchr and strrchr */
GLIB_AVAILABLE_IN_ALL
diff --git a/glib/gunicollate.c b/glib/gunicollate.c
index dbce0de1d..af4179571 100644
--- a/glib/gunicollate.c
+++ b/glib/gunicollate.c
@@ -401,6 +401,8 @@ g_utf8_collate_key (const gchar *str,
str_norm = _g_utf8_normalize_wc (str, len, G_NORMALIZE_ALL_COMPOSE);
+ g_return_val_if_fail (str_norm != NULL, NULL);
+
xfrm_len = wcsxfrm (NULL, (wchar_t *)str_norm, 0);
result_wc = g_new (wchar_t, xfrm_len + 1);
wcsxfrm (result_wc, (wchar_t *)str_norm, xfrm_len + 1);
diff --git a/glib/gunidecomp.c b/glib/gunidecomp.c
index 0447c7f14..f14944397 100644
--- a/glib/gunidecomp.c
+++ b/glib/gunidecomp.c
@@ -113,7 +113,7 @@ g_unichar_combining_class (gunichar uc)
/**
* g_unicode_canonical_ordering:
- * @string: a UCS-4 encoded string.
+ * @string: (array length=len) (element-type gunichar): a UCS-4 encoded string.
* @len: the maximum length of @string to use.
*
* Computes the canonical ordering of a string in-place.
@@ -388,9 +388,33 @@ _g_utf8_normalize_wc (const gchar *str,
while ((max_len < 0 || p < str + max_len) && *p)
{
const gchar *decomp;
- gunichar wc = g_utf8_get_char (p);
+ const char *next, *between;
+ gunichar wc;
- if (wc >= SBase && wc < SBase + SCount)
+ next = g_utf8_next_char (p);
+ /* Avoid reading truncated multibyte characters
+ which run past the end of the buffer */
+ if (max_len < 0)
+ {
+ /* Does the character contain a NUL terminator? */
+ for (between = &p[1]; between < next; between++)
+ {
+ if (G_UNLIKELY (!*between))
+ return NULL;
+ }
+ }
+ else
+ {
+ if (G_UNLIKELY (next > str + max_len))
+ return NULL;
+ }
+ wc = g_utf8_get_char (p);
+
+ if (G_UNLIKELY (wc == (gunichar) -1))
+ {
+ return NULL;
+ }
+ else if (wc >= SBase && wc < SBase + SCount)
{
gsize result_len;
decompose_hangul (wc, NULL, &result_len);
@@ -406,7 +430,7 @@ _g_utf8_normalize_wc (const gchar *str,
n_wc++;
}
- p = g_utf8_next_char (p);
+ p = next;
}
wc_buffer = g_new (gunichar, n_wc + 1);
@@ -548,10 +572,13 @@ g_utf8_normalize (const gchar *str,
GNormalizeMode mode)
{
gunichar *result_wc = _g_utf8_normalize_wc (str, len, mode);
- gchar *result;
+ gchar *result = NULL;
- result = g_ucs4_to_utf8 (result_wc, -1, NULL, NULL, NULL);
- g_free (result_wc);
+ if (G_LIKELY (result_wc != NULL))
+ {
+ result = g_ucs4_to_utf8 (result_wc, -1, NULL, NULL, NULL);
+ g_free (result_wc);
+ }
return result;
}
diff --git a/glib/guniprop.c b/glib/guniprop.c
index d1363e546..61acad6e6 100644
--- a/glib/guniprop.c
+++ b/glib/guniprop.c
@@ -573,7 +573,7 @@ g_unichar_toupper (gunichar c)
gunichar val = ATTTABLE (c >> 8, c & 0xff);
if (val >= 0x1000000)
{
- const gchar *p = special_case_table + val - 0x1000000;
+ const gchar *p = special_case_table + (val - 0x1000000);
val = g_utf8_get_char (p);
}
/* Some lowercase letters, e.g., U+000AA, FEMININE ORDINAL INDICATOR,
@@ -613,8 +613,8 @@ g_unichar_tolower (gunichar c)
gunichar val = ATTTABLE (c >> 8, c & 0xff);
if (val >= 0x1000000)
{
- const gchar *p = special_case_table + val - 0x1000000;
- return g_utf8_get_char (p);
+ const gchar *p = special_case_table + (val - 0x1000000);
+ return g_utf8_get_char (p);
}
else
{
@@ -1236,7 +1236,7 @@ g_utf8_casefold (const gchar *str,
/**
* g_unichar_get_mirror_char:
* @ch: a Unicode character
- * @mirrored_ch: location to store the mirrored character
+ * @mirrored_ch: (out): location to store the mirrored character
*
* In Unicode, some characters are "mirrored". This means that their
* images are mirrored horizontally in text that is laid out from right
diff --git a/glib/guri.c b/glib/guri.c
index 5fa668873..58725503d 100644
--- a/glib/guri.c
+++ b/glib/guri.c
@@ -25,6 +25,7 @@
#include "glib.h"
#include "glibintl.h"
+#include "glib-private.h"
#include "guriprivate.h"
/**
@@ -808,8 +809,8 @@ normalize_port (const char *scheme,
return port;
}
-static int
-default_scheme_port (const char *scheme)
+int
+g_uri_get_default_scheme_port (const char *scheme)
{
if (strcmp (scheme, "http") == 0 || strcmp (scheme, "ws") == 0)
return 80;
@@ -820,6 +821,9 @@ default_scheme_port (const char *scheme)
if (strcmp (scheme, "ftp") == 0)
return 21;
+ if (strstr (scheme, "socks") == scheme)
+ return 1080;
+
return -1;
}
@@ -1019,7 +1023,7 @@ g_uri_split_internal (const gchar *uri_string,
}
if (port && *port == -1)
- *port = default_scheme_port (scheme_str);
+ *port = g_uri_get_default_scheme_port (scheme_str);
}
g_free (normalized_scheme);
@@ -1760,7 +1764,7 @@ g_uri_join_internal (GUriFlags flags,
*
* When @host is present, @path must either be empty or begin with a slash (`/`)
* character. When @host is not present, @path cannot begin with two slash
- characters (`//`). See
+ * characters (`//`). See
* [RFC 3986, section 3](https://tools.ietf.org/html/rfc3986#section-3).
*
* See also g_uri_join_with_user(), which allows specifying the
@@ -2507,7 +2511,7 @@ g_uri_get_port (GUri *uri)
g_return_val_if_fail (uri != NULL, -1);
if (uri->port == -1 && uri->flags & G_URI_FLAGS_SCHEME_NORMALIZE)
- return default_scheme_port (uri->scheme);
+ return g_uri_get_default_scheme_port (uri->scheme);
return uri->port;
}
diff --git a/glib/gutf8.c b/glib/gutf8.c
index 072d23563..5a875ce26 100644
--- a/glib/gutf8.c
+++ b/glib/gutf8.c
@@ -460,6 +460,72 @@ g_utf8_strncpy (gchar *dest,
return dest;
}
+/**
+ * g_utf8_truncate_middle:
+ * @string: (transfer none): a nul-terminated UTF-8 encoded string
+ * @truncate_length: the new size of @string, in characters, including the ellipsis character
+ *
+ * Cuts off the middle of the string, preserving half of @truncate_length
+ * characters at the beginning and half at the end.
+ *
+ * If @string is already short enough, this returns a copy of @string.
+ * If @truncate_length is `0`, an empty string is returned.
+ *
+ * Returns: (transfer full): a newly-allocated copy of @string ellipsized in the middle
+ *
+ * Since: 2.78
+ */
+gchar *
+g_utf8_truncate_middle (const gchar *string,
+ gsize truncate_length)
+{
+ const gchar *ellipsis = "…";
+ const gsize ellipsis_bytes = strlen (ellipsis);
+
+ gsize length;
+ gsize left_substring_length;
+ gchar *left_substring_end;
+ gchar *right_substring_begin;
+ gchar *right_substring_end;
+ gsize left_bytes;
+ gsize right_bytes;
+ gchar *result;
+
+ g_return_val_if_fail (string != NULL, NULL);
+
+ length = g_utf8_strlen (string, -1);
+ /* Current string already smaller than requested length */
+ if (length <= truncate_length)
+ return g_strdup (string);
+ if (truncate_length == 0)
+ return g_strdup ("");
+
+ /* Find substrings to keep, ignore ellipsis character for that */
+ truncate_length -= 1;
+
+ left_substring_length = truncate_length / 2;
+
+ left_substring_end = g_utf8_offset_to_pointer (string, left_substring_length);
+ right_substring_begin = g_utf8_offset_to_pointer (left_substring_end,
+ length - truncate_length);
+ right_substring_end = g_utf8_offset_to_pointer (right_substring_begin,
+ truncate_length - left_substring_length);
+
+ g_assert (*right_substring_end == '\0');
+
+ left_bytes = left_substring_end - string;
+ right_bytes = right_substring_end - right_substring_begin;
+
+ result = g_malloc (left_bytes + ellipsis_bytes + right_bytes + 1);
+
+ strncpy (result, string, left_bytes);
+ memcpy (result + left_bytes, ellipsis, ellipsis_bytes);
+ strncpy (result + left_bytes + ellipsis_bytes, right_substring_begin, right_bytes);
+ result[left_bytes + ellipsis_bytes + right_bytes] = '\0';
+
+ return result;
+}
+
/* unicode_strchr */
/**
@@ -923,7 +989,7 @@ g_utf8_to_ucs4 (const gchar *str,
/**
* g_ucs4_to_utf8:
- * @str: a UCS-4 encoded string
+ * @str: (array length=len) (element-type gunichar): a UCS-4 encoded string
* @len: the maximum length (number of characters) of @str to use.
* If @len < 0, then the string is nul-terminated.
* @items_read: (out) (optional): location to store number of
@@ -997,7 +1063,7 @@ g_ucs4_to_utf8 (const gunichar *str,
/**
* g_utf16_to_utf8:
- * @str: a UTF-16 encoded string
+ * @str: (array length=len) (element-type guint16): a UTF-16 encoded string
* @len: the maximum length (number of #gunichar2) of @str to use.
* If @len < 0, then the string is nul-terminated.
* @items_read: (out) (optional): location to store number of
@@ -1153,7 +1219,7 @@ g_utf16_to_utf8 (const gunichar2 *str,
/**
* g_utf16_to_ucs4:
- * @str: a UTF-16 encoded string
+ * @str: (array length=len) (element-type guint16): a UTF-16 encoded string
* @len: the maximum length (number of #gunichar2) of @str to use.
* If @len < 0, then the string is nul-terminated.
* @items_read: (out) (optional): location to store number of
@@ -1408,7 +1474,7 @@ g_utf8_to_utf16 (const gchar *str,
/**
* g_ucs4_to_utf16:
- * @str: a UCS-4 encoded string
+ * @str: (array length=len) (element-type gunichar): a UCS-4 encoded string
* @len: the maximum length (number of characters) of @str to use.
* If @len < 0, then the string is nul-terminated.
* @items_read: (out) (optional): location to store number of
@@ -1678,7 +1744,7 @@ fast_validate_len (const char *str,
* Note that g_utf8_validate() returns %FALSE if @max_len is
* positive and any of the @max_len bytes are nul.
*
- * Returns %TRUE if all of @str was valid. Many GLib and GTK+
+ * Returns %TRUE if all of @str was valid. Many GLib and GTK
* routines require valid UTF-8 as input; so data read from a file
* or the network should be checked with g_utf8_validate() before
* doing anything else with it.
diff --git a/glib/gutils.c b/glib/gutils.c
index 78ccd6121..362c55aff 100644
--- a/glib/gutils.c
+++ b/glib/gutils.c
@@ -275,7 +275,44 @@ gchar*
g_find_program_in_path (const gchar *program)
#endif
{
- const gchar *path, *p;
+ return g_find_program_for_path (program, NULL, NULL);
+}
+
+/**
+ * g_find_program_for_path:
+ * @program: (type filename): a program name in the GLib file name encoding
+ * @path: (type filename) (nullable): the current dir where to search program
+ * @working_dir: (type filename) (nullable): the working dir where to search
+ * program
+ *
+ * Locates the first executable named @program in @path, in the
+ * same way that execvp() would locate it. Returns an allocated string
+ * with the absolute path name (taking in account the @working_dir), or
+ * %NULL if the program is not found in @path. If @program is already an
+ * absolute path, returns a copy of @program if @program exists and is
+ * executable, and %NULL otherwise.
+ *
+ * On Windows, if @path is %NULL, it looks for the file in the same way as
+ * CreateProcess() would. This means first in the directory where the
+ * executing program was loaded from, then in the current directory, then in
+ * the Windows 32-bit system directory, then in the Windows directory, and
+ * finally in the directories in the `PATH` environment variable. If
+ * the program is found, the return value contains the full name
+ * including the type suffix.
+ *
+ * Returns: (type filename) (transfer full) (nullable): a newly-allocated
+ * string with the absolute path, or %NULL
+ * Since: 2.76
+ **/
+char *
+g_find_program_for_path (const char *program,
+ const char *path,
+ const char *working_dir)
+{
+ const char *original_path = path;
+ const char *original_program = program;
+ char *program_path = NULL;
+ const gchar *p;
gchar *name, *freeme;
#ifdef G_OS_WIN32
const gchar *path_copy;
@@ -290,34 +327,59 @@ g_find_program_in_path (const gchar *program)
g_return_val_if_fail (program != NULL, NULL);
+ /* Use the working dir as program path if provided */
+ if (working_dir && !g_path_is_absolute (program))
+ {
+ program_path = g_build_filename (working_dir, program, NULL);
+ program = program_path;
+ }
+
/* If it is an absolute path, or a relative path including subdirectories,
* don't look in PATH.
*/
if (g_path_is_absolute (program)
- || strchr (program, G_DIR_SEPARATOR) != NULL
+ || strchr (original_program, G_DIR_SEPARATOR) != NULL
#ifdef G_OS_WIN32
- || strchr (program, '/') != NULL
+ || strchr (original_program, '/') != NULL
#endif
)
{
if (g_file_test (program, G_FILE_TEST_IS_EXECUTABLE) &&
!g_file_test (program, G_FILE_TEST_IS_DIR))
{
- gchar *out = NULL, *cwd = NULL;
+ gchar *out = NULL;
if (g_path_is_absolute (program))
- return g_strdup (program);
+ {
+ out = g_strdup (program);
+ }
+ else
+ {
+ char *cwd = g_get_current_dir ();
+ out = g_build_filename (cwd, program, NULL);
+ g_free (cwd);
+ }
+
+ g_free (program_path);
- cwd = g_get_current_dir ();
- out = g_build_filename (cwd, program, NULL);
- g_free (cwd);
return g_steal_pointer (&out);
}
else
- return NULL;
+ {
+ g_clear_pointer (&program_path, g_free);
+
+ if (g_path_is_absolute (original_program))
+ return NULL;
+ }
}
-
- path = g_getenv ("PATH");
+
+ program = original_program;
+
+ if G_LIKELY (original_path == NULL)
+ path = g_getenv ("PATH");
+ else
+ path = original_path;
+
#if defined(G_OS_UNIX)
if (path == NULL)
{
@@ -334,57 +396,65 @@ g_find_program_in_path (const gchar *program)
path = "/bin:/usr/bin:.";
}
#else
- n = GetModuleFileNameW (NULL, wfilename, MAXPATHLEN);
- if (n > 0 && n < MAXPATHLEN)
- filename = g_utf16_to_utf8 (wfilename, -1, NULL, NULL, NULL);
-
- n = GetSystemDirectoryW (wsysdir, MAXPATHLEN);
- if (n > 0 && n < MAXPATHLEN)
- sysdir = g_utf16_to_utf8 (wsysdir, -1, NULL, NULL, NULL);
-
- n = GetWindowsDirectoryW (wwindir, MAXPATHLEN);
- if (n > 0 && n < MAXPATHLEN)
- windir = g_utf16_to_utf8 (wwindir, -1, NULL, NULL, NULL);
-
- if (filename)
+ if G_LIKELY (original_path == NULL)
{
- appdir = g_path_get_dirname (filename);
- g_free (filename);
- }
-
- path = g_strdup (path);
+ n = GetModuleFileNameW (NULL, wfilename, MAXPATHLEN);
+ if (n > 0 && n < MAXPATHLEN)
+ filename = g_utf16_to_utf8 (wfilename, -1, NULL, NULL, NULL);
- if (windir)
- {
- const gchar *tem = path;
- path = g_strconcat (windir, ";", path, NULL);
- g_free ((gchar *) tem);
- g_free (windir);
- }
-
- if (sysdir)
- {
- const gchar *tem = path;
- path = g_strconcat (sysdir, ";", path, NULL);
- g_free ((gchar *) tem);
- g_free (sysdir);
+ n = GetSystemDirectoryW (wsysdir, MAXPATHLEN);
+ if (n > 0 && n < MAXPATHLEN)
+ sysdir = g_utf16_to_utf8 (wsysdir, -1, NULL, NULL, NULL);
+
+ n = GetWindowsDirectoryW (wwindir, MAXPATHLEN);
+ if (n > 0 && n < MAXPATHLEN)
+ windir = g_utf16_to_utf8 (wwindir, -1, NULL, NULL, NULL);
+
+ if (filename)
+ {
+ appdir = g_path_get_dirname (filename);
+ g_free (filename);
+ }
+
+ path = g_strdup (path);
+
+ if (windir)
+ {
+ const gchar *tem = path;
+ path = g_strconcat (windir, ";", path, NULL);
+ g_free ((gchar *) tem);
+ g_free (windir);
+ }
+
+ if (sysdir)
+ {
+ const gchar *tem = path;
+ path = g_strconcat (sysdir, ";", path, NULL);
+ g_free ((gchar *) tem);
+ g_free (sysdir);
+ }
+
+ {
+ const gchar *tem = path;
+ path = g_strconcat (".;", path, NULL);
+ g_free ((gchar *) tem);
+ }
+
+ if (appdir)
+ {
+ const gchar *tem = path;
+ path = g_strconcat (appdir, ";", path, NULL);
+ g_free ((gchar *) tem);
+ g_free (appdir);
+ }
+
+ path_copy = path;
}
-
- {
- const gchar *tem = path;
- path = g_strconcat (".;", path, NULL);
- g_free ((gchar *) tem);
- }
-
- if (appdir)
+ else
{
- const gchar *tem = path;
- path = g_strconcat (appdir, ";", path, NULL);
- g_free ((gchar *) tem);
- g_free (appdir);
+ path_copy = g_strdup (path);
}
- path_copy = path;
#endif
len = strlen (program) + 1;
@@ -401,6 +471,7 @@ g_find_program_in_path (const gchar *program)
do
{
char *startp;
+ char *startp_path = NULL;
path = p;
p = my_strchrnul (path, G_SEARCHPATH_SEPARATOR);
@@ -413,6 +484,13 @@ g_find_program_in_path (const gchar *program)
else
startp = memcpy (name - (p - path), path, p - path);
+ /* Use the working dir as program path if provided */
+ if (working_dir && !g_path_is_absolute (startp))
+ {
+ startp_path = g_build_filename (working_dir, startp, NULL);
+ startp = startp_path;
+ }
+
if (g_file_test (startp, G_FILE_TEST_IS_EXECUTABLE) &&
!g_file_test (startp, G_FILE_TEST_IS_DIR))
{
@@ -425,15 +503,21 @@ g_find_program_in_path (const gchar *program)
ret = g_build_filename (cwd, startp, NULL);
g_free (cwd);
}
+
+ g_free (program_path);
+ g_free (startp_path);
g_free (freeme);
#ifdef G_OS_WIN32
g_free ((gchar *) path_copy);
#endif
return ret;
}
+
+ g_free (startp_path);
}
while (*p++ != '\0');
-
+
+ g_free (program_path);
g_free (freeme);
#ifdef G_OS_WIN32
g_free ((gchar *) path_copy);
@@ -521,6 +605,7 @@ static gchar *g_user_state_dir = NULL;
static gchar *g_user_runtime_dir = NULL;
static gchar **g_system_config_dirs = NULL;
static gchar **g_user_special_dirs = NULL;
+static gchar *g_tmp_dir = NULL;
/* fifteen minutes of fame for everybody */
#define G_USER_DIRS_EXPIRE 15 * 60
@@ -864,6 +949,17 @@ g_get_home_dir (void)
return home_dir;
}
+void
+_g_unset_cached_tmp_dir (void)
+{
+ G_LOCK (g_utils_global);
+ /* We have to leak the old value, as user code could be retaining pointers
+ * to it. */
+ g_ignore_leak (g_tmp_dir);
+ g_tmp_dir = NULL;
+ G_UNLOCK (g_utils_global);
+}
+
/**
* g_get_tmp_dir:
*
@@ -887,22 +983,33 @@ g_get_home_dir (void)
const gchar *
g_get_tmp_dir (void)
{
- static gchar *tmp_dir;
+ G_LOCK (g_utils_global);
- if (g_once_init_enter (&tmp_dir))
+ if (g_tmp_dir == NULL)
{
gchar *tmp;
+ tmp = g_strdup (g_getenv ("G_TEST_TMPDIR"));
+
+ if (tmp == NULL || *tmp == '\0')
+ {
+ g_free (tmp);
+ tmp = g_strdup (g_getenv (
#ifdef G_OS_WIN32
- tmp = g_strdup (g_getenv ("TEMP"));
+ "TEMP"
+#else /* G_OS_WIN32 */
+ "TMPDIR"
+#endif /* G_OS_WIN32 */
+ ));
+ }
+#ifdef G_OS_WIN32
if (tmp == NULL || *tmp == '\0')
{
g_free (tmp);
tmp = get_windows_directory_root ();
}
#else /* G_OS_WIN32 */
- tmp = g_strdup (g_getenv ("TMPDIR"));
#ifdef P_tmpdir
if (tmp == NULL || *tmp == '\0')
@@ -923,10 +1030,12 @@ g_get_tmp_dir (void)
}
#endif /* !G_OS_WIN32 */
- g_once_init_leave (&tmp_dir, tmp);
+ g_tmp_dir = g_steal_pointer (&tmp);
}
- return tmp_dir;
+ G_UNLOCK (g_utils_global);
+
+ return g_tmp_dir;
}
/**
@@ -1029,7 +1138,7 @@ static const gchar *g_prgname = NULL; /* always a quark */
* in contrast to g_get_application_name().
*
* If you are using #GApplication the program name is set in
- * g_application_run(). In case of GDK or GTK+ it is set in
+ * g_application_run(). In case of GDK or GTK it is set in
* gdk_init(), which is called by gtk_init() and the
* #GtkApplication::startup handler. The program name is found by
* taking the last component of @argv[0].
@@ -1058,7 +1167,7 @@ g_get_prgname (void)
* in contrast to g_set_application_name().
*
* If you are using #GApplication the program name is set in
- * g_application_run(). In case of GDK or GTK+ it is set in
+ * g_application_run(). In case of GDK or GTK it is set in
* gdk_init(), which is called by gtk_init() and the
* #GtkApplication::startup handler. The program name is found by
* taking the last component of @argv[0].
@@ -2466,16 +2575,16 @@ g_win32_get_system_data_dirs_for_module_real (void (*address_of_function)(void))
p = get_special_folder (&FOLDERID_ProgramData);
if (p)
g_array_append_val (data_dirs, p);
-
+
/* Documents and Settings\All Users\Documents */
p = get_special_folder (&FOLDERID_PublicDocuments);
if (p)
g_array_append_val (data_dirs, p);
-
+
/* Using the above subfolders of Documents and Settings perhaps
* makes sense from a Windows perspective.
*
- * But looking at the actual use cases of this function in GTK+
+ * But looking at the actual use cases of this function in GTK
* and GNOME software, what we really want is the "share"
* subdirectory of the installation directory for the package
* our caller is a part of.
diff --git a/glib/gutils.h b/glib/gutils.h
index d50ef709e..efc691449 100644
--- a/glib/gutils.h
+++ b/glib/gutils.h
@@ -36,19 +36,6 @@
G_BEGIN_DECLS
-/* Define G_VA_COPY() to do the right thing for copying va_list variables.
- * glibconfig.h may have already defined G_VA_COPY as va_copy or __va_copy.
- */
-#if !defined (G_VA_COPY)
-# if defined (__GNUC__) && defined (__PPC__) && (defined (_CALL_SYSV) || defined (_WIN32))
-# define G_VA_COPY(ap1, ap2) (*(ap1) = *(ap2))
-# elif defined (G_VA_COPY_AS_ARRAY)
-# define G_VA_COPY(ap1, ap2) memmove ((ap1), (ap2), sizeof (va_list))
-# else /* va_list is a pointer */
-# define G_VA_COPY(ap1, ap2) ((ap1) = (ap2))
-# endif /* va_list is a pointer */
-#endif /* !G_VA_COPY */
-
GLIB_AVAILABLE_IN_ALL
const gchar * g_get_user_name (void);
GLIB_AVAILABLE_IN_ALL
@@ -439,8 +426,7 @@ g_bit_storage_impl (gulong number)
# include <stdlib.h>
# define g_abort() abort ()
#else
-GLIB_AVAILABLE_IN_2_50
-G_NORETURN void g_abort (void) G_ANALYZER_NORETURN;
+G_NORETURN GLIB_AVAILABLE_IN_2_50 void g_abort (void) G_ANALYZER_NORETURN;
#endif
#endif
diff --git a/glib/gutilsprivate.h b/glib/gutilsprivate.h
index 77bed4e87..b4f1b984a 100644
--- a/glib/gutilsprivate.h
+++ b/glib/gutilsprivate.h
@@ -26,9 +26,10 @@
#include "gtypes.h"
#include "gtestutils.h"
+#include <time.h>
+
G_BEGIN_DECLS
-GLIB_AVAILABLE_IN_2_60
void g_set_user_dirs (const gchar *first_dir_type,
...) G_GNUC_NULL_TERMINATED;
@@ -54,6 +55,10 @@ g_nearest_pow (gsize num)
return n + 1;
}
+void _g_unset_cached_tmp_dir (void);
+
+gboolean _g_localtime (time_t timet, struct tm *tm);
+
G_END_DECLS
#endif /* __G_UTILS_PRIVATE_H__ */
diff --git a/glib/gvariant-core.c b/glib/gvariant-core.c
index 57bbf88cc..06e857bde 100644
--- a/glib/gvariant-core.c
+++ b/glib/gvariant-core.c
@@ -34,6 +34,7 @@
#include <glib/grefcount.h>
#include <string.h>
+#include "glib_trace.h"
/*
* This file includes the structure definition for GVariant and a small
@@ -528,6 +529,7 @@ g_variant_ensure_serialised (GVariant *value)
GBytes *bytes;
gpointer data;
+ TRACE(GLIB_VARIANT_START_SERIALISE(value, value->type_info));
g_variant_ensure_size (value);
data = g_malloc (value->size);
g_variant_serialise (value, data);
@@ -540,6 +542,7 @@ g_variant_ensure_serialised (GVariant *value)
value->contents.serialised.ordered_offsets_up_to = G_MAXSIZE;
value->contents.serialised.checked_offsets_up_to = G_MAXSIZE;
value->state |= STATE_SERIALISED;
+ TRACE(GLIB_VARIANT_END_SERIALISE(value, value->type_info));
}
}
@@ -676,6 +679,8 @@ g_variant_new_from_bytes (const GVariantType *type,
g_clear_pointer (&owned_bytes, g_bytes_unref);
+ TRACE(GLIB_VARIANT_FROM_BUFFER(value, value->type_info, value->ref_count, value->state));
+
return value;
}
@@ -686,7 +691,7 @@ g_variant_new_from_bytes (const GVariantType *type,
* @type: a #GVariantType
* @children: an array of #GVariant pointers. Consumed.
* @n_children: the length of @children
- * @trusted: %TRUE if every child in @children in trusted
+ * @trusted: %TRUE if every child in @children is trusted
*
* Constructs a new tree-mode #GVariant instance. This is the inner
* interface for creation of new serialized values that gets called from
@@ -708,6 +713,7 @@ g_variant_new_from_children (const GVariantType *type,
value = g_variant_alloc (type, FALSE, trusted);
value->contents.tree.children = children;
value->contents.tree.n_children = n_children;
+ TRACE(GLIB_VARIANT_FROM_CHILDREN(value, value->type_info, value->ref_count, value->state));
return value;
}
@@ -781,6 +787,8 @@ g_variant_unref (GVariant *value)
{
g_return_if_fail (value != NULL);
+ TRACE(GLIB_VARIANT_UNREF(value, value->type_info, value->ref_count, value->state));
+
if (g_atomic_ref_count_dec (&value->ref_count))
{
if G_UNLIKELY (value->state & STATE_LOCKED)
@@ -816,6 +824,8 @@ g_variant_ref (GVariant *value)
{
g_return_val_if_fail (value != NULL, NULL);
+ TRACE(GLIB_VARIANT_REF(value, value->type_info, value->ref_count, value->state));
+
g_atomic_ref_count_inc (&value->ref_count);
return value;
@@ -860,6 +870,8 @@ g_variant_ref_sink (GVariant *value)
g_variant_lock (value);
+ TRACE(GLIB_VARIANT_REF_SINK(value, value->type_info, value->ref_count, value->state, value->state & STATE_FLOATING));
+
if (~value->state & STATE_FLOATING)
g_variant_ref (value);
else
@@ -915,6 +927,7 @@ g_variant_take_ref (GVariant *value)
g_return_val_if_fail (value != NULL, NULL);
g_return_val_if_fail (!g_atomic_ref_count_compare (&value->ref_count, 0), NULL);
+ TRACE(GLIB_VARIANT_TAKE_REF(value, value->type_info, value->ref_count, value->state, value->state & STATE_FLOATING));
g_atomic_int_and (&value->state, ~STATE_FLOATING);
return value;
@@ -1138,11 +1151,13 @@ GVariant *
g_variant_get_child_value (GVariant *value,
gsize index_)
{
- g_return_val_if_fail (index_ < g_variant_n_children (value), NULL);
g_return_val_if_fail (value->depth < G_MAXSIZE, NULL);
if (~g_atomic_int_get (&value->state) & STATE_SERIALISED)
{
+ /* g_variant_serialised_get_child() does its own checks on index_ */
+ g_return_val_if_fail (index_ < g_variant_n_children (value), NULL);
+
g_variant_lock (value);
if (~value->state & STATE_SERIALISED)
@@ -1201,6 +1216,8 @@ g_variant_get_child_value (GVariant *value,
child->contents.serialised.ordered_offsets_up_to = (value->state & STATE_TRUSTED) ? G_MAXSIZE : s_child.ordered_offsets_up_to;
child->contents.serialised.checked_offsets_up_to = (value->state & STATE_TRUSTED) ? G_MAXSIZE : s_child.checked_offsets_up_to;
+ TRACE(GLIB_VARIANT_FROM_PARENT(child, child->type_info, child->ref_count, child->state, value));
+
return child;
}
}
@@ -1233,11 +1250,13 @@ GVariant *
g_variant_maybe_get_child_value (GVariant *value,
gsize index_)
{
- g_return_val_if_fail (index_ < g_variant_n_children (value), NULL);
g_return_val_if_fail (value->depth < G_MAXSIZE, NULL);
if (~g_atomic_int_get (&value->state) & STATE_SERIALISED)
{
+ /* g_variant_serialised_get_child() does its own checks on index_ */
+ g_return_val_if_fail (index_ < g_variant_n_children (value), NULL);
+
g_variant_lock (value);
if (~value->state & STATE_SERIALISED)
diff --git a/glib/gvariant-serialiser.c b/glib/gvariant-serialiser.c
index af863cc52..4e4a73ad1 100644
--- a/glib/gvariant-serialiser.c
+++ b/glib/gvariant-serialiser.c
@@ -1144,6 +1144,10 @@ gvs_tuple_needed_size (GVariantTypeInfo *type_info,
offset = 0;
+ /* We must go through at least one iteration below. If the tuple had no
+ * children, it would have a fixed size. */
+ g_assert (n_children > 0);
+
for (i = 0; i < n_children; i++)
{
guint alignment;
@@ -1644,7 +1648,7 @@ g_variant_serialiser_serialise (GVariantSerialised serialised,
*
* Determines how much memory would be needed to serialize this value.
*
- * This function is only resonsible for performing calculations for the
+ * This function is only responsible for performing calculations for the
* top-level container. @gvs_filler is called on each child of the
* container in order to determine its size.
*/
diff --git a/glib/gvariant.c b/glib/gvariant.c
index 95904bd38..b7e42413c 100644
--- a/glib/gvariant.c
+++ b/glib/gvariant.c
@@ -1282,8 +1282,9 @@ g_variant_new_string (const gchar *string)
* @string must be valid UTF-8, and must not be %NULL. To encode
* potentially-%NULL strings, use this with g_variant_new_maybe().
*
- * This function consumes @string. g_free() will be called on @string
- * when it is no longer required.
+ * After this call, @string belongs to the #GVariant and may no longer be
+ * modified by the caller. The memory of @data has to be dynamically
+ * allocated and will eventually be freed with g_free().
*
* You must not modify or access @string in any other way after passing
* it to this function. It is even possible that @string is immediately
@@ -1352,8 +1353,8 @@ g_variant_new_printf (const gchar *format_string,
* g_variant_new_object_path:
* @object_path: a normal C nul-terminated string
*
- * Creates a D-Bus object path #GVariant with the contents of @string.
- * @string must be a valid D-Bus object path. Use
+ * Creates a D-Bus object path #GVariant with the contents of @object_path.
+ * @object_path must be a valid D-Bus object path. Use
* g_variant_is_object_path() if you're not sure.
*
* Returns: (transfer none): a floating reference to a new object path #GVariant instance
@@ -2213,20 +2214,22 @@ g_variant_print_string (GVariant *value,
GString *string,
gboolean type_annotate)
{
+ const gchar *value_type_string = g_variant_get_type_string (value);
+
if G_UNLIKELY (string == NULL)
string = g_string_new (NULL);
- switch (g_variant_classify (value))
+ switch (value_type_string[0])
{
case G_VARIANT_CLASS_MAYBE:
if (type_annotate)
- g_string_append_printf (string, "@%s ",
- g_variant_get_type_string (value));
+ g_string_append_printf (string, "@%s ", value_type_string);
if (g_variant_n_children (value))
{
- gchar *printed_child;
- GVariant *element;
+ const GVariantType *base_type;
+ guint i, depth;
+ GVariant *element = NULL;
/* Nested maybes:
*
@@ -2240,19 +2243,36 @@ g_variant_print_string (GVariant *value,
* "just" is actually exactly the case where we have a nested
* Nothing.
*
- * Instead of searching for that nested Nothing, we just print
- * the contained value into a separate string and see if we
- * end up with "nothing" at the end of it. If so, we need to
- * add "just" at our level.
+ * Search for the nested Nothing, to save a lot of recursion if there
+ * are multiple levels of maybes.
*/
- element = g_variant_get_child_value (value, 0);
- printed_child = g_variant_print (element, FALSE);
- g_variant_unref (element);
-
- if (g_str_has_suffix (printed_child, "nothing"))
- g_string_append (string, "just ");
- g_string_append (string, printed_child);
- g_free (printed_child);
+ for (depth = 0, base_type = g_variant_get_type (value);
+ g_variant_type_is_maybe (base_type);
+ depth++, base_type = g_variant_type_element (base_type));
+
+ element = g_variant_ref (value);
+ for (i = 0; i < depth && element != NULL; i++)
+ {
+ GVariant *new_element = g_variant_n_children (element) ? g_variant_get_child_value (element, 0) : NULL;
+ g_variant_unref (element);
+ element = g_steal_pointer (&new_element);
+ }
+
+ if (element == NULL)
+ {
+ /* One of the maybes was Nothing, so print out the right number of
+ * justs. */
+ for (; i > 1; i--)
+ g_string_append (string, "just ");
+ g_string_append (string, "nothing");
+ }
+ else
+ {
+ /* There are no Nothings, so print out the child with no prefixes. */
+ g_variant_print_string (element, string, FALSE);
+ }
+
+ g_clear_pointer (&element, g_variant_unref);
}
else
g_string_append (string, "nothing");
@@ -2265,7 +2285,7 @@ g_variant_print_string (GVariant *value,
* if the first two characters are 'ay' then it's a bytestring.
* under certain conditions we print those as strings.
*/
- if (g_variant_get_type_string (value)[1] == 'y')
+ if (value_type_string[1] == 'y')
{
const gchar *str;
gsize size;
@@ -2307,7 +2327,7 @@ g_variant_print_string (GVariant *value,
* dictionary entries (ie: a dictionary) so we print that
* differently.
*/
- if (g_variant_get_type_string (value)[1] == '{')
+ if (value_type_string[1] == '{')
/* dictionary */
{
const gchar *comma = "";
@@ -2316,8 +2336,7 @@ g_variant_print_string (GVariant *value,
if ((n = g_variant_n_children (value)) == 0)
{
if (type_annotate)
- g_string_append_printf (string, "@%s ",
- g_variant_get_type_string (value));
+ g_string_append_printf (string, "@%s ", value_type_string);
g_string_append (string, "{}");
break;
}
@@ -2353,8 +2372,7 @@ g_variant_print_string (GVariant *value,
if ((n = g_variant_n_children (value)) == 0)
{
if (type_annotate)
- g_string_append_printf (string, "@%s ",
- g_variant_get_type_string (value));
+ g_string_append_printf (string, "@%s ", value_type_string);
g_string_append (string, "[]");
break;
}
@@ -2934,6 +2952,8 @@ struct heap_iter
gsize magic;
};
+G_STATIC_ASSERT (sizeof (struct heap_iter) <= sizeof (GVariantIter));
+
#define GVSI(i) ((struct stack_iter *) (i))
#define GVHI(i) ((struct heap_iter *) (i))
#define GVSI_MAGIC ((gsize) 3579507750u)
@@ -3203,7 +3223,7 @@ struct heap_builder
/* Just to make sure that by adding a union to GVariantBuilder, we
* didn't accidentally change ABI. */
-G_STATIC_ASSERT (sizeof (GVariantBuilder) == sizeof (gsize[16]));
+G_STATIC_ASSERT (sizeof (GVariantBuilder) == sizeof (guintptr[16]));
static gboolean
ensure_valid_builder (GVariantBuilder *builder)
@@ -3890,7 +3910,7 @@ struct heap_dict
/* Just to make sure that by adding a union to GVariantDict, we didn't
* accidentally change ABI. */
-G_STATIC_ASSERT (sizeof (GVariantDict) == sizeof (gsize[16]));
+G_STATIC_ASSERT (sizeof (GVariantDict) == sizeof (guintptr[16]));
static gboolean
ensure_valid_dict (GVariantDict *dict)
@@ -4019,7 +4039,8 @@ g_variant_dict_init (GVariantDict *dict,
*
* This function is a wrapper around g_variant_dict_lookup_value() and
* g_variant_get(). In the case that %NULL would have been returned,
- * this function returns %FALSE. Otherwise, it unpacks the returned
+ * this function returns %FALSE and does not modify the values of the arguments
+ * passed in to @.... Otherwise, it unpacks the returned
* value and returns %TRUE.
*
* @format_string determines the C types that are used for unpacking the
@@ -6088,6 +6109,7 @@ g_variant_get_normal_form (GVariant *value)
* application can be strict about what inputs it rejects.
*
* The returned value is always in normal form and is marked as trusted.
+ * A full, not floating, reference is returned.
*
* Returns: (transfer full): the byteswapped form of @value
*
diff --git a/glib/gvariant.h b/glib/gvariant.h
index e7087a1f6..bdc37951d 100644
--- a/glib/gvariant.h
+++ b/glib/gvariant.h
@@ -270,7 +270,7 @@ GVariant * g_variant_new_from_data (const G
typedef struct _GVariantIter GVariantIter;
struct _GVariantIter {
/*< private >*/
- gsize x[16];
+ guintptr x[16];
};
GLIB_AVAILABLE_IN_ALL
@@ -304,9 +304,9 @@ struct _GVariantBuilder {
struct {
gsize partial_magic;
const GVariantType *type;
- gsize y[14];
+ guintptr y[14];
} s;
- gsize x[16];
+ guintptr x[16];
} u;
};
@@ -453,9 +453,9 @@ struct _GVariantDict {
struct {
GVariant *asv;
gsize partial_magic;
- gsize y[14];
+ guintptr y[14];
} s;
- gsize x[16];
+ guintptr x[16];
} u;
};
diff --git a/glib/gvarianttypeinfo.c b/glib/gvarianttypeinfo.c
index 2b310581c..d2df7fd89 100644
--- a/glib/gvarianttypeinfo.c
+++ b/glib/gvarianttypeinfo.c
@@ -30,6 +30,8 @@
#include <glib/ghash.h>
#include <glib/grefcount.h>
+#include "glib_trace.h"
+
/* < private >
* GVariantTypeInfo:
*
@@ -247,8 +249,6 @@ g_variant_type_info_query (GVariantTypeInfo *info,
guint *alignment,
gsize *fixed_size)
{
- g_variant_type_info_check (info, 0);
-
if (alignment)
*alignment = info->alignment;
@@ -795,6 +795,8 @@ g_variant_type_info_get (const GVariantType *type)
container->type_string = type_string;
g_atomic_ref_count_init (&container->ref_count);
+ TRACE(GLIB_VARIANT_TYPE_INFO_NEW(info, container->type_string));
+
g_hash_table_insert (g_variant_type_info_table, type_string, info);
type_string = NULL;
}
@@ -820,6 +822,8 @@ g_variant_type_info_get (const GVariantType *type)
info = g_variant_type_info_basic_table + index;
g_variant_type_info_check (info, 0);
+ TRACE(GLIB_VARIANT_TYPE_INFO_NEW(info, g_variant_type_info_basic_chars[index]));
+
return (GVariantTypeInfo *) info;
}
}
@@ -864,6 +868,9 @@ g_variant_type_info_unref (GVariantTypeInfo *info)
g_rec_mutex_lock (&g_variant_type_info_lock);
if (g_atomic_ref_count_dec (&container->ref_count))
{
+
+ TRACE(GLIB_VARIANT_TYPE_INFO_FREE(info));
+
g_hash_table_remove (g_variant_type_info_table,
container->type_string);
if (g_hash_table_size (g_variant_type_info_table) == 0)
diff --git a/glib/gversionmacros.h b/glib/gversionmacros.h
deleted file mode 100644
index 4ec9e06b6..000000000
--- a/glib/gversionmacros.h
+++ /dev/null
@@ -1,1213 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * SPDX-License-Identifier: LGPL-2.1-or-later
- *
- * This library 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.
- *
- * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/*
- * Modified by the GLib Team and others 1997-2000. See the AUTHORS
- * file for a list of people on the GLib Team. See the ChangeLog
- * files for a list of changes. These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/.
- */
-
-#ifndef __G_VERSION_MACROS_H__
-#define __G_VERSION_MACROS_H__
-
-#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
-#error "Only <glib.h> can be included directly."
-#endif
-
-/* Version boundaries checks */
-
-#define G_ENCODE_VERSION(major,minor) ((major) << 16 | (minor) << 8)
-
-/* XXX: Every new stable minor release bump should add a macro here */
-
-/**
- * GLIB_VERSION_2_26:
- *
- * A macro that evaluates to the 2.26 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.32
- */
-#define GLIB_VERSION_2_26 (G_ENCODE_VERSION (2, 26))
-
-/**
- * GLIB_VERSION_2_28:
- *
- * A macro that evaluates to the 2.28 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.32
- */
-#define GLIB_VERSION_2_28 (G_ENCODE_VERSION (2, 28))
-
-/**
- * GLIB_VERSION_2_30:
- *
- * A macro that evaluates to the 2.30 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.32
- */
-#define GLIB_VERSION_2_30 (G_ENCODE_VERSION (2, 30))
-
-/**
- * GLIB_VERSION_2_32:
- *
- * A macro that evaluates to the 2.32 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.32
- */
-#define GLIB_VERSION_2_32 (G_ENCODE_VERSION (2, 32))
-
-/**
- * GLIB_VERSION_2_34:
- *
- * A macro that evaluates to the 2.34 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.34
- */
-#define GLIB_VERSION_2_34 (G_ENCODE_VERSION (2, 34))
-
-/**
- * GLIB_VERSION_2_36:
- *
- * A macro that evaluates to the 2.36 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.36
- */
-#define GLIB_VERSION_2_36 (G_ENCODE_VERSION (2, 36))
-
-/**
- * GLIB_VERSION_2_38:
- *
- * A macro that evaluates to the 2.38 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.38
- */
-#define GLIB_VERSION_2_38 (G_ENCODE_VERSION (2, 38))
-
-/**
- * GLIB_VERSION_2_40:
- *
- * A macro that evaluates to the 2.40 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.40
- */
-#define GLIB_VERSION_2_40 (G_ENCODE_VERSION (2, 40))
-
-/**
- * GLIB_VERSION_2_42:
- *
- * A macro that evaluates to the 2.42 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.42
- */
-#define GLIB_VERSION_2_42 (G_ENCODE_VERSION (2, 42))
-
-/**
- * GLIB_VERSION_2_44:
- *
- * A macro that evaluates to the 2.44 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.44
- */
-#define GLIB_VERSION_2_44 (G_ENCODE_VERSION (2, 44))
-
-/**
- * GLIB_VERSION_2_46:
- *
- * A macro that evaluates to the 2.46 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.46
- */
-#define GLIB_VERSION_2_46 (G_ENCODE_VERSION (2, 46))
-
-/**
- * GLIB_VERSION_2_48:
- *
- * A macro that evaluates to the 2.48 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.48
- */
-#define GLIB_VERSION_2_48 (G_ENCODE_VERSION (2, 48))
-
-/**
- * GLIB_VERSION_2_50:
- *
- * A macro that evaluates to the 2.50 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.50
- */
-#define GLIB_VERSION_2_50 (G_ENCODE_VERSION (2, 50))
-
-/**
- * GLIB_VERSION_2_52:
- *
- * A macro that evaluates to the 2.52 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.52
- */
-#define GLIB_VERSION_2_52 (G_ENCODE_VERSION (2, 52))
-
-/**
- * GLIB_VERSION_2_54:
- *
- * A macro that evaluates to the 2.54 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.54
- */
-#define GLIB_VERSION_2_54 (G_ENCODE_VERSION (2, 54))
-
-/**
- * GLIB_VERSION_2_56:
- *
- * A macro that evaluates to the 2.56 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.56
- */
-#define GLIB_VERSION_2_56 (G_ENCODE_VERSION (2, 56))
-
-/**
- * GLIB_VERSION_2_58:
- *
- * A macro that evaluates to the 2.58 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.58
- */
-#define GLIB_VERSION_2_58 (G_ENCODE_VERSION (2, 58))
-
-/**
- * GLIB_VERSION_2_60:
- *
- * A macro that evaluates to the 2.60 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.60
- */
-#define GLIB_VERSION_2_60 (G_ENCODE_VERSION (2, 60))
-
-/**
- * GLIB_VERSION_2_62:
- *
- * A macro that evaluates to the 2.62 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.62
- */
-#define GLIB_VERSION_2_62 (G_ENCODE_VERSION (2, 62))
-
-/**
- * GLIB_VERSION_2_64:
- *
- * A macro that evaluates to the 2.64 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.64
- */
-#define GLIB_VERSION_2_64 (G_ENCODE_VERSION (2, 64))
-
-/**
- * GLIB_VERSION_2_66:
- *
- * A macro that evaluates to the 2.66 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.66
- */
-#define GLIB_VERSION_2_66 (G_ENCODE_VERSION (2, 66))
-
-/**
- * GLIB_VERSION_2_68:
- *
- * A macro that evaluates to the 2.68 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.68
- */
-#define GLIB_VERSION_2_68 (G_ENCODE_VERSION (2, 68))
-
-/**
- * GLIB_VERSION_2_70:
- *
- * A macro that evaluates to the 2.70 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.70
- */
-#define GLIB_VERSION_2_70 (G_ENCODE_VERSION (2, 70))
-
-/**
- * GLIB_VERSION_2_72:
- *
- * A macro that evaluates to the 2.72 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.72
- */
-#define GLIB_VERSION_2_72 (G_ENCODE_VERSION (2, 72))
-
-/**
- * GLIB_VERSION_2_74:
- *
- * A macro that evaluates to the 2.74 version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * Since: 2.74
- */
-#define GLIB_VERSION_2_74 (G_ENCODE_VERSION (2, 74))
-
-/**
- * GLIB_VERSION_CUR_STABLE:
- *
- * A macro that evaluates to the current stable version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * During an unstable development cycle, this evaluates to the next stable
- * (unreleased) version which will be the result of the development cycle.
- *
- * Since: 2.32
- */
-#if (GLIB_MINOR_VERSION % 2)
-#define GLIB_VERSION_CUR_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION + 1))
-#else
-#define GLIB_VERSION_CUR_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION))
-#endif
-
-/**
- * GLIB_VERSION_PREV_STABLE:
- *
- * A macro that evaluates to the previous stable version of GLib, in a format
- * that can be used by the C pre-processor.
- *
- * During an unstable development cycle, this evaluates to the most recent
- * released stable release, which preceded this development cycle.
- *
- * Since: 2.32
- */
-#if (GLIB_MINOR_VERSION % 2)
-#define GLIB_VERSION_PREV_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION - 1))
-#else
-#define GLIB_VERSION_PREV_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION - 2))
-#endif
-
-/**
- * GLIB_VERSION_MIN_REQUIRED:
- *
- * A macro that should be defined by the user prior to including
- * the glib.h header.
- * The definition should be one of the predefined GLib version
- * macros: %GLIB_VERSION_2_26, %GLIB_VERSION_2_28,...
- *
- * This macro defines the earliest version of GLib that the package is
- * required to be able to compile against.
- *
- * If the compiler is configured to warn about the use of deprecated
- * functions, then using functions that were deprecated in version
- * %GLIB_VERSION_MIN_REQUIRED or earlier will cause warnings (but
- * using functions deprecated in later releases will not).
- *
- * Since: 2.32
- */
-/* If the package sets GLIB_VERSION_MIN_REQUIRED to some future
- * GLIB_VERSION_X_Y value that we don't know about, it will compare as
- * 0 in preprocessor tests.
- */
-#ifndef GLIB_VERSION_MIN_REQUIRED
-# define GLIB_VERSION_MIN_REQUIRED (GLIB_VERSION_CUR_STABLE)
-#elif GLIB_VERSION_MIN_REQUIRED == 0
-# undef GLIB_VERSION_MIN_REQUIRED
-# define GLIB_VERSION_MIN_REQUIRED (GLIB_VERSION_CUR_STABLE + 2)
-#endif
-
-/**
- * GLIB_VERSION_MAX_ALLOWED:
- *
- * A macro that should be defined by the user prior to including
- * the glib.h header.
- * The definition should be one of the predefined GLib version
- * macros: %GLIB_VERSION_2_26, %GLIB_VERSION_2_28,...
- *
- * This macro defines the latest version of the GLib API that the
- * package is allowed to make use of.
- *
- * If the compiler is configured to warn about the use of deprecated
- * functions, then using functions added after version
- * %GLIB_VERSION_MAX_ALLOWED will cause warnings.
- *
- * Unless you are using GLIB_CHECK_VERSION() or the like to compile
- * different code depending on the GLib version, then this should be
- * set to the same value as %GLIB_VERSION_MIN_REQUIRED.
- *
- * Since: 2.32
- */
-#if !defined (GLIB_VERSION_MAX_ALLOWED) || (GLIB_VERSION_MAX_ALLOWED == 0)
-# undef GLIB_VERSION_MAX_ALLOWED
-# define GLIB_VERSION_MAX_ALLOWED (GLIB_VERSION_CUR_STABLE)
-#endif
-
-/* sanity checks */
-#if GLIB_VERSION_MIN_REQUIRED > GLIB_VERSION_CUR_STABLE
-#error "GLIB_VERSION_MIN_REQUIRED must be <= GLIB_VERSION_CUR_STABLE"
-#endif
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_MIN_REQUIRED
-#error "GLIB_VERSION_MAX_ALLOWED must be >= GLIB_VERSION_MIN_REQUIRED"
-#endif
-#if GLIB_VERSION_MIN_REQUIRED < GLIB_VERSION_2_26
-#error "GLIB_VERSION_MIN_REQUIRED must be >= GLIB_VERSION_2_26"
-#endif
-
-/* These macros are used to mark deprecated functions in GLib headers,
- * and thus have to be exposed in installed headers. But please
- * do *not* use them in other projects. Instead, use G_DEPRECATED
- * or define your own wrappers around it.
- */
-#define GLIB_AVAILABLE_IN_ALL _GLIB_EXTERN
-
-/* XXX: Every new stable minor release should add a set of macros here */
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_26
-# define GLIB_DEPRECATED_IN_2_26 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_26_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_26 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_26_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_26 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_26_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_26 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_26_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_26 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_26_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_26
-# define GLIB_DEPRECATED_MACRO_IN_2_26_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_26
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_26_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_26
-# define GLIB_DEPRECATED_TYPE_IN_2_26_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_26
-# define GLIB_AVAILABLE_IN_2_26 GLIB_UNAVAILABLE(2, 26)
-# define GLIB_AVAILABLE_MACRO_IN_2_26 GLIB_UNAVAILABLE_MACRO(2, 26)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_26 GLIB_UNAVAILABLE_ENUMERATOR(2, 26)
-# define GLIB_AVAILABLE_TYPE_IN_2_26 GLIB_UNAVAILABLE_TYPE(2, 26)
-#else
-# define GLIB_AVAILABLE_IN_2_26 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_26
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_26
-# define GLIB_AVAILABLE_TYPE_IN_2_26
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_28
-# define GLIB_DEPRECATED_IN_2_28 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_28_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_28 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_28_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_28 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_28_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_28 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_28_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_28 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_28_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_28
-# define GLIB_DEPRECATED_MACRO_IN_2_28_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_28
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_28_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_28
-# define GLIB_DEPRECATED_TYPE_IN_2_28_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_28
-# define GLIB_AVAILABLE_IN_2_28 GLIB_UNAVAILABLE(2, 28)
-# define GLIB_AVAILABLE_MACRO_IN_2_28 GLIB_UNAVAILABLE_MACRO(2, 28)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_28 GLIB_UNAVAILABLE_ENUMERATOR(2, 28)
-# define GLIB_AVAILABLE_TYPE_IN_2_28 GLIB_UNAVAILABLE_TYPE(2, 28)
-#else
-# define GLIB_AVAILABLE_IN_2_28 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_28
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_28
-# define GLIB_AVAILABLE_TYPE_IN_2_28
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_30
-# define GLIB_DEPRECATED_IN_2_30 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_30_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_30 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_30_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_30 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_30_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_30 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_30_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_30 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_30_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_30
-# define GLIB_DEPRECATED_MACRO_IN_2_30_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_30
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_30_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_30
-# define GLIB_DEPRECATED_TYPE_IN_2_30_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_30
-# define GLIB_AVAILABLE_IN_2_30 GLIB_UNAVAILABLE(2, 30)
-# define GLIB_AVAILABLE_MACRO_IN_2_30 GLIB_UNAVAILABLE_MACRO(2, 30)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_30 GLIB_UNAVAILABLE_ENUMERATOR(2, 30)
-# define GLIB_AVAILABLE_TYPE_IN_2_30 GLIB_UNAVAILABLE_TYPE(2, 30)
-#else
-# define GLIB_AVAILABLE_IN_2_30 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_30
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_30
-# define GLIB_AVAILABLE_TYPE_IN_2_30
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_32
-# define GLIB_DEPRECATED_IN_2_32 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_32_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_32 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_32_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_32 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_32_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_32 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_32_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_32 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_32_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_32
-# define GLIB_DEPRECATED_MACRO_IN_2_32_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_32
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_32_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_32
-# define GLIB_DEPRECATED_TYPE_IN_2_32_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_32
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_32_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_32
-# define GLIB_DEPRECATED_TYPE_IN_2_32_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_32
-# define GLIB_AVAILABLE_IN_2_32 GLIB_UNAVAILABLE(2, 32)
-# define GLIB_AVAILABLE_MACRO_IN_2_32 GLIB_UNAVAILABLE_MACRO(2, 32)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_32 GLIB_UNAVAILABLE_ENUMERATOR(2, 32)
-# define GLIB_AVAILABLE_TYPE_IN_2_32 GLIB_UNAVAILABLE_TYPE(2, 32)
-#else
-# define GLIB_AVAILABLE_IN_2_32 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_32
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_32
-# define GLIB_AVAILABLE_TYPE_IN_2_32
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_34
-# define GLIB_DEPRECATED_IN_2_34 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_34_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_34 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_34_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_34 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_34_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_34 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_34_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_34 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_34_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_34
-# define GLIB_DEPRECATED_MACRO_IN_2_34_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_34
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_34_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_34
-# define GLIB_DEPRECATED_TYPE_IN_2_34_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_34
-# define GLIB_AVAILABLE_IN_2_34 GLIB_UNAVAILABLE(2, 34)
-# define GLIB_AVAILABLE_MACRO_IN_2_34 GLIB_UNAVAILABLE_MACRO(2, 34)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_34 GLIB_UNAVAILABLE_ENUMERATOR(2, 34)
-# define GLIB_AVAILABLE_TYPE_IN_2_34 GLIB_UNAVAILABLE_TYPE(2, 34)
-#else
-# define GLIB_AVAILABLE_IN_2_34 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_34
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_34
-# define GLIB_AVAILABLE_TYPE_IN_2_34
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_36
-# define GLIB_DEPRECATED_IN_2_36 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_36_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_36 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_36_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_36 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_36_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_36 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_36_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_36 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_36_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_36
-# define GLIB_DEPRECATED_MACRO_IN_2_36_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_36
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_36_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_36
-# define GLIB_DEPRECATED_TYPE_IN_2_36_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_36
-# define GLIB_AVAILABLE_IN_2_36 GLIB_UNAVAILABLE(2, 36)
-# define GLIB_AVAILABLE_MACRO_IN_2_36 GLIB_UNAVAILABLE_MACRO(2, 36)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_36 GLIB_UNAVAILABLE_ENUMERATOR(2, 36)
-# define GLIB_AVAILABLE_TYPE_IN_2_36 GLIB_UNAVAILABLE_TYPE(2, 36)
-#else
-# define GLIB_AVAILABLE_IN_2_36 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_36
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_36
-# define GLIB_AVAILABLE_TYPE_IN_2_36
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_38
-# define GLIB_DEPRECATED_IN_2_38 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_38_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_38 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_38_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_38 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_38_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_38 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_38_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_38 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_38_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_38
-# define GLIB_DEPRECATED_MACRO_IN_2_38_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_38
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_38_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_38
-# define GLIB_DEPRECATED_TYPE_IN_2_38_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
-# define GLIB_AVAILABLE_IN_2_38 GLIB_UNAVAILABLE(2, 38)
-# define GLIB_AVAILABLE_MACRO_IN_2_38 GLIB_UNAVAILABLE_MACRO(2, 38)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_38 GLIB_UNAVAILABLE_ENUMERATOR(2, 38)
-# define GLIB_AVAILABLE_TYPE_IN_2_38 GLIB_UNAVAILABLE_TYPE(2, 38)
-#else
-# define GLIB_AVAILABLE_IN_2_38 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_38
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_38
-# define GLIB_AVAILABLE_TYPE_IN_2_38
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_40
-# define GLIB_DEPRECATED_IN_2_40 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_40_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_40 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_40_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_40 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_40_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_40 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_40_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_40 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_40_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_40
-# define GLIB_DEPRECATED_MACRO_IN_2_40_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_40
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_40_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_40
-# define GLIB_DEPRECATED_TYPE_IN_2_40_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_40
-# define GLIB_AVAILABLE_IN_2_40 GLIB_UNAVAILABLE(2, 40)
-# define GLIB_AVAILABLE_MACRO_IN_2_40 GLIB_UNAVAILABLE_MACRO(2, 40)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_40 GLIB_UNAVAILABLE_ENUMERATOR(2, 40)
-# define GLIB_AVAILABLE_TYPE_IN_2_40 GLIB_UNAVAILABLE_TYPE(2, 40)
-#else
-# define GLIB_AVAILABLE_IN_2_40 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_40
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_40
-# define GLIB_AVAILABLE_TYPE_IN_2_40
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_42
-# define GLIB_DEPRECATED_IN_2_42 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_42_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_42 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_42_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_42 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_42_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_42
-# define GLIB_DEPRECATED_MACRO_IN_2_42_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_42
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_42_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_42
-# define GLIB_DEPRECATED_TYPE_IN_2_42_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_42
-# define GLIB_AVAILABLE_IN_2_42 GLIB_UNAVAILABLE(2, 42)
-# define GLIB_AVAILABLE_MACRO_IN_2_42 GLIB_UNAVAILABLE_MACRO(2, 42)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_42 GLIB_UNAVAILABLE_ENUMERATOR(2, 42)
-# define GLIB_AVAILABLE_TYPE_IN_2_42 GLIB_UNAVAILABLE_TYPE(2, 42)
-#else
-# define GLIB_AVAILABLE_IN_2_42 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_42
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_42
-# define GLIB_AVAILABLE_TYPE_IN_2_42
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_44
-# define GLIB_DEPRECATED_IN_2_44 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_44_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_44 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_44_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_44 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_44_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_44 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_44_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_44 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_44_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_44
-# define GLIB_DEPRECATED_MACRO_IN_2_44_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_44
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_44_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_44
-# define GLIB_DEPRECATED_TYPE_IN_2_44_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_44
-# define GLIB_AVAILABLE_IN_2_44 GLIB_UNAVAILABLE(2, 44)
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_44 GLIB_UNAVAILABLE_STATIC_INLINE(2, 44)
-# define GLIB_AVAILABLE_MACRO_IN_2_44 GLIB_UNAVAILABLE_MACRO(2, 44)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_44 GLIB_UNAVAILABLE_ENUMERATOR(2, 44)
-# define GLIB_AVAILABLE_TYPE_IN_2_44 GLIB_UNAVAILABLE_TYPE(2, 44)
-#else
-# define GLIB_AVAILABLE_IN_2_44 _GLIB_EXTERN
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_44
-# define GLIB_AVAILABLE_MACRO_IN_2_44
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_44
-# define GLIB_AVAILABLE_TYPE_IN_2_44
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_46
-# define GLIB_DEPRECATED_IN_2_46 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_46_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_46 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_46_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_46 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_46_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_46
-# define GLIB_DEPRECATED_MACRO_IN_2_46_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_46
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_46_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_46
-# define GLIB_DEPRECATED_TYPE_IN_2_46_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_46
-# define GLIB_AVAILABLE_IN_2_46 GLIB_UNAVAILABLE(2, 46)
-# define GLIB_AVAILABLE_MACRO_IN_2_46 GLIB_UNAVAILABLE_MACRO(2, 46)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_46 GLIB_UNAVAILABLE_ENUMERATOR(2, 46)
-# define GLIB_AVAILABLE_TYPE_IN_2_46 GLIB_UNAVAILABLE_TYPE(2, 46)
-#else
-# define GLIB_AVAILABLE_IN_2_46 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_46
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_46
-# define GLIB_AVAILABLE_TYPE_IN_2_46
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_48
-# define GLIB_DEPRECATED_IN_2_48 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_48_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_48 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_48_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_48 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_48_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_48 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_48_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_48 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_48_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_48
-# define GLIB_DEPRECATED_MACRO_IN_2_48_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_48
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_48_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_48
-# define GLIB_DEPRECATED_TYPE_IN_2_48_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_48
-# define GLIB_AVAILABLE_IN_2_48 GLIB_UNAVAILABLE(2, 48)
-# define GLIB_AVAILABLE_MACRO_IN_2_48 GLIB_UNAVAILABLE_MACRO(2, 48)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_48 GLIB_UNAVAILABLE_ENUMERATOR(2, 48)
-# define GLIB_AVAILABLE_TYPE_IN_2_48 GLIB_UNAVAILABLE_TYPE(2, 48)
-#else
-# define GLIB_AVAILABLE_IN_2_48 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_48
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_48
-# define GLIB_AVAILABLE_TYPE_IN_2_48
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_50
-# define GLIB_DEPRECATED_IN_2_50 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_50_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_50 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_50_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_50 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_50_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_50 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_50_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_50 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_50_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_50
-# define GLIB_DEPRECATED_MACRO_IN_2_50_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_50
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_50_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_50
-# define GLIB_DEPRECATED_TYPE_IN_2_50_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_50
-# define GLIB_AVAILABLE_IN_2_50 GLIB_UNAVAILABLE(2, 50)
-# define GLIB_AVAILABLE_MACRO_IN_2_50 GLIB_UNAVAILABLE_MACRO(2, 50)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_50 GLIB_UNAVAILABLE_ENUMERATOR(2, 50)
-# define GLIB_AVAILABLE_TYPE_IN_2_50 GLIB_UNAVAILABLE_TYPE(2, 50)
-#else
-# define GLIB_AVAILABLE_IN_2_50 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_50
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_50
-# define GLIB_AVAILABLE_TYPE_IN_2_50
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_52
-# define GLIB_DEPRECATED_IN_2_52 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_52_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_52 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_52_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_52 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_52_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_52 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_52_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_52 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_52_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_52
-# define GLIB_DEPRECATED_MACRO_IN_2_52_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_52
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_52_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_52
-# define GLIB_DEPRECATED_TYPE_IN_2_52_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_52
-# define GLIB_AVAILABLE_IN_2_52 GLIB_UNAVAILABLE(2, 52)
-# define GLIB_AVAILABLE_MACRO_IN_2_52 GLIB_UNAVAILABLE_MACRO(2, 52)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_52 GLIB_UNAVAILABLE_ENUMERATOR(2, 52)
-# define GLIB_AVAILABLE_TYPE_IN_2_52 GLIB_UNAVAILABLE_TYPE(2, 52)
-#else
-# define GLIB_AVAILABLE_IN_2_52 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_52
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_52
-# define GLIB_AVAILABLE_TYPE_IN_2_52
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_54
-# define GLIB_DEPRECATED_IN_2_54 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_54_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_54 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_54_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_54 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_54_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_54 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_54_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_54 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_54_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_54
-# define GLIB_DEPRECATED_MACRO_IN_2_54_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_54
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_54_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_54
-# define GLIB_DEPRECATED_TYPE_IN_2_54_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_54
-# define GLIB_AVAILABLE_IN_2_54 GLIB_UNAVAILABLE(2, 54)
-# define GLIB_AVAILABLE_MACRO_IN_2_54 GLIB_UNAVAILABLE_MACRO(2, 54)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_54 GLIB_UNAVAILABLE_ENUMERATOR(2, 54)
-# define GLIB_AVAILABLE_TYPE_IN_2_54 GLIB_UNAVAILABLE_TYPE(2, 54)
-#else
-# define GLIB_AVAILABLE_IN_2_54 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_54
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_54
-# define GLIB_AVAILABLE_TYPE_IN_2_54
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_56
-# define GLIB_DEPRECATED_IN_2_56 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_56_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_56 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_56_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_56 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_56_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_56 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_56_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_56 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_56_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_56
-# define GLIB_DEPRECATED_MACRO_IN_2_56_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_56
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_56_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_56
-# define GLIB_DEPRECATED_TYPE_IN_2_56_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_56
-# define GLIB_AVAILABLE_IN_2_56 GLIB_UNAVAILABLE(2, 56)
-# define GLIB_AVAILABLE_MACRO_IN_2_56 GLIB_UNAVAILABLE_MACRO(2, 56)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_56 GLIB_UNAVAILABLE_ENUMERATOR(2, 56)
-# define GLIB_AVAILABLE_TYPE_IN_2_56 GLIB_UNAVAILABLE_TYPE(2, 56)
-#else
-# define GLIB_AVAILABLE_IN_2_56 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_56
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_56
-# define GLIB_AVAILABLE_TYPE_IN_2_56
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_58
-# define GLIB_DEPRECATED_IN_2_58 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_58_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_58 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_58_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_58 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_58_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_58 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_58_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_58 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_58_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_58
-# define GLIB_DEPRECATED_MACRO_IN_2_58_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_58
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_58_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_58
-# define GLIB_DEPRECATED_TYPE_IN_2_58_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_58
-# define GLIB_AVAILABLE_IN_2_58 GLIB_UNAVAILABLE(2, 58)
-# define GLIB_AVAILABLE_MACRO_IN_2_58 GLIB_UNAVAILABLE_MACRO(2, 58)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_58 GLIB_UNAVAILABLE_ENUMERATOR(2, 58)
-# define GLIB_AVAILABLE_TYPE_IN_2_58 GLIB_UNAVAILABLE_TYPE(2, 58)
-#else
-# define GLIB_AVAILABLE_IN_2_58 _GLIB_EXTERN
-# define GLIB_AVAILABLE_MACRO_IN_2_58
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_58
-# define GLIB_AVAILABLE_TYPE_IN_2_58
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_60
-# define GLIB_DEPRECATED_IN_2_60 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_60_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_60 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_60_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_60 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_60_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_60 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_60_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_60 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_60_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_60
-# define GLIB_DEPRECATED_MACRO_IN_2_60_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_60
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_60_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_60
-# define GLIB_DEPRECATED_TYPE_IN_2_60_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_60
-# define GLIB_AVAILABLE_IN_2_60 GLIB_UNAVAILABLE(2, 60)
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_60 GLIB_UNAVAILABLE_STATIC_INLINE(2, 60)
-# define GLIB_AVAILABLE_MACRO_IN_2_60 GLIB_UNAVAILABLE_MACRO(2, 60)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_60 GLIB_UNAVAILABLE_ENUMERATOR(2, 60)
-# define GLIB_AVAILABLE_TYPE_IN_2_60 GLIB_UNAVAILABLE_TYPE(2, 60)
-#else
-# define GLIB_AVAILABLE_IN_2_60 _GLIB_EXTERN
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_60
-# define GLIB_AVAILABLE_MACRO_IN_2_60
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_60
-# define GLIB_AVAILABLE_TYPE_IN_2_60
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_62
-# define GLIB_DEPRECATED_IN_2_62 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_62_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_62 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_62_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_62 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_62_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_62 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_62_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_62 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_62_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_62
-# define GLIB_DEPRECATED_MACRO_IN_2_62_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_62
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_62_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_62
-# define GLIB_DEPRECATED_TYPE_IN_2_62_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_62
-# define GLIB_AVAILABLE_IN_2_62 GLIB_UNAVAILABLE(2, 62)
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_62 GLIB_UNAVAILABLE_STATIC_INLINE(2, 62)
-# define GLIB_AVAILABLE_MACRO_IN_2_62 GLIB_UNAVAILABLE_MACRO(2, 62)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_62 GLIB_UNAVAILABLE_ENUMERATOR(2, 62)
-# define GLIB_AVAILABLE_TYPE_IN_2_62 GLIB_UNAVAILABLE_TYPE(2, 62)
-#else
-# define GLIB_AVAILABLE_IN_2_62 _GLIB_EXTERN
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_62
-# define GLIB_AVAILABLE_MACRO_IN_2_62
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_62
-# define GLIB_AVAILABLE_TYPE_IN_2_62
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_64
-# define GLIB_DEPRECATED_IN_2_64 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_64_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_64 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_64_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_64 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_64_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_64 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_64_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_64 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_64_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_64
-# define GLIB_DEPRECATED_MACRO_IN_2_64_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_64
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_64_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_64
-# define GLIB_DEPRECATED_TYPE_IN_2_64_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_64
-# define GLIB_AVAILABLE_IN_2_64 GLIB_UNAVAILABLE(2, 64)
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_64 GLIB_UNAVAILABLE_STATIC_INLINE(2, 64)
-# define GLIB_AVAILABLE_MACRO_IN_2_64 GLIB_UNAVAILABLE_MACRO(2, 64)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_64 GLIB_UNAVAILABLE_ENUMERATOR(2, 64)
-# define GLIB_AVAILABLE_TYPE_IN_2_64 GLIB_UNAVAILABLE_TYPE(2, 64)
-#else
-# define GLIB_AVAILABLE_IN_2_64 _GLIB_EXTERN
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_64
-# define GLIB_AVAILABLE_MACRO_IN_2_64
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_64
-# define GLIB_AVAILABLE_TYPE_IN_2_64
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_66
-# define GLIB_DEPRECATED_IN_2_66 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_66_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_66 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_66_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_66 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_66_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_66 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_66_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_66 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_66_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_66
-# define GLIB_DEPRECATED_MACRO_IN_2_66_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_66
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_66_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_66
-# define GLIB_DEPRECATED_TYPE_IN_2_66_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_66
-# define GLIB_AVAILABLE_IN_2_66 GLIB_UNAVAILABLE(2, 66)
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_66 GLIB_UNAVAILABLE_STATIC_INLINE(2, 66)
-# define GLIB_AVAILABLE_MACRO_IN_2_66 GLIB_UNAVAILABLE_MACRO(2, 66)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_66 GLIB_UNAVAILABLE_ENUMERATOR(2, 66)
-# define GLIB_AVAILABLE_TYPE_IN_2_66 GLIB_UNAVAILABLE_TYPE(2, 66)
-#else
-# define GLIB_AVAILABLE_IN_2_66 _GLIB_EXTERN
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_66
-# define GLIB_AVAILABLE_MACRO_IN_2_66
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_66
-# define GLIB_AVAILABLE_TYPE_IN_2_66
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_68
-# define GLIB_DEPRECATED_IN_2_68 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_68_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_68 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_68_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_68 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_68_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_68 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_68_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_68 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_68_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_68
-# define GLIB_DEPRECATED_MACRO_IN_2_68_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_68
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_68_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_68
-# define GLIB_DEPRECATED_TYPE_IN_2_68_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_68
-# define GLIB_AVAILABLE_IN_2_68 GLIB_UNAVAILABLE(2, 68)
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_68 GLIB_UNAVAILABLE_STATIC_INLINE(2, 68)
-# define GLIB_AVAILABLE_MACRO_IN_2_68 GLIB_UNAVAILABLE_MACRO(2, 68)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_68 GLIB_UNAVAILABLE_ENUMERATOR(2, 68)
-# define GLIB_AVAILABLE_TYPE_IN_2_68 GLIB_UNAVAILABLE_TYPE(2, 68)
-#else
-# define GLIB_AVAILABLE_IN_2_68 _GLIB_EXTERN
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_68
-# define GLIB_AVAILABLE_MACRO_IN_2_68
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_68
-# define GLIB_AVAILABLE_TYPE_IN_2_68
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_70
-# define GLIB_DEPRECATED_IN_2_70 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_70_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_70 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_70_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_70 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_70_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_70 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_70_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_70 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_70_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_70
-# define GLIB_DEPRECATED_MACRO_IN_2_70_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_70
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_70_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_70
-# define GLIB_DEPRECATED_TYPE_IN_2_70_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_70
-# define GLIB_AVAILABLE_IN_2_70 GLIB_UNAVAILABLE(2, 70)
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_70 GLIB_UNAVAILABLE_STATIC_INLINE(2, 70)
-# define GLIB_AVAILABLE_MACRO_IN_2_70 GLIB_UNAVAILABLE_MACRO(2, 70)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_70 GLIB_UNAVAILABLE_ENUMERATOR(2, 70)
-# define GLIB_AVAILABLE_TYPE_IN_2_70 GLIB_UNAVAILABLE_TYPE(2, 70)
-#else
-# define GLIB_AVAILABLE_IN_2_70 _GLIB_EXTERN
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_70
-# define GLIB_AVAILABLE_MACRO_IN_2_70
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_70
-# define GLIB_AVAILABLE_TYPE_IN_2_70
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_72
-# define GLIB_DEPRECATED_IN_2_72 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_72_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_72 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_72_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_72 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_72_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_72 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_72_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_72 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_72_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_72
-# define GLIB_DEPRECATED_MACRO_IN_2_72_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_72
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_72_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_72
-# define GLIB_DEPRECATED_TYPE_IN_2_72_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_72
-# define GLIB_AVAILABLE_IN_2_72 GLIB_UNAVAILABLE(2, 72)
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_72 GLIB_UNAVAILABLE_STATIC_INLINE(2, 72)
-# define GLIB_AVAILABLE_MACRO_IN_2_72 GLIB_UNAVAILABLE_MACRO(2, 72)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_72 GLIB_UNAVAILABLE_ENUMERATOR(2, 72)
-# define GLIB_AVAILABLE_TYPE_IN_2_72 GLIB_UNAVAILABLE_TYPE(2, 72)
-#else
-# define GLIB_AVAILABLE_IN_2_72 _GLIB_EXTERN
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_72
-# define GLIB_AVAILABLE_MACRO_IN_2_72
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_72
-# define GLIB_AVAILABLE_TYPE_IN_2_72
-#endif
-
-#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_74
-# define GLIB_DEPRECATED_IN_2_74 GLIB_DEPRECATED
-# define GLIB_DEPRECATED_IN_2_74_FOR(f) GLIB_DEPRECATED_FOR(f)
-# define GLIB_DEPRECATED_MACRO_IN_2_74 GLIB_DEPRECATED_MACRO
-# define GLIB_DEPRECATED_MACRO_IN_2_74_FOR(f) GLIB_DEPRECATED_MACRO_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_74 GLIB_DEPRECATED_ENUMERATOR
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_74_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_74 GLIB_DEPRECATED_TYPE
-# define GLIB_DEPRECATED_TYPE_IN_2_74_FOR(f) GLIB_DEPRECATED_TYPE_FOR(f)
-#else
-# define GLIB_DEPRECATED_IN_2_74 _GLIB_EXTERN
-# define GLIB_DEPRECATED_IN_2_74_FOR(f) _GLIB_EXTERN
-# define GLIB_DEPRECATED_MACRO_IN_2_74
-# define GLIB_DEPRECATED_MACRO_IN_2_74_FOR(f)
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_74
-# define GLIB_DEPRECATED_ENUMERATOR_IN_2_74_FOR(f)
-# define GLIB_DEPRECATED_TYPE_IN_2_74
-# define GLIB_DEPRECATED_TYPE_IN_2_74_FOR(f)
-#endif
-
-#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_74
-# define GLIB_AVAILABLE_IN_2_74 GLIB_UNAVAILABLE(2, 74)
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_74 GLIB_UNAVAILABLE_STATIC_INLINE(2, 74)
-# define GLIB_AVAILABLE_MACRO_IN_2_74 GLIB_UNAVAILABLE_MACRO(2, 74)
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_74 GLIB_UNAVAILABLE_ENUMERATOR(2, 74)
-# define GLIB_AVAILABLE_TYPE_IN_2_74 GLIB_UNAVAILABLE_TYPE(2, 74)
-#else
-# define GLIB_AVAILABLE_IN_2_74 _GLIB_EXTERN
-# define GLIB_AVAILABLE_STATIC_INLINE_IN_2_74
-# define GLIB_AVAILABLE_MACRO_IN_2_74
-# define GLIB_AVAILABLE_ENUMERATOR_IN_2_74
-# define GLIB_AVAILABLE_TYPE_IN_2_74
-#endif
-
-#endif /* __G_VERSION_MACROS_H__ */
diff --git a/glib/gversionmacros.h.in b/glib/gversionmacros.h.in
new file mode 100644
index 000000000..edae63fda
--- /dev/null
+++ b/glib/gversionmacros.h.in
@@ -0,0 +1,140 @@
+/* GLIB - Library of useful routines for C programming
+ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * Modified by the GLib Team and others 1997-2000. See the AUTHORS
+ * file for a list of people on the GLib Team. See the ChangeLog
+ * files for a list of changes. These files are distributed with
+ * GLib at ftp://ftp.gtk.org/pub/gtk/.
+ */
+
+#ifndef __G_VERSION_MACROS_H__
+#define __G_VERSION_MACROS_H__
+
+#if !defined(__GLIB_H_INSIDE__) && !defined(GLIB_COMPILATION)
+#error "Only <glib.h> can be included directly."
+#endif
+
+/* Version boundaries checks */
+
+#define G_ENCODE_VERSION(major, minor) ((major) << 16 | (minor) << 8)
+
+@GLIB_VERSIONS@
+
+/**
+ * GLIB_VERSION_CUR_STABLE:
+ *
+ * A macro that evaluates to the current stable version of GLib, in a format
+ * that can be used by the C pre-processor.
+ *
+ * During an unstable development cycle, this evaluates to the next stable
+ * (unreleased) version which will be the result of the development cycle.
+ *
+ * Since: 2.32
+ */
+#if (GLIB_MINOR_VERSION % 2)
+#define GLIB_VERSION_CUR_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION + 1))
+#else
+#define GLIB_VERSION_CUR_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION))
+#endif
+
+/**
+ * GLIB_VERSION_PREV_STABLE:
+ *
+ * A macro that evaluates to the previous stable version of GLib, in a format
+ * that can be used by the C pre-processor.
+ *
+ * During an unstable development cycle, this evaluates to the most recent
+ * released stable release, which preceded this development cycle.
+ *
+ * Since: 2.32
+ */
+#if (GLIB_MINOR_VERSION % 2)
+#define GLIB_VERSION_PREV_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION - 1))
+#else
+#define GLIB_VERSION_PREV_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION - 2))
+#endif
+
+/**
+ * GLIB_VERSION_MIN_REQUIRED:
+ *
+ * A macro that should be defined by the user prior to including
+ * the glib.h header.
+ * The definition should be one of the predefined GLib version
+ * macros: %GLIB_VERSION_2_26, %GLIB_VERSION_2_28,...
+ *
+ * This macro defines the earliest version of GLib that the package is
+ * required to be able to compile against.
+ *
+ * If the compiler is configured to warn about the use of deprecated
+ * functions, then using functions that were deprecated in version
+ * %GLIB_VERSION_MIN_REQUIRED or earlier will cause warnings (but
+ * using functions deprecated in later releases will not).
+ *
+ * Since: 2.32
+ */
+/* If the package sets GLIB_VERSION_MIN_REQUIRED to some future
+ * GLIB_VERSION_X_Y value that we don't know about, it will compare as
+ * 0 in preprocessor tests.
+ */
+#ifndef GLIB_VERSION_MIN_REQUIRED
+#define GLIB_VERSION_MIN_REQUIRED (GLIB_VERSION_CUR_STABLE)
+#elif GLIB_VERSION_MIN_REQUIRED == 0
+#undef GLIB_VERSION_MIN_REQUIRED
+#define GLIB_VERSION_MIN_REQUIRED (GLIB_VERSION_CUR_STABLE + 2)
+#endif
+
+/**
+ * GLIB_VERSION_MAX_ALLOWED:
+ *
+ * A macro that should be defined by the user prior to including
+ * the glib.h header.
+ * The definition should be one of the predefined GLib version
+ * macros: %GLIB_VERSION_2_26, %GLIB_VERSION_2_28,...
+ *
+ * This macro defines the latest version of the GLib API that the
+ * package is allowed to make use of.
+ *
+ * If the compiler is configured to warn about the use of deprecated
+ * functions, then using functions added after version
+ * %GLIB_VERSION_MAX_ALLOWED will cause warnings.
+ *
+ * Unless you are using GLIB_CHECK_VERSION() or the like to compile
+ * different code depending on the GLib version, then this should be
+ * set to the same value as %GLIB_VERSION_MIN_REQUIRED.
+ *
+ * Since: 2.32
+ */
+#if !defined(GLIB_VERSION_MAX_ALLOWED) || (GLIB_VERSION_MAX_ALLOWED == 0)
+#undef GLIB_VERSION_MAX_ALLOWED
+#define GLIB_VERSION_MAX_ALLOWED (GLIB_VERSION_CUR_STABLE)
+#endif
+
+/* sanity checks */
+#if GLIB_VERSION_MIN_REQUIRED > GLIB_VERSION_CUR_STABLE
+#error "GLIB_VERSION_MIN_REQUIRED must be <= GLIB_VERSION_CUR_STABLE"
+#endif
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_MIN_REQUIRED
+#error "GLIB_VERSION_MAX_ALLOWED must be >= GLIB_VERSION_MIN_REQUIRED"
+#endif
+#if GLIB_VERSION_MIN_REQUIRED < GLIB_VERSION_2_26
+#error "GLIB_VERSION_MIN_REQUIRED must be >= GLIB_VERSION_2_26"
+#endif
+
+#endif /* __G_VERSION_MACROS_H__ */
diff --git a/glib/gwakeup.c b/glib/gwakeup.c
index 0f76be62b..6ce401e52 100644
--- a/glib/gwakeup.c
+++ b/glib/gwakeup.c
@@ -21,6 +21,7 @@
#include "config.h"
+#include <stdint.h>
/* gwakeup.c is special -- GIO and some test cases include it. As such,
* it cannot include other glib headers without triggering the single
@@ -159,7 +160,7 @@ g_wakeup_new (void)
/* for any failure, try a pipe instead */
#endif
- if (!g_unix_open_pipe (wakeup->fds, FD_CLOEXEC, &error))
+ if (!g_unix_open_pipe (wakeup->fds, O_CLOEXEC | O_NONBLOCK, &error))
g_error ("Creating pipes for GWakeup: %s", error->message);
if (!g_unix_set_fd_nonblocking (wakeup->fds[0], TRUE, &error) ||
@@ -206,10 +207,26 @@ g_wakeup_get_pollfd (GWakeup *wakeup,
void
g_wakeup_acknowledge (GWakeup *wakeup)
{
- char buffer[16];
+ int res;
+
+ if (wakeup->fds[1] == -1)
+ {
+ uint64_t value;
+
+ /* eventfd() read resets counter */
+ do
+ res = read (wakeup->fds[0], &value, sizeof (value));
+ while (G_UNLIKELY (res == -1 && errno == EINTR));
+ }
+ else
+ {
+ uint8_t value;
- /* read until it is empty */
- while (read (wakeup->fds[0], buffer, sizeof buffer) == sizeof buffer);
+ /* read until it is empty */
+ do
+ res = read (wakeup->fds[0], &value, sizeof (value));
+ while (res == sizeof (value) || G_UNLIKELY (res == -1 && errno == EINTR));
+ }
}
/**
@@ -233,7 +250,7 @@ g_wakeup_signal (GWakeup *wakeup)
if (wakeup->fds[1] == -1)
{
- guint64 one = 1;
+ uint64_t one = 1;
/* eventfd() case. It requires a 64-bit counter increment value to be
* written. */
@@ -243,7 +260,7 @@ g_wakeup_signal (GWakeup *wakeup)
}
else
{
- guint8 one = 1;
+ uint8_t one = 1;
/* Non-eventfd() case. Only a single byte needs to be written, and it can
* have an arbitrary value. */
diff --git a/glib/gwin32.c b/glib/gwin32.c
index d1391b1d2..ab9e4b571 100644
--- a/glib/gwin32.c
+++ b/glib/gwin32.c
@@ -123,8 +123,8 @@ g_win32_getlocale (void)
const gchar *script = NULL;
/* Let the user override the system settings through environment
- * variables, as on POSIX systems. Note that in GTK+ applications
- * since GTK+ 2.10.7 setting either LC_ALL or LANG also sets the
+ * variables, as on POSIX systems. Note that in GTK applications
+ * since GTK 2.10.7 setting either LC_ALL or LANG also sets the
* Win32 locale and C library locale through code in gtkmain.c.
*/
if (((ev = g_getenv ("LC_ALL")) != NULL && ev[0] != '\0')
@@ -578,7 +578,9 @@ g_win32_check_windows_version (const gint major,
/* Check for Service Pack Version >= 0 */
g_return_val_if_fail (spver >= 0, FALSE);
- g_return_val_if_fail (_g_win32_call_rtl_version (&osverinfo), FALSE);
+
+ if (!_g_win32_call_rtl_version (&osverinfo))
+ return FALSE;
/* check the OS and Service Pack Versions */
if (osverinfo.dwMajorVersion > (DWORD) major)
diff --git a/glib/libcharset/meson.build b/glib/libcharset/meson.build
index 5a02666df..f286b4877 100644
--- a/glib/libcharset/meson.build
+++ b/glib/libcharset/meson.build
@@ -1,4 +1,6 @@
charset_lib = static_library('charset', 'localcharset.c',
include_directories : configinc,
pic : true,
- c_args : [ '-DGLIB_CHARSETALIAS_DIR="@0@"'.format(glib_charsetaliasdir) ] + glib_hidden_visibility_args)
+ c_args : [ '-DGLIB_CHARSETALIAS_DIR="@0@"'.format(glib_charsetaliasdir) ],
+ gnu_symbol_visibility : 'hidden',
+)
diff --git a/glib/meson.build b/glib/meson.build
index c365901a1..c26a35e42 100644
--- a/glib/meson.build
+++ b/glib/meson.build
@@ -1,7 +1,36 @@
+glib_sources = []
+glib_sub_includedir = glib_includedir / 'glib'
+
glibconfig_h = configure_file(input : 'glibconfig.h.in', output : 'glibconfig.h',
install_dir : join_paths(get_option('libdir'), 'glib-2.0/include'),
install_tag : 'devel',
configuration : glibconfig_conf)
+glib_sources += glibconfig_h
+
+gversionmacros_h = custom_target(
+ input: 'gversionmacros.h.in',
+ output: 'gversionmacros.h',
+ command: [gen_visibility_macros, meson.project_version(), 'versions-macros', '@INPUT@', '@OUTPUT@'],
+ install: true,
+ install_dir: glib_sub_includedir,
+ # FIXME: Not needed with Meson >= 0.64.0
+ install_tag: 'devel',
+)
+
+glib_visibility_h = custom_target(
+ output: 'glib-visibility.h',
+ command: [gen_visibility_macros, meson.project_version(), 'visibility-macros', 'GLIB', '@OUTPUT@'],
+ install: true,
+ install_dir: glib_sub_includedir,
+ # FIXME: Not needed with Meson >= 0.64.0
+ install_tag: 'devel',
+)
+
+glib_built_headers = [gversionmacros_h, glib_visibility_h]
+glib_sources += glib_built_headers
+glib_c_args_internal = [
+ '-DGLIB_COMPILATION',
+]
subdir('libcharset')
@@ -119,7 +148,11 @@ glib_headers = files(
'glib-unix.h',
'glib-object.h',
)
-install_headers(glib_headers, subdir : 'glib-2.0')
+install_headers(glib_headers, install_dir : glib_includedir)
+
+if host_system == 'windows'
+ install_headers([ 'msvc_recommended_pragmas.h' ], install_dir : glib_includedir)
+endif
# Expose as variable to be used by gobject-introspection
# when it includes GLib as a subproject
@@ -133,7 +166,8 @@ glib_deprecated_headers = files(
'deprecated/grel.h',
'deprecated/gthread.h',
)
-install_headers(glib_deprecated_headers, subdir : 'glib-2.0/glib/deprecated')
+install_headers(glib_deprecated_headers,
+ install_dir : glib_sub_includedir / 'deprecated')
glib_sub_headers = files(
'glib-autocleanups.h',
@@ -175,6 +209,7 @@ glib_sub_headers = files(
'gmessages.h',
'gnode.h',
'goption.h',
+ 'gpathbuf.h',
'gpattern.h',
'gpoll.h',
'gprimes.h',
@@ -212,11 +247,11 @@ glib_sub_headers = files(
'gvarianttype.h',
'gvariant.h',
'gversion.h',
- 'gversionmacros.h',
'gwin32.h',
'gprintf.h',
)
-install_headers(glib_sub_headers, subdir : 'glib-2.0/glib')
+
+install_headers(glib_sub_headers, install_dir : glib_sub_includedir)
deprecated_sources = files(
'deprecated/gallocator.c',
@@ -226,7 +261,7 @@ deprecated_sources = files(
'deprecated/gthread-deprecated.c'
)
-glib_sources = files(
+glib_sources += files(
'garcbox.c',
'garray.c',
'gasyncqueue.c',
@@ -263,6 +298,7 @@ glib_sources = files(
'gmessages.c',
'gnode.c',
'goption.c',
+ 'gpathbuf.c',
'gpattern.c',
'gpoll.c',
'gprimes.c',
@@ -318,7 +354,7 @@ glib_sources = files(
platform_deps = []
if host_system == 'windows'
- if get_option('default_library') == 'shared'
+ if glib_build_shared
glib_win_rc = configure_file(
input: 'glib.rc.in',
output: 'glib.rc',
@@ -333,7 +369,7 @@ if host_system == 'windows'
glib_sources += files('dirent/wdirent.c')
endif
else
- glib_sources += files('glib-unix.c', 'gspawn.c', 'giounix.c')
+ glib_sources += files('glib-unix.c', 'glib-unixprivate.h', 'gspawn.c', 'giounix.c')
platform_deps = []
endif
@@ -368,7 +404,7 @@ if use_pcre2_static_flag
pcre2_static_args = ['-DPCRE2_STATIC']
endif
-glib_c_args = ['-DG_LOG_DOMAIN="GLib"', '-DGLIB_COMPILATION'] + pcre2_static_args + glib_hidden_visibility_args
+glib_c_args = ['-DG_LOG_DOMAIN="GLib"'] + glib_c_args_internal + pcre2_static_args
libglib = library('glib-2.0',
glib_dtrace_obj, glib_dtrace_hdr,
sources : [deprecated_sources, glib_sources],
@@ -380,14 +416,26 @@ libglib = library('glib-2.0',
link_args : [noseh_link_args, glib_link_flags, win32_ldflags],
include_directories : configinc,
link_with: [charset_lib, gnulib_lib],
- dependencies : [pcre2, thread_dep, librt] + libintl_deps + libiconv + platform_deps + [gnulib_libm_dependency, libm] + [libsysprof_capture_dep],
+ dependencies : [
+ gnulib_libm_dependency,
+ libiconv,
+ libintl_deps,
+ libm,
+ librt,
+ libsysprof_capture_dep,
+ pcre2,
+ platform_deps,
+ thread_dep,
+ ],
c_args : glib_c_args,
objc_args : glib_c_args,
+ gnu_symbol_visibility : 'hidden',
)
libglib_dep = declare_dependency(
link_with : libglib,
dependencies : libintl_deps,
+ sources : glib_built_headers,
# We sadly need to export configinc here because everyone includes <glib/*.h>
include_directories : [configinc, glibinc])
@@ -396,10 +444,16 @@ pkg.generate(libglib,
libraries_private : [win32_ldflags],
subdirs : ['glib-2.0'],
extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
- variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')),
- 'glib_genmarshal=' + join_paths('${bindir}', 'glib-genmarshal'),
- 'gobject_query=' + join_paths('${bindir}', 'gobject-query'),
- 'glib_mkenums=' + join_paths('${bindir}', 'glib-mkenums')],
+ variables : [
+ 'bindir=' + '${prefix}' / get_option('bindir'),
+ 'datadir=' + '${prefix}' / get_option('datadir'),
+ 'glib_genmarshal=' + '${bindir}' / 'glib-genmarshal',
+ 'gobject_query=' + '${bindir}' / 'gobject-query',
+ 'glib_mkenums=' + '${bindir}' / 'glib-mkenums',
+ 'glib_valgrind_suppressions=' + '${datadir}' /
+ valgrind_suppression_file_install_subdir /
+ fs.name(valgrind_suppression_file),
+ ],
version : glib_version,
install_dir : glib_pkgconfigreldir,
filebase : 'glib-2.0',
@@ -440,6 +494,9 @@ else
c_args : ['-UG_DISABLE_ASSERT'],
include_directories : configinc,
dependencies : [libglib_dep])
+
+ # Provide tools for others when we're a subproject and they use the Meson GNOME module
+ meson.override_find_program('gtester', gtester)
endif
report_conf = configuration_data()
diff --git a/msvc_recommended_pragmas.h b/glib/msvc_recommended_pragmas.h
index 051a02ae4..051a02ae4 100644
--- a/msvc_recommended_pragmas.h
+++ b/glib/msvc_recommended_pragmas.h
diff --git a/glib/tests/.gitignore b/glib/tests/.gitignore
deleted file mode 100644
index 9e4c147d3..000000000
--- a/glib/tests/.gitignore
+++ /dev/null
@@ -1,89 +0,0 @@
-1bit-emufutex
-1bit-mutex
-642026
-642026-ec
-array-test
-asyncqueue
-atomic
-autoptr
-base64
-bitlock
-bookmarkfile
-bytes
-cache
-checksum
-collate
-cond
-convert
-dataset
-date
-dir
-environment
-error
-fileutils
-gdatetime
-guuid
-gvariant
-gwakeup
-gwakeup-fallback
-hash
-hmac
-hook
-hostutils
-include
-keyfile
-list
-logging
-mainloop
-malloc
-mappedfile
-markup
-markup-collect
-markup-escape
-markup-parse
-markup-subparser
-mem-overflow
-mutex
-node
-once
-option-argv0
-option-context
-overflow
-overflow-fallback
-pattern
-private
-protocol
-queue
-rand
-rec-mutex
-regex
-rwlock
-scannerapi
-search-utils
-sequence
-shell
-slice
-slist
-sort
-spawn-multithreaded
-spawn-singlethread
-strfuncs
-string
-testing
-test-printf
-test-spawn-echo
-thread
-timeout
-timer
-tmpsample.xml
-tree
-unicode
-unix
-unix-multithreaded
-unix-nothreads
-uri
-utf8-misc
-utf8-performance
-utf8-pointer
-utf8-validate
-utils
diff --git a/glib/tests/NormalizationTest.txt b/glib/tests/NormalizationTest.txt
index 302c35f37..e75b4801c 100644
--- a/glib/tests/NormalizationTest.txt
+++ b/glib/tests/NormalizationTest.txt
@@ -1,11 +1,11 @@
-# NormalizationTest-14.0.0.txt
-# Date: 2021-05-28, 21:49:12 GMT
-# © 2021 Unicode®, Inc.
+# NormalizationTest-15.0.0.txt
+# Date: 2022-04-02, 01:29:09 GMT
+# © 2022 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
#
# Normalization Test Suite
# Format:
@@ -16208,6 +16208,68 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
1D7FD;1D7FD;1D7FD;0037;0037; # (𝟽; 𝟽; 𝟽; 7; 7; ) MATHEMATICAL MONOSPACE DIGIT SEVEN
1D7FE;1D7FE;1D7FE;0038;0038; # (𝟾; 𝟾; 𝟾; 8; 8; ) MATHEMATICAL MONOSPACE DIGIT EIGHT
1D7FF;1D7FF;1D7FF;0039;0039; # (𝟿; 𝟿; 𝟿; 9; 9; ) MATHEMATICAL MONOSPACE DIGIT NINE
+1E030;1E030;1E030;0430;0430; # (𞀰; 𞀰; 𞀰; а; а; ) MODIFIER LETTER CYRILLIC SMALL A
+1E031;1E031;1E031;0431;0431; # (𞀱; 𞀱; 𞀱; б; б; ) MODIFIER LETTER CYRILLIC SMALL BE
+1E032;1E032;1E032;0432;0432; # (𞀲; 𞀲; 𞀲; в; в; ) MODIFIER LETTER CYRILLIC SMALL VE
+1E033;1E033;1E033;0433;0433; # (𞀳; 𞀳; 𞀳; г; г; ) MODIFIER LETTER CYRILLIC SMALL GHE
+1E034;1E034;1E034;0434;0434; # (𞀴; 𞀴; 𞀴; д; д; ) MODIFIER LETTER CYRILLIC SMALL DE
+1E035;1E035;1E035;0435;0435; # (𞀵; 𞀵; 𞀵; е; е; ) MODIFIER LETTER CYRILLIC SMALL IE
+1E036;1E036;1E036;0436;0436; # (𞀶; 𞀶; 𞀶; ж; ж; ) MODIFIER LETTER CYRILLIC SMALL ZHE
+1E037;1E037;1E037;0437;0437; # (𞀷; 𞀷; 𞀷; з; з; ) MODIFIER LETTER CYRILLIC SMALL ZE
+1E038;1E038;1E038;0438;0438; # (𞀸; 𞀸; 𞀸; и; и; ) MODIFIER LETTER CYRILLIC SMALL I
+1E039;1E039;1E039;043A;043A; # (𞀹; 𞀹; 𞀹; к; к; ) MODIFIER LETTER CYRILLIC SMALL KA
+1E03A;1E03A;1E03A;043B;043B; # (𞀺; 𞀺; 𞀺; л; л; ) MODIFIER LETTER CYRILLIC SMALL EL
+1E03B;1E03B;1E03B;043C;043C; # (𞀻; 𞀻; 𞀻; м; м; ) MODIFIER LETTER CYRILLIC SMALL EM
+1E03C;1E03C;1E03C;043E;043E; # (𞀼; 𞀼; 𞀼; о; о; ) MODIFIER LETTER CYRILLIC SMALL O
+1E03D;1E03D;1E03D;043F;043F; # (𞀽; 𞀽; 𞀽; п; п; ) MODIFIER LETTER CYRILLIC SMALL PE
+1E03E;1E03E;1E03E;0440;0440; # (𞀾; 𞀾; 𞀾; р; р; ) MODIFIER LETTER CYRILLIC SMALL ER
+1E03F;1E03F;1E03F;0441;0441; # (𞀿; 𞀿; 𞀿; с; с; ) MODIFIER LETTER CYRILLIC SMALL ES
+1E040;1E040;1E040;0442;0442; # (𞁀; 𞁀; 𞁀; т; т; ) MODIFIER LETTER CYRILLIC SMALL TE
+1E041;1E041;1E041;0443;0443; # (𞁁; 𞁁; 𞁁; у; у; ) MODIFIER LETTER CYRILLIC SMALL U
+1E042;1E042;1E042;0444;0444; # (𞁂; 𞁂; 𞁂; ф; ф; ) MODIFIER LETTER CYRILLIC SMALL EF
+1E043;1E043;1E043;0445;0445; # (𞁃; 𞁃; 𞁃; х; х; ) MODIFIER LETTER CYRILLIC SMALL HA
+1E044;1E044;1E044;0446;0446; # (𞁄; 𞁄; 𞁄; ц; ц; ) MODIFIER LETTER CYRILLIC SMALL TSE
+1E045;1E045;1E045;0447;0447; # (𞁅; 𞁅; 𞁅; ч; ч; ) MODIFIER LETTER CYRILLIC SMALL CHE
+1E046;1E046;1E046;0448;0448; # (𞁆; 𞁆; 𞁆; ш; ш; ) MODIFIER LETTER CYRILLIC SMALL SHA
+1E047;1E047;1E047;044B;044B; # (𞁇; 𞁇; 𞁇; ы; ы; ) MODIFIER LETTER CYRILLIC SMALL YERU
+1E048;1E048;1E048;044D;044D; # (𞁈; 𞁈; 𞁈; э; э; ) MODIFIER LETTER CYRILLIC SMALL E
+1E049;1E049;1E049;044E;044E; # (𞁉; 𞁉; 𞁉; ю; ю; ) MODIFIER LETTER CYRILLIC SMALL YU
+1E04A;1E04A;1E04A;A689;A689; # (𞁊; 𞁊; 𞁊; ꚉ; ꚉ; ) MODIFIER LETTER CYRILLIC SMALL DZZE
+1E04B;1E04B;1E04B;04D9;04D9; # (𞁋; 𞁋; 𞁋; ә; ә; ) MODIFIER LETTER CYRILLIC SMALL SCHWA
+1E04C;1E04C;1E04C;0456;0456; # (𞁌; 𞁌; 𞁌; і; і; ) MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I
+1E04D;1E04D;1E04D;0458;0458; # (𞁍; 𞁍; 𞁍; ј; ј; ) MODIFIER LETTER CYRILLIC SMALL JE
+1E04E;1E04E;1E04E;04E9;04E9; # (𞁎; 𞁎; 𞁎; ө; ө; ) MODIFIER LETTER CYRILLIC SMALL BARRED O
+1E04F;1E04F;1E04F;04AF;04AF; # (𞁏; 𞁏; 𞁏; ү; ү; ) MODIFIER LETTER CYRILLIC SMALL STRAIGHT U
+1E050;1E050;1E050;04CF;04CF; # (𞁐; 𞁐; 𞁐; ӏ; ӏ; ) MODIFIER LETTER CYRILLIC SMALL PALOCHKA
+1E051;1E051;1E051;0430;0430; # (𞁑; 𞁑; 𞁑; а; а; ) CYRILLIC SUBSCRIPT SMALL LETTER A
+1E052;1E052;1E052;0431;0431; # (𞁒; 𞁒; 𞁒; б; б; ) CYRILLIC SUBSCRIPT SMALL LETTER BE
+1E053;1E053;1E053;0432;0432; # (𞁓; 𞁓; 𞁓; в; в; ) CYRILLIC SUBSCRIPT SMALL LETTER VE
+1E054;1E054;1E054;0433;0433; # (𞁔; 𞁔; 𞁔; г; г; ) CYRILLIC SUBSCRIPT SMALL LETTER GHE
+1E055;1E055;1E055;0434;0434; # (𞁕; 𞁕; 𞁕; д; д; ) CYRILLIC SUBSCRIPT SMALL LETTER DE
+1E056;1E056;1E056;0435;0435; # (𞁖; 𞁖; 𞁖; е; е; ) CYRILLIC SUBSCRIPT SMALL LETTER IE
+1E057;1E057;1E057;0436;0436; # (𞁗; 𞁗; 𞁗; ж; ж; ) CYRILLIC SUBSCRIPT SMALL LETTER ZHE
+1E058;1E058;1E058;0437;0437; # (𞁘; 𞁘; 𞁘; з; з; ) CYRILLIC SUBSCRIPT SMALL LETTER ZE
+1E059;1E059;1E059;0438;0438; # (𞁙; 𞁙; 𞁙; и; и; ) CYRILLIC SUBSCRIPT SMALL LETTER I
+1E05A;1E05A;1E05A;043A;043A; # (𞁚; 𞁚; 𞁚; к; к; ) CYRILLIC SUBSCRIPT SMALL LETTER KA
+1E05B;1E05B;1E05B;043B;043B; # (𞁛; 𞁛; 𞁛; л; л; ) CYRILLIC SUBSCRIPT SMALL LETTER EL
+1E05C;1E05C;1E05C;043E;043E; # (𞁜; 𞁜; 𞁜; о; о; ) CYRILLIC SUBSCRIPT SMALL LETTER O
+1E05D;1E05D;1E05D;043F;043F; # (𞁝; 𞁝; 𞁝; п; п; ) CYRILLIC SUBSCRIPT SMALL LETTER PE
+1E05E;1E05E;1E05E;0441;0441; # (𞁞; 𞁞; 𞁞; с; с; ) CYRILLIC SUBSCRIPT SMALL LETTER ES
+1E05F;1E05F;1E05F;0443;0443; # (𞁟; 𞁟; 𞁟; у; у; ) CYRILLIC SUBSCRIPT SMALL LETTER U
+1E060;1E060;1E060;0444;0444; # (𞁠; 𞁠; 𞁠; ф; ф; ) CYRILLIC SUBSCRIPT SMALL LETTER EF
+1E061;1E061;1E061;0445;0445; # (𞁡; 𞁡; 𞁡; х; х; ) CYRILLIC SUBSCRIPT SMALL LETTER HA
+1E062;1E062;1E062;0446;0446; # (𞁢; 𞁢; 𞁢; ц; ц; ) CYRILLIC SUBSCRIPT SMALL LETTER TSE
+1E063;1E063;1E063;0447;0447; # (𞁣; 𞁣; 𞁣; ч; ч; ) CYRILLIC SUBSCRIPT SMALL LETTER CHE
+1E064;1E064;1E064;0448;0448; # (𞁤; 𞁤; 𞁤; ш; ш; ) CYRILLIC SUBSCRIPT SMALL LETTER SHA
+1E065;1E065;1E065;044A;044A; # (𞁥; 𞁥; 𞁥; ъ; ъ; ) CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN
+1E066;1E066;1E066;044B;044B; # (𞁦; 𞁦; 𞁦; ы; ы; ) CYRILLIC SUBSCRIPT SMALL LETTER YERU
+1E067;1E067;1E067;0491;0491; # (𞁧; 𞁧; 𞁧; ґ; ґ; ) CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN
+1E068;1E068;1E068;0456;0456; # (𞁨; 𞁨; 𞁨; і; і; ) CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+1E069;1E069;1E069;0455;0455; # (𞁩; 𞁩; 𞁩; ѕ; ѕ; ) CYRILLIC SUBSCRIPT SMALL LETTER DZE
+1E06A;1E06A;1E06A;045F;045F; # (𞁪; 𞁪; 𞁪; џ; џ; ) CYRILLIC SUBSCRIPT SMALL LETTER DZHE
+1E06B;1E06B;1E06B;04AB;04AB; # (𞁫; 𞁫; 𞁫; ҫ; ҫ; ) MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER
+1E06C;1E06C;1E06C;A651;A651; # (𞁬; 𞁬; 𞁬; ꙑ; ꙑ; ) MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER
+1E06D;1E06D;1E06D;04B1;04B1; # (𞁭; 𞁭; 𞁭; ұ; ұ; ) MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
1EE00;1EE00;1EE00;0627;0627; # (𞸀; 𞸀; 𞸀; ا; ا; ) ARABIC MATHEMATICAL ALEF
1EE01;1EE01;1EE01;0628;0628; # (𞸁; 𞸁; 𞸁; ب; ب; ) ARABIC MATHEMATICAL BEH
1EE02;1EE02;1EE02;062C;062C; # (𞸂; 𞸂; 𞸂; ج; ج; ) ARABIC MATHEMATICAL JEEM
@@ -18496,6 +18558,12 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
0061 10EAB 0315 0300 05AE 0062;0061 05AE 10EAB 0300 0315 0062;0061 05AE 10EAB 0300 0315 0062;0061 05AE 10EAB 0300 0315 0062;0061 05AE 10EAB 0300 0315 0062; # (a◌𐺫◌̕◌̀◌֮b; a◌֮◌𐺫◌̀◌̕b; a◌֮◌𐺫◌̀◌̕b; a◌֮◌𐺫◌̀◌̕b; a◌֮◌𐺫◌̀◌̕b; ) LATIN SMALL LETTER A, YEZIDI COMBINING HAMZA MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 0315 0300 05AE 10EAC 0062;00E0 05AE 10EAC 0315 0062;0061 05AE 0300 10EAC 0315 0062;00E0 05AE 10EAC 0315 0062;0061 05AE 0300 10EAC 0315 0062; # (a◌̕◌̀◌֮◌𐺬b; à◌֮◌𐺬◌̕b; a◌֮◌̀◌𐺬◌̕b; à◌֮◌𐺬◌̕b; a◌֮◌̀◌𐺬◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, YEZIDI COMBINING MADDA MARK, LATIN SMALL LETTER B
0061 10EAC 0315 0300 05AE 0062;0061 05AE 10EAC 0300 0315 0062;0061 05AE 10EAC 0300 0315 0062;0061 05AE 10EAC 0300 0315 0062;0061 05AE 10EAC 0300 0315 0062; # (a◌𐺬◌̕◌̀◌֮b; a◌֮◌𐺬◌̀◌̕b; a◌֮◌𐺬◌̀◌̕b; a◌֮◌𐺬◌̀◌̕b; a◌֮◌𐺬◌̀◌̕b; ) LATIN SMALL LETTER A, YEZIDI COMBINING MADDA MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10EFD 0062;0061 1DFA 0316 10EFD 059A 0062;0061 1DFA 0316 10EFD 059A 0062;0061 1DFA 0316 10EFD 059A 0062;0061 1DFA 0316 10EFD 059A 0062; # (a◌֚◌̖◌᷺◌𐻽b; a◌᷺◌̖◌𐻽◌֚b; a◌᷺◌̖◌𐻽◌֚b; a◌᷺◌̖◌𐻽◌֚b; a◌᷺◌̖◌𐻽◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW WORD SAKTA, LATIN SMALL LETTER B
+0061 10EFD 059A 0316 1DFA 0062;0061 1DFA 10EFD 0316 059A 0062;0061 1DFA 10EFD 0316 059A 0062;0061 1DFA 10EFD 0316 059A 0062;0061 1DFA 10EFD 0316 059A 0062; # (a◌𐻽◌֚◌̖◌᷺b; a◌᷺◌𐻽◌̖◌֚b; a◌᷺◌𐻽◌̖◌֚b; a◌᷺◌𐻽◌̖◌֚b; a◌᷺◌𐻽◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW WORD SAKTA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10EFE 0062;0061 1DFA 0316 10EFE 059A 0062;0061 1DFA 0316 10EFE 059A 0062;0061 1DFA 0316 10EFE 059A 0062;0061 1DFA 0316 10EFE 059A 0062; # (a◌֚◌̖◌᷺◌𐻾b; a◌᷺◌̖◌𐻾◌֚b; a◌᷺◌̖◌𐻾◌֚b; a◌᷺◌̖◌𐻾◌֚b; a◌᷺◌̖◌𐻾◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW WORD QASR, LATIN SMALL LETTER B
+0061 10EFE 059A 0316 1DFA 0062;0061 1DFA 10EFE 0316 059A 0062;0061 1DFA 10EFE 0316 059A 0062;0061 1DFA 10EFE 0316 059A 0062;0061 1DFA 10EFE 0316 059A 0062; # (a◌𐻾◌֚◌̖◌᷺b; a◌᷺◌𐻾◌̖◌֚b; a◌᷺◌𐻾◌̖◌֚b; a◌᷺◌𐻾◌̖◌֚b; a◌᷺◌𐻾◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW WORD QASR, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 10EFF 0062;0061 1DFA 0316 10EFF 059A 0062;0061 1DFA 0316 10EFF 059A 0062;0061 1DFA 0316 10EFF 059A 0062;0061 1DFA 0316 10EFF 059A 0062; # (a◌֚◌̖◌᷺◌𐻿b; a◌᷺◌̖◌𐻿◌֚b; a◌᷺◌̖◌𐻿◌֚b; a◌᷺◌̖◌𐻿◌֚b; a◌᷺◌̖◌𐻿◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW WORD MADDA, LATIN SMALL LETTER B
+0061 10EFF 059A 0316 1DFA 0062;0061 1DFA 10EFF 0316 059A 0062;0061 1DFA 10EFF 0316 059A 0062;0061 1DFA 10EFF 0316 059A 0062;0061 1DFA 10EFF 0316 059A 0062; # (a◌𐻿◌֚◌̖◌᷺b; a◌᷺◌𐻿◌̖◌֚b; a◌᷺◌𐻿◌̖◌֚b; a◌᷺◌𐻿◌̖◌֚b; a◌᷺◌𐻿◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW WORD MADDA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
0061 059A 0316 1DFA 10F46 0062;0061 1DFA 0316 10F46 059A 0062;0061 1DFA 0316 10F46 059A 0062;0061 1DFA 0316 10F46 059A 0062;0061 1DFA 0316 10F46 059A 0062; # (a◌֚◌̖◌᷺◌𐽆b; a◌᷺◌̖◌𐽆◌֚b; a◌᷺◌̖◌𐽆◌֚b; a◌᷺◌̖◌𐽆◌֚b; a◌᷺◌̖◌𐽆◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SOGDIAN COMBINING DOT BELOW, LATIN SMALL LETTER B
0061 10F46 059A 0316 1DFA 0062;0061 1DFA 10F46 0316 059A 0062;0061 1DFA 10F46 0316 059A 0062;0061 1DFA 10F46 0316 059A 0062;0061 1DFA 10F46 0316 059A 0062; # (a◌𐽆◌֚◌̖◌᷺b; a◌᷺◌𐽆◌̖◌֚b; a◌᷺◌𐽆◌̖◌֚b; a◌᷺◌𐽆◌̖◌֚b; a◌᷺◌𐽆◌̖◌֚b; ) LATIN SMALL LETTER A, SOGDIAN COMBINING DOT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
0061 059A 0316 1DFA 10F47 0062;0061 1DFA 0316 10F47 059A 0062;0061 1DFA 0316 10F47 059A 0062;0061 1DFA 0316 10F47 059A 0062;0061 1DFA 0316 10F47 059A 0062; # (a◌֚◌̖◌᷺◌𐽇b; a◌᷺◌̖◌𐽇◌֚b; a◌᷺◌̖◌𐽇◌֚b; a◌᷺◌̖◌𐽇◌֚b; a◌᷺◌̖◌𐽇◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SOGDIAN COMBINING TWO DOTS BELOW, LATIN SMALL LETTER B
@@ -18640,6 +18708,10 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
0061 11D45 05B0 094D 3099 0062;0061 3099 11D45 094D 05B0 0062;0061 3099 11D45 094D 05B0 0062;0061 3099 11D45 094D 05B0 0062;0061 3099 11D45 094D 05B0 0062; # (a◌𑵅◌ְ◌्◌゙b; a◌゙◌𑵅◌्◌ְb; a◌゙◌𑵅◌्◌ְb; a◌゙◌𑵅◌्◌ְb; a◌゙◌𑵅◌्◌ְb; ) LATIN SMALL LETTER A, MASARAM GONDI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
0061 05B0 094D 3099 11D97 0062;0061 3099 094D 11D97 05B0 0062;0061 3099 094D 11D97 05B0 0062;0061 3099 094D 11D97 05B0 0062;0061 3099 094D 11D97 05B0 0062; # (a◌ְ◌्◌゙◌𑶗b; a◌゙◌्◌𑶗◌ְb; a◌゙◌्◌𑶗◌ְb; a◌゙◌्◌𑶗◌ְb; a◌゙◌्◌𑶗◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, GUNJALA GONDI VIRAMA, LATIN SMALL LETTER B
0061 11D97 05B0 094D 3099 0062;0061 3099 11D97 094D 05B0 0062;0061 3099 11D97 094D 05B0 0062;0061 3099 11D97 094D 05B0 0062;0061 3099 11D97 094D 05B0 0062; # (a◌𑶗◌ְ◌्◌゙b; a◌゙◌𑶗◌्◌ְb; a◌゙◌𑶗◌्◌ְb; a◌゙◌𑶗◌्◌ְb; a◌゙◌𑶗◌्◌ְb; ) LATIN SMALL LETTER A, GUNJALA GONDI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11F41 0062;0061 3099 094D 11F41 05B0 0062;0061 3099 094D 11F41 05B0 0062;0061 3099 094D 11F41 05B0 0062;0061 3099 094D 11F41 05B0 0062; # (a◌ְ◌्◌゙𑽁b; a◌゙◌्𑽁◌ְb; a◌゙◌्𑽁◌ְb; a◌゙◌्𑽁◌ְb; a◌゙◌्𑽁◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KAWI SIGN KILLER, LATIN SMALL LETTER B
+0061 11F41 05B0 094D 3099 0062;0061 3099 11F41 094D 05B0 0062;0061 3099 11F41 094D 05B0 0062;0061 3099 11F41 094D 05B0 0062;0061 3099 11F41 094D 05B0 0062; # (a𑽁◌ְ◌्◌゙b; a◌゙𑽁◌्◌ְb; a◌゙𑽁◌्◌ְb; a◌゙𑽁◌्◌ְb; a◌゙𑽁◌्◌ְb; ) LATIN SMALL LETTER A, KAWI SIGN KILLER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 11F42 0062;0061 3099 094D 11F42 05B0 0062;0061 3099 094D 11F42 05B0 0062;0061 3099 094D 11F42 05B0 0062;0061 3099 094D 11F42 05B0 0062; # (a◌ְ◌्◌゙◌𑽂b; a◌゙◌्◌𑽂◌ְb; a◌゙◌्◌𑽂◌ְb; a◌゙◌्◌𑽂◌ְb; a◌゙◌्◌𑽂◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KAWI CONJOINER, LATIN SMALL LETTER B
+0061 11F42 05B0 094D 3099 0062;0061 3099 11F42 094D 05B0 0062;0061 3099 11F42 094D 05B0 0062;0061 3099 11F42 094D 05B0 0062;0061 3099 11F42 094D 05B0 0062; # (a◌𑽂◌ְ◌्◌゙b; a◌゙◌𑽂◌्◌ְb; a◌゙◌𑽂◌्◌ְb; a◌゙◌𑽂◌्◌ְb; a◌゙◌𑽂◌्◌ְb; ) LATIN SMALL LETTER A, KAWI CONJOINER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
0061 16FF0 0334 16AF0 0062;0061 0334 16AF0 16FF0 0062;0061 0334 16AF0 16FF0 0062;0061 0334 16AF0 16FF0 0062;0061 0334 16AF0 16FF0 0062; # (a𖿰◌̴◌𖫰b; a◌̴◌𖫰𖿰b; a◌̴◌𖫰𖿰b; a◌̴◌𖫰𖿰b; a◌̴◌𖫰𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING HIGH TONE, LATIN SMALL LETTER B
0061 16AF0 16FF0 0334 0062;0061 16AF0 0334 16FF0 0062;0061 16AF0 0334 16FF0 0062;0061 16AF0 0334 16FF0 0062;0061 16AF0 0334 16FF0 0062; # (a◌𖫰𖿰◌̴b; a◌𖫰◌̴𖿰b; a◌𖫰◌̴𖿰b; a◌𖫰◌̴𖿰b; a◌𖫰◌̴𖿰b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING HIGH TONE, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
0061 16FF0 0334 16AF1 0062;0061 0334 16AF1 16FF0 0062;0061 0334 16AF1 16FF0 0062;0061 0334 16AF1 16FF0 0062;0061 0334 16AF1 16FF0 0062; # (a𖿰◌̴◌𖫱b; a◌̴◌𖫱𖿰b; a◌̴◌𖫱𖿰b; a◌̴◌𖫱𖿰b; a◌̴◌𖫱𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING LOW TONE, LATIN SMALL LETTER B
@@ -18812,6 +18884,8 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
0061 1E029 0315 0300 05AE 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062; # (a◌𞀩◌̕◌̀◌֮b; a◌֮◌𞀩◌̀◌̕b; a◌֮◌𞀩◌̀◌̕b; a◌֮◌𞀩◌̀◌̕b; a◌֮◌𞀩◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER IOTATED BIG YUS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 0315 0300 05AE 1E02A 0062;00E0 05AE 1E02A 0315 0062;0061 05AE 0300 1E02A 0315 0062;00E0 05AE 1E02A 0315 0062;0061 05AE 0300 1E02A 0315 0062; # (a◌̕◌̀◌֮◌𞀪b; à◌֮◌𞀪◌̕b; a◌֮◌̀◌𞀪◌̕b; à◌֮◌𞀪◌̕b; a◌֮◌̀◌𞀪◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER FITA, LATIN SMALL LETTER B
0061 1E02A 0315 0300 05AE 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062; # (a◌𞀪◌̕◌̀◌֮b; a◌֮◌𞀪◌̀◌̕b; a◌֮◌𞀪◌̀◌̕b; a◌֮◌𞀪◌̀◌̕b; a◌֮◌𞀪◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER FITA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E08F 0062;00E0 05AE 1E08F 0315 0062;0061 05AE 0300 1E08F 0315 0062;00E0 05AE 1E08F 0315 0062;0061 05AE 0300 1E08F 0315 0062; # (a◌̕◌̀◌֮◌𞂏b; à◌֮◌𞂏◌̕b; a◌֮◌̀◌𞂏◌̕b; à◌֮◌𞂏◌̕b; a◌֮◌̀◌𞂏◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I, LATIN SMALL LETTER B
+0061 1E08F 0315 0300 05AE 0062;0061 05AE 1E08F 0300 0315 0062;0061 05AE 1E08F 0300 0315 0062;0061 05AE 1E08F 0300 0315 0062;0061 05AE 1E08F 0300 0315 0062; # (a◌𞂏◌̕◌̀◌֮b; a◌֮◌𞂏◌̀◌̕b; a◌֮◌𞂏◌̀◌̕b; a◌֮◌𞂏◌̀◌̕b; a◌֮◌𞂏◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 0315 0300 05AE 1E130 0062;00E0 05AE 1E130 0315 0062;0061 05AE 0300 1E130 0315 0062;00E0 05AE 1E130 0315 0062;0061 05AE 0300 1E130 0315 0062; # (a◌̕◌̀◌֮◌𞄰b; à◌֮◌𞄰◌̕b; a◌֮◌̀◌𞄰◌̕b; à◌֮◌𞄰◌̕b; a◌֮◌̀◌𞄰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-B, LATIN SMALL LETTER B
0061 1E130 0315 0300 05AE 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062; # (a◌𞄰◌̕◌̀◌֮b; a◌֮◌𞄰◌̀◌̕b; a◌֮◌𞄰◌̀◌̕b; a◌֮◌𞄰◌̀◌̕b; a◌֮◌𞄰◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-B, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 0315 0300 05AE 1E131 0062;00E0 05AE 1E131 0315 0062;0061 05AE 0300 1E131 0315 0062;00E0 05AE 1E131 0315 0062;0061 05AE 0300 1E131 0315 0062; # (a◌̕◌̀◌֮◌𞄱b; à◌֮◌𞄱◌̕b; a◌֮◌̀◌𞄱◌̕b; à◌֮◌𞄱◌̕b; a◌֮◌̀◌𞄱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-M, LATIN SMALL LETTER B
@@ -18836,6 +18910,14 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE
0061 1E2EE 0315 0300 05AE 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062; # (a◌𞋮◌̕◌̀◌֮b; a◌֮◌𞋮◌̀◌̕b; a◌֮◌𞋮◌̀◌̕b; a◌֮◌𞋮◌̀◌̕b; a◌֮◌𞋮◌̀◌̕b; ) LATIN SMALL LETTER A, WANCHO TONE KOI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 0315 0300 05AE 1E2EF 0062;00E0 05AE 1E2EF 0315 0062;0061 05AE 0300 1E2EF 0315 0062;00E0 05AE 1E2EF 0315 0062;0061 05AE 0300 1E2EF 0315 0062; # (a◌̕◌̀◌֮◌𞋯b; à◌֮◌𞋯◌̕b; a◌֮◌̀◌𞋯◌̕b; à◌֮◌𞋯◌̕b; a◌֮◌̀◌𞋯◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, WANCHO TONE KOINI, LATIN SMALL LETTER B
0061 1E2EF 0315 0300 05AE 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062; # (a◌𞋯◌̕◌̀◌֮b; a◌֮◌𞋯◌̀◌̕b; a◌֮◌𞋯◌̀◌̕b; a◌֮◌𞋯◌̀◌̕b; a◌֮◌𞋯◌̀◌̕b; ) LATIN SMALL LETTER A, WANCHO TONE KOINI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 035C 0315 0300 1E4EC 0062;00E0 0315 1E4EC 035C 0062;0061 0300 0315 1E4EC 035C 0062;00E0 0315 1E4EC 035C 0062;0061 0300 0315 1E4EC 035C 0062; # (a◌͜◌̕◌̀◌𞓬b; à◌̕◌𞓬◌͜b; a◌̀◌̕◌𞓬◌͜b; à◌̕◌𞓬◌͜b; a◌̀◌̕◌𞓬◌͜b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, NAG MUNDARI SIGN MUHOR, LATIN SMALL LETTER B
+0061 1E4EC 035C 0315 0300 0062;00E0 1E4EC 0315 035C 0062;0061 0300 1E4EC 0315 035C 0062;00E0 1E4EC 0315 035C 0062;0061 0300 1E4EC 0315 035C 0062; # (a◌𞓬◌͜◌̕◌̀b; à◌𞓬◌̕◌͜b; a◌̀◌𞓬◌̕◌͜b; à◌𞓬◌̕◌͜b; a◌̀◌𞓬◌̕◌͜b; ) LATIN SMALL LETTER A, NAG MUNDARI SIGN MUHOR, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, LATIN SMALL LETTER B
+0061 035C 0315 0300 1E4ED 0062;00E0 0315 1E4ED 035C 0062;0061 0300 0315 1E4ED 035C 0062;00E0 0315 1E4ED 035C 0062;0061 0300 0315 1E4ED 035C 0062; # (a◌͜◌̕◌̀◌𞓭b; à◌̕◌𞓭◌͜b; a◌̀◌̕◌𞓭◌͜b; à◌̕◌𞓭◌͜b; a◌̀◌̕◌𞓭◌͜b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, NAG MUNDARI SIGN TOYOR, LATIN SMALL LETTER B
+0061 1E4ED 035C 0315 0300 0062;00E0 1E4ED 0315 035C 0062;0061 0300 1E4ED 0315 035C 0062;00E0 1E4ED 0315 035C 0062;0061 0300 1E4ED 0315 035C 0062; # (a◌𞓭◌͜◌̕◌̀b; à◌𞓭◌̕◌͜b; a◌̀◌𞓭◌̕◌͜b; à◌𞓭◌̕◌͜b; a◌̀◌𞓭◌̕◌͜b; ) LATIN SMALL LETTER A, NAG MUNDARI SIGN TOYOR, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, LATIN SMALL LETTER B
+0061 059A 0316 1DFA 1E4EE 0062;0061 1DFA 0316 1E4EE 059A 0062;0061 1DFA 0316 1E4EE 059A 0062;0061 1DFA 0316 1E4EE 059A 0062;0061 1DFA 0316 1E4EE 059A 0062; # (a◌֚◌̖◌᷺◌𞓮b; a◌᷺◌̖◌𞓮◌֚b; a◌᷺◌̖◌𞓮◌֚b; a◌᷺◌̖◌𞓮◌֚b; a◌᷺◌̖◌𞓮◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, NAG MUNDARI SIGN IKIR, LATIN SMALL LETTER B
+0061 1E4EE 059A 0316 1DFA 0062;0061 1DFA 1E4EE 0316 059A 0062;0061 1DFA 1E4EE 0316 059A 0062;0061 1DFA 1E4EE 0316 059A 0062;0061 1DFA 1E4EE 0316 059A 0062; # (a◌𞓮◌֚◌̖◌᷺b; a◌᷺◌𞓮◌̖◌֚b; a◌᷺◌𞓮◌̖◌֚b; a◌᷺◌𞓮◌̖◌֚b; a◌᷺◌𞓮◌̖◌֚b; ) LATIN SMALL LETTER A, NAG MUNDARI SIGN IKIR, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E4EF 0062;00E0 05AE 1E4EF 0315 0062;0061 05AE 0300 1E4EF 0315 0062;00E0 05AE 1E4EF 0315 0062;0061 05AE 0300 1E4EF 0315 0062; # (a◌̕◌̀◌֮◌𞓯b; à◌֮◌𞓯◌̕b; a◌֮◌̀◌𞓯◌̕b; à◌֮◌𞓯◌̕b; a◌֮◌̀◌𞓯◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NAG MUNDARI SIGN SUTUH, LATIN SMALL LETTER B
+0061 1E4EF 0315 0300 05AE 0062;0061 05AE 1E4EF 0300 0315 0062;0061 05AE 1E4EF 0300 0315 0062;0061 05AE 1E4EF 0300 0315 0062;0061 05AE 1E4EF 0300 0315 0062; # (a◌𞓯◌̕◌̀◌֮b; a◌֮◌𞓯◌̀◌̕b; a◌֮◌𞓯◌̀◌̕b; a◌֮◌𞓯◌̀◌̕b; a◌֮◌𞓯◌̀◌̕b; ) LATIN SMALL LETTER A, NAG MUNDARI SIGN SUTUH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
0061 059A 0316 1DFA 1E8D0 0062;0061 1DFA 0316 1E8D0 059A 0062;0061 1DFA 0316 1E8D0 059A 0062;0061 1DFA 0316 1E8D0 059A 0062;0061 1DFA 0316 1E8D0 059A 0062; # (a◌֚◌̖◌᷺◌𞣐b; a◌᷺◌̖◌𞣐◌֚b; a◌᷺◌̖◌𞣐◌֚b; a◌᷺◌̖◌𞣐◌֚b; a◌᷺◌̖◌𞣐◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MENDE KIKAKUI COMBINING NUMBER TEENS, LATIN SMALL LETTER B
0061 1E8D0 059A 0316 1DFA 0062;0061 1DFA 1E8D0 0316 059A 0062;0061 1DFA 1E8D0 0316 059A 0062;0061 1DFA 1E8D0 0316 059A 0062;0061 1DFA 1E8D0 0316 059A 0062; # (a◌𞣐◌֚◌̖◌᷺b; a◌᷺◌𞣐◌̖◌֚b; a◌᷺◌𞣐◌̖◌֚b; a◌᷺◌𞣐◌̖◌֚b; a◌᷺◌𞣐◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER TEENS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B
0061 059A 0316 1DFA 1E8D1 0062;0061 1DFA 0316 1E8D1 059A 0062;0061 1DFA 0316 1E8D1 059A 0062;0061 1DFA 0316 1E8D1 059A 0062;0061 1DFA 0316 1E8D1 059A 0062; # (a◌֚◌̖◌᷺◌𞣑b; a◌᷺◌̖◌𞣑◌֚b; a◌᷺◌̖◌𞣑◌֚b; a◌᷺◌̖◌𞣑◌֚b; a◌᷺◌̖◌𞣑◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MENDE KIKAKUI COMBINING NUMBER TENS, LATIN SMALL LETTER B
diff --git a/glib/tests/array-test.c b/glib/tests/array-test.c
index cd617200a..da6cb2977 100644
--- a/glib/tests/array-test.c
+++ b/glib/tests/array-test.c
@@ -142,6 +142,196 @@ array_new_zero_terminated (void)
g_free (out_str);
}
+static void
+array_new_take (void)
+{
+ const size_t array_size = 10000;
+ GArray *garray;
+ gpointer *data;
+ gpointer *old_data_copy;
+ gsize len;
+
+ garray = g_array_new (FALSE, FALSE, sizeof (size_t));
+ for (size_t i = 0; i < array_size; i++)
+ g_array_append_val (garray, i);
+
+ data = g_array_steal (garray, &len);
+ g_assert_cmpuint (array_size, ==, len);
+ g_assert_nonnull (data);
+ g_clear_pointer (&garray, g_array_unref);
+
+ old_data_copy = g_memdup2 (data, len * sizeof (size_t));
+ garray = g_array_new_take (g_steal_pointer (&data), len, FALSE, sizeof (size_t));
+ g_assert_cmpuint (garray->len, ==, array_size);
+
+ g_assert_cmpuint (g_array_index (garray, size_t, 0), ==, 0);
+ g_assert_cmpuint (g_array_index (garray, size_t, 10), ==, 10);
+
+ g_assert_cmpmem (old_data_copy, array_size * sizeof (size_t),
+ garray->data, array_size * sizeof (size_t));
+
+ size_t val = 55;
+ g_array_append_val (garray, val);
+ val = 33;
+ g_array_prepend_val (garray, val);
+
+ g_assert_cmpuint (garray->len, ==, array_size + 2);
+ g_assert_cmpuint (g_array_index (garray, size_t, 0), ==, 33);
+ g_assert_cmpuint (g_array_index (garray, size_t, garray->len - 1), ==, 55);
+
+ g_array_remove_index (garray, 0);
+ g_assert_cmpuint (garray->len, ==, array_size + 1);
+ g_array_remove_index (garray, garray->len - 1);
+ g_assert_cmpuint (garray->len, ==, array_size);
+
+ g_assert_cmpmem (old_data_copy, array_size * sizeof (size_t),
+ garray->data, array_size * sizeof (size_t));
+
+ g_array_unref (garray);
+ g_free (old_data_copy);
+}
+
+static void
+array_new_take_empty (void)
+{
+ GArray *garray;
+ size_t empty_array[] = {0};
+
+ garray = g_array_new_take (
+ g_memdup2 (&empty_array, sizeof (size_t)), 0, FALSE, sizeof (size_t));
+ g_assert_cmpuint (garray->len, ==, 0);
+
+ g_clear_pointer (&garray, g_array_unref);
+
+ garray = g_array_new_take (NULL, 0, FALSE, sizeof (size_t));
+ g_assert_cmpuint (garray->len, ==, 0);
+
+ g_clear_pointer (&garray, g_array_unref);
+}
+
+static void
+array_new_take_zero_terminated (void)
+{
+ size_t array_size = 10000;
+ GArray *garray;
+ gpointer *data;
+ gpointer *old_data_copy;
+ gsize len;
+
+ garray = g_array_new (TRUE, FALSE, sizeof (size_t));
+ for (size_t i = 1; i <= array_size; i++)
+ g_array_append_val (garray, i);
+
+ data = g_array_steal (garray, &len);
+ g_assert_cmpuint (array_size, ==, len);
+ g_assert_nonnull (data);
+ g_clear_pointer (&garray, g_array_unref);
+
+ old_data_copy = g_memdup2 (data, len * sizeof (size_t));
+ garray = g_array_new_take_zero_terminated (
+ g_steal_pointer (&data), FALSE, sizeof (size_t));
+ g_assert_cmpuint (garray->len, ==, array_size);
+ g_assert_cmpuint (g_array_index (garray, size_t, garray->len), ==, 0);
+
+ g_assert_cmpuint (g_array_index (garray, size_t, 0), ==, 1);
+ g_assert_cmpuint (g_array_index (garray, size_t, 10), ==, 11);
+
+ g_assert_cmpmem (old_data_copy, array_size * sizeof (size_t),
+ garray->data, array_size * sizeof (size_t));
+
+ size_t val = 55;
+ g_array_append_val (garray, val);
+ val = 33;
+ g_array_prepend_val (garray, val);
+
+ g_assert_cmpuint (garray->len, ==, array_size + 2);
+ g_assert_cmpuint (g_array_index (garray, size_t, 0), ==, 33);
+ g_assert_cmpuint (g_array_index (garray, size_t, garray->len - 1), ==, 55);
+
+ g_array_remove_index (garray, 0);
+ g_assert_cmpuint (garray->len, ==, array_size + 1);
+ g_array_remove_index (garray, garray->len - 1);
+ g_assert_cmpuint (garray->len, ==, array_size);
+ g_assert_cmpuint (g_array_index (garray, size_t, garray->len), ==, 0);
+
+ g_assert_cmpmem (old_data_copy, array_size * sizeof (size_t),
+ garray->data, array_size * sizeof (size_t));
+
+ g_clear_pointer (&garray, g_array_unref);
+ g_clear_pointer (&old_data_copy, g_free);
+
+ array_size = G_MAXUINT8;
+ garray = g_array_new (TRUE, FALSE, sizeof (guint8));
+ for (guint8 i = 1; i < array_size; i++)
+ g_array_append_val (garray, i);
+
+ guint8 byte_val = G_MAXUINT8 / 2;
+ g_array_append_val (garray, byte_val);
+
+ data = g_array_steal (garray, &len);
+ g_assert_cmpuint (array_size, ==, len);
+ g_assert_nonnull (data);
+ g_clear_pointer (&garray, g_array_unref);
+
+ old_data_copy = g_memdup2 (data, len * sizeof (guint8));
+ garray = g_array_new_take_zero_terminated (
+ g_steal_pointer (&data), FALSE, sizeof (guint8));
+ g_assert_cmpuint (garray->len, ==, array_size);
+ g_assert_cmpuint (g_array_index (garray, guint8, garray->len), ==, 0);
+
+ g_assert_cmpuint (g_array_index (garray, guint8, 0), ==, 1);
+ g_assert_cmpuint (g_array_index (garray, guint8, 10), ==, 11);
+
+ g_assert_cmpmem (old_data_copy, array_size * sizeof (guint8),
+ garray->data, array_size * sizeof (guint8));
+
+ byte_val = 55;
+ g_array_append_val (garray, byte_val);
+ byte_val = 33;
+ g_array_prepend_val (garray, byte_val);
+
+ g_assert_cmpuint (garray->len, ==, array_size + 2);
+ g_assert_cmpuint (g_array_index (garray, guint8, 0), ==, 33);
+ g_assert_cmpuint (g_array_index (garray, guint8, garray->len - 1), ==, 55);
+
+ g_array_remove_index (garray, 0);
+ g_assert_cmpuint (garray->len, ==, array_size + 1);
+ g_array_remove_index (garray, garray->len - 1);
+ g_assert_cmpuint (garray->len, ==, array_size);
+ g_assert_cmpuint (g_array_index (garray, guint8, garray->len), ==, 0);
+
+ g_assert_cmpmem (old_data_copy, array_size * sizeof (guint8),
+ garray->data, array_size * sizeof (guint8));
+
+ g_clear_pointer (&garray, g_array_unref);
+ g_clear_pointer (&old_data_copy, g_free);
+}
+
+static void
+array_new_take_overflow (void)
+{
+#if SIZE_WIDTH <= UINT_WIDTH
+ g_test_skip ("Overflow test requires UINT_WIDTH > SIZE_WIDTH.");
+#else
+ if (!g_test_undefined ())
+ return;
+
+ /* Check for overflow should happen before data is accessed. */
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion 'len <= G_MAXUINT' failed");
+ g_assert_null (
+ g_array_new_take (
+ (gpointer) (int []) { 0 }, (gsize) G_MAXUINT + 1, FALSE, sizeof (int)));
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion 'element_size <= G_MAXUINT' failed");
+ g_assert_null (
+ g_array_new_take (NULL, 0, FALSE, (gsize) G_MAXUINT + 1));
+ g_test_assert_expected_messages ();
+#endif
+}
+
/* Check g_array_steal() function */
static void
array_steal (void)
@@ -1014,6 +1204,638 @@ pointer_array_insert (void)
}
static void
+pointer_array_new_take (void)
+{
+ const size_t array_size = 10000;
+ GPtrArray *gparray;
+ gpointer *pdata;
+ gpointer *old_pdata_copy;
+ gsize len;
+
+ gparray = g_ptr_array_new ();
+ for (size_t i = 0; i < array_size; i++)
+ g_ptr_array_add (gparray, GUINT_TO_POINTER (i));
+
+ pdata = g_ptr_array_steal (gparray, &len);
+ g_assert_cmpuint (array_size, ==, len);
+ g_assert_nonnull (pdata);
+ g_clear_pointer (&gparray, g_ptr_array_unref);
+
+ old_pdata_copy = g_memdup2 (pdata, len * sizeof (gpointer));
+ gparray = g_ptr_array_new_take (g_steal_pointer (&pdata), len, NULL);
+ g_assert_false (g_ptr_array_is_null_terminated (gparray));
+ g_assert_cmpuint (gparray->len, ==, array_size);
+
+ g_assert_cmpuint (GPOINTER_TO_UINT (g_ptr_array_index (gparray, 0)), ==, 0);
+ g_assert_cmpuint (GPOINTER_TO_UINT (g_ptr_array_index (gparray, 10)), ==, 10);
+
+ g_assert_cmpmem (old_pdata_copy, array_size * sizeof (gpointer),
+ gparray->pdata, array_size * sizeof (gpointer));
+
+ g_ptr_array_add (gparray, GUINT_TO_POINTER (55));
+ g_ptr_array_insert (gparray, 0, GUINT_TO_POINTER (33));
+
+ g_assert_cmpuint (gparray->len, ==, array_size + 2);
+ g_assert_cmpuint (GPOINTER_TO_UINT (g_ptr_array_index (gparray, 0)), ==, 33);
+ g_assert_cmpuint (
+ GPOINTER_TO_UINT (g_ptr_array_index (gparray, gparray->len - 1)), ==, 55);
+
+ g_ptr_array_remove_index (gparray, 0);
+ g_assert_cmpuint (gparray->len, ==, array_size + 1);
+ g_ptr_array_remove_index (gparray, gparray->len - 1);
+ g_assert_cmpuint (gparray->len, ==, array_size);
+
+ g_assert_cmpmem (old_pdata_copy, array_size * sizeof (gpointer),
+ gparray->pdata, array_size * sizeof (gpointer));
+
+ g_ptr_array_unref (gparray);
+ g_free (old_pdata_copy);
+}
+
+static void
+pointer_array_new_take_empty (void)
+{
+ GPtrArray *gparray;
+ gpointer empty_array[] = {0};
+
+ gparray = g_ptr_array_new_take (
+ g_memdup2 (&empty_array, sizeof (gpointer)), 0, NULL);
+ g_assert_false (g_ptr_array_is_null_terminated (gparray));
+ g_assert_cmpuint (gparray->len, ==, 0);
+
+ g_clear_pointer (&gparray, g_ptr_array_unref);
+
+ gparray = g_ptr_array_new_take (NULL, 0, NULL);
+ g_assert_false (g_ptr_array_is_null_terminated (gparray));
+ g_assert_cmpuint (gparray->len, ==, 0);
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*data*!=*NULL*||*len*==*0*");
+ g_assert_null (g_ptr_array_new_take (NULL, 10, NULL));
+ g_test_assert_expected_messages ();
+
+ g_clear_pointer (&gparray, g_ptr_array_unref);
+}
+
+static void
+pointer_array_new_take_overflow (void)
+{
+#if SIZE_WIDTH <= UINT_WIDTH
+ g_test_skip ("Overflow test requires UINT_WIDTH > SIZE_WIDTH.");
+#else
+ if (!g_test_undefined ())
+ return;
+
+ /* Check for overflow should happen before data is accessed. */
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion 'len <= G_MAXUINT' failed");
+ g_assert_null (g_ptr_array_new_take (
+ (gpointer []) { NULL }, (gsize) G_MAXUINT + 1, NULL));
+ g_test_assert_expected_messages ();
+#endif
+}
+
+static void
+pointer_array_new_take_with_free_func (void)
+{
+ const size_t array_size = 10000;
+ GPtrArray *gparray;
+ gpointer *pdata;
+ gpointer *old_pdata_copy;
+ gsize len;
+
+ gparray = g_ptr_array_new_with_free_func (g_free);
+ for (size_t i = 0; i < array_size; i++)
+ g_ptr_array_add (gparray, g_strdup_printf ("%" G_GSIZE_FORMAT, i));
+
+ pdata = g_ptr_array_steal (gparray, &len);
+ g_assert_cmpuint (array_size, ==, len);
+ g_assert_nonnull (pdata);
+ g_clear_pointer (&gparray, g_ptr_array_unref);
+
+ old_pdata_copy = g_memdup2 (pdata, len * sizeof (gpointer));
+ gparray = g_ptr_array_new_take (g_steal_pointer (&pdata), len, g_free);
+ g_assert_false (g_ptr_array_is_null_terminated (gparray));
+ g_assert_cmpuint (gparray->len, ==, array_size);
+
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, 0), ==, "0");
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, 101), ==, "101");
+
+ g_assert_cmpmem (old_pdata_copy, array_size * sizeof (gpointer),
+ gparray->pdata, array_size * sizeof (gpointer));
+
+ g_ptr_array_add (gparray, g_strdup_printf ("%d", 55));
+ g_ptr_array_insert (gparray, 0, g_strdup_printf ("%d", 33));
+
+ g_assert_cmpuint (gparray->len, ==, array_size + 2);
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, 0), ==, "33");
+ g_assert_cmpstr (
+ (const char *) g_ptr_array_index (gparray, gparray->len - 1), ==, "55");
+
+ g_ptr_array_remove_index (gparray, 0);
+ g_assert_cmpuint (gparray->len, ==, array_size + 1);
+ g_ptr_array_remove_index (gparray, gparray->len - 1);
+ g_assert_cmpuint (gparray->len, ==, array_size);
+
+ g_assert_cmpmem (old_pdata_copy, array_size * sizeof (gpointer),
+ gparray->pdata, array_size * sizeof (gpointer));
+
+ g_ptr_array_unref (gparray);
+ g_free (old_pdata_copy);
+}
+
+static void
+pointer_array_new_take_null_terminated (void)
+{
+ const size_t array_size = 10000;
+ GPtrArray *gparray;
+ gpointer *pdata;
+ gpointer *old_pdata_copy;
+ gsize len;
+
+ gparray = g_ptr_array_new_null_terminated (array_size, NULL, TRUE);
+ g_assert_true (g_ptr_array_is_null_terminated (gparray));
+
+ for (size_t i = 0; i < array_size; i++)
+ g_ptr_array_add (gparray, GUINT_TO_POINTER (i + 1));
+
+ assert_ptr_array_null_terminated (gparray, TRUE);
+ pdata = g_ptr_array_steal (gparray, &len);
+ g_assert_cmpuint (array_size, ==, len);
+ g_assert_nonnull (pdata);
+ g_clear_pointer (&gparray, g_ptr_array_unref);
+
+ old_pdata_copy = g_memdup2 (pdata, len * sizeof (gpointer));
+ gparray = g_ptr_array_new_take_null_terminated (g_steal_pointer (&pdata), NULL);
+ g_assert_true (g_ptr_array_is_null_terminated (gparray));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+ g_assert_cmpuint (gparray->len, ==, array_size);
+
+ g_assert_cmpuint (GPOINTER_TO_UINT (g_ptr_array_index (gparray, 0)), ==, 1);
+ g_assert_cmpuint (GPOINTER_TO_UINT (g_ptr_array_index (gparray, 10)), ==, 11);
+
+ g_assert_cmpmem (old_pdata_copy, array_size * sizeof (gpointer),
+ gparray->pdata, array_size * sizeof (gpointer));
+
+ g_ptr_array_add (gparray, GUINT_TO_POINTER (55));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_ptr_array_insert (gparray, 0, GUINT_TO_POINTER (33));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_assert_cmpuint (gparray->len, ==, array_size + 2);
+ g_assert_cmpuint (GPOINTER_TO_UINT (g_ptr_array_index (gparray, 0)), ==, 33);
+ g_assert_cmpuint (
+ GPOINTER_TO_UINT (g_ptr_array_index (gparray, gparray->len - 1)), ==, 55);
+
+ g_ptr_array_remove_index (gparray, 0);
+ g_assert_cmpuint (gparray->len, ==, array_size + 1);
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_ptr_array_remove_index (gparray, gparray->len - 1);
+ g_assert_cmpuint (gparray->len, ==, array_size);
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_assert_cmpmem (old_pdata_copy, array_size * sizeof (gpointer),
+ gparray->pdata, array_size * sizeof (gpointer));
+
+ g_ptr_array_unref (gparray);
+ g_free (old_pdata_copy);
+}
+
+static void
+pointer_array_new_take_null_terminated_empty (void)
+{
+ GPtrArray *gparray;
+ const gpointer *data = (gpointer []) { NULL };
+
+ gparray = g_ptr_array_new_take_null_terminated (
+ g_memdup2 (data, sizeof (gpointer)), NULL);
+ g_assert_true (g_ptr_array_is_null_terminated (gparray));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+ g_assert_cmpuint (gparray->len, ==, 0);
+
+ g_clear_pointer (&gparray, g_ptr_array_unref);
+
+ gparray = g_ptr_array_new_take_null_terminated (NULL, NULL);
+ g_assert_true (g_ptr_array_is_null_terminated (gparray));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+ g_assert_cmpuint (gparray->len, ==, 0);
+
+ g_clear_pointer (&gparray, g_ptr_array_unref);
+}
+
+static void
+pointer_array_new_take_null_terminated_with_free_func (void)
+{
+ const size_t array_size = 10000;
+ GPtrArray *gparray;
+ gpointer *pdata;
+ gpointer *old_pdata_copy;
+ gsize len;
+
+ gparray = g_ptr_array_new_null_terminated (array_size, g_free, TRUE);
+ g_assert_true (g_ptr_array_is_null_terminated (gparray));
+
+ for (size_t i = 0; i < array_size; i++)
+ g_ptr_array_add (gparray, g_strdup_printf ("%" G_GSIZE_FORMAT, i));
+
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ pdata = g_ptr_array_steal (gparray, &len);
+ g_assert_cmpuint (array_size, ==, len);
+ g_assert_nonnull (pdata);
+ g_clear_pointer (&gparray, g_ptr_array_unref);
+
+ old_pdata_copy = g_memdup2 (pdata, len * sizeof (gpointer));
+ gparray = g_ptr_array_new_take_null_terminated (g_steal_pointer (&pdata), g_free);
+ g_assert_true (g_ptr_array_is_null_terminated (gparray));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+ g_assert_cmpuint (gparray->len, ==, array_size);
+
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, 0), ==, "0");
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, 101), ==, "101");
+
+ g_assert_cmpmem (old_pdata_copy, array_size * sizeof (gpointer),
+ gparray->pdata, array_size * sizeof (gpointer));
+
+ g_ptr_array_add (gparray, g_strdup_printf ("%d", 55));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_ptr_array_insert (gparray, 0, g_strdup_printf ("%d", 33));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_assert_cmpuint (gparray->len, ==, array_size + 2);
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, 0), ==, "33");
+ g_assert_cmpstr (
+ (const char *) g_ptr_array_index (gparray, gparray->len - 1), ==, "55");
+
+ g_ptr_array_remove_index (gparray, 0);
+ g_assert_cmpuint (gparray->len, ==, array_size + 1);
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_ptr_array_remove_index (gparray, gparray->len - 1);
+ g_assert_cmpuint (gparray->len, ==, array_size);
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_assert_cmpmem (old_pdata_copy, array_size * sizeof (gpointer),
+ gparray->pdata, array_size * sizeof (gpointer));
+
+ g_ptr_array_unref (gparray);
+ g_free (old_pdata_copy);
+}
+
+static void
+pointer_array_new_take_null_terminated_from_gstrv (void)
+{
+ GPtrArray *gparray;
+ char *joined;
+
+ gparray = g_ptr_array_new_take_null_terminated (
+ (gpointer) g_strsplit ("A.dot.separated.string", ".", -1), g_free);
+
+ g_assert_cmpstr (
+ (const char *) g_ptr_array_index (gparray, 0), ==, "A");
+ g_assert_cmpstr (
+ (const char *) g_ptr_array_index (gparray, 1), ==, "dot");
+ g_assert_cmpstr (
+ (const char *) g_ptr_array_index (gparray, 2), ==, "separated");
+ g_assert_cmpstr (
+ (const char *) g_ptr_array_index (gparray, 3), ==, "string");
+
+ g_assert_null (g_ptr_array_index (gparray, 4));
+
+ joined = g_strjoinv (".", (char **) gparray->pdata);
+ g_assert_cmpstr (joined, ==, "A.dot.separated.string");
+
+ g_ptr_array_unref (gparray);
+ g_free (joined);
+}
+
+static void
+pointer_array_new_from_array (void)
+{
+ const size_t array_size = 10000;
+ GPtrArray *source_array;
+ GPtrArray *gparray;
+ gpointer *old_pdata_copy;
+
+ source_array = g_ptr_array_new ();
+ for (size_t i = 0; i < array_size; i++)
+ g_ptr_array_add (source_array, GUINT_TO_POINTER (i));
+
+ g_assert_cmpuint (array_size, ==, source_array->len);
+ g_assert_nonnull (source_array->pdata);
+
+ gparray = g_ptr_array_new_from_array (source_array->pdata, source_array->len,
+ NULL, NULL, NULL);
+
+ old_pdata_copy =
+ g_memdup2 (source_array->pdata, source_array->len * sizeof (gpointer));
+ g_assert_nonnull (old_pdata_copy);
+ g_clear_pointer (&source_array, g_ptr_array_unref);
+
+ g_assert_false (g_ptr_array_is_null_terminated (gparray));
+ g_assert_cmpuint (gparray->len, ==, array_size);
+
+ g_assert_cmpuint (GPOINTER_TO_UINT (g_ptr_array_index (gparray, 0)), ==, 0);
+ g_assert_cmpuint (GPOINTER_TO_UINT (g_ptr_array_index (gparray, 10)), ==, 10);
+
+ g_assert_cmpmem (old_pdata_copy, array_size * sizeof (gpointer),
+ gparray->pdata, array_size * sizeof (gpointer));
+
+ g_ptr_array_add (gparray, GUINT_TO_POINTER (55));
+ g_ptr_array_insert (gparray, 0, GUINT_TO_POINTER (33));
+
+ g_assert_cmpuint (gparray->len, ==, array_size + 2);
+ g_assert_cmpuint (GPOINTER_TO_UINT (g_ptr_array_index (gparray, 0)), ==, 33);
+ g_assert_cmpuint (
+ GPOINTER_TO_UINT (g_ptr_array_index (gparray, gparray->len - 1)), ==, 55);
+
+ g_ptr_array_remove_index (gparray, 0);
+ g_assert_cmpuint (gparray->len, ==, array_size + 1);
+ g_ptr_array_remove_index (gparray, gparray->len - 1);
+ g_assert_cmpuint (gparray->len, ==, array_size);
+
+ g_assert_cmpmem (old_pdata_copy, array_size * sizeof (gpointer),
+ gparray->pdata, array_size * sizeof (gpointer));
+
+ g_ptr_array_unref (gparray);
+ g_free (old_pdata_copy);
+}
+
+static void
+pointer_array_new_from_array_empty (void)
+{
+ GPtrArray *gparray;
+ gpointer empty_array[] = {0};
+
+ gparray = g_ptr_array_new_from_array (empty_array, 0, NULL, NULL, NULL);
+ g_assert_false (g_ptr_array_is_null_terminated (gparray));
+ g_assert_cmpuint (gparray->len, ==, 0);
+
+ g_clear_pointer (&gparray, g_ptr_array_unref);
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*data*!=*NULL*||*len*==*0*");
+ g_assert_null (g_ptr_array_new_from_array (NULL, 10, NULL, NULL, NULL));
+ g_test_assert_expected_messages ();
+}
+
+static void
+pointer_array_new_from_array_overflow (void)
+{
+#if SIZE_WIDTH <= UINT_WIDTH
+ g_test_skip ("Overflow test requires UINT_WIDTH > SIZE_WIDTH.");
+#else
+ if (!g_test_undefined ())
+ return;
+
+ /* Check for overflow should happen before data is accessed. */
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion 'len <= G_MAXUINT' failed");
+ g_assert_null (g_ptr_array_new_from_array (
+ (gpointer []) { NULL }, (gsize) G_MAXUINT + 1, NULL, NULL, NULL));
+ g_test_assert_expected_messages ();
+#endif
+}
+
+static void
+pointer_array_new_from_array_with_copy_and_free_func (void)
+{
+ const size_t array_size = 10000;
+ GPtrArray *source_array;
+ GPtrArray *gparray;
+ gpointer *old_pdata_copy;
+
+ source_array = g_ptr_array_new_with_free_func (g_free);
+ for (size_t i = 0; i < array_size; i++)
+ g_ptr_array_add (source_array, g_strdup_printf ("%" G_GSIZE_FORMAT, i));
+
+ g_assert_cmpuint (array_size, ==, source_array->len);
+ g_assert_nonnull (source_array->pdata);
+
+ gparray = g_ptr_array_new_from_array (source_array->pdata, source_array->len,
+ (GCopyFunc) g_strdup, NULL, g_free);
+
+ old_pdata_copy =
+ g_memdup2 (source_array->pdata, source_array->len * sizeof (gpointer));
+ g_assert_nonnull (old_pdata_copy);
+
+ for (size_t i = 0; i < gparray->len; i++)
+ {
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, i), ==,
+ (const char *) old_pdata_copy[i]);
+ }
+
+ g_clear_pointer (&source_array, g_ptr_array_unref);
+
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, 0), ==, "0");
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, 101), ==, "101");
+
+ g_ptr_array_add (gparray, g_strdup_printf ("%d", 55));
+ g_ptr_array_insert (gparray, 0, g_strdup_printf ("%d", 33));
+
+ g_assert_cmpuint (gparray->len, ==, array_size + 2);
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, 0), ==, "33");
+ g_assert_cmpstr (
+ (const char *) g_ptr_array_index (gparray, gparray->len - 1), ==, "55");
+
+ g_ptr_array_remove_index (gparray, 0);
+ g_assert_cmpuint (gparray->len, ==, array_size + 1);
+ g_ptr_array_remove_index (gparray, gparray->len - 1);
+ g_assert_cmpuint (gparray->len, ==, array_size);
+
+ g_ptr_array_unref (gparray);
+ g_free (old_pdata_copy);
+}
+
+static void
+pointer_array_new_from_null_terminated_array (void)
+{
+ const size_t array_size = 10000;
+ GPtrArray *source_array;
+ GPtrArray *gparray;
+ gpointer *old_pdata_copy;
+
+ source_array = g_ptr_array_new_null_terminated (array_size, NULL, TRUE);
+ g_assert_true (g_ptr_array_is_null_terminated (source_array));
+
+ for (size_t i = 0; i < array_size; i++)
+ g_ptr_array_add (source_array, GUINT_TO_POINTER (i + 1));
+
+ g_assert_cmpuint (array_size, ==, source_array->len);
+ g_assert_nonnull (source_array->pdata);
+
+ old_pdata_copy =
+ g_memdup2 (source_array->pdata, source_array->len * sizeof (gpointer));
+ g_assert_nonnull (old_pdata_copy);
+
+ gparray = g_ptr_array_new_from_null_terminated_array (source_array->pdata,
+ NULL, NULL, NULL);
+ g_assert_true (g_ptr_array_is_null_terminated (source_array));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_clear_pointer (&source_array, g_ptr_array_unref);
+
+ g_assert_true (g_ptr_array_is_null_terminated (gparray));
+ g_assert_cmpuint (gparray->len, ==, array_size);
+
+ g_assert_cmpuint (GPOINTER_TO_UINT (g_ptr_array_index (gparray, 0)), ==, 1);
+ g_assert_cmpuint (GPOINTER_TO_UINT (g_ptr_array_index (gparray, 10)), ==, 11);
+
+ g_assert_cmpmem (old_pdata_copy, array_size * sizeof (gpointer),
+ gparray->pdata, array_size * sizeof (gpointer));
+
+ g_ptr_array_add (gparray, GUINT_TO_POINTER (55));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_ptr_array_insert (gparray, 0, GUINT_TO_POINTER (33));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_assert_cmpuint (gparray->len, ==, array_size + 2);
+ g_assert_cmpuint (GPOINTER_TO_UINT (g_ptr_array_index (gparray, 0)), ==, 33);
+ g_assert_cmpuint (
+ GPOINTER_TO_UINT (g_ptr_array_index (gparray, gparray->len - 1)), ==, 55);
+
+ g_ptr_array_remove_index (gparray, 0);
+ g_assert_cmpuint (gparray->len, ==, array_size + 1);
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_ptr_array_remove_index (gparray, gparray->len - 1);
+ g_assert_cmpuint (gparray->len, ==, array_size);
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_assert_cmpmem (old_pdata_copy, array_size * sizeof (gpointer),
+ gparray->pdata, array_size * sizeof (gpointer));
+
+ g_ptr_array_unref (gparray);
+ g_free (old_pdata_copy);
+}
+
+static void
+pointer_array_new_from_null_terminated_array_empty (void)
+{
+ GPtrArray *gparray;
+
+ gparray = g_ptr_array_new_from_null_terminated_array (
+ (gpointer []) { NULL }, NULL, NULL, NULL);
+ g_assert_true (g_ptr_array_is_null_terminated (gparray));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+ g_assert_cmpuint (gparray->len, ==, 0);
+
+ g_clear_pointer (&gparray, g_ptr_array_unref);
+
+ gparray = g_ptr_array_new_from_null_terminated_array (
+ NULL, NULL, NULL, NULL);
+ g_assert_true (g_ptr_array_is_null_terminated (gparray));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+ g_assert_cmpuint (gparray->len, ==, 0);
+
+ g_clear_pointer (&gparray, g_ptr_array_unref);
+}
+
+static void
+pointer_array_new_from_null_terminated_array_with_copy_and_free_func (void)
+{
+ const size_t array_size = 10000;
+ GPtrArray *source_array;
+ GPtrArray *gparray;
+ GStrv old_pdata_copy;
+
+ source_array = g_ptr_array_new_null_terminated (array_size, g_free, TRUE);
+ g_assert_true (g_ptr_array_is_null_terminated (source_array));
+
+ for (size_t i = 0; i < array_size; i++)
+ g_ptr_array_add (source_array, g_strdup_printf ("%" G_GSIZE_FORMAT, i));
+
+ g_assert_cmpuint (array_size, ==, source_array->len);
+ g_assert_nonnull (source_array->pdata);
+
+ old_pdata_copy = g_strdupv ((char **) source_array->pdata);
+ g_assert_cmpuint (g_strv_length (old_pdata_copy), ==, array_size);
+ g_assert_nonnull (old_pdata_copy);
+ g_clear_pointer (&source_array, g_ptr_array_unref);
+
+ gparray = g_ptr_array_new_from_null_terminated_array (
+ (gpointer* ) old_pdata_copy, (GCopyFunc) g_strdup, NULL, g_free);
+ g_assert_true (g_ptr_array_is_null_terminated (gparray));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ for (size_t i = 0; i < gparray->len; i++)
+ {
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, i), ==,
+ (const char *) old_pdata_copy[i]);
+ }
+
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, 0), ==, "0");
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, 101), ==, "101");
+
+ g_ptr_array_add (gparray, g_strdup_printf ("%d", 55));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_ptr_array_insert (gparray, 0, g_strdup_printf ("%d", 33));
+ assert_ptr_array_null_terminated (gparray, TRUE);
+
+ g_assert_cmpuint (gparray->len, ==, array_size + 2);
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, 0), ==, "33");
+ g_assert_cmpstr (
+ (const char *) g_ptr_array_index (gparray, gparray->len - 1), ==, "55");
+
+ g_ptr_array_remove_index (gparray, 0);
+ assert_ptr_array_null_terminated (gparray, TRUE);
+ g_assert_cmpuint (gparray->len, ==, array_size + 1);
+
+ g_ptr_array_remove_index (gparray, gparray->len - 1);
+ assert_ptr_array_null_terminated (gparray, TRUE);
+ g_assert_cmpuint (gparray->len, ==, array_size);
+
+ for (size_t i = 0; i < gparray->len; i++)
+ {
+ g_assert_cmpstr ((const char *) g_ptr_array_index (gparray, i), ==,
+ (const char *) old_pdata_copy[i]);
+ }
+
+ g_ptr_array_unref (gparray);
+ g_strfreev (old_pdata_copy);
+}
+
+static void
+pointer_array_new_from_null_terminated_array_from_gstrv (void)
+{
+ GPtrArray *gparray;
+ GStrv strv;
+ char *joined;
+
+ strv = g_strsplit ("A.dot.separated.string", ".", -1);
+ gparray = g_ptr_array_new_from_null_terminated_array (
+ (gpointer) strv, NULL, NULL, NULL);
+
+ g_assert_cmpstr (
+ (const char *) g_ptr_array_index (gparray, 0), ==, "A");
+ g_assert_true (g_ptr_array_index (gparray, 0) == strv[0]);
+ g_assert_cmpstr (
+ (const char *) g_ptr_array_index (gparray, 1), ==, "dot");
+ g_assert_true (g_ptr_array_index (gparray, 1) == strv[1]);
+ g_assert_cmpstr (
+ (const char *) g_ptr_array_index (gparray, 2), ==, "separated");
+ g_assert_true (g_ptr_array_index (gparray, 2) == strv[2]);
+ g_assert_cmpstr (
+ (const char *) g_ptr_array_index (gparray, 3), ==, "string");
+ g_assert_true (g_ptr_array_index (gparray, 3) == strv[3]);
+
+ g_assert_null (strv[4]);
+ g_assert_null (g_ptr_array_index (gparray, 4));
+
+ joined = g_strjoinv (".", (char **) gparray->pdata);
+ g_assert_cmpstr (joined, ==, "A.dot.separated.string");
+
+ g_ptr_array_unref (gparray);
+ g_strfreev (strv);
+ g_free (joined);
+}
+
+static void
pointer_array_ref_count (gconstpointer test_data)
{
const gboolean null_terminated = GPOINTER_TO_INT (test_data);
@@ -1433,12 +2255,24 @@ pointer_array_extend_and_steal (void)
}
static gint
+ptr_compare_values (gconstpointer p1, gconstpointer p2)
+{
+ return GPOINTER_TO_INT (p1) - GPOINTER_TO_INT (p2);
+}
+
+static gint
ptr_compare (gconstpointer p1, gconstpointer p2)
{
gpointer i1 = *(gpointer*)p1;
gpointer i2 = *(gpointer*)p2;
- return GPOINTER_TO_INT (i1) - GPOINTER_TO_INT (i2);
+ return ptr_compare_values (i1, i2);
+}
+
+static gint
+ptr_compare_values_data (gconstpointer p1, gconstpointer p2, gpointer data)
+{
+ return GPOINTER_TO_INT (p1) - GPOINTER_TO_INT (p2);
}
static gint
@@ -1447,7 +2281,7 @@ ptr_compare_data (gconstpointer p1, gconstpointer p2, gpointer data)
gpointer i1 = *(gpointer*)p1;
gpointer i2 = *(gpointer*)p2;
- return GPOINTER_TO_INT (i1) - GPOINTER_TO_INT (i2);
+ return ptr_compare_values_data (i1, i2, data);
}
static void
@@ -1655,6 +2489,204 @@ pointer_array_sort_with_data (void)
}
static void
+pointer_array_sort_values (void)
+{
+ GPtrArray *gparray;
+ gint i;
+ gint val;
+ gint prev, cur;
+
+ gparray = g_ptr_array_new ();
+
+ /* Sort empty array */
+ g_ptr_array_sort_values (gparray, ptr_compare_values);
+
+ for (i = 0; i < 10000; i++)
+ {
+ val = g_random_int_range (0, 10000);
+ g_ptr_array_add (gparray, GINT_TO_POINTER (val));
+ }
+
+ g_ptr_array_sort_values (gparray, ptr_compare_values);
+
+ prev = -1;
+ for (i = 0; i < 10000; i++)
+ {
+ cur = GPOINTER_TO_INT (g_ptr_array_index (gparray, i));
+ g_assert_cmpint (prev, <=, cur);
+ prev = cur;
+ }
+
+ g_clear_pointer (&gparray, g_ptr_array_unref);
+
+ gparray = g_ptr_array_new ();
+
+ g_ptr_array_add (gparray, "dddd");
+ g_ptr_array_add (gparray, "cccc");
+ g_ptr_array_add (gparray, NULL);
+ g_ptr_array_add (gparray, "bbbb");
+ g_ptr_array_add (gparray, "aaaa");
+
+ g_ptr_array_sort_values (gparray, (GCompareFunc) g_strcmp0);
+
+ i = 0;
+ g_assert_cmpstr (g_ptr_array_index (gparray, i++), ==, NULL);
+ g_assert_cmpstr (g_ptr_array_index (gparray, i++), ==, "aaaa");
+ g_assert_cmpstr (g_ptr_array_index (gparray, i++), ==, "bbbb");
+ g_assert_cmpstr (g_ptr_array_index (gparray, i++), ==, "cccc");
+ g_assert_cmpstr (g_ptr_array_index (gparray, i++), ==, "dddd");
+
+ g_clear_pointer (&gparray, g_ptr_array_unref);
+}
+
+static gint
+sort_filelist_values (gconstpointer a, gconstpointer b)
+{
+ const FileListEntry *entry1 = a;
+ const FileListEntry *entry2 = b;
+
+ return g_ascii_strcasecmp (entry1->name, entry2->name);
+}
+
+static void
+pointer_array_sort_values_example (void)
+{
+ GPtrArray *file_list = NULL;
+ FileListEntry *entry;
+
+ file_list = g_ptr_array_new_with_free_func (file_list_entry_free);
+
+ entry = g_new0 (FileListEntry, 1);
+ entry->name = g_strdup ("README");
+ entry->size = 42;
+ g_ptr_array_add (file_list, g_steal_pointer (&entry));
+
+ entry = g_new0 (FileListEntry, 1);
+ entry->name = g_strdup ("empty");
+ entry->size = 0;
+ g_ptr_array_add (file_list, g_steal_pointer (&entry));
+
+ entry = g_new0 (FileListEntry, 1);
+ entry->name = g_strdup ("aardvark");
+ entry->size = 23;
+ g_ptr_array_add (file_list, g_steal_pointer (&entry));
+
+ g_ptr_array_sort_values (file_list, sort_filelist_values);
+
+ g_assert_cmpuint (file_list->len, ==, 3);
+ entry = g_ptr_array_index (file_list, 0);
+ g_assert_cmpstr (entry->name, ==, "aardvark");
+ entry = g_ptr_array_index (file_list, 1);
+ g_assert_cmpstr (entry->name, ==, "empty");
+ entry = g_ptr_array_index (file_list, 2);
+ g_assert_cmpstr (entry->name, ==, "README");
+
+ g_ptr_array_unref (file_list);
+}
+
+static gint
+sort_filelist_how_values (gconstpointer a, gconstpointer b, gpointer user_data)
+{
+ gint order;
+ const SortMode sort_mode = GPOINTER_TO_INT (user_data);
+ const FileListEntry *entry1 = a;
+ const FileListEntry *entry2 = b;
+
+ switch (sort_mode)
+ {
+ case SORT_NAME:
+ order = g_ascii_strcasecmp (entry1->name, entry2->name);
+ break;
+ case SORT_SIZE:
+ order = entry1->size - entry2->size;
+ break;
+ default:
+ order = 0;
+ break;
+ }
+ return order;
+}
+
+static void
+pointer_array_sort_values_with_data_example (void)
+{
+ GPtrArray *file_list = NULL;
+ FileListEntry *entry;
+ SortMode sort_mode;
+
+ file_list = g_ptr_array_new_with_free_func (file_list_entry_free);
+
+ entry = g_new0 (FileListEntry, 1);
+ entry->name = g_strdup ("README");
+ entry->size = 42;
+ g_ptr_array_add (file_list, g_steal_pointer (&entry));
+
+ entry = g_new0 (FileListEntry, 1);
+ entry->name = g_strdup ("empty");
+ entry->size = 0;
+ g_ptr_array_add (file_list, g_steal_pointer (&entry));
+
+ entry = g_new0 (FileListEntry, 1);
+ entry->name = g_strdup ("aardvark");
+ entry->size = 23;
+ g_ptr_array_add (file_list, g_steal_pointer (&entry));
+
+ sort_mode = SORT_NAME;
+ g_ptr_array_sort_values_with_data (file_list, sort_filelist_how_values,
+ GINT_TO_POINTER (sort_mode));
+
+ g_assert_cmpuint (file_list->len, ==, 3);
+ entry = g_ptr_array_index (file_list, 0);
+ g_assert_cmpstr (entry->name, ==, "aardvark");
+ entry = g_ptr_array_index (file_list, 1);
+ g_assert_cmpstr (entry->name, ==, "empty");
+ entry = g_ptr_array_index (file_list, 2);
+ g_assert_cmpstr (entry->name, ==, "README");
+
+ sort_mode = SORT_SIZE;
+ g_ptr_array_sort_values_with_data (file_list, sort_filelist_how_values,
+ GINT_TO_POINTER (sort_mode));
+
+ g_assert_cmpuint (file_list->len, ==, 3);
+ entry = g_ptr_array_index (file_list, 0);
+ g_assert_cmpstr (entry->name, ==, "empty");
+ entry = g_ptr_array_index (file_list, 1);
+ g_assert_cmpstr (entry->name, ==, "aardvark");
+ entry = g_ptr_array_index (file_list, 2);
+ g_assert_cmpstr (entry->name, ==, "README");
+
+ g_ptr_array_unref (file_list);
+}
+
+static void
+pointer_array_sort_values_with_data (void)
+{
+ GPtrArray *gparray;
+ gint i;
+ gint prev, cur;
+
+ gparray = g_ptr_array_new ();
+
+ /* Sort empty array */
+ g_ptr_array_sort_values_with_data (gparray, ptr_compare_values_data, NULL);
+
+ for (i = 0; i < 10000; i++)
+ g_ptr_array_add (gparray, GINT_TO_POINTER (g_random_int_range (0, 10000)));
+
+ g_ptr_array_sort_values_with_data (gparray, ptr_compare_values_data, NULL);
+
+ prev = -1;
+ for (i = 0; i < 10000; i++)
+ {
+ cur = GPOINTER_TO_INT (g_ptr_array_index (gparray, i));
+ g_assert_cmpint (prev, <=, cur);
+ prev = cur;
+ }
+
+ g_ptr_array_free (gparray, TRUE);
+}
+
+static void
pointer_array_find_empty (void)
{
GPtrArray *array;
@@ -2158,6 +3190,10 @@ main (int argc, char *argv[])
/* array tests */
g_test_add_func ("/array/new/zero-terminated", array_new_zero_terminated);
+ g_test_add_func ("/array/new/take", array_new_take);
+ g_test_add_func ("/array/new/take/empty", array_new_take_empty);
+ g_test_add_func ("/array/new/take/overflow", array_new_take_overflow);
+ g_test_add_func ("/array/new/take-zero-terminated", array_new_take_zero_terminated);
g_test_add_func ("/array/ref-count", array_ref_count);
g_test_add_func ("/array/steal", array_steal);
g_test_add_func ("/array/clear-func", array_clear_func);
@@ -2186,6 +3222,22 @@ main (int argc, char *argv[])
g_test_add_func ("/pointerarray/free/null-terminated", pointer_array_free_null_terminated);
g_test_add_func ("/pointerarray/add", pointer_array_add);
g_test_add_func ("/pointerarray/insert", pointer_array_insert);
+ g_test_add_func ("/pointerarray/new-take", pointer_array_new_take);
+ g_test_add_func ("/pointerarray/new-take/empty", pointer_array_new_take_empty);
+ g_test_add_func ("/pointerarray/new-take/overflow", pointer_array_new_take_overflow);
+ g_test_add_func ("/pointerarray/new-take/with-free-func", pointer_array_new_take_with_free_func);
+ g_test_add_func ("/pointerarray/new-take-null-terminated", pointer_array_new_take_null_terminated);
+ g_test_add_func ("/pointerarray/new-take-null-terminated/empty", pointer_array_new_take_null_terminated_empty);
+ g_test_add_func ("/pointerarray/new-take-null-terminated/with-free-func", pointer_array_new_take_null_terminated_with_free_func);
+ g_test_add_func ("/pointerarray/new-take-null-terminated/from-gstrv", pointer_array_new_take_null_terminated_from_gstrv);
+ g_test_add_func ("/pointerarray/new-from-array", pointer_array_new_from_array);
+ g_test_add_func ("/pointerarray/new-from-array/empty", pointer_array_new_from_array_empty);
+ g_test_add_func ("/pointerarray/new-from-array/overflow", pointer_array_new_from_array_overflow);
+ g_test_add_func ("/pointerarray/new-from-array/with-copy-and-free-func", pointer_array_new_from_array_with_copy_and_free_func);
+ g_test_add_func ("/pointerarray/new-from-null-terminated-array", pointer_array_new_from_null_terminated_array);
+ g_test_add_func ("/pointerarray/new-from-null-terminated-array/empty", pointer_array_new_from_null_terminated_array_empty);
+ g_test_add_func ("/pointerarray/new-from-null-terminated-array/with-copy-and-free-func", pointer_array_new_from_null_terminated_array_with_copy_and_free_func);
+ g_test_add_func ("/pointerarray/new-from-null-terminated-array/from-gstrv", pointer_array_new_from_null_terminated_array_from_gstrv);
g_test_add_data_func ("/pointerarray/ref-count/not-null-terminated", GINT_TO_POINTER (0), pointer_array_ref_count);
g_test_add_data_func ("/pointerarray/ref-count/null-terminated", GINT_TO_POINTER (1), pointer_array_ref_count);
g_test_add_func ("/pointerarray/free-func", pointer_array_free_func);
@@ -2198,6 +3250,10 @@ main (int argc, char *argv[])
g_test_add_func ("/pointerarray/sort/example", pointer_array_sort_example);
g_test_add_func ("/pointerarray/sort-with-data", pointer_array_sort_with_data);
g_test_add_func ("/pointerarray/sort-with-data/example", pointer_array_sort_with_data_example);
+ g_test_add_func ("/pointerarray/sort-values", pointer_array_sort_values);
+ g_test_add_func ("/pointerarray/sort-values/example", pointer_array_sort_values_example);
+ g_test_add_func ("/pointerarray/sort-values-with-data", pointer_array_sort_values_with_data);
+ g_test_add_func ("/pointerarray/sort-values-with-data/example", pointer_array_sort_values_with_data_example);
g_test_add_func ("/pointerarray/find/empty", pointer_array_find_empty);
g_test_add_func ("/pointerarray/find/non-empty", pointer_array_find_non_empty);
g_test_add_func ("/pointerarray/remove-range", pointer_array_remove_range);
diff --git a/glib/tests/assert-msg-test.c b/glib/tests/assert-msg-test.c
index 75591c853..7f450d226 100644
--- a/glib/tests/assert-msg-test.c
+++ b/glib/tests/assert-msg-test.c
@@ -1,7 +1,33 @@
+/* GLib testing framework examples and tests
+ *
+ * Copyright © 2009 Canonical Limited
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
#include <glib.h>
-int main(int argc, char **argv)
+int
+main (int argc,
+ char **argv)
{
- g_assert(42 < 0);
- return 0;
+ /* We expect this test to abort, so try to avoid that creating a coredump */
+ g_test_disable_crash_reporting ();
+
+ g_assert (42 < 0);
+ return 0;
}
diff --git a/glib/tests/assert-msg-test.py b/glib/tests/assert-msg-test.py
index 5e5f3fb23..33aa2249e 100755
--- a/glib/tests/assert-msg-test.py
+++ b/glib/tests/assert-msg-test.py
@@ -24,7 +24,6 @@ import collections
import os
import shutil
import subprocess
-import sys
import tempfile
import unittest
@@ -103,7 +102,7 @@ class TestAssertMessage(unittest.TestCase):
if self.__gdb is None:
return Result(None, "", "")
- argv = ["gdb", "--batch"]
+ argv = ["gdb", "-n", "--batch"]
argv.extend(args)
print("Running:", argv)
@@ -151,15 +150,17 @@ class TestAssertMessage(unittest.TestCase):
try:
tmp.write(GDB_SCRIPT)
tmp.close()
- result = self.runGdbAssertMessage("-x", tmp.name, self.__assert_msg_test)
+ result = self.runGdbAssertMessage(
+ "-x", tmp.name, self.__assert_msg_test
+ )
finally:
os.unlink(tmp.name)
# Some CI environments disable ptrace (as they’re running in a
# container). If so, skip the test as there’s nothing we can do.
- if (
- result.info.returncode != 0
- and "ptrace: Operation not permitted" in result.err
+ if result.info.returncode != 0 and (
+ "ptrace: Operation not permitted" in result.err
+ or "warning: opening /proc/PID/mem file for lwp" in result.err
):
self.skipTest("GDB is not functional due to ptrace being disabled")
diff --git a/glib/tests/asyncqueue.c b/glib/tests/asyncqueue.c
index 6a6f9488c..80ada3e00 100644
--- a/glib/tests/asyncqueue.c
+++ b/glib/tests/asyncqueue.c
@@ -2,6 +2,8 @@
* Copyright (C) 2011 Red Hat, Inc
* Author: Matthias Clasen
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -218,6 +220,15 @@ test_async_queue_timed (void)
gint64 start, end, diff;
gpointer val;
+ GDateTime *dt = g_date_time_new_now_utc ();
+ int year = g_date_time_get_year (dt);
+ g_date_time_unref (dt);
+ if (year >= 2038)
+ {
+ g_test_skip ("Test relies on GTimeVal which is Y2038 unsafe and will cause a failure.");
+ return;
+ }
+
g_get_current_time (&tv);
if (g_test_undefined ())
{
diff --git a/glib/tests/autoptr.c b/glib/tests/autoptr.c
index 06f1a0bff..e10c95c9d 100644
--- a/glib/tests/autoptr.c
+++ b/glib/tests/autoptr.c
@@ -619,6 +619,30 @@ test_refstring (void)
}
static void
+test_pathbuf (void)
+{
+#if defined(G_OS_UNIX)
+ g_autoptr(GPathBuf) buf1 = g_path_buf_new_from_path ("/bin/sh");
+ g_auto(GPathBuf) buf2 = G_PATH_BUF_INIT;
+
+ g_path_buf_push (&buf2, "/bin/sh");
+#elif defined(G_OS_WIN32)
+ g_autoptr(GPathBuf) buf1 = g_path_buf_new_from_path ("C:\\windows\\system32.dll");
+ g_auto(GPathBuf) buf2 = G_PATH_BUF_INIT;
+
+ g_path_buf_push (&buf2, "C:\\windows\\system32.dll");
+#else
+ g_test_skip ("Unsupported platform");
+ return;
+#endif
+
+ g_autofree char *path1 = g_path_buf_to_path (buf1);
+ g_autofree char *path2 = g_path_buf_to_path (&buf2);
+
+ g_assert_cmpstr (path1, ==, path2);
+}
+
+static void
mark_freed (gpointer ptr)
{
gboolean *freed = ptr;
@@ -772,6 +796,7 @@ main (int argc, gchar *argv[])
g_test_add_func ("/autoptr/g_variant_type", test_g_variant_type);
g_test_add_func ("/autoptr/strv", test_strv);
g_test_add_func ("/autoptr/refstring", test_refstring);
+ g_test_add_func ("/autoptr/pathbuf", test_pathbuf);
g_test_add_func ("/autoptr/autolist", test_autolist);
g_test_add_func ("/autoptr/autoslist", test_autoslist);
g_test_add_func ("/autoptr/autoqueue", test_autoqueue);
diff --git a/glib/tests/bookmarkfile.c b/glib/tests/bookmarkfile.c
index 389bc6370..d3038796a 100644
--- a/glib/tests/bookmarkfile.c
+++ b/glib/tests/bookmarkfile.c
@@ -911,7 +911,7 @@ test_deprecated (void)
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- now = time (NULL);
+ now = g_get_real_time () / G_USEC_PER_SEC;
file = g_bookmark_file_new ();
/* added */
@@ -1245,6 +1245,99 @@ test_file (gconstpointer d)
g_assert_true (success == (strstr (filename, "fail") == NULL));
}
+static void
+test_file_copy (gconstpointer d)
+{
+ const gchar *filename = d;
+ GBookmarkFile *bookmark_file;
+ GBookmarkFile *copy;
+ gboolean success;
+ gchar *data;
+ gchar *copy_data;
+ gsize length;
+ gsize copy_length;
+ GError *error = NULL;
+
+ bookmark_file = g_bookmark_file_new ();
+ g_assert_nonnull (bookmark_file);
+
+ success = test_load (bookmark_file, filename);
+ g_assert_true (success == (strstr (filename, "fail") == NULL));
+
+ copy = g_bookmark_file_copy (bookmark_file);
+ g_assert_nonnull (copy);
+
+ if (g_str_has_suffix (filename, "fail-08.xbel") ||
+ g_str_has_suffix (filename, "fail-06.xbel") ||
+ g_str_has_suffix (filename, "fail-07.xbel") ||
+ g_str_has_suffix (filename, "fail-09.xbel") ||
+ g_str_has_suffix (filename, "fail-10.xbel") ||
+ g_str_has_suffix (filename, "fail-11.xbel") ||
+ g_str_has_suffix (filename, "fail-39.xbel"))
+ {
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
+ "*no registered applications*skipping*");
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
+ "*no registered applications*skipping*");
+ }
+
+ data = g_bookmark_file_to_data (bookmark_file, &length, &error);
+ g_assert_no_error (error);
+
+ copy_data = g_bookmark_file_to_data (copy, &copy_length, &error);
+ g_assert_no_error (error);
+
+ g_test_assert_expected_messages ();
+
+ g_assert_cmpuint (length, ==, copy_length);
+ g_assert_cmpstr (data, ==, copy_data);
+
+ if (success)
+ {
+ GBookmarkFile *modified_copy;
+ gchar *modified_data;
+ gchar *modified_copy_data;
+ gsize modified_length;
+ gsize modified_copy_length;
+
+ test_modify (bookmark_file);
+ test_modify (copy);
+
+ modified_data = g_bookmark_file_to_data (bookmark_file,
+ &modified_length,
+ &error);
+ g_assert_no_error (error);
+
+ modified_copy_data = g_bookmark_file_to_data (copy,
+ &modified_copy_length,
+ &error);
+ g_assert_no_error (error);
+
+ g_assert_cmpstr (data, !=, modified_data);
+ g_assert_cmpstr (copy_data, !=, modified_copy_data);
+
+ g_free (modified_copy_data);
+ modified_copy = g_bookmark_file_copy (bookmark_file);
+ modified_copy_data = g_bookmark_file_to_data (modified_copy,
+ &modified_copy_length,
+ &error);
+ g_assert_no_error (error);
+
+ g_assert_cmpuint (modified_length, ==, modified_copy_length);
+ g_assert_cmpstr (modified_data, ==, modified_copy_data);
+
+ g_free (modified_data);
+ g_free (modified_copy_data);
+ g_bookmark_file_free (modified_copy);
+ }
+
+ g_bookmark_file_free (bookmark_file);
+ g_bookmark_file_free (copy);
+
+ g_free (data);
+ g_free (copy_data);
+}
+
int
main (int argc, char *argv[])
{
@@ -1275,12 +1368,17 @@ main (int argc, char *argv[])
g_assert_no_error (error);
while ((name = g_dir_read_name (dir)) != NULL)
{
+ gchar *filename;
if (!g_str_has_suffix (name, ".xbel"))
continue;
+ filename = g_test_build_filename (G_TEST_DIST, "bookmarks", name, NULL);
+
path = g_strdup_printf ("/bookmarks/parse/%s", name);
- g_test_add_data_func_full (path, g_test_build_filename (G_TEST_DIST, "bookmarks", name, NULL),
- test_file, g_free);
+ g_test_add_data_func_full (path, filename, test_file, g_free);
+ g_free (path);
+ path = g_strdup_printf ("/bookmarks/copy/%s", name);
+ g_test_add_data_func_full (path, g_strdup (filename), test_file_copy, g_free);
g_free (path);
}
g_dir_close (dir);
diff --git a/glib/tests/cond.c b/glib/tests/cond.c
index b179b3dee..6c9120013 100644
--- a/glib/tests/cond.c
+++ b/glib/tests/cond.c
@@ -2,6 +2,8 @@
* Copyright (C) 2011 Red Hat, Inc
* Author: Matthias Clasen
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/convert.c b/glib/tests/convert.c
index 6daeec237..6a7bfaf72 100644
--- a/glib/tests/convert.c
+++ b/glib/tests/convert.c
@@ -949,6 +949,38 @@ test_no_conv (void)
g_error_free (error);
}
+static void
+test_filename_from_uri_query_is_ignored (void)
+{
+ gchar *filename;
+ GError *error = NULL;
+
+ filename = g_filename_from_uri ("file:///tmp/foo?bar", NULL, &error);
+ g_assert_no_error (error);
+#ifdef G_OS_WIN32
+ g_assert_cmpstr (filename, ==, "\\tmp\\foo");
+#else
+ g_assert_cmpstr (filename, ==, "/tmp/foo");
+#endif
+ g_free (filename);
+}
+
+static void
+test_filename_from_uri_fragment_is_ignored (void)
+{
+ gchar *filename;
+ GError *error = NULL;
+
+ filename = g_filename_from_uri ("file:///tmp/foo#bar", NULL, &error);
+ g_assert_no_error (error);
+#ifdef G_OS_WIN32
+ g_assert_cmpstr (filename, ==, "\\tmp\\foo");
+#else
+ g_assert_cmpstr (filename, ==, "/tmp/foo");
+#endif
+ g_free (filename);
+}
+
int
main (int argc, char *argv[])
{
@@ -974,6 +1006,8 @@ main (int argc, char *argv[])
g_test_add_func ("/conversion/filename-from-utf8/embedded-nul", test_filename_from_utf8_embedded_nul);
g_test_add_func ("/conversion/filename-from-utf8/embedded-nul/subprocess/utf8", test_filename_from_utf8_embedded_nul_utf8);
g_test_add_func ("/conversion/filename-from-utf8/embedded-nul/subprocess/iconv", test_filename_from_utf8_embedded_nul_iconv);
+ g_test_add_func ("/conversion/filename-from-uri/query-is-ignored", test_filename_from_uri_query_is_ignored);
+ g_test_add_func ("/conversion/filename-from-uri/fragment-is-ignored", test_filename_from_uri_fragment_is_ignored);
return g_test_run ();
}
diff --git a/glib/tests/cxx.cpp b/glib/tests/cxx.cpp
index 300777d90..bc7967cce 100644
--- a/glib/tests/cxx.cpp
+++ b/glib/tests/cxx.cpp
@@ -19,6 +19,120 @@
#include <glib.h>
+#if !defined (G_CXX_STD_VERSION) || !defined (G_CXX_STD_CHECK_VERSION)
+#error G_CXX_STD_VERSION is not defined
+#endif
+
+#ifdef G_C_STD_VERSION
+#error G_C_STD_VERSION should be undefined in C programs
+#endif
+
+G_STATIC_ASSERT (G_CXX_STD_VERSION);
+G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (99));
+
+#if G_CXX_STD_VERSION >= 199711L
+ G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (98));
+ G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (199711L));
+ G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (03));
+#endif
+
+#if G_CXX_STD_VERSION == 199711L
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (11));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (201103L));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (14));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (201402L));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (17));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (201703L));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (20));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (202002L));
+#endif
+
+#if G_CXX_STD_VERSION >= 201103L
+ G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (98));
+ G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (199711L));
+ G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (03));
+ G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (11));
+ G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (201103L));
+#endif
+
+#if G_CXX_STD_VERSION == 201103L
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (14));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (201402L));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (17));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (201703L));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (20));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (202002L));
+#endif
+
+#if G_CXX_STD_VERSION >= 201402L
+ G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (14));
+ G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (201402L));
+#endif
+
+#if G_CXX_STD_VERSION == 201402L
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (17));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (201703L));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (20));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (202002L));
+#endif
+
+#if G_CXX_STD_VERSION >= 201703L
+ G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (17));
+ G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (201703L));
+#endif
+
+#if G_CXX_STD_VERSION == 201703L
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (20));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (202002L));
+#endif
+
+#if G_CXX_STD_VERSION >= 202002L
+ G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (20));
+ G_STATIC_ASSERT (G_CXX_STD_CHECK_VERSION (202002L));
+#endif
+
+#if G_CXX_STD_VERSION == 202002L
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (23));
+ G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (202300L));
+#endif
+
+#ifdef _G_EXPECTED_CXX_STANDARD
+static void
+test_cpp_standard (void)
+{
+ guint64 std_version = 0;
+
+ if (!g_ascii_string_to_unsigned (_G_EXPECTED_CXX_STANDARD, 10, 0, G_MAXUINT64,
+ &std_version, NULL))
+ {
+ g_test_skip ("Expected standard value is non-numeric: "
+ _G_EXPECTED_CXX_STANDARD);
+ return;
+ }
+
+#if !G_GNUC_CHECK_VERSION (11, 0)
+ if (std_version >= 20)
+ {
+ // See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93821
+ g_test_skip ("Expected standard version is not properly supported by compiler");
+ return;
+ }
+#endif
+
+ g_test_message ("Checking if '" G_STRINGIFY (G_CXX_STD_VERSION) "' respects "
+ "the expected standard version '" _G_EXPECTED_CXX_STANDARD "'");
+ g_assert_true (G_CXX_STD_CHECK_VERSION (std_version));
+
+ if (std_version < 10 || std_version > 90)
+ std_version = 97;
+
+ if (std_version >= 90)
+ g_assert_cmpuint (G_CXX_STD_VERSION, >=, (std_version + 1900) * 100);
+ else
+ g_assert_cmpuint (G_CXX_STD_VERSION, >=, (std_version + 2000) * 100);
+}
+#endif
+
typedef struct
{
int dummy;
@@ -31,24 +145,17 @@ test_typeof (void)
MyObject *obj2 = g_rc_box_acquire (obj);
g_assert_true (obj2 == obj);
+ G_STATIC_ASSERT (sizeof (glib_typeof (*obj)) == sizeof (glib_typeof (*obj2)));
+
MyObject *obj3 = g_atomic_pointer_get (&obj2);
g_assert_true (obj3 == obj);
-#if __cplusplus >= 201103L
- MyObject *obj4 = nullptr;
-#else
MyObject *obj4 = NULL;
-#endif
g_atomic_pointer_set (&obj4, obj3);
g_assert_true (obj4 == obj);
-#if __cplusplus >= 201103L
- MyObject *obj5 = nullptr;
- g_atomic_pointer_compare_and_exchange (&obj5, nullptr, obj4);
-#else
MyObject *obj5 = NULL;
g_atomic_pointer_compare_and_exchange (&obj5, NULL, obj4);
-#endif
g_assert_true (obj5 == obj);
MyObject *obj6 = g_steal_pointer (&obj5);
@@ -197,6 +304,7 @@ test_str_equal (void)
{
const char *str_a = "a";
char *str_b = g_strdup ("b");
+ char *str_null = g_strdup (NULL);
gconstpointer str_a_ptr = str_a, str_b_ptr = str_b;
const unsigned char *str_c = (const unsigned char *) "c";
@@ -210,19 +318,232 @@ test_str_equal (void)
g_assert_true (g_str_equal (str_a, str_a_ptr));
g_assert_false (g_str_equal (str_a_ptr, str_b_ptr));
g_assert_false (g_str_equal (str_c, str_b));
+ g_assert_cmpstr (str_b, !=, str_null);
g_free (str_b);
}
+static void
+test_strdup (void)
+{
+ gchar *str;
+
+ g_assert_null ((g_strdup) (NULL));
+
+ str = (g_strdup) ("C++ is cool too!");
+ g_assert_nonnull (str);
+ g_assert_cmpstr (str, ==, "C++ is cool too!");
+ g_free (str);
+}
+
+static void
+test_strdup_macro (void)
+{
+ gchar *str;
+
+ g_assert_null (g_strdup (NULL));
+
+ str = g_strdup ("C++ is cool too!");
+ g_assert_nonnull (str);
+ g_assert_cmpstr (str, ==, "C++ is cool too!");
+ g_free (str);
+}
+
+static void
+test_strdup_macro_qualified (void)
+{
+ gchar *str;
+
+ g_assert_null (::g_strdup (NULL));
+
+ str = ::g_strdup ("C++ is cool too!");
+ g_assert_nonnull (str);
+ g_assert_cmpstr (str, ==, "C++ is cool too!");
+ g_free (str);
+}
+
+static void
+test_strdup_macro_nested_initializer (void)
+{
+ struct
+ {
+ char *p, *q;
+ } strings = {
+ g_strdup (NULL),
+ g_strdup ("C++ is cool too!"),
+ };
+
+ g_assert_null (strings.p);
+ g_assert_nonnull (strings.q);
+ g_assert_cmpstr (strings.q, ==, "C++ is cool too!");
+ g_free (strings.q);
+}
+
+static void
+test_str_has_prefix (void)
+{
+ g_assert_true ((g_str_has_prefix) ("C++ is cool!", "C++"));
+}
+
+static void
+test_str_has_prefix_macro (void)
+{
+ g_assert_true (g_str_has_prefix ("C++ is cool!", "C++"));
+}
+
+static void
+test_str_has_suffix (void)
+{
+ g_assert_true ((g_str_has_suffix) ("C++ is cool!", "cool!"));
+}
+
+static void
+test_str_has_suffix_macro (void)
+{
+ g_assert_true (g_str_has_suffix ("C++ is cool!", "cool!"));
+}
+
+static void
+test_string_append (void)
+{
+ GString *string;
+ char *tmp;
+ int i;
+
+ tmp = g_strdup ("more");
+
+ /* append */
+ string = g_string_new ("firsthalf");
+ g_string_append (string, "last");
+ (g_string_append) (string, "half");
+
+ g_assert_cmpstr (string->str, ==, "firsthalflasthalf");
+
+ i = 0;
+ g_string_append (string, &tmp[i++]);
+ (g_string_append) (string, &tmp[i++]);
+ g_assert_true (i == 2);
+ g_assert_cmpstr (string->str, ==, "firsthalflasthalfmoreore");
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*string != NULL*failed*");
+ g_assert_null (g_string_append (NULL, NULL));
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*string != NULL*failed*");
+ g_assert_null ((g_string_append) (NULL, NULL));
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*val != NULL*failed*");
+ g_assert_true (g_string_append (string, NULL) == string);
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*val != NULL*failed*");
+ g_assert_true ((g_string_append) (string, NULL) == string);
+ g_test_assert_expected_messages ();
+
+ g_string_free (string, TRUE);
+
+ /* append_len */
+ string = g_string_new ("firsthalf");
+ g_string_append_len (string, "lasthalfjunkjunk", strlen ("last"));
+ (g_string_append_len) (string, "halfjunkjunk", strlen ("half"));
+ g_string_append_len (string, "more", -1);
+ (g_string_append_len) (string, "ore", -1);
+
+ g_assert_true (g_string_append_len (string, NULL, 0) == string);
+ g_assert_true ((g_string_append_len) (string, NULL, 0) == string);
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*string != NULL*failed*");
+ g_assert_null (g_string_append_len (NULL, NULL, -1));
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*string != NULL*failed*");
+ g_assert_null ((g_string_append_len) (NULL, NULL, -1));
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*val != NULL*failed*");
+ g_assert_true (g_string_append_len (string, NULL, -1) == string);
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*val != NULL*failed*");
+ g_assert_true ((g_string_append_len) (string, NULL, -1) == string);
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*val != NULL*failed*");
+ g_assert_true (g_string_append_len (string, NULL, 1) == string);
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*val != NULL*failed*");
+ g_assert_true ((g_string_append_len) (string, NULL, 1) == string);
+ g_test_assert_expected_messages ();
+
+ g_assert_cmpstr (string->str, ==, "firsthalflasthalfmoreore");
+
+ char c = 'A';
+ g_string_append_c (string, c++);
+ (g_string_append_c) (string, c++);
+ g_assert_cmpstr (string->str, ==, "firsthalflasthalfmoreoreAB");
+
+ i = string->len;
+ g_string_truncate (string, --i);
+ (g_string_truncate) (string, --i);
+ g_assert_cmpstr (string->str, ==, "firsthalflasthalfmoreore");
+
+ g_string_free (string, TRUE);
+ g_free (tmp);
+}
+
+static void
+test_string_free (void)
+{
+ GString *str;
+ gchar *data;
+
+ g_test_message ("Test that g_string_free() macro compiles and doesn’t "
+ "cause any compiler warnings in C++ mode");
+
+ /* Test that g_string_free (_, TRUE) does not cause a warning if
+ * its return value is unused. */
+ str = g_string_new ("test");
+ g_string_free (str, TRUE);
+
+ /* Test that g_string_free (_, FALSE) does not emit a warning if
+ * its return value is used. */
+ str = g_string_new ("test");
+ data = g_string_free (str, FALSE);
+ g_free (data);
+
+ /* Test that g_string_free () with an expression that is always FALSE
+ * at runtime, but the compiler can't know it, does not cause any
+ * warnings if its return value is unused. */
+ str = g_string_new ("test");
+ data = str->str;
+ g_string_free (str, g_test_get_path ()[0] == 0);
+ g_free (data);
+}
+
int
main (int argc, char *argv[])
{
-#if __cplusplus >= 201103L
- g_test_init (&argc, &argv, nullptr);
-#else
+#if G_CXX_STD_CHECK_VERSION (11)
g_test_init (&argc, &argv, NULL);
+#else
+ g_test_init (&argc, &argv, static_cast<void *>(NULL));
#endif
+#ifdef _G_EXPECTED_CXX_STANDARD
+ g_test_add_func ("/C++/check-standard-" _G_EXPECTED_CXX_STANDARD, test_cpp_standard);
+#endif
g_test_add_func ("/C++/typeof", test_typeof);
g_test_add_func ("/C++/atomic-pointer-compare-and-exchange", test_atomic_pointer_compare_and_exchange);
g_test_add_func ("/C++/atomic-pointer-compare-and-exchange-full", test_atomic_pointer_compare_and_exchange_full);
@@ -234,6 +555,16 @@ main (int argc, char *argv[])
g_test_add_func ("/C++/clear-pointer", test_clear_pointer);
g_test_add_func ("/C++/steal-pointer", test_steal_pointer);
g_test_add_func ("/C++/str-equal", test_str_equal);
+ g_test_add_func ("/C++/strdup", test_strdup);
+ g_test_add_func ("/C++/strdup/macro", test_strdup_macro);
+ g_test_add_func ("/C++/strdup/macro/qualified", test_strdup_macro_qualified);
+ g_test_add_func ("/C++/strdup/macro/nested-initializer", test_strdup_macro_nested_initializer);
+ g_test_add_func ("/C++/str-has-prefix", test_str_has_prefix);
+ g_test_add_func ("/C++/str-has-prefix/macro", test_str_has_prefix_macro);
+ g_test_add_func ("/C++/str-has-suffix", test_str_has_suffix);
+ g_test_add_func ("/C++/str-has-suffix/macro", test_str_has_suffix_macro);
+ g_test_add_func ("/C++/string-append", test_string_append);
+ g_test_add_func ("/C++/string-free", test_string_free);
return g_test_run ();
}
diff --git a/glib/tests/environment.c b/glib/tests/environment.c
index c262c47cd..83385863e 100644
--- a/glib/tests/environment.c
+++ b/glib/tests/environment.c
@@ -26,6 +26,10 @@ test_listenv (void)
gchar **list;
gint i;
+ g_test_summary ("Test g_get_environ() returns an array of unique keys, all "
+ "of which can be individually queried using g_getenv() to "
+ "return the same value.");
+
table = g_hash_table_new_full (g_str_hash, g_str_equal,
g_free, g_free);
@@ -68,6 +72,9 @@ test_getenv (void)
const gchar *value1 = "works";
const gchar *value2 = "again";
+ g_test_summary ("Test setting an environment variable using g_setenv(), and "
+ "that the updated value is queryable using g_getenv().");
+
/* Check that TEST_G_SETENV is not already set */
g_assert_null (g_getenv (variable));
@@ -168,6 +175,9 @@ test_environ_array (void)
gchar **env;
const gchar *value;
+ g_test_summary ("Test getting and setting variables on a local envp array "
+ "(rather than the global envp).");
+
env = g_new (gchar *, 1);
env[0] = NULL;
@@ -242,6 +252,8 @@ test_environ_null (void)
gchar **env;
const gchar *value;
+ g_test_summary ("Test getting and setting variables on a NULL envp array.");
+
env = NULL;
value = g_environ_getenv (env, "foo");
@@ -261,6 +273,10 @@ test_environ_case (void)
gchar **env;
const gchar *value;
+ g_test_summary ("Test that matching environment variables is case-insensitive "
+ "on Windows and not on other platforms, since envvars were "
+ "case-insensitive on DOS.");
+
env = NULL;
env = g_environ_setenv (env, "foo", "bar", TRUE);
diff --git a/glib/tests/error.c b/glib/tests/error.c
index fa3a25969..8dd40aa56 100644
--- a/glib/tests/error.c
+++ b/glib/tests/error.c
@@ -129,17 +129,6 @@ test_new_valist_invalid_va (gpointer dummy,
* g_error_new_valist() with a %NULL format will crash on FreeBSD as its
* implementation of vasprintf() is less forgiving than Linux’s. That’s
* fine: it’s a programmer error in either case. */
- const struct
- {
- GQuark domain;
- const gchar *format;
- }
- tests[] =
- {
- { G_MARKUP_ERROR, NULL },
- { 0, "Message" },
- };
- gsize i;
g_test_summary ("Test that g_error_new_valist() rejects invalid input");
@@ -149,12 +138,31 @@ test_new_valist_invalid_va (gpointer dummy,
return;
}
- for (i = 0; i < G_N_ELEMENTS (tests); i++)
{
- GError *error = NULL, *error_copy = NULL;
+ GError *error = NULL;
va_list ap;
- g_test_message ("Test %" G_GSIZE_FORMAT, i);
+ va_start (ap, dummy);
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+
+ g_test_expect_message (G_LOG_DOMAIN,
+ G_LOG_LEVEL_CRITICAL,
+ "*g_error_new_valist: assertion 'format != NULL' failed*");
+ error = g_error_new_valist (G_MARKUP_ERROR, G_MARKUP_ERROR_EMPTY, NULL, ap);
+ g_test_assert_expected_messages ();
+ g_assert_null (error);
+
+#pragma GCC diagnostic pop
+
+ va_end (ap);
+ }
+
+ {
+ GError *error = NULL, *error_copy = NULL;
+ va_list ap;
va_start (ap, dummy);
@@ -164,7 +172,7 @@ test_new_valist_invalid_va (gpointer dummy,
g_test_expect_message (G_LOG_DOMAIN,
G_LOG_LEVEL_WARNING,
"*g_error_new_valist: runtime check failed*");
- error = g_error_new_valist (tests[i].domain, G_MARKUP_ERROR_EMPTY, tests[i].format, ap);
+ error = g_error_new_valist (0, G_MARKUP_ERROR_EMPTY, "Message", ap);
g_test_assert_expected_messages ();
g_assert_nonnull (error);
diff --git a/glib/tests/fileutils.c b/glib/tests/fileutils.c
index 5218aedec..8f5a4829a 100644
--- a/glib/tests/fileutils.c
+++ b/glib/tests/fileutils.c
@@ -1,6 +1,8 @@
/* Unit tests for gfileutils
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -33,6 +35,7 @@
/* Test our stdio wrappers here; this disables redefining (e.g.) g_open() to open() */
#define G_STDIO_WRAP_ON_UNIX
#include <glib/gstdio.h>
+#include "glib-private.h"
#ifdef G_OS_UNIX
#include <unistd.h>
@@ -720,46 +723,6 @@ test_mkdir_with_parents_1 (const gchar *base)
g_free (p0);
}
-static void
-test_mkdir_with_parents (void)
-{
- gchar *cwd, *new_path;
- if (g_test_verbose())
- g_printerr ("checking g_mkdir_with_parents() in subdir ./hum/");
- test_mkdir_with_parents_1 ("hum");
- g_remove ("hum");
- if (g_test_verbose())
- g_printerr ("checking g_mkdir_with_parents() in subdir ./hii///haa/hee/");
- test_mkdir_with_parents_1 ("./hii///haa/hee///");
- g_remove ("hii/haa/hee");
- g_remove ("hii/haa");
- g_remove ("hii");
- cwd = g_get_current_dir ();
- if (g_test_verbose())
- g_printerr ("checking g_mkdir_with_parents() in cwd: %s", cwd);
- test_mkdir_with_parents_1 (cwd);
-
- new_path = g_build_filename (cwd, "new", NULL);
- g_assert_cmpint (g_mkdir_with_parents (new_path, 0), ==, 0);
- g_assert_cmpint (g_rmdir (new_path), ==, 0);
- g_free (new_path);
- g_free (cwd);
-
- g_assert_cmpint (g_mkdir_with_parents ("./test", 0), ==, 0);
- g_assert_cmpint (g_mkdir_with_parents ("./test", 0), ==, 0);
- g_remove ("./test");
-
-#ifndef G_OS_WIN32
- g_assert_cmpint (g_mkdir_with_parents ("/usr/b/c", 0), ==, -1);
- /* EPERM may be returned if the filesystem as a whole is read-only */
- if (errno != EPERM)
- g_assert_cmpint (errno, ==, EACCES);
-#endif
-
- g_assert_cmpint (g_mkdir_with_parents (NULL, 0), ==, -1);
- g_assert_cmpint (errno, ==, EINVAL);
-}
-
/*
* check_cap_dac_override:
* @tmpdir: (nullable): A temporary directory in which we can create
@@ -845,6 +808,59 @@ check_cap_dac_override (const char *tmpdir)
#endif
}
+static void
+test_mkdir_with_parents (void)
+{
+ gchar *cwd, *new_path;
+#ifndef G_OS_WIN32
+ gboolean can_override_dac = check_cap_dac_override (NULL);
+#endif
+ if (g_test_verbose())
+ g_printerr ("checking g_mkdir_with_parents() in subdir ./hum/");
+ test_mkdir_with_parents_1 ("hum");
+ g_remove ("hum");
+ if (g_test_verbose())
+ g_printerr ("checking g_mkdir_with_parents() in subdir ./hii///haa/hee/");
+ test_mkdir_with_parents_1 ("./hii///haa/hee///");
+ g_remove ("hii/haa/hee");
+ g_remove ("hii/haa");
+ g_remove ("hii");
+ cwd = g_get_current_dir ();
+ if (g_test_verbose())
+ g_printerr ("checking g_mkdir_with_parents() in cwd: %s", cwd);
+ test_mkdir_with_parents_1 (cwd);
+
+ new_path = g_build_filename (cwd, "new", NULL);
+ g_assert_cmpint (g_mkdir_with_parents (new_path, 0), ==, 0);
+ g_assert_cmpint (g_rmdir (new_path), ==, 0);
+ g_free (new_path);
+ g_free (cwd);
+
+ g_assert_cmpint (g_mkdir_with_parents ("./test", 0), ==, 0);
+ g_assert_cmpint (g_mkdir_with_parents ("./test", 0), ==, 0);
+ g_remove ("./test");
+
+#ifndef G_OS_WIN32
+ if (can_override_dac)
+ {
+ g_assert_cmpint (g_mkdir_with_parents ("/usr/b/c", 0), ==, 0);
+ g_remove ("/usr/b/c");
+ g_remove ("/usr/b");
+ }
+ else
+ {
+ g_assert_cmpint (g_mkdir_with_parents ("/usr/b/c", 0), ==, -1);
+ /* EPERM or EROFS may be returned if the filesystem as a whole is read-only */
+ if (errno != EPERM && errno != EROFS)
+ g_assert_cmpint (errno, ==, EACCES);
+ }
+
+#endif
+
+ g_assert_cmpint (g_mkdir_with_parents (NULL, 0), ==, -1);
+ g_assert_cmpint (errno, ==, EINVAL);
+}
+
/* Reproducer for https://gitlab.gnome.org/GNOME/glib/issues/1852 */
static void
test_mkdir_with_parents_permission (void)
@@ -1202,6 +1218,7 @@ test_dir_make_tmp (void)
name = g_dir_make_tmp ("testXXXXXXtest", &error);
g_assert_no_error (error);
g_assert_true (g_file_test (name, G_FILE_TEST_IS_DIR));
+ g_assert_true (g_str_has_prefix (name, g_getenv ("G_TEST_TMPDIR")));
ret = g_rmdir (name);
g_assert_cmpint (ret, ==, 0);
g_free (name);
@@ -1209,6 +1226,7 @@ test_dir_make_tmp (void)
name = g_dir_make_tmp (NULL, &error);
g_assert_no_error (error);
g_assert_true (g_file_test (name, G_FILE_TEST_IS_DIR));
+ g_assert_true (g_str_has_prefix (name, g_getenv ("G_TEST_TMPDIR")));
ret = g_rmdir (name);
g_assert_cmpint (ret, ==, 0);
g_free (name);
@@ -1235,6 +1253,7 @@ test_file_open_tmp (void)
g_assert_cmpint (fd, !=, -1);
g_assert_no_error (error);
g_assert_nonnull (name);
+ g_assert_true (g_str_has_prefix (name, g_getenv ("G_TEST_TMPDIR")));
unlink (name);
g_free (name);
close (fd);
@@ -1243,6 +1262,7 @@ test_file_open_tmp (void)
g_assert_cmpint (fd, !=, -1);
g_assert_no_error (error);
g_assert_nonnull (name);
+ g_assert_true (g_str_has_prefix (name, g_getenv ("G_TEST_TMPDIR")));
g_unlink (name);
g_free (name);
close (fd);
@@ -1581,6 +1601,8 @@ test_set_contents_full (void)
gsize len;
gboolean ret;
GStatBuf statbuf;
+ const gchar *original_contents = "a string which is longer than what will be overwritten on it";
+ size_t original_contents_len = strlen (original_contents);
g_test_message ("Flags %d and test %" G_GSIZE_FORMAT, flags, i);
@@ -1595,7 +1617,7 @@ test_set_contents_full (void)
fd = g_file_open_tmp (NULL, &file_name, &error);
g_assert_no_error (error);
- g_assert_cmpint (write (fd, "a", 1), ==, 1);
+ g_assert_cmpint (write (fd, original_contents, original_contents_len), ==, original_contents_len);
g_assert_no_errno (g_fsync (fd));
close (fd);
@@ -1691,7 +1713,7 @@ test_set_contents_full (void)
g_file_get_contents (file_name, &target_contents, NULL, &error);
g_assert_no_error (error);
- g_assert_cmpstr (target_contents, ==, "a");
+ g_assert_cmpstr (target_contents, ==, original_contents);
g_free (target_contents);
}
@@ -2453,6 +2475,168 @@ test_win32_zero_terminate_symlink (void)
#endif
+static void
+assert_fd_was_closed (int fd)
+{
+ /* We can't tell a fd was really closed without behaving as though it
+ * was still valid */
+ if (g_test_undefined ())
+ {
+ int result, errsv;
+ GWin32InvalidParameterHandler handler;
+
+ GLIB_PRIVATE_CALL (g_win32_push_empty_invalid_parameter_handler) (&handler);
+ result = g_fsync (fd);
+ errsv = errno;
+ GLIB_PRIVATE_CALL (g_win32_pop_invalid_parameter_handler) (&handler);
+
+ g_assert_cmpint (result, !=, 0);
+ g_assert_cmpint (errsv, ==, EBADF);
+ }
+}
+
+static void
+test_clear_fd_ebadf (void)
+{
+ char *name = NULL;
+ GError *error = NULL;
+ int fd;
+ int copy_of_fd;
+ int errsv;
+ gboolean ret;
+ GWin32InvalidParameterHandler handler;
+
+ /* We're going to trigger a programming error: attmpting to close a
+ * fd that was already closed. Make criticals non-fatal. */
+ g_assert_true (g_test_undefined ());
+ g_log_set_always_fatal (G_LOG_FATAL_MASK);
+ g_log_set_fatal_mask ("GLib", G_LOG_FATAL_MASK);
+ GLIB_PRIVATE_CALL (g_win32_push_empty_invalid_parameter_handler) (&handler);
+
+ fd = g_file_open_tmp (NULL, &name, &error);
+ g_assert_cmpint (fd, !=, -1);
+ g_assert_no_error (error);
+ g_assert_nonnull (name);
+ ret = g_close (fd, &error);
+ g_assert_no_error (error);
+ assert_fd_was_closed (fd);
+ g_assert_true (ret);
+ g_unlink (name);
+ g_free (name);
+
+ /* Try to close it again with g_close() */
+ ret = g_close (fd, NULL);
+ errsv = errno;
+ g_assert_cmpint (errsv, ==, EBADF);
+ assert_fd_was_closed (fd);
+ g_assert_false (ret);
+
+ /* Try to close it again with g_clear_fd() */
+ copy_of_fd = fd;
+ errno = EILSEQ;
+ ret = g_clear_fd (&copy_of_fd, NULL);
+ errsv = errno;
+ g_assert_cmpint (errsv, ==, EBADF);
+ assert_fd_was_closed (fd);
+ g_assert_false (ret);
+
+#ifdef g_autofree
+ {
+ g_autofd int close_me = fd;
+
+ /* This avoids clang warnings about the variables being unused */
+ g_test_message ("Invalid fd will be closed by autocleanup: %d",
+ close_me);
+ errno = EILSEQ;
+ }
+
+ errsv = errno;
+ g_assert_cmpint (errsv, ==, EILSEQ);
+#endif
+
+ GLIB_PRIVATE_CALL (g_win32_pop_invalid_parameter_handler) (&handler);
+}
+
+static void
+test_clear_fd (void)
+{
+ char *name = NULL;
+ GError *error = NULL;
+ int fd;
+ int copy_of_fd;
+ int errsv;
+
+#ifdef g_autofree
+ g_test_summary ("Test g_clear_fd() and g_autofd");
+#else
+ g_test_summary ("Test g_clear_fd() (g_autofd unsupported by this compiler)");
+#endif
+
+ /* g_clear_fd() normalizes any negative number to -1 */
+ fd = -23;
+ g_clear_fd (&fd, &error);
+ g_assert_cmpint (fd, ==, -1);
+ g_assert_no_error (error);
+
+ /* Nothing special about g_file_open_tmp, it's just a convenient way
+ * to get an open fd */
+ fd = g_file_open_tmp (NULL, &name, &error);
+ g_assert_cmpint (fd, !=, -1);
+ g_assert_no_error (error);
+ g_assert_nonnull (name);
+ copy_of_fd = fd;
+ g_clear_fd (&fd, &error);
+ g_assert_cmpint (fd, ==, -1);
+ g_assert_no_error (error);
+ assert_fd_was_closed (copy_of_fd);
+ g_unlink (name);
+ g_free (name);
+
+ /* g_clear_fd() is idempotent */
+ g_clear_fd (&fd, &error);
+ g_assert_cmpint (fd, ==, -1);
+ g_assert_no_error (error);
+
+#ifdef g_autofree
+ fd = g_file_open_tmp (NULL, &name, &error);
+ g_assert_cmpint (fd, !=, -1);
+ g_assert_no_error (error);
+ g_assert_nonnull (name);
+
+ {
+ g_autofd int close_me = fd;
+ g_autofd int was_never_set = -42;
+
+ /* This avoids clang warnings about the variables being unused */
+ g_test_message ("Will be closed by autocleanup: %d, %d",
+ close_me, was_never_set);
+ /* This is one of the few errno values guaranteed by Standard C.
+ * We set it here to check that a successful g_autofd close doesn't
+ * alter errno. */
+ errno = EILSEQ;
+ }
+
+ errsv = errno;
+ g_assert_cmpint (errsv, ==, EILSEQ);
+ assert_fd_was_closed (fd);
+ g_unlink (name);
+ g_free (name);
+#endif
+
+ if (g_test_undefined ())
+ {
+ g_test_message ("Testing error handling");
+ g_test_trap_subprocess ("/fileutils/clear-fd/subprocess/ebadf",
+ 0, G_TEST_SUBPROCESS_DEFAULT);
+#ifdef g_autofree
+ g_test_trap_assert_stderr ("*failed with EBADF*failed with EBADF*failed with EBADF*");
+#else
+ g_test_trap_assert_stderr ("*failed with EBADF*failed with EBADF*");
+#endif
+ g_test_trap_assert_passed ();
+ }
+}
+
int
main (int argc,
char *argv[])
@@ -2489,6 +2673,8 @@ main (int argc,
g_test_add_func ("/fileutils/read-link", test_read_link);
g_test_add_func ("/fileutils/stdio-wrappers", test_stdio_wrappers);
g_test_add_func ("/fileutils/fopen-modes", test_fopen_modes);
+ g_test_add_func ("/fileutils/clear-fd", test_clear_fd);
+ g_test_add_func ("/fileutils/clear-fd/subprocess/ebadf", test_clear_fd_ebadf);
return g_test_run ();
}
diff --git a/glib/tests/gdatetime.c b/glib/tests/gdatetime.c
index 7874d258d..49390c900 100644
--- a/glib/tests/gdatetime.c
+++ b/glib/tests/gdatetime.c
@@ -403,7 +403,7 @@ test_GDateTime_new_from_timeval (void)
dt = g_date_time_new_from_timeval_local (&tv);
if (g_test_verbose ())
- g_printerr ("\nDT%04d-%02d-%02dT%02d:%02d:%02d%s\n",
+ g_test_message ("DT%04d-%02d-%02dT%02d:%02d:%02d%s",
g_date_time_get_year (dt),
g_date_time_get_month (dt),
g_date_time_get_day_of_month (dt),
@@ -501,7 +501,7 @@ test_GDateTime_new_from_timeval_utc (void)
dt = g_date_time_new_from_timeval_utc (&tv);
if (g_test_verbose ())
- g_printerr ("\nDT%04d-%02d-%02dT%02d:%02d:%02d%s\n",
+ g_test_message ("DT%04d-%02d-%02dT%02d:%02d:%02d%s",
g_date_time_get_year (dt),
g_date_time_get_month (dt),
g_date_time_get_day_of_month (dt),
@@ -2097,7 +2097,7 @@ test_all_dates (void)
dt = g_date_time_new (timezone, year, month, day, 0, 0, 0);
#if 0
- g_printerr ("%04d-%02d-%02d = %04d-W%02d-%d = %04d-%03d\n",
+ g_test_message ("%04d-%02d-%02d = %04d-W%02d-%d = %04d-%03d",
year, month, day,
week_year, week_num, weekday,
year, day_of_year);
@@ -2384,7 +2384,7 @@ check_and_set_locale (int category,
setlocale (category, name);
if (strstr (setlocale (category, NULL), name) == NULL)
{
- g_print ("Unavailable '%s' locale\n", name);
+ g_test_message ("Unavailable '%s' locale", name);
g_test_skip ("required locale not available, skipping tests");
return FALSE;
}
diff --git a/glib/tests/getpwuid-preload.c b/glib/tests/getpwuid-preload.c
index f4197e690..0c005a8b4 100644
--- a/glib/tests/getpwuid-preload.c
+++ b/glib/tests/getpwuid-preload.c
@@ -25,23 +25,67 @@
#include <sys/types.h>
#include <unistd.h>
-static struct passwd my_pw;
+#ifndef __APPLE__
+
+#define GET_REAL(func) \
+ (real_##func = dlsym (RTLD_NEXT, #func))
+
+#define DEFINE_WRAPPER(return_type, func, argument_list) \
+ static return_type (* real_##func) argument_list; \
+ return_type func argument_list
+
+#else
+
+#define GET_REAL(func) \
+ func
+
+/* https://opensource.apple.com/source/dyld/dyld-852.2/include/mach-o/dyld-interposing.h */
+#define DYLD_INTERPOSE(_replacement,_replacee) \
+ __attribute__((used)) static struct{ const void* replacement; const void* replacee; } _interpose_##_replacee \
+ __attribute__ ((section ("__DATA,__interpose"))) = { (const void*)(unsigned long)&_replacement, (const void*)(unsigned long)&_replacee };
+
+#define DEFINE_WRAPPER(return_type, func, argument_list) \
+ static return_type wrap_##func argument_list; \
+ DYLD_INTERPOSE(wrap_##func, func) \
+ static return_type wrap_##func argument_list
+
+#endif /* __APPLE__ */
/* This is used in gutils.c used to make sure utility functions
* handling user information do not crash on bad data (for example
* caused by getpwuid returning some NULL elements.
*/
-struct passwd *
-getpwuid (uid_t uid)
-{
- static struct passwd *(*real_getpwuid) (uid_t);
- struct passwd *pw;
- if (real_getpwuid == NULL)
- real_getpwuid = dlsym (RTLD_NEXT, "getpwuid");
+#undef getpwuid
- pw = real_getpwuid (uid);
+static struct passwd my_pw;
+
+DEFINE_WRAPPER (struct passwd *, getpwuid, (uid_t uid))
+{
+ struct passwd *pw = GET_REAL (getpwuid) (uid);
my_pw = *pw;
my_pw.pw_name = NULL;
return &my_pw;
}
+
+DEFINE_WRAPPER (int, getpwnam_r, (const char *name,
+ struct passwd *pwd,
+ char buf[],
+ size_t buflen,
+ struct passwd **result))
+{
+ int code = GET_REAL (getpwnam_r) (name, pwd, buf, buflen, result);
+ pwd->pw_name = NULL;
+ return code;
+}
+
+DEFINE_WRAPPER (int, getpwuid_r, (uid_t uid,
+ struct passwd *restrict pwd,
+ char buf[],
+ size_t buflen,
+ struct passwd **result))
+{
+ int code = GET_REAL (getpwuid_r) (uid, pwd, buf, buflen, result);
+ pwd->pw_name = NULL;
+ return code;
+}
diff --git a/glib/tests/gpoll.c b/glib/tests/gpoll.c
index de296ca5f..ec3dd6999 100644
--- a/glib/tests/gpoll.c
+++ b/glib/tests/gpoll.c
@@ -204,11 +204,11 @@ print_buckets (gint buckets[],
for (i = 0; i < count; i++)
if (i < count - 1)
- g_print ("%-4lld-%4lld|", i == 0 ? 0 : bucket_limits[i - 1], bucket_limits[i] - 1);
+ g_printerr ("%-4lld-%4lld|", i == 0 ? 0 : bucket_limits[i - 1], bucket_limits[i] - 1);
else
- g_print (" >= %-4lld|", bucket_limits[i - 1]);
+ g_printerr (" >= %-4lld|", bucket_limits[i - 1]);
- g_print ("\n");
+ g_printerr ("\n");
for (i = 0; i < count; i++)
{
@@ -225,17 +225,17 @@ print_buckets (gint buckets[],
len = 4;
padding = 9 - len;
for (j = 0; j < padding / 2; j++)
- g_print (" ");
+ g_printerr (" ");
if (buckets[i] != 0)
- g_print ("%*d", len, buckets[i]);
+ g_printerr ("%*d", len, buckets[i]);
else
- g_print (" ");
+ g_printerr (" ");
for (j = padding / 2; j < padding; j++)
- g_print (" ");
- g_print (" ");
+ g_printerr (" ");
+ g_printerr (" ");
}
- g_print ("\n\n");
+ g_printerr ("\n\n");
}
static void
@@ -281,7 +281,7 @@ test_gpoll (void)
}
times_avg /= NUM_POLLEES;
- g_print ("\nempty poll time:\n%4lldns - %4lldns, average %4lldns\n", times_min, times_max, times_avg);
+ g_printerr ("\nempty poll time:\n%4lldns - %4lldns, average %4lldns\n", times_min, times_max, times_avg);
print_buckets (buckets, bucket_limits, BUCKET_COUNT);
times_avg = 0;
@@ -336,7 +336,7 @@ test_gpoll (void)
}
times_avg /= NUM_POLLEES;
- g_print ("1-socket + msg poll time:\n%4lldns - %4lldns, average %4lldns\n", times_min, times_max, times_avg);
+ g_printerr ("1-socket + msg poll time:\n%4lldns - %4lldns, average %4lldns\n", times_min, times_max, times_avg);
print_buckets (buckets, bucket_limits, BUCKET_COUNT);
times_avg = 0;
@@ -384,7 +384,7 @@ test_gpoll (void)
}
times_avg /= NUM_POLLEES;
- g_print ("1-socket poll time:\n%4lldns - %4lldns, average %4lldns\n", times_min, times_max, times_avg);
+ g_printerr ("1-socket poll time:\n%4lldns - %4lldns, average %4lldns\n", times_min, times_max, times_avg);
print_buckets (buckets, bucket_limits, BUCKET_COUNT);
times_avg = 0;
@@ -433,7 +433,7 @@ test_gpoll (void)
}
times_avg /= NUM_POLLEES;
- g_print ("half-socket poll time:\n%4lldns - %4lldns, average %4lldns\n", times_min, times_max, times_avg);
+ g_printerr ("half-socket poll time:\n%4lldns - %4lldns, average %4lldns\n", times_min, times_max, times_avg);
print_buckets (buckets, bucket_limits, BUCKET_COUNT);
times_avg = 0;
@@ -491,7 +491,7 @@ test_gpoll (void)
}
times_avg /= NUM_POLLEES;
- g_print ("half-socket + msg poll time:\n%4lldns - %4lldns, average %4lldns\n", times_min, times_max, times_avg);
+ g_printerr ("half-socket + msg poll time:\n%4lldns - %4lldns, average %4lldns\n", times_min, times_max, times_avg);
print_buckets (buckets, bucket_limits, BUCKET_COUNT);
times_avg = 0;
@@ -540,7 +540,7 @@ test_gpoll (void)
}
times_avg /= NUM_POLLEES;
- g_print ("%d-socket poll time: \n%4lldns - %4lldns, average %4lldns\n", NUM_POLLEES, times_min, times_max, times_avg);
+ g_printerr ("%d-socket poll time: \n%4lldns - %4lldns, average %4lldns\n", NUM_POLLEES, times_min, times_max, times_avg);
print_buckets (buckets, bucket_limits, BUCKET_COUNT);
activatable = 0;
@@ -599,7 +599,7 @@ test_gpoll (void)
}
times_avg /= NUM_POLLEES;
- g_print ("variable socket number + msg poll time: \n%4lldns - %4lldns, average %4lldns\n", times_min, times_max, times_avg);
+ g_printerr ("variable socket number + msg poll time: \n%4lldns - %4lldns, average %4lldns\n", times_min, times_max, times_avg);
print_buckets (buckets, bucket_limits, BUCKET_COUNT);
cleanup_sockets (sockets, opp_sockets, NUM_POLLEES);
diff --git a/glib/tests/gutils-user-database.c b/glib/tests/gutils-user-database.c
index e3dec640d..1970a3a04 100644
--- a/glib/tests/gutils-user-database.c
+++ b/glib/tests/gutils-user-database.c
@@ -27,10 +27,10 @@ test_get_user_database_entry (void)
const gchar *r = NULL;
r = g_get_user_name ();
- g_assert_nonnull (r);
+ g_assert_cmpstr (r, ==, "somebody");
r = g_get_real_name ();
- g_assert_nonnull (r);
+ g_assert_cmpstr (r, ==, "Unknown");
}
int
diff --git a/glib/tests/gvariant.c b/glib/tests/gvariant.c
index e4a2518aa..c8f13360c 100644
--- a/glib/tests/gvariant.c
+++ b/glib/tests/gvariant.c
@@ -1340,7 +1340,9 @@ align_malloc (gsize size)
gpointer mem;
#ifdef HAVE_POSIX_MEMALIGN
- if (posix_memalign (&mem, 8, size))
+ /* posix_memalign() requires the alignment to be a multiple of
+ * sizeof(void*), and a power of 2. */
+ if (posix_memalign (&mem, MAX (sizeof (void *), 8), size))
g_error ("posix_memalign failed");
#else
/* NOTE: there may be platforms that lack posix_memalign() and also
@@ -3805,7 +3807,7 @@ test_gv_byteswap (void)
# define native16(x) 0, x
# define swapped16(x) x, 0
#endif
- /* all kinds of of crazy randomised testing already performed on the
+ /* all kinds of crazy randomised testing already performed on the
* byteswapper in the /gvariant/serializer/byteswap test and all kinds
* of crazy randomised testing performed against the serializer
* normalisation functions in the /gvariant/serializer/fuzz/ tests.
@@ -4301,6 +4303,7 @@ test_parser_recursion_typedecls (void)
g_assert_null (value);
g_error_free (local_error);
g_free (silly_array);
+ g_free (silly_type);
}
static void
@@ -5040,10 +5043,21 @@ test_stack_dict_init (void)
GVariantIter iter;
gchar *key;
GVariant *value;
+ const gchar *str_value;
+
+ g_assert_true (g_variant_dict_lookup (&dict, "foo", "&s", &str_value, NULL));
+ g_assert_cmpstr (str_value, ==, "FOO");
+ g_assert_true (g_variant_dict_lookup (&dict, "bar", "&s", &str_value, NULL));
+ g_assert_cmpstr (str_value, ==, "BAR");
g_variant_dict_insert_value (&dict, "baz", g_variant_new_string ("BAZ"));
g_variant_dict_insert_value (&dict, "quux", g_variant_new_string ("QUUX"));
+ g_assert_true (g_variant_dict_lookup (&dict, "baz", "&s", &str_value, NULL));
+ g_assert_cmpstr (str_value, ==, "BAZ");
+ g_assert_true (g_variant_dict_lookup (&dict, "quux", "&s", &str_value, NULL));
+ g_assert_cmpstr (str_value, ==, "QUUX");
+
variant = g_variant_ref_sink (g_variant_dict_end (&dict));
g_assert_nonnull (variant);
g_assert_true (g_variant_type_equal (g_variant_get_type (variant),
diff --git a/glib/tests/gwakeuptest.c b/glib/tests/gwakeuptest.c
index b37fb43fc..ab36c858a 100644
--- a/glib/tests/gwakeuptest.c
+++ b/glib/tests/gwakeuptest.c
@@ -1,12 +1,5 @@
#include <glib.h>
#include <glib/gwakeup.h>
-#ifdef G_OS_UNIX
-#include <unistd.h>
-#endif
-
-#ifdef _WIN32
-static void alarm (int sec) { }
-#endif
static gboolean
check_signaled (GWakeup *wakeup)
@@ -32,9 +25,6 @@ test_semantics (void)
GWakeup *wakeup;
gint i;
- /* prevent the test from deadlocking */
- alarm (60);
-
wakeup = g_wakeup_new ();
g_assert (!check_signaled (wakeup));
@@ -66,9 +56,6 @@ test_semantics (void)
g_assert (!check_signaled (wakeup));
g_wakeup_free (wakeup);
-
- /* cancel the alarm */
- alarm (0);
}
struct token
@@ -213,9 +200,6 @@ test_threaded (void)
{
gint i;
- /* make sure we don't block forever */
- alarm (60);
-
/* simple mainloop test based on GWakeup.
*
* create a bunch of contexts and a thread to 'run' each one. create
@@ -252,9 +236,6 @@ test_threaded (void)
}
g_wakeup_free (last_token_wakeup);
-
- /* cancel alarm */
- alarm (0);
}
int
diff --git a/glib/tests/hash.c b/glib/tests/hash.c
index 32d357979..d08ddd57e 100644
--- a/glib/tests/hash.c
+++ b/glib/tests/hash.c
@@ -460,6 +460,19 @@ int64_hash_test (void)
}
static void
+int64_hash_collision_test (void)
+{
+ gint64 m;
+ gint64 n;
+
+ g_test_summary ("Check int64 Hash collisions caused by ignoring high word");
+
+ m = 722;
+ n = ((gint64) 2003 << 32) + 722;
+ g_assert_cmpuint (g_int64_hash (&m), !=, g_int64_hash (&n));
+}
+
+static void
double_hash_test (void)
{
gint i, rc;
@@ -489,6 +502,27 @@ double_hash_test (void)
}
static void
+double_hash_collision_test (void)
+{
+ gdouble m;
+ gdouble n;
+
+ g_test_summary ("Check double Hash collisions caused by int conversion " \
+ "and by numbers larger than 2^64-1 (G_MAXUINT64)");
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/2771");
+
+ /* Equal when directly converted to integers */
+ m = 0.1;
+ n = 0.2;
+ g_assert_cmpuint (g_double_hash (&m), !=, g_double_hash (&n));
+
+ /* Numbers larger than 2^64-1 (G_MAXUINT64) */
+ m = 1e100;
+ n = 1e200;
+ g_assert_cmpuint (g_double_hash (&m), !=, g_double_hash (&n));
+}
+
+static void
string_free (gpointer data)
{
GString *s = data;
@@ -1658,6 +1692,163 @@ test_set_to_strv (void)
g_strfreev (strv);
}
+static void
+test_set_get_keys_as_ptr_array (void)
+{
+ GHashTable *set;
+ GPtrArray *array;
+
+ set = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ g_hash_table_add (set, g_strdup ("xyz"));
+ g_hash_table_add (set, g_strdup ("xyz"));
+ g_hash_table_add (set, g_strdup ("abc"));
+
+ array = g_hash_table_get_keys_as_ptr_array (set);
+ g_hash_table_steal_all (set);
+ g_hash_table_unref (set);
+ g_ptr_array_set_free_func (array, g_free);
+
+ g_assert_cmpint (array->len, ==, 2);
+ g_ptr_array_add (array, NULL);
+
+ g_assert_true (
+ g_strv_equal ((const gchar * const[]) { "xyz", "abc", NULL },
+ (const gchar * const*) array->pdata) ||
+ g_strv_equal ((const gchar * const[]) { "abc", "xyz", NULL },
+ (const gchar * const*) array->pdata)
+ );
+
+ g_clear_pointer (&array, g_ptr_array_unref);
+}
+
+static void
+test_set_get_values_as_ptr_array (void)
+{
+ GHashTable *table;
+ GPtrArray *array;
+
+ table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ g_hash_table_insert (table, g_strdup ("xyz"), GUINT_TO_POINTER (0));
+ g_hash_table_insert (table, g_strdup ("xyz"), GUINT_TO_POINTER (1));
+ g_hash_table_insert (table, g_strdup ("abc"), GUINT_TO_POINTER (2));
+
+ array = g_hash_table_get_values_as_ptr_array (table);
+ g_clear_pointer (&table, g_hash_table_unref);
+
+ g_assert_cmpint (array->len, ==, 2);
+ g_assert_true (g_ptr_array_find (array, GUINT_TO_POINTER (1), NULL));
+ g_assert_true (g_ptr_array_find (array, GUINT_TO_POINTER (2), NULL));
+
+ g_assert_true (
+ memcmp ((gpointer []) { GUINT_TO_POINTER (1), GUINT_TO_POINTER (2) },
+ array->pdata, array->len * sizeof (gpointer)) == 0 ||
+ memcmp ((gpointer []) { GUINT_TO_POINTER (2), GUINT_TO_POINTER (1) },
+ array->pdata, array->len * sizeof (gpointer)) == 0
+ );
+
+ g_clear_pointer (&array, g_ptr_array_unref);
+}
+
+static void
+test_steal_all_keys (void)
+{
+ GHashTable *table;
+ GPtrArray *array;
+
+ table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ g_hash_table_insert (table, g_strdup ("xyz"), GUINT_TO_POINTER (0));
+ g_hash_table_insert (table, g_strdup ("xyz"), GUINT_TO_POINTER (1));
+ g_hash_table_insert (table, g_strdup ("abc"), GUINT_TO_POINTER (2));
+
+ array = g_hash_table_steal_all_keys (table);
+ g_assert_cmpuint (g_hash_table_size (table), ==, 0);
+
+ g_hash_table_insert (table, g_strdup ("do-not-leak-me"), GUINT_TO_POINTER (5));
+ g_clear_pointer (&table, g_hash_table_unref);
+
+ g_assert_cmpint (array->len, ==, 2);
+ g_ptr_array_add (array, NULL);
+
+ g_assert_true (
+ g_strv_equal ((const gchar * const[]) { "xyz", "abc", NULL },
+ (const gchar * const*) array->pdata) ||
+ g_strv_equal ((const gchar * const[]) { "abc", "xyz", NULL },
+ (const gchar * const*) array->pdata)
+ );
+
+ g_clear_pointer (&array, g_ptr_array_unref);
+
+ table = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_free);
+ g_hash_table_insert (table, GUINT_TO_POINTER (0), g_strdup ("xyz"));
+ g_hash_table_insert (table, GUINT_TO_POINTER (1), g_strdup ("xyz"));
+ g_hash_table_insert (table, GUINT_TO_POINTER (2), g_strdup ("abc"));
+
+ array = g_hash_table_steal_all_keys (table);
+ g_assert_cmpuint (g_hash_table_size (table), ==, 0);
+
+ g_hash_table_insert (table, GUINT_TO_POINTER (5), g_strdup ("do-not-leak-me"));
+ g_clear_pointer (&table, g_hash_table_unref);
+
+ g_assert_cmpint (array->len, ==, 3);
+ g_assert_true (g_ptr_array_find (array, GUINT_TO_POINTER (0), NULL));
+ g_assert_true (g_ptr_array_find (array, GUINT_TO_POINTER (1), NULL));
+ g_assert_true (g_ptr_array_find (array, GUINT_TO_POINTER (2), NULL));
+
+ g_clear_pointer (&array, g_ptr_array_unref);
+}
+
+static void
+test_steal_all_values (void)
+{
+ GHashTable *table;
+ GPtrArray *array;
+
+ table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ g_hash_table_insert (table, g_strdup ("xyz"), GUINT_TO_POINTER (0));
+ g_hash_table_insert (table, g_strdup ("xyz"), GUINT_TO_POINTER (1));
+ g_hash_table_insert (table, g_strdup ("abc"), GUINT_TO_POINTER (2));
+
+ array = g_hash_table_steal_all_values (table);
+ g_assert_cmpuint (g_hash_table_size (table), ==, 0);
+
+ g_hash_table_insert (table, g_strdup ("do-not-leak-me"), GUINT_TO_POINTER (5));
+ g_clear_pointer (&table, g_hash_table_unref);
+
+ g_assert_cmpint (array->len, ==, 2);
+ g_assert_true (g_ptr_array_find (array, GUINT_TO_POINTER (1), NULL));
+ g_assert_true (g_ptr_array_find (array, GUINT_TO_POINTER (2), NULL));
+
+ g_assert_true (
+ memcmp ((gpointer []) { GUINT_TO_POINTER (1), GUINT_TO_POINTER (2) },
+ array->pdata, array->len * sizeof (gpointer)) == 0 ||
+ memcmp ((gpointer []) { GUINT_TO_POINTER (2), GUINT_TO_POINTER (1) },
+ array->pdata, array->len * sizeof (gpointer)) == 0
+ );
+
+ g_clear_pointer (&array, g_ptr_array_unref);
+
+ table = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_free);
+ g_hash_table_insert (table, GUINT_TO_POINTER (0), g_strdup ("xyz"));
+ g_hash_table_insert (table, GUINT_TO_POINTER (1), g_strdup ("foo"));
+ g_hash_table_insert (table, GUINT_TO_POINTER (2), g_strdup ("abc"));
+
+ array = g_hash_table_steal_all_values (table);
+ g_assert_cmpuint (g_hash_table_size (table), ==, 0);
+
+ g_hash_table_insert (table, GUINT_TO_POINTER (5), g_strdup ("do-not-leak-me"));
+ g_clear_pointer (&table, g_hash_table_unref);
+
+ g_assert_cmpint (array->len, ==, 3);
+ g_assert_true (
+ g_ptr_array_find_with_equal_func (array, "xyz", g_str_equal, NULL));
+ g_assert_true (
+ g_ptr_array_find_with_equal_func (array, "foo", g_str_equal, NULL));
+ g_assert_true (
+ g_ptr_array_find_with_equal_func (array, "abc", g_str_equal, NULL));
+
+ g_clear_pointer (&array, g_ptr_array_unref);
+}
+
static gboolean
is_prime (guint p)
{
@@ -1715,7 +1906,9 @@ main (int argc, char *argv[])
g_test_add_func ("/hash/direct2", direct_hash_test2);
g_test_add_func ("/hash/int", int_hash_test);
g_test_add_func ("/hash/int64", int64_hash_test);
+ g_test_add_func ("/hash/int64/collisions", int64_hash_collision_test);
g_test_add_func ("/hash/double", double_hash_test);
+ g_test_add_func ("/hash/double/collisions", double_hash_collision_test);
g_test_add_func ("/hash/string", string_hash_test);
g_test_add_func ("/hash/set", set_hash_test);
g_test_add_func ("/hash/set-ref", set_ref_hash_test);
@@ -1728,6 +1921,8 @@ main (int argc, char *argv[])
g_test_add_func ("/hash/foreach-steal", test_foreach_steal);
g_test_add_func ("/hash/steal-extended", test_steal_extended);
g_test_add_func ("/hash/steal-extended/optional", test_steal_extended_optional);
+ g_test_add_func ("/hash/steal-all-keys", test_steal_all_keys);
+ g_test_add_func ("/hash/steal-all-values", test_steal_all_values);
g_test_add_func ("/hash/lookup-extended", test_lookup_extended);
g_test_add_func ("/hash/new-similar", test_new_similar);
@@ -1738,6 +1933,8 @@ main (int argc, char *argv[])
g_test_add_func ("/hash/iter-replace", test_iter_replace);
g_test_add_func ("/hash/set-insert-corruption", test_set_insert_corruption);
g_test_add_func ("/hash/set-to-strv", test_set_to_strv);
+ g_test_add_func ("/hash/get-keys-as-ptr-array", test_set_get_keys_as_ptr_array);
+ g_test_add_func ("/hash/get-values-as-ptr-array", test_set_get_values_as_ptr_array);
g_test_add_func ("/hash/primes", test_primes);
return g_test_run ();
diff --git a/glib/tests/hook.c b/glib/tests/hook.c
index dd9e333ca..5b9d5442b 100644
--- a/glib/tests/hook.c
+++ b/glib/tests/hook.c
@@ -1,6 +1,8 @@
/* Unit tests for hook lists
* Copyright (C) 2011 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/keyfile.c b/glib/tests/keyfile.c
index 3d72d9670..bc125c140 100644
--- a/glib/tests/keyfile.c
+++ b/glib/tests/keyfile.c
@@ -382,7 +382,9 @@ test_comments (void)
"key4 = value4\n"
"# group comment\n"
"# group comment, continued\n"
- "[group2]\n";
+ "[group2]\n\n"
+ "[group3]\n"
+ "[group4]\n";
const gchar *top_comment = " top comment\n top comment, continued";
const gchar *group_comment = " group comment\n group comment, continued";
@@ -427,6 +429,12 @@ test_comments (void)
check_name ("top comment", comment, top_comment, 0);
g_free (comment);
+ g_key_file_remove_comment (keyfile, NULL, NULL, &error);
+ check_no_error (&error);
+ comment = g_key_file_get_comment (keyfile, NULL, NULL, &error);
+ check_no_error (&error);
+ g_assert_null (comment);
+
comment = g_key_file_get_comment (keyfile, "group1", "key2", &error);
check_no_error (&error);
check_name ("key comment", comment, key_comment, 0);
@@ -448,12 +456,49 @@ test_comments (void)
check_name ("group comment", comment, group_comment, 0);
g_free (comment);
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/3047");
+
+ /* check if adding a key to group N preserve group comment of group N+1 */
+ g_key_file_set_string (keyfile, "group1", "key5", "value5");
+ comment = g_key_file_get_comment (keyfile, "group2", NULL, &error);
+ check_no_error (&error);
+ check_name ("group comment", comment, group_comment, 0);
+ g_free (comment);
+
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/104");
+
+ /* check if comments above another group than the first one are properly removed */
+ g_key_file_remove_comment (keyfile, "group2", NULL, &error);
+ check_no_error (&error);
+ comment = g_key_file_get_comment (keyfile, "group2", NULL, &error);
+ check_no_error (&error);
+ g_assert_null (comment);
+
comment = g_key_file_get_comment (keyfile, "group3", NULL, &error);
+ check_no_error (&error);
+ check_name ("group comment", comment, "", 0);
+ g_free (comment);
+
+ comment = g_key_file_get_comment (keyfile, "group4", NULL, &error);
+ check_no_error (&error);
+ g_assert_null (comment);
+
+ comment = g_key_file_get_comment (keyfile, "group5", NULL, &error);
check_error (&error,
G_KEY_FILE_ERROR,
G_KEY_FILE_ERROR_GROUP_NOT_FOUND);
g_assert_null (comment);
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/3047");
+
+ /* check if we don't add a blank line above new group if last value of preceding
+ * group was added via g_key_file_set_value() and contains line breaks */
+ g_key_file_set_value (keyfile, "group4", "key1", "value1\n\n# group comment");
+ g_key_file_set_string (keyfile, "group5", "key1", "value1");
+ comment = g_key_file_get_comment (keyfile, "group5", NULL, &error);
+ check_no_error (&error);
+ g_assert_null (comment);
+
g_key_file_free (keyfile);
}
@@ -535,16 +580,17 @@ test_string (void)
"3",
};
const gchar *data =
- "[valid]\n"
- "key1=\\s\\n\\t\\r\\\\\n"
- "key2=\"quoted\"\n"
- "key3='quoted'\n"
- "key4=\xe2\x89\xa0\xe2\x89\xa0\n"
- "key5= leading space\n"
- "key6=trailing space \n"
- "[invalid]\n"
- "key1=\\a\\b\\0800xff\n"
- "key2=blabla\\\n";
+ "[valid]\n"
+ "key1=\\s\\n\\t\\r\\\\\n"
+ "key2=\"quoted\"\n"
+ "key3='quoted'\n"
+ "key4=\xe2\x89\xa0\xe2\x89\xa0\n"
+ "key5= leading space\n"
+ "key6=trailing space \n"
+ "[invalid]\n"
+ "key1=\\a\\b\\0800xff\n"
+ "key2=blabla\\\n"
+ "key3=foo\\i\\\n";
keyfile = load_data (data, 0);
@@ -563,6 +609,10 @@ test_string (void)
check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_INVALID_VALUE);
g_free (value);
+ value = g_key_file_get_string (keyfile, "invalid", "key3", &error);
+ check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_INVALID_VALUE);
+ g_free (value);
+
g_key_file_set_string (keyfile, "inserted", "key1", "simple");
g_key_file_set_string (keyfile, "inserted", "key2", " leading space");
g_key_file_set_string (keyfile, "inserted", "key3", "\tleading tab");
@@ -1321,9 +1371,16 @@ test_reload_idempotency (void)
"[fifth]\n";
GKeyFile *keyfile;
GError *error = NULL;
- gchar *data1, *data2;
+ gchar *data1, *data2, *comment;
gsize len1, len2;
+ const gchar *key_comment = " A random comment in the first group";
+ const gchar *top_comment = " Top comment\n\n First comment";
+ const gchar *group_comment_1 = top_comment;
+ const gchar *group_comment_2 = " Second comment - one line";
+ const gchar *group_comment_3 = " Third comment - two lines\n Third comment - two lines";
+ const gchar *group_comment_4 = "\n";
+
g_test_bug ("https://bugzilla.gnome.org/show_bug.cgi?id=420686");
/* check that we only insert a single new line between groups */
@@ -1347,6 +1404,44 @@ test_reload_idempotency (void)
data2 = g_key_file_to_data (keyfile, &len2, &error);
g_assert_nonnull (data2);
+
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/2927");
+
+ /* check if comments are preserved on reload */
+ comment = g_key_file_get_comment (keyfile, "first", "anotherkey", &error);
+ check_no_error (&error);
+ g_assert_cmpstr (comment, ==, key_comment);
+ g_free (comment);
+
+ comment = g_key_file_get_comment (keyfile, NULL, NULL, &error);
+ check_no_error (&error);
+ g_assert_cmpstr (comment, ==, top_comment);
+ g_free (comment);
+
+ comment = g_key_file_get_comment (keyfile, "first", NULL, &error);
+ check_no_error (&error);
+ g_assert_cmpstr (comment, ==, group_comment_1);
+ g_free (comment);
+
+ comment = g_key_file_get_comment (keyfile, "second", NULL, &error);
+ check_no_error (&error);
+ g_assert_cmpstr (comment, ==, group_comment_2);
+ g_free (comment);
+
+ comment = g_key_file_get_comment (keyfile, "third", NULL, &error);
+ check_no_error (&error);
+ g_assert_cmpstr (comment, ==, group_comment_3);
+ g_free (comment);
+
+ comment = g_key_file_get_comment (keyfile, "fourth", NULL, &error);
+ check_no_error (&error);
+ g_assert_cmpstr (comment, ==, group_comment_4);
+ g_free (comment);
+
+ comment = g_key_file_get_comment (keyfile, "fifth", NULL, &error);
+ check_no_error (&error);
+ g_assert_null (comment);
+
g_key_file_free (keyfile);
g_assert_cmpstr (data1, ==, data2);
diff --git a/glib/tests/logging.c b/glib/tests/logging.c
index e58b405a2..ea9dcb825 100644
--- a/glib/tests/logging.c
+++ b/glib/tests/logging.c
@@ -3,6 +3,12 @@
#define G_LOG_USE_STRUCTURED 1
#include <glib.h>
+#ifdef G_OS_WIN32
+#define LINE_END "\r\n"
+#else
+#define LINE_END "\n"
+#endif
+
/* Test g_warn macros */
static void
test_warnings (void)
@@ -61,16 +67,45 @@ test_default_handler_error (void)
}
static void
+test_default_handler_error_stderr (void)
+{
+ g_log_writer_default_set_use_stderr (FALSE);
+ g_log_set_default_handler (g_log_default_handler, NULL);
+ g_error ("message1");
+ exit (0);
+}
+
+static void
+test_default_handler_critical_stderr (void)
+{
+ g_log_writer_default_set_use_stderr (TRUE);
+ g_log_set_default_handler (g_log_default_handler, NULL);
+ g_critical ("message2");
+ exit (0);
+}
+
+static void
test_default_handler_critical (void)
{
+ g_log_writer_default_set_use_stderr (FALSE);
g_log_set_default_handler (g_log_default_handler, NULL);
g_critical ("message2");
exit (0);
}
static void
+test_default_handler_warning_stderr (void)
+{
+ g_log_writer_default_set_use_stderr (TRUE);
+ g_log_set_default_handler (g_log_default_handler, NULL);
+ g_warning ("message3");
+ exit (0);
+}
+
+static void
test_default_handler_warning (void)
{
+ g_log_writer_default_set_use_stderr (FALSE);
g_log_set_default_handler (g_log_default_handler, NULL);
g_warning ("message3");
exit (0);
@@ -79,6 +114,16 @@ test_default_handler_warning (void)
static void
test_default_handler_message (void)
{
+ g_log_writer_default_set_use_stderr (FALSE);
+ g_log_set_default_handler (g_log_default_handler, NULL);
+ g_message ("message4");
+ exit (0);
+}
+
+static void
+test_default_handler_message_stderr (void)
+{
+ g_log_writer_default_set_use_stderr (TRUE);
g_log_set_default_handler (g_log_default_handler, NULL);
g_message ("message4");
exit (0);
@@ -87,6 +132,16 @@ test_default_handler_message (void)
static void
test_default_handler_info (void)
{
+ g_log_writer_default_set_use_stderr (FALSE);
+ g_log_set_default_handler (g_log_default_handler, NULL);
+ g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "message5");
+ exit (0);
+}
+
+static void
+test_default_handler_info_stderr (void)
+{
+ g_log_writer_default_set_use_stderr (TRUE);
g_log_set_default_handler (g_log_default_handler, NULL);
g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "message5");
exit (0);
@@ -95,6 +150,7 @@ test_default_handler_info (void)
static void
test_default_handler_bar_info (void)
{
+ g_log_writer_default_set_use_stderr (FALSE);
g_log_set_default_handler (g_log_default_handler, NULL);
g_setenv ("G_MESSAGES_DEBUG", "foo bar baz", TRUE);
@@ -106,6 +162,7 @@ test_default_handler_bar_info (void)
static void
test_default_handler_baz_debug (void)
{
+ g_log_writer_default_set_use_stderr (FALSE);
g_log_set_default_handler (g_log_default_handler, NULL);
g_setenv ("G_MESSAGES_DEBUG", "foo bar baz", TRUE);
@@ -117,6 +174,7 @@ test_default_handler_baz_debug (void)
static void
test_default_handler_debug (void)
{
+ g_log_writer_default_set_use_stderr (FALSE);
g_log_set_default_handler (g_log_default_handler, NULL);
g_setenv ("G_MESSAGES_DEBUG", "all", TRUE);
@@ -192,6 +250,7 @@ test_default_handler_would_drop (void)
static void
test_default_handler_0x400 (void)
{
+ g_log_writer_default_set_use_stderr (FALSE);
g_log_set_default_handler (g_log_default_handler, NULL);
g_log (G_LOG_DOMAIN, 1<<10, "message7");
exit (0);
@@ -205,26 +264,51 @@ test_default_handler (void)
g_test_trap_assert_failed ();
g_test_trap_assert_stderr ("*ERROR*message1*");
+ g_test_trap_subprocess ("/logging/default-handler/subprocess/error-stderr", 0,
+ G_TEST_SUBPROCESS_DEFAULT);
+ g_test_trap_assert_failed ();
+ g_test_trap_assert_stderr ("*ERROR*message1*");
+
g_test_trap_subprocess ("/logging/default-handler/subprocess/critical", 0,
G_TEST_SUBPROCESS_DEFAULT);
g_test_trap_assert_failed ();
g_test_trap_assert_stderr ("*CRITICAL*message2*");
+ g_test_trap_subprocess ("/logging/default-handler/subprocess/critical-stderr", 0,
+ G_TEST_SUBPROCESS_DEFAULT);
+ g_test_trap_assert_failed ();
+ g_test_trap_assert_stderr ("*CRITICAL*message2*");
+
g_test_trap_subprocess ("/logging/default-handler/subprocess/warning", 0,
G_TEST_SUBPROCESS_DEFAULT);
g_test_trap_assert_failed ();
g_test_trap_assert_stderr ("*WARNING*message3*");
+ g_test_trap_subprocess ("/logging/default-handler/subprocess/warning-stderr", 0,
+ G_TEST_SUBPROCESS_DEFAULT);
+ g_test_trap_assert_failed ();
+ g_test_trap_assert_stderr ("*WARNING*message3*");
+
g_test_trap_subprocess ("/logging/default-handler/subprocess/message", 0,
G_TEST_SUBPROCESS_DEFAULT);
g_test_trap_assert_passed ();
g_test_trap_assert_stderr ("*Message*message4*");
+ g_test_trap_subprocess ("/logging/default-handler/subprocess/message-stderr", 0,
+ G_TEST_SUBPROCESS_DEFAULT);
+ g_test_trap_assert_passed ();
+ g_test_trap_assert_stderr ("*Message*message4*");
+
g_test_trap_subprocess ("/logging/default-handler/subprocess/info", 0,
G_TEST_SUBPROCESS_DEFAULT);
g_test_trap_assert_passed ();
g_test_trap_assert_stdout_unmatched ("*INFO*message5*");
+ g_test_trap_subprocess ("/logging/default-handler/subprocess/info-stderr", 0,
+ G_TEST_SUBPROCESS_DEFAULT);
+ g_test_trap_assert_passed ();
+ g_test_trap_assert_stderr_unmatched ("*INFO*message5*");
+
g_test_trap_subprocess ("/logging/default-handler/subprocess/bar-info", 0,
G_TEST_SUBPROCESS_DEFAULT);
g_test_trap_assert_passed ();
@@ -284,13 +368,27 @@ test_print_handler (void)
GPrintFunc old_print_handler;
old_print_handler = g_set_print_handler (my_print_handler);
- g_assert (old_print_handler == NULL);
+ g_assert_nonnull (old_print_handler);
my_print_count = 0;
g_print ("bu ba");
g_assert_cmpint (my_print_count, ==, 1);
- g_set_print_handler (NULL);
+ if (g_test_subprocess ())
+ {
+ g_set_print_handler (NULL);
+ old_print_handler ("default handler\n");
+ g_print ("bu ba\n");
+ return;
+ }
+
+ g_set_print_handler (old_print_handler);
+ g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
+ g_test_trap_assert_stdout ("*default handler" LINE_END "*");
+ g_test_trap_assert_stdout ("*bu ba" LINE_END "*");
+ g_test_trap_assert_stdout_unmatched ("*# default handler" LINE_END "*");
+ g_test_trap_assert_stdout_unmatched ("*# bu ba" LINE_END "*");
+ g_test_trap_has_passed ();
}
static void
@@ -299,13 +397,25 @@ test_printerr_handler (void)
GPrintFunc old_printerr_handler;
old_printerr_handler = g_set_printerr_handler (my_print_handler);
- g_assert (old_printerr_handler == NULL);
+ g_assert_nonnull (old_printerr_handler);
my_print_count = 0;
g_printerr ("bu ba");
g_assert_cmpint (my_print_count, ==, 1);
- g_set_printerr_handler (NULL);
+ if (g_test_subprocess ())
+ {
+ g_set_printerr_handler (NULL);
+ old_printerr_handler ("default handler\n");
+ g_printerr ("bu ba\n");
+ return;
+ }
+
+ g_set_printerr_handler (old_printerr_handler);
+ g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
+ g_test_trap_assert_stderr ("*default handler" LINE_END "*");
+ g_test_trap_assert_stderr ("*bu ba" LINE_END "*");
+ g_test_trap_has_passed ();
}
static char *fail_str = "foo";
@@ -746,10 +856,15 @@ main (int argc, char *argv[])
g_test_add_func ("/logging/default-handler", test_default_handler);
g_test_add_func ("/logging/default-handler/subprocess/error", test_default_handler_error);
+ g_test_add_func ("/logging/default-handler/subprocess/error-stderr", test_default_handler_error_stderr);
g_test_add_func ("/logging/default-handler/subprocess/critical", test_default_handler_critical);
+ g_test_add_func ("/logging/default-handler/subprocess/critical-stderr", test_default_handler_critical_stderr);
g_test_add_func ("/logging/default-handler/subprocess/warning", test_default_handler_warning);
+ g_test_add_func ("/logging/default-handler/subprocess/warning-stderr", test_default_handler_warning_stderr);
g_test_add_func ("/logging/default-handler/subprocess/message", test_default_handler_message);
+ g_test_add_func ("/logging/default-handler/subprocess/message-stderr", test_default_handler_message_stderr);
g_test_add_func ("/logging/default-handler/subprocess/info", test_default_handler_info);
+ g_test_add_func ("/logging/default-handler/subprocess/info-stderr", test_default_handler_info_stderr);
g_test_add_func ("/logging/default-handler/subprocess/bar-info", test_default_handler_bar_info);
g_test_add_func ("/logging/default-handler/subprocess/baz-debug", test_default_handler_baz_debug);
g_test_add_func ("/logging/default-handler/subprocess/debug", test_default_handler_debug);
diff --git a/glib/tests/macros.c b/glib/tests/macros.c
index efe632b52..89d74d3a5 100644
--- a/glib/tests/macros.c
+++ b/glib/tests/macros.c
@@ -22,6 +22,87 @@
#include <glib.h>
+#ifdef G_CXX_STD_VERSION
+#error G_CXX_STD_VERSION should be undefined in C programs
+#endif
+
+G_STATIC_ASSERT (!G_CXX_STD_CHECK_VERSION (98));
+G_STATIC_ASSERT (G_C_STD_CHECK_VERSION (89));
+G_STATIC_ASSERT (G_C_STD_CHECK_VERSION (90));
+
+#if G_C_STD_VERSION >= 199000L
+ G_STATIC_ASSERT (G_C_STD_CHECK_VERSION (89));
+ G_STATIC_ASSERT (G_C_STD_CHECK_VERSION (90));
+ G_STATIC_ASSERT (G_C_STD_CHECK_VERSION (199000L));
+#endif
+
+#if G_C_STD_VERSION == 198900L
+ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (99));
+ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (199901L));
+ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (11));
+ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (201112L));
+ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (17));
+ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (201710L));
+#endif
+
+#if G_C_STD_VERSION >= 199901L
+ G_STATIC_ASSERT (G_C_STD_CHECK_VERSION (99));
+ G_STATIC_ASSERT (G_C_STD_CHECK_VERSION (199901L));
+#endif
+
+#if G_C_STD_VERSION == 199901L
+ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (11));
+ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (201112L));
+ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (17));
+ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (201710L));
+#endif
+
+#if G_C_STD_VERSION >= 201112L
+ G_STATIC_ASSERT (G_C_STD_CHECK_VERSION (11));
+ G_STATIC_ASSERT (G_C_STD_CHECK_VERSION (201112L));
+#endif
+
+#if G_C_STD_VERSION == 201112L
+ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (17));
+ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (201710L));
+#endif
+
+#if G_C_STD_VERSION >= 201710L
+ G_STATIC_ASSERT (G_C_STD_CHECK_VERSION (17));
+ G_STATIC_ASSERT (G_C_STD_CHECK_VERSION (201710L));
+#endif
+
+#if G_C_STD_VERSION == 201710L
+ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (23));
+ G_STATIC_ASSERT (!G_C_STD_CHECK_VERSION (202300L));
+#endif
+
+#ifdef _G_EXPECTED_C_STANDARD
+static void
+test_c_standard (void)
+{
+ guint64 std_version = 0;
+
+ if (!g_ascii_string_to_unsigned (_G_EXPECTED_C_STANDARD, 10, 0, G_MAXUINT64,
+ &std_version, NULL))
+ {
+ g_test_skip ("Expected standard value is non-numeric: "
+ _G_EXPECTED_C_STANDARD);
+ return;
+ }
+
+ g_assert_true (G_C_STD_CHECK_VERSION (std_version));
+
+ if (std_version > 80 && std_version < 99)
+ std_version = 90;
+
+ if (std_version >= 90)
+ g_assert_cmpuint (G_C_STD_VERSION, >=, (std_version + 1900) * 100);
+ else
+ g_assert_cmpuint (G_C_STD_VERSION, >=, (std_version + 2000) * 100);
+}
+#endif
+
/* Test that G_STATIC_ASSERT_EXPR can be used as an expression */
static void
test_assert_static (void)
@@ -65,6 +146,10 @@ main (int argc,
{
g_test_init (&argc, &argv, NULL);
+#ifdef _G_EXPECTED_C_STANDARD
+ g_test_add_func ("/C/standard-" _G_EXPECTED_C_STANDARD, test_c_standard);
+#endif
+
g_test_add_func ("/alignof/fallback", test_alignof_fallback);
g_test_add_func ("/assert/static", test_assert_static);
g_test_add_func ("/struct/sizeof_member", test_struct_sizeof_member);
diff --git a/glib/tests/mainloop.c b/glib/tests/mainloop.c
index c18da94fc..152e74b87 100644
--- a/glib/tests/mainloop.c
+++ b/glib/tests/mainloop.c
@@ -2,6 +2,8 @@
* Copyright (C) 2011 Red Hat, Inc
* Author: Matthias Clasen
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -35,6 +37,8 @@ cb (gpointer data)
static gboolean
prepare (GSource *source, gint *time)
{
+ g_assert_nonnull (time);
+ g_assert_cmpint (*time, ==, -1);
return FALSE;
}
static gboolean
@@ -1167,6 +1171,75 @@ test_unref_while_pending (void)
g_assert_cmpint (n_finalized, ==, 1);
}
+typedef struct {
+ GSource parent;
+ GMainLoop *loop;
+} LoopedSource;
+
+static gboolean
+prepare_loop_run (GSource *source, gint *time)
+{
+ LoopedSource *looped_source = (LoopedSource*) source;
+ *time = 0;
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
+ "*called recursively from within a source's check() "
+ "or prepare() member*");
+ g_main_loop_run (looped_source->loop);
+ g_test_assert_expected_messages ();
+
+ return FALSE;
+}
+
+static gboolean
+check_loop_run (GSource *source)
+{
+ LoopedSource *looped_source = (LoopedSource*) source;
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
+ "*called recursively from within a source's check() "
+ "or prepare() member*");
+ g_main_loop_run (looped_source->loop);
+ g_test_assert_expected_messages ();
+
+ return TRUE;
+}
+
+static gboolean
+dispatch_loop_run (GSource *source,
+ GSourceFunc callback,
+ gpointer user_data)
+{
+ LoopedSource *looped_source = (LoopedSource*) source;
+
+ g_main_loop_quit (looped_source->loop);
+
+ return FALSE;
+}
+
+static void
+test_recursive_loop_child_sources (void)
+{
+ GMainLoop *loop;
+ GSource *source;
+ GSourceFuncs loop_run_funcs = {
+ prepare_loop_run, check_loop_run, dispatch_loop_run, NULL, NULL, NULL,
+ };
+
+ loop = g_main_loop_new (NULL, FALSE);
+
+ source = g_source_new (&loop_run_funcs, sizeof (LoopedSource));
+ ((LoopedSource*)source)->loop = loop;
+
+ g_source_attach (source, NULL);
+
+ g_main_loop_run (loop);
+ g_source_unref (source);
+
+ g_main_loop_unref (loop);
+}
+
+
#ifdef G_OS_UNIX
#include <glib-unix.h>
@@ -1700,10 +1773,6 @@ threadf (gpointer data)
static void
test_mainloop_wait (void)
{
-#ifdef _GLIB_ADDRESS_SANITIZER
- (void) threadf;
- g_test_incomplete ("FIXME: Leaks a GMainLoop, see glib#2307");
-#else
GMainContext *context;
GThread *t1, *t2;
@@ -1716,7 +1785,6 @@ test_mainloop_wait (void)
g_thread_join (t2);
g_main_context_unref (context);
-#endif
}
#endif
@@ -2443,6 +2511,7 @@ main (int argc, char *argv[])
g_test_add_func ("/mainloop/invoke", test_invoke);
g_test_add_func ("/mainloop/child_sources", test_child_sources);
g_test_add_func ("/mainloop/recursive_child_sources", test_recursive_child_sources);
+ g_test_add_func ("/mainloop/recursive_loop_child_sources", test_recursive_loop_child_sources);
g_test_add_func ("/mainloop/swapping_child_sources", test_swapping_child_sources);
g_test_add_func ("/mainloop/blocked_child_sources", test_blocked_child_sources);
g_test_add_func ("/mainloop/source_time", test_source_time);
diff --git a/glib/tests/markup-example.c b/glib/tests/markup-example.c
new file mode 100644
index 000000000..63e1a481c
--- /dev/null
+++ b/glib/tests/markup-example.c
@@ -0,0 +1,168 @@
+/* Copyright (C) 2008 Luc Pionchon
+ * Copyright (C) 2012 David King
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <glib.h>
+
+static void foo_parser_start_element (GMarkupParseContext *context,
+ const gchar *element_name,
+ const gchar **attribute_names,
+ const gchar **attribute_values,
+ gpointer user_data,
+ GError **error);
+static void foo_parser_end_element (GMarkupParseContext *context,
+ const gchar *element_name,
+ gpointer user_data,
+ GError **error);
+static void foo_parser_characters (GMarkupParseContext *context,
+ const gchar *text,
+ gsize text_len,
+ gpointer user_data,
+ GError **error);
+static void foo_parser_passthrough (GMarkupParseContext *context,
+ const gchar *passthrough_text,
+ gsize text_len,
+ gpointer user_data,
+ GError **error);
+static void foo_parser_error (GMarkupParseContext *context,
+ GError *error,
+ gpointer user_data);
+
+/*
+ * Parser
+ */
+static const GMarkupParser foo_xml_parser = {
+ foo_parser_start_element,
+ foo_parser_end_element,
+ foo_parser_characters,
+ foo_parser_passthrough,
+ foo_parser_error
+};
+
+/*
+ * Called for opening tags like <foo bar="baz">
+ */
+static void
+foo_parser_start_element (GMarkupParseContext *context,
+ const gchar *element_name,
+ const gchar **attribute_names,
+ const gchar **attribute_values,
+ gpointer user_data,
+ GError **error)
+{
+ g_print ("element: <%s>\n", element_name);
+
+ for (gsize i = 0; attribute_names[i]; i++)
+ {
+ g_print ("attribute: %s = \"%s\"\n", attribute_names[i],
+ attribute_values[i]);
+ }
+}
+
+/*
+ * Called for closing tags like </foo>
+ */
+static void
+foo_parser_end_element (GMarkupParseContext *context,
+ const gchar *element_name,
+ gpointer user_data,
+ GError **error)
+{
+ g_print ("element: </%s>\n", element_name);
+}
+
+/*
+ * Called for character data. Text is not nul-terminated
+ */
+static void
+foo_parser_characters (GMarkupParseContext *context,
+ const gchar *text,
+ gsize text_len,
+ gpointer user_data,
+ GError **error)
+{
+ g_print ("text: [%s]\n", text);
+}
+
+/*
+ * Called for strings that should be re-saved verbatim in this same
+ * position, but are not otherwise interpretable. At the moment this
+ * includes comments and processing instructions. Text is not
+ * nul-terminated.
+ */
+static void
+foo_parser_passthrough (GMarkupParseContext *context,
+ const gchar *passthrough_text,
+ gsize text_len,
+ gpointer user_data,
+ GError **error)
+{
+ g_print ("passthrough: %s\n", passthrough_text);
+}
+
+/*
+ * Called when any parsing method encounters an error. The GError should not be
+ * freed.
+ */
+static void
+foo_parser_error (GMarkupParseContext *context,
+ GError *error,
+ gpointer user_data)
+{
+ g_printerr ("ERROR: %s\n", error->message);
+}
+
+int
+main (void)
+{
+ GMarkupParseContext *context;
+ gboolean success = FALSE;
+ glong len;
+
+ /*
+ * Example XML for the parser.
+ */
+ const gchar foo_xml_example[] =
+ "<foo bar='baz' bir='boz'>"
+ " <bar>bar text 1</bar> "
+ " <bar>bar text 2</bar> "
+ " foo text "
+ "<!-- nothing --> "
+ "</foo> ";
+
+ len = g_utf8_strlen (foo_xml_example, -1);
+ g_print ("Parsing: %s\n", foo_xml_example);
+ g_print ("(%ld UTF-8 characters)\n", len);
+
+ context = g_markup_parse_context_new (&foo_xml_parser, G_MARKUP_DEFAULT_FLAGS, NULL, NULL);
+
+ success = g_markup_parse_context_parse (context, foo_xml_example, len, NULL);
+
+ g_markup_parse_context_free (context);
+
+ if (success)
+ {
+ g_print ("DONE\n");
+ return 0;
+ }
+ else
+ {
+ g_printerr ("ERROR\n");
+ return 1;
+ }
+}
diff --git a/glib/tests/markup-subparser.c b/glib/tests/markup-subparser.c
index e2e94ea90..626b4274d 100644
--- a/glib/tests/markup-subparser.c
+++ b/glib/tests/markup-subparser.c
@@ -83,9 +83,7 @@ subparser_end (GMarkupParseContext *ctx,
char *result;
string = g_markup_parse_context_pop (ctx);
- result = string->str;
-
- g_string_free (string, FALSE);
+ result = g_string_free_and_steal (g_steal_pointer (&string));
strings_allocated--;
if (result == NULL || result[0] == '\0')
@@ -156,9 +154,7 @@ replay_parser_end (GMarkupParseContext *ctx,
return NULL;
}
- result = string->str;
-
- g_string_free (string, FALSE);
+ result = g_string_free_and_steal (g_steal_pointer (&string));
strings_allocated--;
if (result == NULL || result[0] == '\0')
diff --git a/glib/tests/markup.c b/glib/tests/markup.c
index f0f3cfe0b..8533f0619 100644
--- a/glib/tests/markup.c
+++ b/glib/tests/markup.c
@@ -1,6 +1,8 @@
/* Unit tests for GMarkup
* Copyright (C) 2013 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/max-version.c b/glib/tests/max-version.c
new file mode 100644
index 000000000..3b27adb2f
--- /dev/null
+++ b/glib/tests/max-version.c
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2022 Collabora Ltd.
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GLIB_VERSION_MAX_ALLOWED
+/* This is the oldest version macro available */
+#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_26
+#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_26
+#endif
+
+/* All the headers that can validly be included in third-party code */
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <glib/gprintf.h>
+#include <glib/gstdio.h>
+
+#ifdef G_OS_UNIX
+#include <glib-unix.h>
+#endif
+
+static void
+nothing (void)
+{
+ /* This doesn't really do anything: the real "test" is at compile time. */
+}
+
+int
+main (int argc,
+ char *argv[])
+{
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_func ("/max-version/tested-at-compile-time", nothing);
+ return g_test_run ();
+}
diff --git a/glib/tests/mem-overflow.c b/glib/tests/mem-overflow.c
index 66a005684..f19534102 100644
--- a/glib/tests/mem-overflow.c
+++ b/glib/tests/mem-overflow.c
@@ -1,6 +1,8 @@
/* Unit tests for g
* Copyright (C) 2010 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/memchunks.c b/glib/tests/memchunks.c
deleted file mode 100644
index f574ed8b0..000000000
--- a/glib/tests/memchunks.c
+++ /dev/null
@@ -1,603 +0,0 @@
-/* GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library 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.
- *
- * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/*
- * Modified by the GLib Team and others 1997-2000. See the AUTHORS
- * file for a list of people on the GLib Team. See the ChangeLog
- * files for a list of changes. These files are distributed with
- * GLib at ftp://ftp.gtk.org/pub/gtk/.
- */
-
-/*
- * MT safe
- */
-
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-
-#include "glib.h"
-
-/* notes on macros:
- * if ENABLE_GC_FRIENDLY is defined, freed memory should be 0-wiped.
- */
-
-#define MEM_PROFILE_TABLE_SIZE 4096
-
-#define MEM_AREA_SIZE 4L
-
-static guint mem_chunk_recursion = 0;
-# define MEM_CHUNK_ROUTINE_COUNT() (mem_chunk_recursion)
-# define ENTER_MEM_CHUNK_ROUTINE() (mem_chunk_recursion = MEM_CHUNK_ROUTINE_COUNT () + 1)
-# define LEAVE_MEM_CHUNK_ROUTINE() (mem_chunk_recursion = MEM_CHUNK_ROUTINE_COUNT () - 1)
-
-/* --- old memchunk prototypes --- */
-GMemChunk* old_mem_chunk_new (const gchar *name,
- gulong atom_size,
- gulong area_size,
- gint type);
-void old_mem_chunk_destroy (GMemChunk *mem_chunk);
-gpointer old_mem_chunk_alloc (GMemChunk *mem_chunk);
-gpointer old_mem_chunk_alloc0 (GMemChunk *mem_chunk);
-void old_mem_chunk_free (GMemChunk *mem_chunk,
- gpointer mem);
-void old_mem_chunk_clean (GMemChunk *mem_chunk);
-void old_mem_chunk_reset (GMemChunk *mem_chunk);
-void old_mem_chunk_print (GMemChunk *mem_chunk);
-void old_mem_chunk_info (void);
-
-
-/* --- MemChunks --- */
-#ifndef G_ALLOC_AND_FREE
-typedef struct _GAllocator GAllocator;
-typedef struct _GMemChunk GMemChunk;
-#define G_ALLOC_ONLY 1
-#define G_ALLOC_AND_FREE 2
-#endif
-
-typedef struct _GFreeAtom GFreeAtom;
-typedef struct _GMemArea GMemArea;
-
-struct _GFreeAtom
-{
- GFreeAtom *next;
-};
-
-struct _GMemArea
-{
- GMemArea *next; /* the next mem area */
- GMemArea *prev; /* the previous mem area */
- gulong index; /* the current index into the "mem" array */
- gulong free; /* the number of free bytes in this mem area */
- gulong allocated; /* the number of atoms allocated from this area */
- gulong mark; /* is this mem area marked for deletion */
- gchar mem[MEM_AREA_SIZE]; /* the mem array from which atoms get allocated
- * the actual size of this array is determined by
- * the mem chunk "area_size". ANSI says that it
- * must be declared to be the maximum size it
- * can possibly be (even though the actual size
- * may be less).
- */
-};
-
-struct _GMemChunk
-{
- const gchar *name; /* name of this MemChunk...used for debugging output */
- gint type; /* the type of MemChunk: ALLOC_ONLY or ALLOC_AND_FREE */
- gint num_mem_areas; /* the number of memory areas */
- gint num_marked_areas; /* the number of areas marked for deletion */
- guint atom_size; /* the size of an atom */
- gulong area_size; /* the size of a memory area */
- GMemArea *mem_area; /* the current memory area */
- GMemArea *mem_areas; /* a list of all the mem areas owned by this chunk */
- GMemArea *free_mem_area; /* the free area...which is about to be destroyed */
- GFreeAtom *free_atoms; /* the free atoms list */
- GTree *mem_tree; /* tree of mem areas sorted by memory address */
- GMemChunk *next; /* pointer to the next chunk */
- GMemChunk *prev; /* pointer to the previous chunk */
-};
-
-
-static gulong old_mem_chunk_compute_size (gulong size,
- gulong min_size) G_GNUC_CONST;
-static gint old_mem_chunk_area_compare (GMemArea *a,
- GMemArea *b);
-static gint old_mem_chunk_area_search (GMemArea *a,
- gchar *addr);
-
-/* here we can't use StaticMutexes, as they depend upon a working
- * g_malloc, the same holds true for StaticPrivate
- */
-static GMutex mem_chunks_lock;
-static GMemChunk *mem_chunks = NULL;
-
-GMemChunk*
-old_mem_chunk_new (const gchar *name,
- gulong atom_size,
- gulong area_size,
- gint type)
-{
- GMemChunk *mem_chunk;
- gulong rarea_size;
-
- g_return_val_if_fail (atom_size > 0, NULL);
- g_return_val_if_fail (area_size >= atom_size, NULL);
-
- ENTER_MEM_CHUNK_ROUTINE ();
-
- area_size = (area_size + atom_size - 1) / atom_size;
- area_size *= atom_size;
-
- mem_chunk = g_new (GMemChunk, 1);
- mem_chunk->name = name;
- mem_chunk->type = type;
- mem_chunk->num_mem_areas = 0;
- mem_chunk->num_marked_areas = 0;
- mem_chunk->mem_area = NULL;
- mem_chunk->free_mem_area = NULL;
- mem_chunk->free_atoms = NULL;
- mem_chunk->mem_tree = NULL;
- mem_chunk->mem_areas = NULL;
- mem_chunk->atom_size = atom_size;
-
- if (mem_chunk->type == G_ALLOC_AND_FREE)
- mem_chunk->mem_tree = g_tree_new ((GCompareFunc) old_mem_chunk_area_compare);
-
- if (mem_chunk->atom_size % G_MEM_ALIGN)
- mem_chunk->atom_size += G_MEM_ALIGN - (mem_chunk->atom_size % G_MEM_ALIGN);
-
- rarea_size = area_size + sizeof (GMemArea) - MEM_AREA_SIZE;
- rarea_size = old_mem_chunk_compute_size (rarea_size, atom_size + sizeof (GMemArea) - MEM_AREA_SIZE);
- mem_chunk->area_size = rarea_size - (sizeof (GMemArea) - MEM_AREA_SIZE);
-
- g_mutex_lock (&mem_chunks_lock);
- mem_chunk->next = mem_chunks;
- mem_chunk->prev = NULL;
- if (mem_chunks)
- mem_chunks->prev = mem_chunk;
- mem_chunks = mem_chunk;
- g_mutex_unlock (&mem_chunks_lock);
-
- LEAVE_MEM_CHUNK_ROUTINE ();
-
- return mem_chunk;
-}
-
-void
-old_mem_chunk_destroy (GMemChunk *mem_chunk)
-{
- GMemArea *mem_areas;
- GMemArea *temp_area;
-
- g_return_if_fail (mem_chunk != NULL);
-
- ENTER_MEM_CHUNK_ROUTINE ();
-
- mem_areas = mem_chunk->mem_areas;
- while (mem_areas)
- {
- temp_area = mem_areas;
- mem_areas = mem_areas->next;
- g_free (temp_area);
- }
-
- g_mutex_lock (&mem_chunks_lock);
- if (mem_chunk->next)
- mem_chunk->next->prev = mem_chunk->prev;
- if (mem_chunk->prev)
- mem_chunk->prev->next = mem_chunk->next;
-
- if (mem_chunk == mem_chunks)
- mem_chunks = mem_chunks->next;
- g_mutex_unlock (&mem_chunks_lock);
-
- if (mem_chunk->type == G_ALLOC_AND_FREE)
- g_tree_destroy (mem_chunk->mem_tree);
-
- g_free (mem_chunk);
-
- LEAVE_MEM_CHUNK_ROUTINE ();
-}
-
-gpointer
-old_mem_chunk_alloc (GMemChunk *mem_chunk)
-{
- GMemArea *temp_area;
- gpointer mem;
-
- ENTER_MEM_CHUNK_ROUTINE ();
-
- g_return_val_if_fail (mem_chunk != NULL, NULL);
-
- while (mem_chunk->free_atoms)
- {
- /* Get the first piece of memory on the "free_atoms" list.
- * We can go ahead and destroy the list node we used to keep
- * track of it with and to update the "free_atoms" list to
- * point to its next element.
- */
- mem = mem_chunk->free_atoms;
- mem_chunk->free_atoms = mem_chunk->free_atoms->next;
-
- /* Determine which area this piece of memory is allocated from */
- temp_area = g_tree_search (mem_chunk->mem_tree,
- (GCompareFunc) old_mem_chunk_area_search,
- mem);
-
- /* If the area has been marked, then it is being destroyed.
- * (ie marked to be destroyed).
- * We check to see if all of the segments on the free list that
- * reference this area have been removed. This occurs when
- * the amount of free memory is less than the allocatable size.
- * If the chunk should be freed, then we place it in the "free_mem_area".
- * This is so we make sure not to free the mem area here and then
- * allocate it again a few lines down.
- * If we don't allocate a chunk a few lines down then the "free_mem_area"
- * will be freed.
- * If there is already a "free_mem_area" then we'll just free this mem area.
- */
- if (temp_area->mark)
- {
- /* Update the "free" memory available in that area */
- temp_area->free += mem_chunk->atom_size;
-
- if (temp_area->free == mem_chunk->area_size)
- {
- if (temp_area == mem_chunk->mem_area)
- mem_chunk->mem_area = NULL;
-
- if (mem_chunk->free_mem_area)
- {
- mem_chunk->num_mem_areas -= 1;
-
- if (temp_area->next)
- temp_area->next->prev = temp_area->prev;
- if (temp_area->prev)
- temp_area->prev->next = temp_area->next;
- if (temp_area == mem_chunk->mem_areas)
- mem_chunk->mem_areas = mem_chunk->mem_areas->next;
-
- if (mem_chunk->type == G_ALLOC_AND_FREE)
- g_tree_remove (mem_chunk->mem_tree, temp_area);
- g_free (temp_area);
- }
- else
- mem_chunk->free_mem_area = temp_area;
-
- mem_chunk->num_marked_areas -= 1;
- }
- }
- else
- {
- /* Update the number of allocated atoms count.
- */
- temp_area->allocated += 1;
-
- /* The area wasn't marked...return the memory
- */
- goto outa_here;
- }
- }
-
- /* If there isn't a current mem area or the current mem area is out of space
- * then allocate a new mem area. We'll first check and see if we can use
- * the "free_mem_area". Otherwise we'll just malloc the mem area.
- */
- if ((!mem_chunk->mem_area) ||
- ((mem_chunk->mem_area->index + mem_chunk->atom_size) > mem_chunk->area_size))
- {
- if (mem_chunk->free_mem_area)
- {
- mem_chunk->mem_area = mem_chunk->free_mem_area;
- mem_chunk->free_mem_area = NULL;
- }
- else
- {
-#ifdef ENABLE_GC_FRIENDLY
- mem_chunk->mem_area = (GMemArea*) g_malloc0 (sizeof (GMemArea) -
- MEM_AREA_SIZE +
- mem_chunk->area_size);
-#else /* !ENABLE_GC_FRIENDLY */
- mem_chunk->mem_area = (GMemArea*) g_malloc (sizeof (GMemArea) -
- MEM_AREA_SIZE +
- mem_chunk->area_size);
-#endif /* ENABLE_GC_FRIENDLY */
-
- mem_chunk->num_mem_areas += 1;
- mem_chunk->mem_area->next = mem_chunk->mem_areas;
- mem_chunk->mem_area->prev = NULL;
-
- if (mem_chunk->mem_areas)
- mem_chunk->mem_areas->prev = mem_chunk->mem_area;
- mem_chunk->mem_areas = mem_chunk->mem_area;
-
- if (mem_chunk->type == G_ALLOC_AND_FREE)
- g_tree_insert (mem_chunk->mem_tree, mem_chunk->mem_area, mem_chunk->mem_area);
- }
-
- mem_chunk->mem_area->index = 0;
- mem_chunk->mem_area->free = mem_chunk->area_size;
- mem_chunk->mem_area->allocated = 0;
- mem_chunk->mem_area->mark = 0;
- }
-
- /* Get the memory and modify the state variables appropriately.
- */
- mem = (gpointer) &mem_chunk->mem_area->mem[mem_chunk->mem_area->index];
- mem_chunk->mem_area->index += mem_chunk->atom_size;
- mem_chunk->mem_area->free -= mem_chunk->atom_size;
- mem_chunk->mem_area->allocated += 1;
-
- outa_here:
-
- LEAVE_MEM_CHUNK_ROUTINE ();
-
- return mem;
-}
-
-gpointer
-old_mem_chunk_alloc0 (GMemChunk *mem_chunk)
-{
- gpointer mem;
-
- mem = old_mem_chunk_alloc (mem_chunk);
- if (mem)
- {
- memset (mem, 0, mem_chunk->atom_size);
- }
-
- return mem;
-}
-
-void
-old_mem_chunk_free (GMemChunk *mem_chunk,
- gpointer mem)
-{
- GMemArea *temp_area;
- GFreeAtom *free_atom;
-
- g_return_if_fail (mem_chunk != NULL);
- g_return_if_fail (mem != NULL);
-
- ENTER_MEM_CHUNK_ROUTINE ();
-
-#ifdef ENABLE_GC_FRIENDLY
- memset (mem, 0, mem_chunk->atom_size);
-#endif /* ENABLE_GC_FRIENDLY */
-
- /* Don't do anything if this is an ALLOC_ONLY chunk
- */
- if (mem_chunk->type == G_ALLOC_AND_FREE)
- {
- /* Place the memory on the "free_atoms" list
- */
- free_atom = (GFreeAtom*) mem;
- free_atom->next = mem_chunk->free_atoms;
- mem_chunk->free_atoms = free_atom;
-
- temp_area = g_tree_search (mem_chunk->mem_tree,
- (GCompareFunc) old_mem_chunk_area_search,
- mem);
-
- temp_area->allocated -= 1;
-
- if (temp_area->allocated == 0)
- {
- temp_area->mark = 1;
- mem_chunk->num_marked_areas += 1;
- }
- }
-
- LEAVE_MEM_CHUNK_ROUTINE ();
-}
-
-/* This doesn't free the free_area if there is one */
-void
-old_mem_chunk_clean (GMemChunk *mem_chunk)
-{
- GMemArea *mem_area;
- GFreeAtom *prev_free_atom;
- GFreeAtom *temp_free_atom;
- gpointer mem;
-
- g_return_if_fail (mem_chunk != NULL);
-
- ENTER_MEM_CHUNK_ROUTINE ();
-
- if (mem_chunk->type == G_ALLOC_AND_FREE)
- {
- prev_free_atom = NULL;
- temp_free_atom = mem_chunk->free_atoms;
-
- while (temp_free_atom)
- {
- mem = (gpointer) temp_free_atom;
-
- mem_area = g_tree_search (mem_chunk->mem_tree,
- (GCompareFunc) old_mem_chunk_area_search,
- mem);
-
- /* If this mem area is marked for destruction then delete the
- * area and list node and decrement the free mem.
- */
- if (mem_area->mark)
- {
- if (prev_free_atom)
- prev_free_atom->next = temp_free_atom->next;
- else
- mem_chunk->free_atoms = temp_free_atom->next;
- temp_free_atom = temp_free_atom->next;
-
- mem_area->free += mem_chunk->atom_size;
- if (mem_area->free == mem_chunk->area_size)
- {
- mem_chunk->num_mem_areas -= 1;
- mem_chunk->num_marked_areas -= 1;
-
- if (mem_area->next)
- mem_area->next->prev = mem_area->prev;
- if (mem_area->prev)
- mem_area->prev->next = mem_area->next;
- if (mem_area == mem_chunk->mem_areas)
- mem_chunk->mem_areas = mem_chunk->mem_areas->next;
- if (mem_area == mem_chunk->mem_area)
- mem_chunk->mem_area = NULL;
-
- if (mem_chunk->type == G_ALLOC_AND_FREE)
- g_tree_remove (mem_chunk->mem_tree, mem_area);
- g_free (mem_area);
- }
- }
- else
- {
- prev_free_atom = temp_free_atom;
- temp_free_atom = temp_free_atom->next;
- }
- }
- }
- LEAVE_MEM_CHUNK_ROUTINE ();
-}
-
-void
-old_mem_chunk_reset (GMemChunk *mem_chunk)
-{
- GMemArea *mem_areas;
- GMemArea *temp_area;
-
- g_return_if_fail (mem_chunk != NULL);
-
- ENTER_MEM_CHUNK_ROUTINE ();
-
- mem_areas = mem_chunk->mem_areas;
- mem_chunk->num_mem_areas = 0;
- mem_chunk->mem_areas = NULL;
- mem_chunk->mem_area = NULL;
-
- while (mem_areas)
- {
- temp_area = mem_areas;
- mem_areas = mem_areas->next;
- g_free (temp_area);
- }
-
- mem_chunk->free_atoms = NULL;
-
- if (mem_chunk->mem_tree)
- {
- g_tree_destroy (mem_chunk->mem_tree);
- mem_chunk->mem_tree = g_tree_new ((GCompareFunc) old_mem_chunk_area_compare);
- }
-
- LEAVE_MEM_CHUNK_ROUTINE ();
-}
-
-void
-old_mem_chunk_print (GMemChunk *mem_chunk)
-{
- GMemArea *mem_areas;
- gulong mem;
-
- g_return_if_fail (mem_chunk != NULL);
-
- mem_areas = mem_chunk->mem_areas;
- mem = 0;
-
- while (mem_areas)
- {
- mem += mem_chunk->area_size - mem_areas->free;
- mem_areas = mem_areas->next;
- }
-
- g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO,
- "%s: %ld bytes using %d mem areas",
- mem_chunk->name, mem, mem_chunk->num_mem_areas);
-}
-
-void
-old_mem_chunk_info (void)
-{
- GMemChunk *mem_chunk;
- gint count;
-
- count = 0;
- g_mutex_lock (&mem_chunks_lock);
- mem_chunk = mem_chunks;
- while (mem_chunk)
- {
- count += 1;
- mem_chunk = mem_chunk->next;
- }
- g_mutex_unlock (&mem_chunks_lock);
-
- g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "%d mem chunks", count);
-
- g_mutex_lock (&mem_chunks_lock);
- mem_chunk = mem_chunks;
- g_mutex_unlock (&mem_chunks_lock);
-
- while (mem_chunk)
- {
- old_mem_chunk_print ((GMemChunk*) mem_chunk);
- mem_chunk = mem_chunk->next;
- }
-}
-
-static gulong
-old_mem_chunk_compute_size (gulong size,
- gulong min_size)
-{
- gulong power_of_2;
- gulong lower, upper;
-
- power_of_2 = 16;
- while (power_of_2 < size)
- power_of_2 <<= 1;
-
- lower = power_of_2 >> 1;
- upper = power_of_2;
-
- if (size - lower < upper - size && lower >= min_size)
- return lower;
- else
- return upper;
-}
-
-static gint
-old_mem_chunk_area_compare (GMemArea *a,
- GMemArea *b)
-{
- if (a->mem > b->mem)
- return 1;
- else if (a->mem < b->mem)
- return -1;
- return 0;
-}
-
-static gint
-old_mem_chunk_area_search (GMemArea *a,
- gchar *addr)
-{
- if (a->mem <= addr)
- {
- if (addr < &a->mem[a->index])
- return 0;
- return 1;
- }
- return -1;
-}
diff --git a/glib/tests/meson.build b/glib/tests/meson.build
index db01b54b4..d80c86efe 100644
--- a/glib/tests/meson.build
+++ b/glib/tests/meson.build
@@ -3,6 +3,7 @@ glib_tests = {
'asyncqueue' : {},
'atomic' : {
'c_args' : cc.get_id() == 'gcc' ? ['-Wstrict-aliasing=2'] : [],
+ 'c_standards': c_standards.keys(),
},
'base64' : {},
'bitlock' : {},
@@ -18,17 +19,18 @@ glib_tests = {
'dataset' : {},
'date' : {
# FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
- 'should_fail' : host_system == 'darwin',
+ 'can_fail' : host_system == 'darwin',
},
'dir' : {},
'environment' : {
# FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
- 'should_fail' : host_system == 'darwin',
+ 'can_fail' : host_system == 'darwin',
},
'error' : {},
'fileutils' : {},
'gdatetime' : {
'suite' : ['slow'],
+ 'can_fail' : host_system == 'windows',
},
'guuid' : {},
'gvariant' : {
@@ -47,7 +49,9 @@ glib_tests = {
'keyfile' : {},
'list' : {},
'logging' : {},
- 'macros' : {},
+ 'macros' : {
+ 'c_standards': c_standards.keys(),
+ },
'mainloop' : {},
'mappedfile' : {},
'mapping' : {},
@@ -56,6 +60,7 @@ glib_tests = {
'markup-collect' : {},
'markup-escape' : {},
'markup-subparser' : {},
+ 'max-version' : {'install' : false},
'memchunk' : {},
'mem-overflow' : {
'link_args' : cc.get_id() == 'gcc' and cc.version().version_compare('> 6')
@@ -72,6 +77,7 @@ glib_tests = {
'source' : 'overflow.c',
'c_args' : ['-D_GLIB_TEST_OVERFLOW_FALLBACK'],
},
+ 'pathbuf' : {},
'pattern' : {},
'private' : {},
'protocol' : {},
@@ -98,28 +104,47 @@ glib_tests = {
},
'shell' : {},
'slice' : {},
- 'slice-color' : {},
- 'slice-concurrent' : {},
- 'slice-known-pages' : {'suite' : ['no-valgrind']},
- 'slice-glib' : {},
- 'slice-slab' : {},
- 'slice-malloc' : {},
- 'slice-memchunk' : {
- 'source' : ['slice-memchunk.c', 'memchunks.c'],
- },
- 'slice-eager-freeing' : {},
'slist' : {},
'sort' : {},
- 'spawn-multithreaded' : {},
- 'spawn-path-search' : {},
+ 'spawn-multithreaded' : {
+ 'can_fail': glib_build_static and host_system == 'windows',
+ 'suite': host_system == 'windows' ? ['flaky'] : [],
+ 'extra_programs' : ['test-spawn-echo'] + (
+ host_machine.system() == 'windows' ? ['test-spawn-sleep'] : []),
+ },
+ 'spawn-path-search' : {
+ 'extra_programs' : [
+ 'spawn-path-search-helper',
+ 'spawn-test-helper',
+ 'spawn-test-helper-subdir',
+ ],
+ },
'spawn-singlethread' : {
'dependencies' : [winsock2],
+ 'extra_programs' : ['test-spawn-echo'],
+ },
+ 'spawn-test' : {
+ 'extra_programs' : host_machine.system() == 'windows' ? ['spawn-test-win32-gui'] : [],
},
- 'spawn-test' : {},
'strfuncs' : {},
'string' : {},
+ 'string-macro' : {
+ 'source' : 'string.c',
+ 'c_args' : cc.get_id() == 'gcc' ? ['-Werror=sign-conversion'] : [],
+ 'install' : false,
+ },
'strvbuilder' : {},
- 'testing' : {},
+ 'testing' : {
+ 'args': [ '--verbose' ],
+ 'extra_programs' : ['testing-helper'],
+ },
+ 'testing-macro' : {
+ 'args': [ '--verbose' ],
+ 'extra_programs' : ['testing-helper'],
+ 'source' : 'testing.c',
+ 'c_args' : cc.get_id() == 'gcc' ? ['-Werror=sign-conversion'] : [],
+ 'install' : false,
+ },
'test-printf' : {},
'thread' : {},
'thread-deprecated' : {},
@@ -133,7 +158,10 @@ glib_tests = {
'utf8-pointer' : {},
'utf8-validate' : {},
'utf8-misc' : {},
- 'utils' : {},
+ 'utils' : {
+ 'c_standards': c_standards.keys(),
+ },
+ 'utils-isolated' : {},
'unicode' : {},
'unicode-encoding' : {},
'unicode-normalize': {},
@@ -168,7 +196,7 @@ if have_cxx
'cxx-@0@'.format(std) : {
'source' : ['cxx.cpp'],
'suite' : ['cpp'],
- 'cpp_args' : [arg],
+ 'cpp_args' : [arg, '-D_G_EXPECTED_CXX_STANDARD="@0@"'.format(std)],
},
}
endforeach
@@ -204,24 +232,29 @@ else
'include' : {},
'unix' : {},
}
- if have_rtld_next and get_option('default_library') != 'static'
+ if have_rtld_next and glib_build_shared
+ getpwuid_preload = shared_library('getpwuid-preload',
+ 'getpwuid-preload.c',
+ name_prefix : '',
+ dependencies: libdl_dep,
+ install_dir : installed_tests_execdir,
+ install_tag : 'tests',
+ install: installed_tests_enabled)
+
+ if host_system not in ['ios', 'darwin']
+ var_preload = 'LD_PRELOAD'
+ else
+ var_preload = 'DYLD_INSERT_LIBRARIES'
+ endif
+
glib_tests += {
'gutils-user-database' : {
- 'depends' : [
- shared_library('getpwuid-preload',
- 'getpwuid-preload.c',
- name_prefix : '',
- dependencies: libdl_dep,
- install_dir : installed_tests_execdir,
- install_tag : 'tests',
- install: installed_tests_enabled,
- ),
- ],
+ 'depends' : [],
'env' : {
- 'LD_PRELOAD': '@0@/getpwuid-preload.so'.format(meson.current_build_dir()),
+ var_preload: getpwuid_preload.full_path()
},
'installed_tests_env' : {
- 'LD_PRELOAD': '@0@/getpwuid-preload.so'.format(installed_tests_execdir),
+ var_preload: installed_tests_execdir / fs.name(getpwuid_preload.full_path())
},
},
}
@@ -258,25 +291,98 @@ if installed_tests_enabled
)
endif
+test_extra_programs = {
+ 'assert-msg-test' : {},
+ 'markup-example' : {'install' : false},
+ 'spawn-path-search-helper' : {},
+ 'spawn-test-helper' : {},
+ 'testing-helper' : {},
+ # test-spawn-echo helper binary required by the spawn tests above
+ 'test-spawn-echo' : {},
+}
+
+if have_dlopen_dlsym and have_rtld_next
+ test_extra_programs += {
+ 'messages-low-memory' : {
+ 'dependencies' : libdl_dep,
+ 'override_options' : ['b_asneeded=false'],
+ },
+ }
+endif
+
+if host_machine.system() == 'windows'
+ # test-spawn-sleep helper binary required by the spawn tests above
+ test_extra_programs += {
+ 'test-spawn-sleep' : {},
+ 'spawn-test-win32-gui' : { 'win_subsystem': 'windows' },
+ }
+endif
+
+foreach test_name, extra_args : glib_tests
+ foreach std: extra_args.get('c_standards', [])
+ if c_standards.has_key(std)
+ glib_tests += {
+ '@0@-c-@1@'.format(test_name, std) : extra_args + {
+ 'source' : extra_args.get('source', test_name + '.c'),
+ 'suite' : ['cc'] + extra_args.get('suite', []),
+ 'c_args' : [
+ c_standards.get(std),
+ '-D_G_EXPECTED_C_STANDARD="@0@"'.format(std)
+ ] + extra_args.get('c_args', []),
+ }
+ }
+ endif
+ endforeach
+endforeach
+
test_env = environment()
test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
-test_env.set('G_DEBUG', 'gc-friendly')
-test_env.set('MALLOC_CHECK_', '2')
test_deps = [libm, thread_dep, libglib_dep]
test_cargs = ['-DG_LOG_DOMAIN="GLib"', '-UG_DISABLE_ASSERT']
test_cpp_args = test_cargs
+test_extra_programs_targets = {}
+foreach program_name, extra_args : test_extra_programs
+ source = extra_args.get('source', program_name + '.c')
+ extra_sources = extra_args.get('extra_sources', [])
+ install = installed_tests_enabled and extra_args.get('install', true)
+ test_extra_programs_targets += {
+ program_name : executable(program_name,
+ sources: [source, extra_sources],
+ c_args : test_cargs,
+ cpp_args: test_cpp_args,
+ override_options : extra_args.get('override_options', []),
+ dependencies : test_deps + extra_args.get('dependencies', []),
+ install_dir : installed_tests_execdir,
+ install_tag : 'tests',
+ install : install,
+ win_subsystem : extra_args.get('win_subsystem', 'console'),
+ )
+ }
+endforeach
+
+subdir('path-test-subdir')
+
foreach test_name, extra_args : glib_tests
source = extra_args.get('source', test_name + '.c')
install = installed_tests_enabled and extra_args.get('install', true)
+ installed_tests_env = extra_args.get('installed_tests_env', {})
if install
test_conf = configuration_data()
test_conf.set('installed_tests_dir', installed_tests_execdir)
test_conf.set('program', test_name)
- test_conf.set('env', '')
+ test_env_override = ''
+ if installed_tests_env != {}
+ envs = []
+ foreach var, value : installed_tests_env
+ envs += '@0@=@1@'.format(var, value)
+ endforeach
+ test_env_override = '@0@ @1@ '.format(env_program.full_path(), ' '.join(envs))
+ endif
+ test_conf.set('env', test_env_override)
configure_file(
input: installed_tests_template_tap,
output: test_name + '.test',
@@ -290,16 +396,35 @@ foreach test_name, extra_args : glib_tests
c_args : test_cargs + extra_args.get('c_args', []),
cpp_args : test_cpp_args + extra_args.get('cpp_args', []),
link_args : extra_args.get('link_args', []),
+ override_options : extra_args.get('override_options', []),
dependencies : test_deps + extra_args.get('dependencies', []),
install_dir: installed_tests_execdir,
install_tag: 'tests',
install: install,
)
- suite = ['glib'] + extra_args.get('suite', [])
+ depends = [extra_args.get('depends', [])]
+ suite = ['glib', 'core'] + extra_args.get('suite', [])
timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
+
+ if extra_args.get('can_fail', false)
+ suite += 'failing'
+ endif
+
+ foreach program : extra_args.get('extra_programs', [])
+ depends += test_extra_programs_targets[program]
+ endforeach
+
+ local_test_env = test_env
+ foreach var, value : extra_args.get('env', {})
+ local_test_env.append(var, value)
+ endforeach
+
test(test_name, exe,
- env : test_env,
+ args: extra_args.get('args', []),
+ protocol : extra_args.get('protocol', test_protocol),
+ depends : depends,
+ env : local_test_env,
timeout : timeout,
suite : suite,
should_fail : extra_args.get('should_fail', false),
@@ -314,26 +439,41 @@ if installed_tests_enabled
)
endif
-python_tests = [
- 'assert-msg-test.py',
-]
+python_tests = {
+ 'assert-msg-test.py' : {
+ 'can_fail' : host_system == 'windows',
+ 'extra_programs': ['assert-msg-test'],
+ },
+}
-executable('assert-msg-test', ['assert-msg-test.c'],
- c_args : test_cargs,
- dependencies : test_deps,
- install_dir : installed_tests_execdir,
- install_tag : 'tests',
- install : installed_tests_enabled,
- win_subsystem : extra_args.get('win_subsystem', 'console'),
-)
+if 'messages-low-memory' in test_extra_programs
+ python_tests += {
+ 'messages-low-memory.py' : {
+ 'extra_programs': ['messages-low-memory'],
+ },
+ }
+endif
+
+foreach test_name, extra_args : python_tests
+ depends = [extra_args.get('depends', [])]
+ suite = ['glib', 'core', 'no-valgrind']
+
+ if extra_args.get('can_fail', false)
+ suite += 'failing'
+ endif
+
+ foreach program : extra_args.get('extra_programs', [])
+ depends += test_extra_programs_targets[program]
+ endforeach
-foreach test_name : python_tests
test(
test_name,
python,
+ protocol : extra_args.get('protocol', test_protocol),
+ depends: depends,
args: ['-B', files(test_name)],
env: test_env,
- suite: ['glib', 'no-valgrind'],
+ suite: suite,
)
if installed_tests_enabled
@@ -358,60 +498,10 @@ foreach test_name : python_tests
endif
endforeach
-executable('spawn-path-search-helper', 'spawn-path-search-helper.c',
- c_args : test_cargs,
- dependencies : test_deps,
- install_dir: installed_tests_execdir,
- install_tag: 'tests',
- install: installed_tests_enabled,
-)
-
-executable('spawn-test-helper', 'spawn-test-helper.c',
- c_args : test_cargs,
- dependencies : test_deps,
- install_dir: installed_tests_execdir,
- install_tag: 'tests',
- install: installed_tests_enabled,
-)
-
-# test-spawn-echo helper binary required by the spawn tests above
-executable('test-spawn-echo', 'test-spawn-echo.c',
- c_args : test_cargs,
- dependencies : test_deps,
- install_dir: installed_tests_execdir,
- install_tag: 'tests',
- install: installed_tests_enabled,
-)
-
-if host_machine.system() == 'windows'
- # test-spawn-sleep helper binary required by the spawn tests above
- executable('test-spawn-sleep', 'test-spawn-sleep.c',
- c_args : test_cargs,
- dependencies : test_deps,
- install_dir: installed_tests_execdir,
- install_tag: 'tests',
- install: installed_tests_enabled,
- )
- executable('spawn-test-win32-gui', 'spawn-test-win32-gui.c',
- c_args : test_cargs,
- dependencies : test_deps,
- install_dir: installed_tests_execdir,
- install_tag: 'tests',
- install: installed_tests_enabled,
- win_subsystem: 'windows',
- )
-endif
-
-executable('testing-helper', 'testing-helper.c',
- c_args : test_cargs,
- dependencies : test_deps,
- install_dir: installed_tests_execdir,
- install_tag: 'tests',
- install: installed_tests_enabled,
-)
-
# some testing of gtester functionality
-if meson.can_run_host_binaries() and host_system != 'windows'
+# FIXME: Work around Meson not automatically using exe_wrapper around gtester
+# https://github.com/mesonbuild/meson/issues/11029
+if not meson.is_cross_build() and host_system != 'windows'
xmllint = find_program('xmllint', required: false)
if xmllint.found()
tmpsample_xml = custom_target('tmpsample.xml',
@@ -422,9 +512,39 @@ if meson.can_run_host_binaries() and host_system != 'windows'
test('gtester-xmllint-check', xmllint,
args : ['--noout', tmpsample_xml],
env : test_env,
- suite : ['glib'],
+ suite : ['glib', 'core'],
)
endif
endif
-subdir('path-test-subdir')
+if have_bash and have_pkg_config
+ prefix = get_option('prefix')
+ if prefix.endswith(':/')
+ prefix += '/'
+ endif
+ test('glib-2.0-pkg-config',
+ bash,
+ args: [
+ '-xe', '-c',
+ '\n'.join([
+ 'pkg-config --validate glib-2.0',
+ 'test "$(pkg-config --modversion glib-2.0)" = "@0@"'.format(glib_version),
+ 'test "$(pkg-config --variable=prefix glib-2.0)" = "@0@"'.format(
+ get_option('prefix')),
+ 'test "$(pkg-config --variable=datadir glib-2.0)" = "@0@"'.format(
+ prefix / get_option('datadir')),
+ 'test "$(pkg-config --variable=gobject_query glib-2.0)" = "@0@"'.format(
+ prefix / get_option('bindir') / 'gobject-query'),
+ 'test "$(pkg-config --variable=glib_mkenums glib-2.0)" = "@0@"'.format(
+ prefix / get_option('bindir') / 'glib-mkenums'),
+ 'test "$(pkg-config --variable=glib_valgrind_suppressions glib-2.0)" = "@0@"'.format(
+ prefix / get_option('datadir') /
+ valgrind_suppression_file_install_subdir / fs.name(valgrind_suppression_file)),
+ ]),
+ ],
+ suite: ['glib', 'core', 'no-valgrind', 'pkg-config'],
+ env: {
+ 'PKG_CONFIG_PATH': meson.project_build_root() / 'meson-private',
+ },
+ )
+endif
diff --git a/glib/tests/messages-low-memory.c b/glib/tests/messages-low-memory.c
new file mode 100644
index 000000000..479143723
--- /dev/null
+++ b/glib/tests/messages-low-memory.c
@@ -0,0 +1,91 @@
+/* Unit tests for gmessages on low-memory
+ *
+ * Copyright (C) 2022 Marco Trevisan
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Marco Trevisan <marco.trevisan@canonical.com>
+ */
+
+#include "config.h"
+
+#include <dlfcn.h>
+#include <glib.h>
+
+static gboolean malloc_eom = FALSE;
+static gboolean our_malloc_called = FALSE;
+
+#ifdef ENOMEM
+/* Wrapper around malloc() which returns `ENOMEM` if the test variable
+ * `malloc_eom` is set.
+ * Otherwise passes through to the normal malloc() in libc.
+ */
+
+void *
+malloc (size_t size)
+{
+ static void *(*real_malloc)(size_t);
+ if (!real_malloc)
+ real_malloc = dlsym (RTLD_NEXT, "malloc");
+
+ if (malloc_eom)
+ {
+ our_malloc_called = TRUE;
+ errno = ENOMEM;
+ return NULL;
+ }
+
+ return real_malloc (size);
+}
+#endif
+
+int
+main (int argc,
+ char *argv[])
+{
+ /* We expect this test to abort, so try to avoid that creating a coredump */
+ g_test_disable_crash_reporting ();
+
+ g_setenv ("LC_ALL", "C", TRUE);
+
+#ifndef ENOMEM
+ g_message ("ENOMEM Not defined, test skipped");
+ return 77;
+#endif
+
+ g_message ("Simulates a situation in which we were crashing because "
+ "of low-memory, leading malloc to fail instead of aborting");
+ g_message ("bug: https://gitlab.gnome.org/GNOME/glib/-/issues/2753");
+
+ /* Setting `malloc_eom` to true should cause the override `malloc()`
+ * in this file to fail on the allocation on the next line. */
+ malloc_eom = TRUE;
+ g_message ("Memory is exhausted, but we'll write anyway: %u", 123);
+
+#ifndef __linux__
+ if (!our_malloc_called)
+ {
+ /* For some reasons this doesn't work darwin systems, so ignore the result
+ * for non-linux, while we want to ensure the test is valid at least there
+ */
+ g_message ("Our malloc implementation has not been called, the test "
+ "has not been performed");
+ return 77;
+ }
+#endif
+
+ return 0;
+}
diff --git a/glib/tests/messages-low-memory.py b/glib/tests/messages-low-memory.py
new file mode 100644
index 000000000..8e071b164
--- /dev/null
+++ b/glib/tests/messages-low-memory.py
@@ -0,0 +1,101 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+# Copyright © 2022 Emmanuel Fleury <emmanuel.fleury@gmail.com>
+# Copyright © 2022 Marco Trevisan <mail@3v1n0.net>
+#
+# This library 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.
+#
+# This library 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 this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+
+""" Integration tests for g_message functions on low-memory. """
+
+import collections
+import os
+import subprocess
+import unittest
+
+import taptestrunner
+
+Result = collections.namedtuple("Result", ("info", "out", "err"))
+
+
+class TestMessagesLowMemory(unittest.TestCase):
+ """Integration test for checking g_message()’s behavior on low memory.
+
+ This can be run when installed or uninstalled. When uninstalled,
+ it requires G_TEST_BUILDDIR and G_TEST_SRCDIR to be set.
+
+ The idea with this test harness is to test if g_message and friends
+ assert instead of crashing if memory is exhausted, printing the expected
+ error message.
+ """
+
+ test_binary = "messages-low-memory"
+
+ def setUp(self):
+ ext = ""
+ if os.name == "nt":
+ ext = ".exe"
+ if "G_TEST_BUILDDIR" in os.environ:
+ self._test_binary = os.path.join(
+ os.environ["G_TEST_BUILDDIR"], self.test_binary + ext
+ )
+ else:
+ self._test_binary = os.path.join(
+ os.path.dirname(__file__), self.test_binary + ext
+ )
+ print("messages-low-memory:", self._test_binary)
+
+ def runTestBinary(self, *args):
+ print("Running:", *args)
+
+ env = os.environ.copy()
+ env["LC_ALL"] = "C.UTF-8"
+ print("Environment:", env)
+
+ # We want to ensure consistent line endings...
+ info = subprocess.run(
+ *args,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ env=env,
+ universal_newlines=True,
+ )
+ out = info.stdout.strip()
+ err = info.stderr.strip()
+
+ result = Result(info, out, err)
+
+ print("Return code:", result.info.returncode)
+ print("Output:", result.out)
+ print("Error:", result.err)
+ return result
+
+ def test_message_memory_allocation_failure(self):
+ """Test running g_message() when memory is exhausted."""
+ result = self.runTestBinary(self._test_binary)
+
+ if result.info.returncode == 77:
+ self.skipTest("Not supported")
+
+ if os.name == "nt":
+ self.assertEqual(result.info.returncode, 3)
+ else:
+ self.assertEqual(result.info.returncode, -6)
+ self.assertIn("failed to allocate memory", result.err)
+
+
+if __name__ == "__main__":
+ unittest.main(testRunner=taptestrunner.TAPTestRunner())
diff --git a/glib/tests/mutex.c b/glib/tests/mutex.c
index cce4c593f..bd484c59e 100644
--- a/glib/tests/mutex.c
+++ b/glib/tests/mutex.c
@@ -2,6 +2,8 @@
* Copyright (C) 2011 Red Hat, Inc
* Author: Matthias Clasen
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -157,6 +159,63 @@ test_mutex5 (void)
g_assert (owners[i] == NULL);
}
+static gpointer
+test_mutex_errno_func (gpointer data)
+{
+ GMutex *m = data;
+
+ g_test_summary ("Validates that errno is not touched upon return");
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/3034");
+
+ for (unsigned int i = 0; i < 1000; i++)
+ {
+ errno = 0;
+ g_mutex_lock (m);
+ g_assert_cmpint (errno, ==, 0);
+
+ g_thread_yield ();
+
+ errno = 0;
+ g_mutex_unlock (m);
+ g_assert_cmpint (errno, ==, 0);
+
+ errno = 0;
+ if (g_mutex_trylock (m))
+ {
+ g_assert_cmpint (errno, ==, 0);
+
+ g_thread_yield ();
+
+ errno = 0;
+ g_mutex_unlock (m);
+ g_assert_cmpint (errno, ==, 0);
+ }
+ }
+
+ return NULL;
+}
+
+static void
+test_mutex_errno (void)
+{
+ gsize i;
+ GThread *threads[THREADS];
+ GMutex m;
+
+ g_mutex_init (&m);
+
+ for (i = 0; i < G_N_ELEMENTS (threads); i++)
+ {
+ threads[i] = g_thread_new ("test_mutex_errno",
+ test_mutex_errno_func, &m);
+ }
+
+ for (i = 0; i < G_N_ELEMENTS (threads); i++)
+ {
+ g_thread_join (threads[i]);
+ }
+}
+
static gint count_to = 0;
static gboolean
@@ -193,7 +252,7 @@ test_mutex_perf (gconstpointer data)
gint x = -1;
guint i;
- count_to = g_test_perf () ? 100000000 : 1;
+ count_to = g_test_perf () ? 100000000 : n_threads + 1;
g_assert (n_threads <= G_N_ELEMENTS (threads));
@@ -224,6 +283,7 @@ main (int argc, char *argv[])
g_test_add_func ("/thread/mutex3", test_mutex3);
g_test_add_func ("/thread/mutex4", test_mutex4);
g_test_add_func ("/thread/mutex5", test_mutex5);
+ g_test_add_func ("/thread/mutex/errno", test_mutex_errno);
{
guint i;
diff --git a/glib/tests/once.c b/glib/tests/once.c
index d0aeccb74..0bcaea488 100644
--- a/glib/tests/once.c
+++ b/glib/tests/once.c
@@ -3,6 +3,8 @@
* Copyright (C) 2011 Red Hat, Inc
* Author: Matthias Clasen
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/onceinit.c b/glib/tests/onceinit.c
index c58ca026c..4d10b4fae 100644
--- a/glib/tests/onceinit.c
+++ b/glib/tests/onceinit.c
@@ -1,6 +1,8 @@
/* g_once_init_*() test
* Copyright (C) 2007 Tim Janik
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -264,16 +266,22 @@ test_onceinit (void)
g_cond_broadcast (&tcond);
}
+ for (i = 0; i < N_THREADS; i++)
+ g_thread_join (threads[i]);
+
/* call multiple (unoptimized) initializers from multiple threads */
g_mutex_lock (&tmutex);
g_atomic_int_set (&thread_call_count, 0);
for (i = 0; i < N_THREADS; i++)
- g_thread_new (NULL, stress_concurrent_initializers, NULL);
+ threads[i] = g_thread_new (NULL, stress_concurrent_initializers, NULL);
g_mutex_unlock (&tmutex);
while (g_atomic_int_get (&thread_call_count) < 256 * 4 * N_THREADS)
g_usleep (50 * 1000); /* wait for all 5 threads to complete */
+
+ for (i = 0; i < N_THREADS; i++)
+ g_thread_join (threads[i]);
}
int
diff --git a/glib/tests/option-argv0.c b/glib/tests/option-argv0.c
index a18e68676..736a992e5 100644
--- a/glib/tests/option-argv0.c
+++ b/glib/tests/option-argv0.c
@@ -1,6 +1,8 @@
/*
* Copyright (C) 2011 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/option-context.c b/glib/tests/option-context.c
index 0fdb67c9a..c9148de9f 100644
--- a/glib/tests/option-context.c
+++ b/glib/tests/option-context.c
@@ -2,6 +2,8 @@
* Copyright (C) 2007 Openismus GmbH
* Authors: Mathias Hasselmann
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/path-test-subdir/meson.build b/glib/tests/path-test-subdir/meson.build
index 50c604899..53073370c 100644
--- a/glib/tests/path-test-subdir/meson.build
+++ b/glib/tests/path-test-subdir/meson.build
@@ -1,7 +1,10 @@
-executable('spawn-test-helper', 'spawn-test-helper.c',
- c_args : test_cargs,
- dependencies : test_deps,
- install_dir: join_paths(installed_tests_execdir, 'path-test-subdir'),
- install_tag: 'tests',
- install: installed_tests_enabled,
-)
+test_extra_programs_targets += {
+ 'spawn-test-helper-subdir' : executable('spawn-test-helper',
+ sources: 'spawn-test-helper.c',
+ c_args : test_cargs,
+ dependencies : test_deps,
+ install_dir: installed_tests_execdir / 'path-test-subdir',
+ install_tag: 'tests',
+ install: installed_tests_enabled,
+ ),
+}
diff --git a/glib/tests/pathbuf.c b/glib/tests/pathbuf.c
new file mode 100644
index 000000000..1f93ff5e8
--- /dev/null
+++ b/glib/tests/pathbuf.c
@@ -0,0 +1,258 @@
+/* Unit tests for GPathBuf
+ *
+ * SPDX-FileCopyrightText: 2023 Emmanuele Bassi
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ */
+
+#include "config.h"
+#include <string.h>
+#include <errno.h>
+
+#include <glib.h>
+
+#ifndef g_assert_path_buf_equal
+#define g_assert_path_buf_equal(p1,p2) \
+ G_STMT_START { \
+ if (g_path_buf_equal ((p1), (p2))) ; else { \
+ char *__p1 = g_path_buf_to_path ((p1)); \
+ char *__p2 = g_path_buf_to_path ((p2)); \
+ g_assertion_message_cmpstr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ #p1 " == " #p2, __p1, "==", __p2); \
+ g_free (__p1); \
+ g_free (__p2); \
+ } \
+ } G_STMT_END
+#endif
+
+static void
+test_pathbuf_init (void)
+{
+#ifdef G_OS_UNIX
+ GPathBuf buf, cmp;
+ char *path;
+
+ g_test_message ("Initializing empty path buf");
+ g_path_buf_init (&buf);
+ g_assert_null (g_path_buf_to_path (&buf));
+ g_path_buf_clear (&buf);
+
+ g_test_message ("Initializing with empty path");
+ g_path_buf_init_from_path (&buf, NULL);
+ g_assert_null (g_path_buf_to_path (&buf));
+ g_path_buf_clear (&buf);
+
+ g_test_message ("Initializing with full path");
+ g_path_buf_init_from_path (&buf, "/usr/bin/echo");
+ path = g_path_buf_clear_to_path (&buf);
+ g_assert_nonnull (path);
+ g_assert_cmpstr (path, ==, "/usr/bin/echo");
+ g_free (path);
+
+ g_test_message ("Initializing with no path");
+ g_path_buf_init (&buf);
+ g_assert_null (g_path_buf_to_path (&buf));
+ g_path_buf_clear (&buf);
+
+ g_test_message ("Allocating GPathBuf on the heap");
+ GPathBuf *allocated = g_path_buf_new ();
+ g_assert_null (g_path_buf_to_path (allocated));
+ g_path_buf_clear (allocated);
+
+ g_path_buf_init_from_path (allocated, "/bin/sh");
+ path = g_path_buf_to_path (allocated);
+ g_assert_cmpstr (path, ==, "/bin/sh");
+ g_free (path);
+
+ g_path_buf_clear (allocated);
+ g_assert_null (g_path_buf_to_path (allocated));
+ g_assert_null (g_path_buf_free_to_path (allocated));
+
+ allocated = g_path_buf_new_from_path ("/bin/sh");
+ g_path_buf_init_from_path (&cmp, "/bin/sh");
+ g_assert_path_buf_equal (allocated, &cmp);
+ g_path_buf_clear (&cmp);
+ g_path_buf_free (allocated);
+
+ g_path_buf_init_from_path (&buf, "/usr/bin/bash");
+ allocated = g_path_buf_copy (&buf);
+ g_assert_path_buf_equal (allocated, allocated);
+ g_assert_path_buf_equal (allocated, &buf);
+ g_path_buf_clear (&buf);
+
+ g_path_buf_init_from_path (&cmp, "/usr/bin/bash");
+ g_assert_path_buf_equal (allocated, &cmp);
+ g_path_buf_clear (&cmp);
+
+ g_path_buf_free (allocated);
+#elif defined(G_OS_WIN32)
+ GPathBuf buf;
+ char *path;
+
+ /* Forward slashes and backslashes are treated as interchangeable
+ * on input... */
+ g_path_buf_init_from_path (&buf, "C:\\windows/system32.dll");
+ path = g_path_buf_clear_to_path (&buf);
+ g_assert_nonnull (path);
+ /* ... and normalized to backslashes on output */
+ g_assert_cmpstr (path, ==, "C:\\windows\\system32.dll");
+ g_free (path);
+
+ g_path_buf_init (&buf);
+ g_assert_null (g_path_buf_to_path (&buf));
+ g_path_buf_clear (&buf);
+
+ g_test_message ("Allocating GPathBuf on the heap");
+ GPathBuf *allocated = g_path_buf_new ();
+ g_assert_null (g_path_buf_to_path (allocated));
+ g_path_buf_clear (allocated);
+
+ g_path_buf_init_from_path (allocated, "C:\\does-not-exist.txt");
+ path = g_path_buf_to_path (allocated);
+ g_assert_cmpstr (path, ==, "C:\\does-not-exist.txt");
+ g_free (path);
+
+ g_path_buf_clear (allocated);
+ g_assert_null (g_path_buf_to_path (allocated));
+ g_assert_null (g_path_buf_free_to_path (allocated));
+#else
+ g_test_skip ("Unsupported platform"):
+#endif
+}
+
+static void
+test_pathbuf_push_pop (void)
+{
+#ifdef G_OS_UNIX
+ GPathBuf buf, cmp;
+
+ g_test_message ("Pushing relative path component");
+ g_path_buf_init_from_path (&buf, "/tmp");
+ g_path_buf_push (&buf, ".X11-unix/X0");
+
+ g_path_buf_init_from_path (&cmp, "/tmp/.X11-unix/X0");
+ g_assert_path_buf_equal (&buf, &cmp);
+ g_path_buf_clear (&cmp);
+
+ g_test_message ("Pushing absolute path component");
+ g_path_buf_push (&buf, "/etc/locale.conf");
+ g_path_buf_init_from_path (&cmp, "/etc/locale.conf");
+ g_assert_path_buf_equal (&buf, &cmp);
+ g_path_buf_clear (&cmp);
+ g_path_buf_clear (&buf);
+
+ g_test_message ("Popping a path component");
+ g_path_buf_init_from_path (&buf, "/bin/sh");
+
+ g_assert_true (g_path_buf_pop (&buf));
+ g_path_buf_init_from_path (&cmp, "/bin");
+ g_assert_path_buf_equal (&buf, &cmp);
+ g_path_buf_clear (&cmp);
+
+ g_assert_true (g_path_buf_pop (&buf));
+ g_path_buf_init_from_path (&cmp, "/");
+ g_assert_path_buf_equal (&buf, &cmp);
+ g_path_buf_clear (&cmp);
+
+ g_test_message ("Can't pop the last element of a path buffer");
+ g_assert_false (g_path_buf_pop (&buf));
+
+ g_path_buf_clear (&buf);
+ g_path_buf_clear (&cmp);
+#elif defined(G_OS_WIN32)
+ GPathBuf buf, cmp;
+
+ g_test_message ("Pushing relative path component");
+ g_path_buf_init_from_path (&buf, "C:\\");
+ g_path_buf_push (&buf, "windows");
+ g_path_buf_push (&buf, "system32.dll");
+
+ g_test_message ("Popping a path component");
+ g_path_buf_init_from_path (&cmp, "C:\\windows/system32.dll");
+ g_assert_path_buf_equal (&buf, &cmp);
+ g_path_buf_clear (&cmp);
+
+ g_assert_true (g_path_buf_pop (&buf));
+ g_path_buf_init_from_path (&cmp, "C:\\windows");
+ g_assert_path_buf_equal (&buf, &cmp);
+ g_path_buf_clear (&cmp);
+
+ g_assert_true (g_path_buf_pop (&buf));
+ g_path_buf_init_from_path (&cmp, "C:");
+ g_assert_path_buf_equal (&buf, &cmp);
+ g_path_buf_clear (&cmp);
+
+ g_test_message ("Can't pop the last element of a path buffer");
+ g_assert_false (g_path_buf_pop (&buf));
+
+ g_path_buf_clear (&buf);
+ g_path_buf_clear (&cmp);
+#else
+ g_test_skip ("Unsupported platform"):
+#endif
+}
+
+static void
+test_pathbuf_filename_extension (void)
+{
+#ifdef G_OS_UNIX
+ GPathBuf buf, cmp;
+
+ g_path_buf_init (&buf);
+ g_assert_false (g_path_buf_set_filename (&buf, "foo"));
+ g_assert_false (g_path_buf_set_extension (&buf, "txt"));
+ g_assert_null (g_path_buf_to_path (&buf));
+ g_path_buf_clear (&buf);
+
+ g_path_buf_init_from_path (&buf, "/");
+ g_path_buf_set_filename (&buf, "bar");
+
+ g_path_buf_init_from_path (&cmp, "/bar");
+ g_assert_path_buf_equal (&buf, &cmp);
+ g_path_buf_clear (&cmp);
+
+ g_path_buf_set_filename (&buf, "baz.txt");
+ g_path_buf_init_from_path (&cmp, "/baz.txt");
+ g_assert_path_buf_equal (&buf, &cmp);
+ g_path_buf_clear (&cmp);
+
+ g_path_buf_push (&buf, "/usr");
+ g_path_buf_push (&buf, "lib64");
+ g_path_buf_push (&buf, "libc");
+ g_assert_true (g_path_buf_set_extension (&buf, "so.6"));
+
+ g_path_buf_init_from_path (&cmp, "/usr/lib64/libc.so.6");
+ g_assert_path_buf_equal (&buf, &cmp);
+ g_path_buf_clear (&cmp);
+
+ g_path_buf_clear (&buf);
+#elif defined(G_OS_WIN32)
+ GPathBuf buf, cmp;
+
+ g_path_buf_init_from_path (&buf, "C:\\");
+ g_path_buf_push (&buf, "windows");
+ g_path_buf_push (&buf, "system32");
+ g_assert_true (g_path_buf_set_extension (&buf, "dll"));
+
+ g_path_buf_init_from_path (&cmp, "C:\\windows\\system32.dll");
+ g_assert_path_buf_equal (&buf, &cmp);
+ g_path_buf_clear (&cmp);
+
+ g_path_buf_clear (&buf);
+#else
+ g_test_skip ("Unsupported platform"):
+#endif
+}
+
+int
+main (int argc,
+ char *argv[])
+{
+ g_setenv ("LC_ALL", "C", TRUE);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
+
+ g_test_add_func ("/pathbuf/init", test_pathbuf_init);
+ g_test_add_func ("/pathbuf/push-pop", test_pathbuf_push_pop);
+ g_test_add_func ("/pathbuf/filename-extension", test_pathbuf_filename_extension);
+
+ return g_test_run ();
+}
diff --git a/glib/tests/private.c b/glib/tests/private.c
index 6ecf1a8bc..37f7761a0 100644
--- a/glib/tests/private.c
+++ b/glib/tests/private.c
@@ -2,6 +2,8 @@
* Copyright (C) 2011 Red Hat, Inc
* Author: Matthias Clasen
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/protocol.c b/glib/tests/protocol.c
index b03aaf97b..4773b3ba8 100644
--- a/glib/tests/protocol.c
+++ b/glib/tests/protocol.c
@@ -2,6 +2,8 @@
*
* Copyright (C) 2010 Sven Herzberg
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/queue.c b/glib/tests/queue.c
index f092f6bfc..b35e8ffaa 100644
--- a/glib/tests/queue.c
+++ b/glib/tests/queue.c
@@ -1,3 +1,24 @@
+/*
+ * Copyright 1999 Jeff Garzik
+ * Copyright 1999 Tim Janik
+ * Copyright 2004 Soeren Sandmann
+ * Copyright 2006 Martyn James Russell
+ * Copyright 2004, 2005, 2010, 2019 Red Hat, Inc.
+ * Copyright 2011 Samsung
+ * Copyright 2018 Tapasweni Pathak
+ * Copyright 2019 Endless Mobile, Inc.
+ * Copyright 2020 Emmanuel Fleury
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This program 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.
+ *
+ * See the included COPYING file for more information.
+ */
+
#undef G_DISABLE_ASSERT
#undef G_LOG_DOMAIN
@@ -16,14 +37,14 @@ check_integrity (GQueue *queue)
GList *link;
guint n;
- g_assert (queue->length < 4000000000u);
+ g_assert_cmpuint (queue->length, <, 4000000000u);
- g_assert (g_queue_get_length (queue) == queue->length);
+ g_assert_cmpuint (g_queue_get_length (queue), ==, queue->length);
if (!queue->head)
- g_assert (!queue->tail);
+ g_assert_null (queue->tail);
if (!queue->tail)
- g_assert (!queue->head);
+ g_assert_null (queue->head);
n = 0;
last = NULL;
@@ -33,8 +54,8 @@ check_integrity (GQueue *queue)
last = list;
++n;
}
- g_assert (n == queue->length);
- g_assert (last == queue->tail);
+ g_assert_cmpuint (n, ==, queue->length);
+ g_assert_true (last == queue->tail);
n = 0;
last = NULL;
@@ -44,8 +65,8 @@ check_integrity (GQueue *queue)
last = list;
++n;
}
- g_assert (n == queue->length);
- g_assert (last == queue->head);
+ g_assert_cmpuint (n, ==, queue->length);
+ g_assert_true (last == queue->head);
links = NULL;
for (list = queue->head; list != NULL; list = list->next)
@@ -54,7 +75,7 @@ check_integrity (GQueue *queue)
link = links;
for (list = queue->tail; list != NULL; list = list->prev)
{
- g_assert (list == link->data);
+ g_assert_true (list == link->data);
link = link->next;
}
g_list_free (links);
@@ -66,7 +87,7 @@ check_integrity (GQueue *queue)
link = links;
for (list = queue->head; list != NULL; list = list->next)
{
- g_assert (list == link->data);
+ g_assert_true (list == link->data);
link = link->next;
}
g_list_free (links);
@@ -145,10 +166,9 @@ compare_int (gconstpointer a, gconstpointer b, gpointer data)
return -1;
}
-static gint
+static guint
get_random_position (GQueue *queue, gboolean allow_offlist)
{
- int n;
enum { OFF_QUEUE, HEAD, TAIL, MIDDLE, LAST } where;
if (allow_offlist)
@@ -159,35 +179,28 @@ get_random_position (GQueue *queue, gboolean allow_offlist)
switch (where)
{
case OFF_QUEUE:
- n = g_random_int ();
- break;
+ return g_random_int ();
case HEAD:
- n = 0;
- break;
+ return 0;
case TAIL:
if (allow_offlist)
- n = queue->length;
+ return queue->length;
+ else if (queue->length > 0)
+ return queue->length - 1;
else
- n = queue->length - 1;
- break;
+ return 0;
case MIDDLE:
if (queue->length == 0)
- n = 0;
+ return 0;
else
- n = g_random_int_range (0, queue->length);
- break;
+ return g_random_int_range (0, queue->length);
default:
- g_assert_not_reached();
- n = 100;
- break;
-
+ g_assert_not_reached ();
}
-
- return n;
}
static void
@@ -207,10 +220,9 @@ random_test (gconstpointer d)
LINK_INDEX, UNLINK, DELETE_LINK, LAST_OP
} QueueOp;
-#define N_ITERATIONS 500000
-#define N_QUEUES 3
+ const guint n_iterations = g_test_thorough () ? 500000 : 100000;
-#define RANDOM_QUEUE() &(queues[g_random_int_range(0, N_QUEUES)])
+#define RANDOM_QUEUE() &(queues[g_random_int_range(0, G_N_ELEMENTS (queues))])
typedef struct QueueInfo QueueInfo;
struct QueueInfo
@@ -221,13 +233,13 @@ random_test (gconstpointer d)
guint length;
};
- gint i;
+ guint i;
QueueOp op;
- QueueInfo queues[N_QUEUES];
+ QueueInfo queues[3];
g_random_set_seed (seed);
- for (i = 0; i < N_QUEUES; ++i)
+ for (i = 0; i < G_N_ELEMENTS (queues); ++i)
{
queues[i].queue = g_queue_new ();
queues[i].head = NULL;
@@ -235,16 +247,16 @@ random_test (gconstpointer d)
queues[i].length = 0;
}
- for (i = 0; i < N_ITERATIONS; ++i)
+ for (i = 0; i < n_iterations; ++i)
{
- int j;
+ guint j;
QueueInfo *qinf = RANDOM_QUEUE();
GQueue *q = qinf->queue;
op = g_random_int_range (IS_EMPTY, LAST_OP);
- g_assert (qinf->head == q->head);
- g_assert (qinf->tail == q->tail);
- g_assert (qinf->length == q->length);
+ g_assert_true (qinf->head == q->head);
+ g_assert_true (qinf->tail == q->tail);
+ g_assert_cmpuint (qinf->length, ==, q->length);
switch (op)
{
@@ -252,15 +264,15 @@ random_test (gconstpointer d)
{
if (g_queue_is_empty (qinf->queue))
{
- g_assert (q->head == NULL);
- g_assert (q->tail == NULL);
- g_assert (q->length == 0);
+ g_assert_null (q->head);
+ g_assert_null (q->tail);
+ g_assert_cmpuint (q->length, ==, 0);
}
else
{
- g_assert (q->head);
- g_assert (q->tail);
- g_assert (q->length > 0);
+ g_assert_nonnull (q->head);
+ g_assert_nonnull (q->tail);
+ g_assert_cmpuint (q->length, >, 0);
}
}
break;
@@ -270,15 +282,15 @@ random_test (gconstpointer d)
l = g_queue_get_length (q);
- g_assert (qinf->length == q->length);
- g_assert (qinf->length == l);
+ g_assert_cmpuint (qinf->length, ==, q->length);
+ g_assert_cmpuint (qinf->length, ==, l);
}
break;
case REVERSE:
g_queue_reverse (q);
- g_assert (qinf->tail == q->head);
- g_assert (qinf->head == q->tail);
- g_assert (qinf->length == q->length);
+ g_assert_true (qinf->tail == q->head);
+ g_assert_true (qinf->head == q->tail);
+ g_assert_cmpuint (qinf->length, ==, q->length);
qinf->tail = q->tail;
qinf->head = q->head;
break;
@@ -316,13 +328,13 @@ random_test (gconstpointer d)
if (find_existing)
{
- g_assert (g_queue_find (q, GINT_TO_POINTER (first)));
- g_assert (g_queue_find (q, GINT_TO_POINTER (second)));
+ g_assert_nonnull (g_queue_find (q, GINT_TO_POINTER (first)));
+ g_assert_nonnull (g_queue_find (q, GINT_TO_POINTER (second)));
}
else
{
- g_assert (!g_queue_find (q, GINT_TO_POINTER (first)));
- g_assert (!g_queue_find (q, GINT_TO_POINTER (second)));
+ g_assert_null (g_queue_find (q, GINT_TO_POINTER (first)));
+ g_assert_null (g_queue_find (q, GINT_TO_POINTER (second)));
}
}
break;
@@ -353,7 +365,7 @@ random_test (gconstpointer d)
qinf->head = g_queue_find (q, GINT_TO_POINTER (find_min(q)));
qinf->tail = g_queue_find (q, GINT_TO_POINTER (find_max(q)));
- g_assert (qinf->tail == q->tail);
+ g_assert_true (qinf->tail == q->tail);
}
break;
case PUSH_HEAD:
@@ -380,7 +392,7 @@ random_test (gconstpointer d)
break;
case PUSH_NTH:
{
- int pos = get_random_position (q, TRUE);
+ guint pos = get_random_position (q, TRUE);
int x = g_random_int_range (0, 236546);
g_queue_push_nth (q, GINT_TO_POINTER (x), pos);
if (qinf->head && qinf->head->prev)
@@ -413,46 +425,47 @@ random_test (gconstpointer d)
case POP_NTH:
if (!g_queue_is_empty (q))
{
- int n = get_random_position (q, TRUE);
+ guint n = get_random_position (q, TRUE);
gpointer elm = g_queue_peek_nth (q, n);
- if (n == (int) (q->length - 1))
+ if (n == q->length - 1)
qinf->tail = qinf->tail->prev;
if (n == 0)
qinf->head = qinf->head->next;
- if (n >= 0 && (guint) n < q->length)
+ if (n < q->length)
qinf->length--;
- g_assert (elm == g_queue_pop_nth (q, n));
+ g_assert_true (elm == g_queue_pop_nth (q, n));
}
break;
case PEEK_HEAD:
if (qinf->head)
- g_assert (qinf->head->data == g_queue_peek_head (q));
+ g_assert_true (qinf->head->data == g_queue_peek_head (q));
else
- g_assert (g_queue_peek_head (q) == NULL);
+ g_assert_null (g_queue_peek_head (q));
break;
case PEEK_TAIL:
if (qinf->tail)
- g_assert (qinf->tail->data == g_queue_peek_tail (q));
+ g_assert_true (qinf->tail->data == g_queue_peek_tail (q));
else
- g_assert (g_queue_peek_tail (q) == NULL);
+ g_assert_null (g_queue_peek_tail (q));
break;
case PEEK_NTH:
if (g_queue_is_empty (q))
{
- for (j = -10; j < 10; ++j)
- g_assert (g_queue_peek_nth (q, j) == NULL);
+ int k;
+ for (k = -10; k < 10; ++k)
+ g_assert_null (g_queue_peek_nth (q, (guint) k));
}
else
{
GList *list;
- int n = get_random_position (q, TRUE);
- if (n < 0 || (guint) n >= q->length)
+ guint n = get_random_position (q, TRUE);
+ if (n >= q->length)
{
- g_assert (g_queue_peek_nth (q, n) == NULL);
+ g_assert_null (g_queue_peek_nth (q, n));
}
else
{
@@ -460,7 +473,7 @@ random_test (gconstpointer d)
for (j = 0; j < n; ++j)
list = list->next;
- g_assert (list->data == g_queue_peek_nth (q, n));
+ g_assert_true (list->data == g_queue_peek_nth (q, n));
}
}
break;
@@ -485,10 +498,10 @@ random_test (gconstpointer d)
break;
n++;
}
- g_assert (list);
- g_assert (g_queue_index (q, GINT_TO_POINTER (x)) ==
- g_queue_link_index (q, list));
- g_assert (g_queue_link_index (q, list) == n);
+ g_assert_nonnull (list);
+ g_assert_cmpint (g_queue_index (q, GINT_TO_POINTER (x)), ==,
+ g_queue_link_index (q, list));
+ g_assert_cmpint (g_queue_link_index (q, list), ==, n);
qinf->head = q->head;
qinf->tail = q->tail;
@@ -564,10 +577,10 @@ random_test (gconstpointer d)
check_integrity (q);
g_queue_insert_sorted (q, GINT_TO_POINTER (max + 1), compare_int, NULL);
check_integrity (q);
- g_assert (GPOINTER_TO_INT (q->tail->data) == max + 1);
+ g_assert_cmpint (GPOINTER_TO_INT (q->tail->data), ==, max + 1);
g_queue_insert_sorted (q, GINT_TO_POINTER (min - 1), compare_int, NULL);
check_integrity (q);
- g_assert (GPOINTER_TO_INT (q->head->data) == min - 1);
+ g_assert_cmpint (GPOINTER_TO_INT (q->head->data), ==, min - 1);
qinf->head = q->head;
qinf->tail = q->tail;
qinf->length = q->length;
@@ -596,7 +609,7 @@ random_test (gconstpointer d)
case PUSH_NTH_LINK:
{
GList *link = g_list_prepend (NULL, GINT_TO_POINTER (i));
- gint n = get_random_position (q, TRUE);
+ guint n = get_random_position (q, TRUE);
g_queue_push_nth_link (q, n, link);
if (qinf->head && qinf->head->prev)
@@ -632,12 +645,12 @@ random_test (gconstpointer d)
break;
case POP_NTH_LINK:
if (g_queue_is_empty (q))
- g_assert (g_queue_pop_nth_link (q, 200) == NULL);
+ g_assert_null (g_queue_pop_nth_link (q, 200));
else
{
- int n = get_random_position (q, FALSE);
+ guint n = get_random_position (q, FALSE);
- if (n == (int) (g_queue_get_length (q) - 1))
+ if (n == g_queue_get_length (q) - 1)
qinf->tail = qinf->tail->prev;
if (n == 0)
@@ -650,35 +663,35 @@ random_test (gconstpointer d)
break;
case PEEK_HEAD_LINK:
if (g_queue_is_empty (q))
- g_assert (g_queue_peek_head_link (q) == NULL);
+ g_assert_null (g_queue_peek_head_link (q));
else
- g_assert (g_queue_peek_head_link (q) == qinf->head);
+ g_assert_true (g_queue_peek_head_link (q) == qinf->head);
break;
case PEEK_TAIL_LINK:
if (g_queue_is_empty (q))
- g_assert (g_queue_peek_tail_link (q) == NULL);
+ g_assert_null (g_queue_peek_tail_link (q));
else
- g_assert (g_queue_peek_tail_link (q) == qinf->tail);
+ g_assert_true (g_queue_peek_tail_link (q) == qinf->tail);
break;
case PEEK_NTH_LINK:
if (g_queue_is_empty(q))
- g_assert (g_queue_peek_nth_link (q, 1000) == NULL);
+ g_assert_null (g_queue_peek_nth_link (q, 1000));
else
{
- gint n = get_random_position (q, FALSE);
+ guint n = get_random_position (q, FALSE);
GList *link;
link = q->head;
for (j = 0; j < n; ++j)
link = link->next;
- g_assert (g_queue_peek_nth_link (q, n) == link);
+ g_assert_true (g_queue_peek_nth_link (q, n) == link);
}
break;
case UNLINK:
if (!g_queue_is_empty (q))
{
- gint n = g_random_int_range (0, g_queue_get_length (q));
+ guint n = g_random_int_range (0, g_queue_get_length (q));
GList *link;
link = q->head;
@@ -698,7 +711,7 @@ random_test (gconstpointer d)
case DELETE_LINK:
if (!g_queue_is_empty (q))
{
- gint n = g_random_int_range (0, g_queue_get_length (q));
+ guint n = g_random_int_range (0, g_queue_get_length (q));
GList *link;
link = q->head;
@@ -724,15 +737,15 @@ random_test (gconstpointer d)
qinf->length != q->length)
g_printerr ("op: %d\n", op);
- g_assert (qinf->head == q->head);
- g_assert (qinf->tail == q->tail);
- g_assert (qinf->length == q->length);
+ g_assert_true (qinf->head == q->head);
+ g_assert_true (qinf->tail == q->tail);
+ g_assert_cmpuint (qinf->length, ==, q->length);
- for (j = 0; j < N_QUEUES; ++j)
+ for (j = 0; j < G_N_ELEMENTS (queues); ++j)
check_integrity (queues[j].queue);
}
- for (i = 0; i < N_QUEUES; ++i)
+ for (i = 0; i < G_N_ELEMENTS (queues); ++i)
g_queue_free (queues[i].queue);
}
@@ -753,88 +766,88 @@ test_basic (void)
q = g_queue_new ();
- g_assert (g_queue_is_empty (q));
+ g_assert_true (g_queue_is_empty (q));
g_queue_push_head (q, GINT_TO_POINTER (2));
check_integrity (q);
- g_assert (g_queue_peek_head (q) == GINT_TO_POINTER (2));
+ g_assert_cmpint (GPOINTER_TO_INT (g_queue_peek_head (q)), ==, 2);
check_integrity (q);
- g_assert (!g_queue_is_empty (q));
+ g_assert_false (g_queue_is_empty (q));
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 1);
- g_assert (q->head == q->tail);
+ g_assert_true (q->head == q->tail);
g_queue_push_head (q, GINT_TO_POINTER (1));
check_integrity (q);
- g_assert (q->head->next == q->tail);
- g_assert (q->tail->prev == q->head);
+ g_assert_true (q->head->next == q->tail);
+ g_assert_true (q->tail->prev == q->head);
g_assert_cmpint (g_list_length (q->head), ==, 2);
check_integrity (q);
- g_assert (q->tail->data == GINT_TO_POINTER (2));
- g_assert (q->head->data == GINT_TO_POINTER (1));
+ g_assert_cmpint (GPOINTER_TO_INT (q->tail->data), ==, 2);
+ g_assert_cmpint (GPOINTER_TO_INT (q->head->data), ==, 1);
check_integrity (q);
g_queue_push_tail (q, GINT_TO_POINTER (3));
g_assert_cmpint (g_list_length (q->head), ==, 3);
- g_assert (q->head->data == GINT_TO_POINTER (1));
- g_assert (q->head->next->data == GINT_TO_POINTER (2));
- g_assert (q->head->next->next == q->tail);
- g_assert (q->head->next == q->tail->prev);
- g_assert (q->tail->data == GINT_TO_POINTER (3));
+ g_assert_cmpint (GPOINTER_TO_INT (q->head->data), ==, 1);
+ g_assert_cmpint (GPOINTER_TO_INT (q->head->next->data), ==, 2);
+ g_assert_true (q->head->next->next == q->tail);
+ g_assert_true (q->head->next == q->tail->prev);
+ g_assert_cmpint (GPOINTER_TO_INT (q->tail->data), ==, 3);
g_queue_push_tail (q, GINT_TO_POINTER (4));
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 4);
- g_assert (q->head->data == GINT_TO_POINTER (1));
- g_assert (g_queue_peek_tail (q) == GINT_TO_POINTER (4));
+ g_assert_cmpint (GPOINTER_TO_INT (q->head->data), ==, 1);
+ g_assert_cmpint (GPOINTER_TO_INT (g_queue_peek_tail (q)), ==, 4);
g_queue_push_tail (q, GINT_TO_POINTER (5));
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 5);
- g_assert (g_queue_is_empty (q) == FALSE);
+ g_assert_false (g_queue_is_empty (q));
check_integrity (q);
g_assert_cmpint (q->length, ==, 5);
- g_assert (q->head->prev == NULL);
- g_assert (q->head->data == GINT_TO_POINTER (1));
- g_assert (q->head->next->data == GINT_TO_POINTER (2));
- g_assert (q->head->next->next->data == GINT_TO_POINTER (3));
- g_assert (q->head->next->next->next->data == GINT_TO_POINTER (4));
- g_assert (q->head->next->next->next->next->data == GINT_TO_POINTER (5));
- g_assert (q->head->next->next->next->next->next == NULL);
- g_assert (q->head->next->next->next->next == q->tail);
- g_assert (q->tail->data == GINT_TO_POINTER (5));
- g_assert (q->tail->prev->data == GINT_TO_POINTER (4));
- g_assert (q->tail->prev->prev->data == GINT_TO_POINTER (3));
- g_assert (q->tail->prev->prev->prev->data == GINT_TO_POINTER (2));
- g_assert (q->tail->prev->prev->prev->prev->data == GINT_TO_POINTER (1));
- g_assert (q->tail->prev->prev->prev->prev->prev == NULL);
- g_assert (q->tail->prev->prev->prev->prev == q->head);
- g_assert (g_queue_peek_tail (q) == GINT_TO_POINTER (5));
- g_assert (g_queue_peek_head (q) == GINT_TO_POINTER (1));
- g_assert (g_queue_pop_head (q) == GINT_TO_POINTER (1));
+ g_assert_null (q->head->prev);
+ g_assert_cmpint (GPOINTER_TO_INT (q->head->data), ==, 1);
+ g_assert_cmpint (GPOINTER_TO_INT (q->head->next->data), ==, 2);
+ g_assert_cmpint (GPOINTER_TO_INT (q->head->next->next->data), ==, 3);
+ g_assert_cmpint (GPOINTER_TO_INT (q->head->next->next->next->data), ==, 4);
+ g_assert_cmpint (GPOINTER_TO_INT (q->head->next->next->next->next->data), ==, 5);
+ g_assert_null (q->head->next->next->next->next->next);
+ g_assert_true (q->head->next->next->next->next == q->tail);
+ g_assert_cmpint (GPOINTER_TO_INT (q->tail->data), ==, 5);
+ g_assert_cmpint (GPOINTER_TO_INT (q->tail->prev->data), ==, 4);
+ g_assert_cmpint (GPOINTER_TO_INT (q->tail->prev->prev->data), ==, 3);
+ g_assert_cmpint (GPOINTER_TO_INT (q->tail->prev->prev->prev->data), ==, 2);
+ g_assert_cmpint (GPOINTER_TO_INT (q->tail->prev->prev->prev->prev->data), ==, 1);
+ g_assert_null (q->tail->prev->prev->prev->prev->prev);
+ g_assert_true (q->tail->prev->prev->prev->prev == q->head);
+ g_assert_cmpint (GPOINTER_TO_INT (g_queue_peek_tail (q)), ==, 5);
+ g_assert_cmpint (GPOINTER_TO_INT (g_queue_peek_head (q)), ==, 1);
+ g_assert_cmpint (GPOINTER_TO_INT (g_queue_pop_head (q)), ==, 1);
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 4);
g_assert_cmpint (q->length, ==, 4);
- g_assert (g_queue_pop_tail (q) == GINT_TO_POINTER (5));
+ g_assert_cmpint (GPOINTER_TO_INT (g_queue_pop_tail (q)), ==, 5);
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 3);
node = g_queue_pop_head_link (q);
- g_assert (node->data == GINT_TO_POINTER (2));
+ g_assert_cmpint (GPOINTER_TO_INT (node->data), ==, 2);
g_list_free_1 (node);
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 2);
- g_assert (g_queue_pop_tail (q) == GINT_TO_POINTER (4));
+ g_assert_cmpint (GPOINTER_TO_INT (g_queue_pop_tail (q)), ==, 4);
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 1);
node = g_queue_pop_head_link (q);
- g_assert (node->data == GINT_TO_POINTER (3));
+ g_assert_cmpint (GPOINTER_TO_INT (node->data), ==, 3);
g_list_free_1 (node);
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 0);
- g_assert (g_queue_pop_tail (q) == NULL);
+ g_assert_null (g_queue_pop_tail (q));
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 0);
- g_assert (g_queue_pop_head (q) == NULL);
+ g_assert_null (g_queue_pop_head (q));
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 0);
- g_assert (g_queue_is_empty (q));
+ g_assert_true (g_queue_is_empty (q));
check_integrity (q);
g_queue_push_head (q, GINT_TO_POINTER (1));
@@ -857,31 +870,31 @@ test_basic (void)
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 5);
g_assert_cmpint (q->length, ==, 5);
- g_assert (g_queue_pop_head (q) == GINT_TO_POINTER (5));
+ g_assert_cmpint (GPOINTER_TO_INT (g_queue_pop_head (q)), ==, 5);
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 4);
node = q->tail;
- g_assert (node == g_queue_pop_tail_link (q));
+ g_assert_true (node == g_queue_pop_tail_link (q));
check_integrity (q);
g_list_free_1 (node);
g_assert_cmpint (g_list_length (q->head), ==, 3);
data = q->head->data;
- g_assert (data == g_queue_pop_head (q));
+ g_assert_true (data == g_queue_pop_head (q));
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 2);
- g_assert (g_queue_pop_tail (q) == GINT_TO_POINTER (2));
+ g_assert_cmpint (GPOINTER_TO_INT (g_queue_pop_tail (q)), ==, 2);
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 1);
- g_assert (q->head == q->tail);
- g_assert (g_queue_pop_tail (q) == GINT_TO_POINTER (3));
+ g_assert_true (q->head == q->tail);
+ g_assert_cmpint (GPOINTER_TO_INT (g_queue_pop_tail (q)), ==, 3);
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 0);
- g_assert (g_queue_pop_head (q) == NULL);
+ g_assert_null (g_queue_pop_head (q));
check_integrity (q);
- g_assert (g_queue_pop_head_link (q) == NULL);
+ g_assert_null (g_queue_pop_head_link (q));
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 0);
- g_assert (g_queue_pop_tail_link (q) == NULL);
+ g_assert_null (g_queue_pop_tail_link (q));
check_integrity (q);
g_assert_cmpint (g_list_length (q->head), ==, 0);
@@ -913,7 +926,7 @@ test_copy (void)
for (i = 0; i < 200; ++i)
{
g_queue_push_nth (q, GINT_TO_POINTER (i), i);
- g_assert (g_queue_find (q, GINT_TO_POINTER (i)));
+ g_assert_nonnull (g_queue_find (q, GINT_TO_POINTER (i)));
check_integrity (q);
check_integrity (q2);
}
@@ -959,15 +972,22 @@ test_off_by_one (void)
g_queue_push_tail (q, GINT_TO_POINTER (1234));
check_integrity (q);
node = g_queue_peek_tail_link (q);
- g_assert (node != NULL && node->data == GINT_TO_POINTER (1234));
+ g_assert_nonnull (node);
+ g_assert_cmpint (GPOINTER_TO_INT (node->data), ==, 1234);
+
node = g_queue_peek_nth_link (q, g_queue_get_length (q));
- g_assert (node == NULL);
+ g_assert_null (node);
+
node = g_queue_peek_nth_link (q, g_queue_get_length (q) - 1);
- g_assert (node->data == GINT_TO_POINTER (1234));
+ g_assert_cmpint (GPOINTER_TO_INT (node->data), ==, 1234);
+
node = g_queue_pop_nth_link (q, g_queue_get_length (q));
- g_assert (node == NULL);
+ g_assert_null (node);
+
node = g_queue_pop_nth_link (q, g_queue_get_length (q) - 1);
- g_assert (node != NULL && node->data == GINT_TO_POINTER (1234));
+ g_assert_nonnull (node);
+ g_assert_cmpint (GPOINTER_TO_INT (node->data), ==, 1234);
+
g_list_free_1 (node);
g_queue_free (q);
@@ -990,11 +1010,11 @@ test_find_custom (void)
g_queue_push_tail (q, GINT_TO_POINTER (1));
g_queue_push_tail (q, GINT_TO_POINTER (2));
node = g_queue_find_custom (q, GINT_TO_POINTER (1), find_custom);
- g_assert (node != NULL);
+ g_assert_nonnull (node);
node = g_queue_find_custom (q, GINT_TO_POINTER (2), find_custom);
- g_assert (node != NULL);
+ g_assert_nonnull (node);
node = g_queue_find_custom (q, GINT_TO_POINTER (3), find_custom);
- g_assert (node == NULL);
+ g_assert_null (node);
g_queue_free (q);
}
@@ -1008,10 +1028,10 @@ test_static (void)
g_queue_init (&q);
check_integrity (&q);
- g_assert (g_queue_is_empty (&q));
+ g_assert_true (g_queue_is_empty (&q));
check_integrity (&q2);
- g_assert (g_queue_is_empty (&q2));
+ g_assert_true (g_queue_is_empty (&q2));
}
static void
@@ -1027,7 +1047,7 @@ test_clear (void)
g_queue_clear (q);
check_integrity (q);
- g_assert (g_queue_is_empty (q));
+ g_assert_true (g_queue_is_empty (q));
g_queue_free (q);
}
@@ -1223,13 +1243,13 @@ test_free_full (void)
g_queue_push_tail (queue, one = new_item (1));
g_queue_push_tail (queue, two = new_item (2));
g_queue_push_tail (queue, three = new_item (3));
- g_assert (!one->freed);
- g_assert (!two->freed);
- g_assert (!three->freed);
+ g_assert_false (one->freed);
+ g_assert_false (two->freed);
+ g_assert_false (three->freed);
g_queue_free_full (queue, free_func);
- g_assert (one->freed);
- g_assert (two->freed);
- g_assert (three->freed);
+ g_assert_true (one->freed);
+ g_assert_true (two->freed);
+ g_assert_true (three->freed);
g_slice_free (QueueItem, one);
g_slice_free (QueueItem, two);
g_slice_free (QueueItem, three);
diff --git a/glib/tests/rand.c b/glib/tests/rand.c
index 37f4ddd41..63c578967 100644
--- a/glib/tests/rand.c
+++ b/glib/tests/rand.c
@@ -1,6 +1,8 @@
/* Unit tests for grand
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/rec-mutex.c b/glib/tests/rec-mutex.c
index de925f329..983886f26 100644
--- a/glib/tests/rec-mutex.c
+++ b/glib/tests/rec-mutex.c
@@ -2,6 +2,8 @@
* Copyright (C) 2011 Red Hat, Inc
* Author: Matthias Clasen
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -60,75 +62,85 @@ test_rec_mutex3 (void)
gboolean ret;
ret = g_rec_mutex_trylock (&mutex);
- g_assert (ret);
+ g_assert_true (ret);
ret = g_rec_mutex_trylock (&mutex);
- g_assert (ret);
+ g_assert_true (ret);
g_rec_mutex_unlock (&mutex);
g_rec_mutex_unlock (&mutex);
}
-#define LOCKS 48
-#define ITERATIONS 10000
-#define THREADS 100
-
+typedef struct {
+ size_t n_locks;
+ unsigned int n_iterations;
+ size_t n_threads;
+ GThread **threads; /* (array length=n_threads) */
+ GThread **owners; /* (array length=n_locks), each element is locked by the corresponding mutex in @locks */
+ GRecMutex *locks; /* (array length=n_locks) */
+} ThreadTestData;
-GThread *owners[LOCKS];
-GRecMutex locks[LOCKS];
+static void
+thread_test_data_clear (ThreadTestData *data)
+{
+ g_free (data->locks);
+ g_free (data->owners);
+ g_free (data->threads);
+}
static void
-acquire (gint nr)
+acquire (ThreadTestData *data,
+ unsigned int nr)
{
GThread *self;
self = g_thread_self ();
- if (!g_rec_mutex_trylock (&locks[nr]))
+ if (!g_rec_mutex_trylock (&data->locks[nr]))
{
if (g_test_verbose ())
g_printerr ("thread %p going to block on lock %d\n", self, nr);
- g_rec_mutex_lock (&locks[nr]);
+ g_rec_mutex_lock (&data->locks[nr]);
}
- g_assert (owners[nr] == NULL); /* hopefully nobody else is here */
- owners[nr] = self;
+ g_assert_null (data->owners[nr]); /* hopefully nobody else is here */
+ data->owners[nr] = self;
/* let some other threads try to ruin our day */
g_thread_yield ();
g_thread_yield ();
- g_assert (owners[nr] == self); /* hopefully this is still us... */
+ g_assert_true (data->owners[nr] == self); /* hopefully this is still us... */
if (g_test_verbose ())
g_printerr ("thread %p recursively taking lock %d\n", self, nr);
- g_rec_mutex_lock (&locks[nr]); /* we're recursive, after all */
+ g_rec_mutex_lock (&data->locks[nr]); /* we're recursive, after all */
- g_assert (owners[nr] == self); /* hopefully this is still us... */
+ g_assert_true (data->owners[nr] == self); /* hopefully this is still us... */
- g_rec_mutex_unlock (&locks[nr]);
+ g_rec_mutex_unlock (&data->locks[nr]);
g_thread_yield ();
g_thread_yield ();
- g_assert (owners[nr] == self); /* hopefully this is still us... */
- owners[nr] = NULL; /* make way for the next guy */
+ g_assert_true (data->owners[nr] == self); /* hopefully this is still us... */
+ data->owners[nr] = NULL; /* make way for the next guy */
- g_rec_mutex_unlock (&locks[nr]);
+ g_rec_mutex_unlock (&data->locks[nr]);
}
static gpointer
-thread_func (gpointer data)
+thread_func (gpointer user_data)
{
- gint i;
+ ThreadTestData *data = user_data;
GRand *rand;
rand = g_rand_new ();
- for (i = 0; i < ITERATIONS; i++)
- acquire (g_rand_int_range (rand, 0, LOCKS));
+ for (unsigned int i = 0; i < data->n_iterations; i++)
+ acquire (data, g_rand_int_range (rand, 0, data->n_locks));
g_rand_free (rand);
@@ -138,23 +150,41 @@ thread_func (gpointer data)
static void
test_rec_mutex4 (void)
{
- gint i;
- GThread *threads[THREADS];
+ ThreadTestData data;
- for (i = 0; i < LOCKS; i++)
- g_rec_mutex_init (&locks[i]);
+ data.n_locks = 48;
+ data.n_iterations = 10000;
+ data.n_threads = 100;
- for (i = 0; i < THREADS; i++)
- threads[i] = g_thread_new ("test", thread_func, NULL);
+ /* Some CI runners have a hard time with this much contention, so tone it down
+ * a bit for CI. */
+ if (!g_test_perf ())
+ {
+ data.n_locks /= 10;
+ data.n_iterations /= 10;
+ data.n_threads /= 10;
+ }
- for (i = 0; i < THREADS; i++)
- g_thread_join (threads[i]);
+ data.threads = g_new0 (GThread*, data.n_threads);
+ data.owners = g_new0 (GThread*, data.n_locks);
+ data.locks = g_new0 (GRecMutex, data.n_locks);
+
+ for (size_t i = 0; i < data.n_locks; i++)
+ g_rec_mutex_init (&data.locks[i]);
+
+ for (size_t i = 0; i < data.n_threads; i++)
+ data.threads[i] = g_thread_new ("test", thread_func, &data);
+
+ for (size_t i = 0; i < data.n_threads; i++)
+ g_thread_join (data.threads[i]);
+
+ for (size_t i = 0; i < data.n_locks; i++)
+ g_rec_mutex_clear (&data.locks[i]);
- for (i = 0; i < LOCKS; i++)
- g_rec_mutex_clear (&locks[i]);
+ for (size_t i = 0; i < data.n_locks; i++)
+ g_assert_null (data.owners[i]);
- for (i = 0; i < LOCKS; i++)
- g_assert (owners[i] == NULL);
+ thread_test_data_clear (&data);
}
static gint count_to = 0;
@@ -193,7 +223,7 @@ static void
test_mutex_perf (gconstpointer data)
{
gint c = GPOINTER_TO_INT (data);
- GThread *threads[THREADS];
+ GThread *threads[100];
gint64 start_time;
gint n_threads;
gdouble rate;
@@ -202,7 +232,7 @@ test_mutex_perf (gconstpointer data)
n_threads = c / 256;
depth = c % 256;
- count_to = g_test_perf () ? 100000000 : 1;
+ count_to = g_test_perf () ? 100000000 : n_threads + 1;
for (i = 0; i < n_threads - 1; i++)
threads[i] = g_thread_new ("test", addition_thread, &x);
diff --git a/glib/tests/regex.c b/glib/tests/regex.c
index 847676e1b..108252629 100644
--- a/glib/tests/regex.c
+++ b/glib/tests/regex.c
@@ -53,6 +53,10 @@
/* A random value use to mark untouched integer variables. */
#define UNTOUCHED -559038737
+/* Lengths of test strings in JIT stack tests */
+#define TEST_STRING_LEN 20000
+#define LARGE_TEST_STRING_LEN 200000
+
static gint total;
typedef struct {
@@ -2480,6 +2484,61 @@ test_jit_unsupported_matching_options (void)
g_regex_unref (regex);
}
+static void
+test_unmatched_named_subpattern (void)
+{
+ GRegex *regex = NULL;
+ GMatchInfo *match_info = NULL;
+ const char *string = "Test";
+
+ g_test_summary ("Test that unmatched subpatterns can still be queried");
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/2881");
+
+ regex = g_regex_new ("((?<Key>[^\\s\"'\\=]+)|\"(?<Key>[^\"]*)\"|'(?<Key>[^']*)')"
+ "(?:\\=((?<Value>[^\\s\"']+)|\"(?<Value>[^\"]*)\"|'(?<Value>[^']*)'))?",
+ G_REGEX_DUPNAMES, 0, NULL);
+
+ g_assert_true (g_regex_match (regex, string, 0, &match_info));
+
+ while (g_match_info_matches (match_info))
+ {
+ char *key = g_match_info_fetch_named (match_info, "Key");
+ char *value = g_match_info_fetch_named (match_info, "Value");
+
+ g_assert_cmpstr (key, ==, "Test");
+ g_assert_cmpstr (value, ==, "");
+
+ g_free (key);
+ g_free (value);
+ g_match_info_next (match_info, NULL);
+ }
+
+ g_match_info_unref (match_info);
+ g_regex_unref (regex);
+}
+
+static void
+test_compiled_regex_after_jit_failure (void)
+{
+ GRegex *regex = NULL;
+ char string[LARGE_TEST_STRING_LEN];
+
+ g_test_summary ("Test that failed OPTIMIZE regex doesn't cause issues on subsequent matches");
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/2824");
+
+ regex = g_regex_new ("^(?:[ \t\n]|[^[:cntrl:]])*$", G_REGEX_OPTIMIZE, 0, NULL);
+
+ /* Generate large enough string to cause JIT failure on this regex. */
+ memset (string, '*', LARGE_TEST_STRING_LEN);
+ string[LARGE_TEST_STRING_LEN - 1] = '\0';
+
+ g_assert_true (g_regex_match (regex, string, 0, NULL));
+ /* Second assert here is the key - does the first JIT overflow mess up our state? */
+ g_assert_true (g_regex_match (regex, string, 0, NULL));
+
+ g_regex_unref (regex);
+}
+
int
main (int argc, char *argv[])
{
@@ -2499,6 +2558,8 @@ main (int argc, char *argv[])
g_test_add_func ("/regex/max-lookbehind", test_max_lookbehind);
g_test_add_func ("/regex/compile-errors", test_compile_errors);
g_test_add_func ("/regex/jit-unsupported-matching", test_jit_unsupported_matching_options);
+ g_test_add_func ("/regex/unmatched-named-subpattern", test_unmatched_named_subpattern);
+ g_test_add_func ("/regex/compiled-regex-after-jit-failure", test_compiled_regex_after_jit_failure);
/* TEST_NEW(pattern, compile_opts, match_opts) */
TEST_NEW("[A-Z]+", G_REGEX_CASELESS | G_REGEX_EXTENDED | G_REGEX_OPTIMIZE, G_REGEX_MATCH_NOTBOL | G_REGEX_MATCH_PARTIAL);
@@ -2704,6 +2765,19 @@ G_GNUC_END_IGNORE_DEPRECATIONS
TEST_MATCH_SIMPLE("\\", "a", 0, 0, FALSE);
TEST_MATCH_SIMPLE("[", "", 0, 0, FALSE);
+ /* Test that JIT compiler has enough stack */
+ char test_string[TEST_STRING_LEN];
+ memset (test_string, '*', TEST_STRING_LEN);
+ test_string[TEST_STRING_LEN - 1] = '\0';
+ TEST_MATCH_SIMPLE ("^(?:[ \t\n]|[^[:cntrl:]])*$", test_string, 0, 0, TRUE);
+
+ /* Test that gregex falls back to unoptimized matching when reaching the JIT
+ * compiler stack limit */
+ char large_test_string[LARGE_TEST_STRING_LEN];
+ memset (large_test_string, '*', LARGE_TEST_STRING_LEN);
+ large_test_string[LARGE_TEST_STRING_LEN - 1] = '\0';
+ TEST_MATCH_SIMPLE ("^(?:[ \t\n]|[^[:cntrl:]])*$", large_test_string, 0, 0, TRUE);
+
/* TEST_MATCH(pattern, compile_opts, match_opts, string,
* string_len, start_position, match_opts2, expected) */
TEST_MATCH("a", 0, 0, "a", -1, 0, 0, TRUE);
diff --git a/glib/tests/rwlock.c b/glib/tests/rwlock.c
index 6c0b281f7..1e76644e1 100644
--- a/glib/tests/rwlock.c
+++ b/glib/tests/rwlock.c
@@ -2,6 +2,8 @@
* Copyright (C) 2011 Red Hat, Inc
* Author: Matthias Clasen
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/sequence.c b/glib/tests/sequence.c
index 842bc5435..5cf0b415a 100644
--- a/glib/tests/sequence.c
+++ b/glib/tests/sequence.c
@@ -122,7 +122,7 @@ check_integrity (SequenceInfo *info)
{
GList *list;
GSequenceIter *iter;
- int i;
+ unsigned int i;
g_sequence_check (info->sequence);
@@ -149,6 +149,7 @@ check_integrity (SequenceInfo *info)
i++;
}
+ g_assert_cmpuint (i, ==, info->n_items);
g_assert (info->n_items == g_queue_get_length (info->queue));
g_assert ((guint) g_sequence_get_length (info->sequence) == info->n_items);
}
diff --git a/glib/tests/slice-color.c b/glib/tests/slice-color.c
deleted file mode 100644
index ceda93855..000000000
--- a/glib/tests/slice-color.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/* GLIB sliced memory - fast threaded memory chunk allocator
- * Copyright (C) 2005 Tim Janik
- *
- * SPDX-License-Identifier: LGPL-2.1-or-later
- *
- * This library 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.
- *
- * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <glib.h>
-
-#define ALIGN(size, base) \
- ((base) * (gsize) (((size) + (base) - 1) / (base)))
-
-static void
-fill_memory (guint **mem,
- guint n,
- guint val)
-{
- guint j;
-
- for (j = 0; j < n; j++)
- mem[j][0] = val;
-}
-
-static guint64
-access_memory3 (guint **mema,
- guint **memb,
- guint **memd,
- guint n,
- guint64 repeats)
-{
- guint64 accu = 0, i, j;
-
- for (i = 0; i < repeats; i++)
- {
- for (j = 1; j < n; j += 2)
- memd[j][0] = mema[j][0] + memb[j][0];
- }
-
- for (i = 0; i < repeats; i++)
- for (j = 0; j < n; j++)
- accu += memd[j][0];
-
- return accu;
-}
-
-static void
-touch_mem (guint64 block_size,
- guint64 n_blocks,
- guint64 repeats)
-{
- GTimer *timer;
- guint **mema, **memb, **memc;
- guint64 j, accu, n = n_blocks;
-
- mema = g_new (guint*, n);
- for (j = 0; j < n; j++)
- mema[j] = g_slice_alloc (block_size);
-
- memb = g_new (guint*, n);
- for (j = 0; j < n; j++)
- memb[j] = g_slice_alloc (block_size);
-
- memc = g_new (guint*, n);
- for (j = 0; j < n; j++)
- memc[j] = g_slice_alloc (block_size);
-
- timer = g_timer_new();
-
- fill_memory (mema, n, 2);
- fill_memory (memb, n, 3);
- fill_memory (memc, n, 4);
-
- access_memory3 (mema, memb, memc, n, 3);
-
- g_timer_start (timer);
- accu = access_memory3 (mema, memb, memc, n, repeats);
- g_timer_stop (timer);
-
- g_test_message ("Access-time = %fs", g_timer_elapsed (timer, NULL));
- g_assert_cmpuint (accu / repeats, ==, (2 + 3) * n / 2 + 4 * n / 2);
-
- for (j = 0; j < n; j++)
- {
- g_slice_free1 (block_size, mema[j]);
- g_slice_free1 (block_size, memb[j]);
- g_slice_free1 (block_size, memc[j]);
- }
-
- g_timer_destroy (timer);
- g_free (mema);
- g_free (memb);
- g_free (memc);
-}
-
-static void
-test_slice_colors (void)
-{
- guint64 block_size = 512;
- guint64 area_size = 1024 * 1024;
- guint64 n_blocks, repeats = 1000000;
-
- /* figure number of blocks from block and area size.
- * divide area by 3 because touch_mem() allocates 3 areas */
- n_blocks = area_size / 3 / ALIGN (block_size, sizeof (gsize) * 2);
-
- g_test_message ("Allocate and touch %" G_GUINT64_FORMAT
- " blocks of %" G_GUINT64_FORMAT " bytes"
- " (= %" G_GUINT64_FORMAT " bytes) %" G_GUINT64_FORMAT
- " times with color increment",
- n_blocks, block_size, n_blocks * block_size, repeats);
-
- touch_mem (block_size, n_blocks, repeats);
-}
-
-int
-main (int argc, char **argv)
-{
- g_test_init (&argc, &argv, NULL);
-
- g_test_add_func ("/slice/colors", test_slice_colors);
-
- return g_test_run ();
-}
diff --git a/glib/tests/slice-concurrent.c b/glib/tests/slice-concurrent.c
deleted file mode 100644
index 568e67cf3..000000000
--- a/glib/tests/slice-concurrent.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/* test for gslice cross thread allocation/free
- * Copyright (C) 2006 Stefan Westerfeld
- * Copyright (C) 2007 Tim Janik
- *
- * SPDX-License-Identifier: LGPL-2.1-or-later
- *
- * This library 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.
- *
- * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <glib.h>
-
-#include <stdlib.h>
-
-#define N_THREADS 8
-#define N_ALLOCS 50000
-#define MAX_BLOCK_SIZE 64
-
-struct ThreadData
-{
- int thread_id;
- GThread* gthread;
-
- GMutex to_free_mutex;
- void* to_free [N_THREADS * N_ALLOCS];
- int bytes_to_free [N_THREADS * N_ALLOCS];
- int n_to_free;
- int n_freed;
-} tdata[N_THREADS];
-
-static void *
-thread_func (void *arg)
-{
- int i;
- struct ThreadData *td = arg;
-
- for (i = 0; i < N_ALLOCS; i++)
- {
- int bytes, f, t;
- char *mem;
-
- if (rand() % (N_ALLOCS / 20) == 0)
- g_test_message ("%c", 'a' - 1 + td->thread_id);
-
- /* allocate block of random size and randomly fill */
- bytes = rand() % MAX_BLOCK_SIZE + 1;
- mem = g_slice_alloc (bytes);
-
- for (f = 0; f < bytes; f++)
- mem[f] = rand();
-
- /* associate block with random thread */
- t = rand() % N_THREADS;
- g_mutex_lock (&tdata[t].to_free_mutex);
- tdata[t].to_free[tdata[t].n_to_free] = mem;
- tdata[t].bytes_to_free[tdata[t].n_to_free] = bytes;
- tdata[t].n_to_free++;
- g_mutex_unlock (&tdata[t].to_free_mutex);
-
- /* shuffle thread execution order every once in a while */
- if (rand() % 97 == 0)
- {
- if (rand() % 2)
- g_thread_yield(); /* concurrent shuffling for single core */
- else
- g_usleep (1000); /* concurrent shuffling for multi core */
- }
-
- /* free a block associated with this thread */
- g_mutex_lock (&td->to_free_mutex);
- if (td->n_to_free > 0)
- {
- td->n_to_free--;
- g_slice_free1 (td->bytes_to_free[td->n_to_free],
- td->to_free[td->n_to_free]);
- td->n_freed++;
- }
- g_mutex_unlock (&td->to_free_mutex);
- }
-
- return NULL;
-}
-
-static void
-test_concurrent_slice (void)
-{
- int t;
-
- for (t = 0; t < N_THREADS; t++)
- {
- tdata[t].thread_id = t + 1;
- tdata[t].n_to_free = 0;
- tdata[t].n_freed = 0;
- }
-
- for (t = 0; t < N_THREADS; t++)
- {
- tdata[t].gthread = g_thread_new (NULL, thread_func, &tdata[t]);
- g_assert_nonnull (tdata[t].gthread);
- }
-
- for (t = 0; t < N_THREADS; t++)
- {
- g_thread_join (tdata[t].gthread);
- }
-
- for (t = 0; t < N_THREADS; t++)
- {
- g_test_message ("Thread %d: %d blocks freed, %d blocks not freed",
- tdata[t].thread_id, tdata[t].n_freed, tdata[t].n_to_free);
- }
-}
-
-int
-main (int argc, char **argv)
-{
- g_test_init (&argc, &argv, NULL);
-
- g_test_add_func ("/slice/concurrent", test_concurrent_slice);
-
- return g_test_run ();
-}
diff --git a/glib/tests/slice-eager-freeing.c b/glib/tests/slice-eager-freeing.c
deleted file mode 100644
index 3349e47cb..000000000
--- a/glib/tests/slice-eager-freeing.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* GLIB sliced memory - fast threaded memory chunk allocator
- * Copyright (C) 2005 Tim Janik
- *
- * SPDX-License-Identifier: LGPL-2.1-or-later
- *
- * This library 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.
- *
- * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/* We are testing some deprecated APIs here */
-#ifndef GLIB_DISABLE_DEPRECATION_WARNINGS
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-#endif
-
-#include <glib.h>
-
-#define quick_rand32() \
- (rand_accu = 1664525 * rand_accu + 1013904223, rand_accu)
-
-static guint prime_size = 1021; /* 769; 509 */
-static gboolean clean_memchunks = FALSE;
-static guint number_of_blocks = 10000; /* total number of blocks allocated */
-static guint number_of_repetitions = 10000; /* number of alloc+free repetitions */
-static gboolean want_corruption = FALSE;
-
-/* --- old memchunk prototypes (memchunks.c) --- */
-GMemChunk* old_mem_chunk_new (const gchar *name,
- gulong atom_size,
- gulong area_size,
- gint type);
-void old_mem_chunk_destroy (GMemChunk *mem_chunk);
-gpointer old_mem_chunk_alloc (GMemChunk *mem_chunk);
-gpointer old_mem_chunk_alloc0 (GMemChunk *mem_chunk);
-void old_mem_chunk_free (GMemChunk *mem_chunk,
- gpointer mem);
-void old_mem_chunk_clean (GMemChunk *mem_chunk);
-void old_mem_chunk_reset (GMemChunk *mem_chunk);
-void old_mem_chunk_print (GMemChunk *mem_chunk);
-void old_mem_chunk_info (void);
-
-#ifndef G_ALLOC_AND_FREE
-#define G_ALLOC_AND_FREE 2
-#endif
-
-/* --- functions --- */
-static inline int
-corruption (void)
-{
- if (G_UNLIKELY (want_corruption))
- {
- /* corruption per call likelyness is about 1:4000000 */
- guint32 r = g_random_int() % 8000009;
- return r == 277 ? +1 : r == 281 ? -1 : 0;
- }
- return 0;
-}
-
-static gpointer
-test_sliced_mem_thread (gpointer data)
-{
- guint32 rand_accu = 2147483563;
- guint i, j;
- guint8 **ps;
- guint *ss;
-
- /* initialize random numbers */
- if (data)
- rand_accu = *(guint32*) data;
- else
- {
- GTimeVal rand_tv;
- g_get_current_time (&rand_tv);
- rand_accu = rand_tv.tv_usec + (rand_tv.tv_sec << 16);
- }
-
- ps = g_new (guint8*, number_of_blocks);
- ss = g_new (guint, number_of_blocks);
- /* create number_of_blocks random sizes */
- for (i = 0; i < number_of_blocks; i++)
- ss[i] = quick_rand32() % prime_size;
- /* allocate number_of_blocks blocks */
- for (i = 0; i < number_of_blocks; i++)
- ps[i] = g_slice_alloc (ss[i] + corruption());
- for (j = 0; j < number_of_repetitions; j++)
- {
- /* free number_of_blocks/2 blocks */
- for (i = 0; i < number_of_blocks; i += 2)
- g_slice_free1 (ss[i] + corruption(), ps[i] + corruption());
- /* allocate number_of_blocks/2 blocks with new sizes */
- for (i = 0; i < number_of_blocks; i += 2)
- {
- ss[i] = quick_rand32() % prime_size;
- ps[i] = g_slice_alloc (ss[i] + corruption());
- }
- }
- /* free number_of_blocks blocks */
- for (i = 0; i < number_of_blocks; i++)
- g_slice_free1 (ss[i] + corruption(), ps[i] + corruption());
- /* alloc and free many equally sized chunks in a row */
- for (i = 0; i < number_of_repetitions; i++)
- {
- guint sz = quick_rand32() % prime_size;
- guint k = number_of_blocks / 100;
- for (j = 0; j < k; j++)
- ps[j] = g_slice_alloc (sz + corruption());
- for (j = 0; j < k; j++)
- g_slice_free1 (sz + corruption(), ps[j] + corruption());
- }
- g_free (ps);
- g_free (ss);
-
- return NULL;
-}
-
-static void
-test_slice_eager_freeing (void)
-{
- GThread **threads;
- guint i, n_threads = 1;
-
- clean_memchunks = TRUE;
-
- g_test_message ("Starting %d threads allocating random blocks <= %u bytes",
- n_threads, prime_size);
-
- threads = g_alloca (sizeof(GThread*) * n_threads);
-
- for (i = 0; i < n_threads; i++)
- threads[i] = g_thread_create (test_sliced_mem_thread, NULL, TRUE, NULL);
-
- for (i = 0; i < n_threads; i++)
- g_thread_join (threads[i]);
-
- clean_memchunks = FALSE;
-}
-
-int
-main (int argc,
- char *argv[])
-{
- g_slice_set_config (G_SLICE_CONFIG_WORKING_SET_MSECS, 0);
-
- g_test_init (&argc, &argv, NULL);
-
- g_test_add_func ("/slice/eager-freeing", test_slice_eager_freeing);
-
- return g_test_run ();
-}
diff --git a/glib/tests/slice-glib.c b/glib/tests/slice-glib.c
deleted file mode 100644
index f96e38741..000000000
--- a/glib/tests/slice-glib.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* GLIB sliced memory - fast threaded memory chunk allocator
- * Copyright (C) 2005 Tim Janik
- *
- * SPDX-License-Identifier: LGPL-2.1-or-later
- *
- * This library 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.
- *
- * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/* We are testing some deprecated APIs here */
-#ifndef GLIB_DISABLE_DEPRECATION_WARNINGS
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-#endif
-
-#include <glib.h>
-
-#define quick_rand32() \
- (rand_accu = 1664525 * rand_accu + 1013904223, rand_accu)
-
-static guint prime_size = 1021; /* 769; 509 */
-static guint number_of_blocks = 10000; /* total number of blocks allocated */
-static guint number_of_repetitions = 10000; /* number of alloc+free repetitions */
-static gboolean want_corruption = FALSE;
-
-/* --- old memchunk prototypes (memchunks.c) --- */
-GMemChunk* old_mem_chunk_new (const gchar *name,
- gulong atom_size,
- gulong area_size,
- gint type);
-void old_mem_chunk_destroy (GMemChunk *mem_chunk);
-gpointer old_mem_chunk_alloc (GMemChunk *mem_chunk);
-gpointer old_mem_chunk_alloc0 (GMemChunk *mem_chunk);
-void old_mem_chunk_free (GMemChunk *mem_chunk,
- gpointer mem);
-void old_mem_chunk_clean (GMemChunk *mem_chunk);
-void old_mem_chunk_reset (GMemChunk *mem_chunk);
-void old_mem_chunk_print (GMemChunk *mem_chunk);
-void old_mem_chunk_info (void);
-
-#ifndef G_ALLOC_AND_FREE
-#define G_ALLOC_AND_FREE 2
-#endif
-
-/* --- functions --- */
-static inline int
-corruption (void)
-{
- if (G_UNLIKELY (want_corruption))
- {
- /* corruption per call likelyness is about 1:4000000 */
- guint32 r = g_random_int() % 8000009;
- return r == 277 ? +1 : r == 281 ? -1 : 0;
- }
- return 0;
-}
-
-static gpointer
-test_sliced_mem_thread (gpointer data)
-{
- guint32 rand_accu = 2147483563;
- guint i, j;
- guint8 **ps;
- guint *ss;
-
- /* initialize random numbers */
- if (data)
- rand_accu = *(guint32*) data;
- else
- {
- GTimeVal rand_tv;
- g_get_current_time (&rand_tv);
- rand_accu = rand_tv.tv_usec + (rand_tv.tv_sec << 16);
- }
-
- ps = g_new (guint8*, number_of_blocks);
- ss = g_new (guint, number_of_blocks);
- /* create number_of_blocks random sizes */
- for (i = 0; i < number_of_blocks; i++)
- ss[i] = quick_rand32() % prime_size;
- /* allocate number_of_blocks blocks */
- for (i = 0; i < number_of_blocks; i++)
- ps[i] = g_slice_alloc (ss[i] + corruption());
- for (j = 0; j < number_of_repetitions; j++)
- {
- /* free number_of_blocks/2 blocks */
- for (i = 0; i < number_of_blocks; i += 2)
- g_slice_free1 (ss[i] + corruption(), ps[i] + corruption());
- /* allocate number_of_blocks/2 blocks with new sizes */
- for (i = 0; i < number_of_blocks; i += 2)
- {
- ss[i] = quick_rand32() % prime_size;
- ps[i] = g_slice_alloc (ss[i] + corruption());
- }
- }
- /* free number_of_blocks blocks */
- for (i = 0; i < number_of_blocks; i++)
- g_slice_free1 (ss[i] + corruption(), ps[i] + corruption());
- /* alloc and free many equally sized chunks in a row */
- for (i = 0; i < number_of_repetitions; i++)
- {
- guint sz = quick_rand32() % prime_size;
- guint k = number_of_blocks / 100;
- for (j = 0; j < k; j++)
- ps[j] = g_slice_alloc (sz + corruption());
- for (j = 0; j < k; j++)
- g_slice_free1 (sz + corruption(), ps[j] + corruption());
- }
- g_free (ps);
- g_free (ss);
-
- return NULL;
-}
-
-static void
-test_slice_glib (void)
-{
- GThread **threads;
- guint i, n_threads = 1;
-
- g_test_message ("Starting %d threads allocating random blocks <= %u bytes",
- n_threads, prime_size);
-
- threads = g_alloca (sizeof(GThread*) * n_threads);
-
- for (i = 0; i < n_threads; i++)
- threads[i] = g_thread_create (test_sliced_mem_thread, NULL, TRUE, NULL);
-
- for (i = 0; i < n_threads; i++)
- g_thread_join (threads[i]);
-}
-
-int
-main (int argc,
- char *argv[])
-{
- g_slice_set_config (G_SLICE_CONFIG_ALWAYS_MALLOC, FALSE);
- g_slice_set_config (G_SLICE_CONFIG_BYPASS_MAGAZINES, FALSE);
-
- g_test_init (&argc, &argv, NULL);
-
- g_test_add_func ("/slice/glib", test_slice_glib);
-
- return g_test_run ();
-}
diff --git a/glib/tests/slice-known-pages.c b/glib/tests/slice-known-pages.c
deleted file mode 100644
index ee856068b..000000000
--- a/glib/tests/slice-known-pages.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/* slice-known-pages.c - test GSlice across known pages
- * Copyright (C) 2007 Tim Janik
- *
- * This work is provided "as is"; redistribution and modification
- * in whole or in part, in any medium, physical or electronic is
- * permitted without restriction.
- *
- * This work 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.
- *
- * In no event shall the authors or contributors be liable for any
- * direct, indirect, incidental, special, exemplary, or consequential
- * damages (including, but not limited to, procurement of substitute
- * goods or services; loss of use, data, or profits; or business
- * interruption) however caused and on any theory of liability, whether
- * in contract, strict liability, or tort (including negligence or
- * otherwise) arising in any way out of the use of this software, even
- * if advised of the possibility of such damage.
- */
-
-#include <glib.h>
-
-#define N_PAGES (101) /* number of pages to sample */
-#define SAMPLE_SIZE (7)
-#define PAGE_SIZE (128) /* must be <= minimum GSlice alignment block */
-#define MAGAZINE_PROBES \
- { \
- 97, 265, 347 \
- } /* block sizes hopefully unused */
-#define MAX_PROBE_TRIALS (1031) /* must be >= maximum magazine size */
-
-#define ALIGN(size, base) \
- ((base) * (gsize) (((size) + (base) - 1) / (base)))
-
-static struct {
- void *page;
- void *sample;
-} pages[N_PAGES] = { { NULL, NULL }, };
-
-static const guint magazine_probes[] = MAGAZINE_PROBES;
-
-#define N_MAGAZINE_PROBES G_N_ELEMENTS (magazine_probes)
-
-static void
-release_trash_list (GSList **trash_list,
- gsize block_size)
-{
- while (*trash_list)
- {
- g_slice_free1 (block_size, (*trash_list)->data);
- *trash_list = g_slist_delete_link (*trash_list, *trash_list);
- }
-}
-
-static GSList *free_list = NULL;
-
-static gboolean
-allocate_from_known_page (void)
-{
- guint i, j, n_trials = N_PAGES * PAGE_SIZE / SAMPLE_SIZE; /* upper bound */
- for (i = 0; i < n_trials; i++)
- {
- void *b = g_slice_alloc (SAMPLE_SIZE);
- void *p = (void*) (PAGE_SIZE * ((gsize) b / PAGE_SIZE));
- free_list = g_slist_prepend (free_list, b);
- /* find page */
- for (j = 0; j < N_PAGES; j++)
- if (pages[j].page == p)
- return TRUE;
- }
- return FALSE;
-}
-
-static void
-test_slice_known_pages (void)
-{
- gsize j, n_pages = 0;
- void *mps[N_MAGAZINE_PROBES];
-
- /* probe some magazine sizes */
- for (j = 0; j < N_MAGAZINE_PROBES; j++)
- mps[j] = g_slice_alloc (magazine_probes[j]);
- /* mps[*] now contains pointers to allocated slices */
-
- /* allocate blocks from N_PAGES different pages */
- while (n_pages < N_PAGES)
- {
- void *b = g_slice_alloc (SAMPLE_SIZE);
- void *p = (void*) (PAGE_SIZE * ((gsize) b / PAGE_SIZE));
- for (j = 0; j < N_PAGES; j++)
- if (pages[j].page == p)
- break;
- if (j < N_PAGES) /* known page */
- free_list = g_slist_prepend (free_list, b);
- else /* new page */
- {
- j = n_pages++;
- pages[j].page = p;
- pages[j].sample = b;
- }
- }
- /* release intermediate allocations */
- release_trash_list (&free_list, SAMPLE_SIZE);
-
- /* ensure that we can allocate from known pages */
- g_assert_true (allocate_from_known_page());
-
- /* release intermediate allocations */
- release_trash_list (&free_list, SAMPLE_SIZE);
-
- /* release magazine probes to be retained */
- for (j = 0; j < N_MAGAZINE_PROBES; j++)
- g_slice_free1 (magazine_probes[j], mps[j]);
- /* mps[*] now contains pointers to released slices */
-
- /* ensure probes were retained */
- for (j = 0; j < N_MAGAZINE_PROBES; j++)
- {
- GSList *trash = NULL;
- guint k;
- for (k = 0; k < MAX_PROBE_TRIALS; k++)
- {
- void *mem = g_slice_alloc (magazine_probes[j]);
- if (mem == mps[j])
- break; /* reallocated previously freed slice */
- trash = g_slist_prepend (trash, mem);
- }
- release_trash_list (&trash, magazine_probes[j]);
- g_assert_cmpint (k, <, MAX_PROBE_TRIALS); /* failed to reallocate slice */
- }
- /* mps[*] now contains pointers to reallocated slices */
-
- /* release magazine probes to be retained across known pages */
- for (j = 0; j < N_MAGAZINE_PROBES; j++)
- g_slice_free1 (magazine_probes[j], mps[j]);
- /* mps[*] now contains pointers to released slices */
-
- /* ensure probes were retained */
- for (j = 0; j < N_MAGAZINE_PROBES; j++)
- {
- GSList *trash = NULL;
- guint k;
- for (k = 0; k < MAX_PROBE_TRIALS; k++)
- {
- void *mem = g_slice_alloc (magazine_probes[j]);
- if (mem == mps[j])
- break; /* reallocated previously freed slice */
- trash = g_slist_prepend (trash, mem);
- }
- release_trash_list (&trash, magazine_probes[j]);
- g_assert_cmpint (k, <, MAX_PROBE_TRIALS); /* failed to reallocate slice */
- }
- /* mps[*] now contains pointers to reallocated slices */
-
- /* ensure that we can allocate from known pages */
- g_assert_true (allocate_from_known_page());
-
- /* some cleanups */
- for (j = 0; j < N_MAGAZINE_PROBES; j++)
- g_slice_free1 (magazine_probes[j], mps[j]);
- release_trash_list (&free_list, SAMPLE_SIZE);
-}
-
-int
-main (int argc, char *argv[])
-{
- g_test_init (&argc, &argv, NULL);
-
- g_test_add_func ("/slice/known_pages", test_slice_known_pages);
-
- return g_test_run ();
-}
diff --git a/glib/tests/slice-malloc.c b/glib/tests/slice-malloc.c
deleted file mode 100644
index fe823a940..000000000
--- a/glib/tests/slice-malloc.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* GLIB sliced memory - fast threaded memory chunk allocator
- * Copyright (C) 2005 Tim Janik
- *
- * SPDX-License-Identifier: LGPL-2.1-or-later
- *
- * This library 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.
- *
- * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/* We are testing some deprecated APIs here */
-#ifndef GLIB_DISABLE_DEPRECATION_WARNINGS
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-#endif
-
-#include <glib.h>
-
-#define quick_rand32() \
- (rand_accu = 1664525 * rand_accu + 1013904223, rand_accu)
-
-static guint prime_size = 1021; /* 769; 509 */
-static guint number_of_blocks = 10000; /* total number of blocks allocated */
-static guint number_of_repetitions = 10000; /* number of alloc+free repetitions */
-static gboolean want_corruption = FALSE;
-
-/* --- old memchunk prototypes (memchunks.c) --- */
-GMemChunk* old_mem_chunk_new (const gchar *name,
- gulong atom_size,
- gulong area_size,
- gint type);
-void old_mem_chunk_destroy (GMemChunk *mem_chunk);
-gpointer old_mem_chunk_alloc (GMemChunk *mem_chunk);
-gpointer old_mem_chunk_alloc0 (GMemChunk *mem_chunk);
-void old_mem_chunk_free (GMemChunk *mem_chunk,
- gpointer mem);
-void old_mem_chunk_clean (GMemChunk *mem_chunk);
-void old_mem_chunk_reset (GMemChunk *mem_chunk);
-void old_mem_chunk_print (GMemChunk *mem_chunk);
-void old_mem_chunk_info (void);
-
-#ifndef G_ALLOC_AND_FREE
-#define G_ALLOC_AND_FREE 2
-#endif
-
-/* --- functions --- */
-static inline int
-corruption (void)
-{
- if (G_UNLIKELY (want_corruption))
- {
- /* corruption per call likelyness is about 1:4000000 */
- guint32 r = g_random_int() % 8000009;
- return r == 277 ? +1 : r == 281 ? -1 : 0;
- }
- return 0;
-}
-
-static gpointer
-test_sliced_mem_thread (gpointer data)
-{
- guint32 rand_accu = 2147483563;
- guint i, j;
- guint8 **ps;
- guint *ss;
-
- /* initialize random numbers */
- if (data)
- rand_accu = *(guint32*) data;
- else
- {
- GTimeVal rand_tv;
- g_get_current_time (&rand_tv);
- rand_accu = rand_tv.tv_usec + (rand_tv.tv_sec << 16);
- }
-
- ps = g_new (guint8*, number_of_blocks);
- ss = g_new (guint, number_of_blocks);
- /* create number_of_blocks random sizes */
- for (i = 0; i < number_of_blocks; i++)
- ss[i] = quick_rand32() % prime_size;
- /* allocate number_of_blocks blocks */
- for (i = 0; i < number_of_blocks; i++)
- ps[i] = g_slice_alloc (ss[i] + corruption());
- for (j = 0; j < number_of_repetitions; j++)
- {
- /* free number_of_blocks/2 blocks */
- for (i = 0; i < number_of_blocks; i += 2)
- g_slice_free1 (ss[i] + corruption(), ps[i] + corruption());
- /* allocate number_of_blocks/2 blocks with new sizes */
- for (i = 0; i < number_of_blocks; i += 2)
- {
- ss[i] = quick_rand32() % prime_size;
- ps[i] = g_slice_alloc (ss[i] + corruption());
- }
- }
- /* free number_of_blocks blocks */
- for (i = 0; i < number_of_blocks; i++)
- g_slice_free1 (ss[i] + corruption(), ps[i] + corruption());
- /* alloc and free many equally sized chunks in a row */
- for (i = 0; i < number_of_repetitions; i++)
- {
- guint sz = quick_rand32() % prime_size;
- guint k = number_of_blocks / 100;
- for (j = 0; j < k; j++)
- ps[j] = g_slice_alloc (sz + corruption());
- for (j = 0; j < k; j++)
- g_slice_free1 (sz + corruption(), ps[j] + corruption());
- }
- g_free (ps);
- g_free (ss);
-
- return NULL;
-}
-
-static void
-test_slice_malloc (void)
-{
- GThread **threads;
- guint i, n_threads = 1;
-
- g_test_message ("Starting %d threads allocating random blocks <= %u bytes",
- n_threads, prime_size);
-
- threads = g_alloca (sizeof(GThread*) * n_threads);
-
- for (i = 0; i < n_threads; i++)
- threads[i] = g_thread_create (test_sliced_mem_thread, NULL, TRUE, NULL);
-
- for (i = 0; i < n_threads; i++)
- g_thread_join (threads[i]);
-}
-
-int
-main (int argc,
- char *argv[])
-{
- g_slice_set_config (G_SLICE_CONFIG_ALWAYS_MALLOC, TRUE);
-
- g_test_init (&argc, &argv, NULL);
-
- g_test_add_func ("/slice/malloc", test_slice_malloc);
-
- return g_test_run ();
-}
diff --git a/glib/tests/slice-memchunk.c b/glib/tests/slice-memchunk.c
deleted file mode 100644
index f81a58902..000000000
--- a/glib/tests/slice-memchunk.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/* GLIB sliced memory - fast threaded memory chunk allocator
- * Copyright (C) 2005 Tim Janik
- *
- * SPDX-License-Identifier: LGPL-2.1-or-later
- *
- * This library 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.
- *
- * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/* We are testing some deprecated APIs here */
-#ifndef GLIB_DISABLE_DEPRECATION_WARNINGS
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-#endif
-
-#include <glib.h>
-
-#define quick_rand32() \
- (rand_accu = 1664525 * rand_accu + 1013904223, rand_accu)
-
-static const guint prime_size = 1021; /* 769; 509 */
-static const gboolean clean_memchunks = FALSE;
-static const guint number_of_blocks = 10000; /* total number of blocks allocated */
-static const guint number_of_repetitions = 10000; /* number of alloc+free repetitions */
-
-/* --- old memchunk prototypes (memchunks.c) --- */
-GMemChunk* old_mem_chunk_new (const gchar *name,
- gulong atom_size,
- gulong area_size,
- gint type);
-void old_mem_chunk_destroy (GMemChunk *mem_chunk);
-gpointer old_mem_chunk_alloc (GMemChunk *mem_chunk);
-gpointer old_mem_chunk_alloc0 (GMemChunk *mem_chunk);
-void old_mem_chunk_free (GMemChunk *mem_chunk,
- gpointer mem);
-void old_mem_chunk_clean (GMemChunk *mem_chunk);
-void old_mem_chunk_reset (GMemChunk *mem_chunk);
-void old_mem_chunk_print (GMemChunk *mem_chunk);
-void old_mem_chunk_info (void);
-
-#ifndef G_ALLOC_AND_FREE
-#define G_ALLOC_AND_FREE 2
-#endif
-
-/* --- functions --- */
-static inline gpointer
-memchunk_alloc (GMemChunk **memchunkp,
- guint size)
-{
- size = MAX (size, 1);
- if (G_UNLIKELY (!*memchunkp))
- *memchunkp = old_mem_chunk_new ("", size, 4096, G_ALLOC_AND_FREE);
- return old_mem_chunk_alloc (*memchunkp);
-}
-
-static inline void
-memchunk_free (GMemChunk *memchunk,
- gpointer chunk)
-{
- old_mem_chunk_free (memchunk, chunk);
- if (clean_memchunks)
- old_mem_chunk_clean (memchunk);
-}
-
-static gpointer
-test_memchunk_thread (gpointer data)
-{
- GMemChunk **memchunks;
- guint i, j;
- guint8 **ps;
- guint *ss;
- guint32 rand_accu = 2147483563;
- /* initialize random numbers */
- if (data)
- rand_accu = *(guint32*) data;
- else
- {
- GTimeVal rand_tv;
- g_get_current_time (&rand_tv);
- rand_accu = rand_tv.tv_usec + (rand_tv.tv_sec << 16);
- }
-
- /* prepare for memchunk creation */
- memchunks = g_newa0 (GMemChunk*, prime_size);
-
- ps = g_new (guint8*, number_of_blocks);
- ss = g_new (guint, number_of_blocks);
- /* create number_of_blocks random sizes */
- for (i = 0; i < number_of_blocks; i++)
- ss[i] = quick_rand32() % prime_size;
- /* allocate number_of_blocks blocks */
- for (i = 0; i < number_of_blocks; i++)
- ps[i] = memchunk_alloc (&memchunks[ss[i]], ss[i]);
- for (j = 0; j < number_of_repetitions; j++)
- {
- /* free number_of_blocks/2 blocks */
- for (i = 0; i < number_of_blocks; i += 2)
- memchunk_free (memchunks[ss[i]], ps[i]);
- /* allocate number_of_blocks/2 blocks with new sizes */
- for (i = 0; i < number_of_blocks; i += 2)
- {
- ss[i] = quick_rand32() % prime_size;
- ps[i] = memchunk_alloc (&memchunks[ss[i]], ss[i]);
- }
- }
- /* free number_of_blocks blocks */
- for (i = 0; i < number_of_blocks; i++)
- memchunk_free (memchunks[ss[i]], ps[i]);
- /* alloc and free many equally sized chunks in a row */
- for (i = 0; i < number_of_repetitions; i++)
- {
- guint sz = quick_rand32() % prime_size;
- guint k = number_of_blocks / 100;
- for (j = 0; j < k; j++)
- ps[j] = memchunk_alloc (&memchunks[sz], sz);
- for (j = 0; j < k; j++)
- memchunk_free (memchunks[sz], ps[j]);
- }
- /* cleanout memchunks */
- for (i = 0; i < prime_size; i++)
- if (memchunks[i])
- old_mem_chunk_destroy (memchunks[i]);
- g_free (ps);
- g_free (ss);
-
- return NULL;
-}
-
-static void
-test_slice_memchunk (void)
-{
- GThread **threads;
- guint i, n_threads = 1;
-
- g_test_message ("Starting %d threads allocating random blocks <= %u bytes",
- n_threads, prime_size);
-
- threads = g_alloca (sizeof(GThread*) * n_threads);
-
- for (i = 0; i < n_threads; i++)
- threads[i] = g_thread_create (test_memchunk_thread, NULL, TRUE, NULL);
-
- for (i = 0; i < n_threads; i++)
- g_thread_join (threads[i]);
-}
-
-int
-main (int argc,
- char *argv[])
-{
- g_slice_set_config (G_SLICE_CONFIG_ALWAYS_MALLOC, TRUE);
-
- g_test_init (&argc, &argv, NULL);
-
- g_test_add_func ("/slice/memchunk", test_slice_memchunk);
-
- return g_test_run ();
-}
diff --git a/glib/tests/slice-slab.c b/glib/tests/slice-slab.c
deleted file mode 100644
index d9a033755..000000000
--- a/glib/tests/slice-slab.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* GLIB sliced memory - fast threaded memory chunk allocator
- * Copyright (C) 2005 Tim Janik
- *
- * SPDX-License-Identifier: LGPL-2.1-or-later
- *
- * This library 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.
- *
- * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/* We are testing some deprecated APIs here */
-#ifndef GLIB_DISABLE_DEPRECATION_WARNINGS
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-#endif
-
-#include <glib.h>
-
-#define quick_rand32() \
- (rand_accu = 1664525 * rand_accu + 1013904223, rand_accu)
-
-static guint prime_size = 1021; /* 769; 509 */
-static guint number_of_blocks = 10000; /* total number of blocks allocated */
-static guint number_of_repetitions = 10000; /* number of alloc+free repetitions */
-static gboolean want_corruption = FALSE;
-
-/* --- old memchunk prototypes (memchunks.c) --- */
-GMemChunk* old_mem_chunk_new (const gchar *name,
- gulong atom_size,
- gulong area_size,
- gint type);
-void old_mem_chunk_destroy (GMemChunk *mem_chunk);
-gpointer old_mem_chunk_alloc (GMemChunk *mem_chunk);
-gpointer old_mem_chunk_alloc0 (GMemChunk *mem_chunk);
-void old_mem_chunk_free (GMemChunk *mem_chunk,
- gpointer mem);
-void old_mem_chunk_clean (GMemChunk *mem_chunk);
-void old_mem_chunk_reset (GMemChunk *mem_chunk);
-void old_mem_chunk_print (GMemChunk *mem_chunk);
-void old_mem_chunk_info (void);
-
-#ifndef G_ALLOC_AND_FREE
-#define G_ALLOC_AND_FREE 2
-#endif
-
-/* --- functions --- */
-static inline int
-corruption (void)
-{
- if (G_UNLIKELY (want_corruption))
- {
- /* corruption per call likelyness is about 1:4000000 */
- guint32 r = g_random_int() % 8000009;
- return r == 277 ? +1 : r == 281 ? -1 : 0;
- }
- return 0;
-}
-
-static gpointer
-test_sliced_mem_thread (gpointer data)
-{
- guint32 rand_accu = 2147483563;
- guint i, j;
- guint8 **ps;
- guint *ss;
-
- /* initialize random numbers */
- if (data)
- rand_accu = *(guint32*) data;
- else
- {
- GTimeVal rand_tv;
- g_get_current_time (&rand_tv);
- rand_accu = rand_tv.tv_usec + (rand_tv.tv_sec << 16);
- }
-
- ps = g_new (guint8*, number_of_blocks);
- ss = g_new (guint, number_of_blocks);
- /* create number_of_blocks random sizes */
- for (i = 0; i < number_of_blocks; i++)
- ss[i] = quick_rand32() % prime_size;
- /* allocate number_of_blocks blocks */
- for (i = 0; i < number_of_blocks; i++)
- ps[i] = g_slice_alloc (ss[i] + corruption());
- for (j = 0; j < number_of_repetitions; j++)
- {
- /* free number_of_blocks/2 blocks */
- for (i = 0; i < number_of_blocks; i += 2)
- g_slice_free1 (ss[i] + corruption(), ps[i] + corruption());
- /* allocate number_of_blocks/2 blocks with new sizes */
- for (i = 0; i < number_of_blocks; i += 2)
- {
- ss[i] = quick_rand32() % prime_size;
- ps[i] = g_slice_alloc (ss[i] + corruption());
- }
- }
- /* free number_of_blocks blocks */
- for (i = 0; i < number_of_blocks; i++)
- g_slice_free1 (ss[i] + corruption(), ps[i] + corruption());
- /* alloc and free many equally sized chunks in a row */
- for (i = 0; i < number_of_repetitions; i++)
- {
- guint sz = quick_rand32() % prime_size;
- guint k = number_of_blocks / 100;
- for (j = 0; j < k; j++)
- ps[j] = g_slice_alloc (sz + corruption());
- for (j = 0; j < k; j++)
- g_slice_free1 (sz + corruption(), ps[j] + corruption());
- }
- g_free (ps);
- g_free (ss);
-
- return NULL;
-}
-
-static void
-test_slice_slab (void)
-{
- GThread **threads;
- guint i, n_threads = 1;
-
- g_test_message ("Starting %d threads allocating random blocks <= %u bytes",
- n_threads, prime_size);
-
- threads = g_alloca (sizeof(GThread*) * n_threads);
-
- for (i = 0; i < n_threads; i++)
- threads[i] = g_thread_create (test_sliced_mem_thread, NULL, TRUE, NULL);
-
- for (i = 0; i < n_threads; i++)
- g_thread_join (threads[i]);
-}
-
-int
-main (int argc,
- char *argv[])
-{
- g_slice_set_config (G_SLICE_CONFIG_ALWAYS_MALLOC, FALSE);
- g_slice_set_config (G_SLICE_CONFIG_BYPASS_MAGAZINES, TRUE);
-
- g_test_init (&argc, &argv, NULL);
-
- g_test_add_func ("/slice/slab", test_slice_slab);
-
- return g_test_run ();
-}
diff --git a/glib/tests/slice.c b/glib/tests/slice.c
index 7cf53b4f7..fda15966c 100644
--- a/glib/tests/slice.c
+++ b/glib/tests/slice.c
@@ -4,66 +4,6 @@
/* We test deprecated functionality here */
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-#ifdef G_ENABLE_DEBUG
-static void
-test_slice_nodebug (void)
-{
- const gchar *oldval;
-
- oldval = g_getenv ("G_SLICE");
- g_unsetenv ("G_SLICE");
-
- if (g_test_subprocess ())
- {
- gpointer p, q;
-
- p = g_slice_alloc (237);
- q = g_slice_alloc (259);
- g_slice_free1 (237, p);
- g_slice_free1 (259, q);
-
- g_slice_debug_tree_statistics ();
- return;
- }
- g_test_trap_subprocess (NULL, 1000000, G_TEST_SUBPROCESS_DEFAULT);
- g_test_trap_assert_passed ();
- g_test_trap_assert_stderr ("*GSlice: MemChecker: root=NULL*");
-
- if (oldval)
- g_setenv ("G_SLICE", oldval, TRUE);
-}
-
-static void
-test_slice_debug (void)
-{
- const gchar *oldval;
-
- oldval = g_getenv ("G_SLICE");
- g_setenv ("G_SLICE", "debug-blocks:always-malloc", TRUE);
-
- if (g_test_subprocess ())
- {
- gpointer p, q;
-
- p = g_slice_alloc (237);
- q = g_slice_alloc (259);
- g_slice_free1 (237, p);
- g_slice_free1 (259, q);
-
- g_slice_debug_tree_statistics ();
- return;
- }
- g_test_trap_subprocess (NULL, 1000000, G_TEST_SUBPROCESS_DEFAULT);
- g_test_trap_assert_passed ();
- g_test_trap_assert_stderr ("*GSlice: MemChecker: * trunks, * branches, * old branches*");
-
- if (oldval)
- g_setenv ("G_SLICE", oldval, TRUE);
- else
- g_unsetenv ("G_SLICE");
-}
-#endif
-
static void
test_slice_copy (void)
{
@@ -155,10 +95,6 @@ main (int argc, char **argv)
{
g_test_init (&argc, &argv, NULL);
-#ifdef G_ENABLE_DEBUG
- g_test_add_func ("/slice/nodebug", test_slice_nodebug);
- g_test_add_func ("/slice/debug", test_slice_debug);
-#endif
g_test_add_func ("/slice/copy", test_slice_copy);
g_test_add_func ("/slice/chain", test_chain);
g_test_add_func ("/slice/allocate", test_allocate);
diff --git a/glib/tests/spawn-multithreaded.c b/glib/tests/spawn-multithreaded.c
index 9e399b43d..a138e61e3 100644
--- a/glib/tests/spawn-multithreaded.c
+++ b/glib/tests/spawn-multithreaded.c
@@ -1,6 +1,8 @@
/*
* Copyright (C) 2011 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -31,7 +33,10 @@
#include <sys/types.h>
static char *echo_prog_path;
+
+#ifdef G_OS_WIN32
static char *sleep_prog_path;
+#endif
#ifdef G_OS_UNIX
#include <unistd.h>
@@ -423,14 +428,15 @@ main (int argc,
dirname = g_path_get_dirname (argv[0]);
echo_prog_path = g_build_filename (dirname, "test-spawn-echo" EXEEXT, NULL);
- sleep_prog_path = g_build_filename (dirname, "test-spawn-sleep" EXEEXT, NULL);
- g_free (dirname);
g_assert (g_file_test (echo_prog_path, G_FILE_TEST_EXISTS));
#ifdef G_OS_WIN32
+ sleep_prog_path = g_build_filename (dirname, "test-spawn-sleep" EXEEXT, NULL);
g_assert (g_file_test (sleep_prog_path, G_FILE_TEST_EXISTS));
#endif
+ g_clear_pointer (&dirname, g_free);
+
g_test_add_func ("/gthread/spawn-childs", test_spawn_childs);
g_test_add_func ("/gthread/spawn-childs-threads", test_spawn_childs_threads);
g_test_add_func ("/gthread/spawn-sync", test_spawn_sync_multithreaded);
@@ -439,7 +445,10 @@ main (int argc,
ret = g_test_run();
g_free (echo_prog_path);
+
+#ifdef G_OS_WIN32
g_free (sleep_prog_path);
+#endif
return ret;
}
diff --git a/glib/tests/spawn-singlethread.c b/glib/tests/spawn-singlethread.c
index 3ece69dc9..33b44d650 100644
--- a/glib/tests/spawn-singlethread.c
+++ b/glib/tests/spawn-singlethread.c
@@ -1,6 +1,8 @@
/*
* Copyright (C) 2011 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -235,7 +237,7 @@ test_spawn_async_with_fds (void)
break;
case PIPE:
#ifdef G_OS_UNIX
- g_unix_open_pipe (test_pipe[j], FD_CLOEXEC, &error);
+ g_unix_open_pipe (test_pipe[j], O_CLOEXEC, &error);
g_assert_no_error (error);
#else
g_assert_cmpint (_pipe (test_pipe[j], 4096, _O_BINARY), >=, 0);
@@ -317,6 +319,39 @@ test_spawn_async_with_fds (void)
}
static void
+test_spawn_async_with_invalid_fds (void)
+{
+ const gchar *argv[] = { echo_prog_path, "thread 0", NULL };
+ gint source_fds[1000];
+ GError *local_error = NULL;
+ gboolean retval;
+ gsize i;
+
+ /* Create an identity mapping from [0, …, 999]. This is very likely going to
+ * conflict with the internal FDs, as it covers a lot of the FD space
+ * (including stdin, stdout and stderr, though we don’t care about them in
+ * this test).
+ *
+ * Skip the test if we somehow avoid a collision. */
+ for (i = 0; i < G_N_ELEMENTS (source_fds); i++)
+ source_fds[i] = i;
+
+ retval = g_spawn_async_with_pipes_and_fds (NULL, argv, NULL, G_SPAWN_DEFAULT,
+ NULL, NULL, -1, -1, -1,
+ source_fds, source_fds, G_N_ELEMENTS (source_fds),
+ NULL, NULL, NULL, NULL,
+ &local_error);
+ if (retval)
+ {
+ g_test_skip ("Skipping internal FDs check as test didn’t manage to trigger a collision");
+ return;
+ }
+ g_assert_false (retval);
+ g_assert_error (local_error, G_SPAWN_ERROR, G_SPAWN_ERROR_INVAL);
+ g_error_free (local_error);
+}
+
+static void
test_spawn_sync (void)
{
int tnum = 1;
@@ -574,6 +609,7 @@ main (int argc,
g_test_add_func ("/gthread/spawn-stderr-socket", test_spawn_stderr_socket);
g_test_add_func ("/gthread/spawn-single-async", test_spawn_async);
g_test_add_func ("/gthread/spawn-single-async-with-fds", test_spawn_async_with_fds);
+ g_test_add_func ("/gthread/spawn-async-with-invalid-fds", test_spawn_async_with_invalid_fds);
g_test_add_func ("/gthread/spawn-script", test_spawn_script);
g_test_add_func ("/gthread/spawn/nonexistent", test_spawn_nonexistent);
g_test_add_func ("/gthread/spawn-posix-spawn", test_posix_spawn);
diff --git a/glib/tests/spawn-test-win32-gui.c b/glib/tests/spawn-test-win32-gui.c
index 34945f524..46353c8f3 100644
--- a/glib/tests/spawn-test-win32-gui.c
+++ b/glib/tests/spawn-test-win32-gui.c
@@ -26,7 +26,7 @@ WinMain (struct HINSTANCE__ *hInstance,
}
else if (__argc <= 2)
{
- printf ("This is stdout\n");
+ printf ("# This is stdout\n");
fflush (stdout);
fprintf (stderr, "This is stderr\n");
@@ -41,36 +41,36 @@ WinMain (struct HINSTANCE__ *hInstance,
if (infd < 0 || outfd < 0)
{
- printf ("spawn-test-win32-gui: illegal fds on command line %s",
+ fprintf (stderr, "spawn-test-win32-gui: illegal fds on command line %s\n",
lpszCmdLine);
exit (1);
}
n = strlen ("Hello there");
if (write (outfd, &n, sizeof (n)) == -1 ||
- write (outfd, "Hello there", n) == -1)
+ write (outfd, "Hello there\n", n) == -1)
{
int errsv = errno;
- printf ("spawn-test-win32-gui: Write error: %s", strerror (errsv));
+ fprintf (stderr, "spawn-test-win32-gui: Write error: %s\n", strerror (errsv));
exit (1);
}
if ((k = read (infd, &n, sizeof (n))) != sizeof (n))
{
- printf ("spawn-test-win32-gui: Got only %d bytes, wanted %d",
+ fprintf (stderr, "spawn-test-win32-gui: Got only %d bytes, wanted %d\n",
k, (int)sizeof (n));
exit (1);
}
- printf ("spawn-test-win32-gui: Parent says %d bytes to read", n);
+ fprintf (stderr, "spawn-test-win32-gui: Parent says %d bytes to read\n", n);
if ((k = read (infd, buf, n)) != n)
{
int errsv = errno;
if (k == -1)
- printf ("spawn-test-win32-gui: Read error: %s", strerror (errsv));
+ fprintf (stderr, "spawn-test-win32-gui: Read error: %s\n", strerror (errsv));
else
- printf ("spawn-test-win32-gui: Got only %d bytes", k);
+ fprintf (stderr, "spawn-test-win32-gui: Got only %d bytes\n", k);
exit (1);
}
@@ -79,7 +79,7 @@ WinMain (struct HINSTANCE__ *hInstance,
write (outfd, "See ya", n) == -1)
{
int errsv = errno;
- printf ("spawn-test-win32-gui: Write error: %s", strerror (errsv));
+ fprintf (stderr, "spawn-test-win32-gui: Write error: %s\n", strerror (errsv));
exit (1);
}
}
diff --git a/glib/tests/spawn-test.c b/glib/tests/spawn-test.c
index 4e54ab258..fdc35e86f 100644
--- a/glib/tests/spawn-test.c
+++ b/glib/tests/spawn-test.c
@@ -27,7 +27,13 @@
#include <glib.h>
#include <glib/gstdio.h>
+#ifdef G_OS_UNIX
+#include <unistd.h>
+#endif
+
#ifdef G_OS_WIN32
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
#include <fcntl.h>
#include <io.h>
#define pipe(fds) _pipe(fds, 4096, _O_BINARY)
@@ -37,6 +43,153 @@
static gchar *dirname = NULL;
#endif
+#ifdef G_OS_WIN32
+static char *
+get_system_directory (void)
+{
+ wchar_t path_utf16[MAX_PATH] = {0};
+ char *path = NULL;
+
+ if (!GetSystemDirectoryW (path_utf16, G_N_ELEMENTS (path_utf16)))
+ g_error ("%s failed with error code %u", "GetSystemWindowsDirectory",
+ (unsigned int) GetLastError ());
+
+ path = g_utf16_to_utf8 (path_utf16, -1, NULL, NULL, NULL);
+ g_assert_nonnull (path);
+
+ return path;
+}
+
+static wchar_t *
+g_wcsdup (const wchar_t *wcs_string)
+{
+ size_t length = wcslen (wcs_string);
+
+ return g_memdup2 (wcs_string, (length + 1) * sizeof (wchar_t));
+}
+
+static wchar_t *
+g_wcsndup (const wchar_t *wcs_string,
+ size_t length)
+{
+ wchar_t *result = NULL;
+
+ g_assert_true (length < SIZE_MAX);
+
+ result = g_new (wchar_t, length + 1);
+ memcpy (result, wcs_string, length * sizeof (wchar_t));
+ result[length] = L'\0';
+
+ return result;
+}
+
+/**
+ * parse_environment_string:
+ *
+ * @string: source environment string in the form <VARIABLE>=<VALUE>
+ * (e.g as returned by GetEnvironmentStrings)
+ * @name: (out) (optional) (utf-16) name of the variable
+ * @value: (out) (optional) (utf-16) value of the variable
+ *
+ * Parse environment string in the form <VARIABLE>=<VALUE>, for example
+ * the strings in the environment block returned by GetEnvironmentStrings.
+ *
+ * Returns: %TRUE on success
+ */
+static gboolean
+parse_environment_string (const wchar_t *string,
+ wchar_t **name,
+ wchar_t **value)
+{
+ const wchar_t *equal_sign;
+
+ g_assert_nonnull (string);
+ g_assert_true (name || value);
+
+ /* On Windows environment variables may have an equal-sign
+ * character as part of their name, but only as the first
+ * character */
+ equal_sign = wcschr (string[0] == L'=' ? (string + 1) : string, L'=');
+
+ if (name)
+ *name = equal_sign ? g_wcsndup (string, equal_sign - string) : NULL;
+
+ if (value)
+ *value = equal_sign ? g_wcsdup (equal_sign + 1) : NULL;
+
+ return (equal_sign != NULL);
+}
+
+/**
+ * find_cmd_shell_environment_variables:
+ *
+ * Finds all the environment variables related to cmd.exe, which are
+ * usually (but not always) present in a process environment block.
+ * Those environment variables are named "=X:", where X is a drive /
+ * volume letter and are used by cmd.exe to track per-drive current
+ * directories.
+ *
+ * See "What are these strange =C: environment variables?"
+ * https://devblogs.microsoft.com/oldnewthing/20100506-00/?p=14133
+ *
+ * This is used to test a work around for an UCRT issue
+ * https://developercommunity.visualstudio.com/t/UCRT-Crash-in-_wspawne-functions/10262748
+ */
+static GList *
+find_cmd_shell_environment_variables (void)
+{
+ wchar_t *block = NULL;
+ wchar_t *iter = NULL;
+ GList *variables = NULL;
+ size_t len = 0;
+
+ block = GetEnvironmentStringsW ();
+ if (!block)
+ {
+ DWORD code = GetLastError ();
+ g_error ("%s failed with error code %u",
+ "GetEnvironmentStrings", (unsigned int) code);
+ }
+
+ iter = block;
+
+ while ((len = wcslen (iter)))
+ {
+ if (iter[0] == L'=')
+ {
+ wchar_t *variable = NULL;
+
+ g_assert_true (parse_environment_string (iter, &variable, NULL));
+ g_assert_nonnull (variable);
+
+ variables = g_list_prepend (variables, variable);
+ }
+
+ iter += len + 1;
+ }
+
+ FreeEnvironmentStringsW (block);
+
+ return variables;
+}
+
+static void
+remove_environment_variables (GList *list)
+{
+ for (GList *l = list; l; l = l->next)
+ {
+ const wchar_t *variable = (const wchar_t*) l->data;
+
+ if (!SetEnvironmentVariableW (variable, NULL))
+ {
+ DWORD code = GetLastError ();
+ g_error ("%s failed with error code %u",
+ "SetEnvironmentVariable", (unsigned int) code);
+ }
+ }
+}
+#endif /* G_OS_WIN32 */
+
static void
test_spawn_basics (void)
{
@@ -49,12 +202,20 @@ test_spawn_basics (void)
char buf[100];
int pipedown[2], pipeup[2];
gchar **argv = NULL;
+ gchar **envp = g_get_environ ();
+ gchar *system_directory;
gchar spawn_binary[1000] = {0};
gchar full_cmdline[1000] = {0};
+ GList *cmd_shell_env_vars = NULL;
+ const LCID old_lcid = GetThreadUILanguage ();
+ const unsigned int initial_cp = GetConsoleOutputCP ();
+
+ SetConsoleOutputCP (437); /* 437 means en-US codepage */
+ SetThreadUILanguage (MAKELCID (MAKELANGID (LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT));
+ system_directory = get_system_directory ();
g_snprintf (spawn_binary, sizeof (spawn_binary),
"%s\\spawn-test-win32-gui.exe", dirname);
- g_free (dirname);
#endif
err = NULL;
@@ -88,16 +249,30 @@ test_spawn_basics (void)
/* Running sort synchronously, collecting its output. 'sort' command
* is selected because it is non-builtin command on both unix and
* win32 with well-defined stdout behaviour.
+ * On win32 we use an absolute path to the system-provided sort.exe
+ * because a different sort.exe may be available in PATH. This is
+ * important e.g for the MSYS2 environment, which provides coreutils
+ * sort.exe
*/
g_file_set_contents ("spawn-test-created-file.txt",
"line first\nline 2\nline last\n", -1, &err);
g_assert_no_error(err);
+#ifndef G_OS_WIN32
result = g_spawn_command_line_sync ("sort spawn-test-created-file.txt",
&output, &erroutput, NULL, &err);
+#else
+ g_snprintf (full_cmdline, sizeof (full_cmdline),
+ "'%s\\sort.exe' spawn-test-created-file.txt", system_directory);
+ result = g_spawn_command_line_sync (full_cmdline, &output, &erroutput, NULL, &err);
+#endif
g_assert_no_error (err);
g_assert_true (result);
- g_assert_cmpstr (output, ==, "line 2\nline first\nline last\n");
+ g_assert_nonnull (output);
+ if (strchr (output, '\r') != NULL)
+ g_assert_cmpstr (output, ==, "line 2\r\nline first\r\nline last\r\n");
+ else
+ g_assert_cmpstr (output, ==, "line 2\nline first\nline last\n");
g_assert_cmpstr (erroutput, ==, "");
g_free (output);
@@ -105,13 +280,29 @@ test_spawn_basics (void)
g_free (erroutput);
erroutput = NULL;
+#ifndef G_OS_WIN32
result = g_spawn_command_line_sync ("sort non-existing-file.txt",
NULL, &erroutput, NULL, &err);
+#else
+ g_snprintf (full_cmdline, sizeof (full_cmdline),
+ "'%s\\sort.exe' non-existing-file.txt", system_directory);
+ result = g_spawn_command_line_sync (full_cmdline, NULL, &erroutput, NULL, &err);
+#endif
g_assert_no_error (err);
g_assert_true (result);
+#ifndef G_OS_WIN32
+ /* Test against output of coreutils sort */
g_assert_true (g_str_has_prefix (erroutput, "sort: "));
- g_assert_nonnull (strstr (erroutput, "No such file or directory"));
-
+ g_assert_nonnull (strstr (erroutput, g_strerror (ENOENT)));
+#else
+ /* Test against output of windows sort */
+ {
+ gchar *file_not_found_message = g_win32_error_message (ERROR_FILE_NOT_FOUND);
+ g_test_message ("sort output: %s\nExpected message: %s", erroutput, file_not_found_message);
+ g_assert_nonnull (strstr (erroutput, file_not_found_message));
+ g_free (file_not_found_message);
+ }
+#endif
g_free (erroutput);
erroutput = NULL;
g_unlink ("spawn-test-created-file.txt");
@@ -132,7 +323,7 @@ test_spawn_basics (void)
g_assert_no_error (err);
g_assert_true (result);
- g_assert_cmpstr (output, ==, "This is stdout\r\n");
+ g_assert_cmpstr (output, ==, "# This is stdout\r\n");
g_assert_cmpstr (erroutput, ==, "This is stderr\r\n");
g_free (output);
@@ -193,13 +384,151 @@ test_spawn_basics (void)
buf[n] = '\0';
g_assert_cmpstr (buf, ==, "See ya");
+
+ /* Test workaround for:
+ *
+ * https://developercommunity.visualstudio.com/t/UCRT-Crash-in-_wspawne-functions/10262748
+ */
+ cmd_shell_env_vars = find_cmd_shell_environment_variables ();
+ remove_environment_variables (cmd_shell_env_vars);
+
+ g_snprintf (full_cmdline, sizeof (full_cmdline),
+ "'%s\\sort.exe' non-existing-file.txt", system_directory);
+ g_assert_true (g_shell_parse_argv (full_cmdline, NULL, &argv, NULL));
+ g_assert_nonnull (argv);
+ g_spawn_sync (NULL, argv, envp, G_SPAWN_DEFAULT,
+ NULL, NULL, NULL, NULL, NULL, NULL);
+ g_free (argv);
+ argv = NULL;
+#endif
+
+#ifdef G_OS_WIN32
+ SetThreadUILanguage (old_lcid);
+ SetConsoleOutputCP (initial_cp); /* 437 means en-US codepage */
+ g_list_free_full (cmd_shell_env_vars, g_free);
+ g_strfreev (envp);
+ g_free (system_directory);
#endif
}
+#ifdef G_OS_UNIX
+static void
+test_spawn_stdio_overwrite (void)
+{
+ gboolean result;
+ int ret;
+ GError *error = NULL;
+ int old_stdin_fd = -1;
+ int old_stdout_fd = -1;
+ int old_stderr_fd = -1;
+ char **envp = g_get_environ ();
+ enum OpenState { OPENED = 0, CLOSED = 1, DONE = 2 } stdin_state, stdout_state, stderr_state, output_return_state, error_return_state;
+
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/16");
+
+ old_stdin_fd = dup (STDIN_FILENO);
+ old_stdout_fd = dup (STDOUT_FILENO);
+ old_stderr_fd = dup (STDERR_FILENO);
+
+ for (output_return_state = OPENED; output_return_state != DONE; output_return_state++)
+ for (error_return_state = OPENED; error_return_state != DONE; error_return_state++)
+ for (stdin_state = OPENED; stdin_state != DONE; stdin_state++)
+ for (stdout_state = OPENED; stdout_state != DONE; stdout_state++)
+ for (stderr_state = OPENED; stderr_state != DONE; stderr_state++)
+ {
+ char *command_line = NULL;
+ char **argv = NULL;
+ gchar *standard_output = NULL;
+ gchar *standard_error = NULL;
+
+ g_test_message ("Fetching GSpawn result %s%s%s with stdin %s, stdout %s, stderr %s",
+ output_return_state == OPENED? "output" : "",
+ output_return_state == OPENED && error_return_state == OPENED? " and " : "",
+ error_return_state == OPENED? "error output" : "",
+ stdin_state == CLOSED? "already closed" : "open",
+ stdout_state == CLOSED? "already closed" : "open",
+ stderr_state == CLOSED? "already closed" : "open");
+
+ if (stdin_state == CLOSED)
+ {
+ g_close (STDIN_FILENO, &error);
+ g_assert_no_error (error);
+ }
+
+ if (stdout_state == CLOSED)
+ {
+ g_close (STDOUT_FILENO, &error);
+ g_assert_no_error (error);
+ }
+
+ if (stderr_state == CLOSED)
+ {
+ g_close (STDERR_FILENO, &error);
+ g_assert_no_error (error);
+ }
+
+ command_line = g_strdup_printf ("/bin/sh -c '%s%s%s'",
+ output_return_state == OPENED? "echo stdout": "",
+ output_return_state == OPENED && error_return_state == OPENED? ";" : "",
+ error_return_state == OPENED? "echo stderr >&2": "");
+ g_shell_parse_argv (command_line, NULL, &argv, &error);
+ g_assert_no_error (error);
+
+ g_clear_pointer (&command_line, g_free);
+
+ result = g_spawn_sync (NULL,
+ argv, envp, G_SPAWN_SEARCH_PATH_FROM_ENVP,
+ NULL, NULL,
+ output_return_state == OPENED? &standard_output : NULL,
+ error_return_state == OPENED? &standard_error: NULL,
+ NULL,
+ &error);
+ g_clear_pointer (&argv, g_strfreev);
+
+ ret = dup2 (old_stderr_fd, STDERR_FILENO);
+ g_assert_cmpint (ret, ==, STDERR_FILENO);
+
+ ret = dup2 (old_stdout_fd, STDOUT_FILENO);
+ g_assert_cmpint (ret, ==, STDOUT_FILENO);
+
+ ret = dup2 (old_stdin_fd, STDIN_FILENO);
+ g_assert_cmpint (ret, ==, STDIN_FILENO);
+
+ g_assert_no_error (error);
+ g_assert_true (result);
+
+ if (output_return_state == OPENED)
+ {
+ g_assert_cmpstr (standard_output, ==, "stdout\n");
+ g_clear_pointer (&standard_output, g_free);
+ }
+
+ if (error_return_state == OPENED)
+ {
+ g_assert_cmpstr (standard_error, ==, "stderr\n");
+ g_clear_pointer (&standard_error, g_free);
+ }
+ }
+
+ g_clear_fd (&old_stdin_fd, &error);
+ g_assert_no_error (error);
+
+ g_clear_fd (&old_stdout_fd, &error);
+ g_assert_no_error (error);
+
+ g_clear_fd (&old_stderr_fd, &error);
+ g_assert_no_error (error);
+
+ g_clear_pointer (&envp, g_strfreev);
+}
+#endif
+
int
main (int argc,
char *argv[])
{
+ int ret_val;
+
#ifdef G_OS_WIN32
dirname = g_path_get_dirname (argv[0]);
#endif
@@ -207,6 +536,14 @@ main (int argc,
g_test_init (&argc, &argv, NULL);
g_test_add_func ("/spawn/basics", test_spawn_basics);
+#ifdef G_OS_UNIX
+ g_test_add_func ("/spawn/stdio-overwrite", test_spawn_stdio_overwrite);
+#endif
+
+ ret_val = g_test_run ();
- return g_test_run ();
+#ifdef G_OS_WIN32
+ g_free (dirname);
+#endif
+ return ret_val;
}
diff --git a/glib/tests/strfuncs.c b/glib/tests/strfuncs.c
index 3f936882f..544cee936 100644
--- a/glib/tests/strfuncs.c
+++ b/glib/tests/strfuncs.c
@@ -1,6 +1,8 @@
/* Unit tests for gstrfuncs
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -497,12 +499,58 @@ test_strdup (void)
{
gchar *str;
+ g_assert_null ((g_strdup) (NULL));
+
+ str = (g_strdup) (GLIB_TEST_STRING);
+ g_assert_nonnull (str);
+ g_assert_cmpstr (str, ==, GLIB_TEST_STRING);
+
+ char *other_str = (g_strdup) (str);
+ g_free (str);
+
+ g_assert_nonnull (other_str);
+ g_assert_cmpstr (other_str, ==, GLIB_TEST_STRING);
+ g_clear_pointer (&other_str, g_free);
+
+ str = (g_strdup) ("");
+ g_assert_cmpint (str[0], ==, '\0');
+ g_assert_cmpstr (str, ==, "");
+ g_clear_pointer (&str, g_free);
+}
+
+static void
+test_strdup_inline (void)
+{
+ gchar *str;
+
+ #if G_GNUC_CHECK_VERSION (2, 0)
+ #ifndef g_strdup
+ #error g_strdup() should be defined as a macro in this platform!
+ #endif
+ #else
+ g_test_incomplete ("g_strdup() is not inlined in this platform");
+ #endif
+
+ /* Testing inline version of g_strdup() function with various positive and
+ * negative cases */
+
g_assert_null (g_strdup (NULL));
str = g_strdup (GLIB_TEST_STRING);
g_assert_nonnull (str);
g_assert_cmpstr (str, ==, GLIB_TEST_STRING);
- g_free (str);
+
+ char *other_str = g_strdup (str);
+ g_clear_pointer (&str, g_free);
+
+ g_assert_nonnull (other_str);
+ g_assert_cmpstr (other_str, ==, GLIB_TEST_STRING);
+ g_clear_pointer (&other_str, g_free);
+
+ str = g_strdup ("");
+ g_assert_cmpint (str[0], ==, '\0');
+ g_assert_cmpstr (str, ==, "");
+ g_clear_pointer (&str, g_free);
}
/* Testing g_strndup() function with various positive and negative cases */
@@ -1200,89 +1248,151 @@ test_strdelimit (void)
g_free (string);
}
-/* Testing g_str_has_prefix() */
+/* Testing g_str_has_prefix() function avoiding the optimizing macro */
static void
test_has_prefix (void)
{
- gboolean res;
-
if (g_test_undefined ())
{
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion*!= NULL*");
- res = g_str_has_prefix ("foo", NULL);
+ g_assert_false ((g_str_has_prefix) ("foo", NULL));
g_test_assert_expected_messages ();
- g_assert_false (res);
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion*!= NULL*");
- res = g_str_has_prefix (NULL, "foo");
+ g_assert_false ((g_str_has_prefix) (NULL, "foo"));
g_test_assert_expected_messages ();
- g_assert_false (res);
}
- res = g_str_has_prefix ("foo", "bar");
- g_assert_cmpint (res, ==, FALSE);
+ /* Having a string smaller than the prefix */
+ g_assert_false ((g_str_has_prefix) ("aa", "aaa"));
- res = g_str_has_prefix ("foo", "foobar");
- g_assert_cmpint (res, ==, FALSE);
+ /* Negative tests */
+ g_assert_false ((g_str_has_prefix) ("foo", "bar"));
+ g_assert_false ((g_str_has_prefix) ("foo", "foobar"));
+ g_assert_false ((g_str_has_prefix) ("foobar", "bar"));
- res = g_str_has_prefix ("foobar", "bar");
- g_assert_cmpint (res, ==, FALSE);
+ /* Positive tests */
+ g_assert_true ((g_str_has_prefix) ("foobar", "foo"));
+ g_assert_true ((g_str_has_prefix) ("foo", ""));
+ g_assert_true ((g_str_has_prefix) ("foo", "foo"));
+ g_assert_true ((g_str_has_prefix) ("", ""));
+}
- res = g_str_has_prefix ("foobar", "foo");
- g_assert_cmpint (res, ==, TRUE);
+/* Testing g_str_has_prefix() optimized macro */
+static void
+test_has_prefix_macro (void)
+{
+ #if G_GNUC_CHECK_VERSION (2, 0)
+ #ifndef g_str_has_prefix
+ #error g_str_has_prefix() should be defined as a macro in this platform!
+ #endif
+ #else
+ g_test_incomplete ("g_str_has_prefix() is not inlined in this platform");
+ #endif
- res = g_str_has_prefix ("foo", "");
- g_assert_cmpint (res, ==, TRUE);
+ if (g_test_undefined ())
+ {
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*!= NULL*");
+ g_assert_false (g_str_has_prefix ("foo", NULL));
+ g_test_assert_expected_messages ();
- res = g_str_has_prefix ("foo", "foo");
- g_assert_cmpint (res, ==, TRUE);
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*!= NULL*");
+ g_assert_false (g_str_has_prefix (NULL, "foo"));
+ g_test_assert_expected_messages ();
+ }
- res = g_str_has_prefix ("", "");
- g_assert_cmpint (res, ==, TRUE);
+ /* Having a string smaller than the prefix */
+ g_assert_false (g_str_has_prefix ("aa", "aaa"));
+
+ /* Negative tests */
+ g_assert_false (g_str_has_prefix ("foo", "bar"));
+ g_assert_false (g_str_has_prefix ("foo", "foobar"));
+ g_assert_false (g_str_has_prefix ("foobar", "bar"));
+
+ /* Positive tests */
+ g_assert_true (g_str_has_prefix ("foobar", "foo"));
+ g_assert_true (g_str_has_prefix ("foo", ""));
+ g_assert_true (g_str_has_prefix ("foo", "foo"));
+ g_assert_true (g_str_has_prefix ("", ""));
+
+ /* Testing the nested G_UNLIKELY */
+ g_assert_false (G_UNLIKELY (g_str_has_prefix ("foo", "aaa")));
}
+/* Testing g_str_has_suffix() function avoiding the optimizing macro */
static void
test_has_suffix (void)
{
- gboolean res;
-
if (g_test_undefined ())
{
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion*!= NULL*");
- res = g_str_has_suffix ("foo", NULL);
+ g_assert_false ((g_str_has_suffix) ("foo", NULL));
g_test_assert_expected_messages ();
- g_assert_false (res);
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion*!= NULL*");
- res = g_str_has_suffix (NULL, "foo");
+ g_assert_false ((g_str_has_suffix) (NULL, "foo"));
g_test_assert_expected_messages ();
- g_assert_false (res);
}
- res = g_str_has_suffix ("foo", "bar");
- g_assert_false (res);
+ /* Having a string smaller than the suffix */
+ g_assert_false ((g_str_has_suffix) ("aa", "aaa"));
- res = g_str_has_suffix ("bar", "foobar");
- g_assert_false (res);
+ /* Negative tests */
+ g_assert_false ((g_str_has_suffix) ("foo", "bar"));
+ g_assert_false ((g_str_has_suffix) ("bar", "foobar"));
+ g_assert_false ((g_str_has_suffix) ("foobar", "foo"));
- res = g_str_has_suffix ("foobar", "foo");
- g_assert_false (res);
+ /* Positive tests */
+ g_assert_true ((g_str_has_suffix) ("foobar", "bar"));
+ g_assert_true ((g_str_has_suffix) ("foo", ""));
+ g_assert_true ((g_str_has_suffix) ("foo", "foo"));
+ g_assert_true ((g_str_has_suffix) ("", ""));
+}
- res = g_str_has_suffix ("foobar", "bar");
- g_assert_true (res);
+/* Testing g_str_has_prefix() optimized macro */
+static void
+test_has_suffix_macro (void)
+{
+ #if G_GNUC_CHECK_VERSION (2, 0)
+ #ifndef g_str_has_suffix
+ #error g_str_has_suffix() should be defined as a macro in this platform!
+ #endif
+ #else
+ g_test_incomplete ("g_str_has_suffix() is not inlined in this platform");
+ #endif
- res = g_str_has_suffix ("foo", "");
- g_assert_true (res);
+ if (g_test_undefined ())
+ {
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*!= NULL*");
+ g_assert_false (g_str_has_suffix ("foo", NULL));
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*!= NULL*");
+ g_assert_false (g_str_has_suffix (NULL, "foo"));
+ g_test_assert_expected_messages ();
+ }
- res = g_str_has_suffix ("foo", "foo");
- g_assert_true (res);
+ /* Having a string smaller than the suffix */
+ g_assert_false (g_str_has_suffix ("aa", "aaa"));
- res = g_str_has_suffix ("", "");
- g_assert_true (res);
+ /* Negative tests */
+ g_assert_false (g_str_has_suffix ("foo", "bar"));
+ g_assert_false (g_str_has_suffix ("bar", "foobar"));
+ g_assert_false (g_str_has_suffix ("foobar", "foo"));
+
+ /* Positive tests */
+ g_assert_true (g_str_has_suffix ("foobar", "bar"));
+ g_assert_true (g_str_has_suffix ("foo", ""));
+ g_assert_true (g_str_has_suffix ("foo", "foo"));
+ g_assert_true (g_str_has_suffix ("", ""));
}
static void
@@ -2349,6 +2459,7 @@ test_ascii_string_to_number_usual (void)
&value64,
&error);
g_test_assert_expected_messages ();
+ g_assert_false (result);
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion \'base >= 2 && base <= 36\'*");
@@ -2359,6 +2470,7 @@ test_ascii_string_to_number_usual (void)
&value64,
&error);
g_test_assert_expected_messages ();
+ g_assert_false (result);
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion \'base >= 2 && base <= 36\'*");
@@ -2369,6 +2481,7 @@ test_ascii_string_to_number_usual (void)
&value64,
&error);
g_test_assert_expected_messages ();
+ g_assert_false (result);
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion \'min <= max\'*");
@@ -2379,6 +2492,7 @@ test_ascii_string_to_number_usual (void)
&value64,
&error);
g_test_assert_expected_messages ();
+ g_assert_false (result);
}
/* Catching first part of (error == NULL || *error == NULL) */
@@ -2388,6 +2502,7 @@ test_ascii_string_to_number_usual (void)
data->max,
&value64,
NULL);
+ g_assert_true (result);
/*** g_ascii_string_to_unsigned() ***/
data = &test_data[12]; /* Setting data to unsigned data */
@@ -2403,6 +2518,7 @@ test_ascii_string_to_number_usual (void)
&valueu64,
&error);
g_test_assert_expected_messages ();
+ g_assert_false (result);
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion \'base >= 2 && base <= 36\'*");
@@ -2413,6 +2529,7 @@ test_ascii_string_to_number_usual (void)
&valueu64,
&error);
g_test_assert_expected_messages ();
+ g_assert_false (result);
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion \'base >= 2 && base <= 36\'*");
@@ -2423,6 +2540,7 @@ test_ascii_string_to_number_usual (void)
&valueu64,
&error);
g_test_assert_expected_messages ();
+ g_assert_false (result);
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*assertion \'min <= max\'*");
@@ -2433,6 +2551,7 @@ test_ascii_string_to_number_usual (void)
&valueu64,
&error);
g_test_assert_expected_messages ();
+ g_assert_false (result);
}
/* Catching first part of (error == NULL || *error == NULL) */
@@ -2442,6 +2561,7 @@ test_ascii_string_to_number_usual (void)
data->max,
&valueu64,
NULL);
+ g_assert_false (result);
/* Testing usual cases */
for (idx = 0; idx < G_N_ELEMENTS (test_data); ++idx)
@@ -2571,6 +2691,34 @@ test_ascii_string_to_number_pathological (void)
g_assert_cmpint (svalue, ==, G_MININT64);
}
+static void
+test_set_str (void)
+{
+ char *str = NULL;
+ const char *empty_str = "";
+
+ g_assert_false (g_set_str (&str, NULL));
+ g_assert_null (str);
+
+ g_assert_true (g_set_str (&str, empty_str));
+ g_assert_false (g_set_str (&str, empty_str));
+ g_assert_nonnull (str);
+ g_assert_true ((gpointer)str != (gpointer)empty_str);
+ g_assert_cmpstr (str, ==, empty_str);
+
+ g_assert_true (g_set_str (&str, NULL));
+ g_assert_null (str);
+
+ g_assert_true (g_set_str (&str, empty_str));
+ g_assert_true (g_set_str (&str, "test"));
+ g_assert_cmpstr (str, ==, "test");
+
+ g_assert_true (g_set_str (&str, &str[2]));
+ g_assert_cmpstr (str, ==, "st");
+
+ g_free (str);
+}
+
int
main (int argc,
char *argv[])
@@ -2585,9 +2733,12 @@ main (int argc,
g_test_add_func ("/strfuncs/ascii_strtod", test_ascii_strtod);
g_test_add_func ("/strfuncs/bounds-check", test_bounds);
g_test_add_func ("/strfuncs/has-prefix", test_has_prefix);
+ g_test_add_func ("/strfuncs/has-prefix-macro", test_has_prefix_macro);
g_test_add_func ("/strfuncs/has-suffix", test_has_suffix);
+ g_test_add_func ("/strfuncs/has-suffix-macro", test_has_suffix_macro);
g_test_add_func ("/strfuncs/memdup", test_memdup);
g_test_add_func ("/strfuncs/memdup2", test_memdup2);
+ g_test_add_func ("/strfuncs/set_str", test_set_str);
g_test_add_func ("/strfuncs/stpcpy", test_stpcpy);
g_test_add_func ("/strfuncs/str_match_string", test_str_match_string);
g_test_add_func ("/strfuncs/str_tokenize_and_fold", test_str_tokenize_and_fold);
@@ -2598,6 +2749,7 @@ main (int argc,
g_test_add_func ("/strfuncs/strconcat", test_strconcat);
g_test_add_func ("/strfuncs/strdelimit", test_strdelimit);
g_test_add_func ("/strfuncs/strdup", test_strdup);
+ g_test_add_func ("/strfuncs/strdup/inline", test_strdup_inline);
g_test_add_func ("/strfuncs/strdup-printf", test_strdup_printf);
g_test_add_func ("/strfuncs/strdupv", test_strdupv);
g_test_add_func ("/strfuncs/strerror", test_strerror);
diff --git a/glib/tests/string.c b/glib/tests/string.c
index 0ea9f7bbb..932a311de 100644
--- a/glib/tests/string.c
+++ b/glib/tests/string.c
@@ -1,6 +1,8 @@
/* Unit tests for gstring
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -45,7 +47,7 @@ test_string_chunks (void)
}
tmp_string_2 = g_string_chunk_insert_const (string_chunk, tmp_string);
- g_assert (tmp_string_2 != tmp_string);
+ g_assert_true (tmp_string_2 != tmp_string);
g_assert_cmpstr (tmp_string_2, ==, tmp_string);
tmp_string = g_string_chunk_insert_const (string_chunk, tmp_string);
@@ -70,9 +72,9 @@ test_string_chunk_insert (void)
str[1] = g_string_chunk_insert_len (chunk, s1, 8);
str[2] = g_string_chunk_insert (chunk, s2);
- g_assert (memcmp (s0, str[0], sizeof s0) == 0);
- g_assert (memcmp (s1, str[1], sizeof s1) == 0);
- g_assert (memcmp (s2, str[2], sizeof s2) == 0);
+ g_assert_cmpmem (s0, sizeof s0, str[0], sizeof s0);
+ g_assert_cmpmem (s1, sizeof s1, str[1], sizeof s1);
+ g_assert_cmpmem (s2, sizeof s2, str[2], sizeof s2);
g_string_chunk_free (chunk);
}
@@ -85,11 +87,11 @@ test_string_new (void)
string1 = g_string_new ("hi pete!");
string2 = g_string_new (NULL);
- g_assert (string1 != NULL);
- g_assert (string2 != NULL);
- g_assert (strlen (string1->str) == string1->len);
- g_assert (strlen (string2->str) == string2->len);
- g_assert (string2->len == 0);
+ g_assert_nonnull (string1);
+ g_assert_nonnull (string2);
+ g_assert_cmpuint (strlen (string1->str), ==, string1->len);
+ g_assert_cmpuint (strlen (string2->str), ==, string2->len);
+ g_assert_cmpuint (string2->len, ==, 0);
g_assert_cmpstr ("hi pete!", ==, string1->str);
g_assert_cmpstr ("", ==, string2->str);
@@ -100,9 +102,9 @@ test_string_new (void)
string2 = g_string_new_len ("foobar", 3);
g_assert_cmpstr (string1->str, ==, "foo");
- g_assert_cmpint (string1->len, ==, 3);
+ g_assert_cmpuint (string1->len, ==, 3);
g_assert_cmpstr (string2->str, ==, "foo");
- g_assert_cmpint (string2->len, ==, 3);
+ g_assert_cmpuint (string2->len, ==, 3);
g_string_free (string1, TRUE);
g_string_free (string2, TRUE);
@@ -181,7 +183,7 @@ static void
test_string_append_c (void)
{
GString *string;
- gint i;
+ guint i;
string = g_string_new ("hi pete!");
@@ -191,8 +193,11 @@ test_string_append_c (void)
else
(g_string_append_c) (string, 'a'+(i%26));
- g_assert((strlen("hi pete!") + 10000) == string->len);
- g_assert((strlen("hi pete!") + 10000) == strlen(string->str));
+ g_assert_true ((strlen("hi pete!") + 10000) == string->len);
+ g_assert_true ((strlen("hi pete!") + 10000) == strlen(string->str));
+
+ for (i = 0; i < 10000; i++)
+ g_assert_true (string->str[strlen ("Hi pete!") + i] == 'a' + (gchar) (i%26));
g_string_free (string, TRUE);
}
@@ -201,17 +206,89 @@ static void
test_string_append (void)
{
GString *string;
+ char *tmp;
+ int i;
+
+ tmp = g_strdup ("more");
/* append */
string = g_string_new ("firsthalf");
- g_string_append (string, "lasthalf");
+ g_string_append (string, "last");
+ (g_string_append) (string, "half");
+
g_assert_cmpstr (string->str, ==, "firsthalflasthalf");
+
+ i = 0;
+ g_string_append (string, &tmp[i++]);
+ (g_string_append) (string, &tmp[i++]);
+ g_assert_true (i == 2);
+
+ g_assert_cmpstr (string->str, ==, "firsthalflasthalfmoreore");
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*string != NULL*failed*");
+ g_assert_null (g_string_append (NULL, NULL));
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*string != NULL*failed*");
+ g_assert_null ((g_string_append) (NULL, NULL));
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*val != NULL*failed*");
+ g_assert_true (g_string_append (string, NULL) == string);
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*val != NULL*failed*");
+ g_assert_true ((g_string_append) (string, NULL) == string);
+ g_test_assert_expected_messages ();
+
g_string_free (string, TRUE);
+ g_free (tmp);
/* append_len */
string = g_string_new ("firsthalf");
- g_string_append_len (string, "lasthalfjunkjunk", strlen ("lasthalf"));
- g_assert_cmpstr (string->str, ==, "firsthalflasthalf");
+ g_string_append_len (string, "lasthalfjunkjunk", strlen ("last"));
+ (g_string_append_len) (string, "halfjunkjunk", strlen ("half"));
+ g_string_append_len (string, "more", -1);
+ (g_string_append_len) (string, "ore", -1);
+
+ g_assert_true (g_string_append_len (string, NULL, 0) == string);
+ g_assert_true ((g_string_append_len) (string, NULL, 0) == string);
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*string != NULL*failed*");
+ g_assert_null (g_string_append_len (NULL, NULL, -1));
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*string != NULL*failed*");
+ g_assert_null ((g_string_append_len) (NULL, NULL, -1));
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*val != NULL*failed*");
+ g_assert_true (g_string_append_len (string, NULL, -1) == string);
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*val != NULL*failed*");
+ g_assert_true ((g_string_append_len) (string, NULL, -1) == string);
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*val != NULL*failed*");
+ g_assert_true (g_string_append_len (string, NULL, 1) == string);
+ g_test_assert_expected_messages ();
+
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*assertion*val != NULL*failed*");
+ g_assert_true ((g_string_append_len) (string, NULL, 1) == string);
+ g_test_assert_expected_messages ();
+
+ g_assert_cmpstr (string->str, ==, "firsthalflasthalfmoreore");
g_string_free (string, TRUE);
}
@@ -395,9 +472,9 @@ test_string_equal (void)
string1 = g_string_new ("test");
string2 = g_string_new ("te");
- g_assert (!g_string_equal(string1, string2));
+ g_assert_false (g_string_equal (string1, string2));
g_string_append (string2, "st");
- g_assert (g_string_equal(string1, string2));
+ g_assert_true (g_string_equal (string1, string2));
g_string_free (string1, TRUE);
g_string_free (string2, TRUE);
}
@@ -410,15 +487,15 @@ test_string_truncate (void)
string = g_string_new ("testing");
g_string_truncate (string, 1000);
- g_assert (string->len == strlen("testing"));
+ g_assert_cmpuint (string->len, ==, strlen("testing"));
g_assert_cmpstr (string->str, ==, "testing");
- g_string_truncate (string, 4);
- g_assert (string->len == 4);
+ (g_string_truncate) (string, 4);
+ g_assert_cmpuint (string->len, ==, 4);
g_assert_cmpstr (string->str, ==, "test");
g_string_truncate (string, 0);
- g_assert (string->len == 0);
+ g_assert_cmpuint (string->len, ==, 0);
g_assert_cmpstr (string->str, ==, "");
g_string_free (string, TRUE);
@@ -433,24 +510,24 @@ test_string_overwrite (void)
string = g_string_new ("testing");
g_string_overwrite (string, 4, " and expand");
- g_assert (15 == string->len);
- g_assert ('\0' == string->str[15]);
- g_assert (g_str_equal ("test and expand", string->str));
+ g_assert_cmpuint (15, ==, string->len);
+ g_assert_true ('\0' == string->str[15]);
+ g_assert_true (g_str_equal ("test and expand", string->str));
g_string_overwrite (string, 5, "NOT-");
- g_assert (15 == string->len);
- g_assert ('\0' == string->str[15]);
- g_assert (g_str_equal ("test NOT-expand", string->str));
+ g_assert_cmpuint (15, ==, string->len);
+ g_assert_true ('\0' == string->str[15]);
+ g_assert_true (g_str_equal ("test NOT-expand", string->str));
g_string_overwrite_len (string, 9, "blablabla", 6);
- g_assert (15 == string->len);
- g_assert ('\0' == string->str[15]);
- g_assert (g_str_equal ("test NOT-blabla", string->str));
+ g_assert_cmpuint (15, ==, string->len);
+ g_assert_true ('\0' == string->str[15]);
+ g_assert_true (g_str_equal ("test NOT-blabla", string->str));
g_string_overwrite_len (string, 4, "BLABL", 0);
- g_assert (g_str_equal ("test NOT-blabla", string->str));
+ g_assert_true (g_str_equal ("test NOT-blabla", string->str));
g_string_overwrite_len (string, 4, "BLABL", -1);
- g_assert (g_str_equal ("testBLABLblabla", string->str));
+ g_assert_true (g_str_equal ("testBLABLblabla", string->str));
g_string_free (string, TRUE);
}
@@ -463,15 +540,15 @@ test_string_nul_handling (void)
/* Check handling of embedded ASCII 0 (NUL) characters in GString. */
string1 = g_string_new ("fiddle");
string2 = g_string_new ("fiddle");
- g_assert (g_string_equal (string1, string2));
+ g_assert_true (g_string_equal (string1, string2));
g_string_append_c (string1, '\0');
- g_assert (!g_string_equal (string1, string2));
+ g_assert_false (g_string_equal (string1, string2));
g_string_append_c (string2, '\0');
- g_assert (g_string_equal (string1, string2));
+ g_assert_true (g_string_equal (string1, string2));
g_string_append_c (string1, 'x');
g_string_append_c (string2, 'y');
- g_assert (!g_string_equal (string1, string2));
- g_assert (string1->len == 8);
+ g_assert_false (g_string_equal (string1, string2));
+ g_assert_cmpuint (string1->len, ==, 8);
g_string_append (string1, "yzzy");
g_assert_cmpmem (string1->str, string1->len + 1, "fiddle\0xyzzy", 13);
g_string_insert (string1, 1, "QED");
@@ -516,7 +593,7 @@ test_string_set_size (void)
g_string_set_size (s, 30);
g_assert_cmpstr (s->str, ==, "foo");
- g_assert_cmpint (s->len, ==, 30);
+ g_assert_cmpuint (s->len, ==, 30);
g_string_free (s, TRUE);
}
@@ -536,7 +613,7 @@ test_string_to_bytes (void)
byte_data = g_bytes_get_data (bytes, &byte_len);
- g_assert_cmpint (byte_len, ==, 7);
+ g_assert_cmpuint (byte_len, ==, 7);
g_assert_cmpmem (byte_data, byte_len, "foo-bar", 7);
@@ -606,6 +683,66 @@ test_string_replace (void)
}
}
+static void
+test_string_steal (void)
+{
+ GString *string;
+ char *str;
+
+ string = g_string_new ("One");
+ g_string_append (string, ", two");
+ g_string_append (string, ", three");
+ g_string_append_c (string, '.');
+
+ str = g_string_free (string, FALSE);
+
+ g_assert_cmpstr (str, ==, "One, two, three.");
+ g_free (str);
+
+ string = g_string_new ("1");
+ g_string_append (string, " 2");
+ g_string_append (string, " 3");
+
+ str = g_string_free_and_steal (string);
+
+ g_assert_cmpstr (str, ==, "1 2 3");
+ g_free (str);
+}
+
+static void
+test_string_new_take (void)
+{
+ const char *test_str_const = "test_test";
+ const char *replaced_str_const = "test__test";
+ char *test_str = malloc (10 * sizeof (*test_str_const));
+ GString *string;
+
+ strcpy (test_str, test_str_const);
+ g_assert_cmpstr (test_str, ==, test_str_const);
+
+ string = g_string_new_take (g_steal_pointer (&test_str));
+ g_assert_null (test_str);
+ g_assert_nonnull (string);
+
+ g_string_replace (string, "_", "__", 0);
+ g_assert_cmpstr (string->str, ==, replaced_str_const);
+
+ test_str = g_string_free_and_steal (g_steal_pointer (&string));
+ g_assert_cmpstr (test_str, ==, replaced_str_const);
+
+ g_free (test_str);
+}
+
+static void
+test_string_new_take_null (void)
+{
+ GString *string = g_string_new_take (NULL);
+
+ g_assert_cmpstr (string->str, ==, "");
+
+ g_string_free (g_steal_pointer (&string), TRUE);
+}
+
int
main (int argc,
char *argv[])
@@ -632,6 +769,9 @@ main (int argc,
g_test_add_func ("/string/test-string-set-size", test_string_set_size);
g_test_add_func ("/string/test-string-to-bytes", test_string_to_bytes);
g_test_add_func ("/string/test-string-replace", test_string_replace);
+ g_test_add_func ("/string/test-string-steal", test_string_steal);
+ g_test_add_func ("/string/test-string-new-take", test_string_new_take);
+ g_test_add_func ("/string/test-string-new-take/null", test_string_new_take_null);
return g_test_run();
}
diff --git a/glib/tests/strvbuilder.c b/glib/tests/strvbuilder.c
index 904af0e71..595a6845e 100644
--- a/glib/tests/strvbuilder.c
+++ b/glib/tests/strvbuilder.c
@@ -2,6 +2,8 @@
* Copyright © 2020 Canonical Ltd.
* Copyright © 2021 Alexandros Theodotou
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/test-printf.c b/glib/tests/test-printf.c
index 9aca97feb..261b03812 100644
--- a/glib/tests/test-printf.c
+++ b/glib/tests/test-printf.c
@@ -1,6 +1,8 @@
/* Unit tests for gprintf
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/test-spawn-echo.c b/glib/tests/test-spawn-echo.c
index cb387ba84..fb35f7bf2 100644
--- a/glib/tests/test-spawn-echo.c
+++ b/glib/tests/test-spawn-echo.c
@@ -1,6 +1,8 @@
/*
* Copyright (C) 2011 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/test-spawn-sleep.c b/glib/tests/test-spawn-sleep.c
index 34dfd5bd9..a6d418b62 100644
--- a/glib/tests/test-spawn-sleep.c
+++ b/glib/tests/test-spawn-sleep.c
@@ -1,6 +1,8 @@
/*
* Copyright (C) 2022 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/testing-helper.c b/glib/tests/testing-helper.c
index 3d435e588..da60f3e44 100644
--- a/glib/tests/testing-helper.c
+++ b/glib/tests/testing-helper.c
@@ -20,6 +20,7 @@
#include <glib.h>
#include <locale.h>
+#include <stdio.h>
#ifdef G_OS_WIN32
#include <fcntl.h>
#include <io.h>
@@ -52,6 +53,12 @@ test_fail (void)
}
static void
+test_error (void)
+{
+ g_error ("This should error out\nBecause it's just\nwrong!");
+}
+
+static void
test_fail_printf (void)
{
g_test_fail_printf ("this test intentionally left failing");
@@ -79,6 +86,63 @@ test_summary (void)
"it in the TAP output later.");
}
+static void
+test_message (void)
+{
+ g_test_message ("Tests that single line message works");
+ g_test_message ("Tests that multi\n\nline\nmessage\nworks");
+ g_test_message ("\nTests that multi\nline\nmessage\nworks with leading and trailing too\n");
+}
+
+static void
+test_print (void)
+{
+ g_print ("Tests that single line message works\n");
+ g_print ("test that multiple\nlines ");
+ g_print ("can be ");
+ g_print ("written ");
+ g_print ("separately\n");
+}
+
+static void
+test_subprocess_stdout (void)
+{
+ if (g_test_subprocess ())
+ {
+ printf ("Tests that single line message works\n");
+ printf ("test that multiple\nlines ");
+ printf ("can be ");
+ printf ("written ");
+ printf ("separately\n");
+
+ puts ("And another line has been put");
+
+ return;
+ }
+
+ g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_INHERIT_STDOUT);
+ g_test_trap_has_passed ();
+
+ g_test_trap_assert_stdout ("/sub-stdout: Tests that single line message works\n*");
+ g_test_trap_assert_stdout ("*\ntest that multiple\nlines can be written separately\n*");
+ g_test_trap_assert_stdout ("*\nAnd another line has been put\n*");
+}
+
+static void
+test_subprocess_stdout_no_nl (void)
+{
+ if (g_test_subprocess ())
+ {
+ printf ("A message without trailing new line");
+ return;
+ }
+
+ g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_INHERIT_STDOUT);
+ g_test_trap_has_passed ();
+
+ g_test_trap_assert_stdout ("/sub-stdout-no-nl: A message without trailing new line");
+}
+
int
main (int argc,
char *argv[])
@@ -149,6 +213,15 @@ main (int argc,
{
g_test_add_func ("/fail", test_fail);
}
+ else if (g_strcmp0 (argv1, "error") == 0)
+ {
+ g_test_add_func ("/error", test_error);
+ }
+ else if (g_strcmp0 (argv1, "error-and-pass") == 0)
+ {
+ g_test_add_func ("/error", test_error);
+ g_test_add_func ("/pass", test_pass);
+ }
else if (g_strcmp0 (argv1, "fail-printf") == 0)
{
g_test_add_func ("/fail-printf", test_fail_printf);
@@ -185,9 +258,33 @@ main (int argc,
{
g_test_add_func ("/summary", test_summary);
}
+ else if (g_strcmp0 (argv1, "message") == 0)
+ {
+ g_test_add_func ("/message", test_message);
+ }
+ else if (g_strcmp0 (argv1, "print") == 0)
+ {
+ g_test_add_func ("/print", test_print);
+ }
+ else if (g_strcmp0 (argv1, "subprocess-stdout") == 0)
+ {
+ g_test_add_func ("/sub-stdout", test_subprocess_stdout);
+ }
+ else if (g_strcmp0 (argv1, "subprocess-stdout-no-nl") == 0)
+ {
+ g_test_add_func ("/sub-stdout-no-nl", test_subprocess_stdout_no_nl);
+ }
else
{
- g_assert_not_reached ();
+ if (g_test_subprocess ())
+ {
+ g_test_add_func ("/sub-stdout", test_subprocess_stdout);
+ g_test_add_func ("/sub-stdout-no-nl", test_subprocess_stdout_no_nl);
+ }
+ else
+ {
+ g_assert_not_reached ();
+ }
}
return g_test_run ();
diff --git a/glib/tests/testing.c b/glib/tests/testing.c
index 60fdb4ccd..acbc1be22 100644
--- a/glib/tests/testing.c
+++ b/glib/tests/testing.c
@@ -2,6 +2,8 @@
* Copyright (C) 2007 Imendio AB
* Authors: Tim Janik
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -33,6 +35,9 @@
#include <stdlib.h>
#include <string.h>
+#define TAP_VERSION G_STRINGIFY (13)
+#define TAP_SUBTEST_PREFIX "# "
+
/* test assertion variants */
static void
test_assertions_bad_cmpvariant_types (void)
@@ -481,7 +486,7 @@ test_random_conversions (void)
int vint = g_test_rand_int();
char *err, *str = g_strdup_printf ("%d", vint);
gint64 vint64 = g_ascii_strtoll (str, &err, 10);
- g_assert_cmphex (vint, ==, vint64);
+ g_assert_cmpint (vint, ==, vint64);
g_assert_true (!err || *err == 0);
g_free (str);
}
@@ -669,6 +674,23 @@ test_expected_messages (void)
}
static void
+test_messages (void)
+{
+ g_test_trap_subprocess ("/misc/messages/subprocess/use-stderr", 0,
+ G_TEST_SUBPROCESS_DEFAULT);
+ g_test_trap_assert_stderr ("*message is in stderr*");
+ g_test_trap_assert_stderr ("*warning is in stderr*");
+ g_test_trap_has_passed ();
+}
+
+static void
+test_messages_use_stderr (void)
+{
+ g_message ("message is in stderr");
+ g_warning ("warning is in stderr");
+}
+
+static void
test_expected_messages_debug (void)
{
g_test_expect_message ("Test", G_LOG_LEVEL_WARNING, "warning message");
@@ -1087,6 +1109,7 @@ test_tap (void)
GError *error = NULL;
int status;
gchar *output;
+ char **envp;
testing_helper = g_test_get_filename (G_TEST_BUILT, "testing-helper" EXEEXT, NULL);
@@ -1097,7 +1120,12 @@ test_tap (void)
g_ptr_array_add (argv, "--tap");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ /* Remove the G_TEST_ROOT_PROCESS env so it will be considered a standalone test */
+ envp = g_get_environ ();
+ g_assert_nonnull (g_environ_getenv (envp, "G_TEST_ROOT_PROCESS"));
+ envp = g_environ_unsetenv (g_steal_pointer (&envp), "G_TEST_ROOT_PROCESS");
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
@@ -1105,6 +1133,8 @@ test_tap (void)
g_spawn_check_wait_status (status, &error);
g_assert_no_error (error);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "\nok 1 /pass\n"));
g_free (output);
g_ptr_array_unref (argv);
@@ -1116,7 +1146,7 @@ test_tap (void)
g_ptr_array_add (argv, "--tap");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
@@ -1124,6 +1154,8 @@ test_tap (void)
g_spawn_check_wait_status (status, &error);
g_assert_no_error (error);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "\nok 1 /skip # SKIP not enough tea\n"));
g_free (output);
g_ptr_array_unref (argv);
@@ -1135,7 +1167,7 @@ test_tap (void)
g_ptr_array_add (argv, "--tap");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
@@ -1143,6 +1175,8 @@ test_tap (void)
g_spawn_check_wait_status (status, &error);
g_assert_no_error (error);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "\nok 1 /skip-printf # SKIP not enough coffee\n"));
g_free (output);
g_ptr_array_unref (argv);
@@ -1154,7 +1188,7 @@ test_tap (void)
g_ptr_array_add (argv, "--tap");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
@@ -1162,6 +1196,8 @@ test_tap (void)
g_spawn_check_wait_status (status, &error);
g_assert_no_error (error);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "\nnot ok 1 /incomplete # TODO mind reading not implemented yet\n"));
g_free (output);
g_ptr_array_unref (argv);
@@ -1173,7 +1209,7 @@ test_tap (void)
g_ptr_array_add (argv, "--tap");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
@@ -1181,6 +1217,8 @@ test_tap (void)
g_spawn_check_wait_status (status, &error);
g_assert_no_error (error);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "\nnot ok 1 /incomplete-printf # TODO telekinesis not implemented yet\n"));
g_free (output);
g_ptr_array_unref (argv);
@@ -1192,7 +1230,7 @@ test_tap (void)
g_ptr_array_add (argv, "--tap");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
@@ -1200,6 +1238,8 @@ test_tap (void)
g_spawn_check_wait_status (status, &error);
g_assert_error (error, G_SPAWN_EXIT_ERROR, 1);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "\nnot ok 1 /fail\n"));
g_free (output);
g_clear_error (&error);
@@ -1212,7 +1252,7 @@ test_tap (void)
g_ptr_array_add (argv, "--tap");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
@@ -1220,6 +1260,8 @@ test_tap (void)
g_spawn_check_wait_status (status, &error);
g_assert_error (error, G_SPAWN_EXIT_ERROR, 1);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "\nnot ok 1 /fail-printf - this test intentionally left failing\n"));
g_free (output);
g_clear_error (&error);
@@ -1232,7 +1274,7 @@ test_tap (void)
g_ptr_array_add (argv, "--tap");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, NULL, NULL, &status,
&error);
@@ -1250,7 +1292,7 @@ test_tap (void)
g_ptr_array_add (argv, "--tap");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, NULL, NULL, &status,
&error);
@@ -1270,11 +1312,13 @@ test_tap (void)
g_ptr_array_add (argv, "2");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
g_assert_no_error (error);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "1..10\n"));
g_assert_nonnull (strstr (output, "\nok 1 /a # SKIP\n"));
g_assert_nonnull (strstr (output, "\nok 2 /b # SKIP\n"));
@@ -1302,11 +1346,13 @@ test_tap (void)
g_ptr_array_add (argv, "0");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
g_assert_no_error (error);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "1..10\n"));
g_assert_nonnull (strstr (output, "\nok 1 /a\n"));
g_assert_nonnull (strstr (output, "\nok 2 /b\n"));
@@ -1334,11 +1380,13 @@ test_tap (void)
g_ptr_array_add (argv, "11");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
g_assert_no_error (error);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "1..10\n"));
g_assert_nonnull (strstr (output, "\nok 1 /a # SKIP\n"));
g_assert_nonnull (strstr (output, "\nok 2 /b # SKIP\n"));
@@ -1370,11 +1418,13 @@ test_tap (void)
g_ptr_array_add (argv, "/b");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
g_assert_no_error (error);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "\nok 1 /c/a\n"));
g_assert_nonnull (strstr (output, "\nok 2 /c/a\n"));
g_assert_nonnull (strstr (output, "\nok 3 /b\n"));
@@ -1401,11 +1451,13 @@ test_tap (void)
g_ptr_array_add (argv, "/b");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
g_assert_no_error (error);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "\nok 1 /c/a\n"));
g_assert_nonnull (strstr (output, "\nok 2 /c/a\n"));
g_assert_nonnull (strstr (output, "\nok 3 /b\n"));
@@ -1431,11 +1483,13 @@ test_tap (void)
g_ptr_array_add (argv, "/b/b");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
g_assert_no_error (error);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "\nok 1 /b/b\n"));
g_assert_nonnull (strstr (output, "\nok 2 /b/b/a\n"));
g_assert_nonnull (strstr (output, "\n1..2\n"));
@@ -1459,13 +1513,14 @@ test_tap (void)
g_ptr_array_add (argv, "/b");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
g_assert_no_error (error);
g_spawn_check_wait_status (status, &error);
g_assert_nonnull (error);
+ g_assert_false (g_str_has_prefix (output, "TAP version " TAP_VERSION));
g_assert_nonnull (strstr (output, "do not mix [-r | --run-prefix] with '-p'\n"));
g_clear_error (&error);
@@ -1487,11 +1542,13 @@ test_tap (void)
g_ptr_array_add (argv, "/c/a");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
g_assert_no_error (error);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "1..10\n"));
g_assert_nonnull (strstr (output, "\nok 1 /a # SKIP by request"));
g_assert_nonnull (strstr (output, "\nok 2 /b # SKIP by request"));
@@ -1525,11 +1582,13 @@ test_tap (void)
g_ptr_array_add (argv, "/c/a");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
g_assert_no_error (error);
+ g_assert_true (g_str_has_prefix (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "1..10\n"));
g_assert_nonnull (strstr (output, "\nok 1 /a # SKIP by request"));
g_assert_nonnull (strstr (output, "\nok 2 /b\n"));
@@ -1562,18 +1621,602 @@ test_tap (void)
g_ptr_array_add (argv, "/c/a");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
g_assert_no_error (error);
g_spawn_check_wait_status (status, &error);
g_assert_nonnull (error);
+ g_assert_false (g_str_has_prefix (output, "TAP version " TAP_VERSION));
g_assert_nonnull (strstr (output, "do not mix [-x | --skip-prefix] with '-s'\n"));
g_clear_error (&error);
g_free (output);
g_ptr_array_unref (argv);
+ g_strfreev (envp);
+}
+
+/* Test the TAP output when a test suite is run with --tap. */
+static void
+test_tap_subtest (void)
+{
+ const char *testing_helper;
+ GPtrArray *argv;
+ GError *error = NULL;
+ int status;
+ gchar *output;
+ char** envp = NULL;
+
+ testing_helper = g_test_get_filename (G_TEST_BUILT, "testing-helper" EXEEXT, NULL);
+
+ g_test_message ("pass");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "pass");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ envp = g_get_environ ();
+ g_assert_nonnull (g_environ_getenv (envp, "G_TEST_ROOT_PROCESS"));
+ g_clear_pointer (&envp, g_strfreev);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_true (g_str_has_prefix (output, "# Subtest: "));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 1 /pass\n"));
+ g_free (output);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("skip");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "skip");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_true (g_str_has_prefix (output, "# Subtest: "));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 1 /skip # SKIP not enough tea\n"));
+ g_free (output);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("skip with printf format");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "skip-printf");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_true (g_str_has_prefix (output, "# Subtest: "));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 1 /skip-printf # SKIP not enough coffee\n"));
+ g_free (output);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("incomplete");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "incomplete");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_null (strstr (output, "\n# Subtest: "));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "not ok 1 /incomplete # TODO mind reading not implemented yet\n"));
+ g_free (output);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("incomplete with printf format");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "incomplete-printf");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_null( strstr (output, "\n# Subtest: "));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "not ok 1 /incomplete-printf # TODO telekinesis not implemented yet\n"));
+ g_free (output);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("fail");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "fail");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_error (error, G_SPAWN_EXIT_ERROR, 1);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_null( strstr (output, "\n# Subtest: "));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "not ok 1 /fail\n"));
+ g_free (output);
+ g_clear_error (&error);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("fail with message");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "fail-printf");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_error (error, G_SPAWN_EXIT_ERROR, 1);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_null( strstr (output, "\n# Subtest: "));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "not ok 1 /fail-printf - this test intentionally left failing\n"));
+ g_free (output);
+ g_clear_error (&error);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("all");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "all");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, NULL, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_error (error, G_SPAWN_EXIT_ERROR, 1);
+ g_clear_error (&error);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("all-non-failures");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "all-non-failures");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, NULL, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ g_ptr_array_unref (argv);
+
+ g_test_message ("--GTestSkipCount");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "skip-options");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, "--GTestSkipCount");
+ g_ptr_array_add (argv, "2");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_null( strstr (output, "\n# Subtest: "));
+ g_assert_nonnull (strstr (output, TAP_SUBTEST_PREFIX "1..10\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 1 /a # SKIP\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 2 /b # SKIP\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 3 /b/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 4 /b/b\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 5 /b/b/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 6 /prefix/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 7 /prefix/b/b\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 8 /prefix-long/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 9 /c/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 10 /d/a\n"));
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ g_free (output);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("--GTestSkipCount=0 is the same as omitting it");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "skip-options");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, "--GTestSkipCount");
+ g_ptr_array_add (argv, "0");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_null( strstr (output, "\n# Subtest: "));
+ g_assert_nonnull (strstr (output, TAP_SUBTEST_PREFIX "1..10\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 1 /a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 2 /b\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 3 /b/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 4 /b/b\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 5 /b/b/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 6 /prefix/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 7 /prefix/b/b\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 8 /prefix-long/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 9 /c/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 10 /d/a\n"));
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ g_free (output);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("--GTestSkipCount > number of tests skips all");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "skip-options");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, "--GTestSkipCount");
+ g_ptr_array_add (argv, "11");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_null( strstr (output, "\n# Subtest: "));
+ g_assert_nonnull (strstr (output, TAP_SUBTEST_PREFIX "1..10\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 1 /a # SKIP\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 2 /b # SKIP\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 3 /b/a # SKIP\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 4 /b/b # SKIP\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 5 /b/b/a # SKIP\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 6 /prefix/a # SKIP\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 7 /prefix/b/b # SKIP\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 8 /prefix-long/a # SKIP\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 9 /c/a # SKIP\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 10 /d/a # SKIP\n"));
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ g_free (output);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("-p");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "skip-options");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, "-p");
+ g_ptr_array_add (argv, "/c/a");
+ g_ptr_array_add (argv, "-p");
+ g_ptr_array_add (argv, "/c/a");
+ g_ptr_array_add (argv, "-p");
+ g_ptr_array_add (argv, "/b");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_null( strstr (output, "\n# Subtest: "));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 1 /c/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 2 /c/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 3 /b\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 4 /b/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 5 /b/b\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "1..5\n"));
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ g_free (output);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("--run-prefix");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "skip-options");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, "-r");
+ g_ptr_array_add (argv, "/c/a");
+ g_ptr_array_add (argv, "-r");
+ g_ptr_array_add (argv, "/c/a");
+ g_ptr_array_add (argv, "--run-prefix");
+ g_ptr_array_add (argv, "/b");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_null( strstr (output, "\n# Subtest: "));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 1 /c/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 2 /c/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 3 /b\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 4 /b/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 5 /b/b\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 6 /b/b/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "1..6\n"));
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ g_free (output);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("--run-prefix 2");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "skip-options");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, "-r");
+ g_ptr_array_add (argv, "/pre");
+ g_ptr_array_add (argv, "--run-prefix");
+ g_ptr_array_add (argv, "/b/b");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_null( strstr (output, "\n# Subtest: "));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 1 /b/b\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 2 /b/b/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "1..2\n"));
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ g_free (output);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("--run-prefix conflict");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "skip-options");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, "-r");
+ g_ptr_array_add (argv, "/c/a");
+ g_ptr_array_add (argv, "-p");
+ g_ptr_array_add (argv, "/c/a");
+ g_ptr_array_add (argv, "--run-prefix");
+ g_ptr_array_add (argv, "/b");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+ g_spawn_check_wait_status (status, &error);
+ g_assert_nonnull (error);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_null( strstr (output, "\n# Subtest: "));
+ g_assert_nonnull (strstr (output, "do not mix [-r | --run-prefix] with '-p'\n"));
+ g_clear_error (&error);
+
+ g_free (output);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("-s");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "skip-options");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, "-s");
+ g_ptr_array_add (argv, "/a");
+ g_ptr_array_add (argv, "-s");
+ g_ptr_array_add (argv, "/b");
+ g_ptr_array_add (argv, "-s");
+ g_ptr_array_add (argv, "/pre");
+ g_ptr_array_add (argv, "-s");
+ g_ptr_array_add (argv, "/c/a");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_null( strstr (output, "\n# Subtest: "));
+ g_assert_nonnull (strstr (output, TAP_SUBTEST_PREFIX "1..10\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 1 /a # SKIP by request"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 2 /b # SKIP by request"));
+ /* "-s /b" would skip a test named exactly /b, but not a test named
+ * /b/anything */
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 3 /b/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 4 /b/b\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 5 /b/b/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 6 /prefix/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 7 /prefix/b/b\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 8 /prefix-long/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 9 /c/a # SKIP by request"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 10 /d/a\n"));
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ g_free (output);
+ g_ptr_array_unref (argv);
+
+ g_test_message ("--skip-prefix");
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "skip-options");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, "-x");
+ g_ptr_array_add (argv, "/a");
+ g_ptr_array_add (argv, "--skip-prefix");
+ g_ptr_array_add (argv, "/pre");
+ g_ptr_array_add (argv, "-x");
+ g_ptr_array_add (argv, "/c/a");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+ g_assert_null (strstr (output, "TAP version " TAP_VERSION));
+ g_assert_true (g_str_has_prefix (output, "# Subtest: "));
+ g_assert_nonnull (strstr (output, TAP_SUBTEST_PREFIX "1..10\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 1 /a # SKIP by request"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 2 /b\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 3 /b/a\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 4 /b/b\n"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 5 /b/b/a\n"));
+ /* "--skip-prefix /pre" will skip all test path which begins with /pre */
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 6 /prefix/a # SKIP by request"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 7 /prefix/b/b # SKIP by request"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 8 /prefix-long/a # SKIP by request"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 9 /c/a # SKIP by request"));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX "ok 10 /d/a\n"));
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ g_free (output);
+ g_ptr_array_unref (argv);
}
static void
@@ -1584,6 +2227,7 @@ test_tap_summary (void)
GError *error = NULL;
int status;
gchar *output;
+ char **envp;
g_test_summary ("Test the output of g_test_summary() from the TAP output of a test.");
@@ -1595,7 +2239,12 @@ test_tap_summary (void)
g_ptr_array_add (argv, "--tap");
g_ptr_array_add (argv, NULL);
- g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ /* Remove the G_TEST_ROOT_PROCESS env so it will be considered a standalone test */
+ envp = g_get_environ ();
+ g_assert_nonnull (g_environ_getenv (envp, "G_TEST_ROOT_PROCESS"));
+ envp = g_environ_unsetenv (g_steal_pointer (&envp), "G_TEST_ROOT_PROCESS");
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
G_SPAWN_STDERR_TO_DEV_NULL,
NULL, NULL, &output, NULL, &status,
&error);
@@ -1603,14 +2252,577 @@ test_tap_summary (void)
g_spawn_check_wait_status (status, &error);
g_assert_no_error (error);
+ g_assert_null (strstr (output, "# Subtest: "));
+
/* Note: The test path in the output is not `/tap/summary` because it’s the
- * test path from testing-helper, not from this function. */
+ * test path from testing-helper, not from this function. */g_assert_null (strstr (output, "# Subtest: "));
g_assert_nonnull (strstr (output, "\n# /summary summary: Tests that g_test_summary() "
"works with TAP, by outputting a known "
"summary message in testing-helper, and "
"checking for it in the TAP output later.\n"));
g_free (output);
g_ptr_array_unref (argv);
+ g_strfreev (envp);
+}
+
+static void
+test_tap_subtest_summary (void)
+{
+ const char *testing_helper;
+ GPtrArray *argv;
+ GError *error = NULL;
+ int status;
+ gchar *output;
+
+ g_test_summary ("Test the output of g_test_summary() from the TAP output of a test.");
+
+ testing_helper = g_test_get_filename (G_TEST_BUILT, "testing-helper" EXEEXT, NULL);
+
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "summary");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+ /* Note: The test path in the output is not `/tap/summary` because it’s the
+ * test path from testing-helper, not from this function. */
+ g_assert_true (g_str_has_prefix (output, "# Subtest: "));
+ g_assert_nonnull (strstr (output,
+ "\n" TAP_SUBTEST_PREFIX
+ "# /summary summary: Tests that g_test_summary() "
+ "works with TAP, by outputting a known "
+ "summary message in testing-helper, and "
+ "checking for it in the TAP output later.\n"));
+ g_free (output);
+ g_ptr_array_unref (argv);
+}
+
+static void
+test_tap_message (void)
+{
+ const char *testing_helper;
+ GPtrArray *argv;
+ GError *error = NULL;
+ int status;
+ gchar *output;
+ char **output_lines;
+ char **envp;
+
+ g_test_summary ("Test the output of g_test_message() from the TAP output of a test.");
+
+ testing_helper = g_test_get_filename (G_TEST_BUILT, "testing-helper" EXEEXT, NULL);
+
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "message");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ /* Remove the G_TEST_ROOT_PROCESS env so it will be considered a standalone test */
+ envp = g_get_environ ();
+ g_assert_nonnull (g_environ_getenv (envp, "G_TEST_ROOT_PROCESS"));
+ envp = g_environ_unsetenv (g_steal_pointer (&envp), "G_TEST_ROOT_PROCESS");
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ g_assert_null (strstr (output, "# Subtest: "));
+
+ const char *expected_tap_header = "\n1..1\n";
+ const char *interesting_lines = strstr (output, expected_tap_header);
+ g_assert_nonnull (interesting_lines);
+ interesting_lines += strlen (expected_tap_header);
+
+ output_lines = g_strsplit (interesting_lines, "\n", -1);
+ g_assert_cmpuint (g_strv_length (output_lines), >=, 12);
+
+ guint i = 0;
+ g_assert_cmpstr (output_lines[i++], ==, "# Tests that single line message works");
+ g_assert_cmpstr (output_lines[i++], ==, "# Tests that multi");
+ g_assert_cmpstr (output_lines[i++], ==, "# ");
+ g_assert_cmpstr (output_lines[i++], ==, "# line");
+ g_assert_cmpstr (output_lines[i++], ==, "# message");
+ g_assert_cmpstr (output_lines[i++], ==, "# works");
+ g_assert_cmpstr (output_lines[i++], ==, "# ");
+ g_assert_cmpstr (output_lines[i++], ==, "# Tests that multi");
+ g_assert_cmpstr (output_lines[i++], ==, "# line");
+ g_assert_cmpstr (output_lines[i++], ==, "# message");
+ g_assert_cmpstr (output_lines[i++], ==, "# works with leading and trailing too");
+ g_assert_cmpstr (output_lines[i++], ==, "# ");
+
+ g_free (output);
+ g_strfreev (output_lines);
+ g_strfreev (envp);
+ g_ptr_array_unref (argv);
+}
+
+static void
+test_tap_subtest_message (void)
+{
+ const char *testing_helper;
+ GPtrArray *argv;
+ GError *error = NULL;
+ int status;
+ gchar *output;
+ char **output_lines;
+
+ g_test_summary ("Test the output of g_test_message() from the TAP output of a sub-test.");
+
+ testing_helper = g_test_get_filename (G_TEST_BUILT, "testing-helper" EXEEXT, NULL);
+
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "message");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ g_assert_true (g_str_has_prefix (output, "# Subtest: "));
+
+ const char *expected_tap_header = "\n" TAP_SUBTEST_PREFIX "1..1\n";
+ const char *interesting_lines = strstr (output, expected_tap_header);
+ g_assert_nonnull (interesting_lines);
+ interesting_lines += strlen (expected_tap_header);
+
+ output_lines = g_strsplit (interesting_lines, "\n", -1);
+ g_assert_cmpuint (g_strv_length (output_lines), >=, 12);
+
+ guint i = 0;
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# Tests that single line message works");
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# Tests that multi");
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# ");
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# line");
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# message");
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# works");
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# ");
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# Tests that multi");
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# line");
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# message");
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# works with leading and trailing too");
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# ");
+
+ g_free (output);
+ g_strfreev (output_lines);
+ g_ptr_array_unref (argv);
+}
+
+static void
+test_tap_print (void)
+{
+ const char *testing_helper;
+ GPtrArray *argv;
+ GError *error = NULL;
+ int status;
+ gchar *output;
+ char **output_lines;
+ char **envp;
+
+ g_test_summary ("Test the output of g_print() from the TAP output of a test.");
+
+ testing_helper = g_test_get_filename (G_TEST_BUILT, "testing-helper" EXEEXT, NULL);
+
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "print");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ /* Remove the G_TEST_ROOT_PROCESS env so it will be considered a standalone test */
+ envp = g_get_environ ();
+ g_assert_nonnull (g_environ_getenv (envp, "G_TEST_ROOT_PROCESS"));
+ envp = g_environ_unsetenv (g_steal_pointer (&envp), "G_TEST_ROOT_PROCESS");
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ const char *expected_tap_header = "\n1..1\n";
+ const char *interesting_lines = strstr (output, expected_tap_header);
+ g_assert_nonnull (interesting_lines);
+ interesting_lines += strlen (expected_tap_header);
+
+ output_lines = g_strsplit (interesting_lines, "\n", -1);
+ g_assert_cmpuint (g_strv_length (output_lines), >=, 3);
+
+ guint i = 0;
+ g_assert_cmpstr (output_lines[i++], ==, "# Tests that single line message works");
+ g_assert_cmpstr (output_lines[i++], ==, "# test that multiple");
+ g_assert_cmpstr (output_lines[i++], ==, "# lines can be written separately");
+
+ g_free (output);
+ g_strfreev (envp);
+ g_strfreev (output_lines);
+ g_ptr_array_unref (argv);
+}
+
+static void
+test_tap_subtest_print (void)
+{
+ const char *testing_helper;
+ GPtrArray *argv;
+ GError *error = NULL;
+ int status;
+ gchar *output;
+ char **output_lines;
+
+ g_test_summary ("Test the output of g_test_print() from the TAP output of a sub-test.");
+
+ testing_helper = g_test_get_filename (G_TEST_BUILT, "testing-helper" EXEEXT, NULL);
+
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "print");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ const char *expected_tap_header = "\n" TAP_SUBTEST_PREFIX "1..1\n";
+ const char *interesting_lines = strstr (output, expected_tap_header);
+ g_assert_nonnull (interesting_lines);
+ interesting_lines += strlen (expected_tap_header);
+
+ output_lines = g_strsplit (interesting_lines, "\n", -1);
+ g_assert_cmpuint (g_strv_length (output_lines), >=, 3);
+
+ guint i = 0;
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# Tests that single line message works");
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# test that multiple");
+ g_assert_cmpstr (output_lines[i++], ==, TAP_SUBTEST_PREFIX "# lines can be written separately");
+
+ g_free (output);
+ g_strfreev (output_lines);
+ g_ptr_array_unref (argv);
+}
+
+static void
+test_tap_subtest_stdout (void)
+{
+ const char *testing_helper;
+ GPtrArray *argv;
+ GError *error = NULL;
+ int status;
+ gchar *output;
+ char **output_lines;
+
+ g_test_summary ("Test the stdout from the TAP output of a sub-test.");
+
+ testing_helper = g_test_get_filename (G_TEST_BUILT, "testing-helper" EXEEXT, NULL);
+
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "subprocess-stdout");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ const char *expected_tap_header = "\n" TAP_SUBTEST_PREFIX "1..1\n";
+ const char *interesting_lines = strstr (output, expected_tap_header);
+ g_assert_nonnull (interesting_lines);
+
+ interesting_lines = strstr (interesting_lines, TAP_SUBTEST_PREFIX "# /sub-stdout");
+ g_assert_nonnull (interesting_lines);
+
+ output_lines = g_strsplit (interesting_lines, "\n", -1);
+ g_assert_cmpuint (g_strv_length (output_lines), >=, 5);
+
+ guint i = 0;
+ g_assert_cmpstr (output_lines[i++], ==,
+ TAP_SUBTEST_PREFIX "# /sub-stdout: Tests that single line message works");
+ g_assert_cmpstr (output_lines[i++], ==,
+ TAP_SUBTEST_PREFIX "# test that multiple");
+ g_assert_cmpstr (output_lines[i++], ==,
+ TAP_SUBTEST_PREFIX "# lines can be written separately");
+ g_assert_cmpstr (output_lines[i++], ==,
+ TAP_SUBTEST_PREFIX "# And another line has been put");
+ g_assert_cmpstr (output_lines[i++], ==,
+ TAP_SUBTEST_PREFIX "ok 1 /sub-stdout");
+
+ g_free (output);
+ g_strfreev (output_lines);
+ g_ptr_array_unref (argv);
+}
+
+static void
+test_tap_subtest_stdout_no_new_line (void)
+{
+ const char *testing_helper;
+ GPtrArray *argv;
+ GError *error = NULL;
+ int status;
+ gchar *output;
+ char **output_lines;
+
+ g_test_summary ("Test the stdout from the TAP output of a sub-test.");
+
+ testing_helper = g_test_get_filename (G_TEST_BUILT, "testing-helper" EXEEXT, NULL);
+
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "subprocess-stdout-no-nl");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_no_error (error);
+
+ const char *expected_tap_header = "\n" TAP_SUBTEST_PREFIX "1..1\n";
+ const char *interesting_lines = strstr (output, expected_tap_header);
+ g_assert_nonnull (interesting_lines);
+
+ interesting_lines = strstr (interesting_lines, TAP_SUBTEST_PREFIX "# /sub-stdout-no-nl");
+ g_assert_nonnull (interesting_lines);
+
+ output_lines = g_strsplit (interesting_lines, "\n", -1);
+ g_assert_cmpuint (g_strv_length (output_lines), >=, 2);
+
+ guint i = 0;
+ g_assert_cmpstr (output_lines[i++], ==,
+ TAP_SUBTEST_PREFIX "# /sub-stdout-no-nl: A message without trailing new line");
+ g_assert_cmpstr (output_lines[i++], ==,
+ TAP_SUBTEST_PREFIX "ok 1 /sub-stdout-no-nl");
+
+ g_free (output);
+ g_strfreev (output_lines);
+ g_ptr_array_unref (argv);
+}
+
+static void
+test_tap_error (void)
+{
+ const char *testing_helper;
+ GPtrArray *argv;
+ GError *error = NULL;
+ int status;
+ gchar *output;
+ char **envp;
+
+ g_test_summary ("Test that g_error() generates Bail out TAP output of a test.");
+
+ testing_helper = g_test_get_filename (G_TEST_BUILT, "testing-helper" EXEEXT, NULL);
+
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "error");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ /* Remove the G_TEST_ROOT_PROCESS env so it will be considered a standalone test */
+ envp = g_get_environ ();
+ g_assert_nonnull (g_environ_getenv (envp, "G_TEST_ROOT_PROCESS"));
+ envp = g_environ_unsetenv (g_steal_pointer (&envp), "G_TEST_ROOT_PROCESS");
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_nonnull (error);
+
+ g_assert_false (g_str_has_prefix (output, "# Subtest: "));
+
+ const char *expected_tap_header = "\n1..1\n";
+ const char *interesting_lines = strstr (output, expected_tap_header);
+ g_assert_nonnull (interesting_lines);
+ interesting_lines += strlen (expected_tap_header);
+
+ g_assert_cmpstr (interesting_lines, ==, "not ok /error - GLib-FATAL-ERROR: This should error out "
+ "Because it's just wrong!\n"
+ "Bail out!\n");
+
+ g_free (output);
+ g_strfreev (envp);
+ g_ptr_array_unref (argv);
+ g_clear_error (&error);
+}
+
+static void
+test_tap_subtest_error (void)
+{
+ const char *testing_helper;
+ GPtrArray *argv;
+ GError *error = NULL;
+ int status;
+ gchar *output;
+
+ g_test_summary ("Test that g_error() generates Bail out TAP output of a test.");
+
+ testing_helper = g_test_get_filename (G_TEST_BUILT, "testing-helper" EXEEXT, NULL);
+
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "error");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_nonnull (error);
+
+ g_assert_true (g_str_has_prefix (output, "# Subtest: "));
+
+ const char *expected_tap_header = "\n" TAP_SUBTEST_PREFIX "1..1\n";
+ const char *interesting_lines = strstr (output, expected_tap_header);
+ g_assert_nonnull (interesting_lines);
+ interesting_lines += strlen (expected_tap_header);
+
+ g_assert_cmpstr (interesting_lines, ==,
+ TAP_SUBTEST_PREFIX "not ok /error - GLib-FATAL-ERROR: This should error out "
+ "Because it's just wrong!\n"
+ TAP_SUBTEST_PREFIX "Bail out!\n");
+
+ g_free (output);
+ g_ptr_array_unref (argv);
+ g_clear_error (&error);
+}
+
+static void
+test_tap_error_and_pass (void)
+{
+ const char *testing_helper;
+ GPtrArray *argv;
+ GError *error = NULL;
+ int status;
+ gchar *output;
+ char **envp;
+
+ g_test_summary ("Test that g_error() generates Bail out TAP output of a test.");
+
+ testing_helper = g_test_get_filename (G_TEST_BUILT, "testing-helper" EXEEXT, NULL);
+
+ /* Remove the G_TEST_ROOT_PROCESS env so it will be considered a standalone test */
+ envp = g_get_environ ();
+ g_assert_nonnull (g_environ_getenv (envp, "G_TEST_ROOT_PROCESS"));
+ envp = g_environ_unsetenv (g_steal_pointer (&envp), "G_TEST_ROOT_PROCESS");
+
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "error-and-pass");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, envp,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_nonnull (error);
+
+ const char *expected_tap_header = "\n1..2\n";
+ const char *interesting_lines = strstr (output, expected_tap_header);
+ g_assert_nonnull (interesting_lines);
+ interesting_lines += strlen (expected_tap_header);
+
+ g_assert_cmpstr (interesting_lines, ==, "not ok /error - GLib-FATAL-ERROR: This should error out "
+ "Because it's just wrong!\n"
+ "Bail out!\n");
+
+ g_free (output);
+ g_strfreev (envp);
+ g_ptr_array_unref (argv);
+ g_clear_error (&error);
+}
+
+static void
+test_tap_subtest_error_and_pass (void)
+{
+ const char *testing_helper;
+ GPtrArray *argv;
+ GError *error = NULL;
+ int status;
+ gchar *output;
+
+ g_test_summary ("Test that g_error() generates Bail out TAP output of a test.");
+
+ testing_helper = g_test_get_filename (G_TEST_BUILT, "testing-helper" EXEEXT, NULL);
+
+ argv = g_ptr_array_new ();
+ g_ptr_array_add (argv, (char *) testing_helper);
+ g_ptr_array_add (argv, "error-and-pass");
+ g_ptr_array_add (argv, "--tap");
+ g_ptr_array_add (argv, NULL);
+
+ g_spawn_sync (NULL, (char **) argv->pdata, NULL,
+ G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, &status,
+ &error);
+ g_assert_no_error (error);
+
+ g_spawn_check_wait_status (status, &error);
+ g_assert_nonnull (error);
+
+ g_assert_true (g_str_has_prefix (output, "# Subtest: "));
+
+ const char *expected_tap_header = "\n" TAP_SUBTEST_PREFIX "1..2\n";
+ const char *interesting_lines = strstr (output, expected_tap_header);
+ g_assert_nonnull (interesting_lines);
+ interesting_lines += strlen (expected_tap_header);
+
+ g_assert_cmpstr (interesting_lines, ==,
+ TAP_SUBTEST_PREFIX "not ok /error - GLib-FATAL-ERROR: This should error out "
+ "Because it's just wrong!\n"
+ TAP_SUBTEST_PREFIX "Bail out!\n");
+
+ g_free (output);
+ g_ptr_array_unref (argv);
+ g_clear_error (&error);
}
static void
@@ -1716,6 +2928,9 @@ main (int argc,
g_test_add_func ("/misc/expected-messages/expect-error", test_expected_messages_expect_error);
g_test_add_func ("/misc/expected-messages/skip-debug", test_expected_messages_debug);
+ g_test_add_func ("/misc/messages", test_messages);
+ g_test_add_func ("/misc/messages/subprocess/use-stderr", test_messages_use_stderr);
+
g_test_add_func ("/misc/dash-p", test_dash_p);
g_test_add_func ("/misc/dash-p/child", test_dash_p_child);
g_test_add_func ("/misc/dash-p/child/sub", test_dash_p_child_sub);
@@ -1742,7 +2957,19 @@ main (int argc,
g_test_add_func ("/misc/path/second", test_path_second);
g_test_add_func ("/tap", test_tap);
+ g_test_add_func ("/tap/subtest", test_tap_subtest);
g_test_add_func ("/tap/summary", test_tap_summary);
+ g_test_add_func ("/tap/subtest/summary", test_tap_subtest_summary);
+ g_test_add_func ("/tap/message", test_tap_message);
+ g_test_add_func ("/tap/subtest/message", test_tap_subtest_message);
+ g_test_add_func ("/tap/print", test_tap_print);
+ g_test_add_func ("/tap/subtest/print", test_tap_subtest_print);
+ g_test_add_func ("/tap/subtest/stdout", test_tap_subtest_stdout);
+ g_test_add_func ("/tap/subtest/stdout-no-new-line", test_tap_subtest_stdout_no_new_line);
+ g_test_add_func ("/tap/error", test_tap_error);
+ g_test_add_func ("/tap/subtest/error", test_tap_subtest_error);
+ g_test_add_func ("/tap/error-and-pass", test_tap_error_and_pass);
+ g_test_add_func ("/tap/subtest/error-and-pass", test_tap_subtest_error_and_pass);
g_test_add_func ("/init/no_argv0", test_init_no_argv0);
diff --git a/glib/tests/thread-pool.c b/glib/tests/thread-pool.c
index 23ee27ee3..36e499403 100644
--- a/glib/tests/thread-pool.c
+++ b/glib/tests/thread-pool.c
@@ -1,6 +1,8 @@
/* Unit tests for GThreadPool
* Copyright (C) 2020 Sebastian Dröge <sebastian@centricular.com>
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/tests/thread.c b/glib/tests/thread.c
index 14f571076..25c62cc6d 100644
--- a/glib/tests/thread.c
+++ b/glib/tests/thread.c
@@ -2,6 +2,8 @@
* Copyright (C) 2011 Red Hat, Inc
* Author: Matthias Clasen
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -145,7 +147,8 @@ test_thread4 (void)
nl.rlim_cur = 1;
if (prlimit (getpid (), RLIMIT_NPROC, &nl, &ol) != 0)
- g_error ("prlimit failed: %s", g_strerror (errno));
+ g_error ("setting RLIMIT_NPROC to {cur=%ld,max=%ld} failed: %s",
+ (long) nl.rlim_cur, (long) nl.rlim_max, g_strerror (errno));
error = NULL;
thread = g_thread_try_new ("a", thread1_func, NULL, &error);
diff --git a/glib/tests/timeout.c b/glib/tests/timeout.c
index acbb8f3e1..1ae3f3a34 100644
--- a/glib/tests/timeout.c
+++ b/glib/tests/timeout.c
@@ -20,6 +20,12 @@ unreachable_callback (gpointer data)
}
static void
+unreachable_void_callback (gpointer data)
+{
+ g_assert_not_reached ();
+}
+
+static void
test_seconds (void)
{
guint id;
@@ -52,6 +58,19 @@ test_seconds (void)
}
static void
+test_seconds_once (void)
+{
+ /* Use the same principle as in test_seconds() */
+ loop = g_main_loop_new (NULL, FALSE);
+
+ g_timeout_add_once (2100, stop_waiting, NULL);
+ g_timeout_add_seconds_once (21475, unreachable_void_callback, NULL);
+
+ g_main_loop_run (loop);
+ g_main_loop_unref (loop);
+}
+
+static void
test_weeks_overflow (void)
{
guint id;
@@ -192,6 +211,7 @@ main (int argc, char *argv[])
g_test_init (&argc, &argv, NULL);
g_test_add_func ("/timeout/seconds", test_seconds);
+ g_test_add_func ("/timeout/seconds-once", test_seconds_once);
g_test_add_func ("/timeout/weeks-overflow", test_weeks_overflow);
g_test_add_func ("/timeout/far-future-ready-time", test_far_future_ready_time);
g_test_add_func ("/timeout/rounding", test_rounding);
diff --git a/glib/tests/timer.c b/glib/tests/timer.c
index 42ed5a92c..ae44dc8ea 100644
--- a/glib/tests/timer.c
+++ b/glib/tests/timer.c
@@ -1,6 +1,8 @@
/* Unit tests for GTimer
* Copyright (C) 2013 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -344,6 +346,41 @@ test_timeval_to_iso8601_overflow (void)
g_assert_null (out);
}
+static void
+test_usleep_with_zero_wait (void)
+{
+ GTimer *timer;
+ unsigned int n_times_shorter = 0;
+
+ timer = g_timer_new ();
+
+ /* Test that g_usleep(0) sleeps for less time than g_usleep(1). We can’t
+ * actually guarantee this, since the exact length of g_usleep(1) is not
+ * guaranteed, but we can say that it probably should be longer 9 times out
+ * of 10. */
+ for (unsigned int i = 0; i < 10; i++)
+ {
+ gdouble elapsed0, elapsed1;
+
+ g_timer_start (timer);
+ g_usleep (0);
+ elapsed0 = g_timer_elapsed (timer, NULL);
+ g_timer_stop (timer);
+
+ g_timer_start (timer);
+ g_usleep (1);
+ elapsed1 = g_timer_elapsed (timer, NULL);
+ g_timer_stop (timer);
+
+ if (elapsed0 <= elapsed1)
+ n_times_shorter++;
+ }
+
+ g_assert_cmpuint (n_times_shorter, >=, 9);
+
+ g_clear_pointer (&timer, g_timer_destroy);
+}
+
int
main (int argc, char *argv[])
{
@@ -358,6 +395,7 @@ main (int argc, char *argv[])
g_test_add_func ("/timeval/from-iso8601", test_timeval_from_iso8601);
g_test_add_func ("/timeval/to-iso8601", test_timeval_to_iso8601);
g_test_add_func ("/timeval/to-iso8601/overflow", test_timeval_to_iso8601_overflow);
+ g_test_add_func ("/usleep/with-zero-wait", test_usleep_with_zero_wait);
return g_test_run ();
}
diff --git a/glib/tests/tree.c b/glib/tests/tree.c
index 79f4c0059..055a2c266 100644
--- a/glib/tests/tree.c
+++ b/glib/tests/tree.c
@@ -56,7 +56,7 @@ my_compare_with_data (gconstpointer a,
const char *chb = b;
/* just check that we got the right data */
- g_assert (GPOINTER_TO_INT(user_data) == 123);
+ g_assert_cmpint (GPOINTER_TO_INT (user_data), ==, 123);
return *cha - *chb;
}
@@ -94,7 +94,7 @@ my_traverse (gpointer key,
{
char *ch = key;
- g_assert ((*ch) > 0);
+ g_assert_cmpint ((*ch), >, 0);
if (*ch == 'd')
return TRUE;
@@ -119,7 +119,7 @@ check_order (gpointer key,
char **p = data;
char *ch = key;
- g_assert (**p == *ch);
+ g_assert_cmpint (**p, ==, *ch);
(*p)++;
@@ -151,12 +151,12 @@ test_tree_search (void)
for (i = 0; i < 26; i++)
{
removed = g_tree_remove (tree, &chars[i + 10]);
- g_assert (removed);
+ g_assert_true (removed);
}
c = '\0';
removed = g_tree_remove (tree, &c);
- g_assert (!removed);
+ g_assert_false (removed);
g_tree_foreach (tree, my_traverse, NULL);
@@ -174,61 +174,61 @@ test_tree_search (void)
c = '0';
p = g_tree_lookup (tree, &c);
- g_assert (p && *p == c);
- g_assert (g_tree_lookup_extended (tree, &c, (gpointer *)&d, (gpointer *)&p));
- g_assert (c == *d && c == *p);
+ g_assert_true (p && *p == c);
+ g_assert_true (g_tree_lookup_extended (tree, &c, (gpointer *)&d, (gpointer *)&p));
+ g_assert_true (c == *d && c == *p);
c = 'A';
p = g_tree_lookup (tree, &c);
- g_assert (p && *p == c);
+ g_assert_true (p && *p == c);
c = 'a';
p = g_tree_lookup (tree, &c);
- g_assert (p && *p == c);
+ g_assert_true (p && *p == c);
c = 'z';
p = g_tree_lookup (tree, &c);
- g_assert (p && *p == c);
+ g_assert_true (p && *p == c);
c = '!';
p = g_tree_lookup (tree, &c);
- g_assert (p == NULL);
+ g_assert_null (p);
c = '=';
p = g_tree_lookup (tree, &c);
- g_assert (p == NULL);
+ g_assert_null (p);
c = '|';
p = g_tree_lookup (tree, &c);
- g_assert (p == NULL);
+ g_assert_null (p);
c = '0';
p = g_tree_search (tree, my_search, &c);
- g_assert (p && *p == c);
+ g_assert_true (p && *p == c);
c = 'A';
p = g_tree_search (tree, my_search, &c);
- g_assert (p && *p == c);
+ g_assert_true (p && *p == c);
c = 'a';
p = g_tree_search (tree, my_search, &c);
- g_assert (p &&*p == c);
+ g_assert_true (p &&*p == c);
c = 'z';
p = g_tree_search (tree, my_search, &c);
- g_assert (p && *p == c);
+ g_assert_true (p && *p == c);
c = '!';
p = g_tree_search (tree, my_search, &c);
- g_assert (p == NULL);
+ g_assert_null (p);
c = '=';
p = g_tree_search (tree, my_search, &c);
- g_assert (p == NULL);
+ g_assert_null (p);
c = '|';
p = g_tree_search (tree, my_search, &c);
- g_assert (p == NULL);
+ g_assert_null (p);
g_tree_destroy (tree);
}
@@ -237,9 +237,10 @@ static void
test_tree_remove (void)
{
GTree *tree;
- char c, d;
+ char c, d, e, f;
gint i;
gboolean removed;
+ GTreeNode *node;
gchar *remove;
tree = g_tree_new_full ((GCompareDataFunc)my_compare, NULL,
@@ -251,37 +252,51 @@ test_tree_remove (void)
c = '0';
g_tree_insert (tree, &c, &c);
- g_assert (destroyed_key == &c);
- g_assert (destroyed_value == &chars[0]);
+ g_assert_true (destroyed_key == &c);
+ g_assert_true (destroyed_value == &chars[0]);
destroyed_key = NULL;
destroyed_value = NULL;
d = '1';
g_tree_replace (tree, &d, &d);
- g_assert (destroyed_key == &chars[1]);
- g_assert (destroyed_value == &chars[1]);
+ g_assert_true (destroyed_key == &chars[1]);
+ g_assert_true (destroyed_value == &chars[1]);
destroyed_key = NULL;
destroyed_value = NULL;
+ e = '\xff';
+ node = g_tree_insert_node (tree, &e, &e);
+ g_assert_nonnull (node);
+ g_assert_null (destroyed_key);
+ g_assert_null (destroyed_value);
+
c = '2';
removed = g_tree_remove (tree, &c);
- g_assert (removed);
- g_assert (destroyed_key == &chars[2]);
- g_assert (destroyed_value == &chars[2]);
+ g_assert_true (removed);
+ g_assert_true (destroyed_key == &chars[2]);
+ g_assert_true (destroyed_value == &chars[2]);
destroyed_key = NULL;
destroyed_value = NULL;
c = '3';
removed = g_tree_steal (tree, &c);
- g_assert (removed);
- g_assert (destroyed_key == NULL);
- g_assert (destroyed_value == NULL);
+ g_assert_true (removed);
+ g_assert_null (destroyed_key);
+ g_assert_null (destroyed_value);
+
+ f = '4';
+ node = g_tree_replace_node (tree, &f, &f);
+ g_assert_nonnull (node);
+ g_assert_true (destroyed_key == &chars[4]);
+ g_assert_true (destroyed_value == &chars[4]);
+ destroyed_key = NULL;
+ destroyed_value = NULL;
remove = "omkjigfedba";
for (i = 0; remove[i]; i++)
{
removed = g_tree_remove (tree, &remove[i]);
- g_assert (removed);
+ g_assert_true (removed);
}
g_tree_destroy (tree);
@@ -511,12 +526,12 @@ binary_tree_bound (GTree *tree,
{
GTreeNode *last = g_tree_node_last (tree);
- g_assert (last);
+ g_assert_nonnull (last);
if (g_test_verbose ())
g_test_message ("past end last %c",
*(char *) g_tree_node_key (last));
}
- g_assert (expected == '\x00');
+ g_assert_cmpint (expected, ==, '\x00');
}
else
{
@@ -525,34 +540,34 @@ binary_tree_bound (GTree *tree,
GTreeNode *prev = g_tree_node_previous (node);
GTreeNode *next = g_tree_node_next (node);
- g_assert (expected != '\x00');
- g_assert (expected == *(char *) g_tree_node_key (node));
+ g_assert_cmpint (expected, !=, '\x00');
+ g_assert_cmpint (expected, ==, *(char *) g_tree_node_key (node));
if (g_test_verbose ())
g_test_message ("%c", *(char *) g_tree_node_key (node));
if (node != begin)
{
- g_assert (prev);
+ g_assert_nonnull (prev);
if (g_test_verbose ())
g_test_message (" prev %c", *(char *) g_tree_node_key (prev));
}
else
{
- g_assert (!prev);
+ g_assert_null (prev);
if (g_test_verbose ())
g_test_message (" no prev, it's the first one");
}
if (node != last)
{
- g_assert (next);
+ g_assert_nonnull (next);
if (g_test_verbose ())
g_test_message (" next %c", *(char *) g_tree_node_key (next));
}
else
{
- g_assert (!next);
+ g_assert_null (next);
if (g_test_verbose ())
g_test_message (" no next, it's the last one");
}
@@ -570,7 +585,7 @@ binary_tree_bounds (GTree *tree,
char expectedl, expectedu;
char first = mode == 0 ? '0' : mode == 1 ? 'A' : 'z';
- g_assert (mode >= 0 && mode <= 3);
+ g_assert_true (mode >= 0 && mode <= 3);
if (c < first)
expectedl = first;
@@ -655,8 +670,9 @@ test_tree_bounds (void)
g_test_message ("%c ", *(char *) elem);
node = g_tree_insert_node (tree, elem, elem);
- g_assert (g_tree_node_key (node) == elem);
- g_assert (g_tree_node_value (node) == elem);
+ g_assert_nonnull (node);
+ g_assert_true (g_tree_node_key (node) == elem);
+ g_assert_true (g_tree_node_value (node) == elem);
}
if (g_test_verbose ())
diff --git a/glib/tests/unicode-normalize.c b/glib/tests/unicode-normalize.c
index 451c03f34..3f4d4c571 100644
--- a/glib/tests/unicode-normalize.c
+++ b/glib/tests/unicode-normalize.c
@@ -146,12 +146,64 @@ test_unicode_normalize (void)
g_string_free (buffer, TRUE);
}
+static void
+test_unicode_normalize_invalid (void)
+{
+ /* g_utf8_normalize() should return NULL for all of these invalid inputs */
+ const struct
+ {
+ gssize max_len;
+ const gchar *str;
+ } test_vectors[] = {
+ /* input ending with truncated multibyte encoding */
+ { -1, "\xC0" },
+ { 1, "\xC0\x80" },
+ { -1, "\xE0\x80" },
+ { 2, "\xE0\x80\x80" },
+ { -1, "\xF0\x80\x80" },
+ { 3, "\xF0\x80\x80\x80" },
+ { -1, "\xF8\x80\x80\x80" },
+ { 4, "\xF8\x80\x80\x80\x80" },
+ { 3, "\x20\xE2\x84\xAA" },
+ { -1, "\x20\xE2\x00\xAA" },
+ { -1, "\xC0\x80\xE0\x80" },
+ { 4, "\xC0\x80\xE0\x80\x80" },
+ /* input containing invalid multibyte encoding */
+ { -1, "\xED\x85\x9C\xED\x15\x9C\xED\x85\x9C" },
+ };
+ gsize i;
+
+ for (i = 0; i < G_N_ELEMENTS (test_vectors); i++)
+ {
+ g_test_message ("Invalid UTF-8 vector %" G_GSIZE_FORMAT, i);
+ g_assert_null (g_utf8_normalize (test_vectors[i].str,
+ test_vectors[i].max_len,
+ G_NORMALIZE_ALL));
+ }
+}
+
+static void
+test_unicode_normalize_bad_length (void)
+{
+ const char *input = "fórmula, vol. 2 (deluxe edition)";
+ gsize len = 2;
+ char *output;
+
+ output = g_utf8_normalize (input, len, G_NORMALIZE_ALL_COMPOSE);
+ g_assert_null (output);
+
+ g_free (output);
+}
+
int
main (int argc, char **argv)
{
g_test_init (&argc, &argv, NULL);
g_test_add_func ("/unicode/normalize", test_unicode_normalize);
+ g_test_add_func ("/unicode/normalize-invalid",
+ test_unicode_normalize_invalid);
+ g_test_add_func ("/unicode/normalize/bad-length", test_unicode_normalize_bad_length);
return g_test_run ();
}
diff --git a/glib/tests/unicode.c b/glib/tests/unicode.c
index c2158914b..5d66977c2 100644
--- a/glib/tests/unicode.c
+++ b/glib/tests/unicode.c
@@ -2,6 +2,8 @@
* Copyright (C) 2010 Red Hat, Inc.
* Copyright (C) 2011 Google, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -457,6 +459,10 @@ test_strup (void)
/* Tricky, comparing two unicode strings with an ASCII function */
g_assert_cmpstr (str_up, ==, "AAZZ09X;\003E\357\274\241\357\274\241");
g_free (str_up);
+
+ str_up = g_utf8_strup ("", 0);
+ g_assert_cmpstr (str_up, ==, "");
+ g_free (str_up);
}
/* Test that g_utf8_strdown() returns the correct value for various
@@ -482,6 +488,10 @@ test_strdown (void)
/* Tricky, comparing two unicode strings with an ASCII function */
g_assert_cmpstr (str_down, ==, "aazz09x;\003\007\357\275\201\357\275\201");
g_free (str_down);
+
+ str_down = g_utf8_strdown ("", 0);
+ g_assert_cmpstr (str_down, ==, "");
+ g_free (str_down);
}
/* Test that g_utf8_strup() and g_utf8_strdown() return the correct
@@ -574,6 +584,10 @@ test_casefold (void)
/* Tricky, comparing two unicode strings with an ASCII function */
g_assert_cmpstr (str_casefold, ==, "aazz09x;\357\275\201\357\275\201");
g_free (str_casefold);
+
+ str_casefold = g_utf8_casefold ("", 0);
+ g_assert_cmpstr (str_casefold, ==, "");
+ g_free (str_casefold);
}
static void
@@ -1887,6 +1901,45 @@ test_iso15924 (void)
#undef PACK
}
+static void
+test_normalize (void)
+{
+ guint i;
+ typedef struct
+ {
+ const gchar *str;
+ const gchar *nfd;
+ const gchar *nfc;
+ const gchar *nfkd;
+ const gchar *nfkc;
+ } Test;
+ Test tests[] = {
+ { "Äffin", "A\u0308ffin", "Äffin", "A\u0308ffin", "Äffin" },
+ { "Ä\uFB03n", "A\u0308\uFB03n", "Ä\uFB03n", "A\u0308ffin", "Äffin" },
+ { "Henry IV", "Henry IV", "Henry IV", "Henry IV", "Henry IV" },
+ { "Henry \u2163", "Henry \u2163", "Henry \u2163", "Henry IV", "Henry IV" },
+ { "non-utf\x88", NULL, NULL, NULL, NULL },
+ { "", "", "", "", "" },
+ };
+
+#define TEST(str, mode, expected) \
+ { \
+ gchar *normalized = g_utf8_normalize (str, -1, mode); \
+ g_assert_cmpstr (normalized, ==, expected); \
+ g_free (normalized); \
+ }
+
+ for (i = 0; i < G_N_ELEMENTS (tests); i++)
+ {
+ TEST (tests[i].str, G_NORMALIZE_NFD, tests[i].nfd);
+ TEST (tests[i].str, G_NORMALIZE_NFC, tests[i].nfc);
+ TEST (tests[i].str, G_NORMALIZE_NFKD, tests[i].nfkd);
+ TEST (tests[i].str, G_NORMALIZE_NFKC, tests[i].nfkc);
+ }
+
+#undef TEST
+}
+
int
main (int argc,
char *argv[])
@@ -1931,6 +1984,7 @@ main (int argc,
g_test_add_func ("/unicode/xdigit", test_xdigit);
g_test_add_func ("/unicode/xdigit-value", test_xdigit_value);
g_test_add_func ("/unicode/zero-width", test_zerowidth);
+ g_test_add_func ("/unicode/normalize", test_normalize);
return g_test_run();
}
diff --git a/glib/tests/unix.c b/glib/tests/unix.c
index 6c4a59dee..ab6efaa76 100644
--- a/glib/tests/unix.c
+++ b/glib/tests/unix.c
@@ -1,6 +1,8 @@
/*
* Copyright (C) 2011 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -39,7 +41,7 @@ test_pipe (void)
gssize bytes_read;
gboolean res;
- res = g_unix_open_pipe (pipefd, FD_CLOEXEC, &error);
+ res = g_unix_open_pipe (pipefd, O_CLOEXEC, &error);
g_assert (res);
g_assert_no_error (error);
@@ -56,6 +58,34 @@ test_pipe (void)
}
static void
+test_pipe_fd_cloexec (void)
+{
+ GError *error = NULL;
+ int pipefd[2];
+ char buf[1024];
+ gssize bytes_read;
+ gboolean res;
+
+ g_test_summary ("Test that FD_CLOEXEC is still accepted as an argument to g_unix_open_pipe()");
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3459");
+
+ res = g_unix_open_pipe (pipefd, FD_CLOEXEC, &error);
+ g_assert (res);
+ g_assert_no_error (error);
+
+ g_assert_cmpint (write (pipefd[1], "hello", sizeof ("hello")), ==, sizeof ("hello"));
+ memset (buf, 0, sizeof (buf));
+ bytes_read = read (pipefd[0], buf, sizeof(buf) - 1);
+ g_assert_cmpint (bytes_read, >, 0);
+ buf[bytes_read] = '\0';
+
+ close (pipefd[0]);
+ close (pipefd[1]);
+
+ g_assert_true (g_str_has_prefix (buf, "hello"));
+}
+
+static void
test_pipe_stdio_overwrite (void)
{
GError *error = NULL;
@@ -73,7 +103,7 @@ test_pipe_stdio_overwrite (void)
g_close (STDIN_FILENO, &error);
g_assert_no_error (error);
- res = g_unix_open_pipe (pipefd, FD_CLOEXEC, &error);
+ res = g_unix_open_pipe (pipefd, O_CLOEXEC, &error);
g_assert_no_error (error);
g_assert_true (res);
@@ -113,7 +143,7 @@ test_nonblocking (void)
gboolean res;
int flags;
- res = g_unix_open_pipe (pipefd, FD_CLOEXEC, &error);
+ res = g_unix_open_pipe (pipefd, O_CLOEXEC, &error);
g_assert (res);
g_assert_no_error (error);
@@ -370,6 +400,99 @@ test_get_passwd_entry_nonexistent (void)
g_clear_error (&local_error);
}
+static void
+_child_wait_watch_cb (GPid pid,
+ gint wait_status,
+ gpointer user_data)
+{
+ gboolean *p_got_callback = user_data;
+
+ g_assert_nonnull (p_got_callback);
+ g_assert_false (*p_got_callback);
+ *p_got_callback = TRUE;
+}
+
+static void
+test_child_wait (void)
+{
+ gboolean r;
+ GPid pid;
+ guint id;
+ pid_t pid2;
+ int wstatus;
+ gboolean got_callback = FALSE;
+ gboolean iterate_maincontext = g_test_rand_bit ();
+ char **argv;
+ int errsv;
+
+ /* - We spawn a trivial child process that exits after a short time.
+ * - We schedule a g_child_watch_add()
+ * - we may iterate the GMainContext a bit. Randomly we either get the
+ * child-watcher callback or not.
+ * - if we didn't get the callback, we g_source_remove() the child watcher.
+ *
+ * Afterwards, if the callback didn't fire, we check that we are able to waitpid()
+ * on the process ourselves. Of course, if the child watcher notified, the waitpid()
+ * will fail with ECHILD.
+ */
+
+ argv = g_test_rand_bit () ? ((char *[]){ "/bin/sleep", "0.05", NULL }) : ((char *[]){ "/bin/true", NULL });
+
+ r = g_spawn_async (NULL,
+ argv,
+ NULL,
+ G_SPAWN_DO_NOT_REAP_CHILD,
+ NULL,
+ NULL,
+ &pid,
+ NULL);
+ if (!r)
+ {
+ /* Some odd system without /bin/sleep? Skip the test. */
+ g_test_skip ("failure to spawn test process in test_child_wait()");
+ return;
+ }
+
+ g_assert_cmpint (pid, >=, 1);
+
+ if (g_test_rand_bit ())
+ g_usleep (g_test_rand_int_range (0, (G_USEC_PER_SEC / 10)));
+
+ id = g_child_watch_add (pid, _child_wait_watch_cb, &got_callback);
+
+ if (g_test_rand_bit ())
+ g_usleep (g_test_rand_int_range (0, (G_USEC_PER_SEC / 10)));
+
+ if (iterate_maincontext)
+ {
+ gint64 start_usec = g_get_monotonic_time ();
+ gint64 end_usec = start_usec + g_test_rand_int_range (0, (G_USEC_PER_SEC / 10));
+
+ while (!got_callback && g_get_monotonic_time () < end_usec)
+ g_main_context_iteration (NULL, FALSE);
+ }
+
+ if (!got_callback)
+ g_source_remove (id);
+
+ errno = 0;
+ pid2 = waitpid (pid, &wstatus, 0);
+ errsv = errno;
+ if (got_callback)
+ {
+ g_assert_true (iterate_maincontext);
+ g_assert_cmpint (errsv, ==, ECHILD);
+ g_assert_cmpint (pid2, <, 0);
+ }
+ else
+ {
+ g_assert_cmpint (errsv, ==, 0);
+ g_assert_cmpint (pid2, ==, pid);
+ g_assert_true (WIFEXITED (wstatus));
+ g_assert_cmpint (WEXITSTATUS (wstatus), ==, 0);
+ }
+}
+
int
main (int argc,
char *argv[])
@@ -377,6 +500,7 @@ main (int argc,
g_test_init (&argc, &argv, NULL);
g_test_add_func ("/glib-unix/pipe", test_pipe);
+ g_test_add_func ("/glib-unix/pipe/fd-cloexec", test_pipe_fd_cloexec);
g_test_add_func ("/glib-unix/pipe-stdio-overwrite", test_pipe_stdio_overwrite);
g_test_add_func ("/glib-unix/error", test_error);
g_test_add_func ("/glib-unix/nonblocking", test_nonblocking);
@@ -388,6 +512,7 @@ main (int argc,
g_test_add_func ("/glib-unix/callback_after_signal", test_callback_after_signal);
g_test_add_func ("/glib-unix/get-passwd-entry/root", test_get_passwd_entry_root);
g_test_add_func ("/glib-unix/get-passwd-entry/nonexistent", test_get_passwd_entry_nonexistent);
+ g_test_add_func ("/glib-unix/child-wait", test_child_wait);
return g_test_run();
}
diff --git a/glib/tests/uri.c b/glib/tests/uri.c
index cf209efd0..94a0d5dac 100644
--- a/glib/tests/uri.c
+++ b/glib/tests/uri.c
@@ -130,7 +130,8 @@ file_from_uri_tests[] = {
{ "file:////etc/%C3%B6%C3%C3%C3%A5", "//etc/\xc3\xb6\xc3\xc3\xc3\xa5", NULL, 0 },
{ "file://\xE5\xE4\xF6/etc", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
{ "file://%E5%E4%F6/etc", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
- { "file:///some/file#bad", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
+ { "file:///some/file?query", "/some/file", NULL, 0 },
+ { "file:///some/file#bad", "/some/file", NULL, 0 },
{ "file://some", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
{ "", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
{ "file:test", NULL, NULL, G_CONVERT_ERROR_BAD_URI},
@@ -1912,6 +1913,16 @@ static const struct
"ftp", "", 21 },
{ "scheme://foo", G_URI_FLAGS_SCHEME_NORMALIZE,
"scheme", "", -1 },
+ { "socks://foo", G_URI_FLAGS_SCHEME_NORMALIZE,
+ "socks", "", 1080 },
+ { "socks4://foo", G_URI_FLAGS_SCHEME_NORMALIZE,
+ "socks4", "", 1080 },
+ { "socks4a://foo", G_URI_FLAGS_SCHEME_NORMALIZE,
+ "socks4a", "", 1080 },
+ { "socks5://foo", G_URI_FLAGS_SCHEME_NORMALIZE,
+ "socks5", "", 1080 },
+ { "socks5h://foo", G_URI_FLAGS_SCHEME_NORMALIZE,
+ "socks5h", "", 1080 },
};
static const struct
diff --git a/glib/tests/utf8-misc.c b/glib/tests/utf8-misc.c
index c13729422..9ad158a2b 100644
--- a/glib/tests/utf8-misc.c
+++ b/glib/tests/utf8-misc.c
@@ -1,6 +1,8 @@
/* Unit tests for utilities
* Copyright (C) 2010 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -160,6 +162,58 @@ test_utf8_make_valid (void)
g_free (r);
}
+static void
+truncate_middle_helper (const char *in_str,
+ gsize truncate_len,
+ const char *out_str)
+{
+ gchar *string = g_utf8_truncate_middle (in_str, truncate_len);
+ g_assert_cmpstr (string, ==, out_str);
+ g_free (string);
+}
+
+static void
+test_utf8_truncate_middle (void)
+{
+ truncate_middle_helper ("foo", 0, "");
+ truncate_middle_helper ("foo", 1, "…");
+ truncate_middle_helper ("foo", 2, "…o");
+ truncate_middle_helper ("foo", 3, "foo");
+ truncate_middle_helper ("foo", 4, "foo");
+ truncate_middle_helper ("foo", 5, "foo");
+ truncate_middle_helper ("foo", 6, "foo");
+ truncate_middle_helper ("foo", 7, "foo");
+
+ truncate_middle_helper ("a_much_longer_foo", 0, "");
+ truncate_middle_helper ("a_much_longer_foo", 1, "…");
+ truncate_middle_helper ("a_much_longer_foo", 2, "…o");
+ truncate_middle_helper ("a_much_longer_foo", 3, "a…o");
+ truncate_middle_helper ("a_much_longer_foo", 4, "a…oo");
+ truncate_middle_helper ("a_much_longer_foo", 5, "a_…oo");
+ truncate_middle_helper ("a_much_longer_foo", 6, "a_…foo");
+ truncate_middle_helper ("a_much_longer_foo", 7, "a_m…foo");
+ truncate_middle_helper ("a_much_longer_foo", 8, "a_m…_foo");
+ truncate_middle_helper ("a_much_longer_foo", 9, "a_mu…_foo");
+
+ truncate_middle_helper ("something_even", 8, "som…even");
+ truncate_middle_helper ("something_odd", 8, "som…_odd");
+ truncate_middle_helper ("something_even", 9, "some…even");
+ truncate_middle_helper ("something_odd", 9, "some…_odd");
+ truncate_middle_helper ("something_even", 10, "some…_even");
+ truncate_middle_helper ("something_odd", 10, "some…g_odd");
+ truncate_middle_helper ("something_even", 11, "somet…_even");
+ truncate_middle_helper ("something_odd", 11, "somet…g_odd");
+ truncate_middle_helper ("something_even", 12, "somet…g_even");
+ truncate_middle_helper ("something_odd", 12, "somet…ng_odd");
+ truncate_middle_helper ("something_even", 13, "someth…g_even");
+ truncate_middle_helper ("something_odd", 13, "something_odd");
+ truncate_middle_helper ("something_even", 14, "something_even");
+ truncate_middle_helper ("something_odd", 13, "something_odd");
+
+ truncate_middle_helper ("ääääääääää", 5, "ää…ää");
+ truncate_middle_helper ("あぃいぅうぇえぉ", 7, "あぃい…ぇえぉ");
+}
+
int
main (int argc,
char *argv[])
@@ -172,6 +226,7 @@ main (int argc,
g_test_add_func ("/utf8/reverse", test_utf8_reverse);
g_test_add_func ("/utf8/substring", test_utf8_substring);
g_test_add_func ("/utf8/make-valid", test_utf8_make_valid);
+ g_test_add_func ("/utf8/truncate-middle", test_utf8_truncate_middle);
return g_test_run();
}
diff --git a/glib/tests/utils-isolated.c b/glib/tests/utils-isolated.c
new file mode 100644
index 000000000..6ffb3424f
--- /dev/null
+++ b/glib/tests/utils-isolated.c
@@ -0,0 +1,114 @@
+/* Copyright (C) 2022 Marco Trevisan
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Marco Trevisan <marco.trevisan@canonical.com>
+ */
+
+#include "config.h"
+
+#include <glib/glib.h>
+
+/* Test that all of the well-known directories returned by GLib
+ * are returned as children of test_tmpdir when running with
+ * %G_TEST_OPTION_ISOLATE_DIRS. This ensures that tests should
+ * not interfere with each other in `/tmp` while running.
+ */
+
+const char *test_tmpdir;
+
+static void
+test_tmp_dir (void)
+{
+ g_assert_cmpstr (g_get_tmp_dir (), ==, test_tmpdir);
+}
+
+static void
+test_home_dir (void)
+{
+ g_assert_true (g_str_has_prefix (g_get_home_dir (), test_tmpdir));
+}
+
+static void
+test_user_cache_dir (void)
+{
+ g_assert_true (g_str_has_prefix (g_get_user_cache_dir (), test_tmpdir));
+}
+
+static void
+test_system_config_dirs (void)
+{
+ const char *const *dir;
+
+ for (dir = g_get_system_config_dirs (); *dir != NULL; dir++)
+ g_assert_true (g_str_has_prefix (*dir, test_tmpdir));
+}
+
+static void
+test_user_config_dir (void)
+{
+ g_assert_true (g_str_has_prefix (g_get_user_config_dir (), test_tmpdir));
+}
+
+static void
+test_system_data_dirs (void)
+{
+ const char *const *dir;
+
+ for (dir = g_get_system_data_dirs (); *dir != NULL; dir++)
+ g_assert_true (g_str_has_prefix (*dir, test_tmpdir));
+}
+
+static void
+test_user_data_dir (void)
+{
+ g_assert_true (g_str_has_prefix (g_get_user_data_dir (), test_tmpdir));
+}
+
+static void
+test_user_state_dir (void)
+{
+ g_assert_true (g_str_has_prefix (g_get_user_state_dir (), test_tmpdir));
+}
+
+static void
+test_user_runtime_dir (void)
+{
+ g_assert_true (g_str_has_prefix (g_get_user_runtime_dir (), test_tmpdir));
+}
+
+
+int
+main (int argc,
+ char *argv[])
+{
+ g_setenv ("LC_ALL", "C", TRUE);
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
+
+ test_tmpdir = g_getenv ("G_TEST_TMPDIR");
+ g_assert_nonnull (test_tmpdir);
+
+ g_test_add_func ("/utils-isolated/tmp-dir", test_tmp_dir);
+ g_test_add_func ("/utils-isolated/home-dir", test_home_dir);
+ g_test_add_func ("/utils-isolated/user-cache-dir", test_user_cache_dir);
+ g_test_add_func ("/utils-isolated/system-config-dirs", test_system_config_dirs);
+ g_test_add_func ("/utils-isolated/user-config-dir", test_user_config_dir);
+ g_test_add_func ("/utils-isolated/system-data-dirs", test_system_data_dirs);
+ g_test_add_func ("/utils-isolated/user-data-dir", test_user_data_dir);
+ g_test_add_func ("/utils-isolated/user-state-dir", test_user_state_dir);
+ g_test_add_func ("/utils-isolated/user-runtime-dir", test_user_runtime_dir);
+ return g_test_run ();
+}
diff --git a/glib/tests/utils.c b/glib/tests/utils.c
index b732b79b0..3abef9312 100644
--- a/glib/tests/utils.c
+++ b/glib/tests/utils.c
@@ -1,6 +1,8 @@
/* Unit tests for utilities
* Copyright (C) 2010 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
@@ -27,6 +29,8 @@
#include "glib.h"
#include "glib-private.h"
+#include "gutilsprivate.h"
+#include "glib/gstdio.h"
#include <stdlib.h>
#include <string.h>
@@ -447,7 +451,9 @@ test_find_program (void)
g_assert (res != NULL);
g_free (res);
- cwd = g_get_current_dir ();
+ /* Resolve any symlinks in the CWD as that breaks the test e.g.
+ * with the FreeBSD /home/ -> /usr/home symlink. */
+ cwd = realpath (".", NULL);
absolute_path = g_find_program_in_path ("sh");
relative_path = g_strdup (absolute_path);
for (i = 0; cwd[i] != '\0'; i++)
@@ -483,6 +489,153 @@ test_find_program (void)
g_assert (res == NULL);
}
+static char *
+find_program_for_path (const char *program,
+ const char *path,
+ const char *working_dir)
+{
+ return GLIB_PRIVATE_CALL(g_find_program_for_path) (program, path, working_dir);
+}
+
+static void
+test_find_program_for_path (void)
+{
+ GError *error = NULL;
+ /* Using .cmd extension to make windows to consider it an executable */
+ const char *command_to_find = "just-an-exe-file.cmd";
+ char *path;
+ char *exe_path;
+ char *found_path;
+ char *old_cwd;
+ char *tmp;
+
+ tmp = g_dir_make_tmp ("find_program_for_path_XXXXXXX", &error);
+ g_assert_no_error (error);
+
+ path = g_build_filename (tmp, "sub-path", NULL);
+ g_mkdir (path, 0700);
+ g_assert_true (g_file_test (path, G_FILE_TEST_IS_DIR));
+
+ exe_path = g_build_filename (path, command_to_find, NULL);
+ g_file_set_contents (exe_path, "", -1, &error);
+ g_assert_no_error (error);
+ g_assert_true (g_file_test (exe_path, G_FILE_TEST_EXISTS));
+
+#ifdef G_OS_UNIX
+ g_assert_no_errno (g_chmod (exe_path, 0500));
+#endif
+ g_assert_true (g_file_test (exe_path, G_FILE_TEST_IS_EXECUTABLE));
+
+ g_assert_null (g_find_program_in_path (command_to_find));
+ g_assert_null (find_program_for_path (command_to_find, NULL, NULL));
+
+ found_path = find_program_for_path (command_to_find, path, NULL);
+#ifdef __APPLE__
+ g_assert_nonnull (found_path);
+ g_assert_true (g_str_has_suffix (found_path, exe_path));
+#else
+ g_assert_cmpstr (exe_path, ==, found_path);
+#endif
+ g_clear_pointer (&found_path, g_free);
+
+ found_path = find_program_for_path (command_to_find, path, path);
+#ifdef __APPLE__
+ g_assert_nonnull (found_path);
+ g_assert_true (g_str_has_suffix (found_path, exe_path));
+#else
+ g_assert_cmpstr (exe_path, ==, found_path);
+#endif
+ g_clear_pointer (&found_path, g_free);
+
+ found_path = find_program_for_path (command_to_find, NULL, path);
+#ifdef __APPLE__
+ g_assert_nonnull (found_path);
+ g_assert_true (g_str_has_suffix (found_path, exe_path));
+#else
+ g_assert_cmpstr (exe_path, ==, found_path);
+#endif
+ g_clear_pointer (&found_path, g_free);
+
+ found_path = find_program_for_path (command_to_find, "::", path);
+#ifdef __APPLE__
+ g_assert_nonnull (found_path);
+ g_assert_true (g_str_has_suffix (found_path, exe_path));
+#else
+ g_assert_cmpstr (exe_path, ==, found_path);
+#endif
+ g_clear_pointer (&found_path, g_free);
+
+ old_cwd = g_get_current_dir ();
+ g_chdir (path);
+ found_path =
+ find_program_for_path (command_to_find,
+ G_SEARCHPATH_SEPARATOR_S G_SEARCHPATH_SEPARATOR_S, NULL);
+ g_chdir (old_cwd);
+ g_clear_pointer (&old_cwd, g_free);
+#ifdef __APPLE__
+ g_assert_nonnull (found_path);
+ g_assert_true (g_str_has_suffix (found_path, exe_path));
+#else
+ g_assert_cmpstr (exe_path, ==, found_path);
+#endif
+ g_clear_pointer (&found_path, g_free);
+
+ old_cwd = g_get_current_dir ();
+ g_chdir (tmp);
+ found_path =
+ find_program_for_path (command_to_find,
+ G_SEARCHPATH_SEPARATOR_S G_SEARCHPATH_SEPARATOR_S, "sub-path");
+ g_chdir (old_cwd);
+ g_clear_pointer (&old_cwd, g_free);
+#ifdef __APPLE__
+ g_assert_nonnull (found_path);
+ g_assert_true (g_str_has_suffix (found_path, exe_path));
+#else
+ g_assert_cmpstr (exe_path, ==, found_path);
+#endif
+ g_clear_pointer (&found_path, g_free);
+
+ g_assert_null (
+ find_program_for_path (command_to_find,
+ G_SEARCHPATH_SEPARATOR_S G_SEARCHPATH_SEPARATOR_S, "other-sub-path"));
+
+ found_path = find_program_for_path (command_to_find,
+ G_SEARCHPATH_SEPARATOR_S "sub-path" G_SEARCHPATH_SEPARATOR_S, tmp);
+#ifdef __APPLE__
+ g_assert_nonnull (found_path);
+ g_assert_true (g_str_has_suffix (found_path, exe_path));
+#else
+ g_assert_cmpstr (exe_path, ==, found_path);
+#endif
+ g_clear_pointer (&found_path, g_free);
+
+ g_assert_null (find_program_for_path (command_to_find,
+ G_SEARCHPATH_SEPARATOR_S "other-sub-path" G_SEARCHPATH_SEPARATOR_S, tmp));
+
+#ifdef G_OS_UNIX
+ found_path = find_program_for_path ("sh", NULL, tmp);
+ g_assert_nonnull (found_path);
+ g_clear_pointer (&found_path, g_free);
+
+ old_cwd = g_get_current_dir ();
+ g_chdir ("/");
+ found_path = find_program_for_path ("sh", "sbin:bin:usr/bin:usr/sbin", NULL);
+ g_chdir (old_cwd);
+ g_clear_pointer (&old_cwd, g_free);
+ g_assert_nonnull (found_path);
+ g_clear_pointer (&found_path, g_free);
+
+ found_path = find_program_for_path ("sh", "sbin:bin:usr/bin:usr/sbin", "/");
+ g_assert_nonnull (found_path);
+ g_clear_pointer (&found_path, g_free);
+#endif /* G_OS_UNIX */
+
+ g_clear_pointer (&exe_path, g_free);
+ g_clear_pointer (&path, g_free);
+ g_clear_pointer (&tmp, g_free);
+ g_clear_error (&error);
+}
+
static void
test_debug (void)
{
@@ -943,13 +1096,13 @@ test_aligned_mem (void)
g_test_summary ("Aligned memory allocator");
- a = g_aligned_alloc (0, sizeof(int), 8);
+ a = g_aligned_alloc (0, sizeof (int), MAX (sizeof (void *), 8));
g_assert_null (a);
- a = g_aligned_alloc0 (0, sizeof(int), 8);
+ a = g_aligned_alloc0 (0, sizeof (int), MAX (sizeof (void *), 8));
g_assert_null (a);
- a = g_aligned_alloc (16, 0, 8);
+ a = g_aligned_alloc (16, 0, MAX (sizeof (void *), 8));
g_assert_null (a);
#define CHECK_SUBPROCESS_FAIL(name,msg) do { \
@@ -1000,6 +1153,39 @@ test_aligned_mem_zeroed (void)
}
static void
+test_aligned_mem_free_sized (void)
+{
+ gsize n_blocks = 10;
+ guint *p;
+
+ g_test_summary ("Check that g_aligned_free_sized() works");
+
+ p = g_aligned_alloc (n_blocks, sizeof (*p), 16);
+ g_assert_nonnull (p);
+
+ g_aligned_free_sized (p, sizeof (*p), n_blocks * 16);
+
+ /* NULL should be ignored */
+ g_aligned_free_sized (NULL, sizeof (*p), n_blocks * 16);
+}
+
+static void
+test_free_sized (void)
+{
+ gpointer p;
+
+ g_test_summary ("Check that g_free_sized() works");
+
+ p = g_malloc (123);
+ g_assert_nonnull (p);
+
+ g_free_sized (p, 123);
+
+ /* NULL should be ignored */
+ g_free_sized (NULL, 123);
+}
+
+static void
test_nullify (void)
{
gpointer p = &test_nullify;
@@ -1147,6 +1333,7 @@ main (int argc,
g_test_add_func ("/utils/bits", test_bits);
g_test_add_func ("/utils/swap", test_swap);
g_test_add_func ("/utils/find-program", test_find_program);
+ g_test_add_func ("/utils/find-program-for-path", test_find_program_for_path);
g_test_add_func ("/utils/debug", test_debug);
g_test_add_func ("/utils/codeset", test_codeset);
g_test_add_func ("/utils/codeset2", test_codeset2);
@@ -1173,6 +1360,8 @@ main (int argc,
g_test_add_func ("/utils/aligned-mem/subprocess/aligned_alloc_nmov", aligned_alloc_nmov);
g_test_add_func ("/utils/aligned-mem/alignment", test_aligned_mem_alignment);
g_test_add_func ("/utils/aligned-mem/zeroed", test_aligned_mem_zeroed);
+ g_test_add_func ("/utils/aligned-mem/free-sized", test_aligned_mem_free_sized);
+ g_test_add_func ("/utils/free-sized", test_free_sized);
g_test_add_func ("/utils/nullify", test_nullify);
g_test_add_func ("/utils/atexit", test_atexit);
g_test_add_func ("/utils/check-setuid", test_check_setuid);
diff --git a/glib/tests/win32.c b/glib/tests/win32.c
index 31816574d..748692d65 100644
--- a/glib/tests/win32.c
+++ b/glib/tests/win32.c
@@ -1,6 +1,8 @@
/* Unit test for VEH on Windows
* Copyright (C) 2019 Руслан Ижбулатов
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/glib/win_iconv.c b/glib/win_iconv.c
index 7c78e78fc..8635c37e3 100644
--- a/glib/win_iconv.c
+++ b/glib/win_iconv.c
@@ -1087,7 +1087,7 @@ ucs4_to_utf16(uint wc, ushort *wbuf, int *wbufsize)
/*
* Check if codepage is one of those for which the dwFlags parameter
* to MultiByteToWideChar() must be zero. Return zero or
- * MB_ERR_INVALID_CHARS. The docs in Platform SDK for for Windows
+ * MB_ERR_INVALID_CHARS. The docs in Platform SDK for Windows
* Server 2003 R2 claims that also codepage 65001 is one of these, but
* that doesn't seem to be the case. The MSDN docs for MSVS2008 leave
* out 65001 (UTF-8), and that indeed seems to be the case on XP, it
diff --git a/gmodule/COPYING b/gmodule/COPYING
index e818e737a..ddf687147 120000
--- a/gmodule/COPYING
+++ b/gmodule/COPYING
@@ -1 +1 @@
-LICENSES/LGPL-2.1-or-later.txt \ No newline at end of file
+../LICENSES/LGPL-2.1-or-later.txt \ No newline at end of file
diff --git a/gmodule/gmodule-ar.c b/gmodule/gmodule-ar.c
index a3966decb..8289f529f 100644
--- a/gmodule/gmodule-ar.c
+++ b/gmodule/gmodule-ar.c
@@ -167,18 +167,3 @@ _g_module_symbol (gpointer handle,
return p;
}
-
-static gchar*
-_g_module_build_path (const gchar *directory,
- const gchar *module_name)
-{
- if (directory && *directory) {
- if (strncmp (module_name, "lib", 3) == 0)
- return g_strconcat (directory, "/", module_name, NULL);
- else
- return g_strconcat (directory, "/lib", module_name, "." G_MODULE_SUFFIX, NULL);
- } else if (strncmp (module_name, "lib", 3) == 0)
- return g_strdup (module_name);
- else
- return g_strconcat ("lib", module_name, "." G_MODULE_SUFFIX, NULL);
-}
diff --git a/gmodule/gmodule-deprecated.c b/gmodule/gmodule-deprecated.c
new file mode 100644
index 000000000..482779077
--- /dev/null
+++ b/gmodule/gmodule-deprecated.c
@@ -0,0 +1,32 @@
+#include "config.h"
+
+/*
+ * This is the only way to disable deprecation warnings for macros, and we need
+ * to continue using G_MODULE_SUFFIX in the implementation of
+ * g_module_build_path() which is also deprecated API.
+ */
+#ifndef GLIB_DISABLE_DEPRECATION_WARNINGS
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+#endif
+
+#include <glib.h>
+
+#if (G_MODULE_IMPL == G_MODULE_IMPL_AR) || (G_MODULE_IMPL == G_MODULE_IMPL_DL)
+G_GNUC_INTERNAL gchar* _g_module_build_path (const gchar *directory,
+ const gchar *module_name);
+
+gchar*
+_g_module_build_path (const gchar *directory,
+ const gchar *module_name)
+{
+ if (directory && *directory) {
+ if (strncmp (module_name, "lib", 3) == 0)
+ return g_strconcat (directory, "/", module_name, NULL);
+ else
+ return g_strconcat (directory, "/lib", module_name, "." G_MODULE_SUFFIX, NULL);
+ } else if (strncmp (module_name, "lib", 3) == 0)
+ return g_strdup (module_name);
+ else
+ return g_strconcat ("lib", module_name, "." G_MODULE_SUFFIX, NULL);
+}
+#endif
diff --git a/gmodule/gmodule-dl.c b/gmodule/gmodule-dl.c
index c1c2fcec2..81b1b9f6b 100644
--- a/gmodule/gmodule-dl.c
+++ b/gmodule/gmodule-dl.c
@@ -167,7 +167,7 @@ _g_module_self (void)
* NULL is given, dlsym returns an appropriate pointer.
*/
lock_dlerror ();
-#if defined(__BIONIC__)
+#if defined(__BIONIC__) || defined(__NetBSD__)
handle = RTLD_DEFAULT;
#else
handle = dlopen (NULL, RTLD_GLOBAL | RTLD_LAZY);
@@ -182,7 +182,7 @@ _g_module_self (void)
static void
_g_module_close (gpointer handle)
{
-#if defined(__BIONIC__)
+#if defined(__BIONIC__) || defined(__NetBSD__)
if (handle != RTLD_DEFAULT)
#endif
{
@@ -210,18 +210,3 @@ _g_module_symbol (gpointer handle,
return p;
}
-
-static gchar*
-_g_module_build_path (const gchar *directory,
- const gchar *module_name)
-{
- if (directory && *directory) {
- if (strncmp (module_name, "lib", 3) == 0)
- return g_strconcat (directory, "/", module_name, NULL);
- else
- return g_strconcat (directory, "/lib", module_name, "." G_MODULE_SUFFIX, NULL);
- } else if (strncmp (module_name, "lib", 3) == 0)
- return g_strdup (module_name);
- else
- return g_strconcat ("lib", module_name, "." G_MODULE_SUFFIX, NULL);
-}
diff --git a/gmodule/gmodule.c b/gmodule/gmodule.c
index f324882ab..aafaaf0ad 100644
--- a/gmodule/gmodule.c
+++ b/gmodule/gmodule.c
@@ -45,6 +45,10 @@
#include <io.h> /* For open() and close() prototypes. */
#endif
+#ifndef O_CLOEXEC
+#define O_CLOEXEC 0
+#endif
+
#include "gmoduleconf.h"
#include "gstdio.h"
@@ -161,9 +165,24 @@
/**
* G_MODULE_SUFFIX:
*
- * Expands to the proper shared library suffix for the current platform
- * without the leading dot. For most Unices and Linux this is "so", and
- * for Windows this is "dll".
+ * Expands to a shared library suffix for the current platform without the
+ * leading dot. On Unixes this is "so", and on Windows this is "dll".
+ *
+ * Deprecated: 2.76: Use g_module_open() instead with @module_name as the
+ * basename of the file_name argument. You will get the wrong results using
+ * this macro most of the time:
+ *
+ * 1. The suffix on macOS is usually 'dylib', but it's 'so' when using
+ * Autotools, so there's no way to get the suffix correct using
+ * a pre-processor macro.
+ * 2. Prefixes also vary in a platform-specific way. You may or may not have
+ * a 'lib' prefix for the name on Windows and on Cygwin the prefix is
+ * 'cyg'.
+ * 3. The library name itself can vary per platform. For instance, you may
+ * want to load foo-1.dll on Windows and libfoo.1.dylib on macOS.
+ *
+ * g_module_open() takes care of all this by searching the filesystem for
+ * combinations of possible suffixes and prefixes.
*/
/**
@@ -178,6 +197,11 @@
* non-default
* [visibility flag](https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#index-fvisibility-1260)
* such as `hidden`.
+ *
+ * This macro must only be used when compiling a shared module. Modules that
+ * support both shared and static linking should define their own macro that
+ * expands to %G_MODULE_EXPORT when compiling the shared module, but is empty
+ * when compiling the static module on Windows.
*/
/**
@@ -214,8 +238,14 @@ static void _g_module_close (gpointer handle);
static gpointer _g_module_self (void);
static gpointer _g_module_symbol (gpointer handle,
const gchar *symbol_name);
+#if (G_MODULE_IMPL != G_MODULE_IMPL_DL) && (G_MODULE_IMPL != G_MODULE_IMPL_AR)
static gchar* _g_module_build_path (const gchar *directory,
const gchar *module_name);
+#else
+/* Implementation is in gmodule-deprecated.c */
+gchar* _g_module_build_path (const gchar *directory,
+ const gchar *module_name);
+#endif
static inline void g_module_set_error (const gchar *error);
static inline GModule* g_module_find_by_handle (gpointer handle);
static inline GModule* g_module_find_by_name (const gchar *name);
@@ -362,7 +392,7 @@ parse_libtool_archive (const gchar* libtool_name)
GTokenType token;
GScanner *scanner;
- int fd = g_open (libtool_name, O_RDONLY, 0);
+ int fd = g_open (libtool_name, O_RDONLY | O_CLOEXEC, 0);
if (fd < 0)
{
gchar *display_libtool_name = g_filename_display_name (libtool_name);
@@ -476,24 +506,28 @@ static GRecMutex g_module_global_lock;
/**
* g_module_open_full:
- * @file_name: (nullable): the name of the file containing the module, or %NULL
- * to obtain a #GModule representing the main program itself
+ * @file_name: (nullable): the name or path to the file containing the module,
+ * or %NULL to obtain a #GModule representing the main program itself
* @flags: the flags used for opening the module. This can be the
* logical OR of any of the #GModuleFlags
* @error: #GError.
*
- * Opens a module. If the module has already been opened,
- * its reference count is incremented.
+ * Opens a module. If the module has already been opened, its reference count
+ * is incremented. If not, the module is searched in the following order:
*
- * First of all g_module_open_full() tries to open @file_name as a module.
- * If that fails and @file_name has the ".la"-suffix (and is a libtool
- * archive) it tries to open the corresponding module. If that fails
- * and it doesn't have the proper module suffix for the platform
- * (%G_MODULE_SUFFIX), this suffix will be appended and the corresponding
- * module will be opened. If that fails and @file_name doesn't have the
- * ".la"-suffix, this suffix is appended and g_module_open_full() tries to open
- * the corresponding module. If eventually that fails as well, %NULL is
- * returned.
+ * 1. If @file_name exists as a regular file, it is used as-is; else
+ * 2. If @file_name doesn't have the correct suffix and/or prefix for the
+ * platform, then possible suffixes and prefixes will be added to the
+ * basename till a file is found and whatever is found will be used; else
+ * 3. If @file_name doesn't have the ".la"-suffix, ".la" is appended. Either
+ * way, if a matching .la file exists (and is a libtool archive) the
+ * libtool archive is parsed to find the actual file name, and that is
+ * used.
+ *
+ * At the end of all this, we would have a file path that we can access on
+ * disk, and it is opened as a module. If not, @file_name is opened as
+ * a module verbatim in the hopes that the system implementation will somehow
+ * be able to access it.
*
* Returns: a #GModule on success, or %NULL on failure
*
@@ -563,12 +597,58 @@ g_module_open_full (const gchar *file_name,
/* try completing file name with standard library suffix */
if (!name)
{
- name = g_strconcat (file_name, "." G_MODULE_SUFFIX, NULL);
- if (!g_file_test (name, G_FILE_TEST_IS_REGULAR))
- {
- g_free (name);
- name = NULL;
- }
+ char *basename, *dirname;
+ size_t prefix_idx = 0, suffix_idx = 0;
+ const char *prefixes[2] = {0}, *suffixes[2] = {0};
+
+ basename = g_path_get_basename (file_name);
+ dirname = g_path_get_dirname (file_name);
+#ifdef G_OS_WIN32
+ if (!g_str_has_prefix (basename, "lib"))
+ prefixes[prefix_idx++] = "lib";
+ prefixes[prefix_idx++] = "";
+ if (!g_str_has_suffix (basename, ".dll"))
+ suffixes[suffix_idx++] = ".dll";
+#else
+ #ifdef __CYGWIN__
+ if (!g_str_has_prefix (basename, "cyg"))
+ prefixes[prefix_idx++] = "cyg";
+ #else
+ if (!g_str_has_prefix (basename, "lib"))
+ prefixes[prefix_idx++] = "lib";
+ else
+ /* People commonly pass `libfoo` as the file_name and want us to
+ * auto-detect the suffix as .la or .so, etc. We need to also find
+ * .dylib and .dll in those cases. */
+ prefixes[prefix_idx++] = "";
+ #endif
+ #ifdef __APPLE__
+ if (!g_str_has_suffix (basename, ".dylib") &&
+ !g_str_has_suffix (basename, ".so"))
+ {
+ suffixes[suffix_idx++] = ".dylib";
+ suffixes[suffix_idx++] = ".so";
+ }
+ #else
+ if (!g_str_has_suffix (basename, ".so"))
+ suffixes[suffix_idx++] = ".so";
+ #endif
+#endif
+ for (guint i = 0; i < prefix_idx; i++)
+ {
+ for (guint j = 0; j < suffix_idx; j++)
+ {
+ name = g_strconcat (dirname, G_DIR_SEPARATOR_S, prefixes[i],
+ basename, suffixes[j], NULL);
+ if (g_file_test (name, G_FILE_TEST_IS_REGULAR))
+ goto name_found;
+ g_free (name);
+ name = NULL;
+ }
+ }
+ name_found:
+ g_free (basename);
+ g_free (dirname);
}
/* try completing by appending libtool suffix */
if (!name)
@@ -587,8 +667,9 @@ g_module_open_full (const gchar *file_name,
{
gchar *dot = strrchr (file_name, '.');
gchar *slash = strrchr (file_name, G_DIR_SEPARATOR);
-
- /* make sure the name has a suffix */
+
+ /* we make sure the name has a suffix using the deprecated
+ * G_MODULE_SUFFIX for backward-compat */
if (!dot || dot < slash)
name = g_strconcat (file_name, "." G_MODULE_SUFFIX, NULL);
else
@@ -682,8 +763,8 @@ g_module_open_full (const gchar *file_name,
/**
* g_module_open:
- * @file_name: (nullable): the name of the file containing the module, or %NULL
- * to obtain a #GModule representing the main program itself
+ * @file_name: (nullable): the name or path to the file containing the module,
+ * or %NULL to obtain a #GModule representing the main program itself
* @flags: the flags used for opening the module. This can be the
* logical OR of any of the #GModuleFlags.
*
@@ -886,6 +967,9 @@ g_module_name (GModule *module)
*
* Returns: the complete path of the module, including the standard library
* prefix and suffix. This should be freed when no longer needed
+ *
+ * Deprecated: 2.76: Use g_module_open() instead with @module_name as the
+ * basename of the file_name argument. See %G_MODULE_SUFFIX for why.
*/
gchar *
g_module_build_path (const gchar *directory,
@@ -901,10 +985,10 @@ g_module_build_path (const gchar *directory,
/* Binary compatibility versions. Not for newly compiled code. */
-_GLIB_EXTERN GModule * g_module_open_utf8 (const gchar *file_name,
- GModuleFlags flags);
+_GMODULE_EXTERN GModule * g_module_open_utf8 (const gchar *file_name,
+ GModuleFlags flags);
-_GLIB_EXTERN const gchar *g_module_name_utf8 (GModule *module);
+_GMODULE_EXTERN const gchar *g_module_name_utf8 (GModule *module);
GModule*
g_module_open_utf8 (const gchar *file_name,
diff --git a/gmodule/gmodule.h b/gmodule/gmodule.h
index 974489041..5330a08e7 100644
--- a/gmodule/gmodule.h
+++ b/gmodule/gmodule.h
@@ -28,20 +28,23 @@
#define __GMODULE_H__
#include <glib.h>
+#include <gmodule/gmodule-visibility.h>
G_BEGIN_DECLS
/* exporting and importing functions, this is special cased
* to feature Windows dll stubs.
*/
-#define G_MODULE_IMPORT extern
-#ifdef G_PLATFORM_WIN32
-# define G_MODULE_EXPORT __declspec(dllexport)
+#if defined(_WIN32) || defined(__CYGWIN__)
+# define G_MODULE_EXPORT __declspec(dllexport)
+# define G_MODULE_IMPORT __declspec(dllimport) extern
#elif __GNUC__ >= 4
-# define G_MODULE_EXPORT __attribute__((visibility("default")))
-#else /* !G_PLATFORM_WIN32 && __GNUC__ < 4 */
-# define G_MODULE_EXPORT
-#endif /* !G_PLATFORM_WIN32 */
+# define G_MODULE_EXPORT __attribute__((visibility("default")))
+# define G_MODULE_IMPORT extern
+#else /* !defined(_WIN32) && !defined(__CYGWIN__) && __GNUC__ < 4 */
+# define G_MODULE_EXPORT
+# define G_MODULE_IMPORT extern
+#endif
/**
* GModuleFlags:
@@ -68,8 +71,8 @@ typedef struct _GModule GModule;
typedef const gchar* (*GModuleCheckInit) (GModule *module);
typedef void (*GModuleUnload) (GModule *module);
-#define G_MODULE_ERROR g_module_error_quark () GLIB_AVAILABLE_MACRO_IN_2_70
-GLIB_AVAILABLE_IN_2_70
+#define G_MODULE_ERROR g_module_error_quark () GMODULE_AVAILABLE_MACRO_IN_2_70
+GMODULE_AVAILABLE_IN_2_70
GQuark g_module_error_quark (void);
/**
@@ -86,42 +89,42 @@ typedef enum
G_MODULE_ERROR_FAILED,
G_MODULE_ERROR_CHECK_FAILED,
} GModuleError
-GLIB_AVAILABLE_ENUMERATOR_IN_2_70;
+GMODULE_AVAILABLE_ENUMERATOR_IN_2_70;
/* return TRUE if dynamic module loading is supported */
-GLIB_AVAILABLE_IN_ALL
+GMODULE_AVAILABLE_IN_ALL
gboolean g_module_supported (void) G_GNUC_CONST;
/* open a module 'file_name' and return handle, which is NULL on error */
-GLIB_AVAILABLE_IN_ALL
+GMODULE_AVAILABLE_IN_ALL
GModule* g_module_open (const gchar *file_name,
GModuleFlags flags);
-GLIB_AVAILABLE_IN_2_70
+GMODULE_AVAILABLE_IN_2_70
GModule *g_module_open_full (const gchar *file_name,
GModuleFlags flags,
GError **error);
/* close a previously opened module, returns TRUE on success */
-GLIB_AVAILABLE_IN_ALL
+GMODULE_AVAILABLE_IN_ALL
gboolean g_module_close (GModule *module);
/* make a module resident so g_module_close on it will be ignored */
-GLIB_AVAILABLE_IN_ALL
+GMODULE_AVAILABLE_IN_ALL
void g_module_make_resident (GModule *module);
/* query the last module error as a string */
-GLIB_AVAILABLE_IN_ALL
+GMODULE_AVAILABLE_IN_ALL
const gchar * g_module_error (void);
/* retrieve a symbol pointer from 'module', returns TRUE on success */
-GLIB_AVAILABLE_IN_ALL
+GMODULE_AVAILABLE_IN_ALL
gboolean g_module_symbol (GModule *module,
const gchar *symbol_name,
gpointer *symbol);
/* retrieve the file name from an existing module */
-GLIB_AVAILABLE_IN_ALL
+GMODULE_AVAILABLE_IN_ALL
const gchar * g_module_name (GModule *module);
/* Build the actual file name containing a module. 'directory' is the
@@ -135,7 +138,7 @@ const gchar * g_module_name (GModule *module);
*
* No checks are made that the file exists, or is of correct type.
*/
-GLIB_AVAILABLE_IN_ALL
+GMODULE_DEPRECATED_IN_2_76
gchar* g_module_build_path (const gchar *directory,
const gchar *module_name);
diff --git a/gmodule/meson.build b/gmodule/meson.build
index 0c5aad311..da4d06cfb 100644
--- a/gmodule/meson.build
+++ b/gmodule/meson.build
@@ -6,6 +6,8 @@ g_module_have_dlerror = 0
g_module_impl = ''
+g_module_includedir = glib_includedir / 'gmodule'
+
# On Windows force native WIN32 shared lib loader
if host_system == 'windows'
g_module_impl = 'G_MODULE_IMPL_WIN32'
@@ -26,11 +28,11 @@ if g_module_impl == 'G_MODULE_IMPL_DL'
message('Building for MSVC: assuming that symbols are prefixed with underscore')
g_module_need_uscore = 1
elif meson.can_run_host_binaries()
- # FIXME: communicate result via stdout instead of return value, so non-0 return is not printed in bold red
rres = cc.run(dlopen_dlsym_test_code,
dependencies : libdl_dep,
name : 'dlsym() preceding underscores')
- if host_system == 'windows' or (rres.compiled() and rres.returncode() == 0)
+ if host_system == 'windows' or (rres.compiled() and
+ rres.returncode() == 0 and rres.stdout().to_int() == 0)
g_module_need_uscore = 1
endif
else
@@ -64,9 +66,19 @@ gmoduleconf_h = configure_file(input : 'gmoduleconf.h.in',
gmodule_h = files('gmodule.h')
gmodule_c = files('gmodule.c')
-install_headers([gmodule_h], subdir : 'glib-2.0')
+install_headers([gmodule_h], install_dir : glib_includedir)
+
+gmodule_visibility_h = custom_target(
+ output: 'gmodule-visibility.h',
+ command: [gen_visibility_macros, meson.project_version(), 'visibility-macros', 'GMODULE', '@OUTPUT@'],
+ install: true,
+ install_dir: g_module_includedir,
+ # FIXME: Not needed with Meson >= 0.64.0
+ install_tag: 'devel',
+)
+
+gmodule_sources = [gmodule_c, gmodule_visibility_h, 'gmodule-deprecated.c']
-gmodule_sources = [gmodule_c]
if host_system == 'windows'
gmodule_win_rc = configure_file(
input: 'gmodule.rc.in',
@@ -85,7 +97,8 @@ libgmodule = library('gmodule-2.0',
install : true,
include_directories : [configinc, gmoduleinc],
dependencies : [libdl_dep, libglib_dep],
- c_args : ['-DG_LOG_DOMAIN="GModule"'] + glib_hidden_visibility_args,
+ c_args : ['-DG_LOG_DOMAIN="GModule"', '-DGMODULE_COMPILATION'],
+ gnu_symbol_visibility : 'hidden',
link_args : [glib_link_flags],
)
@@ -122,9 +135,13 @@ pkg.generate(libraries : [libgmodule, export_dynamic_ldflags],
description : 'Dynamic module loader for GLib',
)
+gmodule_inc_dep = declare_dependency(
+ include_directories: [gmoduleinc],
+ sources: [gmodule_visibility_h],
+)
+
libgmodule_dep = declare_dependency(link_with : libgmodule,
- include_directories : [gmoduleinc],
- dependencies : [libglib_dep])
+ dependencies : [libglib_dep, gmodule_inc_dep])
meson.override_dependency('gmodule-no-export-2.0', libgmodule_dep)
meson.override_dependency('gmodule-export-2.0', libgmodule_dep)
diff --git a/gmodule/tests/max-version.c b/gmodule/tests/max-version.c
new file mode 100644
index 000000000..bae63b7bb
--- /dev/null
+++ b/gmodule/tests/max-version.c
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2022 Collabora Ltd.
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GLIB_VERSION_MAX_ALLOWED
+/* This is the oldest version macro available */
+#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_26
+#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_26
+#endif
+
+#include <glib.h>
+
+#include <gmodule.h>
+
+static void
+nothing (void)
+{
+ /* This doesn't really do anything: the real "test" is at compile time.
+ * Just make sure the GModule library gets linked. */
+ g_debug ("GModule supported: %s", g_module_supported () ? "yes" : "no");
+}
+
+int
+main (int argc,
+ char *argv[])
+{
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_func ("/max-version/tested-at-compile-time", nothing);
+ return g_test_run ();
+}
diff --git a/gmodule/tests/meson.build b/gmodule/tests/meson.build
index 3968c4326..5374c1c2a 100644
--- a/gmodule/tests/meson.build
+++ b/gmodule/tests/meson.build
@@ -1,19 +1,11 @@
gmodule_tests = {
- 'module-test-library' : {
- 'export_dynamic' : true,
- 'source': 'module-test.c',
- 'c_args': ['-DMODULE_TYPE="library"'],
- },
- 'module-test-plugin' : {
- 'export_dynamic' : true,
- 'source': 'module-test.c',
- 'c_args': ['-DMODULE_TYPE="plugin"'],
- },
+ 'max-version' : {'install': false},
}
if have_cxx
gmodule_tests += {
'cxx' : {
+ 'protocol': 'exitcode',
'source' : ['cxx.cpp'],
'suite' : ['cpp'],
}
@@ -22,6 +14,7 @@ if have_cxx
foreach std, arg: cxx_standards
gmodule_tests += {
'cxx-@0@'.format(std) : {
+ 'protocol': 'exitcode',
'source' : ['cxx.cpp'],
'suite' : ['cpp'],
'cpp_args' : [arg],
@@ -37,16 +30,20 @@ if ['darwin', 'ios'].contains(host_machine.system())
module_suffix = 'so'
endif
-if get_option('default_library') != 'static'
+gmodule_test_modules = []
+gmodule_test_libraries = []
+if glib_build_shared
foreach module : ['moduletestplugin_a', 'moduletestplugin_b']
- shared_module(module + '_plugin', 'lib@0@.c'.format(module),
+ gmodule_test_modules += shared_module(module + '_plugin',
+ 'lib@0@.c'.format(module),
dependencies : [libglib_dep, libgmodule_dep],
install_dir : installed_tests_execdir,
install_tag : 'tests',
install : installed_tests_enabled,
name_suffix : module_suffix
)
- shared_library(module + '_library', 'lib@0@.c'.format(module),
+ gmodule_test_libraries += shared_library(module + '_library',
+ 'lib@0@.c'.format(module),
dependencies : [libglib_dep, libgmodule_dep],
install_dir : installed_tests_execdir,
install_tag : 'tests',
@@ -56,11 +53,26 @@ if get_option('default_library') != 'static'
endforeach
endif
+gmodule_tests += {
+ 'module-test-library' : {
+ 'export_dynamic' : true,
+ 'source': 'module-test.c',
+ 'depends': gmodule_test_libraries,
+ 'c_args': ['-DMODULE_TYPE="library"'],
+ 'can_fail': glib_build_static_only,
+ },
+ 'module-test-plugin' : {
+ 'export_dynamic' : true,
+ 'source': 'module-test.c',
+ 'depends': gmodule_test_modules,
+ 'c_args': ['-DMODULE_TYPE="plugin"'],
+ 'can_fail': glib_build_static_only,
+ },
+}
+
test_env = environment()
test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
-test_env.set('G_DEBUG', 'gc-friendly')
-test_env.set('MALLOC_CHECK_', '2')
test_deps = [libm, thread_dep, libglib_dep, libgmodule_dep]
test_cargs = ['-DG_LOG_DOMAIN="GModule"', '-UG_DISABLE_ASSERT']
@@ -97,5 +109,46 @@ foreach test_name, extra_args : gmodule_tests
suite = ['gmodule'] + extra_args.get('suite', [])
timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
- test(test_name, exe, env : test_env, timeout : timeout, suite : suite)
+ depends = [extra_args.get('depends', [])]
+
+ if extra_args.get('can_fail', false)
+ suite += 'failing'
+ endif
+
+ test(test_name,
+ exe,
+ protocol : extra_args.get('protocol', test_protocol),
+ depends : depends,
+ env : test_env,
+ timeout : timeout,
+ suite : suite,
+ )
endforeach
+
+if have_bash and have_pkg_config
+ modules = [
+ 'gmodule-no-export-2.0',
+ 'gmodule-export-2.0',
+ 'gmodule-2.0',
+ ]
+
+ foreach module: modules
+ test(module + '-pkg-config',
+ bash,
+ args: [
+ '-xe', '-c',
+ '\n'.join([
+ 'pkg-config --validate ' + module,
+ 'test "$(pkg-config --modversion @0@)" = "@1@"'.format(
+ module, glib_version),
+ 'test "$(pkg-config --variable=prefix @0@)" = "@1@"'.format(
+ module, get_option('prefix')),
+ ]),
+ ],
+ suite: ['gmodule', 'no-valgrind', 'pkg-config'],
+ env: {
+ 'PKG_CONFIG_PATH': meson.project_build_root() / 'meson-private',
+ },
+ )
+ endforeach
+endif
diff --git a/gobject/gatomicarray.c b/gobject/gatomicarray.c
index 506c666c2..57807f1d7 100644
--- a/gobject/gatomicarray.c
+++ b/gobject/gatomicarray.c
@@ -76,13 +76,14 @@ freelist_alloc (gsize size, gboolean reuse)
}
}
- real_size = sizeof (gsize) + MAX (size, sizeof (FreeListNode));
+ real_size = sizeof (GAtomicArrayMetadata) + MAX (size, sizeof (FreeListNode));
mem = g_slice_alloc (real_size);
- mem = ((char *) mem) + sizeof (gsize);
+ mem = ((char *) mem) + sizeof (GAtomicArrayMetadata);
G_ATOMIC_ARRAY_DATA_SIZE (mem) = size;
#if ENABLE_VALGRIND
- VALGRIND_MALLOCLIKE_BLOCK (mem, real_size - sizeof (gsize), FALSE, FALSE);
+ VALGRIND_MALLOCLIKE_BLOCK (mem, real_size - sizeof (GAtomicArrayMetadata),
+ FALSE, FALSE);
#endif
return mem;
diff --git a/gobject/gatomicarray.h b/gobject/gatomicarray.h
index f7761cc65..a4fdc0103 100644
--- a/gobject/gatomicarray.h
+++ b/gobject/gatomicarray.h
@@ -27,7 +27,16 @@
G_BEGIN_DECLS
-#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (*((gsize *) (mem) - 1))
+typedef union _GAtomicArrayMetadata
+{
+ gsize size;
+ /* We have to ensure that the memory location is sufficiently aligned to
+ * store any object. With C11 this would be max_align_t, but in practise
+ * gpointer is sufficient for all known architectures. We could change
+ * this to `_Alignas(max_align_t) char pad` once we depend on C11. */
+ gpointer _alignment_padding;
+} GAtomicArrayMetadata;
+#define G_ATOMIC_ARRAY_DATA_SIZE(mem) (((GAtomicArrayMetadata *) (mem) - 1)->size)
typedef struct _GAtomicArray GAtomicArray;
struct _GAtomicArray {
diff --git a/gobject/gbinding.c b/gobject/gbinding.c
index 2ef024545..204dc44db 100644
--- a/gobject/gbinding.c
+++ b/gobject/gbinding.c
@@ -464,11 +464,11 @@ default_transform (GBinding *binding,
return TRUE;
}
- g_warning ("%s: Unable to convert a value of type %s to a "
- "value of type %s",
- G_STRLOC,
- g_type_name (G_VALUE_TYPE (value_a)),
- g_type_name (G_VALUE_TYPE (value_b)));
+ g_critical ("%s: Unable to convert a value of type %s to a "
+ "value of type %s",
+ G_STRLOC,
+ g_type_name (G_VALUE_TYPE (value_a)),
+ g_type_name (G_VALUE_TYPE (value_b)));
return FALSE;
}
@@ -552,7 +552,7 @@ on_source_notify (GObject *source,
{
binding->is_frozen = TRUE;
- g_param_value_validate (binding->target_pspec, &to_value);
+ (void) g_param_value_validate (binding->target_pspec, &to_value);
g_object_set_property (target, binding->target_pspec->name, &to_value);
binding->is_frozen = FALSE;
@@ -620,7 +620,7 @@ on_target_notify (GObject *target,
{
binding->is_frozen = TRUE;
- g_param_value_validate (binding->source_pspec, &to_value);
+ (void) g_param_value_validate (binding->source_pspec, &to_value);
g_object_set_property (source, binding->source_pspec->name, &to_value);
binding->is_frozen = FALSE;
@@ -1253,7 +1253,7 @@ g_object_bind_property_full (gpointer source,
if (source == target && g_strcmp0 (source_property, target_property) == 0)
{
- g_warning ("Unable to bind the same property on the same instance");
+ g_critical ("Unable to bind the same property on the same instance");
return NULL;
}
@@ -1269,82 +1269,82 @@ g_object_bind_property_full (gpointer source,
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (source), source_property);
if (pspec == NULL)
{
- g_warning ("%s: The source object of type %s has no property called '%s'",
- G_STRLOC,
- G_OBJECT_TYPE_NAME (source),
- source_property);
+ g_critical ("%s: The source object of type %s has no property called '%s'",
+ G_STRLOC,
+ G_OBJECT_TYPE_NAME (source),
+ source_property);
return NULL;
}
if (!(pspec->flags & G_PARAM_READABLE))
{
- g_warning ("%s: The source object of type %s has no readable property called '%s'",
- G_STRLOC,
- G_OBJECT_TYPE_NAME (source),
- source_property);
+ g_critical ("%s: The source object of type %s has no readable property called '%s'",
+ G_STRLOC,
+ G_OBJECT_TYPE_NAME (source),
+ source_property);
return NULL;
}
if ((flags & G_BINDING_BIDIRECTIONAL) &&
((pspec->flags & G_PARAM_CONSTRUCT_ONLY) || !(pspec->flags & G_PARAM_WRITABLE)))
{
- g_warning ("%s: The source object of type %s has no writable property called '%s'",
- G_STRLOC,
- G_OBJECT_TYPE_NAME (source),
- source_property);
+ g_critical ("%s: The source object of type %s has no writable property called '%s'",
+ G_STRLOC,
+ G_OBJECT_TYPE_NAME (source),
+ source_property);
return NULL;
}
if ((flags & G_BINDING_INVERT_BOOLEAN) &&
!(G_PARAM_SPEC_VALUE_TYPE (pspec) == G_TYPE_BOOLEAN))
{
- g_warning ("%s: The G_BINDING_INVERT_BOOLEAN flag can only be used "
- "when binding boolean properties; the source property '%s' "
- "is of type '%s'",
- G_STRLOC,
- source_property,
- g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspec)));
+ g_critical ("%s: The G_BINDING_INVERT_BOOLEAN flag can only be used "
+ "when binding boolean properties; the source property '%s' "
+ "is of type '%s'",
+ G_STRLOC,
+ source_property,
+ g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspec)));
return NULL;
}
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (target), target_property);
if (pspec == NULL)
{
- g_warning ("%s: The target object of type %s has no property called '%s'",
- G_STRLOC,
- G_OBJECT_TYPE_NAME (target),
- target_property);
+ g_critical ("%s: The target object of type %s has no property called '%s'",
+ G_STRLOC,
+ G_OBJECT_TYPE_NAME (target),
+ target_property);
return NULL;
}
if ((pspec->flags & G_PARAM_CONSTRUCT_ONLY) || !(pspec->flags & G_PARAM_WRITABLE))
{
- g_warning ("%s: The target object of type %s has no writable property called '%s'",
- G_STRLOC,
- G_OBJECT_TYPE_NAME (target),
- target_property);
+ g_critical ("%s: The target object of type %s has no writable property called '%s'",
+ G_STRLOC,
+ G_OBJECT_TYPE_NAME (target),
+ target_property);
return NULL;
}
if ((flags & G_BINDING_BIDIRECTIONAL) &&
!(pspec->flags & G_PARAM_READABLE))
{
- g_warning ("%s: The target object of type %s has no readable property called '%s'",
- G_STRLOC,
- G_OBJECT_TYPE_NAME (target),
- target_property);
+ g_critical ("%s: The target object of type %s has no readable property called '%s'",
+ G_STRLOC,
+ G_OBJECT_TYPE_NAME (target),
+ target_property);
return NULL;
}
if ((flags & G_BINDING_INVERT_BOOLEAN) &&
!(G_PARAM_SPEC_VALUE_TYPE (pspec) == G_TYPE_BOOLEAN))
{
- g_warning ("%s: The G_BINDING_INVERT_BOOLEAN flag can only be used "
- "when binding boolean properties; the target property '%s' "
- "is of type '%s'",
- G_STRLOC,
- target_property,
- g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspec)));
+ g_critical ("%s: The G_BINDING_INVERT_BOOLEAN flag can only be used "
+ "when binding boolean properties; the target property '%s' "
+ "is of type '%s'",
+ G_STRLOC,
+ target_property,
+ g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspec)));
return NULL;
}
diff --git a/gobject/gbinding.h b/gobject/gbinding.h
index 78aa315f3..8504de21d 100644
--- a/gobject/gbinding.h
+++ b/gobject/gbinding.h
@@ -104,35 +104,35 @@ typedef enum { /*< prefix=G_BINDING >*/
G_BINDING_INVERT_BOOLEAN = 1 << 2
} GBindingFlags;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_binding_flags_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_binding_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GBindingFlags g_binding_get_flags (GBinding *binding);
-GLIB_DEPRECATED_IN_2_68_FOR(g_binding_dup_source)
+GOBJECT_DEPRECATED_IN_2_68_FOR(g_binding_dup_source)
GObject * g_binding_get_source (GBinding *binding);
-GLIB_AVAILABLE_IN_2_68
+GOBJECT_AVAILABLE_IN_2_68
GObject * g_binding_dup_source (GBinding *binding);
-GLIB_DEPRECATED_IN_2_68_FOR(g_binding_dup_target)
+GOBJECT_DEPRECATED_IN_2_68_FOR(g_binding_dup_target)
GObject * g_binding_get_target (GBinding *binding);
-GLIB_AVAILABLE_IN_2_68
+GOBJECT_AVAILABLE_IN_2_68
GObject * g_binding_dup_target (GBinding *binding);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
const gchar * g_binding_get_source_property (GBinding *binding);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
const gchar * g_binding_get_target_property (GBinding *binding);
-GLIB_AVAILABLE_IN_2_38
+GOBJECT_AVAILABLE_IN_2_38
void g_binding_unbind (GBinding *binding);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GBinding *g_object_bind_property (gpointer source,
const gchar *source_property,
gpointer target,
const gchar *target_property,
GBindingFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GBinding *g_object_bind_property_full (gpointer source,
const gchar *source_property,
gpointer target,
@@ -142,7 +142,7 @@ GBinding *g_object_bind_property_full (gpointer source,
GBindingTransformFunc transform_from,
gpointer user_data,
GDestroyNotify notify);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GBinding *g_object_bind_property_with_closures (gpointer source,
const gchar *source_property,
gpointer target,
diff --git a/gobject/gbindinggroup.h b/gobject/gbindinggroup.h
index 472ebc5b3..4cbdfe480 100644
--- a/gobject/gbindinggroup.h
+++ b/gobject/gbindinggroup.h
@@ -46,22 +46,22 @@ G_BEGIN_DECLS
*/
typedef struct _GBindingGroup GBindingGroup;
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
GType g_binding_group_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
GBindingGroup *g_binding_group_new (void);
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
gpointer g_binding_group_dup_source (GBindingGroup *self);
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
void g_binding_group_set_source (GBindingGroup *self,
gpointer source);
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
void g_binding_group_bind (GBindingGroup *self,
const gchar *source_property,
gpointer target,
const gchar *target_property,
GBindingFlags flags);
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
void g_binding_group_bind_full (GBindingGroup *self,
const gchar *source_property,
gpointer target,
@@ -71,7 +71,7 @@ void g_binding_group_bind_full (GBindingGroup *self,
GBindingTransformFunc transform_from,
gpointer user_data,
GDestroyNotify user_data_destroy);
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
void g_binding_group_bind_with_closures (GBindingGroup *self,
const gchar *source_property,
gpointer target,
diff --git a/gobject/gboxed.c b/gobject/gboxed.c
index 44da11bf6..242ba09a6 100644
--- a/gobject/gboxed.c
+++ b/gobject/gboxed.c
@@ -166,6 +166,7 @@ G_DEFINE_BOXED_TYPE (GDateTime, g_date_time, g_date_time_ref, g_date_time_unref)
G_DEFINE_BOXED_TYPE (GTimeZone, g_time_zone, g_time_zone_ref, g_time_zone_unref)
G_DEFINE_BOXED_TYPE (GKeyFile, g_key_file, g_key_file_ref, g_key_file_unref)
G_DEFINE_BOXED_TYPE (GMappedFile, g_mapped_file, g_mapped_file_ref, g_mapped_file_unref)
+G_DEFINE_BOXED_TYPE (GBookmarkFile, g_bookmark_file, g_bookmark_file_copy, g_bookmark_file_free)
G_DEFINE_BOXED_TYPE (GMainLoop, g_main_loop, g_main_loop_ref, g_main_loop_unref)
G_DEFINE_BOXED_TYPE (GMainContext, g_main_context, g_main_context_ref, g_main_context_unref)
@@ -438,7 +439,7 @@ g_boxed_free (GType boxed_type,
*
* Get the contents of a %G_TYPE_BOXED derived #GValue.
*
- * Returns: (transfer none): boxed contents of @value
+ * Returns: (transfer none) (nullable): boxed contents of @value
*/
gpointer
g_value_get_boxed (const GValue *value)
@@ -458,7 +459,7 @@ g_value_get_boxed (const GValue *value)
* g_boxed_free(), e.g. like: g_boxed_free (G_VALUE_TYPE (@value),
* return_value);
*
- * Returns: boxed contents of @value
+ * Returns: (transfer full) (nullable): boxed contents of @value
*/
gpointer
g_value_dup_boxed (const GValue *value)
diff --git a/gobject/gboxed.h b/gobject/gboxed.h
index c563dccfc..d7b3d4e91 100644
--- a/gobject/gboxed.h
+++ b/gobject/gboxed.h
@@ -68,32 +68,32 @@ typedef void (*GBoxedFreeFunc) (gpointer boxed);
/* --- prototypes --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_boxed_copy (GType boxed_type,
gconstpointer src_boxed);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_boxed_free (GType boxed_type,
gpointer boxed);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_boxed (GValue *value,
gconstpointer v_boxed);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_static_boxed (GValue *value,
gconstpointer v_boxed);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_take_boxed (GValue *value,
gconstpointer v_boxed);
-GLIB_DEPRECATED_FOR(g_value_take_boxed)
+GOBJECT_DEPRECATED_FOR(g_value_take_boxed)
void g_value_set_boxed_take_ownership (GValue *value,
gconstpointer v_boxed);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_value_get_boxed (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_value_dup_boxed (const GValue *value);
/* --- convenience --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_boxed_type_register_static (const gchar *name,
GBoxedCopyFunc boxed_copy,
GBoxedFreeFunc boxed_free);
@@ -114,9 +114,9 @@ GType g_boxed_type_register_static (const gchar *name,
*/
#define G_TYPE_VALUE (g_value_get_type ())
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_closure_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_value_get_type (void) G_GNUC_CONST;
G_END_DECLS
diff --git a/gobject/gclosure.c b/gobject/gclosure.c
index 3abec0561..8d5d88d94 100644
--- a/gobject/gclosure.c
+++ b/gobject/gclosure.c
@@ -190,7 +190,7 @@ enum {
* }
* ]|
*
- * Returns: (transfer none): a floating reference to a new #GClosure
+ * Returns: (transfer floating): a floating reference to a new #GClosure
*/
GClosure*
g_closure_new_simple (guint sizeof_closure,
@@ -748,8 +748,8 @@ g_closure_remove_invalidate_notifier (GClosure *closure,
closure->data == notify_data)
closure->marshal = NULL;
else if (!closure_try_remove_inotify (closure, notify_data, notify_func))
- g_warning (G_STRLOC ": unable to remove uninstalled invalidation notifier: %p (%p)",
- notify_func, notify_data);
+ g_critical (G_STRLOC ": unable to remove uninstalled invalidation notifier: %p (%p)",
+ notify_func, notify_data);
}
/**
@@ -776,8 +776,8 @@ g_closure_remove_finalize_notifier (GClosure *closure,
closure->data == notify_data)
closure->marshal = NULL;
else if (!closure_try_remove_fnotify (closure, notify_data, notify_func))
- g_warning (G_STRLOC ": unable to remove uninstalled finalization notifier: %p (%p)",
- notify_func, notify_data);
+ g_critical (G_STRLOC ": unable to remove uninstalled finalization notifier: %p (%p)",
+ notify_func, notify_data);
}
/**
@@ -929,8 +929,8 @@ g_closure_set_marshal (GClosure *closure,
g_return_if_fail (marshal != NULL);
if (closure->marshal && closure->marshal != marshal)
- g_warning ("attempt to override closure->marshal (%p) with new marshal (%p)",
- closure->marshal, marshal);
+ g_critical ("attempt to override closure->marshal (%p) with new marshal (%p)",
+ closure->marshal, marshal);
else
closure->marshal = marshal;
}
@@ -947,8 +947,8 @@ _g_closure_set_va_marshal (GClosure *closure,
real_closure = G_REAL_CLOSURE (closure);
if (real_closure->va_marshal && real_closure->va_marshal != marshal)
- g_warning ("attempt to override closure->va_marshal (%p) with new marshal (%p)",
- real_closure->va_marshal, marshal);
+ g_critical ("attempt to override closure->va_marshal (%p) with new marshal (%p)",
+ real_closure->va_marshal, marshal);
else
real_closure->va_marshal = marshal;
}
@@ -964,7 +964,7 @@ _g_closure_set_va_marshal (GClosure *closure,
*
* @destroy_data will be called as a finalize notifier on the #GClosure.
*
- * Returns: (transfer none): a floating reference to a new #GCClosure
+ * Returns: (transfer floating): a floating reference to a new #GCClosure
*/
GClosure*
g_cclosure_new (GCallback callback_func,
@@ -994,7 +994,7 @@ g_cclosure_new (GCallback callback_func,
*
* @destroy_data will be called as a finalize notifier on the #GClosure.
*
- * Returns: (transfer none): a floating reference to a new #GCClosure
+ * Returns: (transfer floating): a floating reference to a new #GCClosure
*/
GClosure*
g_cclosure_new_swap (GCallback callback_func,
@@ -1162,7 +1162,7 @@ g_type_iface_meta_marshalv (GClosure *closure,
* @struct_offset in the class structure of the interface or classed type
* identified by @itype.
*
- * Returns: (transfer none): a floating reference to a new #GCClosure
+ * Returns: (transfer floating): a floating reference to a new #GCClosure
*/
GClosure*
g_signal_type_cclosure_new (GType itype,
@@ -1274,7 +1274,7 @@ value_to_ffi_type (const GValue *gvalue,
default:
rettype = &ffi_type_pointer;
*value = NULL;
- g_warning ("value_to_ffi_type: Unsupported fundamental type: %s", g_type_name (type));
+ g_critical ("value_to_ffi_type: Unsupported fundamental type: %s", g_type_name (type));
break;
}
return rettype;
@@ -1354,9 +1354,9 @@ restart:
goto restart;
G_GNUC_FALLTHROUGH;
default:
- g_warning ("value_from_ffi_type: Unsupported fundamental type %s for type %s",
- g_type_name (g_type_fundamental (G_VALUE_TYPE (gvalue))),
- g_type_name (G_VALUE_TYPE (gvalue)));
+ g_critical ("value_from_ffi_type: Unsupported fundamental type %s for type %s",
+ g_type_name (g_type_fundamental (G_VALUE_TYPE (gvalue))),
+ g_type_name (G_VALUE_TYPE (gvalue)));
}
}
@@ -1434,7 +1434,7 @@ va_to_ffi_type (GType gtype,
default:
rettype = &ffi_type_pointer;
storage->_guint64 = 0;
- g_warning ("va_to_ffi_type: Unsupported fundamental type: %s", g_type_name (type));
+ g_critical ("va_to_ffi_type: Unsupported fundamental type: %s", g_type_name (type));
break;
}
return rettype;
@@ -1614,7 +1614,7 @@ g_cclosure_marshal_generic_va (GClosure *closure,
args[n_args-1] = &closure->data;
}
- G_VA_COPY (args_copy, args_list);
+ va_copy (args_copy, args_list);
/* Box non-primitive arguments */
for (i = 0; i < n_params; i++)
diff --git a/gobject/gclosure.h b/gobject/gclosure.h
index 330a1cf70..3b139b062 100644
--- a/gobject/gclosure.h
+++ b/gobject/gclosure.h
@@ -112,7 +112,7 @@ typedef void (*GClosureNotify) (gpointer data,
* callback of @closure
* @invocation_hint: (nullable): the invocation hint given as the
* last argument to g_closure_invoke()
- * @user_data: (nullable): additional data specified when
+ * @marshal_data: (nullable): additional data specified when
* registering the marshaller, see g_closure_set_marshal() and
* g_closure_set_meta_marshal()
*
@@ -123,7 +123,7 @@ typedef void (*GClosureMarshal) (GClosure *closure,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
- gpointer user_data);
+ gpointer marshal_data);
/**
* GVaClosureMarshal:
@@ -227,62 +227,62 @@ struct _GCClosure
/* --- prototypes --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GClosure* g_cclosure_new (GCallback callback_func,
gpointer user_data,
GClosureNotify destroy_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GClosure* g_cclosure_new_swap (GCallback callback_func,
gpointer user_data,
GClosureNotify destroy_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GClosure* g_signal_type_cclosure_new (GType itype,
guint struct_offset);
/* --- prototypes --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GClosure* g_closure_ref (GClosure *closure);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_closure_sink (GClosure *closure);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_closure_unref (GClosure *closure);
/* intimidating */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GClosure* g_closure_new_simple (guint sizeof_closure,
gpointer data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_closure_add_finalize_notifier (GClosure *closure,
gpointer notify_data,
GClosureNotify notify_func);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_closure_remove_finalize_notifier (GClosure *closure,
gpointer notify_data,
GClosureNotify notify_func);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_closure_add_invalidate_notifier (GClosure *closure,
gpointer notify_data,
GClosureNotify notify_func);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_closure_remove_invalidate_notifier (GClosure *closure,
gpointer notify_data,
GClosureNotify notify_func);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_closure_add_marshal_guards (GClosure *closure,
gpointer pre_marshal_data,
GClosureNotify pre_marshal_notify,
gpointer post_marshal_data,
GClosureNotify post_marshal_notify);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_closure_set_marshal (GClosure *closure,
GClosureMarshal marshal);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_closure_set_meta_marshal (GClosure *closure,
gpointer marshal_data,
GClosureMarshal meta_marshal);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_closure_invalidate (GClosure *closure);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_closure_invoke (GClosure *closure,
GValue /*out*/ *return_value,
guint n_param_values,
@@ -300,7 +300,7 @@ void g_closure_invoke (GClosure *closure,
- provide marshaller collection, virtually covering anything out there
*/
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_generic (GClosure *closure,
GValue *return_gvalue,
guint n_param_values,
@@ -308,7 +308,7 @@ void g_cclosure_marshal_generic (GClosure *closure,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_generic_va (GClosure *closure,
GValue *return_value,
gpointer instance,
diff --git a/gobject/genums.h b/gobject/genums.h
index b8fff5293..d253b15b1 100644
--- a/gobject/genums.h
+++ b/gobject/genums.h
@@ -217,39 +217,39 @@ struct _GFlagsValue
/* --- prototypes --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GEnumValue* g_enum_get_value (GEnumClass *enum_class,
gint value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GEnumValue* g_enum_get_value_by_name (GEnumClass *enum_class,
const gchar *name);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GEnumValue* g_enum_get_value_by_nick (GEnumClass *enum_class,
const gchar *nick);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GFlagsValue* g_flags_get_first_value (GFlagsClass *flags_class,
guint value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GFlagsValue* g_flags_get_value_by_name (GFlagsClass *flags_class,
const gchar *name);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GFlagsValue* g_flags_get_value_by_nick (GFlagsClass *flags_class,
const gchar *nick);
-GLIB_AVAILABLE_IN_2_54
+GOBJECT_AVAILABLE_IN_2_54
gchar *g_enum_to_string (GType g_enum_type,
gint value);
-GLIB_AVAILABLE_IN_2_54
+GOBJECT_AVAILABLE_IN_2_54
gchar *g_flags_to_string (GType flags_type,
guint value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_enum (GValue *value,
gint v_enum);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gint g_value_get_enum (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_flags (GValue *value,
guint v_flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
guint g_value_get_flags (const GValue *value);
@@ -258,20 +258,20 @@ guint g_value_get_flags (const GValue *value);
/* const_static_values is a NULL terminated array of enum/flags
* values that is taken over!
*/
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_enum_register_static (const gchar *name,
const GEnumValue *const_static_values);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_flags_register_static (const gchar *name,
const GFlagsValue *const_static_values);
/* functions to complete the type information
* for enums/flags implemented by plugins
*/
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_enum_complete_type_info (GType g_enum_type,
GTypeInfo *info,
const GEnumValue *const_values);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_flags_complete_type_info (GType g_flags_type,
GTypeInfo *info,
const GFlagsValue *const_values);
@@ -292,7 +292,7 @@ void g_flags_complete_type_info (GType g_flags_type,
*/
#define G_DEFINE_ENUM_VALUE(EnumValue, EnumNick) \
{ EnumValue, #EnumValue, EnumNick } \
- GLIB_AVAILABLE_MACRO_IN_2_74
+ GOBJECT_AVAILABLE_MACRO_IN_2_74
/**
* G_DEFINE_ENUM_TYPE:
@@ -331,7 +331,7 @@ type_name ## _get_type (void) { \
} \
return g_define_type__static; \
} \
- GLIB_AVAILABLE_MACRO_IN_2_74
+ GOBJECT_AVAILABLE_MACRO_IN_2_74
/**
* G_DEFINE_FLAGS_TYPE:
@@ -374,7 +374,7 @@ type_name ## _get_type (void) { \
} \
return g_define_type__static; \
} \
- GLIB_AVAILABLE_MACRO_IN_2_74
+ GOBJECT_AVAILABLE_MACRO_IN_2_74
G_END_DECLS
diff --git a/gobject/glib-enumtypes.h.template b/gobject/glib-enumtypes.h.template
index 2a4b0e4f3..f907d9cae 100644
--- a/gobject/glib-enumtypes.h.template
+++ b/gobject/glib-enumtypes.h.template
@@ -13,7 +13,7 @@ G_BEGIN_DECLS
/*** END file-production ***/
/*** BEGIN value-header ***/
-GLIB_AVAILABLE_IN_2_60 GType @enum_name@_get_type (void) G_GNUC_CONST;
+GOBJECT_AVAILABLE_IN_2_60 GType @enum_name@_get_type (void) G_GNUC_CONST;
#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
/*** END value-header ***/
diff --git a/gobject/glib-genmarshal.in b/gobject/glib-genmarshal.in
index 20e08e47b..aa5af43bd 100755
--- a/gobject/glib-genmarshal.in
+++ b/gobject/glib-genmarshal.in
@@ -671,7 +671,7 @@ def generate_body(retval, params, prefix, va_marshal=False):
body += [' va_list args_copy;']
body += ['']
- body += [' G_VA_COPY (args_copy, args);']
+ body += [' va_copy (args_copy, args);']
for idx, arg in enumerate(get_args):
ctype = IN_ARGS[arg]['ctype']
diff --git a/gobject/glib-mkenums.in b/gobject/glib-mkenums.in
index 632ba5d51..353e53ae3 100755
--- a/gobject/glib-mkenums.in
+++ b/gobject/glib-mkenums.in
@@ -143,14 +143,13 @@ enumname_prefix = '' # prefix of $enumname
enumindex = 0 # Global enum counter
firstenum = 1 # Is this the first enumeration per file?
entries = [] # [ name, val ] for each entry
-sandbox = None # sandbox for safe evaluation of expressions
+c_namespace = {} # C symbols namespace.
output = '' # Filename to write result into
def parse_trigraph(opts):
result = {}
-
- for opt in re.split(r'\s*,\s*', opts):
+ for opt in re.findall(r'(?:[^\s,"]|"(?:\\.|[^"])*")+', opts):
opt = re.sub(r'^\s*', '', opt)
opt = re.sub(r'\s*$', '', opt)
m = re.search(r'(\w+)(?:=(.+))?', opt)
@@ -161,7 +160,7 @@ def parse_trigraph(opts):
val = groups[1]
else:
val = 1
- result[key] = val
+ result[key] = val.strip('"') if val is not None else None
return result
def parse_entries(file, file_name):
@@ -247,15 +246,12 @@ def parse_entries(file, file_name):
if flags is None and value is not None and '<<' in value:
seenbitshift = 1
- if seenprivate:
- continue
-
if options is not None:
options = parse_trigraph(options)
if 'skip' not in options:
- entries.append((name, value, options.get('nick')))
+ entries.append((name, value, seenprivate, options.get('nick')))
else:
- entries.append((name, value))
+ entries.append((name, value, seenprivate))
else:
m = re.match(r'''\s*
/\*< (([^*]|\*(?!/))*) >\s*\*/
@@ -489,7 +485,7 @@ if len(fhead) > 0:
write_output(prod)
def process_file(curfilename):
- global entries, flags, seenbitshift, seenprivate, enum_prefix
+ global entries, flags, seenbitshift, seenprivate, enum_prefix, c_namespace
firstenum = True
try:
@@ -580,7 +576,7 @@ def process_file(curfilename):
# Autogenerate a prefix
if enum_prefix is None:
for entry in entries:
- if len(entry) < 3 or entry[2] is None:
+ if not entry[2] and (len(entry) < 4 or entry[3] is None):
name = entry[0]
if enum_prefix is not None:
enum_prefix = os.path.commonprefix([name, enum_prefix])
@@ -601,10 +597,11 @@ def process_file(curfilename):
for e in entries:
name = e[0]
num = e[1]
- if len(e) < 3 or e[2] is None:
+ private = e[2]
+ if len(e) < 4 or e[3] is None:
nick = re.sub(r'^' + enum_prefix, '', name)
nick = nick.replace('_', '-').lower()
- e = (name, num, nick)
+ e = (name, num, private, nick)
fixed_entries.append(e)
entries = fixed_entries
@@ -720,7 +717,7 @@ def process_file(curfilename):
next_num = 0
prod = replace_specials(prod)
- for name, num, nick in entries:
+ for name, num, private, nick in entries:
tmp_prod = prod
if '\u0040valuenum\u0040' in prod:
@@ -729,7 +726,7 @@ def process_file(curfilename):
if num is not None:
# use sandboxed evaluation as a reasonable
# approximation to C constant folding
- inum = eval(num, {}, {})
+ inum = eval(num, {}, c_namespace)
# make sure it parsed to an integer
if not isinstance(inum, int):
@@ -738,9 +735,13 @@ def process_file(curfilename):
else:
num = next_num
+ c_namespace[name] = num
tmp_prod = tmp_prod.replace('\u0040valuenum\u0040', str(num))
next_num = int(num) + 1
+ if private:
+ continue
+
tmp_prod = tmp_prod.replace('\u0040VALUENAME\u0040', name)
tmp_prod = tmp_prod.replace('\u0040valuenick\u0040', nick)
if flags:
diff --git a/gobject/glib-types.h b/gobject/glib-types.h
index e0922b420..87065b980 100644
--- a/gobject/glib-types.h
+++ b/gobject/glib-types.h
@@ -24,6 +24,7 @@
#endif
#include <glib.h>
+#include <gobject/gobject-visibility.h>
G_BEGIN_DECLS
@@ -326,70 +327,81 @@ typedef gsize GType;
*/
#define G_TYPE_PATTERN_SPEC (g_pattern_spec_get_type ())
-GLIB_AVAILABLE_IN_ALL
+/**
+ * G_TYPE_BOOKMARK_FILE:
+ *
+ * The #GType for a boxed type holding a #GBookmarkFile.
+ *
+ * Since: 2.76
+ */
+#define G_TYPE_BOOKMARK_FILE (g_bookmark_file_get_type ())
+
+GOBJECT_AVAILABLE_IN_ALL
GType g_date_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_strv_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_gstring_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_hash_table_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_array_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_byte_array_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_ptr_array_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_bytes_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_variant_type_get_gtype (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_regex_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_30
+GOBJECT_AVAILABLE_IN_2_30
GType g_match_info_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_error_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_date_time_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_time_zone_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_io_channel_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_io_condition_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_variant_builder_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_40
+GOBJECT_AVAILABLE_IN_2_40
GType g_variant_dict_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_key_file_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_30
+GOBJECT_AVAILABLE_IN_2_30
GType g_main_loop_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_30
+GOBJECT_AVAILABLE_IN_2_30
GType g_main_context_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_30
+GOBJECT_AVAILABLE_IN_2_30
GType g_source_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_36
+GOBJECT_AVAILABLE_IN_2_36
GType g_pollfd_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_36
+GOBJECT_AVAILABLE_IN_2_36
GType g_thread_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_36
+GOBJECT_AVAILABLE_IN_2_36
GType g_checksum_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_36
+GOBJECT_AVAILABLE_IN_2_36
GType g_markup_parse_context_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_40
+GOBJECT_AVAILABLE_IN_2_40
GType g_mapped_file_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_44
+GOBJECT_AVAILABLE_IN_2_44
GType g_option_group_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_66
+GOBJECT_AVAILABLE_IN_2_66
GType g_uri_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_68
+GOBJECT_AVAILABLE_IN_2_68
GType g_tree_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_70
+GOBJECT_AVAILABLE_IN_2_70
GType g_pattern_spec_get_type (void) G_GNUC_CONST;
+GOBJECT_AVAILABLE_IN_2_76
+GType g_bookmark_file_get_type (void) G_GNUC_CONST;
-GLIB_DEPRECATED_FOR('G_TYPE_VARIANT')
+GOBJECT_DEPRECATED_FOR('G_TYPE_VARIANT')
GType g_variant_get_gtype (void) G_GNUC_CONST;
G_END_DECLS
diff --git a/gobject/gmarshal.c b/gobject/gmarshal.c
index 0c729b4b9..2ccbe12cd 100644
--- a/gobject/gmarshal.c
+++ b/gobject/gmarshal.c
@@ -253,7 +253,7 @@ g_cclosure_marshal_VOID__BOOLEANv (GClosure *closure,
gboolean arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gboolean) va_arg (args_copy, gboolean);
va_end (args_copy);
@@ -361,7 +361,7 @@ g_cclosure_marshal_VOID__CHARv (GClosure *closure,
gchar arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gchar) va_arg (args_copy, gint);
va_end (args_copy);
@@ -469,7 +469,7 @@ g_cclosure_marshal_VOID__UCHARv (GClosure *closure,
guchar arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (guchar) va_arg (args_copy, guint);
va_end (args_copy);
@@ -577,7 +577,7 @@ g_cclosure_marshal_VOID__INTv (GClosure *closure,
gint arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gint) va_arg (args_copy, gint);
va_end (args_copy);
@@ -685,7 +685,7 @@ g_cclosure_marshal_VOID__UINTv (GClosure *closure,
guint arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (guint) va_arg (args_copy, guint);
va_end (args_copy);
@@ -793,7 +793,7 @@ g_cclosure_marshal_VOID__LONGv (GClosure *closure,
glong arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (glong) va_arg (args_copy, glong);
va_end (args_copy);
@@ -901,7 +901,7 @@ g_cclosure_marshal_VOID__ULONGv (GClosure *closure,
gulong arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gulong) va_arg (args_copy, gulong);
va_end (args_copy);
@@ -1009,7 +1009,7 @@ g_cclosure_marshal_VOID__ENUMv (GClosure *closure,
gint arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gint) va_arg (args_copy, gint);
va_end (args_copy);
@@ -1117,7 +1117,7 @@ g_cclosure_marshal_VOID__FLAGSv (GClosure *closure,
guint arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (guint) va_arg (args_copy, guint);
va_end (args_copy);
@@ -1225,7 +1225,7 @@ g_cclosure_marshal_VOID__FLOATv (GClosure *closure,
gfloat arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gfloat) va_arg (args_copy, gdouble);
va_end (args_copy);
@@ -1333,7 +1333,7 @@ g_cclosure_marshal_VOID__DOUBLEv (GClosure *closure,
gdouble arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gdouble) va_arg (args_copy, gdouble);
va_end (args_copy);
@@ -1441,7 +1441,7 @@ g_cclosure_marshal_VOID__STRINGv (GClosure *closure,
gpointer arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_strdup (arg0);
@@ -1553,7 +1553,7 @@ g_cclosure_marshal_VOID__PARAMv (GClosure *closure,
gpointer arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_param_spec_ref (arg0);
@@ -1665,7 +1665,7 @@ g_cclosure_marshal_VOID__BOXEDv (GClosure *closure,
gpointer arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_boxed_copy (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, arg0);
@@ -1781,7 +1781,7 @@ g_cclosure_marshal_VOID__POINTERv (GClosure *closure,
gpointer arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
va_end (args_copy);
@@ -1889,7 +1889,7 @@ g_cclosure_marshal_VOID__OBJECTv (GClosure *closure,
gpointer arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if (arg0 != NULL)
arg0 = g_object_ref (arg0);
@@ -2001,7 +2001,7 @@ g_cclosure_marshal_VOID__VARIANTv (GClosure *closure,
gpointer arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_variant_ref_sink (arg0);
@@ -2117,7 +2117,7 @@ g_cclosure_marshal_VOID__UINT_POINTERv (GClosure *closure,
gpointer arg1;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (guint) va_arg (args_copy, guint);
arg1 = (gpointer) va_arg (args_copy, gpointer);
va_end (args_copy);
@@ -2236,7 +2236,7 @@ g_cclosure_marshal_BOOLEAN__FLAGSv (GClosure *closure,
g_return_if_fail (return_value != NULL);
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (guint) va_arg (args_copy, guint);
va_end (args_copy);
@@ -2358,7 +2358,7 @@ g_cclosure_marshal_STRING__OBJECT_POINTERv (GClosure *closure,
g_return_if_fail (return_value != NULL);
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if (arg0 != NULL)
arg0 = g_object_ref (arg0);
@@ -2487,7 +2487,7 @@ g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv (GClosure *closure,
g_return_if_fail (return_value != NULL);
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_boxed_copy (param_types[0] & ~G_SIGNAL_TYPE_STATIC_SCOPE, arg0);
diff --git a/gobject/gmarshal.h b/gobject/gmarshal.h
index fdd6c042e..96c7c4eee 100644
--- a/gobject/gmarshal.h
+++ b/gobject/gmarshal.h
@@ -20,14 +20,14 @@
G_BEGIN_DECLS
/* VOID:VOID */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__VOID (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__VOIDv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -37,14 +37,14 @@ void g_cclosure_marshal_VOID__VOIDv (GClosure *closure,
GType *param_types);
/* VOID:BOOLEAN */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__BOOLEAN (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__BOOLEANv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -54,14 +54,14 @@ void g_cclosure_marshal_VOID__BOOLEANv (GClosure *closure,
GType *param_types);
/* VOID:CHAR */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__CHAR (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__CHARv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -71,14 +71,14 @@ void g_cclosure_marshal_VOID__CHARv (GClosure *closure,
GType *param_types);
/* VOID:UCHAR */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__UCHAR (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__UCHARv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -88,14 +88,14 @@ void g_cclosure_marshal_VOID__UCHARv (GClosure *closure,
GType *param_types);
/* VOID:INT */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__INT (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__INTv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -105,14 +105,14 @@ void g_cclosure_marshal_VOID__INTv (GClosure *closure,
GType *param_types);
/* VOID:UINT */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__UINT (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__UINTv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -122,14 +122,14 @@ void g_cclosure_marshal_VOID__UINTv (GClosure *closure,
GType *param_types);
/* VOID:LONG */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__LONG (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__LONGv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -139,14 +139,14 @@ void g_cclosure_marshal_VOID__LONGv (GClosure *closure,
GType *param_types);
/* VOID:ULONG */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__ULONG (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__ULONGv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -156,14 +156,14 @@ void g_cclosure_marshal_VOID__ULONGv (GClosure *closure,
GType *param_types);
/* VOID:ENUM */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__ENUM (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__ENUMv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -173,14 +173,14 @@ void g_cclosure_marshal_VOID__ENUMv (GClosure *closure,
GType *param_types);
/* VOID:FLAGS */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__FLAGS (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__FLAGSv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -190,14 +190,14 @@ void g_cclosure_marshal_VOID__FLAGSv (GClosure *closure,
GType *param_types);
/* VOID:FLOAT */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__FLOAT (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__FLOATv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -207,14 +207,14 @@ void g_cclosure_marshal_VOID__FLOATv (GClosure *closure,
GType *param_types);
/* VOID:DOUBLE */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__DOUBLE (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__DOUBLEv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -224,14 +224,14 @@ void g_cclosure_marshal_VOID__DOUBLEv (GClosure *closure,
GType *param_types);
/* VOID:STRING */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__STRING (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__STRINGv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -241,14 +241,14 @@ void g_cclosure_marshal_VOID__STRINGv (GClosure *closure,
GType *param_types);
/* VOID:PARAM */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__PARAM (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__PARAMv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -258,14 +258,14 @@ void g_cclosure_marshal_VOID__PARAMv (GClosure *closure,
GType *param_types);
/* VOID:BOXED */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__BOXED (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__BOXEDv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -275,14 +275,14 @@ void g_cclosure_marshal_VOID__BOXEDv (GClosure *closure,
GType *param_types);
/* VOID:POINTER */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__POINTER (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__POINTERv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -292,14 +292,14 @@ void g_cclosure_marshal_VOID__POINTERv (GClosure *closure,
GType *param_types);
/* VOID:OBJECT */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__OBJECT (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__OBJECTv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -309,14 +309,14 @@ void g_cclosure_marshal_VOID__OBJECTv (GClosure *closure,
GType *param_types);
/* VOID:VARIANT */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__VARIANT (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__VARIANTv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -326,14 +326,14 @@ void g_cclosure_marshal_VOID__VARIANTv (GClosure *closure,
GType *param_types);
/* VOID:UINT,POINTER */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__UINT_POINTER (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_VOID__UINT_POINTERv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -343,14 +343,14 @@ void g_cclosure_marshal_VOID__UINT_POINTERv (GClosure *closure,
GType *param_types);
/* BOOL:FLAGS */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_BOOLEAN__FLAGS (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_BOOLEAN__FLAGSv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -378,14 +378,14 @@ void g_cclosure_marshal_BOOLEAN__FLAGSv (GClosure *closure,
#define g_cclosure_marshal_BOOL__FLAGS g_cclosure_marshal_BOOLEAN__FLAGS
/* STRING:OBJECT,POINTER */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_STRING__OBJECT_POINTER (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_STRING__OBJECT_POINTERv (GClosure *closure,
GValue *return_value,
gpointer instance,
@@ -395,14 +395,14 @@ void g_cclosure_marshal_STRING__OBJECT_POINTERv (GClosure *closure,
GType *param_types);
/* BOOL:BOXED,BOXED */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_BOOLEAN__BOXED_BOXED (GClosure *closure,
GValue *return_value,
guint n_param_values,
const GValue *param_values,
gpointer invocation_hint,
gpointer marshal_data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv (GClosure *closure,
GValue *return_value,
gpointer instance,
diff --git a/gobject/gobject.c b/gobject/gobject.c
index 18ec2368b..518285de0 100644
--- a/gobject/gobject.c
+++ b/gobject/gobject.c
@@ -44,7 +44,7 @@
* @see_also: #GParamSpecObject, g_param_spec_object()
*
* GObject is the fundamental type providing the common attributes and
- * methods for all object types in GTK+, Pango and other libraries
+ * methods for all object types in GTK, Pango and other libraries
* based on GObject. The GObject class provides methods for object
* construction and destruction, property access methods, and signal
* support. Signals are described in detail [here][gobject-Signals].
@@ -136,7 +136,6 @@
* ]|
*/
-
/* --- macros --- */
#define PARAM_SPEC_PARAM_ID(pspec) ((pspec)->param_id)
#define PARAM_SPEC_SET_PARAM_ID(pspec, id) ((pspec)->param_id = (id))
@@ -333,8 +332,8 @@ g_object_notify_queue_thaw (GObject *object,
if (G_UNLIKELY (nqueue->freeze_count == 0))
{
G_UNLOCK (notify_lock);
- g_warning ("%s: property-changed notification for %s(%p) is not frozen",
- G_STRFUNC, G_OBJECT_TYPE_NAME (object), object);
+ g_critical ("%s: property-changed notification for %s(%p) is not frozen",
+ G_STRFUNC, G_OBJECT_TYPE_NAME (object), object);
return;
}
@@ -598,9 +597,9 @@ install_property_internal (GType g_type,
if (g_param_spec_pool_lookup (pspec_pool, pspec->name, g_type, FALSE))
{
- g_warning ("When installing property: type '%s' already has a property named '%s'",
- g_type_name (g_type),
- pspec->name);
+ g_critical ("When installing property: type '%s' already has a property named '%s'",
+ g_type_name (g_type),
+ pspec->name);
g_param_spec_unref (pspec);
return FALSE;
}
@@ -1096,8 +1095,8 @@ g_object_class_override_property (GObjectClass *oclass,
if (!overridden)
{
- g_warning ("%s: Can't find property to override for '%s::%s'",
- G_STRFUNC, G_OBJECT_CLASS_NAME (oclass), name);
+ g_critical ("%s: Can't find property to override for '%s::%s'",
+ G_STRFUNC, G_OBJECT_CLASS_NAME (oclass), name);
return;
}
@@ -1469,8 +1468,16 @@ g_object_freeze_notify (GObject *object)
{
g_return_if_fail (G_IS_OBJECT (object));
- if (g_atomic_int_get (&object->ref_count) == 0)
- return;
+#ifndef G_DISABLE_CHECKS
+ if (G_UNLIKELY (g_atomic_int_get (&object->ref_count) == 0))
+ {
+ g_critical ("Attempting to freeze the notification queue for object %s[%p]; "
+ "Property notification does not work during instance finalization.",
+ G_OBJECT_TYPE_NAME (object),
+ object);
+ return;
+ }
+#endif
g_object_ref (object);
g_object_notify_queue_freeze (object, FALSE);
@@ -1586,10 +1593,10 @@ g_object_notify (GObject *object,
TRUE);
if (!pspec)
- g_warning ("%s: object class '%s' has no property named '%s'",
- G_STRFUNC,
- G_OBJECT_TYPE_NAME (object),
- property_name);
+ g_critical ("%s: object class '%s' has no property named '%s'",
+ G_STRFUNC,
+ G_OBJECT_TYPE_NAME (object),
+ property_name);
else
g_object_notify_by_spec_internal (object, pspec);
}
@@ -1670,9 +1677,19 @@ g_object_thaw_notify (GObject *object)
GObjectNotifyQueue *nqueue;
g_return_if_fail (G_IS_OBJECT (object));
- if (g_atomic_int_get (&object->ref_count) == 0)
- return;
-
+
+#ifndef G_DISABLE_CHECKS
+ if (G_UNLIKELY (g_atomic_int_get (&object->ref_count) == 0))
+ {
+ g_critical ("Attempting to thaw the notification queue for object %s[%p]; "
+ "Property notification does not work during instance finalization.",
+ G_OBJECT_TYPE_NAME (object),
+ object);
+ return;
+ }
+#endif
+
+
g_object_ref (object);
/* FIXME: Freezing is the only way to get at the notify queue.
@@ -1801,19 +1818,19 @@ object_set_property (GObject *object,
g_value_init (&tmp_value, pspec->value_type);
if (!g_value_transform (value, &tmp_value))
- g_warning ("unable to set property '%s' of type '%s' from value of type '%s'",
- pspec->name,
- g_type_name (pspec->value_type),
- G_VALUE_TYPE_NAME (value));
+ g_critical ("unable to set property '%s' of type '%s' from value of type '%s'",
+ pspec->name,
+ g_type_name (pspec->value_type),
+ G_VALUE_TYPE_NAME (value));
else if (g_param_value_validate (pspec, &tmp_value) && !(pspec->flags & G_PARAM_LAX_VALIDATION))
{
gchar *contents = g_strdup_value_contents (value);
- g_warning ("value \"%s\" of type '%s' is invalid or out of range for property '%s' of type '%s'",
- contents,
- G_VALUE_TYPE_NAME (value),
- pspec->name,
- g_type_name (pspec->value_type));
+ g_critical ("value \"%s\" of type '%s' is invalid or out of range for property '%s' of type '%s'",
+ contents,
+ G_VALUE_TYPE_NAME (value),
+ pspec->name,
+ g_type_name (pspec->value_type));
g_free (contents);
}
else
@@ -1992,7 +2009,7 @@ g_object_get_type (void)
* @object_type: the type id of the #GObject subtype to instantiate
* @first_property_name: the name of the first property
* @...: the value of the first property, followed optionally by more
- * name/value pairs, followed by %NULL
+ * name/value pairs, followed by %NULL
*
* Creates a new instance of a #GObject subtype and sets its properties.
*
@@ -2002,22 +2019,22 @@ g_object_get_type (void)
* per g_type_create_instance().
*
* Note that in C, small integer types in variable argument lists are promoted
- * up to #gint or #guint as appropriate, and read back accordingly. #gint is 32
- * bits on every platform on which GLib is currently supported. This means that
- * you can use C expressions of type #gint with g_object_new() and properties of
- * type #gint or #guint or smaller. Specifically, you can use integer literals
+ * up to `gint` or `guint` as appropriate, and read back accordingly. `gint` is
+ * 32 bits on every platform on which GLib is currently supported. This means that
+ * you can use C expressions of type `gint` with g_object_new() and properties of
+ * type `gint` or `guint` or smaller. Specifically, you can use integer literals
* with these property types.
*
- * When using property types of #gint64 or #guint64, you must ensure that the
+ * When using property types of `gint64` or `guint64`, you must ensure that the
* value that you provide is 64 bit. This means that you should use a cast or
* make use of the %G_GINT64_CONSTANT or %G_GUINT64_CONSTANT macros.
*
- * Similarly, #gfloat is promoted to #gdouble, so you must ensure that the value
- * you provide is a #gdouble, even for a property of type #gfloat.
+ * Similarly, `gfloat` is promoted to `gdouble`, so you must ensure that the value
+ * you provide is a `gdouble`, even for a property of type `gfloat`.
*
* Since GLib 2.72, all #GObjects are guaranteed to be aligned to at least the
- * alignment of the largest basic GLib type (typically this is #guint64 or
- * #gdouble). If you need larger alignment for an element in a #GObject, you
+ * alignment of the largest basic GLib type (typically this is `guint64` or
+ * `gdouble`). If you need larger alignment for an element in a #GObject, you
* should allocate it on the heap (aligned), or arrange for your #GObject to be
* appropriately padded.
*
@@ -2639,20 +2656,20 @@ g_object_set_is_valid_property (GObject *object,
{
if (G_UNLIKELY (pspec == NULL))
{
- g_warning ("%s: object class '%s' has no property named '%s'",
- G_STRFUNC, G_OBJECT_TYPE_NAME (object), property_name);
+ g_critical ("%s: object class '%s' has no property named '%s'",
+ G_STRFUNC, G_OBJECT_TYPE_NAME (object), property_name);
return FALSE;
}
if (G_UNLIKELY (!(pspec->flags & G_PARAM_WRITABLE)))
{
- g_warning ("%s: property '%s' of object class '%s' is not writable",
- G_STRFUNC, pspec->name, G_OBJECT_TYPE_NAME (object));
+ g_critical ("%s: property '%s' of object class '%s' is not writable",
+ G_STRFUNC, pspec->name, G_OBJECT_TYPE_NAME (object));
return FALSE;
}
if (G_UNLIKELY (((pspec->flags & G_PARAM_CONSTRUCT_ONLY) && !object_in_construction (object))))
{
- g_warning ("%s: construct property \"%s\" for object '%s' can't be set after construction",
- G_STRFUNC, pspec->name, G_OBJECT_TYPE_NAME (object));
+ g_critical ("%s: construct property \"%s\" for object '%s' can't be set after construction",
+ G_STRFUNC, pspec->name, G_OBJECT_TYPE_NAME (object));
return FALSE;
}
return TRUE;
@@ -2754,7 +2771,7 @@ g_object_set_valist (GObject *object,
G_VALUE_COLLECT_INIT2 (&value, vtab, pspec->value_type, var_args, G_VALUE_NOCOPY_CONTENTS, &error);
if (error)
{
- g_warning ("%s: %s", G_STRFUNC, error);
+ g_critical ("%s: %s", G_STRFUNC, error);
g_free (error);
g_value_unset (&value);
break;
@@ -2784,14 +2801,14 @@ g_object_get_is_valid_property (GObject *object,
{
if (G_UNLIKELY (pspec == NULL))
{
- g_warning ("%s: object class '%s' has no property named '%s'",
- G_STRFUNC, G_OBJECT_TYPE_NAME (object), property_name);
+ g_critical ("%s: object class '%s' has no property named '%s'",
+ G_STRFUNC, G_OBJECT_TYPE_NAME (object), property_name);
return FALSE;
}
if (G_UNLIKELY (!(pspec->flags & G_PARAM_READABLE)))
{
- g_warning ("%s: property '%s' of object class '%s' is not readable",
- G_STRFUNC, pspec->name, G_OBJECT_TYPE_NAME (object));
+ g_critical ("%s: property '%s' of object class '%s' is not readable",
+ G_STRFUNC, pspec->name, G_OBJECT_TYPE_NAME (object));
return FALSE;
}
return TRUE;
@@ -2893,7 +2910,7 @@ g_object_get_valist (GObject *object,
G_VALUE_LCOPY (&value, var_args, 0, &error);
if (error)
{
- g_warning ("%s: %s", G_STRFUNC, error);
+ g_critical ("%s: %s", G_STRFUNC, error);
g_free (error);
g_value_unset (&value);
break;
@@ -3061,10 +3078,10 @@ g_object_get_property (GObject *object,
}
else if (!g_value_type_transformable (pspec->value_type, G_VALUE_TYPE (value)))
{
- g_warning ("%s: can't retrieve property '%s' of type '%s' as value of type '%s'",
- G_STRFUNC, pspec->name,
- g_type_name (pspec->value_type),
- G_VALUE_TYPE_NAME (value));
+ g_critical ("%s: can't retrieve property '%s' of type '%s' as value of type '%s'",
+ G_STRFUNC, pspec->name,
+ g_type_name (pspec->value_type),
+ G_VALUE_TYPE_NAME (value));
g_object_unref (object);
return;
}
@@ -3176,7 +3193,7 @@ g_object_connect (gpointer _object,
G_CONNECT_SWAPPED | G_CONNECT_AFTER);
else
{
- g_warning ("%s: invalid signal spec \"%s\"", G_STRFUNC, signal_spec);
+ g_critical ("%s: invalid signal spec \"%s\"", G_STRFUNC, signal_spec);
break;
}
signal_spec = va_arg (var_args, gchar*);
@@ -3233,17 +3250,17 @@ g_object_disconnect (gpointer _object,
}
else
{
- g_warning ("%s: invalid signal spec \"%s\"", G_STRFUNC, signal_spec);
+ g_critical ("%s: invalid signal spec \"%s\"", G_STRFUNC, signal_spec);
break;
}
if ((mask & G_SIGNAL_MATCH_ID) &&
!g_signal_parse_name (signal_spec, G_OBJECT_TYPE (object), &sid, &detail, FALSE))
- g_warning ("%s: invalid signal name \"%s\"", G_STRFUNC, signal_spec);
+ g_critical ("%s: invalid signal name \"%s\"", G_STRFUNC, signal_spec);
else if (!g_signal_handlers_disconnect_matched (object, mask | (detail ? G_SIGNAL_MATCH_DETAIL : 0),
sid, detail,
NULL, (gpointer)callback, data))
- g_warning ("%s: signal handler %p(%p) is not connected", G_STRFUNC, callback, data);
+ g_critical ("%s: signal handler %p(%p) is not connected", G_STRFUNC, callback, data);
signal_spec = va_arg (var_args, gchar*);
}
va_end (var_args);
@@ -3357,7 +3374,7 @@ g_object_weak_unref (GObject *object,
}
G_UNLOCK (weak_refs_mutex);
if (!found_one)
- g_warning ("%s: couldn't find weak ref %p(%p)", G_STRFUNC, notify, data);
+ g_critical ("%s: couldn't find weak ref %p(%p)", G_STRFUNC, notify, data);
}
/**
@@ -3418,16 +3435,20 @@ object_floating_flag_handler (GObject *object,
{
gpointer oldvalue;
case +1: /* force floating if possible */
- do
- oldvalue = g_atomic_pointer_get (&object->qdata);
- while (!g_atomic_pointer_compare_and_exchange ((void**) &object->qdata, oldvalue,
- (gpointer) ((gsize) oldvalue | OBJECT_FLOATING_FLAG)));
+ oldvalue = g_atomic_pointer_get (&object->qdata);
+ while (!g_atomic_pointer_compare_and_exchange_full (
+ (void**) &object->qdata, oldvalue,
+ (void *) ((gsize) oldvalue | OBJECT_FLOATING_FLAG),
+ &oldvalue))
+ ;
return (gsize) oldvalue & OBJECT_FLOATING_FLAG;
case -1: /* sink if possible */
- do
- oldvalue = g_atomic_pointer_get (&object->qdata);
- while (!g_atomic_pointer_compare_and_exchange ((void**) &object->qdata, oldvalue,
- (gpointer) ((gsize) oldvalue & ~(gsize) OBJECT_FLOATING_FLAG)));
+ oldvalue = g_atomic_pointer_get (&object->qdata);
+ while (!g_atomic_pointer_compare_and_exchange_full (
+ (void**) &object->qdata, oldvalue,
+ (void *) ((gsize) oldvalue & ~(gsize) OBJECT_FLOATING_FLAG),
+ &oldvalue))
+ ;
return (gsize) oldvalue & OBJECT_FLOATING_FLAG;
default: /* check floating */
return 0 != ((gsize) g_atomic_pointer_get (&object->qdata) & OBJECT_FLOATING_FLAG);
@@ -3731,7 +3752,7 @@ g_object_remove_toggle_ref (GObject *object,
if (found_one)
g_object_unref (object);
else
- g_warning ("%s: couldn't find toggle ref %p(%p)", G_STRFUNC, notify, data);
+ g_critical ("%s: couldn't find toggle ref %p(%p)", G_STRFUNC, notify, data);
}
/**
@@ -3789,23 +3810,29 @@ g_object_unref (gpointer _object)
g_return_if_fail (G_IS_OBJECT (object));
/* here we want to atomically do: if (ref_count>1) { ref_count--; return; } */
- retry_atomic_decrement1:
old_ref = g_atomic_int_get (&object->ref_count);
- if (old_ref > 1)
+ retry_atomic_decrement1:
+ while (old_ref > 1)
{
/* valid if last 2 refs are owned by this call to unref and the toggle_ref */
- gboolean has_toggle_ref = OBJECT_HAS_TOGGLE_REF (object);
- if (!g_atomic_int_compare_and_exchange ((int *)&object->ref_count, old_ref, old_ref - 1))
- goto retry_atomic_decrement1;
+ if (!g_atomic_int_compare_and_exchange_full ((int *)&object->ref_count,
+ old_ref, old_ref - 1,
+ &old_ref))
+ continue;
TRACE (GOBJECT_OBJECT_UNREF(object,G_TYPE_FROM_INSTANCE(object),old_ref));
/* if we went from 2->1 we need to notify toggle refs if any */
- if (old_ref == 2 && has_toggle_ref) /* The last ref being held in this case is owned by the toggle_ref */
- toggle_refs_notify (object, TRUE);
+ if (old_ref == 2 && OBJECT_HAS_TOGGLE_REF (object))
+ {
+ /* The last ref being held in this case is owned by the toggle_ref */
+ toggle_refs_notify (object, TRUE);
+ }
+
+ return;
}
- else
+
{
GSList **weak_locations;
GObjectNotifyQueue *nqueue;
@@ -3868,24 +3895,29 @@ g_object_unref (gpointer _object)
TRACE (GOBJECT_OBJECT_DISPOSE_END(object,G_TYPE_FROM_INSTANCE(object), 1));
/* may have been re-referenced meanwhile */
- retry_atomic_decrement2:
old_ref = g_atomic_int_get ((int *)&object->ref_count);
- if (old_ref > 1)
+
+ while (old_ref > 1)
{
/* valid if last 2 refs are owned by this call to unref and the toggle_ref */
- gboolean has_toggle_ref = OBJECT_HAS_TOGGLE_REF (object);
- if (!g_atomic_int_compare_and_exchange ((int *)&object->ref_count, old_ref, old_ref - 1))
- goto retry_atomic_decrement2;
+ if (!g_atomic_int_compare_and_exchange_full ((int *)&object->ref_count,
+ old_ref, old_ref - 1,
+ &old_ref))
+ continue;
+
+ TRACE (GOBJECT_OBJECT_UNREF (object, G_TYPE_FROM_INSTANCE (object), old_ref));
/* emit all notifications that have been queued during dispose() */
g_object_notify_queue_thaw (object, nqueue);
- TRACE (GOBJECT_OBJECT_UNREF(object,G_TYPE_FROM_INSTANCE(object),old_ref));
-
/* if we went from 2->1 we need to notify toggle refs if any */
- if (old_ref == 2 && has_toggle_ref) /* The last ref being held in this case is owned by the toggle_ref */
- toggle_refs_notify (object, TRUE);
+ if (old_ref == 2 && OBJECT_HAS_TOGGLE_REF (object) &&
+ g_atomic_int_get ((int *)&object->ref_count) == 1)
+ {
+ /* The last ref being held in this case is owned by the toggle_ref */
+ toggle_refs_notify (object, TRUE);
+ }
return;
}
@@ -4367,18 +4399,15 @@ g_value_object_init (GValue *value)
static void
g_value_object_free_value (GValue *value)
{
- if (value->data[0].v_pointer)
- g_object_unref (value->data[0].v_pointer);
+ g_clear_object ((GObject**) &value->data[0].v_pointer);
}
static void
g_value_object_copy_value (const GValue *src_value,
GValue *dest_value)
{
- if (src_value->data[0].v_pointer)
- dest_value->data[0].v_pointer = g_object_ref (src_value->data[0].v_pointer);
- else
- dest_value->data[0].v_pointer = NULL;
+ g_set_object ((GObject**) &dest_value->data[0].v_pointer,
+ src_value->data[0].v_pointer);
}
static void
@@ -4470,24 +4499,23 @@ g_value_set_object (GValue *value,
gpointer v_object)
{
GObject *old;
-
+
g_return_if_fail (G_VALUE_HOLDS_OBJECT (value));
- old = value->data[0].v_pointer;
-
+ if G_UNLIKELY (value->data[0].v_pointer == v_object)
+ return;
+
+ old = g_steal_pointer (&value->data[0].v_pointer);
+
if (v_object)
{
g_return_if_fail (G_IS_OBJECT (v_object));
g_return_if_fail (g_value_type_compatible (G_OBJECT_TYPE (v_object), G_VALUE_TYPE (value)));
- value->data[0].v_pointer = v_object;
- g_object_ref (value->data[0].v_pointer);
+ value->data[0].v_pointer = g_object_ref (v_object);
}
- else
- value->data[0].v_pointer = NULL;
-
- if (old)
- g_object_unref (old);
+
+ g_clear_object (&old);
}
/**
@@ -4527,18 +4555,14 @@ g_value_take_object (GValue *value,
{
g_return_if_fail (G_VALUE_HOLDS_OBJECT (value));
- if (value->data[0].v_pointer)
- {
- g_object_unref (value->data[0].v_pointer);
- value->data[0].v_pointer = NULL;
- }
+ g_clear_object ((GObject **) &value->data[0].v_pointer);
if (v_object)
{
g_return_if_fail (G_IS_OBJECT (v_object));
g_return_if_fail (g_value_type_compatible (G_OBJECT_TYPE (v_object), G_VALUE_TYPE (value)));
- value->data[0].v_pointer = v_object; /* we take over the reference count */
+ value->data[0].v_pointer = g_steal_pointer (&v_object);
}
}
@@ -4548,7 +4572,7 @@ g_value_take_object (GValue *value,
*
* Get the contents of a %G_TYPE_OBJECT derived #GValue.
*
- * Returns: (type GObject.Object) (transfer none): object contents of @value
+ * Returns: (type GObject.Object) (transfer none) (nullable): object contents of @value
*/
gpointer
g_value_get_object (const GValue *value)
@@ -4566,7 +4590,7 @@ g_value_get_object (const GValue *value)
* its reference count. If the contents of the #GValue are %NULL, then
* %NULL will be returned.
*
- * Returns: (type GObject.Object) (transfer full): object content of @value,
+ * Returns: (type GObject.Object) (transfer full) (nullable): object content of @value,
* should be unreferenced when no longer needed.
*/
gpointer
@@ -4835,7 +4859,7 @@ g_object_compat_control (gsize what,
{
gpointer *pp;
case 1: /* floating base type */
- return G_TYPE_INITIALLY_UNOWNED;
+ return (gsize) G_TYPE_INITIALLY_UNOWNED;
case 2: /* FIXME: remove this once GLib/Gtk+ break ABI again */
floating_flag_handler = (guint(*)(GObject*,gint)) data;
return 1;
diff --git a/gobject/gobject.h b/gobject/gobject.h
index 17bb0f59d..ea0157c35 100644
--- a/gobject/gobject.h
+++ b/gobject/gobject.h
@@ -410,44 +410,44 @@ struct _GObjectConstructParam
/* --- prototypes --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_initially_unowned_get_type (void);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_class_install_property (GObjectClass *oclass,
guint property_id,
GParamSpec *pspec);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_object_class_find_property (GObjectClass *oclass,
const gchar *property_name);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec**g_object_class_list_properties (GObjectClass *oclass,
guint *n_properties);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_class_override_property (GObjectClass *oclass,
guint property_id,
const gchar *name);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_class_install_properties (GObjectClass *oclass,
guint n_pspecs,
GParamSpec **pspecs);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_interface_install_property (gpointer g_iface,
GParamSpec *pspec);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_object_interface_find_property (gpointer g_iface,
const gchar *property_name);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec**g_object_interface_list_properties (gpointer g_iface,
guint *n_properties_p);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_object_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_object_new (GType object_type,
const gchar *first_property_name,
...);
-GLIB_AVAILABLE_IN_2_54
+GOBJECT_AVAILABLE_IN_2_54
GObject* g_object_new_with_properties (GType object_type,
guint n_properties,
const char *names[],
@@ -455,91 +455,91 @@ GObject* g_object_new_with_properties (GType object_type,
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-GLIB_DEPRECATED_IN_2_54_FOR(g_object_new_with_properties)
+GOBJECT_DEPRECATED_IN_2_54_FOR(g_object_new_with_properties)
gpointer g_object_newv (GType object_type,
guint n_parameters,
GParameter *parameters);
G_GNUC_END_IGNORE_DEPRECATIONS
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GObject* g_object_new_valist (GType object_type,
const gchar *first_property_name,
va_list var_args);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_set (gpointer object,
const gchar *first_property_name,
...) G_GNUC_NULL_TERMINATED;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_get (gpointer object,
const gchar *first_property_name,
...) G_GNUC_NULL_TERMINATED;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_object_connect (gpointer object,
const gchar *signal_spec,
...) G_GNUC_NULL_TERMINATED;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_disconnect (gpointer object,
const gchar *signal_spec,
...) G_GNUC_NULL_TERMINATED;
-GLIB_AVAILABLE_IN_2_54
+GOBJECT_AVAILABLE_IN_2_54
void g_object_setv (GObject *object,
guint n_properties,
const gchar *names[],
const GValue values[]);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_set_valist (GObject *object,
const gchar *first_property_name,
va_list var_args);
-GLIB_AVAILABLE_IN_2_54
+GOBJECT_AVAILABLE_IN_2_54
void g_object_getv (GObject *object,
guint n_properties,
const gchar *names[],
GValue values[]);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_get_valist (GObject *object,
const gchar *first_property_name,
va_list var_args);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_set_property (GObject *object,
const gchar *property_name,
const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_get_property (GObject *object,
const gchar *property_name,
GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_freeze_notify (GObject *object);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_notify (GObject *object,
const gchar *property_name);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_notify_by_pspec (GObject *object,
GParamSpec *pspec);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_thaw_notify (GObject *object);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_object_is_floating (gpointer object);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_object_ref_sink (gpointer object);
-GLIB_AVAILABLE_IN_2_70
+GOBJECT_AVAILABLE_IN_2_70
gpointer g_object_take_ref (gpointer object);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_object_ref (gpointer object);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_unref (gpointer object);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_weak_ref (GObject *object,
GWeakNotify notify,
gpointer data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_weak_unref (GObject *object,
GWeakNotify notify,
gpointer data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_add_weak_pointer (GObject *object,
gpointer *weak_pointer_location);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_remove_weak_pointer (GObject *object,
gpointer *weak_pointer_location);
@@ -567,37 +567,37 @@ typedef void (*GToggleNotify) (gpointer data,
GObject *object,
gboolean is_last_ref);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_add_toggle_ref (GObject *object,
GToggleNotify notify,
gpointer data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_remove_toggle_ref (GObject *object,
GToggleNotify notify,
gpointer data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_object_get_qdata (GObject *object,
GQuark quark);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_set_qdata (GObject *object,
GQuark quark,
gpointer data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_set_qdata_full (GObject *object,
GQuark quark,
gpointer data,
GDestroyNotify destroy);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_object_steal_qdata (GObject *object,
GQuark quark);
-GLIB_AVAILABLE_IN_2_34
+GOBJECT_AVAILABLE_IN_2_34
gpointer g_object_dup_qdata (GObject *object,
GQuark quark,
GDuplicateFunc dup_func,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_34
+GOBJECT_AVAILABLE_IN_2_34
gboolean g_object_replace_qdata (GObject *object,
GQuark quark,
gpointer oldval,
@@ -605,28 +605,28 @@ gboolean g_object_replace_qdata (GObject *object,
GDestroyNotify destroy,
GDestroyNotify *old_destroy);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_object_get_data (GObject *object,
const gchar *key);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_set_data (GObject *object,
const gchar *key,
gpointer data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_set_data_full (GObject *object,
const gchar *key,
gpointer data,
GDestroyNotify destroy);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_object_steal_data (GObject *object,
const gchar *key);
-GLIB_AVAILABLE_IN_2_34
+GOBJECT_AVAILABLE_IN_2_34
gpointer g_object_dup_data (GObject *object,
const gchar *key,
GDuplicateFunc dup_func,
gpointer user_data);
-GLIB_AVAILABLE_IN_2_34
+GOBJECT_AVAILABLE_IN_2_34
gboolean g_object_replace_data (GObject *object,
const gchar *key,
gpointer oldval,
@@ -635,26 +635,26 @@ gboolean g_object_replace_data (GObject *object,
GDestroyNotify *old_destroy);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_watch_closure (GObject *object,
GClosure *closure);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GClosure* g_cclosure_new_object (GCallback callback_func,
GObject *object);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GClosure* g_cclosure_new_object_swap (GCallback callback_func,
GObject *object);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GClosure* g_closure_new_object (guint sizeof_closure,
GObject *object);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_object (GValue *value,
gpointer v_object);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_value_get_object (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_value_dup_object (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gulong g_signal_connect_object (gpointer instance,
const gchar *detailed_signal,
GCallback c_handler,
@@ -662,20 +662,20 @@ gulong g_signal_connect_object (gpointer instance,
GConnectFlags connect_flags);
/*< protected >*/
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_force_floating (GObject *object);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_object_run_dispose (GObject *object);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_take_object (GValue *value,
gpointer v_object);
-GLIB_DEPRECATED_FOR(g_value_take_object)
+GOBJECT_DEPRECATED_FOR(g_value_take_object)
void g_value_set_object_take_ownership (GValue *value,
gpointer v_object);
-GLIB_DEPRECATED
+GOBJECT_DEPRECATED
gsize g_object_compat_control (gsize what,
gpointer data);
@@ -705,7 +705,7 @@ G_STMT_START { \
#define G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec) \
G_OBJECT_WARN_INVALID_PSPEC ((object), "property", (property_id), (pspec))
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_clear_object (GObject **object_ptr);
#define g_clear_object(object_ptr) g_clear_pointer ((object_ptr), g_object_unref)
@@ -784,7 +784,7 @@ static inline gboolean
(void) (0 ? *(object_ptr) = (new_object), FALSE : FALSE); \
(g_set_object) (_object_ptr.out, (GObject *) new_object); \
})) \
- GLIB_AVAILABLE_MACRO_IN_2_44
+ GOBJECT_AVAILABLE_MACRO_IN_2_44
#else /* if !defined(__GNUC__) */
@@ -937,14 +937,14 @@ typedef struct {
union { gpointer p; } priv;
} GWeakRef;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_weak_ref_init (GWeakRef *weak_ref,
gpointer object);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_weak_ref_clear (GWeakRef *weak_ref);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_weak_ref_get (GWeakRef *weak_ref);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_weak_ref_set (GWeakRef *weak_ref,
gpointer object);
diff --git a/gobject/gobject_gdb.py b/gobject/gobject_gdb.py
index ac9fd4e6e..55ad40607 100644
--- a/gobject/gobject_gdb.py
+++ b/gobject/gobject_gdb.py
@@ -148,11 +148,16 @@ def get_signal_name(id):
id = long(id)
if id == 0:
return None
- val = read_global_var("g_signal_nodes")
- max_s = read_global_var("g_n_signal_nodes")
- max_s = long(max_s)
- if id < max_s:
- return val[id]["name"].string()
+
+ try:
+ val = read_global_var("g_signal_nodes")
+ max_s = read_global_var("g_n_signal_nodes")
+ max_s = long(max_s)
+ if id < max_s:
+ return val[id]["name"].string()
+ except gdb.error:
+ return None
+
return None
@@ -215,7 +220,7 @@ class SignalFrame(FrameDecorator):
if detail is not None:
return signal + ":" + detail
else:
- return detail
+ return signal
def function(self):
instances = []
@@ -260,7 +265,7 @@ class SignalFrame(FrameDecorator):
instance = self.or_join_array(instances)
signal = self.or_join_array(signals)
- return "<emit signal %s on instance %s>" % (signal, instance)
+ return "<emit signal '%s' on instance %s>" % (signal, instance)
def elided(self):
return self.frames[0:-1]
@@ -287,7 +292,8 @@ class GFrameDecorator:
def find_signal_emission(self):
for i in range(min(len(self.queue), 3)):
- if frame_name(self.queue[i]) == "signal_emit_unlocked_R":
+ name = frame_name(self.queue[i])
+ if name == "signal_emit_unlocked_R" or name == "_g_closure_invoke_va":
return i
return -1
@@ -306,7 +312,7 @@ class GFrameDecorator:
if start == 0:
break
prev_name = frame_name(self.queue[start - 1])
- if prev_name.find("_marshal_") >= 0 or prev_name == "g_closure_invoke":
+ if prev_name.find("_marshal") >= 0 or prev_name == "g_closure_invoke":
start = start - 1
else:
break
@@ -317,7 +323,8 @@ class GFrameDecorator:
"g_signal_emit_valist",
"g_signal_emit",
"g_signal_emit_by_name",
- "_g_closure_invoke_va",
+ "signal_emitv_unlocked",
+ "signal_emit_valist_unlocked",
]:
end = end + 1
else:
diff --git a/gobject/gobjectnotifyqueue.c b/gobject/gobjectnotifyqueue.c
index 48d09ec14..6ed6f51ad 100644
--- a/gobject/gobjectnotifyqueue.c
+++ b/gobject/gobjectnotifyqueue.c
@@ -113,8 +113,8 @@ g_object_notify_queue_thaw (GObject *object,
/* Just make sure we never get into some nasty race condition */
if (G_UNLIKELY(nqueue->freeze_count == 0)) {
G_UNLOCK(notify_lock);
- g_warning ("%s: property-changed notification for %s(%p) is not frozen",
- G_STRFUNC, G_OBJECT_TYPE_NAME (object), object);
+ g_critical ("%s: property-changed notification for %s(%p) is not frozen",
+ G_STRFUNC, G_OBJECT_TYPE_NAME (object), object);
return;
}
diff --git a/gobject/gparam.c b/gobject/gparam.c
index 6c1a48131..9af9e9b33 100644
--- a/gobject/gparam.c
+++ b/gobject/gparam.c
@@ -955,7 +955,7 @@ param_spec_pool_hash (gconstpointer key_spec)
{
const GParamSpec *key = key_spec;
const gchar *p;
- guint h = key->owner_type;
+ guint h = (guint) key->owner_type;
for (p = key->name; *p; p++)
h = (h << 5) - h + *p;
@@ -1022,7 +1022,7 @@ g_param_spec_pool_insert (GParamSpecPool *pool,
{
if (!strchr (G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "-_", *p))
{
- g_warning (G_STRLOC ": pspec name \"%s\" contains invalid characters", pspec->name);
+ g_critical (G_STRLOC ": pspec name \"%s\" contains invalid characters", pspec->name);
return;
}
}
@@ -1058,7 +1058,7 @@ g_param_spec_pool_remove (GParamSpecPool *pool,
if (g_hash_table_remove (pool->hash_table, pspec))
g_param_spec_unref (pspec);
else
- g_warning (G_STRLOC ": attempt to remove unknown pspec '%s' from pool", pspec->name);
+ g_critical (G_STRLOC ": attempt to remove unknown pspec '%s' from pool", pspec->name);
g_mutex_unlock (&pool->mutex);
}
else
diff --git a/gobject/gparam.h b/gobject/gparam.h
index cf8e8dd8d..6454e69a9 100644
--- a/gobject/gparam.h
+++ b/gobject/gparam.h
@@ -160,7 +160,7 @@ typedef enum
G_PARAM_CONSTRUCT_ONLY = 1 << 3,
G_PARAM_LAX_VALIDATION = 1 << 4,
G_PARAM_STATIC_NAME = 1 << 5,
- G_PARAM_PRIVATE GLIB_DEPRECATED_ENUMERATOR_IN_2_26 = G_PARAM_STATIC_NAME,
+ G_PARAM_PRIVATE GOBJECT_DEPRECATED_ENUMERATOR_IN_2_26 = G_PARAM_STATIC_NAME,
G_PARAM_STATIC_NICK = 1 << 6,
G_PARAM_STATIC_BLURB = 1 << 7,
/* User defined flags go here */
@@ -201,7 +201,7 @@ typedef enum
/* --- typedefs & structures --- */
typedef struct _GParamSpec GParamSpec;
typedef struct _GParamSpecClass GParamSpecClass;
-typedef struct _GParameter GParameter GLIB_DEPRECATED_TYPE_IN_2_54;
+typedef struct _GParameter GParameter GOBJECT_DEPRECATED_TYPE_IN_2_54;
typedef struct _GParamSpecPool GParamSpecPool;
/**
* GParamSpec: (ref-func g_param_spec_ref_sink) (unref-func g_param_spec_unref) (set-value-func g_value_set_param) (get-value-func g_value_get_param)
@@ -289,82 +289,82 @@ struct _GParameter /* auxiliary structure for _setv() variants */
{
const gchar *name;
GValue value;
-} GLIB_DEPRECATED_TYPE_IN_2_54;
+} GOBJECT_DEPRECATED_TYPE_IN_2_54;
/* --- prototypes --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_ref (GParamSpec *pspec);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_param_spec_unref (GParamSpec *pspec);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_param_spec_sink (GParamSpec *pspec);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_ref_sink (GParamSpec *pspec);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_param_spec_get_qdata (GParamSpec *pspec,
GQuark quark);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_param_spec_set_qdata (GParamSpec *pspec,
GQuark quark,
gpointer data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_param_spec_set_qdata_full (GParamSpec *pspec,
GQuark quark,
gpointer data,
GDestroyNotify destroy);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_param_spec_steal_qdata (GParamSpec *pspec,
GQuark quark);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_get_redirect_target (GParamSpec *pspec);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_param_value_set_default (GParamSpec *pspec,
GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_param_value_defaults (GParamSpec *pspec,
const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_param_value_validate (GParamSpec *pspec,
GValue *value);
-GLIB_AVAILABLE_IN_2_74
+GOBJECT_AVAILABLE_IN_2_74
gboolean g_param_value_is_valid (GParamSpec *pspec,
const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_param_value_convert (GParamSpec *pspec,
const GValue *src_value,
GValue *dest_value,
gboolean strict_validation);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gint g_param_values_cmp (GParamSpec *pspec,
const GValue *value1,
const GValue *value2);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
const gchar * g_param_spec_get_name (GParamSpec *pspec);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
const gchar * g_param_spec_get_nick (GParamSpec *pspec);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
const gchar * g_param_spec_get_blurb (GParamSpec *pspec);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_param (GValue *value,
GParamSpec *param);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_value_get_param (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_value_dup_param (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_take_param (GValue *value,
GParamSpec *param);
-GLIB_DEPRECATED_FOR(g_value_take_param)
+GOBJECT_DEPRECATED_FOR(g_value_take_param)
void g_value_set_param_take_ownership (GValue *value,
GParamSpec *param);
-GLIB_AVAILABLE_IN_2_36
+GOBJECT_AVAILABLE_IN_2_36
const GValue * g_param_spec_get_default_value (GParamSpec *pspec);
-GLIB_AVAILABLE_IN_2_46
+GOBJECT_AVAILABLE_IN_2_46
GQuark g_param_spec_get_name_quark (GParamSpec *pspec);
/* --- convenience functions --- */
@@ -412,11 +412,11 @@ struct _GParamSpecTypeInfo
const GValue *value1,
const GValue *value2);
};
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_param_type_register_static (const gchar *name,
const GParamSpecTypeInfo *pspec_info);
-GLIB_AVAILABLE_IN_2_66
+GOBJECT_AVAILABLE_IN_2_66
gboolean g_param_spec_is_valid_name (const gchar *name);
/* For registering builting types */
@@ -426,30 +426,30 @@ GType _g_param_type_register_static_constant (const gchar *name,
/* --- protected --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_param_spec_internal (GType param_type,
const gchar *name,
const gchar *nick,
const gchar *blurb,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpecPool* g_param_spec_pool_new (gboolean type_prefixing);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_param_spec_pool_insert (GParamSpecPool *pool,
GParamSpec *pspec,
GType owner_type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_param_spec_pool_remove (GParamSpecPool *pool,
GParamSpec *pspec);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_pool_lookup (GParamSpecPool *pool,
const gchar *param_name,
GType owner_type,
gboolean walk_ancestors);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GList* g_param_spec_pool_list_owned (GParamSpecPool *pool,
GType owner_type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec** g_param_spec_pool_list (GParamSpecPool *pool,
GType owner_type,
guint *n_pspecs_p);
diff --git a/gobject/gparamspecs.h b/gobject/gparamspecs.h
index 250531eed..eaabc10dc 100644
--- a/gobject/gparamspecs.h
+++ b/gobject/gparamspecs.h
@@ -454,7 +454,7 @@ G_BEGIN_DECLS
*
* Deprecated: 2.32: Use #GArray instead of #GValueArray
*/
-#define G_TYPE_PARAM_VALUE_ARRAY (g_param_spec_types[18]) GLIB_DEPRECATED_MACRO_IN_2_32
+#define G_TYPE_PARAM_VALUE_ARRAY (g_param_spec_types[18]) GOBJECT_DEPRECATED_MACRO_IN_2_32
/**
* G_IS_PARAM_SPEC_VALUE_ARRAY:
* @pspec: a valid #GParamSpec instance
@@ -465,7 +465,7 @@ G_BEGIN_DECLS
*
* Deprecated: 2.32: Use #GArray instead of #GValueArray
*/
-#define G_IS_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VALUE_ARRAY)) GLIB_DEPRECATED_MACRO_IN_2_32
+#define G_IS_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VALUE_ARRAY)) GOBJECT_DEPRECATED_MACRO_IN_2_32
/**
* G_PARAM_SPEC_VALUE_ARRAY:
* @pspec: a valid #GParamSpec instance
@@ -474,7 +474,7 @@ G_BEGIN_DECLS
*
* Deprecated: 2.32: Use #GArray instead of #GValueArray
*/
-#define G_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VALUE_ARRAY, GParamSpecValueArray)) GLIB_DEPRECATED_MACRO_IN_2_32
+#define G_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VALUE_ARRAY, GParamSpecValueArray)) GOBJECT_DEPRECATED_MACRO_IN_2_32
/**
* G_TYPE_PARAM_OBJECT:
@@ -986,7 +986,7 @@ struct _GParamSpecVariant
};
/* --- GParamSpec prototypes --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_char (const gchar *name,
const gchar *nick,
const gchar *blurb,
@@ -994,7 +994,7 @@ GParamSpec* g_param_spec_char (const gchar *name,
gint8 maximum,
gint8 default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_uchar (const gchar *name,
const gchar *nick,
const gchar *blurb,
@@ -1002,13 +1002,13 @@ GParamSpec* g_param_spec_uchar (const gchar *name,
guint8 maximum,
guint8 default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_boolean (const gchar *name,
const gchar *nick,
const gchar *blurb,
gboolean default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_int (const gchar *name,
const gchar *nick,
const gchar *blurb,
@@ -1016,7 +1016,7 @@ GParamSpec* g_param_spec_int (const gchar *name,
gint maximum,
gint default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_uint (const gchar *name,
const gchar *nick,
const gchar *blurb,
@@ -1024,7 +1024,7 @@ GParamSpec* g_param_spec_uint (const gchar *name,
guint maximum,
guint default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_long (const gchar *name,
const gchar *nick,
const gchar *blurb,
@@ -1032,7 +1032,7 @@ GParamSpec* g_param_spec_long (const gchar *name,
glong maximum,
glong default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_ulong (const gchar *name,
const gchar *nick,
const gchar *blurb,
@@ -1040,7 +1040,7 @@ GParamSpec* g_param_spec_ulong (const gchar *name,
gulong maximum,
gulong default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_int64 (const gchar *name,
const gchar *nick,
const gchar *blurb,
@@ -1048,7 +1048,7 @@ GParamSpec* g_param_spec_int64 (const gchar *name,
gint64 maximum,
gint64 default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_uint64 (const gchar *name,
const gchar *nick,
const gchar *blurb,
@@ -1056,27 +1056,27 @@ GParamSpec* g_param_spec_uint64 (const gchar *name,
guint64 maximum,
guint64 default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_unichar (const gchar *name,
const gchar *nick,
const gchar *blurb,
gunichar default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_enum (const gchar *name,
const gchar *nick,
const gchar *blurb,
GType enum_type,
gint default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_flags (const gchar *name,
const gchar *nick,
const gchar *blurb,
GType flags_type,
guint default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_float (const gchar *name,
const gchar *nick,
const gchar *blurb,
@@ -1084,7 +1084,7 @@ GParamSpec* g_param_spec_float (const gchar *name,
gfloat maximum,
gfloat default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_double (const gchar *name,
const gchar *nick,
const gchar *blurb,
@@ -1092,51 +1092,51 @@ GParamSpec* g_param_spec_double (const gchar *name,
gdouble maximum,
gdouble default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_string (const gchar *name,
const gchar *nick,
const gchar *blurb,
const gchar *default_value,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_param (const gchar *name,
const gchar *nick,
const gchar *blurb,
GType param_type,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_boxed (const gchar *name,
const gchar *nick,
const gchar *blurb,
GType boxed_type,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_pointer (const gchar *name,
const gchar *nick,
const gchar *blurb,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_value_array (const gchar *name,
const gchar *nick,
const gchar *blurb,
GParamSpec *element_spec,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_object (const gchar *name,
const gchar *nick,
const gchar *blurb,
GType object_type,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_override (const gchar *name,
GParamSpec *overridden);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_gtype (const gchar *name,
const gchar *nick,
const gchar *blurb,
GType is_a_type,
GParamFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_variant (const gchar *name,
const gchar *nick,
const gchar *blurb,
@@ -1144,30 +1144,6 @@ GParamSpec* g_param_spec_variant (const gchar *name,
GVariant *default_value,
GParamFlags flags);
-/* --- internal --- */
-/* We prefix variable declarations so they can
- * properly get exported in windows dlls.
- */
-#ifndef GOBJECT_VAR
-# ifdef G_PLATFORM_WIN32
-# ifdef GOBJECT_STATIC_COMPILATION
-# define GOBJECT_VAR extern
-# else /* !GOBJECT_STATIC_COMPILATION */
-# ifdef GOBJECT_COMPILATION
-# ifdef DLL_EXPORT
-# define GOBJECT_VAR extern __declspec(dllexport)
-# else /* !DLL_EXPORT */
-# define GOBJECT_VAR extern
-# endif /* !DLL_EXPORT */
-# else /* !GOBJECT_COMPILATION */
-# define GOBJECT_VAR extern __declspec(dllimport)
-# endif /* !GOBJECT_COMPILATION */
-# endif /* !GOBJECT_STATIC_COMPILATION */
-# else /* !G_PLATFORM_WIN32 */
-# define GOBJECT_VAR _GLIB_EXTERN
-# endif /* !G_PLATFORM_WIN32 */
-#endif /* GOBJECT_VAR */
-
GOBJECT_VAR GType *g_param_spec_types;
G_END_DECLS
diff --git a/gobject/gsignal.c b/gobject/gsignal.c
index 9c43d73f9..1a2051fa4 100644
--- a/gobject/gsignal.c
+++ b/gobject/gsignal.c
@@ -955,9 +955,9 @@ _g_signals_destroy (GType itype)
if (node->itype == itype)
{
if (node->destroyed)
- g_warning (G_STRLOC ": signal \"%s\" of type '%s' already destroyed",
- node->name,
- type_debug_name (node->itype));
+ g_critical (G_STRLOC ": signal \"%s\" of type '%s' already destroyed",
+ node->name,
+ type_debug_name (node->itype));
else
signal_destroy_R (node);
}
@@ -993,7 +993,7 @@ g_signal_stop_emission (gpointer instance,
node = LOOKUP_SIGNAL_NODE (signal_id);
if (node && detail && !(node->flags & G_SIGNAL_DETAILED))
{
- g_warning ("%s: signal id '%u' does not support detail (%u)", G_STRLOC, signal_id, detail);
+ g_critical ("%s: signal id '%u' does not support detail (%u)", G_STRLOC, signal_id, detail);
SIGNAL_UNLOCK ();
return;
}
@@ -1004,17 +1004,17 @@ g_signal_stop_emission (gpointer instance,
if (emission)
{
if (emission->state == EMISSION_HOOK)
- g_warning (G_STRLOC ": emission of signal \"%s\" for instance '%p' cannot be stopped from emission hook",
- node->name, instance);
+ g_critical (G_STRLOC ": emission of signal \"%s\" for instance '%p' cannot be stopped from emission hook",
+ node->name, instance);
else if (emission->state == EMISSION_RUN)
emission->state = EMISSION_STOP;
}
else
- g_warning (G_STRLOC ": no emission of signal \"%s\" to stop for instance '%p'",
- node->name, instance);
+ g_critical (G_STRLOC ": no emission of signal \"%s\" to stop for instance '%p'",
+ node->name, instance);
}
else
- g_warning ("%s: signal id '%u' is invalid for instance '%p'", G_STRLOC, signal_id, instance);
+ g_critical ("%s: signal id '%u' is invalid for instance '%p'", G_STRLOC, signal_id, instance);
SIGNAL_UNLOCK ();
}
@@ -1066,19 +1066,19 @@ g_signal_add_emission_hook (guint signal_id,
node = LOOKUP_SIGNAL_NODE (signal_id);
if (!node || node->destroyed)
{
- g_warning ("%s: invalid signal id '%u'", G_STRLOC, signal_id);
+ g_critical ("%s: invalid signal id '%u'", G_STRLOC, signal_id);
SIGNAL_UNLOCK ();
return 0;
}
if (node->flags & G_SIGNAL_NO_HOOKS)
{
- g_warning ("%s: signal id '%u' does not support emission hooks (G_SIGNAL_NO_HOOKS flag set)", G_STRLOC, signal_id);
+ g_critical ("%s: signal id '%u' does not support emission hooks (G_SIGNAL_NO_HOOKS flag set)", G_STRLOC, signal_id);
SIGNAL_UNLOCK ();
return 0;
}
if (detail && !(node->flags & G_SIGNAL_DETAILED))
{
- g_warning ("%s: signal id '%u' does not support detail (%u)", G_STRLOC, signal_id, detail);
+ g_critical ("%s: signal id '%u' does not support detail (%u)", G_STRLOC, signal_id, detail);
SIGNAL_UNLOCK ();
return 0;
}
@@ -1128,11 +1128,11 @@ g_signal_remove_emission_hook (guint signal_id,
node = LOOKUP_SIGNAL_NODE (signal_id);
if (!node || node->destroyed)
{
- g_warning ("%s: invalid signal id '%u'", G_STRLOC, signal_id);
+ g_critical ("%s: invalid signal id '%u'", G_STRLOC, signal_id);
goto out;
}
else if (!node->emission_hooks || !g_hook_destroy (node->emission_hooks, hook_id))
- g_warning ("%s: signal \"%s\" had no hook (%lu) to remove", G_STRLOC, node->name, hook_id);
+ g_critical ("%s: signal \"%s\" had no hook (%lu) to remove", G_STRLOC, node->name, hook_id);
node->single_va_closure_is_valid = FALSE;
@@ -1265,10 +1265,10 @@ g_signal_stop_emission_by_name (gpointer instance,
SignalNode *node = LOOKUP_SIGNAL_NODE (signal_id);
if (detail && !(node->flags & G_SIGNAL_DETAILED))
- g_warning ("%s: signal '%s' does not support details", G_STRLOC, detailed_signal);
+ g_critical ("%s: signal '%s' does not support details", G_STRLOC, detailed_signal);
else if (!g_type_is_a (itype, node->itype))
- g_warning ("%s: signal '%s' is invalid for instance '%p' of type '%s'",
- G_STRLOC, detailed_signal, instance, g_type_name (itype));
+ g_critical ("%s: signal '%s' is invalid for instance '%p' of type '%s'",
+ G_STRLOC, detailed_signal, instance, g_type_name (itype));
else
{
Emission *emission = emission_find (signal_id, detail, instance);
@@ -1276,19 +1276,19 @@ g_signal_stop_emission_by_name (gpointer instance,
if (emission)
{
if (emission->state == EMISSION_HOOK)
- g_warning (G_STRLOC ": emission of signal \"%s\" for instance '%p' cannot be stopped from emission hook",
- node->name, instance);
+ g_critical (G_STRLOC ": emission of signal \"%s\" for instance '%p' cannot be stopped from emission hook",
+ node->name, instance);
else if (emission->state == EMISSION_RUN)
emission->state = EMISSION_STOP;
}
else
- g_warning (G_STRLOC ": no emission of signal \"%s\" to stop for instance '%p'",
- node->name, instance);
+ g_critical (G_STRLOC ": no emission of signal \"%s\" to stop for instance '%p'",
+ node->name, instance);
}
}
else
- g_warning ("%s: signal '%s' is invalid for instance '%p' of type '%s'",
- G_STRLOC, detailed_signal, instance, g_type_name (itype));
+ g_critical ("%s: signal '%s' is invalid for instance '%p' of type '%s'",
+ G_STRLOC, detailed_signal, instance, g_type_name (itype));
SIGNAL_UNLOCK ();
}
@@ -1326,11 +1326,11 @@ g_signal_lookup (const gchar *name,
{
/* give elaborate warnings */
if (!g_type_name (itype))
- g_warning (G_STRLOC ": unable to look up signal \"%s\" for invalid type id '%"G_GSIZE_FORMAT"'",
- name, itype);
+ g_critical (G_STRLOC ": unable to look up signal \"%s\" for invalid type id '%"G_GSIZE_FORMAT"'",
+ name, itype);
else if (!g_signal_is_valid_name (name))
- g_warning (G_STRLOC ": unable to look up invalid signal name \"%s\" on type '%s'",
- name, g_type_name (itype));
+ g_critical (G_STRLOC ": unable to look up invalid signal name \"%s\" on type '%s'",
+ name, g_type_name (itype));
}
return signal_id;
@@ -1375,14 +1375,14 @@ g_signal_list_ids (GType itype,
{
/* give elaborate warnings */
if (!g_type_name (itype))
- g_warning (G_STRLOC ": unable to list signals for invalid type id '%"G_GSIZE_FORMAT"'",
- itype);
+ g_critical (G_STRLOC ": unable to list signals for invalid type id '%"G_GSIZE_FORMAT"'",
+ itype);
else if (!G_TYPE_IS_INSTANTIATABLE (itype) && !G_TYPE_IS_INTERFACE (itype))
- g_warning (G_STRLOC ": unable to list signals of non instantiatable type '%s'",
- g_type_name (itype));
+ g_critical (G_STRLOC ": unable to list signals of non instantiatable type '%s'",
+ g_type_name (itype));
else if (!g_type_class_peek (itype) && !G_TYPE_IS_INTERFACE (itype))
- g_warning (G_STRLOC ": unable to list signals of unloaded type '%s'",
- g_type_name (itype));
+ g_critical (G_STRLOC ": unable to list signals of unloaded type '%s'",
+ g_type_name (itype));
}
return (guint*) g_array_free (result, FALSE);
@@ -1743,20 +1743,20 @@ g_signal_newv (const gchar *signal_name,
node = LOOKUP_SIGNAL_NODE (signal_id);
if (node && !node->destroyed)
{
- g_warning (G_STRLOC ": signal \"%s\" already exists in the '%s' %s",
- name,
- type_debug_name (node->itype),
- G_TYPE_IS_INTERFACE (node->itype) ? "interface" : "class ancestry");
+ g_critical (G_STRLOC ": signal \"%s\" already exists in the '%s' %s",
+ name,
+ type_debug_name (node->itype),
+ G_TYPE_IS_INTERFACE (node->itype) ? "interface" : "class ancestry");
g_free (signal_name_copy);
SIGNAL_UNLOCK ();
return 0;
}
if (node && node->itype != itype)
{
- g_warning (G_STRLOC ": signal \"%s\" for type '%s' was previously created for type '%s'",
- name,
- type_debug_name (itype),
- type_debug_name (node->itype));
+ g_critical (G_STRLOC ": signal \"%s\" for type '%s' was previously created for type '%s'",
+ name,
+ type_debug_name (itype),
+ type_debug_name (node->itype));
g_free (signal_name_copy);
SIGNAL_UNLOCK ();
return 0;
@@ -1764,16 +1764,16 @@ g_signal_newv (const gchar *signal_name,
for (i = 0; i < n_params; i++)
if (!G_TYPE_IS_VALUE (param_types[i] & ~G_SIGNAL_TYPE_STATIC_SCOPE))
{
- g_warning (G_STRLOC ": parameter %d of type '%s' for signal \"%s::%s\" is not a value type",
- i + 1, type_debug_name (param_types[i]), type_debug_name (itype), name);
+ g_critical (G_STRLOC ": parameter %d of type '%s' for signal \"%s::%s\" is not a value type",
+ i + 1, type_debug_name (param_types[i]), type_debug_name (itype), name);
g_free (signal_name_copy);
SIGNAL_UNLOCK ();
return 0;
}
if (return_type != G_TYPE_NONE && !G_TYPE_IS_VALUE (return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE))
{
- g_warning (G_STRLOC ": return value of type '%s' for signal \"%s::%s\" is not a value type",
- type_debug_name (return_type), type_debug_name (itype), name);
+ g_critical (G_STRLOC ": return value of type '%s' for signal \"%s::%s\" is not a value type",
+ type_debug_name (return_type), type_debug_name (itype), name);
g_free (signal_name_copy);
SIGNAL_UNLOCK ();
return 0;
@@ -2079,13 +2079,13 @@ g_signal_override_class_closure (guint signal_id,
node = LOOKUP_SIGNAL_NODE (signal_id);
node_check_deprecated (node);
if (!g_type_is_a (instance_type, node->itype))
- g_warning ("%s: type '%s' cannot be overridden for signal id '%u'", G_STRLOC, type_debug_name (instance_type), signal_id);
+ g_critical ("%s: type '%s' cannot be overridden for signal id '%u'", G_STRLOC, type_debug_name (instance_type), signal_id);
else
{
ClassClosure *cc = signal_find_class_closure (node, instance_type);
if (cc && cc->instance_type == instance_type)
- g_warning ("%s: type '%s' is already overridden for signal id '%u'", G_STRLOC, type_debug_name (instance_type), signal_id);
+ g_critical ("%s: type '%s' is already overridden for signal id '%u'", G_STRLOC, type_debug_name (instance_type), signal_id);
else
signal_add_class_closure (node, instance_type, class_closure);
}
@@ -2127,8 +2127,8 @@ g_signal_override_class_handler (const gchar *signal_name,
g_signal_override_class_closure (signal_id, instance_type,
g_cclosure_new (class_handler, NULL, NULL));
else
- g_warning ("%s: signal name '%s' is invalid for type id '%"G_GSIZE_FORMAT"'",
- G_STRLOC, signal_name, instance_type);
+ g_critical ("%s: signal name '%s' is invalid for type id '%"G_GSIZE_FORMAT"'",
+ G_STRLOC, signal_name, instance_type);
}
@@ -2184,10 +2184,10 @@ g_signal_chain_from_overridden (const GValue *instance_and_params,
}
}
else
- g_warning ("%s: signal id '%u' cannot be chained from current emission stage for instance '%p'", G_STRLOC, node->signal_id, instance);
+ g_critical ("%s: signal id '%u' cannot be chained from current emission stage for instance '%p'", G_STRLOC, node->signal_id, instance);
}
else
- g_warning ("%s: no signal is currently being emitted for instance '%p'", G_STRLOC, instance);
+ g_critical ("%s: no signal is currently being emitted for instance '%p'", G_STRLOC, instance);
if (closure)
{
@@ -2257,10 +2257,10 @@ g_signal_chain_from_overridden_handler (gpointer instance,
}
}
else
- g_warning ("%s: signal id '%u' cannot be chained from current emission stage for instance '%p'", G_STRLOC, node->signal_id, instance);
+ g_critical ("%s: signal id '%u' cannot be chained from current emission stage for instance '%p'", G_STRLOC, node->signal_id, instance);
}
else
- g_warning ("%s: no signal is currently being emitted for instance '%p'", G_STRLOC, instance);
+ g_critical ("%s: no signal is currently being emitted for instance '%p'", G_STRLOC, instance);
if (closure)
{
@@ -2289,7 +2289,7 @@ g_signal_chain_from_overridden_handler (gpointer instance,
&error);
if (error)
{
- g_warning ("%s: %s", G_STRLOC, error);
+ g_critical ("%s: %s", G_STRLOC, error);
g_free (error);
/* we purposely leak the value here, it might not be
@@ -2305,7 +2305,6 @@ g_signal_chain_from_overridden_handler (gpointer instance,
}
SIGNAL_UNLOCK ();
- instance_and_params->g_type = 0;
g_value_init_from_instance (instance_and_params, instance);
SIGNAL_LOCK ();
@@ -2345,7 +2344,7 @@ g_signal_chain_from_overridden_handler (gpointer instance,
}
else
{
- g_warning ("%s: %s", G_STRLOC, error);
+ g_critical ("%s: %s", G_STRLOC, error);
g_free (error);
/* we purposely leak the value here, it might not be
@@ -2400,6 +2399,9 @@ g_signal_get_invocation_hint (gpointer instance)
*
* Connects a closure to a signal for a particular object.
*
+ * If @closure is a floating reference (see g_closure_sink()), this function
+ * takes ownership of @closure.
+ *
* Returns: the handler ID (always greater than 0 for successful connections)
*/
gulong
@@ -2421,9 +2423,9 @@ g_signal_connect_closure_by_id (gpointer instance,
if (node)
{
if (detail && !(node->flags & G_SIGNAL_DETAILED))
- g_warning ("%s: signal id '%u' does not support detail (%u)", G_STRLOC, signal_id, detail);
+ g_critical ("%s: signal id '%u' does not support detail (%u)", G_STRLOC, signal_id, detail);
else if (!g_type_is_a (G_TYPE_FROM_INSTANCE (instance), node->itype))
- g_warning ("%s: signal id '%u' is invalid for instance '%p'", G_STRLOC, signal_id, instance);
+ g_critical ("%s: signal id '%u' is invalid for instance '%p'", G_STRLOC, signal_id, instance);
else
{
Handler *handler = handler_new (signal_id, instance, after);
@@ -2446,7 +2448,7 @@ g_signal_connect_closure_by_id (gpointer instance,
}
}
else
- g_warning ("%s: signal id '%u' is invalid for instance '%p'", G_STRLOC, signal_id, instance);
+ g_critical ("%s: signal id '%u' is invalid for instance '%p'", G_STRLOC, signal_id, instance);
SIGNAL_UNLOCK ();
return handler_seq_no;
@@ -2462,6 +2464,9 @@ g_signal_connect_closure_by_id (gpointer instance,
*
* Connects a closure to a signal for a particular object.
*
+ * If @closure is a floating reference (see g_closure_sink()), this function
+ * takes ownership of @closure.
+ *
* Returns: the handler ID (always greater than 0 for successful connections)
*/
gulong
@@ -2487,10 +2492,10 @@ g_signal_connect_closure (gpointer instance,
SignalNode *node = LOOKUP_SIGNAL_NODE (signal_id);
if (detail && !(node->flags & G_SIGNAL_DETAILED))
- g_warning ("%s: signal '%s' does not support details", G_STRLOC, detailed_signal);
+ g_critical ("%s: signal '%s' does not support details", G_STRLOC, detailed_signal);
else if (!g_type_is_a (itype, node->itype))
- g_warning ("%s: signal '%s' is invalid for instance '%p' of type '%s'",
- G_STRLOC, detailed_signal, instance, g_type_name (itype));
+ g_critical ("%s: signal '%s' is invalid for instance '%p' of type '%s'",
+ G_STRLOC, detailed_signal, instance, g_type_name (itype));
else
{
Handler *handler = handler_new (signal_id, instance, after);
@@ -2513,8 +2518,8 @@ g_signal_connect_closure (gpointer instance,
}
}
else
- g_warning ("%s: signal '%s' is invalid for instance '%p' of type '%s'",
- G_STRLOC, detailed_signal, instance, g_type_name (itype));
+ g_critical ("%s: signal '%s' is invalid for instance '%p' of type '%s'",
+ G_STRLOC, detailed_signal, instance, g_type_name (itype));
SIGNAL_UNLOCK ();
return handler_seq_no;
@@ -2591,10 +2596,10 @@ g_signal_connect_data (gpointer instance,
node_check_deprecated (node);
if (detail && !(node->flags & G_SIGNAL_DETAILED))
- g_warning ("%s: signal '%s' does not support details", G_STRLOC, detailed_signal);
+ g_critical ("%s: signal '%s' does not support details", G_STRLOC, detailed_signal);
else if (!g_type_is_a (itype, node->itype))
- g_warning ("%s: signal '%s' is invalid for instance '%p' of type '%s'",
- G_STRLOC, detailed_signal, instance, g_type_name (itype));
+ g_critical ("%s: signal '%s' is invalid for instance '%p' of type '%s'",
+ G_STRLOC, detailed_signal, instance, g_type_name (itype));
else
{
Handler *handler = handler_new (signal_id, instance, after);
@@ -2616,8 +2621,8 @@ g_signal_connect_data (gpointer instance,
}
}
else
- g_warning ("%s: signal '%s' is invalid for instance '%p' of type '%s'",
- G_STRLOC, detailed_signal, instance, g_type_name (itype));
+ g_critical ("%s: signal '%s' is invalid for instance '%p' of type '%s'",
+ G_STRLOC, detailed_signal, instance, g_type_name (itype));
SIGNAL_UNLOCK ();
return handler_seq_no;
@@ -2669,7 +2674,7 @@ signal_handler_block_unlocked (gpointer instance,
handler->block_count += 1;
}
else
- g_warning ("%s: instance '%p' has no handler with id '%lu'", G_STRLOC, instance, handler_id);
+ g_critical ("%s: instance '%p' has no handler with id '%lu'", G_STRLOC, instance, handler_id);
}
static void
@@ -2719,10 +2724,10 @@ signal_handler_unblock_unlocked (gpointer instance,
if (handler->block_count)
handler->block_count -= 1;
else
- g_warning (G_STRLOC ": handler '%lu' of instance '%p' is not blocked", handler_id, instance);
+ g_critical (G_STRLOC ": handler '%lu' of instance '%p' is not blocked", handler_id, instance);
}
else
- g_warning ("%s: instance '%p' has no handler with id '%lu'", G_STRLOC, instance, handler_id);
+ g_critical ("%s: instance '%p' has no handler with id '%lu'", G_STRLOC, instance, handler_id);
}
static void
@@ -2769,7 +2774,7 @@ signal_handler_disconnect_unlocked (gpointer instance,
handler_unref_R (handler->signal_id, instance, handler);
}
else
- g_warning ("%s: instance '%p' has no handler with id '%lu'", G_STRLOC, instance, handler_id);
+ g_critical ("%s: instance '%p' has no handler with id '%lu'", G_STRLOC, instance, handler_id);
}
/**
@@ -2940,13 +2945,19 @@ signal_handlers_foreach_matched_unlocked_R (gpointer instance,
* @data: (nullable) (closure closure): The closure data of the handlers' closures.
*
* Blocks all handlers on an instance that match a certain selection criteria.
- * The criteria mask is passed as an OR-ed combination of #GSignalMatchType
- * flags, and the criteria values are passed as arguments.
- * Passing at least one of the %G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC
+ *
+ * The criteria mask is passed as a combination of #GSignalMatchType flags, and
+ * the criteria values are passed as arguments. A handler must match on all
+ * flags set in @mask to be blocked (i.e. the match is conjunctive).
+ *
+ * Passing at least one of the %G_SIGNAL_MATCH_ID, %G_SIGNAL_MATCH_CLOSURE,
+ * %G_SIGNAL_MATCH_FUNC
* or %G_SIGNAL_MATCH_DATA match flags is required for successful matches.
* If no handlers were found, 0 is returned, the number of blocked handlers
* otherwise.
*
+ * Support for %G_SIGNAL_MATCH_ID was added in GLib 2.78.
+ *
* Returns: The number of handlers that matched.
*/
guint
@@ -2963,7 +2974,7 @@ g_signal_handlers_block_matched (gpointer instance,
g_return_val_if_fail (G_TYPE_CHECK_INSTANCE (instance), 0);
g_return_val_if_fail ((mask & ~G_SIGNAL_MATCH_MASK) == 0, 0);
- if (mask & (G_SIGNAL_MATCH_CLOSURE | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA))
+ if (mask & (G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_CLOSURE | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA))
{
SIGNAL_LOCK ();
n_handlers =
@@ -2988,14 +2999,21 @@ g_signal_handlers_block_matched (gpointer instance,
* @data: (nullable) (closure closure): The closure data of the handlers' closures.
*
* Unblocks all handlers on an instance that match a certain selection
- * criteria. The criteria mask is passed as an OR-ed combination of
- * #GSignalMatchType flags, and the criteria values are passed as arguments.
- * Passing at least one of the %G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC
+ * criteria.
+ *
+ * The criteria mask is passed as a combination of #GSignalMatchType flags, and
+ * the criteria values are passed as arguments. A handler must match on all
+ * flags set in @mask to be unblocked (i.e. the match is conjunctive).
+ *
+ * Passing at least one of the %G_SIGNAL_MATCH_ID, %G_SIGNAL_MATCH_CLOSURE,
+ * %G_SIGNAL_MATCH_FUNC
* or %G_SIGNAL_MATCH_DATA match flags is required for successful matches.
* If no handlers were found, 0 is returned, the number of unblocked handlers
* otherwise. The match criteria should not apply to any handlers that are
* not currently blocked.
*
+ * Support for %G_SIGNAL_MATCH_ID was added in GLib 2.78.
+ *
* Returns: The number of handlers that matched.
*/
guint
@@ -3012,7 +3030,7 @@ g_signal_handlers_unblock_matched (gpointer instance,
g_return_val_if_fail (G_TYPE_CHECK_INSTANCE (instance), 0);
g_return_val_if_fail ((mask & ~G_SIGNAL_MATCH_MASK) == 0, 0);
- if (mask & (G_SIGNAL_MATCH_CLOSURE | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA))
+ if (mask & (G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_CLOSURE | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA))
{
SIGNAL_LOCK ();
n_handlers =
@@ -3037,14 +3055,20 @@ g_signal_handlers_unblock_matched (gpointer instance,
* @data: (nullable) (closure closure): The closure data of the handlers' closures.
*
* Disconnects all handlers on an instance that match a certain
- * selection criteria. The criteria mask is passed as an OR-ed
- * combination of #GSignalMatchType flags, and the criteria values are
- * passed as arguments. Passing at least one of the
- * %G_SIGNAL_MATCH_CLOSURE, %G_SIGNAL_MATCH_FUNC or
+ * selection criteria.
+ *
+ * The criteria mask is passed as a combination of #GSignalMatchType flags, and
+ * the criteria values are passed as arguments. A handler must match on all
+ * flags set in @mask to be disconnected (i.e. the match is conjunctive).
+ *
+ * Passing at least one of the %G_SIGNAL_MATCH_ID, %G_SIGNAL_MATCH_CLOSURE,
+ * %G_SIGNAL_MATCH_FUNC or
* %G_SIGNAL_MATCH_DATA match flags is required for successful
* matches. If no handlers were found, 0 is returned, the number of
* disconnected handlers otherwise.
*
+ * Support for %G_SIGNAL_MATCH_ID was added in GLib 2.78.
+ *
* Returns: The number of handlers that matched.
*/
guint
@@ -3061,7 +3085,7 @@ g_signal_handlers_disconnect_matched (gpointer instance,
g_return_val_if_fail (G_TYPE_CHECK_INSTANCE (instance), 0);
g_return_val_if_fail ((mask & ~G_SIGNAL_MATCH_MASK) == 0, 0);
- if (mask & (G_SIGNAL_MATCH_CLOSURE | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA))
+ if (mask & (G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_CLOSURE | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA))
{
SIGNAL_LOCK ();
n_handlers =
@@ -3121,7 +3145,7 @@ g_signal_has_handler_pending (gpointer instance,
{
if (!(node->flags & G_SIGNAL_DETAILED))
{
- g_warning ("%s: signal id '%u' does not support detail (%u)", G_STRLOC, signal_id, detail);
+ g_critical ("%s: signal id '%u' does not support detail (%u)", G_STRLOC, signal_id, detail);
SIGNAL_UNLOCK ();
return FALSE;
}
@@ -3147,6 +3171,12 @@ g_signal_has_handler_pending (gpointer instance,
return has_pending;
}
+static void
+signal_emitv_unlocked (const GValue *instance_and_params,
+ guint signal_id,
+ GQuark detail,
+ GValue *return_value);
+
/**
* g_signal_emitv:
* @instance_and_params: (array): argument list for the signal emission.
@@ -3170,6 +3200,17 @@ g_signal_emitv (const GValue *instance_and_params,
GQuark detail,
GValue *return_value)
{
+ SIGNAL_LOCK ();
+ signal_emitv_unlocked (instance_and_params, signal_id, detail, return_value);
+ SIGNAL_UNLOCK ();
+}
+
+static void
+signal_emitv_unlocked (const GValue *instance_and_params,
+ guint signal_id,
+ GQuark detail,
+ GValue *return_value)
+{
gpointer instance;
SignalNode *node;
#ifdef G_ENABLE_DEBUG
@@ -3186,19 +3227,16 @@ g_signal_emitv (const GValue *instance_and_params,
param_values = instance_and_params + 1;
#endif
- SIGNAL_LOCK ();
node = LOOKUP_SIGNAL_NODE (signal_id);
if (!node || !g_type_is_a (G_TYPE_FROM_INSTANCE (instance), node->itype))
{
- g_warning ("%s: signal id '%u' is invalid for instance '%p'", G_STRLOC, signal_id, instance);
- SIGNAL_UNLOCK ();
+ g_critical ("%s: signal id '%u' is invalid for instance '%p'", G_STRLOC, signal_id, instance);
return;
}
#ifdef G_ENABLE_DEBUG
if (detail && !(node->flags & G_SIGNAL_DETAILED))
{
- g_warning ("%s: signal id '%u' does not support detail (%u)", G_STRLOC, signal_id, detail);
- SIGNAL_UNLOCK ();
+ g_critical ("%s: signal id '%u' does not support detail (%u)", G_STRLOC, signal_id, detail);
return;
}
for (i = 0; i < node->n_params; i++)
@@ -3210,7 +3248,6 @@ g_signal_emitv (const GValue *instance_and_params,
i,
node->name,
G_VALUE_TYPE_NAME (param_values + i));
- SIGNAL_UNLOCK ();
return;
}
if (node->return_type != G_TYPE_NONE)
@@ -3221,7 +3258,6 @@ g_signal_emitv (const GValue *instance_and_params,
G_STRLOC,
type_debug_name (node->return_type),
node->name);
- SIGNAL_UNLOCK ();
return;
}
else if (!node->accumulator && !G_TYPE_CHECK_VALUE_TYPE (return_value, node->return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE))
@@ -3231,7 +3267,6 @@ g_signal_emitv (const GValue *instance_and_params,
type_debug_name (node->return_type),
node->name,
G_VALUE_TYPE_NAME (return_value));
- SIGNAL_UNLOCK ();
return;
}
}
@@ -3258,14 +3293,15 @@ g_signal_emitv (const GValue *instance_and_params,
if (hlist == NULL || hlist->handlers == NULL)
{
/* nothing to do to emit this signal */
- SIGNAL_UNLOCK ();
/* g_printerr ("omitting emission of \"%s\"\n", node->name); */
return;
}
}
- SIGNAL_UNLOCK ();
- signal_emit_unlocked_R (node, detail, instance, return_value, instance_and_params);
+ /* Pass a stable node pointer, whose address can't change even if the
+ * g_signal_nodes array gets reallocated. */
+ SignalNode node_copy = *node;
+ signal_emit_unlocked_R (&node_copy, detail, instance, return_value, instance_and_params);
}
static inline gboolean
@@ -3287,6 +3323,12 @@ accumulate (GSignalInvocationHint *ihint,
return continue_emission;
}
+static gboolean
+signal_emit_valist_unlocked (gpointer instance,
+ guint signal_id,
+ GQuark detail,
+ va_list var_args);
+
/**
* g_signal_emit_valist: (skip)
* @instance: (type GObject.TypeInstance): the instance the signal is being
@@ -3309,35 +3351,59 @@ g_signal_emit_valist (gpointer instance,
GQuark detail,
va_list var_args)
{
+ SIGNAL_LOCK ();
+ if (signal_emit_valist_unlocked (instance, signal_id, detail, var_args))
+ SIGNAL_UNLOCK ();
+}
+
+/*<private>
+ * signal_emit_valist_unlocked:
+ * @instance: The instance to emit from
+ * @signal_id: Signal id to emit
+ * @detail: Signal detail
+ * @var_args: Call arguments
+ *
+ * Returns: %TRUE if the signal mutex has been left locked
+ */
+static gboolean
+signal_emit_valist_unlocked (gpointer instance,
+ guint signal_id,
+ GQuark detail,
+ va_list var_args)
+{
GValue *instance_and_params;
- GType signal_return_type;
GValue *param_values;
SignalNode *node;
- guint i, n_params;
+ guint i;
- g_return_if_fail (G_TYPE_CHECK_INSTANCE (instance));
- g_return_if_fail (signal_id > 0);
+ g_return_val_if_fail (G_TYPE_CHECK_INSTANCE (instance), TRUE);
+ g_return_val_if_fail (signal_id > 0, TRUE);
- SIGNAL_LOCK ();
node = LOOKUP_SIGNAL_NODE (signal_id);
if (!node || !g_type_is_a (G_TYPE_FROM_INSTANCE (instance), node->itype))
{
- g_warning ("%s: signal id '%u' is invalid for instance '%p'", G_STRLOC, signal_id, instance);
- SIGNAL_UNLOCK ();
- return;
+ g_critical ("%s: signal id '%u' is invalid for instance '%p'", G_STRLOC, signal_id, instance);
+ return TRUE;
}
#ifndef G_DISABLE_CHECKS
if (detail && !(node->flags & G_SIGNAL_DETAILED))
{
- g_warning ("%s: signal id '%u' does not support detail (%u)", G_STRLOC, signal_id, detail);
- SIGNAL_UNLOCK ();
- return;
+ g_critical ("%s: signal id '%u' does not support detail (%u)", G_STRLOC, signal_id, detail);
+ return TRUE;
}
#endif /* !G_DISABLE_CHECKS */
if (!node->single_va_closure_is_valid)
node_update_single_va_closure (node);
+ /* There's no need to deep copy this, because a SignalNode instance won't
+ * ever be destroyed, given that _g_signals_destroy() is not called in any
+ * real program, however the SignalNode pointer could change, so just store
+ * the struct contents references, so that we won't try to deference a
+ * potentially invalid (or changed) pointer;
+ */
+ SignalNode node_copy = *node;
+
if (node->single_va_closure != NULL)
{
HandlerList* hlist;
@@ -3390,32 +3456,26 @@ g_signal_emit_valist (gpointer instance,
}
}
- if (fastpath && closure == NULL && node->return_type == G_TYPE_NONE)
- {
- SIGNAL_UNLOCK ();
- return;
- }
+ if (fastpath && closure == NULL && node_copy.return_type == G_TYPE_NONE)
+ return TRUE;
/* Don't allow no-recurse emission as we might have to restart, which means
we will run multiple handlers and thus must ref all arguments */
- if (closure != NULL && (node->flags & (G_SIGNAL_NO_RECURSE)) != 0)
+ if (closure != NULL && (node_copy.flags & (G_SIGNAL_NO_RECURSE)) != 0)
fastpath = FALSE;
if (fastpath)
{
- SignalAccumulator *accumulator;
Emission emission;
GValue *return_accu, accu = G_VALUE_INIT;
GType instance_type = G_TYPE_FROM_INSTANCE (instance);
GValue emission_return = G_VALUE_INIT;
- GType rtype = node->return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE;
- gboolean static_scope = node->return_type & G_SIGNAL_TYPE_STATIC_SCOPE;
+ GType rtype = node_copy.return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE;
+ gboolean static_scope = node_copy.return_type & G_SIGNAL_TYPE_STATIC_SCOPE;
- signal_id = node->signal_id;
- accumulator = node->accumulator;
if (rtype == G_TYPE_NONE)
return_accu = NULL;
- else if (accumulator)
+ else if (node_copy.accumulator)
return_accu = &accu;
else
return_accu = &emission_return;
@@ -3431,18 +3491,18 @@ g_signal_emit_valist (gpointer instance,
if (fastpath_handler)
handler_ref (fastpath_handler);
- SIGNAL_UNLOCK ();
-
+ if (closure != NULL)
+ {
TRACE(GOBJECT_SIGNAL_EMIT(signal_id, detail, instance, instance_type));
+ SIGNAL_UNLOCK ();
+
if (rtype != G_TYPE_NONE)
g_value_init (&emission_return, rtype);
- if (accumulator)
- g_value_init (&accu, rtype);
+ if (node_copy.accumulator)
+ g_value_init (&accu, rtype);
- if (closure != NULL)
- {
/*
* Coverity doesn’t understand the paired ref/unref here and seems
* to ignore the ref, thus reports every call to g_signal_emit()
@@ -3457,12 +3517,15 @@ g_signal_emit_valist (gpointer instance,
return_accu,
instance,
var_args,
- node->n_params,
- node->param_types);
- accumulate (&emission.ihint, &emission_return, &accu, accumulator);
- }
+ node_copy.n_params,
+ node_copy.param_types);
+ accumulate (&emission.ihint, &emission_return, &accu, node_copy.accumulator);
- SIGNAL_LOCK ();
+ if (node_copy.accumulator)
+ g_value_unset (&accu);
+
+ SIGNAL_LOCK ();
+ }
emission.chain_type = G_TYPE_NONE;
emission_pop (&emission);
@@ -3470,20 +3533,20 @@ g_signal_emit_valist (gpointer instance,
if (fastpath_handler)
handler_unref_R (signal_id, instance, fastpath_handler);
- SIGNAL_UNLOCK ();
-
- if (accumulator)
- g_value_unset (&accu);
+ SIGNAL_UNLOCK ();
if (rtype != G_TYPE_NONE)
{
gchar *error = NULL;
- for (i = 0; i < node->n_params; i++)
+ for (i = 0; i < node_copy.n_params; i++)
{
- GType ptype = node->param_types[i] & ~G_SIGNAL_TYPE_STATIC_SCOPE;
+ GType ptype = node_copy.param_types[i] & ~G_SIGNAL_TYPE_STATIC_SCOPE;
G_VALUE_COLLECT_SKIP (ptype, var_args);
}
+ if (closure == NULL)
+ g_value_init (&emission_return, rtype);
+
G_VALUE_LCOPY (&emission_return,
var_args,
static_scope ? G_VALUE_NOCOPY_CONTENTS : 0,
@@ -3492,7 +3555,7 @@ g_signal_emit_valist (gpointer instance,
g_value_unset (&emission_return);
else
{
- g_warning ("%s: %s", G_STRLOC, error);
+ g_critical ("%s: %s", G_STRLOC, error);
g_free (error);
/* we purposely leak the value here, it might not be
* in a correct state if an error condition occurred
@@ -3508,21 +3571,20 @@ g_signal_emit_valist (gpointer instance,
g_object_unref (instance);
#endif
- return;
+ return FALSE;
}
}
+
SIGNAL_UNLOCK ();
- n_params = node->n_params;
- signal_return_type = node->return_type;
- instance_and_params = g_newa0 (GValue, n_params + 1);
+ instance_and_params = g_newa0 (GValue, node_copy.n_params + 1);
param_values = instance_and_params + 1;
- for (i = 0; i < node->n_params; i++)
+ for (i = 0; i < node_copy.n_params; i++)
{
gchar *error;
- GType ptype = node->param_types[i] & ~G_SIGNAL_TYPE_STATIC_SCOPE;
- gboolean static_scope = node->param_types[i] & G_SIGNAL_TYPE_STATIC_SCOPE;
+ GType ptype = node_copy.param_types[i] & ~G_SIGNAL_TYPE_STATIC_SCOPE;
+ gboolean static_scope = node_copy.param_types[i] & G_SIGNAL_TYPE_STATIC_SCOPE;
G_VALUE_COLLECT_INIT (param_values + i, ptype,
var_args,
@@ -3530,7 +3592,7 @@ g_signal_emit_valist (gpointer instance,
&error);
if (error)
{
- g_warning ("%s: %s", G_STRLOC, error);
+ g_critical ("%s: %s", G_STRLOC, error);
g_free (error);
/* we purposely leak the value here, it might not be
@@ -3539,24 +3601,29 @@ g_signal_emit_valist (gpointer instance,
while (i--)
g_value_unset (param_values + i);
- return;
+ return FALSE;
}
}
- instance_and_params->g_type = 0;
g_value_init_from_instance (instance_and_params, instance);
- if (signal_return_type == G_TYPE_NONE)
- signal_emit_unlocked_R (node, detail, instance, NULL, instance_and_params);
+ if (node_copy.return_type == G_TYPE_NONE)
+ {
+ SIGNAL_LOCK ();
+ signal_emit_unlocked_R (&node_copy, detail, instance, NULL, instance_and_params);
+ SIGNAL_UNLOCK ();
+ }
else
{
GValue return_value = G_VALUE_INIT;
gchar *error = NULL;
- GType rtype = signal_return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE;
- gboolean static_scope = signal_return_type & G_SIGNAL_TYPE_STATIC_SCOPE;
+ GType rtype = node_copy.return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE;
+ gboolean static_scope = node_copy.return_type & G_SIGNAL_TYPE_STATIC_SCOPE;
g_value_init (&return_value, rtype);
- signal_emit_unlocked_R (node, detail, instance, &return_value, instance_and_params);
+ SIGNAL_LOCK ();
+ signal_emit_unlocked_R (&node_copy, detail, instance, &return_value, instance_and_params);
+ SIGNAL_UNLOCK ();
G_VALUE_LCOPY (&return_value,
var_args,
@@ -3566,7 +3633,7 @@ g_signal_emit_valist (gpointer instance,
g_value_unset (&return_value);
else
{
- g_warning ("%s: %s", G_STRLOC, error);
+ g_critical ("%s: %s", G_STRLOC, error);
g_free (error);
/* we purposely leak the value here, it might not be
@@ -3574,9 +3641,11 @@ g_signal_emit_valist (gpointer instance,
*/
}
}
- for (i = 0; i < n_params; i++)
+ for (i = 0; i < node_copy.n_params; i++)
g_value_unset (param_values + i);
g_value_unset (instance_and_params);
+
+ return FALSE;
}
/**
@@ -3638,19 +3707,41 @@ g_signal_emit_by_name (gpointer instance,
SIGNAL_LOCK ();
signal_id = signal_parse_name (detailed_signal, itype, &detail, TRUE);
- SIGNAL_UNLOCK ();
if (signal_id)
{
va_list var_args;
va_start (var_args, detailed_signal);
- g_signal_emit_valist (instance, signal_id, detail, var_args);
+ if (signal_emit_valist_unlocked (instance, signal_id, detail, var_args))
+ SIGNAL_UNLOCK ();
va_end (var_args);
}
else
- g_warning ("%s: signal name '%s' is invalid for instance '%p' of type '%s'",
- G_STRLOC, detailed_signal, instance, g_type_name (itype));
+ {
+ SIGNAL_UNLOCK ();
+
+ g_critical ("%s: signal name '%s' is invalid for instance '%p' of type '%s'",
+ G_STRLOC, detailed_signal, instance, g_type_name (itype));
+ }
+}
+
+G_ALWAYS_INLINE static inline GValue *
+maybe_init_accumulator_unlocked (SignalNode *node,
+ GValue *emission_return,
+ GValue *accumulator_value)
+{
+ if (node->accumulator)
+ {
+ if (accumulator_value->g_type)
+ return accumulator_value;
+
+ g_value_init (accumulator_value,
+ node->return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE);
+ return accumulator_value;
+ }
+
+ return emission_return;
}
static gboolean
@@ -3669,11 +3760,16 @@ signal_emit_unlocked_R (SignalNode *node,
guint signal_id;
gulong max_sequential_handler_number;
gboolean return_value_altered = FALSE;
-
+ guint n_params;
+
TRACE(GOBJECT_SIGNAL_EMIT(node->signal_id, detail, instance, G_TYPE_FROM_INSTANCE (instance)));
- SIGNAL_LOCK ();
+ /* We expect this function to be called with a stable SignalNode pointer
+ * that cannot change location, so accessing its stable members should
+ * always work even after a lock/unlock.
+ */
signal_id = node->signal_id;
+ n_params = node->n_params + 1;
if (node->flags & G_SIGNAL_NO_RECURSE)
{
@@ -3682,20 +3778,10 @@ signal_emit_unlocked_R (SignalNode *node,
if (emission_node)
{
emission_node->state = EMISSION_RESTART;
- SIGNAL_UNLOCK ();
return return_value_altered;
}
}
accumulator = node->accumulator;
- if (accumulator)
- {
- SIGNAL_UNLOCK ();
- g_value_init (&accu, node->return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE);
- return_accu = &accu;
- SIGNAL_LOCK ();
- }
- else
- return_accu = emission_return;
emission.instance = instance;
emission.ihint.signal_id = node->signal_id;
emission.ihint.detail = detail;
@@ -3723,9 +3809,10 @@ signal_emit_unlocked_R (SignalNode *node,
emission.chain_type = G_TYPE_FROM_INSTANCE (instance);
SIGNAL_UNLOCK ();
+ return_accu = maybe_init_accumulator_unlocked (node, emission_return, &accu);
g_closure_invoke (class_closure,
return_accu,
- node->n_params + 1,
+ n_params,
instance_and_params,
&emission.ihint);
if (!accumulate (&emission.ihint, emission_return, &accu, accumulator) &&
@@ -3740,35 +3827,131 @@ signal_emit_unlocked_R (SignalNode *node,
else if (emission.state == EMISSION_RESTART)
goto EMIT_RESTART;
}
-
+
if (node->emission_hooks)
{
- gboolean need_destroy, was_in_call, may_recurse = TRUE;
GHook *hook;
+ GHook *static_emission_hooks[3];
+ size_t n_emission_hooks = 0;
+ const gboolean may_recurse = TRUE;
+ guint i;
emission.state = EMISSION_HOOK;
+
+ /* Quick check to determine whether any hooks match this emission,
+ * before committing to the more complex work of calling those hooks.
+ * We save a few of them into a static array, to try to avoid further
+ * allocations.
+ */
hook = g_hook_first_valid (node->emission_hooks, may_recurse);
while (hook)
{
SignalHook *signal_hook = SIGNAL_HOOK (hook);
-
+
if (!signal_hook->detail || signal_hook->detail == detail)
- {
- GSignalEmissionHook hook_func = (GSignalEmissionHook) hook->func;
-
- was_in_call = G_HOOK_IN_CALL (hook);
- hook->flags |= G_HOOK_FLAG_IN_CALL;
- SIGNAL_UNLOCK ();
- need_destroy = !hook_func (&emission.ihint, node->n_params + 1, instance_and_params, hook->data);
- SIGNAL_LOCK ();
- if (!was_in_call)
- hook->flags &= ~G_HOOK_FLAG_IN_CALL;
- if (need_destroy)
- g_hook_destroy_link (node->emission_hooks, hook);
- }
+ {
+ if (n_emission_hooks < G_N_ELEMENTS (static_emission_hooks))
+ {
+ static_emission_hooks[n_emission_hooks] =
+ g_hook_ref (node->emission_hooks, hook);
+ }
+
+ n_emission_hooks += 1;
+ }
+
hook = g_hook_next_valid (node->emission_hooks, hook, may_recurse);
}
-
+
+ /* Re-iterate back through the matching hooks and copy them into
+ * an array which won’t change when we unlock to call the
+ * user-provided hook functions.
+ * These functions may change hook configuration for this signal,
+ * add / remove signal handlers, etc.
+ */
+ if G_UNLIKELY (n_emission_hooks > 0)
+ {
+ guint8 static_hook_returns[G_N_ELEMENTS (static_emission_hooks)];
+ GHook **emission_hooks = NULL;
+ guint8 *hook_returns = NULL;
+
+ if G_LIKELY (n_emission_hooks <= G_N_ELEMENTS (static_emission_hooks))
+ {
+ emission_hooks = static_emission_hooks;
+ hook_returns = static_hook_returns;
+ }
+ else
+ {
+ emission_hooks = g_newa (GHook *, n_emission_hooks);
+ hook_returns = g_newa (guint8, n_emission_hooks);
+
+ /* We can't just memcpy the ones we have in the static array,
+ * to the alloca()'d one because otherwise we'd get an invalid
+ * ID assertion during unref
+ */
+ i = 0;
+ for (hook = g_hook_first_valid (node->emission_hooks, may_recurse);
+ hook != NULL;
+ hook = g_hook_next_valid (node->emission_hooks, hook, may_recurse))
+ {
+ SignalHook *signal_hook = SIGNAL_HOOK (hook);
+
+ if (!signal_hook->detail || signal_hook->detail == detail)
+ {
+ if (i < G_N_ELEMENTS (static_emission_hooks))
+ {
+ emission_hooks[i] = g_steal_pointer (&static_emission_hooks[i]);
+ g_assert (emission_hooks[i] == hook);
+ }
+ else
+ {
+ emission_hooks[i] = g_hook_ref (node->emission_hooks, hook);
+ }
+
+ i += 1;
+ }
+ }
+
+ g_assert (i == n_emission_hooks);
+ }
+
+ SIGNAL_UNLOCK ();
+
+ for (i = 0; i < n_emission_hooks; ++i)
+ {
+ GSignalEmissionHook hook_func;
+ gboolean need_destroy;
+ guint old_flags;
+
+ hook = emission_hooks[i];
+ hook_func = (GSignalEmissionHook) hook->func;
+
+ old_flags = g_atomic_int_or (&hook->flags, G_HOOK_FLAG_IN_CALL);
+ need_destroy = !hook_func (&emission.ihint, n_params,
+ instance_and_params, hook->data);
+
+ if (!(old_flags & G_HOOK_FLAG_IN_CALL))
+ {
+ g_atomic_int_compare_and_exchange (&hook->flags,
+ old_flags | G_HOOK_FLAG_IN_CALL,
+ old_flags);
+ }
+
+ hook_returns[i] = !!need_destroy;
+ }
+
+ SIGNAL_LOCK ();
+
+ for (i = 0; i < n_emission_hooks; i++)
+ {
+ hook = emission_hooks[i];
+
+ g_hook_unref (node->emission_hooks, hook);
+
+ if (hook_returns[i])
+ g_hook_destroy_link (node->emission_hooks, hook);
+ }
+ }
+
if (emission.state == EMISSION_RESTART)
goto EMIT_RESTART;
}
@@ -3793,9 +3976,10 @@ signal_emit_unlocked_R (SignalNode *node,
handler->sequential_number < max_sequential_handler_number)
{
SIGNAL_UNLOCK ();
+ return_accu = maybe_init_accumulator_unlocked (node, emission_return, &accu);
g_closure_invoke (handler->closure,
return_accu,
- node->n_params + 1,
+ n_params,
instance_and_params,
&emission.ihint);
if (!accumulate (&emission.ihint, emission_return, &accu, accumulator) &&
@@ -3832,9 +4016,10 @@ signal_emit_unlocked_R (SignalNode *node,
emission.chain_type = G_TYPE_FROM_INSTANCE (instance);
SIGNAL_UNLOCK ();
+ return_accu = maybe_init_accumulator_unlocked (node, emission_return, &accu);
g_closure_invoke (class_closure,
return_accu,
- node->n_params + 1,
+ n_params,
instance_and_params,
&emission.ihint);
if (!accumulate (&emission.ihint, emission_return, &accu, accumulator) &&
@@ -3864,9 +4049,10 @@ signal_emit_unlocked_R (SignalNode *node,
handler->sequential_number < max_sequential_handler_number)
{
SIGNAL_UNLOCK ();
+ return_accu = maybe_init_accumulator_unlocked (node, emission_return, &accu);
g_closure_invoke (handler->closure,
return_accu,
- node->n_params + 1,
+ n_params,
instance_and_params,
&emission.ihint);
if (!accumulate (&emission.ihint, emission_return, &accu, accumulator) &&
@@ -3913,7 +4099,7 @@ signal_emit_unlocked_R (SignalNode *node,
}
g_closure_invoke (class_closure,
node->return_type != G_TYPE_NONE ? &accu : NULL,
- node->n_params + 1,
+ n_params,
instance_and_params,
&emission.ihint);
if (!accumulate (&emission.ihint, emission_return, &accu, accumulator) &&
@@ -3934,7 +4120,6 @@ signal_emit_unlocked_R (SignalNode *node,
handler_unref_R (signal_id, instance, handler_list);
emission_pop (&emission);
- SIGNAL_UNLOCK ();
if (accumulator)
g_value_unset (&accu);
diff --git a/gobject/gsignal.h b/gobject/gsignal.h
index 0d93f2671..312055b13 100644
--- a/gobject/gsignal.h
+++ b/gobject/gsignal.h
@@ -60,7 +60,7 @@ typedef GVaClosureMarshal GSignalCVaMarshaller;
* the instance on which the signal was emitted.
* @param_values: (array length=n_param_values): the instance on which
* the signal was emitted, followed by the parameters of the emission.
- * @user_data: user data associated with the hook.
+ * @data: user data associated with the hook.
*
* A simple function pointer to get invoked when the signal is emitted.
*
@@ -75,14 +75,14 @@ typedef GVaClosureMarshal GSignalCVaMarshaller;
typedef gboolean (*GSignalEmissionHook) (GSignalInvocationHint *ihint,
guint n_param_values,
const GValue *param_values,
- gpointer user_data);
+ gpointer data);
/**
* GSignalAccumulator:
* @ihint: Signal invocation hint, see #GSignalInvocationHint.
* @return_accu: Accumulator to collect callback return values in, this
* is the return value of the current signal emission.
* @handler_return: A #GValue holding the return value of the signal handler.
- * @user_data: Callback data that was specified when creating the signal.
+ * @data: Callback data that was specified when creating the signal.
*
* The signal accumulator is a special callback function that can be used
* to collect return values of the various callbacks that are called
@@ -103,7 +103,7 @@ typedef gboolean (*GSignalEmissionHook) (GSignalInvocationHint *ihint,
typedef gboolean (*GSignalAccumulator) (GSignalInvocationHint *ihint,
GValue *return_accu,
const GValue *handler_return,
- gpointer user_data);
+ gpointer data);
/* --- run, match and connect types --- */
@@ -169,7 +169,7 @@ typedef enum
*/
typedef enum
{
- G_CONNECT_DEFAULT GLIB_AVAILABLE_ENUMERATOR_IN_2_74 = 0,
+ G_CONNECT_DEFAULT GOBJECT_AVAILABLE_ENUMERATOR_IN_2_74 = 0,
G_CONNECT_AFTER = 1 << 0,
G_CONNECT_SWAPPED = 1 << 1
} GConnectFlags;
@@ -278,7 +278,7 @@ struct _GSignalQuery
/* --- signals --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
guint g_signal_newv (const gchar *signal_name,
GType itype,
GSignalFlags signal_flags,
@@ -289,7 +289,7 @@ guint g_signal_newv (const gchar *signal_name,
GType return_type,
guint n_params,
GType *param_types);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
guint g_signal_new_valist (const gchar *signal_name,
GType itype,
GSignalFlags signal_flags,
@@ -300,7 +300,7 @@ guint g_signal_new_valist (const gchar *signal_name,
GType return_type,
guint n_params,
va_list args);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
guint g_signal_new (const gchar *signal_name,
GType itype,
GSignalFlags signal_flags,
@@ -311,7 +311,7 @@ guint g_signal_new (const gchar *signal_name,
GType return_type,
guint n_params,
...);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
guint g_signal_new_class_handler (const gchar *signal_name,
GType itype,
GSignalFlags signal_flags,
@@ -322,109 +322,109 @@ guint g_signal_new_class_handler (const gchar *signal_name,
GType return_type,
guint n_params,
...);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_set_va_marshaller (guint signal_id,
GType instance_type,
GSignalCVaMarshaller va_marshaller);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_emitv (const GValue *instance_and_params,
guint signal_id,
GQuark detail,
GValue *return_value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_emit_valist (gpointer instance,
guint signal_id,
GQuark detail,
va_list var_args);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_emit (gpointer instance,
guint signal_id,
GQuark detail,
...);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_emit_by_name (gpointer instance,
const gchar *detailed_signal,
...);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
guint g_signal_lookup (const gchar *name,
GType itype);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
const gchar * g_signal_name (guint signal_id);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_query (guint signal_id,
GSignalQuery *query);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
guint* g_signal_list_ids (GType itype,
guint *n_ids);
-GLIB_AVAILABLE_IN_2_66
+GOBJECT_AVAILABLE_IN_2_66
gboolean g_signal_is_valid_name (const gchar *name);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_signal_parse_name (const gchar *detailed_signal,
GType itype,
guint *signal_id_p,
GQuark *detail_p,
gboolean force_detail_quark);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GSignalInvocationHint* g_signal_get_invocation_hint (gpointer instance);
/* --- signal emissions --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_stop_emission (gpointer instance,
guint signal_id,
GQuark detail);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_stop_emission_by_name (gpointer instance,
const gchar *detailed_signal);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gulong g_signal_add_emission_hook (guint signal_id,
GQuark detail,
GSignalEmissionHook hook_func,
gpointer hook_data,
GDestroyNotify data_destroy);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_remove_emission_hook (guint signal_id,
gulong hook_id);
/* --- signal handlers --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_signal_has_handler_pending (gpointer instance,
guint signal_id,
GQuark detail,
gboolean may_be_blocked);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gulong g_signal_connect_closure_by_id (gpointer instance,
guint signal_id,
GQuark detail,
GClosure *closure,
gboolean after);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gulong g_signal_connect_closure (gpointer instance,
const gchar *detailed_signal,
GClosure *closure,
gboolean after);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gulong g_signal_connect_data (gpointer instance,
const gchar *detailed_signal,
GCallback c_handler,
gpointer data,
GClosureNotify destroy_data,
GConnectFlags connect_flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_handler_block (gpointer instance,
gulong handler_id);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_handler_unblock (gpointer instance,
gulong handler_id);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_handler_disconnect (gpointer instance,
gulong handler_id);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_signal_handler_is_connected (gpointer instance,
gulong handler_id);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gulong g_signal_handler_find (gpointer instance,
GSignalMatchType mask,
guint signal_id,
@@ -432,7 +432,7 @@ gulong g_signal_handler_find (gpointer instance,
GClosure *closure,
gpointer func,
gpointer data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
guint g_signal_handlers_block_matched (gpointer instance,
GSignalMatchType mask,
guint signal_id,
@@ -440,7 +440,7 @@ guint g_signal_handlers_block_matched (gpointer instance,
GClosure *closure,
gpointer func,
gpointer data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
guint g_signal_handlers_unblock_matched (gpointer instance,
GSignalMatchType mask,
guint signal_id,
@@ -448,7 +448,7 @@ guint g_signal_handlers_unblock_matched (gpointer instance,
GClosure *closure,
gpointer func,
gpointer data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
guint g_signal_handlers_disconnect_matched (gpointer instance,
GSignalMatchType mask,
guint signal_id,
@@ -457,7 +457,7 @@ guint g_signal_handlers_disconnect_matched (gpointer instance,
gpointer func,
gpointer data);
-GLIB_AVAILABLE_IN_2_62
+GOBJECT_AVAILABLE_IN_2_62
void g_clear_signal_handler (gulong *handler_id_ptr,
gpointer instance);
@@ -473,21 +473,21 @@ void g_clear_signal_handler (gulong *handler_id_ptr,
g_signal_handler_disconnect (_instance, _handler_id); \
} \
} G_STMT_END \
- GLIB_AVAILABLE_MACRO_IN_2_62
+ GOBJECT_AVAILABLE_MACRO_IN_2_62
/* --- overriding and chaining --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_override_class_closure (guint signal_id,
GType instance_type,
GClosure *class_closure);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_override_class_handler (const gchar *signal_name,
GType instance_type,
GCallback class_handler);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_chain_from_overridden (const GValue *instance_and_params,
GValue *return_value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_chain_from_overridden_handler (gpointer instance,
...);
@@ -625,20 +625,20 @@ void g_signal_chain_from_overridden_handler (gpointer instance,
0, 0, NULL, (func), (data))
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_signal_accumulator_true_handled (GSignalInvocationHint *ihint,
GValue *return_accu,
const GValue *handler_return,
gpointer dummy);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_signal_accumulator_first_wins (GSignalInvocationHint *ihint,
GValue *return_accu,
const GValue *handler_return,
gpointer dummy);
/*< private >*/
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_signal_handlers_destroy (gpointer instance);
void _g_signals_destroy (GType itype);
diff --git a/gobject/gsignalgroup.c b/gobject/gsignalgroup.c
index e773fc040..6cf9cc9ec 100644
--- a/gobject/gsignalgroup.c
+++ b/gobject/gsignalgroup.c
@@ -718,10 +718,15 @@ g_signal_group_connect_closure_ (GSignalGroup *self,
g_return_val_if_fail (G_IS_SIGNAL_GROUP (self), FALSE);
g_return_val_if_fail (detailed_signal != NULL, FALSE);
- g_return_val_if_fail (g_signal_parse_name (detailed_signal, self->target_type,
- &signal_id, &signal_detail, TRUE) != 0, FALSE);
g_return_val_if_fail (closure != NULL, FALSE);
+ if (!g_signal_parse_name (detailed_signal, self->target_type,
+ &signal_id, &signal_detail, TRUE))
+ {
+ g_critical ("Invalid signal name “%s”", detailed_signal);
+ return FALSE;
+ }
+
g_rec_mutex_lock (&self->mutex);
if (self->has_bound_at_least_once)
diff --git a/gobject/gsignalgroup.h b/gobject/gsignalgroup.h
index ec93bdd61..6aa151ca4 100644
--- a/gobject/gsignalgroup.h
+++ b/gobject/gsignalgroup.h
@@ -46,48 +46,48 @@ G_BEGIN_DECLS
*/
typedef struct _GSignalGroup GSignalGroup;
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
GType g_signal_group_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
GSignalGroup *g_signal_group_new (GType target_type);
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
void g_signal_group_set_target (GSignalGroup *self,
gpointer target);
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
gpointer g_signal_group_dup_target (GSignalGroup *self);
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
void g_signal_group_block (GSignalGroup *self);
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
void g_signal_group_unblock (GSignalGroup *self);
-GLIB_AVAILABLE_IN_2_74
+GOBJECT_AVAILABLE_IN_2_74
void g_signal_group_connect_closure (GSignalGroup *self,
const gchar *detailed_signal,
GClosure *closure,
gboolean after);
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
void g_signal_group_connect_object (GSignalGroup *self,
const gchar *detailed_signal,
GCallback c_handler,
gpointer object,
GConnectFlags flags);
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
void g_signal_group_connect_data (GSignalGroup *self,
const gchar *detailed_signal,
GCallback c_handler,
gpointer data,
GClosureNotify notify,
GConnectFlags flags);
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
void g_signal_group_connect (GSignalGroup *self,
const gchar *detailed_signal,
GCallback c_handler,
gpointer data);
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
void g_signal_group_connect_after (GSignalGroup *self,
const gchar *detailed_signal,
GCallback c_handler,
gpointer data);
-GLIB_AVAILABLE_IN_2_72
+GOBJECT_AVAILABLE_IN_2_72
void g_signal_group_connect_swapped (GSignalGroup *self,
const gchar *detailed_signal,
GCallback c_handler,
diff --git a/gobject/gsourceclosure.h b/gobject/gsourceclosure.h
index 9a1425250..d60916542 100644
--- a/gobject/gsourceclosure.h
+++ b/gobject/gsourceclosure.h
@@ -28,11 +28,11 @@
G_BEGIN_DECLS
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_source_set_closure (GSource *source,
GClosure *closure);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_source_set_dummy_callback (GSource *source);
G_END_DECLS
diff --git a/gobject/gtype.c b/gobject/gtype.c
index 177e44691..e2e0c3873 100644
--- a/gobject/gtype.c
+++ b/gobject/gtype.c
@@ -87,6 +87,20 @@
* be at least three characters long. There is no upper length limit. The first
* character must be a letter (a–z or A–Z) or an underscore (‘_’). Subsequent
* characters can be letters, numbers or any of ‘-_+’.
+ *
+ * # Runtime Debugging
+ *
+ * When `G_ENABLE_DEBUG` is defined during compilation, the GObject library
+ * supports an environment variable `GOBJECT_DEBUG` that can be set to a
+ * combination of flags to trigger debugging messages about
+ * object bookkeeping and signal emissions during runtime.
+ *
+ * The currently supported flags are:
+ * - `objects`: Tracks all #GObject instances in a global hash table called
+ * `debug_objects_ht`, and prints the still-alive objects on exit.
+ * - `instance-count`: Tracks the number of instances of every #GType and makes
+ * it available via the g_type_get_instance_count() function.
+ * - `signals`: Currently unused.
*/
@@ -145,7 +159,14 @@
G_TYPE_FLAG_INSTANTIATABLE | \
G_TYPE_FLAG_DERIVABLE | \
G_TYPE_FLAG_DEEP_DERIVABLE)
-#define TYPE_FLAG_MASK (G_TYPE_FLAG_ABSTRACT | G_TYPE_FLAG_VALUE_ABSTRACT | G_TYPE_FLAG_FINAL)
+#define TYPE_FLAG_MASK (G_TYPE_FLAG_ABSTRACT | G_TYPE_FLAG_VALUE_ABSTRACT | G_TYPE_FLAG_FINAL | G_TYPE_FLAG_DEPRECATED)
+
+/* List the flags that are directly accessible via the TypeNode struct flags */
+#define NODE_FLAG_MASK ( \
+ G_TYPE_FLAG_CLASSED | \
+ G_TYPE_FLAG_INSTANTIATABLE | \
+ G_TYPE_FLAG_FINAL)
+
#define SIZEOF_FUNDAMENTAL_INFO ((gssize) MAX (MAX (sizeof (GTypeFundamentalInfo), \
sizeof (gpointer)), \
sizeof (glong)))
@@ -233,7 +254,9 @@ struct _TypeNode
guint n_prerequisites : 9;
guint is_classed : 1;
guint is_instantiatable : 1;
+ guint is_final : 1;
guint mutatable_check_cache : 1; /* combines some common path checks */
+
GType *children; /* writable with lock */
TypeData *data;
GQuark qname;
@@ -347,7 +370,6 @@ struct _InstanceData
gpointer class;
guint16 instance_size;
guint16 private_size;
- guint16 n_preallocs;
GInstanceInitFunc instance_init;
};
@@ -715,26 +737,26 @@ check_plugin_U (GTypePlugin *plugin,
*/
if (!plugin)
{
- g_warning ("plugin handle for type '%s' is NULL",
- type_name);
+ g_critical ("plugin handle for type '%s' is NULL",
+ type_name);
return FALSE;
}
if (!G_IS_TYPE_PLUGIN (plugin))
{
- g_warning ("plugin pointer (%p) for type '%s' is invalid",
- plugin, type_name);
+ g_critical ("plugin pointer (%p) for type '%s' is invalid",
+ plugin, type_name);
return FALSE;
}
if (need_complete_type_info && !G_TYPE_PLUGIN_GET_CLASS (plugin)->complete_type_info)
{
- g_warning ("plugin for type '%s' has no complete_type_info() implementation",
- type_name);
+ g_critical ("plugin for type '%s' has no complete_type_info() implementation",
+ type_name);
return FALSE;
}
if (need_complete_interface_info && !G_TYPE_PLUGIN_GET_CLASS (plugin)->complete_interface_info)
{
- g_warning ("plugin for type '%s' has no complete_interface_info() implementation",
- type_name);
+ g_critical ("plugin for type '%s' has no complete_interface_info() implementation",
+ type_name);
return FALSE;
}
return TRUE;
@@ -749,7 +771,7 @@ check_type_name_I (const gchar *type_name)
if (!type_name[0] || !type_name[1] || !type_name[2])
{
- g_warning ("type name '%s' is too short", type_name);
+ g_critical ("type name '%s' is too short", type_name);
return FALSE;
}
/* check the first letter */
@@ -761,12 +783,12 @@ check_type_name_I (const gchar *type_name)
strchr (extra_chars, p[0]));
if (!name_valid)
{
- g_warning ("type name '%s' contains invalid characters", type_name);
+ g_critical ("type name '%s' contains invalid characters", type_name);
return FALSE;
}
if (g_type_from_name (type_name))
{
- g_warning ("cannot register existing type '%s'", type_name);
+ g_critical ("cannot register existing type '%s'", type_name);
return FALSE;
}
@@ -783,34 +805,34 @@ check_derivation_I (GType parent_type,
pnode = lookup_type_node_I (parent_type);
if (!pnode)
{
- g_warning ("cannot derive type '%s' from invalid parent type '%s'",
- type_name,
- type_descriptive_name_I (parent_type));
+ g_critical ("cannot derive type '%s' from invalid parent type '%s'",
+ type_name,
+ type_descriptive_name_I (parent_type));
+ return FALSE;
+ }
+ if (pnode->is_final)
+ {
+ g_critical ("cannot derive '%s' from final parent type '%s'",
+ type_name,
+ NODE_NAME (pnode));
return FALSE;
}
finfo = type_node_fundamental_info_I (pnode);
/* ensure flat derivability */
if (!(finfo->type_flags & G_TYPE_FLAG_DERIVABLE))
{
- g_warning ("cannot derive '%s' from non-derivable parent type '%s'",
- type_name,
- NODE_NAME (pnode));
+ g_critical ("cannot derive '%s' from non-derivable parent type '%s'",
+ type_name,
+ NODE_NAME (pnode));
return FALSE;
}
/* ensure deep derivability */
if (parent_type != NODE_FUNDAMENTAL_TYPE (pnode) &&
!(finfo->type_flags & G_TYPE_FLAG_DEEP_DERIVABLE))
{
- g_warning ("cannot derive '%s' from non-fundamental parent type '%s'",
- type_name,
- NODE_NAME (pnode));
- return FALSE;
- }
- if ((G_TYPE_FLAG_FINAL & GPOINTER_TO_UINT (type_get_qdata_L (pnode, static_quark_type_flags))) == G_TYPE_FLAG_FINAL)
- {
- g_warning ("cannot derive '%s' from final parent type '%s'",
- type_name,
- NODE_NAME (pnode));
+ g_critical ("cannot derive '%s' from non-fundamental parent type '%s'",
+ type_name,
+ NODE_NAME (pnode));
return FALSE;
}
@@ -843,8 +865,8 @@ check_value_table_I (const gchar *type_name,
value_table->value_peek_pointer ||
value_table->collect_format || value_table->collect_value ||
value_table->lcopy_format || value_table->lcopy_value)
- g_warning ("cannot handle uninitializable values of type '%s'",
- type_name);
+ g_critical ("cannot handle uninitializable values of type '%s'",
+ type_name);
return FALSE;
}
else /* value_table->value_init != NULL */
@@ -852,41 +874,41 @@ check_value_table_I (const gchar *type_name,
if (!value_table->value_free)
{
/* +++ optional +++
- * g_warning ("missing 'value_free()' for type '%s'", type_name);
+ * g_critical ("missing 'value_free()' for type '%s'", type_name);
* return FALSE;
*/
}
if (!value_table->value_copy)
{
- g_warning ("missing 'value_copy()' for type '%s'", type_name);
+ g_critical ("missing 'value_copy()' for type '%s'", type_name);
return FALSE;
}
if ((value_table->collect_format || value_table->collect_value) &&
(!value_table->collect_format || !value_table->collect_value))
{
- g_warning ("one of 'collect_format' and 'collect_value()' is unspecified for type '%s'",
- type_name);
+ g_critical ("one of 'collect_format' and 'collect_value()' is unspecified for type '%s'",
+ type_name);
return FALSE;
}
if (value_table->collect_format && !check_collect_format_I (value_table->collect_format))
{
- g_warning ("the '%s' specification for type '%s' is too long or invalid",
- "collect_format",
- type_name);
+ g_critical ("the '%s' specification for type '%s' is too long or invalid",
+ "collect_format",
+ type_name);
return FALSE;
}
if ((value_table->lcopy_format || value_table->lcopy_value) &&
(!value_table->lcopy_format || !value_table->lcopy_value))
{
- g_warning ("one of 'lcopy_format' and 'lcopy_value()' is unspecified for type '%s'",
- type_name);
+ g_critical ("one of 'lcopy_format' and 'lcopy_value()' is unspecified for type '%s'",
+ type_name);
return FALSE;
}
if (value_table->lcopy_format && !check_collect_format_I (value_table->lcopy_format))
{
- g_warning ("the '%s' specification for type '%s' is too long or invalid",
- "lcopy_format",
- type_name);
+ g_critical ("the '%s' specification for type '%s' is too long or invalid",
+ "lcopy_format",
+ type_name);
return FALSE;
}
}
@@ -906,15 +928,15 @@ check_type_info_I (TypeNode *pnode,
/* check instance members */
if (!(finfo->type_flags & G_TYPE_FLAG_INSTANTIATABLE) &&
- (info->instance_size || info->n_preallocs || info->instance_init))
+ (info->instance_size || info->instance_init))
{
if (pnode)
- g_warning ("cannot instantiate '%s', derived from non-instantiatable parent type '%s'",
- type_name,
- NODE_NAME (pnode));
+ g_critical ("cannot instantiate '%s', derived from non-instantiatable parent type '%s'",
+ type_name,
+ NODE_NAME (pnode));
else
- g_warning ("cannot instantiate '%s' as non-instantiatable fundamental",
- type_name);
+ g_critical ("cannot instantiate '%s' as non-instantiatable fundamental",
+ type_name);
return FALSE;
}
/* check class & interface members */
@@ -923,19 +945,19 @@ check_type_info_I (TypeNode *pnode,
info->class_size || info->base_init || info->base_finalize))
{
if (pnode)
- g_warning ("cannot create class for '%s', derived from non-classed parent type '%s'",
- type_name,
- NODE_NAME (pnode));
+ g_critical ("cannot create class for '%s', derived from non-classed parent type '%s'",
+ type_name,
+ NODE_NAME (pnode));
else
- g_warning ("cannot create class for '%s' as non-classed fundamental",
- type_name);
+ g_critical ("cannot create class for '%s' as non-classed fundamental",
+ type_name);
return FALSE;
}
/* check interface size */
if (is_interface && info->class_size < sizeof (GTypeInterface))
{
- g_warning ("specified interface size for type '%s' is smaller than 'GTypeInterface' size",
- type_name);
+ g_critical ("specified interface size for type '%s' is smaller than 'GTypeInterface' size",
+ type_name);
return FALSE;
}
/* check class size */
@@ -943,16 +965,16 @@ check_type_info_I (TypeNode *pnode,
{
if (info->class_size < sizeof (GTypeClass))
{
- g_warning ("specified class size for type '%s' is smaller than 'GTypeClass' size",
- type_name);
+ g_critical ("specified class size for type '%s' is smaller than 'GTypeClass' size",
+ type_name);
return FALSE;
}
if (pnode && info->class_size < pnode->data->class.class_size)
{
- g_warning ("specified class size for type '%s' is smaller "
- "than the parent type's '%s' class size",
- type_name,
- NODE_NAME (pnode));
+ g_critical ("specified class size for type '%s' is smaller "
+ "than the parent type's '%s' class size",
+ type_name,
+ NODE_NAME (pnode));
return FALSE;
}
}
@@ -961,16 +983,16 @@ check_type_info_I (TypeNode *pnode,
{
if (info->instance_size < sizeof (GTypeInstance))
{
- g_warning ("specified instance size for type '%s' is smaller than 'GTypeInstance' size",
- type_name);
+ g_critical ("specified instance size for type '%s' is smaller than 'GTypeInstance' size",
+ type_name);
return FALSE;
}
if (pnode && info->instance_size < pnode->data->instance.instance_size)
{
- g_warning ("specified instance size for type '%s' is smaller "
- "than the parent type's '%s' instance size",
- type_name,
- NODE_NAME (pnode));
+ g_critical ("specified instance size for type '%s' is smaller "
+ "than the parent type's '%s' instance size",
+ type_name,
+ NODE_NAME (pnode));
return FALSE;
}
}
@@ -1008,31 +1030,31 @@ check_add_interface_L (GType instance_type,
if (!node || !node->is_instantiatable)
{
- g_warning ("cannot add interfaces to invalid (non-instantiatable) type '%s'",
- type_descriptive_name_I (instance_type));
+ g_critical ("cannot add interfaces to invalid (non-instantiatable) type '%s'",
+ type_descriptive_name_I (instance_type));
return FALSE;
}
if (!iface || !NODE_IS_IFACE (iface))
{
- g_warning ("cannot add invalid (non-interface) type '%s' to type '%s'",
- type_descriptive_name_I (iface_type),
- NODE_NAME (node));
+ g_critical ("cannot add invalid (non-interface) type '%s' to type '%s'",
+ type_descriptive_name_I (iface_type),
+ NODE_NAME (node));
return FALSE;
}
if (node->data && node->data->class.class)
{
- g_warning ("attempting to add an interface (%s) to class (%s) after class_init",
- NODE_NAME (iface), NODE_NAME (node));
+ g_critical ("attempting to add an interface (%s) to class (%s) after class_init",
+ NODE_NAME (iface), NODE_NAME (node));
return FALSE;
}
tnode = lookup_type_node_I (NODE_PARENT_TYPE (iface));
if (NODE_PARENT_TYPE (tnode) && !type_lookup_iface_entry_L (node, tnode))
{
/* 2001/7/31:timj: erk, i guess this warning is junk as interface derivation is flat */
- g_warning ("cannot add sub-interface '%s' to type '%s' which does not conform to super-interface '%s'",
- NODE_NAME (iface),
- NODE_NAME (node),
- NODE_NAME (tnode));
+ g_critical ("cannot add sub-interface '%s' to type '%s' which does not conform to super-interface '%s'",
+ NODE_NAME (iface),
+ NODE_NAME (node),
+ NODE_NAME (tnode));
return FALSE;
}
/* allow overriding of interface type introduced for parent type */
@@ -1051,10 +1073,10 @@ check_add_interface_L (GType instance_type,
tnode = find_conforming_child_type_L (node, iface); /* tnode is_a node */
if (tnode)
{
- g_warning ("cannot add interface type '%s' to type '%s', since type '%s' already conforms to interface",
- NODE_NAME (iface),
- NODE_NAME (node),
- NODE_NAME (tnode));
+ g_critical ("cannot add interface type '%s' to type '%s', since type '%s' already conforms to interface",
+ NODE_NAME (iface),
+ NODE_NAME (node),
+ NODE_NAME (tnode));
return FALSE;
}
prerequisites = IFACE_NODE_PREREQUISITES (iface);
@@ -1063,10 +1085,10 @@ check_add_interface_L (GType instance_type,
tnode = lookup_type_node_I (prerequisites[i]);
if (!type_node_is_a_L (node, tnode))
{
- g_warning ("cannot add interface type '%s' to type '%s' which does not conform to prerequisite '%s'",
- NODE_NAME (iface),
- NODE_NAME (node),
- NODE_NAME (tnode));
+ g_critical ("cannot add interface type '%s' to type '%s' which does not conform to prerequisite '%s'",
+ NODE_NAME (iface),
+ NODE_NAME (node),
+ NODE_NAME (tnode));
return FALSE;
}
}
@@ -1080,9 +1102,9 @@ check_interface_info_I (TypeNode *iface,
{
if ((info->interface_finalize || info->interface_data) && !info->interface_init)
{
- g_warning ("interface type '%s' for type '%s' comes without initializer",
- NODE_NAME (iface),
- type_descriptive_name_I (instance_type));
+ g_critical ("interface type '%s' for type '%s' comes without initializer",
+ NODE_NAME (iface),
+ type_descriptive_name_I (instance_type));
return FALSE;
}
@@ -1149,7 +1171,6 @@ type_data_make_W (TypeNode *node,
data->instance.class_private_size = 0;
if (pnode)
data->instance.class_private_size = pnode->data->instance.class_private_size;
- data->instance.n_preallocs = MIN (info->n_preallocs, 1024);
data->instance.instance_init = info->instance_init;
}
else if (node->is_classed) /* only classed */
@@ -1584,9 +1605,9 @@ g_type_interface_add_prerequisite (GType interface_type,
prerequisite_node = lookup_type_node_I (prerequisite_type);
if (!iface || !prerequisite_node || !NODE_IS_IFACE (iface))
{
- g_warning ("interface type '%s' or prerequisite type '%s' invalid",
- type_descriptive_name_I (interface_type),
- type_descriptive_name_I (prerequisite_type));
+ g_critical ("interface type '%s' or prerequisite type '%s' invalid",
+ type_descriptive_name_I (interface_type),
+ type_descriptive_name_I (prerequisite_type));
return;
}
G_WRITE_LOCK (&type_rw_lock);
@@ -1594,10 +1615,10 @@ g_type_interface_add_prerequisite (GType interface_type,
if (holders)
{
G_WRITE_UNLOCK (&type_rw_lock);
- g_warning ("unable to add prerequisite '%s' to interface '%s' which is already in use for '%s'",
- type_descriptive_name_I (prerequisite_type),
- type_descriptive_name_I (interface_type),
- type_descriptive_name_I (holders->instance_type));
+ g_critical ("unable to add prerequisite '%s' to interface '%s' which is already in use for '%s'",
+ type_descriptive_name_I (prerequisite_type),
+ type_descriptive_name_I (interface_type),
+ type_descriptive_name_I (holders->instance_type));
return;
}
if (prerequisite_node->is_instantiatable)
@@ -1612,10 +1633,10 @@ g_type_interface_add_prerequisite (GType interface_type,
if (prnode->is_instantiatable)
{
G_WRITE_UNLOCK (&type_rw_lock);
- g_warning ("adding prerequisite '%s' to interface '%s' conflicts with existing prerequisite '%s'",
- type_descriptive_name_I (prerequisite_type),
- type_descriptive_name_I (interface_type),
- type_descriptive_name_I (NODE_TYPE (prnode)));
+ g_critical ("adding prerequisite '%s' to interface '%s' conflicts with existing prerequisite '%s'",
+ type_descriptive_name_I (prerequisite_type),
+ type_descriptive_name_I (interface_type),
+ type_descriptive_name_I (NODE_TYPE (prnode)));
return;
}
}
@@ -1638,9 +1659,9 @@ g_type_interface_add_prerequisite (GType interface_type,
else
{
G_WRITE_UNLOCK (&type_rw_lock);
- g_warning ("prerequisite '%s' for interface '%s' is neither instantiatable nor interface",
- type_descriptive_name_I (prerequisite_type),
- type_descriptive_name_I (interface_type));
+ g_critical ("prerequisite '%s' for interface '%s' is neither instantiatable nor interface",
+ type_descriptive_name_I (prerequisite_type),
+ type_descriptive_name_I (interface_type));
}
}
@@ -1824,6 +1845,47 @@ type_iface_blow_holder_info_Wm (TypeNode *iface,
}
}
+static void
+maybe_issue_deprecation_warning (GType type)
+{
+ static GHashTable *already_warned_table;
+ static const gchar *enable_diagnostic;
+ static GMutex already_warned_lock;
+ gboolean already;
+ const char *name;
+
+ if (g_once_init_enter (&enable_diagnostic))
+ {
+ const gchar *value = g_getenv ("G_ENABLE_DIAGNOSTIC");
+
+ if (!value)
+ value = "0";
+
+ g_once_init_leave (&enable_diagnostic, value);
+ }
+
+ if (enable_diagnostic[0] == '0')
+ return;
+
+ g_mutex_lock (&already_warned_lock);
+
+ if (already_warned_table == NULL)
+ already_warned_table = g_hash_table_new (NULL, NULL);
+
+ name = g_type_name (type);
+
+ already = g_hash_table_contains (already_warned_table, (gpointer) name);
+ if (!already)
+ g_hash_table_add (already_warned_table, (gpointer) name);
+
+ g_mutex_unlock (&already_warned_lock);
+
+ if (!already)
+ g_warning ("The type %s is deprecated and shouldn’t be used "
+ "any more. It may be removed in a future version.",
+ name);
+}
+
/**
* g_type_create_instance: (skip)
* @type: an instantiatable type to create an instance for
@@ -1871,7 +1933,11 @@ g_type_create_instance (GType type)
g_error ("cannot create instance of abstract (non-instantiatable) type '%s'",
type_descriptive_name_I (type));
}
-
+ if (G_UNLIKELY (G_TYPE_IS_DEPRECATED (type)))
+ {
+ maybe_issue_deprecation_warning (type);
+ }
+
class = g_type_class_ref (type);
/* We allocate the 'private' areas before the normal instance data, in
@@ -1900,7 +1966,7 @@ g_type_create_instance (GType type)
private_size += ALIGN_STRUCT (1);
/* Allocate one extra pointer size... */
- allocated = g_slice_alloc0 (private_size + ivar_size + sizeof (gpointer));
+ allocated = g_malloc0 (private_size + ivar_size + sizeof (gpointer));
/* ... and point it back to the start of the private data. */
*(gpointer *) (allocated + private_size + ivar_size) = allocated + ALIGN_STRUCT (1);
@@ -1910,7 +1976,7 @@ g_type_create_instance (GType type)
}
else
#endif
- allocated = g_slice_alloc0 (private_size + ivar_size);
+ allocated = g_malloc0 (private_size + ivar_size);
instance = (GTypeInstance *) (allocated + private_size);
@@ -1967,15 +2033,15 @@ g_type_free_instance (GTypeInstance *instance)
node = lookup_type_node_I (class->g_type);
if (G_UNLIKELY (!node || !node->is_instantiatable || !node->data || node->data->class.class != (gpointer) class))
{
- g_warning ("cannot free instance of invalid (non-instantiatable) type '%s'",
- type_descriptive_name_I (class->g_type));
+ g_critical ("cannot free instance of invalid (non-instantiatable) type '%s'",
+ type_descriptive_name_I (class->g_type));
return;
}
/* G_TYPE_IS_ABSTRACT() is an external call: _U */
if (G_UNLIKELY (!node->mutatable_check_cache && G_TYPE_IS_ABSTRACT (NODE_TYPE (node))))
{
- g_warning ("cannot free instance of abstract (non-instantiatable) type '%s'",
- NODE_NAME (node));
+ g_critical ("cannot free instance of abstract (non-instantiatable) type '%s'",
+ NODE_NAME (node));
return;
}
@@ -2000,14 +2066,14 @@ g_type_free_instance (GTypeInstance *instance)
/* Clear out the extra pointer... */
*(gpointer *) (allocated + private_size + ivar_size) = NULL;
/* ... and ensure we include it in the size we free. */
- g_slice_free1 (private_size + ivar_size + sizeof (gpointer), allocated);
+ g_free_sized (allocated, private_size + ivar_size + sizeof (gpointer));
VALGRIND_FREELIKE_BLOCK (allocated + ALIGN_STRUCT (1), 0);
VALGRIND_FREELIKE_BLOCK (instance, 0);
}
else
#endif
- g_slice_free1 (private_size + ivar_size, allocated);
+ g_free_sized (allocated, private_size + ivar_size);
#ifdef G_ENABLE_DEBUG
IF_DEBUG (INSTANCE_COUNT)
@@ -2397,8 +2463,8 @@ type_data_last_unref_Wm (TypeNode *node,
if (!node->data || NODE_REFCOUNT (node) == 0)
{
- g_warning ("cannot drop last reference to unreferenced type '%s'",
- NODE_NAME (node));
+ g_critical ("cannot drop last reference to unreferenced type '%s'",
+ NODE_NAME (node));
return;
}
@@ -2496,8 +2562,8 @@ type_data_unref_U (TypeNode *node,
{
if (!node->plugin)
{
- g_warning ("static type '%s' unreferenced too often",
- NODE_NAME (node));
+ g_critical ("static type '%s' unreferenced too often",
+ NODE_NAME (node));
return;
}
else
@@ -2584,8 +2650,8 @@ g_type_remove_class_cache_func (gpointer cache_data,
G_WRITE_UNLOCK (&type_rw_lock);
if (!found_it)
- g_warning (G_STRLOC ": cannot remove unregistered class cache func %p with data %p",
- cache_func, cache_data);
+ g_critical (G_STRLOC ": cannot remove unregistered class cache func %p with data %p",
+ cache_func, cache_data);
}
@@ -2658,8 +2724,8 @@ g_type_remove_interface_check (gpointer check_data,
G_WRITE_UNLOCK (&type_rw_lock);
if (!found_it)
- g_warning (G_STRLOC ": cannot remove unregistered class check func %p with data %p",
- check_func, check_data);
+ g_critical (G_STRLOC ": cannot remove unregistered class check func %p with data %p",
+ check_func, check_data);
}
/* --- type registration --- */
@@ -2701,23 +2767,23 @@ g_type_register_fundamental (GType type_id,
if ((type_id & TYPE_ID_MASK) ||
type_id > G_TYPE_FUNDAMENTAL_MAX)
{
- g_warning ("attempt to register fundamental type '%s' with invalid type id (%" G_GSIZE_FORMAT ")",
- type_name,
- type_id);
+ g_critical ("attempt to register fundamental type '%s' with invalid type id (%" G_GSIZE_FORMAT ")",
+ type_name,
+ type_id);
return 0;
}
if ((finfo->type_flags & G_TYPE_FLAG_INSTANTIATABLE) &&
!(finfo->type_flags & G_TYPE_FLAG_CLASSED))
{
- g_warning ("cannot register instantiatable fundamental type '%s' as non-classed",
- type_name);
+ g_critical ("cannot register instantiatable fundamental type '%s' as non-classed",
+ type_name);
return 0;
}
if (lookup_type_node_I (type_id))
{
- g_warning ("cannot register existing fundamental type '%s' (as '%s')",
- type_descriptive_name_I (type_id),
- type_name);
+ g_critical ("cannot register existing fundamental type '%s' (as '%s')",
+ type_descriptive_name_I (type_id),
+ type_name);
return 0;
}
@@ -2817,8 +2883,8 @@ g_type_register_static (GType parent_type,
return 0;
if (info->class_finalize)
{
- g_warning ("class finalizer specified for static type '%s'",
- type_name);
+ g_critical ("class finalizer specified for static type '%s'",
+ type_name);
return 0;
}
@@ -2980,8 +3046,8 @@ g_type_class_ref (GType type)
node = lookup_type_node_I (type);
if (!node || !node->is_classed)
{
- g_warning ("cannot retrieve class for invalid (unclassed) type '%s'",
- type_descriptive_name_I (type));
+ g_critical ("cannot retrieve class for invalid (unclassed) type '%s'",
+ type_descriptive_name_I (type));
return NULL;
}
@@ -3044,8 +3110,8 @@ g_type_class_unref (gpointer g_class)
if (node && node->is_classed && NODE_REFCOUNT (node))
type_data_unref_U (node, FALSE);
else
- g_warning ("cannot unreference class of invalid (unclassed) type '%s'",
- type_descriptive_name_I (class->g_type));
+ g_critical ("cannot unreference class of invalid (unclassed) type '%s'",
+ type_descriptive_name_I (class->g_type));
}
/**
@@ -3069,8 +3135,8 @@ g_type_class_unref_uncached (gpointer g_class)
if (node && node->is_classed && NODE_REFCOUNT (node))
type_data_unref_U (node, TRUE);
else
- g_warning ("cannot unreference class of invalid (unclassed) type '%s'",
- type_descriptive_name_I (class->g_type));
+ g_critical ("cannot unreference class of invalid (unclassed) type '%s'",
+ type_descriptive_name_I (class->g_type));
}
/**
@@ -3174,7 +3240,7 @@ g_type_class_peek_parent (gpointer g_class)
class = node->data->class.class;
}
else if (NODE_PARENT_TYPE (node))
- g_warning (G_STRLOC ": invalid class pointer '%p'", g_class);
+ g_critical (G_STRLOC ": invalid class pointer '%p'", g_class);
return class;
}
@@ -3207,7 +3273,7 @@ g_type_interface_peek (gpointer instance_class,
if (node && node->is_instantiatable && iface)
type_lookup_iface_vtable_I (node, iface, &vtable);
else
- g_warning (G_STRLOC ": invalid class pointer '%p'", class);
+ g_critical (G_STRLOC ": invalid class pointer '%p'", class);
return vtable;
}
@@ -3243,7 +3309,7 @@ g_type_interface_peek_parent (gpointer g_iface)
if (node && node->is_instantiatable && iface)
type_lookup_iface_vtable_I (node, iface, &vtable);
else if (node)
- g_warning (G_STRLOC ": invalid interface pointer '%p'", g_iface);
+ g_critical (G_STRLOC ": invalid interface pointer '%p'", g_iface);
return vtable;
}
@@ -3282,8 +3348,8 @@ g_type_default_interface_ref (GType g_type)
(node->data && NODE_REFCOUNT (node) == 0))
{
G_WRITE_UNLOCK (&type_rw_lock);
- g_warning ("cannot retrieve default vtable for invalid or non-interface type '%s'",
- type_descriptive_name_I (g_type));
+ g_critical ("cannot retrieve default vtable for invalid or non-interface type '%s'",
+ type_descriptive_name_I (g_type));
return NULL;
}
@@ -3359,8 +3425,8 @@ g_type_default_interface_unref (gpointer g_iface)
if (node && NODE_IS_IFACE (node))
type_data_unref_U (node, FALSE);
else
- g_warning ("cannot unreference invalid interface default vtable for '%s'",
- type_descriptive_name_I (vtable->g_type));
+ g_critical ("cannot unreference invalid interface default vtable for '%s'",
+ type_descriptive_name_I (vtable->g_type));
}
/**
@@ -3373,7 +3439,7 @@ g_type_default_interface_unref (gpointer g_iface)
* other validly registered type ID, but randomized type IDs should
* not be passed in and will most likely lead to a crash.
*
- * Returns: static type name or %NULL
+ * Returns: (nullable): static type name or %NULL
*/
const gchar *
g_type_name (GType type)
@@ -3848,10 +3914,12 @@ type_add_flags_W (TypeNode *node,
g_return_if_fail (node != NULL);
if ((flags & TYPE_FLAG_MASK) && node->is_classed && node->data && node->data->class.class)
- g_warning ("tagging type '%s' as abstract after class initialization", NODE_NAME (node));
+ g_critical ("tagging type '%s' as abstract after class initialization", NODE_NAME (node));
dflags = GPOINTER_TO_UINT (type_get_qdata_L (node, static_quark_type_flags));
dflags |= flags;
type_set_qdata_W (node, static_quark_type_flags, GUINT_TO_POINTER (dflags));
+
+ node->is_final = (flags & G_TYPE_FLAG_FINAL) != 0;
}
/**
@@ -3861,11 +3929,15 @@ type_add_flags_W (TypeNode *node,
* filled in with constant values upon success
*
* Queries the type system for information about a specific type.
+ *
* This function will fill in a user-provided structure to hold
* type-specific information. If an invalid #GType is passed in, the
* @type member of the #GTypeQuery is 0. All members filled into the
* #GTypeQuery structure should be considered constant and have to be
* left untouched.
+ *
+ * Since GLib 2.78, this function allows queries on dynamic types. Previously
+ * it only supported static types.
*/
void
g_type_query (GType type,
@@ -3875,10 +3947,10 @@ g_type_query (GType type,
g_return_if_fail (query != NULL);
- /* if node is not static and classed, we won't allow query */
+ /* if node is not classed, we won't allow query */
query->type = 0;
node = lookup_type_node_I (type);
- if (node && node->is_classed && !node->plugin)
+ if (node && node->is_classed)
{
/* type is classed and probably even instantiatable */
G_READ_LOCK (&type_rw_lock);
@@ -3899,8 +3971,8 @@ g_type_query (GType type,
*
* Returns the number of instances allocated of the particular type;
* this is only available if GLib is built with debugging support and
- * the instance_count debug flag is set (by setting the GOBJECT_DEBUG
- * variable to include instance-count).
+ * the `instance-count` debug flag is set (by setting the `GOBJECT_DEBUG`
+ * variable to include `instance-count`).
*
* Returns: the number of instances allocated of the given type;
* if instance counts are not available, returns 0.
@@ -3933,6 +4005,20 @@ g_type_test_flags (GType type,
node = lookup_type_node_I (type);
if (node)
{
+ if ((flags & ~NODE_FLAG_MASK) == 0)
+ {
+ if (flags & G_TYPE_FLAG_CLASSED)
+ result |= node->is_classed;
+
+ if (flags & G_TYPE_FLAG_INSTANTIATABLE)
+ result |= node->is_instantiatable;
+
+ if (flags & G_TYPE_FLAG_FINAL)
+ result |= node->is_final;
+
+ return result;
+ }
+
guint fflags = flags & TYPE_FUNDAMENTAL_FLAG_MASK;
guint tflags = flags & TYPE_FLAG_MASK;
@@ -4023,7 +4109,7 @@ g_type_interface_get_plugin (GType instance_type,
g_return_val_if_fail (node == NULL, NULL);
g_return_val_if_fail (iface == NULL, NULL);
- g_warning (G_STRLOC ": attempt to look up plugin for invalid instance/interface type pair.");
+ g_critical (G_STRLOC ": attempt to look up plugin for invalid instance/interface type pair.");
return NULL;
}
@@ -4077,9 +4163,12 @@ g_type_check_instance_is_a (GTypeInstance *type_instance,
if (!type_instance || !type_instance->g_class)
return FALSE;
-
- node = lookup_type_node_I (type_instance->g_class->g_type);
+
iface = lookup_type_node_I (iface_type);
+ if (iface && iface->is_final)
+ return type_instance->g_class->g_type == iface_type;
+
+ node = lookup_type_node_I (type_instance->g_class->g_type);
check = node && node->is_instantiatable && iface && type_node_conforms_to_U (node, iface, TRUE, FALSE);
return check;
@@ -4132,17 +4221,17 @@ g_type_check_instance_cast (GTypeInstance *type_instance,
return type_instance;
if (is_instantiatable)
- g_warning ("invalid cast from '%s' to '%s'",
- type_descriptive_name_I (type_instance->g_class->g_type),
- type_descriptive_name_I (iface_type));
+ g_critical ("invalid cast from '%s' to '%s'",
+ type_descriptive_name_I (type_instance->g_class->g_type),
+ type_descriptive_name_I (iface_type));
else
- g_warning ("invalid uninstantiatable type '%s' in cast to '%s'",
- type_descriptive_name_I (type_instance->g_class->g_type),
- type_descriptive_name_I (iface_type));
+ g_critical ("invalid uninstantiatable type '%s' in cast to '%s'",
+ type_descriptive_name_I (type_instance->g_class->g_type),
+ type_descriptive_name_I (iface_type));
}
else
- g_warning ("invalid unclassed pointer in cast to '%s'",
- type_descriptive_name_I (iface_type));
+ g_critical ("invalid unclassed pointer in cast to '%s'",
+ type_descriptive_name_I (iface_type));
}
return type_instance;
@@ -4165,17 +4254,17 @@ g_type_check_class_cast (GTypeClass *type_class,
return type_class;
if (is_classed)
- g_warning ("invalid class cast from '%s' to '%s'",
- type_descriptive_name_I (type_class->g_type),
- type_descriptive_name_I (is_a_type));
+ g_critical ("invalid class cast from '%s' to '%s'",
+ type_descriptive_name_I (type_class->g_type),
+ type_descriptive_name_I (is_a_type));
else
- g_warning ("invalid unclassed type '%s' in class cast to '%s'",
- type_descriptive_name_I (type_class->g_type),
- type_descriptive_name_I (is_a_type));
+ g_critical ("invalid unclassed type '%s' in class cast to '%s'",
+ type_descriptive_name_I (type_class->g_type),
+ type_descriptive_name_I (is_a_type));
}
else
- g_warning ("invalid class cast from (NULL) pointer to '%s'",
- type_descriptive_name_I (is_a_type));
+ g_critical ("invalid class cast from (NULL) pointer to '%s'",
+ type_descriptive_name_I (is_a_type));
return type_class;
}
@@ -4203,14 +4292,14 @@ g_type_check_instance (GTypeInstance *type_instance)
if (node && node->is_instantiatable)
return TRUE;
- g_warning ("instance of invalid non-instantiatable type '%s'",
- type_descriptive_name_I (type_instance->g_class->g_type));
+ g_critical ("instance of invalid non-instantiatable type '%s'",
+ type_descriptive_name_I (type_instance->g_class->g_type));
}
else
- g_warning ("instance with invalid (NULL) class pointer");
+ g_critical ("instance with invalid (NULL) class pointer");
}
else
- g_warning ("invalid (NULL) pointer instance");
+ g_critical ("invalid (NULL) pointer instance");
return FALSE;
}
@@ -4332,10 +4421,10 @@ g_type_value_table_peek (GType type)
return vtable;
if (!node)
- g_warning (G_STRLOC ": type id '%" G_GSIZE_FORMAT "' is invalid", type);
+ g_critical (G_STRLOC ": type id '%" G_GSIZE_FORMAT "' is invalid", type);
if (!has_refed_data)
- g_warning ("can't peek value table for type '%s' which is not currently referenced",
- type_descriptive_name_I (type));
+ g_critical ("can't peek value table for type '%s' which is not currently referenced",
+ type_descriptive_name_I (type));
return NULL;
}
@@ -4397,7 +4486,7 @@ _g_type_boxed_init (GType type,
* flags. Since GLib 2.36, the type system is initialised automatically
* and this function does nothing.
*
- * If you need to enable debugging features, use the GOBJECT_DEBUG
+ * If you need to enable debugging features, use the `GOBJECT_DEBUG`
* environment variable.
*
* Deprecated: 2.36: the type system is now initialised automatically
@@ -4699,8 +4788,8 @@ g_type_class_add_private (gpointer g_class,
if (!node || !node->is_instantiatable || !node->data || node->data->class.class != g_class)
{
- g_warning ("cannot add private field to invalid (non-instantiatable) type '%s'",
- type_descriptive_name_I (instance_type));
+ g_critical ("cannot add private field to invalid (non-instantiatable) type '%s'",
+ type_descriptive_name_I (instance_type));
return;
}
@@ -4709,7 +4798,7 @@ g_type_class_add_private (gpointer g_class,
TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
if (node->data->instance.private_size != pnode->data->instance.private_size)
{
- g_warning ("g_type_class_add_private() called multiple times for the same type");
+ g_critical ("g_type_class_add_private() called multiple times for the same type");
return;
}
}
@@ -4735,15 +4824,15 @@ g_type_add_instance_private (GType class_gtype,
if (!node || !node->is_classed || !node->is_instantiatable || !node->data)
{
- g_warning ("cannot add private field to invalid (non-instantiatable) type '%s'",
- type_descriptive_name_I (class_gtype));
+ g_critical ("cannot add private field to invalid (non-instantiatable) type '%s'",
+ type_descriptive_name_I (class_gtype));
return 0;
}
if (node->plugin != NULL)
{
- g_warning ("cannot use g_type_add_instance_private() with dynamic type '%s'",
- type_descriptive_name_I (class_gtype));
+ g_critical ("cannot use g_type_add_instance_private() with dynamic type '%s'",
+ type_descriptive_name_I (class_gtype));
return 0;
}
@@ -4762,7 +4851,7 @@ g_type_add_instance_private (GType class_gtype,
* hide it behind a macro. the function will return the private size, instead
* of the offset, which will be stored inside a static variable defined by
* the G_DEFINE_TYPE_EXTENDED() macro. the G_DEFINE_TYPE_EXTENDED() macro will
- * check the variable and call g_type_class_add_instance_private(), which
+ * check the variable and call g_type_class_adjust_private_offset(), which
* will use the data size and actually register the private data, then
* return the computed offset of the private data, which will be stored
* inside the static variable, so we can use it to retrieve the pointer
@@ -4771,7 +4860,7 @@ g_type_add_instance_private (GType class_gtype,
* once all our code has been migrated to the new idiomatic form of private
* data registration, we will change the g_type_add_instance_private()
* function to actually perform the registration and return the offset
- * of the private data; g_type_class_add_instance_private() already checks
+ * of the private data; g_type_class_adjust_private_offset() already checks
* if the passed argument is negative (meaning that it's an offset in the
* GTypeInstance allocation) and becomes a no-op if that's the case. this
* should make the migration fully transparent even if we're effectively
@@ -4802,8 +4891,8 @@ g_type_class_adjust_private_offset (gpointer g_class,
if (!node || !node->is_classed || !node->is_instantiatable || !node->data)
{
- g_warning ("cannot add private field to invalid (non-instantiatable) type '%s'",
- type_descriptive_name_I (class_gtype));
+ g_critical ("cannot add private field to invalid (non-instantiatable) type '%s'",
+ type_descriptive_name_I (class_gtype));
*private_size_or_offset = 0;
return;
}
@@ -4813,7 +4902,7 @@ g_type_class_adjust_private_offset (gpointer g_class,
TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
if (node->data->instance.private_size != pnode->data->instance.private_size)
{
- g_warning ("g_type_add_instance_private() called multiple times for the same type");
+ g_critical ("g_type_add_instance_private() called multiple times for the same type");
*private_size_or_offset = 0;
return;
}
@@ -4841,8 +4930,8 @@ g_type_instance_get_private (GTypeInstance *instance,
node = lookup_type_node_I (private_type);
if (G_UNLIKELY (!node || !node->is_instantiatable))
{
- g_warning ("instance of invalid non-instantiatable type '%s'",
- type_descriptive_name_I (instance->g_class->g_type));
+ g_critical ("instance of invalid non-instantiatable type '%s'",
+ type_descriptive_name_I (instance->g_class->g_type));
return NULL;
}
@@ -4926,8 +5015,8 @@ g_type_add_class_private (GType class_type,
if (!node || !node->is_classed || !node->data)
{
- g_warning ("cannot add class private field to invalid type '%s'",
- type_descriptive_name_I (class_type));
+ g_critical ("cannot add class private field to invalid type '%s'",
+ type_descriptive_name_I (class_type));
return;
}
@@ -4936,7 +5025,7 @@ g_type_add_class_private (GType class_type,
TypeNode *pnode = lookup_type_node_I (NODE_PARENT_TYPE (node));
if (node->data->class.class_private_size != pnode->data->class.class_private_size)
{
- g_warning ("g_type_add_class_private() called multiple times for the same type");
+ g_critical ("g_type_add_class_private() called multiple times for the same type");
return;
}
}
@@ -4963,16 +5052,16 @@ g_type_class_get_private (GTypeClass *klass,
class_node = lookup_type_node_I (klass->g_type);
if (G_UNLIKELY (!class_node || !class_node->is_classed))
{
- g_warning ("class of invalid type '%s'",
- type_descriptive_name_I (klass->g_type));
+ g_critical ("class of invalid type '%s'",
+ type_descriptive_name_I (klass->g_type));
return NULL;
}
private_node = lookup_type_node_I (private_type);
if (G_UNLIKELY (!private_node || !NODE_IS_ANCESTOR (private_node, class_node)))
{
- g_warning ("attempt to retrieve private data for invalid type '%s'",
- type_descriptive_name_I (private_type));
+ g_critical ("attempt to retrieve private data for invalid type '%s'",
+ type_descriptive_name_I (private_type));
return NULL;
}
@@ -4985,7 +5074,7 @@ g_type_class_get_private (GTypeClass *klass,
if (G_UNLIKELY (private_node->data->class.class_private_size == parent_node->data->class.class_private_size))
{
- g_warning ("g_type_instance_get_class_private() requires a prior call to g_type_add_class_private()");
+ g_critical ("g_type_instance_get_class_private() requires a prior call to g_type_add_class_private()");
return NULL;
}
diff --git a/gobject/gtype.h b/gobject/gtype.h
index 3f2afb31e..b02121a3b 100644
--- a/gobject/gtype.h
+++ b/gobject/gtype.h
@@ -23,7 +23,8 @@
#error "Only <glib-object.h> can be included directly."
#endif
-#include <glib.h>
+#include <glib.h>
+#include <gobject/gobject-visibility.h>
G_BEGIN_DECLS
@@ -40,7 +41,13 @@ G_BEGIN_DECLS
*/
#define G_TYPE_FUNDAMENTAL(type) (g_type_fundamental (type))
/**
- * G_TYPE_FUNDAMENTAL_MAX:
+ * G_TYPE_FUNDAMENTAL_SHIFT:
+ *
+ * Shift value used in converting numbers to type IDs.
+ */
+#define G_TYPE_FUNDAMENTAL_SHIFT (2)
+/**
+ * G_TYPE_FUNDAMENTAL_MAX: (value 1020)
*
* An integer constant that represents the number of identifiers reserved
* for types that are assigned at compile-time.
@@ -207,12 +214,6 @@ G_BEGIN_DECLS
* reservations.
*/
/**
- * G_TYPE_FUNDAMENTAL_SHIFT:
- *
- * Shift value used in converting numbers to type IDs.
- */
-#define G_TYPE_FUNDAMENTAL_SHIFT (2)
-/**
* G_TYPE_MAKE_FUNDAMENTAL:
* @x: the fundamental type number.
*
@@ -267,7 +268,7 @@ G_BEGIN_DECLS
*
* Checks if @type is a fundamental type.
*
- * Returns: %TRUE on success
+ * Returns: %TRUE is @type is fundamental
*/
#define G_TYPE_IS_FUNDAMENTAL(type) ((type) <= G_TYPE_FUNDAMENTAL_MAX)
/**
@@ -278,7 +279,7 @@ G_BEGIN_DECLS
* inherited) from another type (this holds true for all non-fundamental
* types).
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @type is derived
*/
#define G_TYPE_IS_DERIVED(type) ((type) > G_TYPE_FUNDAMENTAL_MAX)
/**
@@ -294,7 +295,7 @@ G_BEGIN_DECLS
* with the difference that GType interfaces are not derivable (but see
* g_type_interface_add_prerequisite() for an alternative).
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @type is an interface
*/
#define G_TYPE_IS_INTERFACE(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_INTERFACE)
/**
@@ -303,7 +304,16 @@ G_BEGIN_DECLS
*
* Checks if @type is a classed type.
*
- * Returns: %TRUE on success
+ * A classed type has an associated #GTypeClass which can be derived to store
+ * class-wide virtual function pointers and data for all instances of the type.
+ * This allows for subclassing. All #GObjects are classed; none of the scalar
+ * fundamental types built into GLib are classed.
+ *
+ * Interfaces are not classed: while their #GTypeInterface struct could be
+ * considered similar to #GTypeClass, and classes can derive interfaces,
+ * #GTypeInterface doesn’t allow for subclassing.
+ *
+ * Returns: %TRUE if @type is classed
*/
#define G_TYPE_IS_CLASSED(type) (g_type_test_flags ((type), G_TYPE_FLAG_CLASSED))
/**
@@ -313,7 +323,7 @@ G_BEGIN_DECLS
* Checks if @type can be instantiated. Instantiation is the
* process of creating an instance (object) of this type.
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @type is instantiatable
*/
#define G_TYPE_IS_INSTANTIATABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_INSTANTIATABLE))
/**
@@ -323,7 +333,7 @@ G_BEGIN_DECLS
* Checks if @type is a derivable type. A derivable type can
* be used as the base class of a flat (single-level) class hierarchy.
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @type is derivable
*/
#define G_TYPE_IS_DERIVABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_DERIVABLE))
/**
@@ -333,7 +343,7 @@ G_BEGIN_DECLS
* Checks if @type is a deep derivable type. A deep derivable type
* can be used as the base class of a deep (multi-level) class hierarchy.
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @type is deep derivable
*/
#define G_TYPE_IS_DEEP_DERIVABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_DEEP_DERIVABLE))
/**
@@ -344,7 +354,7 @@ G_BEGIN_DECLS
* instantiated and is normally used as an abstract base class for
* derived classes.
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @type is abstract
*/
#define G_TYPE_IS_ABSTRACT(type) (g_type_test_flags ((type), G_TYPE_FLAG_ABSTRACT))
/**
@@ -355,7 +365,7 @@ G_BEGIN_DECLS
* a value table, but can't be used for g_value_init() and is normally used as
* an abstract base type for derived value types.
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @type is an abstract value type
*/
#define G_TYPE_IS_VALUE_ABSTRACT(type) (g_type_test_flags ((type), G_TYPE_FLAG_VALUE_ABSTRACT))
/**
@@ -364,7 +374,7 @@ G_BEGIN_DECLS
*
* Checks if @type is a value type and can be used with g_value_init().
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @type is a value type
*/
#define G_TYPE_IS_VALUE_TYPE(type) (g_type_check_is_value_type (type))
/**
@@ -373,7 +383,7 @@ G_BEGIN_DECLS
*
* Checks if @type has a #GTypeValueTable.
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @type has a value table
*/
#define G_TYPE_HAS_VALUE_TABLE(type) (g_type_value_table_peek (type) != NULL)
/**
@@ -383,11 +393,24 @@ G_BEGIN_DECLS
* Checks if @type is a final type. A final type cannot be derived any
* further.
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @type is final
*
* Since: 2.70
*/
-#define G_TYPE_IS_FINAL(type) (g_type_test_flags ((type), G_TYPE_FLAG_FINAL)) GLIB_AVAILABLE_MACRO_IN_2_70
+#define G_TYPE_IS_FINAL(type) (g_type_test_flags ((type), G_TYPE_FLAG_FINAL)) GOBJECT_AVAILABLE_MACRO_IN_2_70
+
+/**
+ * G_TYPE_IS_DEPRECATED:
+ * @type: a #GType value
+ *
+ * Checks if @type is deprecated. Instantiating a deprecated type will
+ * trigger a warning if running with `G_ENABLE_DIAGNOSTIC=1`.
+ *
+ * Returns: %TRUE if the type is deprecated
+ *
+ * Since: 2.76
+ */
+#define G_TYPE_IS_DEPRECATED(type) (g_type_test_flags ((type), G_TYPE_FLAG_DEPRECATED)) GOBJECT_AVAILABLE_MACRO_IN_2_76
/* Typedefs
@@ -398,7 +421,7 @@ G_BEGIN_DECLS
* A numerical value which represents the unique identifier of a registered
* type.
*/
-#if GLIB_SIZEOF_SIZE_T != GLIB_SIZEOF_LONG || !defined __cplusplus
+#if GLIB_SIZEOF_SIZE_T != GLIB_SIZEOF_LONG || !defined (G_CXX_STD_VERSION)
typedef gsize GType;
#else /* for historic reasons, C++ links against gulong GTypes */
typedef gulong GType;
@@ -483,7 +506,7 @@ struct _GTypeQuery
*
* This macro should only be used in type implementations.
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @instance is valid
*/
#define G_TYPE_CHECK_INSTANCE(instance) (_G_TYPE_CHI ((GTypeInstance*) (instance)))
/**
@@ -511,7 +534,7 @@ struct _GTypeQuery
*
* This macro should only be used in type implementations.
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @instance is an instance of @g_type
*/
#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type) (_G_TYPE_CIT ((instance), (g_type)))
/**
@@ -524,7 +547,7 @@ struct _GTypeQuery
*
* This macro should only be used in type implementations.
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @instance is an instance of @g_type
*/
#define G_TYPE_CHECK_INSTANCE_FUNDAMENTAL_TYPE(instance, g_type) (_G_TYPE_CIFT ((instance), (g_type)))
/**
@@ -580,7 +603,7 @@ struct _GTypeQuery
*
* This macro should only be used in type implementations.
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @g_class is a class structure of @g_type
*/
#define G_TYPE_CHECK_CLASS_TYPE(g_class, g_type) (_G_TYPE_CCT ((g_class), (g_type)))
/**
@@ -592,7 +615,7 @@ struct _GTypeQuery
*
* This macro should only be used in type implementations.
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @value is initialized
*/
#define G_TYPE_CHECK_VALUE(value) (_G_TYPE_CHV ((value)))
/**
@@ -605,7 +628,7 @@ struct _GTypeQuery
*
* This macro should only be used in type implementations.
*
- * Returns: %TRUE on success
+ * Returns: %TRUE if @value has been initialized to hold values of type @g_type
*/
#define G_TYPE_CHECK_VALUE_TYPE(value, g_type) (_G_TYPE_CVH ((value), (g_type)))
/**
@@ -660,7 +683,7 @@ struct _GTypeQuery
* `your_type_get_instance_private()` function instead
* Returns: (not nullable): a pointer to the private data structure
*/
-#define G_TYPE_INSTANCE_GET_PRIVATE(instance, g_type, c_type) ((c_type*) g_type_instance_get_private ((GTypeInstance*) (instance), (g_type))) GLIB_DEPRECATED_MACRO_IN_2_58_FOR(G_ADD_PRIVATE)
+#define G_TYPE_INSTANCE_GET_PRIVATE(instance, g_type, c_type) ((c_type*) g_type_instance_get_private ((GTypeInstance*) (instance), (g_type))) GOBJECT_DEPRECATED_MACRO_IN_2_58_FOR(G_ADD_PRIVATE)
/**
* G_TYPE_CLASS_GET_PRIVATE:
@@ -691,7 +714,7 @@ struct _GTypeQuery
* These flags used to be passed to g_type_init_with_debug_flags() which
* is now deprecated.
*
- * If you need to enable debugging features, use the GOBJECT_DEBUG
+ * If you need to enable debugging features, use the `GOBJECT_DEBUG`
* environment variable.
*
* Deprecated: 2.36: g_type_init() is now done automatically
@@ -703,81 +726,81 @@ typedef enum /*< skip >*/
G_TYPE_DEBUG_SIGNALS = 1 << 1,
G_TYPE_DEBUG_INSTANCE_COUNT = 1 << 2,
G_TYPE_DEBUG_MASK = 0x07
-} GTypeDebugFlags GLIB_DEPRECATED_TYPE_IN_2_36;
+} GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36;
/* --- prototypes --- */
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-GLIB_DEPRECATED_IN_2_36
+GOBJECT_DEPRECATED_IN_2_36
void g_type_init (void);
-GLIB_DEPRECATED_IN_2_36
+GOBJECT_DEPRECATED_IN_2_36
void g_type_init_with_debug_flags (GTypeDebugFlags debug_flags);
G_GNUC_END_IGNORE_DEPRECATIONS
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
const gchar * g_type_name (GType type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GQuark g_type_qname (GType type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_type_from_name (const gchar *name);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_type_parent (GType type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
guint g_type_depth (GType type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_type_next_base (GType leaf_type,
GType root_type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_type_is_a (GType type,
GType is_a_type);
/* Hoist exact GType comparisons into the caller */
#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b)))
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_type_class_ref (GType type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_type_class_peek (GType type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_type_class_peek_static (GType type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_class_unref (gpointer g_class);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_type_class_peek_parent (gpointer g_class);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_type_interface_peek (gpointer instance_class,
GType iface_type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_type_interface_peek_parent (gpointer g_iface);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_type_default_interface_ref (GType g_type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_type_default_interface_peek (GType g_type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_default_interface_unref (gpointer g_iface);
/* g_free() the returned arrays */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType* g_type_children (GType type,
guint *n_children);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType* g_type_interfaces (GType type,
guint *n_interfaces);
/* per-type _static_ data */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_set_qdata (GType type,
GQuark quark,
gpointer data);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_type_get_qdata (GType type,
GQuark quark);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_query (GType type,
GTypeQuery *query);
-GLIB_AVAILABLE_IN_2_44
+GOBJECT_AVAILABLE_IN_2_44
int g_type_get_instance_count (GType type);
/* --- type registration --- */
@@ -1049,15 +1072,19 @@ typedef enum /*< skip >*/
* g_value_init()
* @G_TYPE_FLAG_FINAL: Indicates a final type. A final type is a non-derivable
* leaf node in a deep derivable type hierarchy tree. Since: 2.70
+ * @G_TYPE_FLAG_DEPRECATED: The type is deprecated and may be removed in a
+ * future version. A warning will be emitted if it is instantiated while
+ * running with `G_ENABLE_DIAGNOSTIC=1`. Since 2.76
*
* Bit masks used to check or determine characteristics of a type.
*/
typedef enum /*< skip >*/
{
- G_TYPE_FLAG_NONE GLIB_AVAILABLE_ENUMERATOR_IN_2_74 = 0,
+ G_TYPE_FLAG_NONE GOBJECT_AVAILABLE_ENUMERATOR_IN_2_74 = 0,
G_TYPE_FLAG_ABSTRACT = (1 << 4),
G_TYPE_FLAG_VALUE_ABSTRACT = (1 << 5),
- G_TYPE_FLAG_FINAL GLIB_AVAILABLE_ENUMERATOR_IN_2_70 = (1 << 6)
+ G_TYPE_FLAG_FINAL GOBJECT_AVAILABLE_ENUMERATOR_IN_2_70 = (1 << 6),
+ G_TYPE_FLAG_DEPRECATED GOBJECT_AVAILABLE_ENUMERATOR_IN_2_76 = (1 << 7)
} GTypeFlags;
/**
* GTypeInfo:
@@ -1075,7 +1102,7 @@ typedef enum /*< skip >*/
* finalization function for interface types. (optional)
* @class_data: User-supplied data passed to the class init/finalize functions
* @instance_size: Size of the instance (object) structure (required for instantiatable types only)
- * @n_preallocs: Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the [slice allocator][glib-Memory-Slices] now.
+ * @n_preallocs: Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10 this field is ignored.
* @instance_init: Location of the instance initialization function (optional, for instantiatable types only)
* @value_table: A #GTypeValueTable function table for generic handling of GValues
* of this type (usually only useful for fundamental types)
@@ -1137,185 +1164,297 @@ struct _GInterfaceInfo
GInterfaceFinalizeFunc interface_finalize;
gpointer interface_data;
};
+
+/**
+ * GTypeValueInitFunc:
+ * @value: the value to initialize
+ *
+ * Initializes the value contents by setting the fields of the `value->data`
+ * array.
+ *
+ * The data array of the #GValue passed into this function was zero-filled
+ * with `memset()`, so no care has to be taken to free any old contents.
+ * For example, in the case of a string value that may never be %NULL, the
+ * implementation might look like:
+ *
+ * |[<!-- language="C" -->
+ * value->data[0].v_pointer = g_strdup ("");
+ * ]|
+ *
+ * Since: 2.78
+ */
+GOBJECT_AVAILABLE_TYPE_IN_2_78
+typedef void (* GTypeValueInitFunc) (GValue *value);
+
+/**
+ * GTypeValueFreeFunc:
+ * @value: the value to free
+ *
+ * Frees any old contents that might be left in the `value->data` array of
+ * the given value.
+ *
+ * No resources may remain allocated through the #GValue contents after this
+ * function returns. E.g. for our above string type:
+ *
+ * |[<!-- language="C" -->
+ * // only free strings without a specific flag for static storage
+ * if (!(value->data[1].v_uint & G_VALUE_NOCOPY_CONTENTS))
+ * g_free (value->data[0].v_pointer);
+ * ]|
+ *
+ * Since: 2.78
+ */
+GOBJECT_AVAILABLE_TYPE_IN_2_78
+typedef void (* GTypeValueFreeFunc) (GValue *value);
+
+/**
+ * GTypeValueCopyFunc:
+ * @src_value: the value to copy
+ * @dest_value: (out): the location of the copy
+ *
+ * Copies the content of a #GValue into another.
+ *
+ * The @dest_value is a #GValue with zero-filled data section and @src_value
+ * is a properly initialized #GValue of same type, or derived type.
+ *
+ * The purpose of this function is to copy the contents of @src_value
+ * into @dest_value in a way, that even after @src_value has been freed, the
+ * contents of @dest_value remain valid. String type example:
+ *
+ * |[<!-- language="C" -->
+ * dest_value->data[0].v_pointer = g_strdup (src_value->data[0].v_pointer);
+ * ]|
+ *
+ * Since: 2.78
+ */
+GOBJECT_AVAILABLE_TYPE_IN_2_78
+typedef void (* GTypeValueCopyFunc) (const GValue *src_value,
+ GValue *dest_value);
+
+/**
+ * GTypeValuePeekPointerFunc:
+ * @value: the value to peek
+ *
+ * If the value contents fit into a pointer, such as objects or strings,
+ * return this pointer, so the caller can peek at the current contents.
+ *
+ * To extend on our above string example:
+ *
+ * |[<!-- language="C" -->
+ * return value->data[0].v_pointer;
+ * ]|
+ *
+ * Returns: (transfer none): a pointer to the value contents
+ *
+ * Since: 2.78
+ */
+GOBJECT_AVAILABLE_TYPE_IN_2_78
+typedef gpointer (* GTypeValuePeekPointerFunc) (const GValue *value);
+
+/**
+ * GTypeValueCollectFunc:
+ * @value: the value to initialize
+ * @n_collect_values: the number of collected values
+ * @collect_values: (array length=n_collect_values): the collected values
+ * @collect_flags: optional flags
+ *
+ * This function is responsible for converting the values collected from
+ * a variadic argument list into contents suitable for storage in a #GValue.
+ *
+ * This function should setup @value similar to #GTypeValueInitFunc; e.g.
+ * for a string value that does not allow `NULL` pointers, it needs to either
+ * emit an error, or do an implicit conversion by storing an empty string.
+ *
+ * The @value passed in to this function has a zero-filled data array, so
+ * just like for #GTypeValueInitFunc it is guaranteed to not contain any old
+ * contents that might need freeing.
+ *
+ * The @n_collect_values argument is the string length of the `collect_format`
+ * field of #GTypeValueTable, and `collect_values` is an array of #GTypeCValue
+ * with length of @n_collect_values, containing the collected values according
+ * to `collect_format`.
+ *
+ * The @collect_flags argument provided as a hint by the caller. It may
+ * contain the flag %G_VALUE_NOCOPY_CONTENTS indicating that the collected
+ * value contents may be considered ‘static’ for the duration of the @value
+ * lifetime. Thus an extra copy of the contents stored in @collect_values is
+ * not required for assignment to @value.
+ *
+ * For our above string example, we continue with:
+ *
+ * |[<!-- language="C" -->
+ * if (!collect_values[0].v_pointer)
+ * value->data[0].v_pointer = g_strdup ("");
+ * else if (collect_flags & G_VALUE_NOCOPY_CONTENTS)
+ * {
+ * value->data[0].v_pointer = collect_values[0].v_pointer;
+ * // keep a flag for the value_free() implementation to not free this string
+ * value->data[1].v_uint = G_VALUE_NOCOPY_CONTENTS;
+ * }
+ * else
+ * value->data[0].v_pointer = g_strdup (collect_values[0].v_pointer);
+ * return NULL;
+ * ]|
+ *
+ * It should be noted, that it is generally a bad idea to follow the
+ * %G_VALUE_NOCOPY_CONTENTS hint for reference counted types. Due to
+ * reentrancy requirements and reference count assertions performed
+ * by the signal emission code, reference counts should always be
+ * incremented for reference counted contents stored in the `value->data`
+ * array. To deviate from our string example for a moment, and taking
+ * a look at an exemplary implementation for `GTypeValueTable.collect_value()`
+ * of `GObject`:
+ *
+ * |[<!-- language="C" -->
+ * GObject *object = G_OBJECT (collect_values[0].v_pointer);
+ * g_return_val_if_fail (object != NULL,
+ * g_strdup_printf ("Object %p passed as invalid NULL pointer", object));
+ * // never honour G_VALUE_NOCOPY_CONTENTS for ref-counted types
+ * value->data[0].v_pointer = g_object_ref (object);
+ * return NULL;
+ * ]|
+ *
+ * The reference count for valid objects is always incremented, regardless
+ * of `collect_flags`. For invalid objects, the example returns a newly
+ * allocated string without altering `value`.
+ *
+ * Upon success, `collect_value()` needs to return `NULL`. If, however,
+ * an error condition occurred, `collect_value()` should return a newly
+ * allocated string containing an error diagnostic.
+ *
+ * The calling code makes no assumptions about the `value` contents being
+ * valid upon error returns, `value` is simply thrown away without further
+ * freeing. As such, it is a good idea to not allocate `GValue` contents
+ * prior to returning an error; however, `collect_values()` is not obliged
+ * to return a correctly setup @value for error returns, simply because
+ * any non-`NULL` return is considered a fatal programming error, and
+ * further program behaviour is undefined.
+ *
+ * Returns: (transfer full) (nullable): `NULL` on success, otherwise a
+ * newly allocated error string on failure
+ *
+ * Since: 2.78
+ */
+GOBJECT_AVAILABLE_TYPE_IN_2_78
+typedef gchar * (* GTypeValueCollectFunc) (GValue *value,
+ guint n_collect_values,
+ GTypeCValue *collect_values,
+ guint collect_flags);
+
+/**
+ * GTypeValueLCopyFunc:
+ * @value: the value to lcopy
+ * @n_collect_values: the number of collected values
+ * @collect_values: (array length=n_collect_values): the collected
+ * locations for storage
+ * @collect_flags: optional flags
+ *
+ * This function is responsible for storing the `value`
+ * contents into arguments passed through a variadic argument list which
+ * got collected into `collect_values` according to `lcopy_format`.
+ *
+ * The `n_collect_values` argument equals the string length of
+ * `lcopy_format`, and `collect_flags` may contain %G_VALUE_NOCOPY_CONTENTS.
+ *
+ * In contrast to #GTypeValueCollectFunc, this function is obliged to always
+ * properly support %G_VALUE_NOCOPY_CONTENTS.
+ *
+ * Similar to #GTypeValueCollectFunc the function may prematurely abort by
+ * returning a newly allocated string describing an error condition. To
+ * complete the string example:
+ *
+ * |[<!-- language="C" -->
+ * gchar **string_p = collect_values[0].v_pointer;
+ * g_return_val_if_fail (string_p != NULL,
+ * g_strdup ("string location passed as NULL"));
+ *
+ * if (collect_flags & G_VALUE_NOCOPY_CONTENTS)
+ * *string_p = value->data[0].v_pointer;
+ * else
+ * *string_p = g_strdup (value->data[0].v_pointer);
+ * ]|
+ *
+ * And an illustrative version of this function for reference-counted
+ * types:
+ *
+ * |[<!-- language="C" -->
+ * GObject **object_p = collect_values[0].v_pointer;
+ * g_return_val_if_fail (object_p != NULL,
+ * g_strdup ("object location passed as NULL"));
+ *
+ * if (value->data[0].v_pointer == NULL)
+ * *object_p = NULL;
+ * else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) // always honour
+ * *object_p = value->data[0].v_pointer;
+ * else
+ * *object_p = g_object_ref (value->data[0].v_pointer);
+ *
+ * return NULL;
+ * ]|
+ *
+ * Returns: (transfer full) (nullable): `NULL` on success, otherwise
+ * a newly allocated error string on failure
+ *
+ * Since: 2.78
+ */
+GOBJECT_AVAILABLE_TYPE_IN_2_78
+typedef gchar * (* GTypeValueLCopyFunc) (const GValue *value,
+ guint n_collect_values,
+ GTypeCValue *collect_values,
+ guint collect_flags);
+
/**
* GTypeValueTable:
- * @value_init: Default initialize @values contents by poking values
- * directly into the value->data array. The data array of
- * the #GValue passed into this function was zero-filled
- * with `memset()`, so no care has to be taken to free any
- * old contents. E.g. for the implementation of a string
- * value that may never be %NULL, the implementation might
- * look like:
- * |[<!-- language="C" -->
- * value->data[0].v_pointer = g_strdup ("");
- * ]|
- * @value_free: Free any old contents that might be left in the
- * data array of the passed in @value. No resources may
- * remain allocated through the #GValue contents after
- * this function returns. E.g. for our above string type:
- * |[<!-- language="C" -->
- * // only free strings without a specific flag for static storage
- * if (!(value->data[1].v_uint & G_VALUE_NOCOPY_CONTENTS))
- * g_free (value->data[0].v_pointer);
- * ]|
- * @value_copy: @dest_value is a #GValue with zero-filled data section
- * and @src_value is a properly setup #GValue of same or
- * derived type.
- * The purpose of this function is to copy the contents of
- * @src_value into @dest_value in a way, that even after
- * @src_value has been freed, the contents of @dest_value
- * remain valid. String type example:
- * |[<!-- language="C" -->
- * dest_value->data[0].v_pointer = g_strdup (src_value->data[0].v_pointer);
- * ]|
- * @value_peek_pointer: If the value contents fit into a pointer, such as objects
- * or strings, return this pointer, so the caller can peek at
- * the current contents. To extend on our above string example:
- * |[<!-- language="C" -->
- * return value->data[0].v_pointer;
- * ]|
+ * @value_init: Function to initialize a GValue
+ * @value_free: Function to free a GValue
+ * @value_copy: Function to copy a GValue
+ * @value_peek_pointer: Function to peek the contents of a GValue if they fit
+ * into a pointer
* @collect_format: A string format describing how to collect the contents of
- * this value bit-by-bit. Each character in the format represents
- * an argument to be collected, and the characters themselves indicate
- * the type of the argument. Currently supported arguments are:
- * - 'i' - Integers. passed as collect_values[].v_int.
- * - 'l' - Longs. passed as collect_values[].v_long.
- * - 'd' - Doubles. passed as collect_values[].v_double.
- * - 'p' - Pointers. passed as collect_values[].v_pointer.
- * It should be noted that for variable argument list construction,
- * ANSI C promotes every type smaller than an integer to an int, and
- * floats to doubles. So for collection of short int or char, 'i'
- * needs to be used, and for collection of floats 'd'.
- * @collect_value: The collect_value() function is responsible for converting the
- * values collected from a variable argument list into contents
- * suitable for storage in a GValue. This function should setup
- * @value similar to value_init(); e.g. for a string value that
- * does not allow %NULL pointers, it needs to either spew an error,
- * or do an implicit conversion by storing an empty string.
- * The @value passed in to this function has a zero-filled data
- * array, so just like for value_init() it is guaranteed to not
- * contain any old contents that might need freeing.
- * @n_collect_values is exactly the string length of @collect_format,
- * and @collect_values is an array of unions #GTypeCValue with
- * length @n_collect_values, containing the collected values
- * according to @collect_format.
- * @collect_flags is an argument provided as a hint by the caller.
- * It may contain the flag %G_VALUE_NOCOPY_CONTENTS indicating,
- * that the collected value contents may be considered "static"
- * for the duration of the @value lifetime.
- * Thus an extra copy of the contents stored in @collect_values is
- * not required for assignment to @value.
- * For our above string example, we continue with:
- * |[<!-- language="C" -->
- * if (!collect_values[0].v_pointer)
- * value->data[0].v_pointer = g_strdup ("");
- * else if (collect_flags & G_VALUE_NOCOPY_CONTENTS)
- * {
- * value->data[0].v_pointer = collect_values[0].v_pointer;
- * // keep a flag for the value_free() implementation to not free this string
- * value->data[1].v_uint = G_VALUE_NOCOPY_CONTENTS;
- * }
- * else
- * value->data[0].v_pointer = g_strdup (collect_values[0].v_pointer);
- * return NULL;
- * ]|
- * It should be noted, that it is generally a bad idea to follow the
- * %G_VALUE_NOCOPY_CONTENTS hint for reference counted types. Due to
- * reentrancy requirements and reference count assertions performed
- * by the signal emission code, reference counts should always be
- * incremented for reference counted contents stored in the value->data
- * array. To deviate from our string example for a moment, and taking
- * a look at an exemplary implementation for collect_value() of
- * #GObject:
- * |[<!-- language="C" -->
- * GObject *object = G_OBJECT (collect_values[0].v_pointer);
- * g_return_val_if_fail (object != NULL,
- * g_strdup_printf ("Object passed as invalid NULL pointer"));
- * // never honour G_VALUE_NOCOPY_CONTENTS for ref-counted types
- * value->data[0].v_pointer = g_object_ref (object);
- * return NULL;
- * ]|
- * The reference count for valid objects is always incremented,
- * regardless of @collect_flags. For invalid objects, the example
- * returns a newly allocated string without altering @value.
- * Upon success, collect_value() needs to return %NULL. If, however,
- * an error condition occurred, collect_value() may spew an
- * error by returning a newly allocated non-%NULL string, giving
- * a suitable description of the error condition.
- * The calling code makes no assumptions about the @value
- * contents being valid upon error returns, @value
- * is simply thrown away without further freeing. As such, it is
- * a good idea to not allocate #GValue contents, prior to returning
- * an error, however, collect_values() is not obliged to return
- * a correctly setup @value for error returns, simply because
- * any non-%NULL return is considered a fatal condition so further
- * program behaviour is undefined.
+ * this value bit-by-bit. Each character in the format represents
+ * an argument to be collected, and the characters themselves indicate
+ * the type of the argument. Currently supported arguments are:
+ * - `'i'`: Integers, passed as `collect_values[].v_int`
+ * - `'l'`: Longs, passed as `collect_values[].v_long`
+ * - `'d'`: Doubles, passed as `collect_values[].v_double`
+ * - `'p'`: Pointers, passed as `collect_values[].v_pointer`
+ * It should be noted that for variable argument list construction,
+ * ANSI C promotes every type smaller than an integer to an int, and
+ * floats to doubles. So for collection of short int or char, `'i'`
+ * needs to be used, and for collection of floats `'d'`.
+ * @collect_value: Function to initialize a GValue from the values
+ * collected from variadic arguments
* @lcopy_format: Format description of the arguments to collect for @lcopy_value,
- * analogous to @collect_format. Usually, @lcopy_format string consists
- * only of 'p's to provide lcopy_value() with pointers to storage locations.
- * @lcopy_value: This function is responsible for storing the @value contents into
- * arguments passed through a variable argument list which got
- * collected into @collect_values according to @lcopy_format.
- * @n_collect_values equals the string length of @lcopy_format,
- * and @collect_flags may contain %G_VALUE_NOCOPY_CONTENTS.
- * In contrast to collect_value(), lcopy_value() is obliged to
- * always properly support %G_VALUE_NOCOPY_CONTENTS.
- * Similar to collect_value() the function may prematurely abort
- * by returning a newly allocated string describing an error condition.
- * To complete the string example:
- * |[<!-- language="C" -->
- * gchar **string_p = collect_values[0].v_pointer;
- * g_return_val_if_fail (string_p != NULL,
- * g_strdup_printf ("string location passed as NULL"));
- * if (collect_flags & G_VALUE_NOCOPY_CONTENTS)
- * *string_p = value->data[0].v_pointer;
- * else
- * *string_p = g_strdup (value->data[0].v_pointer);
- * ]|
- * And an illustrative version of lcopy_value() for
- * reference-counted types:
- * |[<!-- language="C" -->
- * GObject **object_p = collect_values[0].v_pointer;
- * g_return_val_if_fail (object_p != NULL,
- * g_strdup_printf ("object location passed as NULL"));
- * if (!value->data[0].v_pointer)
- * *object_p = NULL;
- * else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) // always honour
- * *object_p = value->data[0].v_pointer;
- * else
- * *object_p = g_object_ref (value->data[0].v_pointer);
- * return NULL;
- * ]|
- *
+ * analogous to @collect_format. Usually, @lcopy_format string consists
+ * only of `'p'`s to provide lcopy_value() with pointers to storage locations.
+ * @lcopy_value: Function to store the contents of a value into the
+ * locations collected from variadic arguments
+ *
* The #GTypeValueTable provides the functions required by the #GValue
* implementation, to serve as a container for values of a type.
*/
-
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
struct _GTypeValueTable
{
- void (*value_init) (GValue *value);
- void (*value_free) (GValue *value);
- void (*value_copy) (const GValue *src_value,
- GValue *dest_value);
- /* varargs functionality (optional) */
- gpointer (*value_peek_pointer) (const GValue *value);
+ GTypeValueInitFunc value_init;
+ GTypeValueFreeFunc value_free;
+ GTypeValueCopyFunc value_copy;
+ GTypeValuePeekPointerFunc value_peek_pointer;
+
const gchar *collect_format;
- gchar* (*collect_value) (GValue *value,
- guint n_collect_values,
- GTypeCValue *collect_values,
- guint collect_flags);
+ GTypeValueCollectFunc collect_value;
+
const gchar *lcopy_format;
- gchar* (*lcopy_value) (const GValue *value,
- guint n_collect_values,
- GTypeCValue *collect_values,
- guint collect_flags);
+ GTypeValueLCopyFunc lcopy_value;
};
-GLIB_AVAILABLE_IN_ALL
+G_GNUC_END_IGNORE_DEPRECATIONS
+
+GOBJECT_AVAILABLE_IN_ALL
GType g_type_register_static (GType parent_type,
const gchar *type_name,
const GTypeInfo *info,
GTypeFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_type_register_static_simple (GType parent_type,
const gchar *type_name,
guint class_size,
@@ -1324,59 +1463,59 @@ GType g_type_register_static_simple (GType parent_type
GInstanceInitFunc instance_init,
GTypeFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_type_register_dynamic (GType parent_type,
const gchar *type_name,
GTypePlugin *plugin,
GTypeFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_type_register_fundamental (GType type_id,
const gchar *type_name,
const GTypeInfo *info,
const GTypeFundamentalInfo *finfo,
GTypeFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_add_interface_static (GType instance_type,
GType interface_type,
const GInterfaceInfo *info);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_add_interface_dynamic (GType instance_type,
GType interface_type,
GTypePlugin *plugin);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_interface_add_prerequisite (GType interface_type,
GType prerequisite_type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType*g_type_interface_prerequisites (GType interface_type,
guint *n_prerequisites);
-GLIB_AVAILABLE_IN_2_68
+GOBJECT_AVAILABLE_IN_2_68
GType g_type_interface_instantiatable_prerequisite
(GType interface_type);
-GLIB_DEPRECATED_IN_2_58
+GOBJECT_DEPRECATED_IN_2_58
void g_type_class_add_private (gpointer g_class,
gsize private_size);
-GLIB_AVAILABLE_IN_2_38
+GOBJECT_AVAILABLE_IN_2_38
gint g_type_add_instance_private (GType class_type,
gsize private_size);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_type_instance_get_private (GTypeInstance *instance,
GType private_type);
-GLIB_AVAILABLE_IN_2_38
+GOBJECT_AVAILABLE_IN_2_38
void g_type_class_adjust_private_offset (gpointer g_class,
gint *private_size_or_offset);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_add_class_private (GType class_type,
gsize private_size);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_type_class_get_private (GTypeClass *klass,
GType private_type);
-GLIB_AVAILABLE_IN_2_38
+GOBJECT_AVAILABLE_IN_2_38
gint g_type_class_get_instance_private_offset (gpointer g_class);
-GLIB_AVAILABLE_IN_2_34
+GOBJECT_AVAILABLE_IN_2_34
void g_type_ensure (GType type);
-GLIB_AVAILABLE_IN_2_36
+GOBJECT_AVAILABLE_IN_2_36
guint g_type_get_type_registration_serial (void);
@@ -1790,7 +1929,7 @@ guint g_type_get_type_registration_serial (void);
*
* Since: 2.70
*/
-#define G_DEFINE_FINAL_TYPE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_FINAL, {}) GLIB_AVAILABLE_MACRO_IN_2_70
+#define G_DEFINE_FINAL_TYPE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_FINAL, {}) GOBJECT_AVAILABLE_MACRO_IN_2_70
/**
* G_DEFINE_FINAL_TYPE_WITH_CODE:
* @TN: the name of the new type, in Camel case
@@ -1809,7 +1948,7 @@ guint g_type_get_type_registration_serial (void);
*
* Since: 2.70
*/
-#define G_DEFINE_FINAL_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, G_TYPE_FLAG_FINAL) {_C_;} _G_DEFINE_TYPE_EXTENDED_END() GLIB_AVAILABLE_MACRO_IN_2_70
+#define G_DEFINE_FINAL_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, G_TYPE_FLAG_FINAL) {_C_;} _G_DEFINE_TYPE_EXTENDED_END() GOBJECT_AVAILABLE_MACRO_IN_2_70
/**
* G_DEFINE_FINAL_TYPE_WITH_PRIVATE:
* @TN: the name of the new type, in Camel case
@@ -1825,7 +1964,7 @@ guint g_type_get_type_registration_serial (void);
*
* Since: 2.70
*/
-#define G_DEFINE_FINAL_TYPE_WITH_PRIVATE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_FINAL, G_ADD_PRIVATE (TN)) GLIB_AVAILABLE_MACRO_IN_2_70
+#define G_DEFINE_FINAL_TYPE_WITH_PRIVATE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_FINAL, G_ADD_PRIVATE (TN)) GOBJECT_AVAILABLE_MACRO_IN_2_70
/**
* G_DEFINE_TYPE_EXTENDED:
* @TN: The name of the new type, in Camel case.
@@ -2313,7 +2452,8 @@ type_name##_get_type (void) \
/* Only use this in non-C++ on GCC >= 2.7, except for Darwin/ppc64.
* See https://bugzilla.gnome.org/show_bug.cgi?id=647145
*/
-#if !defined (__cplusplus) && (G_GNUC_CHECK_VERSION(2, 7)) && !(defined (__APPLE__) && defined (__ppc64__))
+#if !defined (G_CXX_STD_VERSION) && (G_GNUC_CHECK_VERSION(2, 7)) && \
+ !(defined (__APPLE__) && defined (__ppc64__))
#define _G_DEFINE_BOXED_TYPE_BEGIN(TypeName, type_name, copy_func, free_func) \
static GType type_name##_get_type_once (void); \
\
@@ -2428,87 +2568,88 @@ type_name##_get_type_once (void) \
{ /* custom code follows */
/* --- protected (for fundamental type implementations) --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GTypePlugin* g_type_get_plugin (GType type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GTypePlugin* g_type_interface_get_plugin (GType instance_type,
GType interface_type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_type_fundamental_next (void);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_type_fundamental (GType type_id);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GTypeInstance* g_type_create_instance (GType type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_free_instance (GTypeInstance *instance);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_add_class_cache_func (gpointer cache_data,
GTypeClassCacheFunc cache_func);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_remove_class_cache_func (gpointer cache_data,
GTypeClassCacheFunc cache_func);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_class_unref_uncached (gpointer g_class);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_add_interface_check (gpointer check_data,
GTypeInterfaceCheckFunc check_func);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_remove_interface_check (gpointer check_data,
GTypeInterfaceCheckFunc check_func);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GTypeValueTable* g_type_value_table_peek (GType type);
/*< private >*/
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_type_check_instance (GTypeInstance *instance) G_GNUC_PURE;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GTypeInstance* g_type_check_instance_cast (GTypeInstance *instance,
GType iface_type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_type_check_instance_is_a (GTypeInstance *instance,
GType iface_type) G_GNUC_PURE;
-GLIB_AVAILABLE_IN_2_42
+GOBJECT_AVAILABLE_IN_2_42
gboolean g_type_check_instance_is_fundamentally_a (GTypeInstance *instance,
GType fundamental_type) G_GNUC_PURE;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GTypeClass* g_type_check_class_cast (GTypeClass *g_class,
GType is_a_type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_type_check_class_is_a (GTypeClass *g_class,
GType is_a_type) G_GNUC_PURE;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_type_check_is_value_type (GType type) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_type_check_value (const GValue *value) G_GNUC_PURE;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_type_check_value_holds (const GValue *value,
GType type) G_GNUC_PURE;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_type_test_flags (GType type,
guint flags) G_GNUC_CONST;
/* --- debugging functions --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
const gchar * g_type_name_from_instance (GTypeInstance *instance);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
const gchar * g_type_name_from_class (GTypeClass *g_class);
/* --- implementation bits --- */
-#ifndef G_DISABLE_CAST_CHECKS
+#if defined(G_DISABLE_CAST_CHECKS) || defined(__OPTIMIZE__)
+# define _G_TYPE_CIC(ip, gt, ct) ((ct*) (void *) ip)
+# define _G_TYPE_CCC(cp, gt, ct) ((ct*) (void *) cp)
+#else
# define _G_TYPE_CIC(ip, gt, ct) \
((ct*) (void *) g_type_check_instance_cast ((GTypeInstance*) ip, gt))
# define _G_TYPE_CCC(cp, gt, ct) \
((ct*) (void *) g_type_check_class_cast ((GTypeClass*) cp, gt))
-#else /* G_DISABLE_CAST_CHECKS */
-# define _G_TYPE_CIC(ip, gt, ct) ((ct*) ip)
-# define _G_TYPE_CCC(cp, gt, ct) ((ct*) cp)
-#endif /* G_DISABLE_CAST_CHECKS */
+#endif
+
#define _G_TYPE_CHI(ip) (g_type_check_instance ((GTypeInstance*) ip))
#define _G_TYPE_CHV(vl) (g_type_check_value ((GValue*) vl))
#define _G_TYPE_IGC(ip, gt, ct) ((ct*) (((GTypeInstance*) ip)->g_class))
diff --git a/gobject/gtypemodule.c b/gobject/gtypemodule.c
index a95fbbb59..ec9511090 100644
--- a/gobject/gtypemodule.c
+++ b/gobject/gtypemodule.c
@@ -101,7 +101,7 @@ g_type_module_dispose (GObject *object)
if (module->type_infos || module->interface_infos)
{
- g_warning (G_STRLOC ": unsolicitated invocation of g_object_run_dispose() on GTypeModule");
+ g_critical (G_STRLOC ": unsolicitated invocation of g_object_run_dispose() on GTypeModule");
g_object_ref (object);
}
@@ -259,9 +259,9 @@ g_type_module_use (GTypeModule *module)
ModuleTypeInfo *type_info = tmp_list->data;
if (!type_info->loaded)
{
- g_warning ("plugin '%s' failed to register type '%s'",
- module->name ? module->name : "(unknown)",
- g_type_name (type_info->type));
+ g_critical ("plugin '%s' failed to register type '%s'",
+ module->name ? module->name : "(unknown)",
+ g_type_name (type_info->type));
module->use_count--;
return FALSE;
}
@@ -315,9 +315,8 @@ g_type_module_use_plugin (GTypePlugin *plugin)
if (!g_type_module_use (module))
{
- g_warning ("Fatal error - Could not reload previously loaded plugin '%s'",
- module->name ? module->name : "(unknown)");
- exit (1);
+ g_error ("Fatal error - Could not reload previously loaded plugin '%s'",
+ module->name ? module->name : "(unknown)");
}
}
@@ -406,7 +405,7 @@ g_type_module_register_type (GTypeModule *module,
if (old_plugin != G_TYPE_PLUGIN (module))
{
- g_warning ("Two different plugins tried to register '%s'.", type_name);
+ g_critical ("Two different plugins tried to register '%s'.", type_name);
return 0;
}
}
@@ -419,10 +418,10 @@ g_type_module_register_type (GTypeModule *module,
{
const gchar *parent_type_name = g_type_name (parent_type);
- g_warning ("Type '%s' recreated with different parent type."
- "(was '%s', now '%s')", type_name,
- g_type_name (module_type_info->parent_type),
- parent_type_name ? parent_type_name : "(unknown)");
+ g_critical ("Type '%s' recreated with different parent type."
+ "(was '%s', now '%s')", type_name,
+ g_type_name (module_type_info->parent_type),
+ parent_type_name ? parent_type_name : "(unknown)");
return 0;
}
@@ -488,14 +487,14 @@ g_type_module_add_interface (GTypeModule *module,
if (!old_plugin)
{
- g_warning ("Interface '%s' for '%s' was previously registered statically or for a parent type.",
- g_type_name (interface_type), g_type_name (instance_type));
+ g_critical ("Interface '%s' for '%s' was previously registered statically or for a parent type.",
+ g_type_name (interface_type), g_type_name (instance_type));
return;
}
else if (old_plugin != G_TYPE_PLUGIN (module))
{
- g_warning ("Two different plugins tried to register interface '%s' for '%s'.",
- g_type_name (interface_type), g_type_name (instance_type));
+ g_critical ("Two different plugins tried to register interface '%s' for '%s'.",
+ g_type_name (interface_type), g_type_name (instance_type));
return;
}
diff --git a/gobject/gtypemodule.h b/gobject/gtypemodule.h
index 881a6f66e..e386b50df 100644
--- a/gobject/gtypemodule.h
+++ b/gobject/gtypemodule.h
@@ -268,31 +268,31 @@ type_name##_register_type (GTypeModule *type_module) \
TypeName##_private_offset = sizeof (TypeName##Private); \
}
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_type_module_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_type_module_use (GTypeModule *module);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_module_unuse (GTypeModule *module);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_module_set_name (GTypeModule *module,
const gchar *name);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_type_module_register_type (GTypeModule *module,
GType parent_type,
const gchar *type_name,
const GTypeInfo *type_info,
GTypeFlags flags);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_module_add_interface (GTypeModule *module,
GType instance_type,
GType interface_type,
const GInterfaceInfo *interface_info);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_type_module_register_enum (GTypeModule *module,
const gchar *name,
const GEnumValue *const_static_values);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_type_module_register_flags (GTypeModule *module,
const gchar *name,
const GFlagsValue *const_static_values);
diff --git a/gobject/gtypeplugin.h b/gobject/gtypeplugin.h
index 92a72421f..3711932be 100644
--- a/gobject/gtypeplugin.h
+++ b/gobject/gtypeplugin.h
@@ -114,18 +114,18 @@ struct _GTypePluginClass
/* --- prototypes --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_type_plugin_get_type (void) G_GNUC_CONST;
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_plugin_use (GTypePlugin *plugin);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_plugin_unuse (GTypePlugin *plugin);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_plugin_complete_type_info (GTypePlugin *plugin,
GType g_type,
GTypeInfo *info,
GTypeValueTable *value_table);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_type_plugin_complete_interface_info (GTypePlugin *plugin,
GType instance_type,
GType interface_type,
diff --git a/gobject/gvalue.c b/gobject/gvalue.c
index d2da4166f..10885dad8 100644
--- a/gobject/gvalue.c
+++ b/gobject/gvalue.c
@@ -141,7 +141,7 @@
* g_value_set_boxed (value, mystruct);
* // [... your code ....]
* g_value_unset (value);
- * g_value_free (value);
+ * g_free (value);
* }
* ]|
*/
@@ -211,15 +211,15 @@ g_value_init (GValue *value,
value_table->value_init (value);
}
else if (G_VALUE_TYPE (value))
- g_warning ("%s: cannot initialize GValue with type '%s', the value has already been initialized as '%s'",
- G_STRLOC,
- g_type_name (g_type),
- g_type_name (G_VALUE_TYPE (value)));
+ g_critical ("%s: cannot initialize GValue with type '%s', the value has already been initialized as '%s'",
+ G_STRLOC,
+ g_type_name (g_type),
+ g_type_name (G_VALUE_TYPE (value)));
else /* !G_TYPE_IS_VALUE (g_type) */
- g_warning ("%s: cannot initialize GValue with type '%s', %s",
- G_STRLOC,
- g_type_name (g_type),
- value_table ? "this type is abstract with regards to GValue use, use a more specific (derived) type" : "this type has no GTypeValueTable implementation");
+ g_critical ("%s: cannot initialize GValue with type '%s', %s",
+ G_STRLOC,
+ g_type_name (g_type),
+ value_table ? "this type is abstract with regards to GValue use, use a more specific (derived) type" : "this type has no GTypeValueTable implementation");
return value;
}
@@ -407,7 +407,7 @@ g_value_set_instance (GValue *value,
error_msg = value_table->collect_value (value, 1, &cvalue, 0);
if (error_msg)
{
- g_warning ("%s: %s", G_STRLOC, error_msg);
+ g_critical ("%s: %s", G_STRLOC, error_msg);
g_free (error_msg);
/* we purposely leak the value here, it might not be
@@ -471,7 +471,7 @@ g_value_init_from_instance (GValue *value,
error_msg = value_table->collect_value (value, 1, &cvalue, 0);
if (error_msg)
{
- g_warning ("%s: %s", G_STRLOC, error_msg);
+ g_critical ("%s: %s", G_STRLOC, error_msg);
g_free (error_msg);
/* we purposely leak the value here, it might not be
diff --git a/gobject/gvalue.h b/gobject/gvalue.h
index d7adca2f5..2ac5ca189 100644
--- a/gobject/gvalue.h
+++ b/gobject/gvalue.h
@@ -131,42 +131,42 @@ struct _GValue
/* --- prototypes --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GValue* g_value_init (GValue *value,
GType g_type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_copy (const GValue *src_value,
GValue *dest_value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GValue* g_value_reset (GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_unset (GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_instance (GValue *value,
gpointer instance);
-GLIB_AVAILABLE_IN_2_42
+GOBJECT_AVAILABLE_IN_2_42
void g_value_init_from_instance (GValue *value,
gpointer instance);
/* --- private --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_value_fits_pointer (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_value_peek_pointer (const GValue *value);
/* --- implementation details --- */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_value_type_compatible (GType src_type,
GType dest_type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_value_type_transformable (GType src_type,
GType dest_type);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_value_transform (const GValue *src_value,
GValue *dest_value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_register_transform_func (GType src_type,
GType dest_type,
GValueTransform transform_func);
@@ -189,7 +189,7 @@ void g_value_register_transform_func (GType src_type,
*
* Since: 2.66
*/
-#define G_VALUE_INTERNED_STRING (1 << 28) GLIB_AVAILABLE_MACRO_IN_2_66
+#define G_VALUE_INTERNED_STRING (1 << 28) GOBJECT_AVAILABLE_MACRO_IN_2_66
/**
* G_VALUE_INIT:
diff --git a/gobject/gvaluearray.h b/gobject/gvaluearray.h
index 465565816..72aa91b57 100644
--- a/gobject/gvaluearray.h
+++ b/gobject/gvaluearray.h
@@ -37,7 +37,7 @@ G_BEGIN_DECLS
*
* Deprecated: 2.32: Use #GArray instead of #GValueArray
*/
-#define G_TYPE_VALUE_ARRAY (g_value_array_get_type ()) GLIB_DEPRECATED_MACRO_IN_2_32_FOR(G_TYPE_ARRAY)
+#define G_TYPE_VALUE_ARRAY (g_value_array_get_type ()) GOBJECT_DEPRECATED_MACRO_IN_2_32_FOR(G_TYPE_ARRAY)
/* --- typedefs & structs --- */
typedef struct _GValueArray GValueArray;
@@ -58,44 +58,44 @@ struct _GValueArray
};
/* --- prototypes --- */
-GLIB_DEPRECATED_IN_2_32_FOR(GArray)
+GOBJECT_DEPRECATED_IN_2_32_FOR(GArray)
GType g_value_array_get_type (void) G_GNUC_CONST;
-GLIB_DEPRECATED_IN_2_32_FOR(GArray)
+GOBJECT_DEPRECATED_IN_2_32_FOR(GArray)
GValue* g_value_array_get_nth (GValueArray *value_array,
guint index_);
-GLIB_DEPRECATED_IN_2_32_FOR(GArray)
+GOBJECT_DEPRECATED_IN_2_32_FOR(GArray)
GValueArray* g_value_array_new (guint n_prealloced);
-GLIB_DEPRECATED_IN_2_32_FOR(GArray)
+GOBJECT_DEPRECATED_IN_2_32_FOR(GArray)
void g_value_array_free (GValueArray *value_array);
-GLIB_DEPRECATED_IN_2_32_FOR(GArray)
+GOBJECT_DEPRECATED_IN_2_32_FOR(GArray)
GValueArray* g_value_array_copy (const GValueArray *value_array);
-GLIB_DEPRECATED_IN_2_32_FOR(GArray)
+GOBJECT_DEPRECATED_IN_2_32_FOR(GArray)
GValueArray* g_value_array_prepend (GValueArray *value_array,
const GValue *value);
-GLIB_DEPRECATED_IN_2_32_FOR(GArray)
+GOBJECT_DEPRECATED_IN_2_32_FOR(GArray)
GValueArray* g_value_array_append (GValueArray *value_array,
const GValue *value);
-GLIB_DEPRECATED_IN_2_32_FOR(GArray)
+GOBJECT_DEPRECATED_IN_2_32_FOR(GArray)
GValueArray* g_value_array_insert (GValueArray *value_array,
guint index_,
const GValue *value);
-GLIB_DEPRECATED_IN_2_32_FOR(GArray)
+GOBJECT_DEPRECATED_IN_2_32_FOR(GArray)
GValueArray* g_value_array_remove (GValueArray *value_array,
guint index_);
-GLIB_DEPRECATED_IN_2_32_FOR(GArray)
+GOBJECT_DEPRECATED_IN_2_32_FOR(GArray)
GValueArray* g_value_array_sort (GValueArray *value_array,
GCompareFunc compare_func);
-GLIB_DEPRECATED_IN_2_32_FOR(GArray)
+GOBJECT_DEPRECATED_IN_2_32_FOR(GArray)
GValueArray* g_value_array_sort_with_data (GValueArray *value_array,
GCompareDataFunc compare_func,
gpointer user_data);
diff --git a/gobject/gvaluetypes.c b/gobject/gvaluetypes.c
index 75998fe7e..f49058486 100644
--- a/gobject/gvaluetypes.c
+++ b/gobject/gvaluetypes.c
@@ -1108,7 +1108,7 @@ g_value_set_string_take_ownership (GValue *value,
/**
* g_value_take_string:
* @value: a valid #GValue of type %G_TYPE_STRING
- * @v_string: (nullable): string to take ownership of
+ * @v_string: (nullable) (transfer full): string to take ownership of
*
* Sets the contents of a %G_TYPE_STRING #GValue to @v_string.
*
@@ -1133,7 +1133,7 @@ g_value_take_string (GValue *value,
*
* Get the contents of a %G_TYPE_STRING #GValue.
*
- * Returns: string content of @value
+ * Returns: (nullable) (transfer none): string content of @value
*/
const gchar*
g_value_get_string (const GValue *value)
@@ -1149,7 +1149,7 @@ g_value_get_string (const GValue *value)
*
* Get a copy the contents of a %G_TYPE_STRING #GValue.
*
- * Returns: a newly allocated copy of the string content of @value
+ * Returns: (nullable) (transfer full): a newly allocated copy of the string content of @value
*/
gchar*
g_value_dup_string (const GValue *value)
diff --git a/gobject/gvaluetypes.h b/gobject/gvaluetypes.h
index 9aa6ba9cd..0c8d0f66e 100644
--- a/gobject/gvaluetypes.h
+++ b/gobject/gvaluetypes.h
@@ -150,7 +150,7 @@ G_BEGIN_DECLS
*
* Since: 2.66
*/
-#define G_VALUE_IS_INTERNED_STRING(value) (G_VALUE_HOLDS_STRING (value) && ((value)->data[1].v_uint & G_VALUE_INTERNED_STRING)) GLIB_AVAILABLE_MACRO_IN_2_66
+#define G_VALUE_IS_INTERNED_STRING(value) (G_VALUE_HOLDS_STRING (value) && ((value)->data[1].v_uint & G_VALUE_INTERNED_STRING)) GOBJECT_AVAILABLE_MACRO_IN_2_66
/**
* G_VALUE_HOLDS_POINTER:
* @value: a valid #GValue structure
@@ -190,116 +190,116 @@ G_BEGIN_DECLS
/* --- prototypes --- */
-GLIB_DEPRECATED_IN_2_32_FOR(g_value_set_schar)
+GOBJECT_DEPRECATED_IN_2_32_FOR(g_value_set_schar)
void g_value_set_char (GValue *value,
gchar v_char);
-GLIB_DEPRECATED_IN_2_32_FOR(g_value_get_schar)
+GOBJECT_DEPRECATED_IN_2_32_FOR(g_value_get_schar)
gchar g_value_get_char (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_schar (GValue *value,
gint8 v_char);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gint8 g_value_get_schar (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_uchar (GValue *value,
guchar v_uchar);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
guchar g_value_get_uchar (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_boolean (GValue *value,
gboolean v_boolean);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gboolean g_value_get_boolean (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_int (GValue *value,
gint v_int);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gint g_value_get_int (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_uint (GValue *value,
guint v_uint);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
guint g_value_get_uint (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_long (GValue *value,
glong v_long);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
glong g_value_get_long (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_ulong (GValue *value,
gulong v_ulong);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gulong g_value_get_ulong (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_int64 (GValue *value,
gint64 v_int64);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gint64 g_value_get_int64 (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_uint64 (GValue *value,
guint64 v_uint64);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
guint64 g_value_get_uint64 (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_float (GValue *value,
gfloat v_float);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gfloat g_value_get_float (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_double (GValue *value,
gdouble v_double);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gdouble g_value_get_double (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_string (GValue *value,
const gchar *v_string);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_static_string (GValue *value,
const gchar *v_string);
-GLIB_AVAILABLE_IN_2_66
+GOBJECT_AVAILABLE_IN_2_66
void g_value_set_interned_string (GValue *value,
const gchar *v_string);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
const gchar * g_value_get_string (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gchar* g_value_dup_string (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_pointer (GValue *value,
gpointer v_pointer);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gpointer g_value_get_pointer (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_gtype_get_type (void);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_gtype (GValue *value,
GType v_gtype);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_value_get_gtype (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_set_variant (GValue *value,
GVariant *variant);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_take_variant (GValue *value,
GVariant *variant);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GVariant* g_value_get_variant (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GVariant* g_value_dup_variant (const GValue *value);
/* Convenience for registering new pointer types */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
GType g_pointer_type_register_static (const gchar *name);
/* debugging aid, describe value contents as string */
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
gchar* g_strdup_value_contents (const GValue *value);
-GLIB_AVAILABLE_IN_ALL
+GOBJECT_AVAILABLE_IN_ALL
void g_value_take_string (GValue *value,
gchar *v_string);
-GLIB_DEPRECATED_FOR(g_value_take_string)
+GOBJECT_DEPRECATED_FOR(g_value_take_string)
void g_value_set_string_take_ownership (GValue *value,
gchar *v_string);
diff --git a/gobject/meson.build b/gobject/meson.build
index bc44d5db1..2129aaf8a 100644
--- a/gobject/meson.build
+++ b/gobject/meson.build
@@ -1,3 +1,5 @@
+gobject_includedir = glib_includedir / 'gobject'
+
gobject_install_headers = files(
'gobject-autocleanups.h',
'glib-types.h',
@@ -22,9 +24,22 @@ gobject_install_headers = files(
'gvaluetypes.h',
'gobjectnotifyqueue.c', # sic
)
-install_headers(gobject_install_headers, subdir : 'glib-2.0/gobject')
-gobject_sources = files(
+gobject_sources = []
+
+gobject_visibility_h = custom_target(
+ output: 'gobject-visibility.h',
+ command: [gen_visibility_macros, meson.project_version(), 'visibility-macros', 'GOBJECT', '@OUTPUT@'],
+ install: true,
+ install_dir: gobject_includedir,
+ # FIXME: Not needed with Meson >= 0.64.0
+ install_tag: 'devel',
+)
+gobject_sources += gobject_visibility_h
+
+install_headers(gobject_install_headers, install_dir : gobject_includedir)
+
+gobject_sources += files(
'gatomicarray.c',
'gbinding.c',
'gbindinggroup.c',
@@ -47,7 +62,7 @@ gobject_sources = files(
'gvaluetypes.c',
)
-if host_system == 'windows' and get_option('default_library') == 'shared'
+if host_system == 'windows' and glib_build_shared
gobject_win_rc = configure_file(
input: 'gobject.rc.in',
output: 'gobject.rc',
@@ -107,6 +122,7 @@ glib_enumtypes_h = custom_target('glib_enumtypes_h',
input : glib_enumtypes_input_headers,
install : true,
install_dir : join_paths(get_option('includedir'), 'glib-2.0/gobject'),
+ install_tag: 'devel',
command : [python, glib_mkenums,
'--template', files('glib-enumtypes.h.template'),
'@INPUT@'])
@@ -120,8 +136,6 @@ glib_enumtypes_c = custom_target('glib_enumtypes_c',
'--template', files('glib-enumtypes.c.template'),
'@INPUT@'])
-glib_enumtypes_dep = declare_dependency(sources : [glib_enumtypes_h])
-
# Expose as variable to be used by gobject-introspection
# when it includes GLib as a subproject
glib_types_h = files('glib-types.h')
@@ -135,7 +149,8 @@ libgobject = library('gobject-2.0',
install : true,
include_directories : [configinc],
dependencies : [libffi_dep, libglib_dep],
- c_args : ['-DG_LOG_DOMAIN="GLib-GObject"', '-DGOBJECT_COMPILATION'] + glib_hidden_visibility_args,
+ c_args : ['-DG_LOG_DOMAIN="GLib-GObject"', '-DGOBJECT_COMPILATION'],
+ gnu_symbol_visibility : 'hidden',
link_args : glib_link_flags,
)
@@ -150,10 +165,12 @@ pkg.generate(libgobject,
libgobject_dep = declare_dependency(link_with : libgobject,
include_directories : [gobjectinc],
- dependencies : [libglib_dep, glib_enumtypes_dep])
+ sources : [gobject_visibility_h, glib_enumtypes_h],
+ dependencies : [libglib_dep],
+)
meson.override_dependency('gobject-2.0', libgobject_dep)
-executable('gobject-query', 'gobject-query.c',
+gobject_query = executable('gobject-query', 'gobject-query.c',
install : true,
install_tag : 'bin-devel',
dependencies : [libglib_dep, libgobject_dep])
diff --git a/gobject/tests/.gitignore b/gobject/tests/.gitignore
deleted file mode 100644
index 06f3991ee..000000000
--- a/gobject/tests/.gitignore
+++ /dev/null
@@ -1,18 +0,0 @@
-binding
-boxed
-closure
-dynamictests
-enums
-ifaceproperties
-object
-param
-properties
-qdata
-reference
-signal-handler
-signals
-threadtests
-type
-value
-private
-marshalers.[ch]
diff --git a/gobject/tests/autoptr.c b/gobject/tests/autoptr.c
index ec3c89ebc..d1433460d 100644
--- a/gobject/tests/autoptr.c
+++ b/gobject/tests/autoptr.c
@@ -2,6 +2,8 @@
* Copyright (C) 2018 Canonical Ltd
* Authors: Marco Trevisan <marco@ubuntu.com>
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gobject/tests/binding.c b/gobject/tests/binding.c
index cc6e65987..70cf6d6cd 100644
--- a/gobject/tests/binding.c
+++ b/gobject/tests/binding.c
@@ -843,7 +843,7 @@ binding_fail (void)
G_BINDING_DEFAULT);
g_object_add_weak_pointer (G_OBJECT (binding), (gpointer *) &binding);
- g_test_expect_message ("GLib-GObject", G_LOG_LEVEL_WARNING,
+ g_test_expect_message ("GLib-GObject", G_LOG_LEVEL_CRITICAL,
"*Unable to convert*double*boolean*");
g_object_set (source, "double-value", 1.0, NULL);
g_test_assert_expected_messages ();
diff --git a/gobject/tests/closure-refcount.c b/gobject/tests/closure-refcount.c
index 5a920054c..574a5ec6f 100644
--- a/gobject/tests/closure-refcount.c
+++ b/gobject/tests/closure-refcount.c
@@ -1,5 +1,7 @@
/* Copyright (C) 2005 Imendio AB
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This software is provided "as is"; redistribution and modification
* is permitted, provided that the following disclaimer is retained.
*
diff --git a/gobject/tests/custom-dispatch.c b/gobject/tests/custom-dispatch.c
index 64120d269..9f5c7c77c 100644
--- a/gobject/tests/custom-dispatch.c
+++ b/gobject/tests/custom-dispatch.c
@@ -1,7 +1,7 @@
/* custom-dispatch.c: Test GObjectClass.dispatch_properties_changed
* Copyright (C) 2022 Red Hat, Inc.
*
- * SPDX-License-Identifier: LGPL-2.1-or-later
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
*
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
diff --git a/gobject/tests/dynamictests.c b/gobject/tests/dynamictests.c
index 06e1e01c1..14346705a 100644
--- a/gobject/tests/dynamictests.c
+++ b/gobject/tests/dynamictests.c
@@ -2,6 +2,8 @@
* Copyright (C) 2008 Imendio AB
* Authors: Tim Janik
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gobject/tests/dynamictype.c b/gobject/tests/dynamictype.c
index cb33cb690..214211816 100644
--- a/gobject/tests/dynamictype.c
+++ b/gobject/tests/dynamictype.c
@@ -109,8 +109,6 @@ test_dynamic_type (void)
{
DynamicObjectClass *class;
- test_module_new (module_register);
-
/* Not loaded until we call ref for the first time */
class = g_type_class_peek (DYNAMIC_OBJECT_TYPE);
g_assert_null (class);
@@ -165,6 +163,27 @@ test_dynamic_type (void)
#endif
}
+static void
+test_dynamic_type_query (void)
+{
+ DynamicObjectClass *class;
+ GTypeQuery query_result;
+
+ g_test_bug ("https://gitlab.gnome.org/GNOME/glib/-/issues/623");
+
+ class = g_type_class_ref (DYNAMIC_OBJECT_TYPE);
+ g_assert_nonnull (class);
+
+ g_type_query (DYNAMIC_OBJECT_TYPE, &query_result);
+
+ g_assert_cmpuint (query_result.type, !=, 0);
+ g_assert_cmpstr (query_result.type_name, ==, "DynamicObject");
+ g_assert_cmpuint (query_result.class_size, >=, sizeof (DynamicObjectClass));
+ g_assert_cmpuint (query_result.instance_size, >=, sizeof (DynamicObject));
+
+ g_type_class_unref (class);
+}
+
int
main (int argc,
char *argv[])
@@ -175,7 +194,10 @@ main (int argc,
g_test_init (&argc, &argv, NULL);
+ test_module_new (module_register);
+
g_test_add_func ("/gobject/dynamic-type", test_dynamic_type);
+ g_test_add_func ("/gobject/dynamic-type/query", test_dynamic_type_query);
return g_test_run ();
}
diff --git a/gobject/tests/genmarshal.py b/gobject/tests/genmarshal.py
index 7fe6b3e87..1062dfe62 100644
--- a/gobject/tests/genmarshal.py
+++ b/gobject/tests/genmarshal.py
@@ -497,7 +497,7 @@ class TestGenmarshal(unittest.TestCase):
gpointer arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_variant_ref_sink (arg0);
@@ -639,7 +639,7 @@ class TestGenmarshal(unittest.TestCase):
gpointer arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_strdup (arg0);
@@ -782,7 +782,7 @@ class TestGenmarshal(unittest.TestCase):
gpointer arg0;
va_list args_copy;
- G_VA_COPY (args_copy, args);
+ va_copy (args_copy, args);
arg0 = (gpointer) va_arg (args_copy, gpointer);
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
arg0 = g_param_spec_ref (arg0);
diff --git a/gobject/tests/gobject-query.py b/gobject/tests/gobject-query.py
index 84370a151..618b6bae9 100644
--- a/gobject/tests/gobject-query.py
+++ b/gobject/tests/gobject-query.py
@@ -24,7 +24,6 @@ import collections
import os
import shutil
import subprocess
-import sys
import unittest
import taptestrunner
@@ -70,7 +69,7 @@ class TestGobjectQuery(unittest.TestCase):
stderr=subprocess.PIPE,
env=env,
text=True,
- encoding='utf-8',
+ encoding="utf-8",
)
info.check_returncode()
out = info.stdout.strip()
diff --git a/gobject/tests/max-version.c b/gobject/tests/max-version.c
new file mode 100644
index 000000000..fa359503f
--- /dev/null
+++ b/gobject/tests/max-version.c
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2022 Collabora Ltd.
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GLIB_VERSION_MAX_ALLOWED
+/* This is the oldest version macro available */
+#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_26
+#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_26
+#endif
+
+#include <glib.h>
+
+/* All the headers that can validly be included in third-party code */
+#include <glib-object.h>
+#include <gobject/gvaluecollector.h>
+
+static void
+nothing (void)
+{
+ /* This doesn't really do anything: the real "test" is at compile time.
+ * Just make sure the GObject library gets linked. */
+ g_debug ("Loaded %s", g_type_name (G_TYPE_OBJECT));
+}
+
+int
+main (int argc,
+ char *argv[])
+{
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_func ("/max-version/tested-at-compile-time", nothing);
+ return g_test_run ();
+}
diff --git a/gobject/tests/meson.build b/gobject/tests/meson.build
index b7ba5b6b5..23f131b5c 100644
--- a/gobject/tests/meson.build
+++ b/gobject/tests/meson.build
@@ -28,10 +28,35 @@ marshalers_c = custom_target('marshalers_c',
],
)
+# We must embed custom-dispatch.exe with an application
+# manifest to pacify UAC in order to run on 32-bit Windows
+# builds, otherwise the test will not run as UAC will kill it.
+extra_custom_dispatch_objs = []
+if embed_uac_manifest
+ uac_exe_pkg = 'gobject'
+ uac_exe_name = 'custom-dispatch'
+
+ # Well, we have to forgo the xxx.exe.manifest in the output listing, since
+ # compile_resources doesn't like to consume targets with multiple outputs,
+ # and the xxx.exe.manifest and xxx.rc are tied together
+ uac_rc = custom_target(
+ '@0@.rc'.format(uac_exe_name),
+ output: ['@0@.rc'.format(uac_exe_name)],
+ command: [gen_uac_manifest,
+ '-p=@0@'.format(uac_exe_pkg),
+ '-n=@0@'.format(uac_exe_name),
+ '--pkg-version=@0@'.format(meson.project_version()),
+ '--output-dir=@OUTDIR@'],
+ )
+ extra_custom_dispatch_objs = import('windows').compile_resources(uac_rc)
+endif
+
gobject_tests = {
'notify-init' : {},
'notify-init2' : {},
- 'custom-dispatch' : {},
+ 'custom-dispatch' : {
+ 'extra_objs' : extra_custom_dispatch_objs,
+ },
'qdata' : {},
'accumulator' : {
'source' : ['accumulator.c', marshalers_h, marshalers_c],
@@ -41,12 +66,13 @@ gobject_tests = {
'defaultiface' : {
'source' : ['defaultiface.c', 'testmodule.c'],
},
- 'deftype' : {},
+ 'deftype' : { 'protocol': 'exitcode' },
'deprecated-properties' : {},
'dynamictype' : {
'source' : ['dynamictype.c', 'testmodule.c'],
},
'enums' : {},
+ 'max-version' : {'install': false},
'override' : {},
'param' : {},
'references' : {},
@@ -75,7 +101,13 @@ gobject_tests = {
'signalgroup' : {},
'testing' : {},
'type-flags' : {},
- 'objects-refcount1' : {},
+ 'objects-refcount1' : {
+ 'c_args': cc.get_supported_arguments([
+ '-DG_DISABLE_CAST_CHECKS',
+ '-Werror',
+ '-Wcast-align=strict',
+ ]),
+ },
'objects-refcount2' : {'suite' : ['slow']},
'properties-refcount1' : {},
'properties-refcount2' : {'suite' : ['slow']},
@@ -102,6 +134,7 @@ gobject_tests = {
if have_cxx
gobject_tests += {
'cxx' : {
+ 'protocol': 'exitcode',
'source' : ['cxx.cpp'],
'suite' : ['cpp'],
},
@@ -110,6 +143,7 @@ if have_cxx
foreach std, arg: cxx_standards
gobject_tests += {
'cxx-@0@'.format(std) : {
+ 'protocol': 'exitcode',
'source' : ['cxx.cpp'],
'suite' : ['cpp'],
'cpp_args' : [arg],
@@ -122,18 +156,18 @@ if cc.get_id() != 'msvc'
gobject_tests += {'autoptr' : {}}
endif
-python_tests = [
- 'genmarshal.py',
- 'gobject-query.py',
- 'mkenums.py',
-]
+python_tests = {
+ 'genmarshal.py' : {},
+ 'gobject-query.py' : {
+ 'depends' : gobject_query,
+ 'can_fail' : host_system == 'windows',
+ },
+ 'mkenums.py' : {},
+}
-# FIXME: put common bits of test environment() in one location
test_env = environment()
test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
-test_env.set('G_DEBUG', 'gc-friendly')
-test_env.set('MALLOC_CHECK_', '2')
test_deps = [libm, thread_dep, libglib_dep, libgobject_dep]
test_cargs = ['-DG_LOG_DOMAIN="GLib-GObject"', '-UG_DISABLE_ASSERT']
@@ -141,6 +175,7 @@ test_cpp_args = test_cargs
foreach test_name, extra_args : gobject_tests
source = extra_args.get('source', test_name + '.c')
+ extra_objs = extra_args.get('extra_objs', [])
install = installed_tests_enabled and extra_args.get('install', true)
if install
@@ -157,7 +192,7 @@ foreach test_name, extra_args : gobject_tests
)
endif
- exe = executable(test_name, source,
+ exe = executable(test_name, source, extra_objs,
c_args : test_cargs + extra_args.get('c_args', []),
cpp_args : test_cpp_args + extra_args.get('cpp_args', []),
dependencies : test_deps + extra_args.get('dependencies', []),
@@ -169,22 +204,41 @@ foreach test_name, extra_args : gobject_tests
suite = ['gobject'] + extra_args.get('suite', [])
timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
+ if extra_args.get('can_fail', false)
+ suite += 'failing'
+ endif
+
# FIXME: https://gitlab.gnome.org/GNOME/glib/issues/1316
# aka https://bugs.debian.org/880883
if test_name == 'closure-refcount' and ['arm', 'aarch64'].contains(host_machine.cpu_family())
timeout = timeout * 10
endif
- test(test_name, exe, env : test_env, timeout : timeout, suite : suite)
+ test(test_name,
+ exe,
+ protocol : extra_args.get('protocol', test_protocol),
+ env : test_env,
+ timeout : timeout,
+ suite : suite,
+ )
endforeach
-foreach test_name : python_tests
+foreach test_name, extra_args : python_tests
+ depends = [extra_args.get('depends', [])]
+ suite = ['gobject', 'no-valgrind']
+
+ if extra_args.get('can_fail', false)
+ suite += 'failing'
+ endif
+
test(
test_name,
python,
+ protocol : extra_args.get('protocol', test_protocol),
+ depends: depends,
args: ['-B', files(test_name)],
env: test_env,
- suite: ['gobject', 'no-valgrind'],
+ suite: suite,
)
if installed_tests_enabled
diff --git a/gobject/tests/mkenums.py b/gobject/tests/mkenums.py
index 09b770281..0b40daeaf 100644
--- a/gobject/tests/mkenums.py
+++ b/gobject/tests/mkenums.py
@@ -520,6 +520,31 @@ comment: {standard_bottom_comment}
"0",
)
+ def test_with_double_quotes(self):
+ """Test trigraphs with double-quoted expressions. Issue #65."""
+ h_contents = """
+ typedef enum {
+ FOO_VALUE /*< nick="eek, a comma" >*/
+ } Foo;
+ """
+ result = self.runMkenumsWithHeader(h_contents)
+ self.assertEqual("", result.err)
+ self.assertSingleEnum(
+ result,
+ "Foo",
+ "foo_",
+ "FOO_",
+ "",
+ "FOO",
+ "",
+ "enum",
+ "Enum",
+ "ENUM",
+ "FOO_VALUE",
+ "eek, a comma",
+ "0",
+ )
+
def test_filename_basename_in_fhead_ftail(self):
template_contents = """
/*** BEGIN file-header ***/
@@ -649,7 +674,7 @@ comment: {standard_bottom_comment}
"ENUM",
"ENUM_VALUE_PUBLIC2",
"public2",
- "0",
+ "1",
)
def test_available_in(self):
@@ -730,6 +755,35 @@ comment: {standard_bottom_comment}
"4",
)
+ def test_enum_symbolic_expression(self):
+ """Test use of symbol in value expression."""
+ h_contents = """
+ typedef enum {
+ /*< private >*/
+ ENUM_VALUE_PRIVATE = 5,
+ /*< public >*/
+ ENUM_VALUE_PUBLIC = ENUM_VALUE_PRIVATE + 2,
+ } TestSymbolicEnum;
+ """
+
+ result = self.runMkenumsWithHeader(h_contents)
+ self.assertEqual("", result.err)
+ self.assertSingleEnum(
+ result,
+ "TestSymbolicEnum",
+ "test_symbolic_enum",
+ "TEST_SYMBOLIC_ENUM",
+ "SYMBOLIC_ENUM",
+ "TEST",
+ "",
+ "enum",
+ "Enum",
+ "ENUM",
+ "ENUM_VALUE_PUBLIC",
+ "public",
+ "7",
+ )
+
class TestRspMkenums(TestMkenums):
"""Run all tests again in @rspfile mode"""
diff --git a/gobject/tests/notify-init.c b/gobject/tests/notify-init.c
index 17500cbe9..3773372a1 100644
--- a/gobject/tests/notify-init.c
+++ b/gobject/tests/notify-init.c
@@ -1,6 +1,8 @@
/* GLib testing framework examples and tests
* Copyright (C) 2022 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gobject/tests/notify-init2.c b/gobject/tests/notify-init2.c
index c3ebae002..04ccd865c 100644
--- a/gobject/tests/notify-init2.c
+++ b/gobject/tests/notify-init2.c
@@ -1,6 +1,8 @@
/* GLib testing framework examples and tests
* Copyright (C) 2022 Red Hat, Inc.
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gobject/tests/objects-refcount1.c b/gobject/tests/objects-refcount1.c
index 4ecf877a9..5ba55890a 100644
--- a/gobject/tests/objects-refcount1.c
+++ b/gobject/tests/objects-refcount1.c
@@ -15,10 +15,27 @@
typedef struct _GTest GTest;
typedef struct _GTestClass GTestClass;
+#if G_GNUC_CHECK_VERSION (4, 0)
+/* Increase the alignment of GTest to check whether
+ * G_TYPE_CHECK_INSTANCE_CAST() would trigger a "-Wcast-align=strict" warning.
+ * That would happen, when trying to cast a "GObject*" to "GTest*", if latter
+ * has larger alignment.
+ *
+ * Note that merely adding a int64 field to GTest does not increase the
+ * alignment above 4 bytes on i386, hence use the __attribute__((__aligned__())).
+ */
+#define _GTest_increase_alignment __attribute__((__aligned__(__alignof(gint64))))
+#else
+#define _GTest_increase_alignment
+#endif
+
struct _GTest
{
GObject object;
-};
+
+ /* See _GTest_increase_alignment. */
+ long double increase_alignment2;
+} _GTest_increase_alignment;
struct _GTestClass
{
diff --git a/gobject/tests/performance/meson.build b/gobject/tests/performance/meson.build
index f9102ff4a..2984a6c28 100644
--- a/gobject/tests/performance/meson.build
+++ b/gobject/tests/performance/meson.build
@@ -3,12 +3,9 @@ gobject_tests = {
'performance-threaded' : { 'args' : [ '--seconds', '0' ] },
}
-# FIXME: put common bits of test environment() in one location
test_env = environment()
test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
-test_env.set('G_DEBUG', 'gc-friendly')
-test_env.set('MALLOC_CHECK_', '2')
test_deps = [libm, thread_dep, libglib_dep, libgobject_dep]
test_cargs = ['-DG_LOG_DOMAIN="GLib-GObject"', '-UG_DISABLE_ASSERT']
@@ -39,10 +36,14 @@ foreach test_name, extra_args : gobject_tests
install: install,
)
- suite = ['gobject', 'performance'] + extra_args.get('suite', [])
+ suite = ['gobject', 'performance', 'no-valgrind'] + extra_args.get('suite', [])
timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
args = extra_args.get('args', [])
+ if extra_args.get('can_fail', false)
+ suite += 'failing'
+ endif
+
test(test_name, exe,
env : test_env,
timeout : timeout,
diff --git a/gobject/tests/performance/performance.c b/gobject/tests/performance/performance.c
index e2d0b1abd..e8ad3915e 100644
--- a/gobject/tests/performance/performance.c
+++ b/gobject/tests/performance/performance.c
@@ -1,5 +1,6 @@
/* GObject - GLib Type, Object, Parameter and Signal Library
* Copyright (C) 2009 Red Hat, Inc.
+ * Copyright (C) 2022 Canonical Ltd.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -907,6 +908,297 @@ test_emission_handled_teardown (PerformanceTest *test,
}
/*************************************************************
+ * Test object notify performance (common code)
+ *************************************************************/
+
+#define NUM_NOTIFY_PER_ROUND 10000
+
+struct NotifyTest {
+ GObject *object;
+ unsigned n_checks;
+};
+
+static void
+test_notify_run (PerformanceTest *test,
+ void *_data)
+{
+ struct NotifyTest *data = _data;
+ GObject *object = data->object;
+
+ for (unsigned i = 0; i < data->n_checks; i++)
+ g_object_notify (object, "val1");
+}
+
+static void
+test_notify_by_pspec_run (PerformanceTest *test,
+ void *_data)
+{
+ struct NotifyTest *data = _data;
+ GObject *object = data->object;
+
+ for (unsigned i = 0; i < data->n_checks; i++)
+ g_object_notify_by_pspec (object, pspecs[PROP_VAL1]);
+}
+
+/*************************************************************
+ * Test notify unhandled performance
+ *************************************************************/
+
+static void *
+test_notify_unhandled_setup (PerformanceTest *test)
+{
+ struct NotifyTest *data;
+
+ data = g_new0 (struct NotifyTest, 1);
+ data->object = g_object_new (COMPLEX_TYPE_OBJECT, NULL);
+ return data;
+}
+
+static void
+test_notify_unhandled_init (PerformanceTest *test,
+ void *_data,
+ double factor)
+{
+ struct NotifyTest *data = _data;
+
+ data->n_checks = factor * NUM_NOTIFY_PER_ROUND;
+}
+
+static void
+test_notify_unhandled_finish (PerformanceTest *test,
+ void *data)
+{
+}
+
+static void
+test_notify_unhandled_print_result (PerformanceTest *test,
+ void *_data,
+ double time)
+{
+ struct NotifyTest *data = _data;
+
+ g_print ("Notify (unhandled) per second: %.0f\n",
+ data->n_checks / time);
+}
+
+static void
+test_notify_unhandled_teardown (PerformanceTest *test,
+ void *_data)
+{
+ struct NotifyTest *data = _data;
+
+ g_object_unref (data->object);
+ g_free (data);
+}
+
+/*************************************************************
+ * Test notify handled performance
+ *************************************************************/
+
+static void
+test_notify_handled_handler (ComplexObject *obj, GParamSpec *pspec, void *data)
+{
+}
+
+static void *
+test_notify_handled_setup (PerformanceTest *test)
+{
+ struct NotifyTest *data;
+
+ data = g_new0 (struct NotifyTest, 1);
+ data->object = g_object_new (COMPLEX_TYPE_OBJECT, NULL);
+
+ g_signal_connect (data->object, "notify::val1",
+ G_CALLBACK (test_notify_handled_handler), data);
+ g_signal_connect (data->object, "notify::val2",
+ G_CALLBACK (test_notify_handled_handler), data);
+
+ return data;
+}
+
+static void
+test_notify_handled_init (PerformanceTest *test,
+ void *_data,
+ double factor)
+{
+ struct NotifyTest *data = _data;
+
+ data->n_checks = factor * NUM_NOTIFY_PER_ROUND;
+}
+
+static void
+test_notify_handled_finish (PerformanceTest *test,
+ void *data)
+{
+}
+
+static void
+test_notify_handled_print_result (PerformanceTest *test,
+ void *_data,
+ double time)
+{
+ struct NotifyTest *data = _data;
+
+ g_print ("Notify per second: %.0f\n",
+ data->n_checks / time);
+}
+
+static void
+test_notify_handled_teardown (PerformanceTest *test,
+ void *_data)
+{
+ struct NotifyTest *data = _data;
+
+ g_assert_cmpuint (
+ g_signal_handlers_disconnect_by_func (data->object,
+ test_notify_handled_handler,
+ data), ==, 2);
+ g_object_unref (data->object);
+ g_free (data);
+}
+
+/*************************************************************
+ * Test object set performance
+ *************************************************************/
+
+#define NUM_SET_PER_ROUND 10000
+
+struct SetTest {
+ GObject *object;
+ unsigned n_checks;
+};
+
+static void
+test_set_run (PerformanceTest *test,
+ void *_data)
+{
+ struct SetTest *data = _data;
+ GObject *object = data->object;
+
+ for (unsigned i = 0; i < data->n_checks; i++)
+ g_object_set (object, "val1", i, NULL);
+}
+
+static void *
+test_set_setup (PerformanceTest *test)
+{
+ struct SetTest *data;
+
+ data = g_new0 (struct SetTest, 1);
+ data->object = g_object_new (COMPLEX_TYPE_OBJECT, NULL);
+
+ return data;
+}
+
+static void
+test_set_init (PerformanceTest *test,
+ void *_data,
+ double factor)
+{
+ struct SetTest *data = _data;
+
+ data->n_checks = factor * NUM_SET_PER_ROUND;
+}
+
+static void
+test_set_finish (PerformanceTest *test,
+ void *data)
+{
+}
+
+static void
+test_set_print_result (PerformanceTest *test,
+ void *_data,
+ double time)
+{
+ struct SetTest *data = _data;
+
+ g_print ("Property set per second: %.0f\n",
+ data->n_checks / time);
+}
+
+static void
+test_set_teardown (PerformanceTest *test,
+ void *_data)
+{
+ struct SetTest *data = _data;
+
+ g_object_unref (data->object);
+ g_free (data);
+}
+
+/*************************************************************
+ * Test object get performance
+ *************************************************************/
+
+#define NUM_GET_PER_ROUND 10000
+
+struct GetTest {
+ GObject *object;
+ unsigned n_checks;
+};
+
+static void
+test_get_run (PerformanceTest *test,
+ void *_data)
+{
+ struct GetTest *data = _data;
+ GObject *object = data->object;
+ int val;
+
+ for (unsigned i = 0; i < data->n_checks; i++)
+ g_object_get (object, "val1", &val, NULL);
+}
+
+static void *
+test_get_setup (PerformanceTest *test)
+{
+ struct GetTest *data;
+
+ data = g_new0 (struct GetTest, 1);
+ data->object = g_object_new (COMPLEX_TYPE_OBJECT, NULL);
+
+ return data;
+}
+
+static void
+test_get_init (PerformanceTest *test,
+ void *_data,
+ double factor)
+{
+ struct GetTest *data = _data;
+
+ data->n_checks = factor * NUM_GET_PER_ROUND;
+}
+
+static void
+test_get_finish (PerformanceTest *test,
+ void *data)
+{
+}
+
+static void
+test_get_print_result (PerformanceTest *test,
+ void *_data,
+ double time)
+{
+ struct GetTest *data = _data;
+
+ g_print ("Property get per second: %.0f\n",
+ data->n_checks / time);
+}
+
+static void
+test_get_teardown (PerformanceTest *test,
+ gpointer _data)
+{
+ struct GetTest *data = _data;
+
+ g_object_unref (data->object);
+ g_free (data);
+}
+
+/*************************************************************
* Test object refcount performance
*************************************************************/
@@ -1164,6 +1456,66 @@ static PerformanceTest tests[] = {
test_emission_handled_print_result
},
{
+ "notify-unhandled",
+ complex_object_get_type,
+ test_notify_unhandled_setup,
+ test_notify_unhandled_init,
+ test_notify_run,
+ test_notify_unhandled_finish,
+ test_notify_unhandled_teardown,
+ test_notify_unhandled_print_result
+ },
+ {
+ "notify-by-pspec-unhandled",
+ complex_object_get_type,
+ test_notify_unhandled_setup,
+ test_notify_unhandled_init,
+ test_notify_by_pspec_run,
+ test_notify_unhandled_finish,
+ test_notify_unhandled_teardown,
+ test_notify_unhandled_print_result
+ },
+ {
+ "notify-handled",
+ complex_object_get_type,
+ test_notify_handled_setup,
+ test_notify_handled_init,
+ test_notify_run,
+ test_notify_handled_finish,
+ test_notify_handled_teardown,
+ test_notify_handled_print_result
+ },
+ {
+ "notify-by-pspec-handled",
+ complex_object_get_type,
+ test_notify_handled_setup,
+ test_notify_handled_init,
+ test_notify_by_pspec_run,
+ test_notify_handled_finish,
+ test_notify_handled_teardown,
+ test_notify_handled_print_result
+ },
+ {
+ "property-set",
+ complex_object_get_type,
+ test_set_setup,
+ test_set_init,
+ test_set_run,
+ test_set_finish,
+ test_set_teardown,
+ test_set_print_result
+ },
+ {
+ "property-get",
+ complex_object_get_type,
+ test_get_setup,
+ test_get_init,
+ test_get_run,
+ test_get_finish,
+ test_get_teardown,
+ test_get_print_result
+ },
+ {
"refcount",
NULL,
test_refcount_setup,
diff --git a/gobject/tests/properties.c b/gobject/tests/properties.c
index 837d4ba34..c6c42a24b 100644
--- a/gobject/tests/properties.c
+++ b/gobject/tests/properties.c
@@ -619,7 +619,7 @@ properties_testv_with_invalid_property_type (void)
}
g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
g_test_trap_assert_failed ();
- g_test_trap_assert_stderr ("*WARNING*foo*gint*gchararray*");
+ g_test_trap_assert_stderr ("*CRITICAL*foo*gint*gchararray*");
}
diff --git a/gobject/tests/reference.c b/gobject/tests/reference.c
index c7afc8abd..fa85ef997 100644
--- a/gobject/tests/reference.c
+++ b/gobject/tests/reference.c
@@ -336,6 +336,20 @@ test_initially_unowned (void)
g_assert_cmpint (obj->ref_count, ==, 1);
g_object_unref (obj);
+
+ if (g_test_undefined ())
+ {
+ obj = g_object_new (G_TYPE_INITIALLY_UNOWNED, NULL);
+
+#ifdef G_ENABLE_DEBUG
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "A floating object GInitiallyUnowned * was finalized*");
+#endif
+ g_object_unref (obj);
+#ifdef G_ENABLE_DEBUG
+ g_test_assert_expected_messages ();
+#endif
+ }
}
static void
@@ -717,6 +731,11 @@ toggle_notify (gpointer data,
g_assert (is_last == c->should_be_last);
+ if (is_last)
+ g_assert_cmpint (g_atomic_int_get (&obj->ref_count), ==, 1);
+ else
+ g_assert_cmpint (g_atomic_int_get (&obj->ref_count), ==, 2);
+
c->count++;
}
@@ -765,6 +784,383 @@ test_toggle_ref (void)
g_object_remove_toggle_ref (obj, toggle_notify, &c);
}
+G_DECLARE_FINAL_TYPE (DisposeReffingObject, dispose_reffing_object,
+ DISPOSE, REFFING_OBJECT, GObject)
+
+typedef enum
+{
+ PROP_INT_PROP = 1,
+ N_PROPS,
+} DisposeReffingObjectProperty;
+
+static GParamSpec *dispose_reffing_object_properties[N_PROPS] = {0};
+
+struct _DisposeReffingObject
+{
+ GObject parent;
+
+ GToggleNotify toggle_notify;
+ Count actual;
+ Count expected;
+ unsigned disposing_refs;
+ gboolean disposing_refs_all_normal;
+
+ GCallback notify_handler;
+ unsigned notify_called;
+
+ int int_prop;
+
+ GWeakRef *weak_ref;
+};
+
+G_DEFINE_TYPE (DisposeReffingObject, dispose_reffing_object, G_TYPE_OBJECT)
+
+static void
+on_object_notify (GObject *object,
+ GParamSpec *pspec,
+ void *data)
+{
+ DisposeReffingObject *obj = DISPOSE_REFFING_OBJECT (object);
+
+ obj->notify_called++;
+}
+
+static void
+dispose_reffing_object_dispose (GObject *object)
+{
+ DisposeReffingObject *obj = DISPOSE_REFFING_OBJECT (object);
+
+ g_assert_cmpint (object->ref_count, ==, 1);
+ g_assert_cmpint (obj->actual.count, ==, obj->expected.count);
+
+ for (unsigned i = 0; i < obj->disposing_refs; ++i)
+ {
+ if (i == 0 && !obj->disposing_refs_all_normal)
+ {
+ g_object_add_toggle_ref (object, obj->toggle_notify, &obj->actual);
+ }
+ else
+ {
+ obj->actual.should_be_last = FALSE;
+ g_object_ref (obj);
+ g_assert_cmpint (obj->actual.count, ==, obj->expected.count);
+ }
+
+ obj->actual.should_be_last = TRUE;
+ }
+
+ G_OBJECT_CLASS (dispose_reffing_object_parent_class)->dispose (object);
+
+ if (obj->notify_handler)
+ {
+ unsigned old_notify_called = obj->notify_called;
+
+ g_assert_cmpuint (g_signal_handler_find (object, G_SIGNAL_MATCH_FUNC,
+ 0, 0, NULL, obj->notify_handler, NULL), ==, 0);
+
+ g_signal_connect (object, "notify", G_CALLBACK (obj->notify_handler), NULL);
+
+ /* This would trigger a toggle notification, but is not something we may
+ * want with https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2377
+ * so, we only test this in case we have more than one ref
+ */
+ if (obj->toggle_notify == toggle_notify)
+ g_assert_cmpint (obj->disposing_refs, >, 1);
+
+ g_object_notify (object, "int-prop");
+ g_assert_cmpuint (obj->notify_called, ==, old_notify_called);
+ }
+
+ g_assert_cmpint (obj->actual.count, ==, obj->expected.count);
+}
+
+static void
+dispose_reffing_object_init (DisposeReffingObject *connector)
+{
+}
+
+static void
+dispose_reffing_object_set_property (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ DisposeReffingObject *obj = DISPOSE_REFFING_OBJECT (object);
+
+ switch ((DisposeReffingObjectProperty) property_id)
+ {
+ case PROP_INT_PROP:
+ obj->int_prop = g_value_get_int (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+dispose_reffing_object_get_property (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ DisposeReffingObject *obj = DISPOSE_REFFING_OBJECT (object);
+
+ switch ((DisposeReffingObjectProperty) property_id)
+ {
+ case PROP_INT_PROP:
+ g_value_set_int (value, obj->int_prop);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+dispose_reffing_object_class_init (DisposeReffingObjectClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ dispose_reffing_object_properties[PROP_INT_PROP] =
+ g_param_spec_int ("int-prop", "int-prop", "int-prop",
+ G_MININT, G_MAXINT,
+ 0,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ object_class->dispose = dispose_reffing_object_dispose;
+ object_class->set_property = dispose_reffing_object_set_property;
+ object_class->get_property = dispose_reffing_object_get_property;
+
+ g_object_class_install_properties (object_class, N_PROPS,
+ dispose_reffing_object_properties);
+}
+
+static void
+test_toggle_ref_on_dispose (void)
+{
+ DisposeReffingObject *obj;
+ gpointer disposed_checker = &obj;
+
+ /* This tests wants to ensure that an object that gets re-referenced
+ * (one or multiple times) during its dispose virtual function:
+ * - Notifies all the queued "notify" signal handlers
+ * - Notifies toggle notifications if any
+ * - It does not get finalized
+ */
+
+ obj = g_object_new (dispose_reffing_object_get_type (), NULL);
+ obj->toggle_notify = toggle_notify;
+ obj->notify_handler = G_CALLBACK (on_object_notify);
+ g_object_add_weak_pointer (G_OBJECT (obj), &disposed_checker);
+
+ /* Convert to toggle notification */
+ g_object_add_toggle_ref (G_OBJECT (obj), obj->toggle_notify, &obj->actual);
+ g_assert_cmpint (obj->actual.count, ==, 0);
+
+ obj->actual.should_be_last = TRUE;
+ obj->notify_handler = G_CALLBACK (on_object_notify);
+ g_object_unref (obj);
+ g_assert_cmpint (obj->actual.count, ==, 1);
+ g_assert_cmpuint (obj->notify_called, ==, 0);
+
+ /* Remove the toggle reference, making it to dispose and resurrect again */
+ obj->disposing_refs = 1;
+ obj->expected.count = 1;
+ obj->notify_handler = NULL; /* FIXME: enable it when !2377 is in */
+ g_object_remove_toggle_ref (G_OBJECT (obj), obj->toggle_notify, NULL);
+ g_assert_cmpint (obj->actual.count, ==, 2);
+ g_assert_cmpuint (obj->notify_called, ==, 0);
+
+ g_assert_null (disposed_checker);
+ g_assert_cmpint (g_atomic_int_get (&G_OBJECT (obj)->ref_count), ==,
+ obj->disposing_refs);
+
+ /* Object has been disposed, but is still alive, so add another weak pointer */
+ disposed_checker = &obj;
+ g_object_add_weak_pointer (G_OBJECT (obj), &disposed_checker);
+
+ /* Remove the toggle reference, making it to dispose and resurrect with
+ * more references than before, so that no toggle notify is called
+ */
+ obj->disposing_refs = 3;
+ obj->expected.count = 2;
+ obj->notify_handler = G_CALLBACK (on_object_notify);
+ g_object_remove_toggle_ref (G_OBJECT (obj), obj->toggle_notify, NULL);
+ g_assert_cmpint (obj->actual.count, ==, 2);
+ g_assert_cmpint (obj->notify_called, ==, 1);
+ obj->expected.count = obj->actual.count;
+
+ g_assert_null (disposed_checker);
+ g_assert_cmpint (g_atomic_int_get (&G_OBJECT (obj)->ref_count), ==,
+ obj->disposing_refs);
+
+ disposed_checker = &obj;
+ g_object_add_weak_pointer (G_OBJECT (obj), &disposed_checker);
+
+ /* Now remove the first added reference */
+ obj->disposing_refs = 0;
+ g_object_unref (obj);
+ g_assert_nonnull (disposed_checker);
+ g_assert_cmpint (g_atomic_int_get (&G_OBJECT (obj)->ref_count), ==, 2);
+ g_assert_cmpint (obj->actual.count, ==, 2);
+ g_assert_cmpint (obj->notify_called, ==, 1);
+
+ /* And the toggle one */
+ obj->actual.should_be_last = TRUE;
+ obj->notify_handler = NULL;
+ g_object_remove_toggle_ref (G_OBJECT (obj), obj->toggle_notify, NULL);
+ g_assert_nonnull (disposed_checker);
+ g_assert_cmpint (g_atomic_int_get (&G_OBJECT (obj)->ref_count), ==, 1);
+ g_assert_cmpint (obj->actual.count, ==, 2);
+ obj->expected.count = obj->actual.count;
+
+ g_clear_object (&obj);
+ g_assert_null (disposed_checker);
+}
+
+static void
+toggle_notify_counter (gpointer data,
+ GObject *obj,
+ gboolean is_last)
+{
+ Count *c = data;
+ c->count++;
+
+ if (is_last)
+ g_assert_cmpint (g_atomic_int_get (&obj->ref_count), ==, 1);
+ else
+ g_assert_cmpint (g_atomic_int_get (&obj->ref_count), ==, 2);
+}
+
+static void
+on_object_notify_switch_to_normal_ref (GObject *object,
+ GParamSpec *pspec,
+ void *data)
+{
+ DisposeReffingObject *obj = DISPOSE_REFFING_OBJECT (object);
+
+ obj->notify_called++;
+
+ g_object_ref (object);
+ g_object_remove_toggle_ref (object, obj->toggle_notify, NULL);
+}
+
+static void
+on_object_notify_switch_to_toggle_ref (GObject *object,
+ GParamSpec *pspec,
+ void *data)
+{
+ DisposeReffingObject *obj = DISPOSE_REFFING_OBJECT (object);
+
+ obj->notify_called++;
+
+ g_object_add_toggle_ref (object, obj->toggle_notify, &obj->actual);
+ g_object_unref (object);
+}
+
+static void
+on_object_notify_add_ref (GObject *object,
+ GParamSpec *pspec,
+ void *data)
+{
+ DisposeReffingObject *obj = DISPOSE_REFFING_OBJECT (object);
+ int old_toggle_cout = obj->actual.count;
+
+ obj->notify_called++;
+
+ g_object_ref (object);
+ g_assert_cmpint (obj->actual.count, ==, old_toggle_cout);
+}
+
+static void
+test_toggle_ref_and_notify_on_dispose (void)
+{
+ DisposeReffingObject *obj;
+ gpointer disposed_checker = &obj;
+
+ /* This tests wants to ensure that toggle signal emission during dispose
+ * is properly working if the object is revitalized by adding new references.
+ * It also wants to check that toggle notifications are not happening if a
+ * notify handler is removing them at this phase.
+ */
+
+ obj = g_object_new (dispose_reffing_object_get_type (), NULL);
+ obj->toggle_notify = toggle_notify_counter;
+ g_object_add_weak_pointer (G_OBJECT (obj), &disposed_checker);
+
+ /* Convert to toggle notification */
+ g_object_add_toggle_ref (G_OBJECT (obj), obj->toggle_notify, &obj->actual);
+ g_assert_cmpint (obj->actual.count, ==, 0);
+
+ obj->notify_handler = G_CALLBACK (on_object_notify);
+ g_object_unref (obj);
+ g_assert_cmpint (obj->actual.count, ==, 1);
+ g_assert_cmpuint (obj->notify_called, ==, 0);
+
+ disposed_checker = &obj;
+ g_object_add_weak_pointer (G_OBJECT (obj), &disposed_checker);
+
+ /* Check that notification is triggered after being queued */
+ obj->disposing_refs = 1;
+ obj->expected.count = 1;
+ obj->notify_handler = G_CALLBACK (on_object_notify);
+ g_object_remove_toggle_ref (G_OBJECT (obj), obj->toggle_notify, NULL);
+ /* FIXME: adjust the count to 1 when !2377 is in */
+ g_assert_cmpint (obj->actual.count, ==, 4);
+ g_assert_cmpuint (obj->notify_called, ==, 1);
+
+ disposed_checker = &obj;
+ g_object_add_weak_pointer (G_OBJECT (obj), &disposed_checker);
+
+ /* Check that notification is triggered after being queued, but no toggle
+ * notification is happening if notify handler switches to normal reference
+ */
+ obj->disposing_refs = 1;
+ obj->expected.count = 4;
+ obj->notify_handler = G_CALLBACK (on_object_notify_switch_to_normal_ref);
+ g_object_remove_toggle_ref (G_OBJECT (obj), obj->toggle_notify, NULL);
+ g_assert_cmpint (obj->actual.count, ==, 5);
+ g_assert_cmpuint (obj->notify_called, ==, 2);
+
+ disposed_checker = &obj;
+ g_object_add_weak_pointer (G_OBJECT (obj), &disposed_checker);
+
+ /* Check that notification is triggered after being queued, but that toggle
+ * is happening if notify handler switched to toggle reference
+ */
+ obj->disposing_refs = 1;
+ obj->disposing_refs_all_normal = TRUE;
+ obj->expected.count = 5;
+ obj->notify_handler = G_CALLBACK (on_object_notify_switch_to_toggle_ref);
+ g_object_unref (obj);
+ g_assert_cmpint (obj->actual.count, ==, 7);
+ g_assert_cmpuint (obj->notify_called, ==, 3);
+
+ disposed_checker = &obj;
+ g_object_add_weak_pointer (G_OBJECT (obj), &disposed_checker);
+
+ /* Check that notification is triggered after being queued, but that toggle
+ * is not happening if current refcount changed.
+ */
+ obj->disposing_refs = 1;
+ obj->disposing_refs_all_normal = FALSE;
+ obj->expected.count = 7;
+ obj->notify_handler = G_CALLBACK (on_object_notify_add_ref);
+ g_object_remove_toggle_ref (G_OBJECT (obj), obj->toggle_notify, NULL);
+ g_assert_cmpint (obj->actual.count, ==, 8);
+ g_assert_cmpuint (obj->notify_called, ==, 4);
+ g_object_unref (obj);
+
+ disposed_checker = &obj;
+ g_object_add_weak_pointer (G_OBJECT (obj), &disposed_checker);
+
+ obj->disposing_refs = 0;
+ obj->expected.count = 9;
+ g_clear_object (&obj);
+ g_assert_null (disposed_checker);
+}
+
static gboolean global_destroyed;
static gint global_value;
@@ -945,6 +1341,8 @@ main (int argc, char **argv)
{
g_test_init (&argc, &argv, NULL);
+ g_setenv ("G_ENABLE_DIAGNOSTIC", "1", TRUE);
+
g_test_add_func ("/type/fundamentals", test_fundamentals);
g_test_add_func ("/type/qdata", test_type_qdata);
g_test_add_func ("/type/query", test_type_query);
@@ -966,6 +1364,8 @@ main (int argc, char **argv)
g_test_add_func ("/object/weak-ref/on-run-dispose", test_weak_ref_on_run_dispose);
g_test_add_func ("/object/weak-ref/on-toggle-notify", test_weak_ref_on_toggle_notify);
g_test_add_func ("/object/toggle-ref", test_toggle_ref);
+ g_test_add_func ("/object/toggle-ref/ref-on-dispose", test_toggle_ref_on_dispose);
+ g_test_add_func ("/object/toggle-ref/ref-and-notify-on-dispose", test_toggle_ref_and_notify_on_dispose);
g_test_add_func ("/object/qdata", test_object_qdata);
g_test_add_func ("/object/qdata2", test_object_qdata2);
diff --git a/gobject/tests/signalgroup.c b/gobject/tests/signalgroup.c
index 436d7ead1..198c16ca4 100644
--- a/gobject/tests/signalgroup.c
+++ b/gobject/tests/signalgroup.c
@@ -305,7 +305,7 @@ test_signal_group_invalid (void)
/* Invalid Signal Name */
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
- "*g_signal_parse_name*");
+ "*Invalid signal name “does-not-exist”*");
group = g_signal_group_new (signal_target_get_type ());
g_signal_group_connect (group,
"does-not-exist",
diff --git a/gobject/tests/signals.c b/gobject/tests/signals.c
index e3648cfad..92a288215 100644
--- a/gobject/tests/signals.c
+++ b/gobject/tests/signals.c
@@ -4,13 +4,13 @@
#define g_assert_cmpflags(type,n1, cmp, n2) G_STMT_START { \
type __n1 = (n1), __n2 = (n2); \
if (__n1 cmp __n2) ; else \
- g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ g_assertion_message_cmpint (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
#n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'i'); \
} G_STMT_END
#define g_assert_cmpenum(type,n1, cmp, n2) G_STMT_START { \
type __n1 = (n1), __n2 = (n2); \
if (__n1 cmp __n2) ; else \
- g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ g_assertion_message_cmpint (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
#n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'i'); \
} G_STMT_END
@@ -1130,12 +1130,35 @@ hook_func (GSignalInvocationHint *ihint,
return TRUE;
}
+static gboolean
+hook_func_removal (GSignalInvocationHint *ihint,
+ guint n_params,
+ const GValue *params,
+ gpointer data)
+{
+ gint *count = data;
+
+ (*count)++;
+
+ return FALSE;
+}
+
+static void
+simple_handler_remove_hook (GObject *sender,
+ gpointer data)
+{
+ gulong *hook = data;
+
+ g_signal_remove_emission_hook (simple_id, *hook);
+}
+
static void
test_emission_hook (void)
{
GObject *test1, *test2;
gint count = 0;
gulong hook;
+ gulong connection_id;
test1 = g_object_new (test_get_type (), NULL);
test2 = g_object_new (test_get_type (), NULL);
@@ -1150,6 +1173,73 @@ test_emission_hook (void)
g_signal_emit_by_name (test1, "simple");
g_assert_cmpint (count, ==, 2);
+ count = 0;
+ hook = g_signal_add_emission_hook (simple_id, 0, hook_func_removal, &count, NULL);
+ g_assert_cmpint (count, ==, 0);
+ g_signal_emit_by_name (test1, "simple");
+ g_assert_cmpint (count, ==, 1);
+ g_signal_emit_by_name (test2, "simple");
+ g_assert_cmpint (count, ==, 1);
+
+ g_test_expect_message ("GLib-GObject", G_LOG_LEVEL_CRITICAL,
+ "*simple* had no hook * to remove");
+ g_signal_remove_emission_hook (simple_id, hook);
+ g_test_assert_expected_messages ();
+
+ count = 0;
+ hook = g_signal_add_emission_hook (simple_id, 0, hook_func, &count, NULL);
+ connection_id = g_signal_connect (test1, "simple",
+ G_CALLBACK (simple_handler_remove_hook), &hook);
+ g_assert_cmpint (count, ==, 0);
+ g_signal_emit_by_name (test1, "simple");
+ g_assert_cmpint (count, ==, 1);
+ g_signal_emit_by_name (test2, "simple");
+ g_assert_cmpint (count, ==, 1);
+
+ g_test_expect_message ("GLib-GObject", G_LOG_LEVEL_CRITICAL,
+ "*simple* had no hook * to remove");
+ g_signal_remove_emission_hook (simple_id, hook);
+ g_test_assert_expected_messages ();
+
+ g_clear_signal_handler (&connection_id, test1);
+
+ gulong hooks[10];
+ count = 0;
+
+ for (size_t i = 0; i < G_N_ELEMENTS (hooks); ++i)
+ hooks[i] = g_signal_add_emission_hook (simple_id, 0, hook_func, &count, NULL);
+
+ g_assert_cmpint (count, ==, 0);
+ g_signal_emit_by_name (test1, "simple");
+ g_assert_cmpint (count, ==, 10);
+ g_signal_emit_by_name (test2, "simple");
+ g_assert_cmpint (count, ==, 20);
+
+ for (size_t i = 0; i < G_N_ELEMENTS (hooks); ++i)
+ g_signal_remove_emission_hook (simple_id, hooks[i]);
+
+ g_signal_emit_by_name (test1, "simple");
+ g_assert_cmpint (count, ==, 20);
+
+ count = 0;
+
+ for (size_t i = 0; i < G_N_ELEMENTS (hooks); ++i)
+ hooks[i] = g_signal_add_emission_hook (simple_id, 0, hook_func_removal, &count, NULL);
+
+ g_assert_cmpint (count, ==, 0);
+ g_signal_emit_by_name (test1, "simple");
+ g_assert_cmpint (count, ==, 10);
+ g_signal_emit_by_name (test2, "simple");
+ g_assert_cmpint (count, ==, 10);
+
+ for (size_t i = 0; i < G_N_ELEMENTS (hooks); ++i)
+ {
+ g_test_expect_message ("GLib-GObject", G_LOG_LEVEL_CRITICAL,
+ "*simple* had no hook * to remove");
+ g_signal_remove_emission_hook (simple_id, hooks[i]);
+ g_test_assert_expected_messages ();
+ }
+
g_object_unref (test1);
g_object_unref (test2);
}
@@ -1487,6 +1577,36 @@ test_block_handler (void)
g_signal_handlers_unblock_matched (test2, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, test_handler, NULL);
+ /* Test match by signal ID. */
+ g_assert_cmpuint (g_signal_handlers_block_matched (test1, G_SIGNAL_MATCH_ID, simple_id, 0, NULL, NULL, NULL), ==, 1);
+
+ g_signal_emit_by_name (test1, "simple");
+ g_signal_emit_by_name (test2, "simple");
+
+ g_assert_cmpint (count1, ==, 3);
+ g_assert_cmpint (count2, ==, 4);
+
+ g_assert_cmpuint (g_signal_handlers_unblock_matched (test1, G_SIGNAL_MATCH_ID, simple_id, 0, NULL, NULL, NULL), ==, 1);
+
+ /* Match types are conjunctive */
+ g_assert_cmpuint (g_signal_handlers_block_matched (test1, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, 0, 0, NULL, test_handler, "will not match"), ==, 0);
+ g_assert_cmpuint (g_signal_handlers_block_matched (test1, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, 0, 0, NULL, test_handler, &count1), ==, 1);
+ g_assert_cmpuint (g_signal_handlers_unblock_matched (test1, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, 0, 0, NULL, test_handler, &count1), ==, 1);
+
+ /* Test g_signal_handlers_disconnect_matched for G_SIGNAL_MATCH_ID match */
+ g_assert_cmpuint (g_signal_handlers_disconnect_matched (test1,
+ G_SIGNAL_MATCH_ID,
+ simple_id, 0,
+ NULL, NULL, NULL),
+ ==,
+ 1);
+ g_assert_cmpuint (g_signal_handler_find (test1,
+ G_SIGNAL_MATCH_ID,
+ simple_id, 0,
+ NULL, NULL, NULL),
+ ==,
+ 0);
+
g_object_unref (test1);
g_object_unref (test2);
}
@@ -1546,13 +1666,13 @@ test_signal_disconnect_wrong_object (void)
NULL);
/* disconnect from the wrong object (same type), should warn */
- g_test_expect_message ("GLib-GObject", G_LOG_LEVEL_WARNING,
+ g_test_expect_message ("GLib-GObject", G_LOG_LEVEL_CRITICAL,
"*: instance '*' has no handler with id '*'");
g_signal_handler_disconnect (object2, signal_id);
g_test_assert_expected_messages ();
/* and from an object of the wrong type */
- g_test_expect_message ("GLib-GObject", G_LOG_LEVEL_WARNING,
+ g_test_expect_message ("GLib-GObject", G_LOG_LEVEL_CRITICAL,
"*: instance '*' has no handler with id '*'");
g_signal_handler_disconnect (object3, signal_id);
g_test_assert_expected_messages ();
@@ -1586,7 +1706,7 @@ test_clear_signal_handler (void)
if (g_test_undefined ())
{
handler = g_random_int_range (0x01, 0xFF);
- g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
"*instance '* has no handler with id *'");
g_clear_signal_handler (&handler, test_obj);
g_assert_cmpuint (handler, ==, 0);
@@ -1642,7 +1762,7 @@ test_lookup_invalid (void)
g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
g_test_trap_assert_failed ();
- g_test_trap_assert_stderr ("*WARNING*unable to look up invalid signal name*");
+ g_test_trap_assert_stderr ("*CRITICAL*unable to look up invalid signal name*");
}
static void
@@ -1788,6 +1908,143 @@ test_signal_is_valid_name (void)
g_assert_false (g_signal_is_valid_name (invalid_names[i]));
}
+static void
+test_emitv (void)
+{
+ GArray *values;
+ GObject *test;
+ GValue return_value = G_VALUE_INIT;
+ gint count = 0;
+ guint signal_id;
+ gulong hook;
+ gulong id;
+
+ test = g_object_new (test_get_type (), NULL);
+
+ values = g_array_new (TRUE, TRUE, sizeof (GValue));
+ g_array_set_clear_func (values, (GDestroyNotify) g_value_unset);
+
+ g_array_set_size (values, 1);
+ g_value_init (&g_array_index (values, GValue, 0), G_TYPE_OBJECT);
+ g_value_set_object (&g_array_index (values, GValue, 0), test);
+ hook = g_signal_add_emission_hook (simple_id, 0, hook_func, &count, NULL);
+ g_assert_cmpint (count, ==, 0);
+ g_signal_emitv ((GValue *) values->data, simple_id, 0, NULL);
+ g_assert_cmpint (count, ==, 1);
+ g_signal_remove_emission_hook (simple_id, hook);
+
+ g_array_set_size (values, 20);
+ g_value_init (&g_array_index (values, GValue, 1), G_TYPE_INT);
+ g_value_set_int (&g_array_index (values, GValue, 1), 42);
+
+ g_value_init (&g_array_index (values, GValue, 2), G_TYPE_BOOLEAN);
+ g_value_set_boolean (&g_array_index (values, GValue, 2), TRUE);
+
+ g_value_init (&g_array_index (values, GValue, 3), G_TYPE_CHAR);
+ g_value_set_schar (&g_array_index (values, GValue, 3), 17);
+
+ g_value_init (&g_array_index (values, GValue, 4), G_TYPE_UCHAR);
+ g_value_set_uchar (&g_array_index (values, GValue, 4), 140);
+
+ g_value_init (&g_array_index (values, GValue, 5), G_TYPE_UINT);
+ g_value_set_uint (&g_array_index (values, GValue, 5), G_MAXUINT - 42);
+
+ g_value_init (&g_array_index (values, GValue, 6), G_TYPE_LONG);
+ g_value_set_long (&g_array_index (values, GValue, 6), -1117);
+
+ g_value_init (&g_array_index (values, GValue, 7), G_TYPE_ULONG);
+ g_value_set_ulong (&g_array_index (values, GValue, 7), G_MAXULONG - 999);
+
+ g_value_init (&g_array_index (values, GValue, 8), enum_type);
+ g_value_set_enum (&g_array_index (values, GValue, 8), MY_ENUM_VALUE);
+
+ g_value_init (&g_array_index (values, GValue, 9), flags_type);
+ g_value_set_flags (&g_array_index (values, GValue, 9),
+ MY_FLAGS_FIRST_BIT | MY_FLAGS_THIRD_BIT | MY_FLAGS_LAST_BIT);
+
+ g_value_init (&g_array_index (values, GValue, 10), G_TYPE_FLOAT);
+ g_value_set_float (&g_array_index (values, GValue, 10), 0.25);
+
+ g_value_init (&g_array_index (values, GValue, 11), G_TYPE_DOUBLE);
+ g_value_set_double (&g_array_index (values, GValue, 11), 1.5);
+
+ g_value_init (&g_array_index (values, GValue, 12), G_TYPE_STRING);
+ g_value_set_string (&g_array_index (values, GValue, 12), "Test");
+
+ g_value_init (&g_array_index (values, GValue, 13), G_TYPE_PARAM_LONG);
+ g_value_take_param (&g_array_index (values, GValue, 13),
+ g_param_spec_long ("param", "nick", "blurb", 0, 10, 4, 0));
+
+ g_value_init (&g_array_index (values, GValue, 14), G_TYPE_BYTES);
+ g_value_take_boxed (&g_array_index (values, GValue, 14),
+ g_bytes_new_static ("Blah", 5));
+
+ g_value_init (&g_array_index (values, GValue, 15), G_TYPE_POINTER);
+ g_value_set_pointer (&g_array_index (values, GValue, 15), &enum_type);
+
+ g_value_init (&g_array_index (values, GValue, 16), test_get_type ());
+ g_value_set_object (&g_array_index (values, GValue, 16), test);
+
+ g_value_init (&g_array_index (values, GValue, 17), G_TYPE_VARIANT);
+ g_value_take_variant (&g_array_index (values, GValue, 17),
+ g_variant_ref_sink (g_variant_new_uint16 (99)));
+
+ g_value_init (&g_array_index (values, GValue, 18), G_TYPE_INT64);
+ g_value_set_int64 (&g_array_index (values, GValue, 18), G_MAXINT64 - 1234);
+
+ g_value_init (&g_array_index (values, GValue, 19), G_TYPE_UINT64);
+ g_value_set_uint64 (&g_array_index (values, GValue, 19), G_MAXUINT64 - 123456);
+
+ id = g_signal_connect (test, "all-types", G_CALLBACK (all_types_handler_cb), &flags_type);
+ signal_id = g_signal_lookup ("all-types", test_get_type ());
+ g_assert_cmpuint (signal_id, >, 0);
+
+ count = 0;
+ hook = g_signal_add_emission_hook (signal_id, 0, hook_func, &count, NULL);
+ g_assert_cmpint (count, ==, 0);
+ g_signal_emitv ((GValue *) values->data, signal_id, 0, NULL);
+ g_assert_cmpint (count, ==, 1);
+ g_signal_remove_emission_hook (signal_id, hook);
+ g_clear_signal_handler (&id, test);
+
+
+ signal_id = g_signal_lookup ("generic-marshaller-int-return", test_get_type ());
+ g_assert_cmpuint (signal_id, >, 0);
+ g_array_set_size (values, 1);
+
+ id = g_signal_connect (test,
+ "generic-marshaller-int-return",
+ G_CALLBACK (on_generic_marshaller_int_return_signed_1),
+ NULL);
+
+ count = 0;
+ hook = g_signal_add_emission_hook (signal_id, 0, hook_func, &count, NULL);
+ g_assert_cmpint (count, ==, 0);
+ g_value_init (&return_value, G_TYPE_INT);
+ g_signal_emitv ((GValue *) values->data, signal_id, 0, &return_value);
+ g_assert_cmpint (count, ==, 1);
+ g_assert_cmpint (g_value_get_int (&return_value), ==, -30);
+ g_signal_remove_emission_hook (signal_id, hook);
+ g_clear_signal_handler (&id, test);
+
+#ifdef G_ENABLE_DEBUG
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*return*value*generic-marshaller-int-return*NULL*");
+ g_signal_emitv ((GValue *) values->data, signal_id, 0, NULL);
+ g_test_assert_expected_messages ();
+
+ g_value_unset (&return_value);
+ g_value_init (&return_value, G_TYPE_FLOAT);
+ g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
+ "*return*value*generic-marshaller-int-return*gfloat*");
+ g_signal_emitv ((GValue *) values->data, signal_id, 0, &return_value);
+ g_test_assert_expected_messages ();
+#endif
+
+ g_object_unref (test);
+ g_array_unref (values);
+}
+
/* --- */
int
@@ -1809,6 +2066,7 @@ main (int argc,
g_test_add_func ("/gobject/signals/custom-marshaller", test_custom_marshaller);
g_test_add_func ("/gobject/signals/connect", test_connect);
g_test_add_func ("/gobject/signals/emission-hook", test_emission_hook);
+ g_test_add_func ("/gobject/signals/emitv", test_emitv);
g_test_add_func ("/gobject/signals/accumulator", test_accumulator);
g_test_add_func ("/gobject/signals/accumulator-class", test_accumulator_class);
g_test_add_func ("/gobject/signals/introspection", test_introspection);
diff --git a/gobject/tests/threadtests.c b/gobject/tests/threadtests.c
index 3b485eb52..dee4d6e2d 100644
--- a/gobject/tests/threadtests.c
+++ b/gobject/tests/threadtests.c
@@ -2,6 +2,8 @@
* Copyright (C) 2008 Imendio AB
* Authors: Tim Janik
*
+ * SPDX-License-Identifier: LicenseRef-old-glib-tests
+ *
* This work is provided "as is"; redistribution and modification
* in whole or in part, in any medium, physical or electronic is
* permitted without restriction.
diff --git a/gobject/tests/type-flags.c b/gobject/tests/type-flags.c
index 249153b55..bb67f8c03 100644
--- a/gobject/tests/type-flags.c
+++ b/gobject/tests/type-flags.c
@@ -3,6 +3,42 @@
#include <glib-object.h>
+typedef struct
+{
+ GTypeInterface g_iface;
+} TestInterfaceInterface;
+
+GType test_interface_get_type (void);
+#define TEST_TYPE_INTERFACE test_interface_get_type ()
+G_DEFINE_INTERFACE (TestInterface, test_interface, G_TYPE_INVALID)
+
+static void
+test_interface_default_init (TestInterfaceInterface *iface)
+{
+}
+
+static void
+test_type_flags_interface (void)
+{
+ g_assert_false (G_TYPE_IS_ABSTRACT (TEST_TYPE_INTERFACE));
+ g_assert_false (g_type_test_flags (TEST_TYPE_INTERFACE, G_TYPE_FLAG_ABSTRACT));
+
+ g_assert_false (G_TYPE_IS_CLASSED (TEST_TYPE_INTERFACE));
+ g_assert_false (g_type_test_flags (TEST_TYPE_INTERFACE, G_TYPE_FLAG_CLASSED));
+
+ g_assert_false (G_TYPE_IS_DEEP_DERIVABLE (TEST_TYPE_INTERFACE));
+ g_assert_false (g_type_test_flags (TEST_TYPE_INTERFACE, G_TYPE_FLAG_DEEP_DERIVABLE));
+
+ g_assert_true (G_TYPE_IS_DERIVABLE (TEST_TYPE_INTERFACE));
+ g_assert_true (g_type_test_flags (TEST_TYPE_INTERFACE, G_TYPE_FLAG_DERIVABLE));
+
+ g_assert_false (G_TYPE_IS_FINAL (TEST_TYPE_INTERFACE));
+ g_assert_false (g_type_test_flags (TEST_TYPE_INTERFACE, G_TYPE_FLAG_FINAL));
+
+ g_assert_false (G_TYPE_IS_INSTANTIATABLE (TEST_TYPE_INTERFACE));
+ g_assert_false (g_type_test_flags (TEST_TYPE_INTERFACE, G_TYPE_FLAG_INSTANTIATABLE));
+}
+
#define TEST_TYPE_FINAL (test_final_get_type())
G_DECLARE_FINAL_TYPE (TestFinal, test_final, TEST, FINAL, GObject)
@@ -61,8 +97,24 @@ test_type_flags_final (void)
{
GType final2_type;
+ g_assert_true (G_TYPE_IS_FINAL (TEST_TYPE_FINAL));
+ g_assert_true (g_type_test_flags (TEST_TYPE_FINAL, G_TYPE_FLAG_FINAL));
+ g_assert_true (G_TYPE_IS_CLASSED (TEST_TYPE_FINAL));
+ g_assert_true (g_type_test_flags (TEST_TYPE_FINAL, G_TYPE_FLAG_CLASSED));
+ g_assert_true (G_TYPE_IS_INSTANTIATABLE (TEST_TYPE_FINAL));
+ g_assert_true (g_type_test_flags (TEST_TYPE_FINAL, G_TYPE_FLAG_INSTANTIATABLE));
+ g_assert_true (g_type_test_flags (TEST_TYPE_FINAL,
+ G_TYPE_FLAG_FINAL |
+ G_TYPE_FLAG_CLASSED |
+ G_TYPE_FLAG_INSTANTIATABLE));
+ g_assert_false (g_type_test_flags (TEST_TYPE_FINAL,
+ G_TYPE_FLAG_FINAL |
+ G_TYPE_FLAG_CLASSED |
+ G_TYPE_FLAG_DEPRECATED |
+ G_TYPE_FLAG_INSTANTIATABLE));
+
/* This is the message we print out when registering the type */
- g_test_expect_message ("GLib-GObject", G_LOG_LEVEL_WARNING,
+ g_test_expect_message ("GLib-GObject", G_LOG_LEVEL_CRITICAL,
"*cannot derive*");
/* This is the message when we fail to return from the GOnce init
@@ -77,12 +129,118 @@ test_type_flags_final (void)
g_test_assert_expected_messages ();
}
+#define TEST_TYPE_DEPRECATED (test_deprecated_get_type())
+G_DECLARE_FINAL_TYPE (TestDeprecated, test_deprecated, TEST, DEPRECATED, GObject)
+
+struct _TestDeprecated
+{
+ GObject parent_instance;
+};
+
+struct _TestDeprecatedClass
+{
+ GObjectClass parent_class;
+};
+
+G_DEFINE_TYPE_EXTENDED (TestDeprecated, test_deprecated, G_TYPE_OBJECT, G_TYPE_FLAG_FINAL | G_TYPE_FLAG_DEPRECATED, {})
+
+static void
+test_deprecated_class_init (TestDeprecatedClass *klass)
+{
+}
+
+static void
+test_deprecated_init (TestDeprecated *self)
+{
+}
+
+static void
+test_type_flags_final_instance_check (void)
+{
+ TestFinal *final;
+
+ final = g_object_new (TEST_TYPE_FINAL, NULL);
+ g_assert_true (g_type_check_instance_is_a ((GTypeInstance *) final,
+ TEST_TYPE_FINAL));
+ g_assert_false (g_type_check_instance_is_a ((GTypeInstance *) final,
+ TEST_TYPE_DEPRECATED));
+ g_assert_true (g_type_check_instance_is_a ((GTypeInstance *) final,
+ G_TYPE_OBJECT));
+ g_assert_false (g_type_check_instance_is_a ((GTypeInstance *) final,
+ G_TYPE_INVALID));
+
+ g_clear_object (&final);
+}
+
+static void
+test_type_flags_deprecated (void)
+{
+ GType deprecated_type;
+ GObject *deprecated_object = NULL;
+
+ g_test_summary ("Test that trying to instantiate a deprecated type results in a warning.");
+
+ /* This is the message we print out when registering the type */
+ g_test_expect_message ("GLib-GObject", G_LOG_LEVEL_WARNING,
+ "*The type TestDeprecated is deprecated and shouldn’t be used any more*");
+
+ /* The type itself should not be considered invalid. */
+ deprecated_type = TEST_TYPE_DEPRECATED;
+ g_assert_false (deprecated_type == G_TYPE_INVALID);
+ g_assert_true (G_TYPE_IS_DEPRECATED (deprecated_type));
+
+ g_assert_true (G_TYPE_IS_FINAL (deprecated_type));
+ g_assert_true (g_type_test_flags (deprecated_type, G_TYPE_FLAG_FINAL));
+
+ g_assert_true (g_type_test_flags (deprecated_type,
+ G_TYPE_FLAG_DEPRECATED |
+ G_TYPE_FLAG_CLASSED |
+ G_TYPE_FLAG_FINAL |
+ G_TYPE_FLAG_INSTANTIATABLE));
+ g_assert_false (g_type_test_flags (deprecated_type,
+ G_TYPE_FLAG_DEPRECATED |
+ G_TYPE_FLAG_CLASSED |
+ G_TYPE_FLAG_FINAL |
+ G_TYPE_FLAG_ABSTRACT |
+ G_TYPE_FLAG_INSTANTIATABLE));
+
+ /* Instantiating it should work, but emit a warning. */
+ deprecated_object = g_object_new (deprecated_type, NULL);
+ g_assert_nonnull (deprecated_object);
+
+ g_test_assert_expected_messages ();
+
+ g_object_unref (deprecated_object);
+
+ /* Instantiating it again should not emit a second warning. */
+ deprecated_object = g_object_new (deprecated_type, NULL);
+ g_assert_nonnull (deprecated_object);
+
+ g_assert_true (g_type_check_instance_is_a ((GTypeInstance *) deprecated_object,
+ TEST_TYPE_DEPRECATED));
+ g_assert_true (g_type_check_instance_is_a ((GTypeInstance *) deprecated_object,
+ G_TYPE_OBJECT));
+ g_assert_false (g_type_check_instance_is_a ((GTypeInstance *) deprecated_object,
+ TEST_TYPE_FINAL));
+ g_assert_false (g_type_check_instance_is_a ((GTypeInstance *) deprecated_object,
+ G_TYPE_INVALID));
+
+ g_test_assert_expected_messages ();
+
+ g_object_unref (deprecated_object);
+}
+
int
main (int argc, char *argv[])
{
g_test_init (&argc, &argv, NULL);
+ g_setenv ("G_ENABLE_DIAGNOSTIC", "1", TRUE);
+
+ g_test_add_func ("/type/flags/interface", test_type_flags_interface);
g_test_add_func ("/type/flags/final", test_type_flags_final);
+ g_test_add_func ("/type/flags/final/instance-check", test_type_flags_final_instance_check);
+ g_test_add_func ("/type/flags/deprecated", test_type_flags_deprecated);
return g_test_run ();
}
diff --git a/gobject/tests/type.c b/gobject/tests/type.c
index 50cb2c92f..ea0dd46f3 100644
--- a/gobject/tests/type.c
+++ b/gobject/tests/type.c
@@ -185,7 +185,7 @@ test_interface_check (void)
check_called = 0;
g_type_add_interface_check (&check_called, check_func);
- o = g_object_new (bazo_get_type (), NULL);
+ o = g_object_ref_sink (g_object_new (bazo_get_type (), NULL));
g_object_unref (o);
g_assert_cmpint (check_called, ==, 1);
g_type_remove_interface_check (&check_called, check_func);
@@ -215,6 +215,20 @@ test_is_a (void)
g_assert_false ((g_type_is_a) (bar_get_type (), bibi_get_type ()));
}
+static void
+test_query (void)
+{
+ GTypeQuery results;
+
+ g_test_message ("Invalid types can’t be queried.");
+ g_type_query (G_TYPE_INVALID, &results);
+ g_assert_cmpuint (results.type, ==, 0);
+
+ g_test_message ("Unclassed types can’t be queried.");
+ g_type_query (G_TYPE_INT64, &results);
+ g_assert_cmpuint (results.type, ==, 0);
+}
+
int
main (int argc, char *argv[])
{
@@ -225,6 +239,7 @@ main (int argc, char *argv[])
g_test_add_func ("/type/interface-check", test_interface_check);
g_test_add_func ("/type/next-base", test_next_base);
g_test_add_func ("/type/is-a", test_is_a);
+ g_test_add_func ("/type/query", test_query);
return g_test_run ();
}
diff --git a/gobject/tests/value.c b/gobject/tests/value.c
index c294020ed..73a5de650 100644
--- a/gobject/tests/value.c
+++ b/gobject/tests/value.c
@@ -719,6 +719,7 @@ test_value_transform_object (void)
g_value_init (&src, types[s]);
g_value_set_object (&src, object);
+ g_value_set_object (&src, g_value_get_object (&src));
for (d = 0; d < G_N_ELEMENTS (types); d++)
{
diff --git a/gthread/meson.build b/gthread/meson.build
index 94a9ce5b5..612626315 100644
--- a/gthread/meson.build
+++ b/gthread/meson.build
@@ -19,7 +19,8 @@ libgthread = library('gthread-2.0',
darwin_versions : darwin_versions,
install : true,
dependencies : [libglib_dep],
- c_args : ['-DG_LOG_DOMAIN="GThread"' ] + glib_hidden_visibility_args,
+ c_args : ['-DG_LOG_DOMAIN="GThread"', glib_c_args_internal],
+ gnu_symbol_visibility : 'hidden',
link_args : glib_link_flags,
)
@@ -35,3 +36,7 @@ pkg.generate(libgthread,
libgthread_dep = declare_dependency(link_with : libgthread)
meson.override_dependency('gthread-2.0', libgthread_dep)
+
+if build_tests
+ subdir('tests')
+endif
diff --git a/gthread/tests/init.c b/gthread/tests/init.c
new file mode 100644
index 000000000..82aac5475
--- /dev/null
+++ b/gthread/tests/init.c
@@ -0,0 +1,75 @@
+/* GLib testing framework examples and tests
+ *
+ * Copyright © 2022 Endless OS Foundation, LLC
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library 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.
+ *
+ * This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author: Philip Withnall <pwithnall@endlessos.org>
+ */
+
+#include <glib.h>
+#include <locale.h>
+
+
+/* All of GThread is deprecated, but that’s OK */
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+
+static void
+test_thread_deprecated_init (void)
+{
+ const GThreadFunctions functions = {
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL,
+ NULL
+ };
+
+ /* Should be a no-op. */
+ g_thread_init (NULL);
+
+ /* Should emit a warning. */
+ g_test_expect_message ("GThread", G_LOG_LEVEL_WARNING,
+ "GThread system no longer supports custom thread implementations.");
+ g_thread_init ((gpointer) &functions);
+ g_test_assert_expected_messages ();
+}
+
+static void
+test_thread_deprecated_init_with_errorcheck_mutexes (void)
+{
+ /* Should warn. */
+ g_test_expect_message ("GThread", G_LOG_LEVEL_WARNING,
+ "GThread system no longer supports errorcheck mutexes.");
+ g_thread_init_with_errorcheck_mutexes (NULL);
+ g_test_assert_expected_messages ();
+}
+
+int
+main (int argc,
+ char *argv[])
+{
+ setlocale (LC_ALL, "");
+ g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
+
+ g_test_add_func ("/thread/deprecated/init", test_thread_deprecated_init);
+ g_test_add_func ("/thread/deprecated/init-with-errorcheck-mutexes", test_thread_deprecated_init_with_errorcheck_mutexes);
+
+ return g_test_run ();
+}
+
+G_GNUC_END_IGNORE_DEPRECATIONS
diff --git a/gthread/tests/meson.build b/gthread/tests/meson.build
new file mode 100644
index 000000000..41fad1de4
--- /dev/null
+++ b/gthread/tests/meson.build
@@ -0,0 +1,73 @@
+gthread_tests = {
+ 'init' : {},
+}
+
+test_env = environment()
+test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
+test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
+
+test_deps = [thread_dep, libglib_dep, libgthread_dep]
+test_cargs = ['-DG_LOG_DOMAIN="GLib-GThread"', '-UG_DISABLE_ASSERT']
+test_cpp_args = test_cargs
+
+foreach test_name, extra_args : gthread_tests
+ source = extra_args.get('source', test_name + '.c')
+ install = installed_tests_enabled and extra_args.get('install', true)
+
+ if install
+ test_conf = configuration_data()
+ test_conf.set('installed_tests_dir', installed_tests_execdir)
+ test_conf.set('program', test_name)
+ test_conf.set('env', '')
+ configure_file(
+ input: installed_tests_template_tap,
+ output: test_name + '.test',
+ install_dir: installed_tests_metadir,
+ install_tag: 'tests',
+ configuration: test_conf
+ )
+ endif
+
+ exe = executable(test_name, source,
+ c_args : test_cargs + extra_args.get('c_args', []),
+ cpp_args : test_cpp_args + extra_args.get('cpp_args', []),
+ dependencies : test_deps + extra_args.get('dependencies', []),
+ install_dir: installed_tests_execdir,
+ install_tag: 'tests',
+ install: install,
+ )
+
+ suite = ['gthread'] + extra_args.get('suite', [])
+ timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
+
+ if extra_args.get('can_fail', false)
+ suite += 'failing'
+ endif
+
+ test(test_name,
+ exe,
+ protocol : extra_args.get('protocol', test_protocol),
+ env : test_env,
+ timeout : timeout,
+ suite : suite,
+ )
+endforeach
+
+if have_bash and have_pkg_config
+ test('gthread-2.0-pkg-config',
+ bash,
+ args: [
+ '-xe', '-c',
+ '\n'.join([
+ 'pkg-config --validate gthread-2.0',
+ 'test "$(pkg-config --modversion gthread-2.0)" = "@0@"'.format(glib_version),
+ 'test "$(pkg-config --variable=prefix gthread-2.0)" = "@0@"'.format(
+ get_option('prefix')),
+ ]),
+ ],
+ suite: ['gthread', 'no-valgrind', 'pkg-config'],
+ env: {
+ 'PKG_CONFIG_PATH': meson.project_build_root() / 'meson-private',
+ },
+ )
+endif
diff --git a/m4macros/attributes.m4 b/m4macros/attributes.m4
deleted file mode 100644
index f0bcf2421..000000000
--- a/m4macros/attributes.m4
+++ /dev/null
@@ -1,288 +0,0 @@
-dnl Macros to check the presence of generic (non-typed) symbols.
-dnl Copyright (c) 2006-2008 Diego Pettenò <flameeyes@gmail.com>
-dnl Copyright (c) 2006-2008 xine project
-dnl Copyright (c) 2012 Lucas De Marchi <lucas.de.marchi@gmail.com>
-dnl
-dnl This program is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2, or (at your option)
-dnl any later version.
-dnl
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-dnl GNU General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-dnl 02110-1301, USA.
-dnl
-dnl As a special exception, the copyright owners of the
-dnl macro gives unlimited permission to copy, distribute and modify the
-dnl configure scripts that are the output of Autoconf when processing the
-dnl Macro. You need not follow the terms of the GNU General Public
-dnl License when using or distributing such scripts, even though portions
-dnl of the text of the Macro appear in them. The GNU General Public
-dnl License (GPL) does govern all other use of the material that
-dnl constitutes the Autoconf Macro.
-dnl
-dnl This special exception to the GPL applies to versions of the
-dnl Autoconf Macro released by this project. When you make and
-dnl distribute a modified version of the Autoconf Macro, you may extend
-dnl this special exception to the GPL to apply to your modified version as
-dnl well.
-
-dnl Check if FLAG in ENV-VAR is supported by compiler and append it
-dnl to WHERE-TO-APPEND variable
-dnl CC_CHECK_FLAG_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG])
-
-AC_DEFUN([CC_CHECK_FLAG_APPEND], [
- AC_CACHE_CHECK([if $CC supports flag $3 in envvar $2],
- AS_TR_SH([cc_cv_$2_$3]),
- [eval "AS_TR_SH([cc_save_$2])='${$2}'"
- eval "AS_TR_SH([$2])='-Werror $3'"
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([int a = 0; int main(void) { return a; } ])],
- [eval "AS_TR_SH([cc_cv_$2_$3])='yes'"],
- [eval "AS_TR_SH([cc_cv_$2_$3])='no'"])
- eval "AS_TR_SH([$2])='$cc_save_$2'"])
-
- AS_IF([eval test x$]AS_TR_SH([cc_cv_$2_$3])[ = xyes],
- [eval "$1='${$1} $3'"])
-])
-
-dnl CC_CHECK_FLAGS_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG1 FLAG2])
-AC_DEFUN([CC_CHECK_FLAGS_APPEND], [
- for flag in $3; do
- CC_CHECK_FLAG_APPEND($1, $2, $flag)
- done
-])
-
-dnl Check if the flag is supported by linker (cacheable)
-dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
-
-AC_DEFUN([CC_CHECK_LDFLAGS], [
- AC_CACHE_CHECK([if $CC supports $1 flag],
- AS_TR_SH([cc_cv_ldflags_$1]),
- [ac_save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $1"
- AC_LINK_IFELSE([int main() { return 1; }],
- [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"],
- [eval "AS_TR_SH([cc_cv_ldflags_$1])="])
- LDFLAGS="$ac_save_LDFLAGS"
- ])
-
- AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes],
- [$2], [$3])
-])
-
-dnl define the LDFLAGS_NOUNDEFINED variable with the correct value for
-dnl the current linker to avoid undefined references in a shared object.
-AC_DEFUN([CC_NOUNDEFINED], [
- dnl We check $host for which systems to enable this for.
- AC_REQUIRE([AC_CANONICAL_HOST])
-
- case $host in
- dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads
- dnl are requested, as different implementations are present; to avoid problems
- dnl use -Wl,-z,defs only for those platform not behaving this way.
- *-freebsd* | *-openbsd*) ;;
- *)
- dnl First of all check for the --no-undefined variant of GNU ld. This allows
- dnl for a much more readable commandline, so that people can understand what
- dnl it does without going to look for what the heck -z defs does.
- for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do
- CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"])
- break
- done
- ;;
- esac
-
- AC_SUBST([LDFLAGS_NOUNDEFINED])
-])
-
-dnl Check for a -Werror flag or equivalent. -Werror is the GCC
-dnl and ICC flag that tells the compiler to treat all the warnings
-dnl as fatal. We usually need this option to make sure that some
-dnl constructs (like attributes) are not simply ignored.
-dnl
-dnl Other compilers don't support -Werror per se, but they support
-dnl an equivalent flag:
-dnl - Sun Studio compiler supports -errwarn=%all
-AC_DEFUN([CC_CHECK_WERROR], [
- AC_CACHE_CHECK(
- [for $CC way to treat warnings as errors],
- [cc_cv_werror],
- [CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror],
- [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])])
- ])
-])
-
-AC_DEFUN([CC_CHECK_ATTRIBUTE], [
- AC_REQUIRE([CC_CHECK_WERROR])
- AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))],
- AS_TR_SH([cc_cv_attribute_$1]),
- [ac_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $cc_cv_werror"
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([$3])],
- [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"],
- [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"])
- CFLAGS="$ac_save_CFLAGS"
- ])
-
- AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes],
- [AC_DEFINE(
- AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1,
- [Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))]
- )
- $4],
- [$5])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [
- CC_CHECK_ATTRIBUTE(
- [constructor],,
- [void __attribute__((constructor)) ctor() { int a; }],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_FORMAT], [
- CC_CHECK_ATTRIBUTE(
- [format], [format(printf, n, n)],
- [void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [
- CC_CHECK_ATTRIBUTE(
- [format_arg], [format_arg(printf)],
- [char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [
- CC_CHECK_ATTRIBUTE(
- [visibility_$1], [visibility("$1")],
- [void __attribute__((visibility("$1"))) $1_function() { }],
- [$2], [$3])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_NONNULL], [
- CC_CHECK_ATTRIBUTE(
- [nonnull], [nonnull()],
- [void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_UNUSED], [
- CC_CHECK_ATTRIBUTE(
- [unused], ,
- [void some_function(void *foo, __attribute__((unused)) void *bar);],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [
- CC_CHECK_ATTRIBUTE(
- [sentinel], ,
- [void some_function(void *foo, ...) __attribute__((sentinel));],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [
- CC_CHECK_ATTRIBUTE(
- [deprecated], ,
- [void some_function(void *foo, ...) __attribute__((deprecated));],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_ALIAS], [
- CC_CHECK_ATTRIBUTE(
- [alias], [weak, alias],
- [void other_function(void *foo) { }
- void some_function(void *foo) __attribute__((weak, alias("other_function")));],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_MALLOC], [
- CC_CHECK_ATTRIBUTE(
- [malloc], ,
- [void * __attribute__((malloc)) my_alloc(int n);],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_PACKED], [
- CC_CHECK_ATTRIBUTE(
- [packed], ,
- [struct astructure { char a; int b; long c; void *d; } __attribute__((packed));],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_CONST], [
- CC_CHECK_ATTRIBUTE(
- [const], ,
- [int __attribute__((const)) twopow(int n) { return 1 << n; } ],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_FLAG_VISIBILITY], [
- AC_REQUIRE([CC_CHECK_WERROR])
- AC_CACHE_CHECK([if $CC supports -fvisibility=hidden],
- [cc_cv_flag_visibility],
- [cc_flag_visibility_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $cc_cv_werror"
- CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden],
- cc_cv_flag_visibility='yes',
- cc_cv_flag_visibility='no')
- CFLAGS="$cc_flag_visibility_save_CFLAGS"])
-
- AS_IF([test "x$cc_cv_flag_visibility" = "xyes"],
- [AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1,
- [Define this if the compiler supports the -fvisibility flag])
- $1],
- [$2])
-])
-
-AC_DEFUN([CC_FUNC_EXPECT], [
- AC_REQUIRE([CC_CHECK_WERROR])
- AC_CACHE_CHECK([if compiler has __builtin_expect function],
- [cc_cv_func_expect],
- [ac_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $cc_cv_werror"
- AC_COMPILE_IFELSE([AC_LANG_SOURCE(
- [int some_function() {
- int a = 3;
- return (int)__builtin_expect(a, 3);
- }])],
- [cc_cv_func_expect=yes],
- [cc_cv_func_expect=no])
- CFLAGS="$ac_save_CFLAGS"
- ])
-
- AS_IF([test "x$cc_cv_func_expect" = "xyes"],
- [AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1,
- [Define this if the compiler supports __builtin_expect() function])
- $1],
- [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [
- AC_REQUIRE([CC_CHECK_WERROR])
- AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported],
- [cc_cv_attribute_aligned],
- [ac_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $cc_cv_werror"
- for cc_attribute_align_try in 64 32 16 8 4 2; do
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([
- int main() {
- static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0;
- return c;
- }])], [cc_cv_attribute_aligned=$cc_attribute_align_try; break])
- done
- CFLAGS="$ac_save_CFLAGS"
- ])
-
- if test "x$cc_cv_attribute_aligned" != "x"; then
- AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned],
- [Define the highest alignment supported])
- fi
-])
diff --git a/m4macros/glibtests.m4 b/m4macros/glibtests.m4
deleted file mode 100644
index 581726a51..000000000
--- a/m4macros/glibtests.m4
+++ /dev/null
@@ -1,31 +0,0 @@
-# Increment this whenever this file is changed.
-#serial 1
-
-dnl GLIB_TESTS
-dnl
-
-AC_DEFUN([GLIB_TESTS],
-[
- AC_ARG_ENABLE(installed-tests,
- AS_HELP_STRING([--enable-installed-tests],
- [Enable installation of some test cases]),
- [case ${enableval} in
- yes) ENABLE_INSTALLED_TESTS="1" ;;
- no) ENABLE_INSTALLED_TESTS="" ;;
- *) AC_MSG_ERROR([bad value ${enableval} for --enable-installed-tests]) ;;
- esac])
- AM_CONDITIONAL([ENABLE_INSTALLED_TESTS], test "$ENABLE_INSTALLED_TESTS" = "1")
- AC_ARG_ENABLE(always-build-tests,
- AS_HELP_STRING([--enable-always-build-tests],
- [Enable always building tests during 'make all']),
- [case ${enableval} in
- yes) ENABLE_ALWAYS_BUILD_TESTS="1" ;;
- no) ENABLE_ALWAYS_BUILD_TESTS="" ;;
- *) AC_MSG_ERROR([bad value ${enableval} for --enable-always-build-tests]) ;;
- esac])
- AM_CONDITIONAL([ENABLE_ALWAYS_BUILD_TESTS], test "$ENABLE_ALWAYS_BUILD_TESTS" = "1")
- if test "$ENABLE_INSTALLED_TESTS" = "1"; then
- AC_SUBST(installed_test_metadir, [${datadir}/installed-tests/]AC_PACKAGE_NAME)
- AC_SUBST(installed_testdir, [${libexecdir}/installed-tests/]AC_PACKAGE_NAME)
- fi
-])
diff --git a/meson.build b/meson.build
index be468c3f3..813c9b77c 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('glib', 'c',
- version : '2.74.4',
+ version : '2.78.4',
# NOTE: See the policy in docs/meson-version.md before changing the Meson dependency
meson_version : '>= 0.60.0',
default_options : [
@@ -9,7 +9,18 @@ project('glib', 'c',
]
)
+fs = import('fs')
+
cc = meson.get_compiler('c')
+c_standards = {}
+
+foreach std : ['90', '99', '11', '17']
+ arg = (cc.get_id() == 'msvc' ? '/std:' : '-std=') + 'c' + std
+ if cc.has_argument(arg)
+ c_standards += { std: arg }
+ endif
+endforeach
+
have_cxx = add_languages('cpp', native: false, required: get_option('oss_fuzz').enabled())
if have_cxx
cxx = meson.get_compiler('cpp')
@@ -28,7 +39,7 @@ cc_can_run = meson.can_run_host_binaries()
if cc.get_argument_syntax() == 'msvc'
# Ignore several spurious warnings for things glib does very commonly
# (also for clang-cl)
- add_project_arguments('/FImsvc_recommended_pragmas.h',language : 'c')
+ add_project_arguments('/FIglib/msvc_recommended_pragmas.h', language : 'c')
endif
if cc.get_id() == 'msvc'
@@ -83,7 +94,7 @@ glib_libdir = join_paths(glib_prefix, get_option('libdir'))
glib_libexecdir = join_paths(glib_prefix, get_option('libexecdir'))
glib_datadir = join_paths(glib_prefix, get_option('datadir'))
glib_pkgdatadir = join_paths(glib_datadir, 'glib-2.0')
-glib_includedir = join_paths(glib_prefix, get_option('includedir'))
+glib_includedir = join_paths(glib_prefix, get_option('includedir'), 'glib-2.0')
if get_option('gio_module_dir') != ''
glib_giomodulesdir = join_paths(glib_prefix, get_option('gio_module_dir'))
else
@@ -114,12 +125,25 @@ else
glib_charsetaliasdir = glib_libdir
endif
-glib_localstatedir = get_option('localstatedir')
-if not glib_localstatedir.startswith('/')
- # See https://mesonbuild.com/Builtin-options.html#directories
- glib_localstatedir = join_paths(glib_prefix, glib_localstatedir)
+glib_localstatedir = glib_prefix / get_option('localstatedir')
+
+if get_option('runtime_dir') != ''
+ glib_runstatedir = glib_prefix / get_option('runtime_dir')
+else
+ # While we’d normally prefix directories like this with, for example,
+ # glib_localstatedir, `/run` is a bit different in that it’s for runtime state
+ # rather than data files, so it’s typically functionally useless to use a
+ # prefixed version. No other processes will be using it. So we default to the
+ # unprefixed system `/run` directory.
+ glib_runstatedir = '/run'
endif
+# When building glib and gobject-introspection with subprojects, gobject-introspection
+# requires to know the path of the sources and the build directory for the subproject.
+# We provide it here with a variable.
+glib_source_dir = meson.current_source_dir()
+glib_build_dir = meson.current_build_dir()
+
installed_tests_metadir = join_paths(glib_datadir, 'installed-tests', meson.project_name())
installed_tests_execdir = join_paths(glib_libexecdir, 'installed-tests', meson.project_name())
installed_tests_enabled = get_option('installed_tests')
@@ -129,13 +153,42 @@ installed_tests_template_tap = files('tests/template-tap.test.in')
# Don’t build the tests unless we can run them (either natively, in an exe wrapper, or by installing them for later use)
build_tests = get_option('tests') and (meson.can_run_host_binaries() or installed_tests_enabled)
+common_test_env = [
+ 'G_DEBUG=gc-friendly',
+ 'G_ENABLE_DIAGNOSTIC=1',
+ 'MALLOC_CHECK_=2',
+]
+
+# Note: this may cause the tests output not to be printed when running in
+# verbose mode, see https://github.com/mesonbuild/meson/issues/11185
+# Can be changed it to 'exitcode' if required during development.
+test_protocol = 'tap'
+test_timeout = 30
+test_timeout_slow = 90
+
+add_test_setup('default',
+ is_default: true,
+ exclude_suites: ['flaky', 'failing'],
+ env: common_test_env,
+ timeout_multiplier: 2,
+)
+
+add_test_setup('unstable_tests',
+ env: common_test_env,
+ timeout_multiplier: 2,
+ # Empty test setup, used for having different results set for flaky tests
+ # Sadly we can't use (https://github.com/mesonbuild/meson/issues/10934):
+ #suites: ['flaky', 'unstable']
+)
+
# Allow the tests to be easily run under valgrind using --setup=valgrind
valgrind = find_program('valgrind', required: false)
-if valgrind.found()
- suppression_file = files('tools' / 'glib.supp')
+valgrind_suppression_file = files('tools' / 'glib.supp')[0]
+valgrind_suppression_file_install_subdir = 'glib-2.0' / 'valgrind'
+if valgrind.found()
add_test_setup('valgrind',
- exclude_suites: [ 'no-valgrind' ],
+ exclude_suites: [ 'no-valgrind', 'flaky' ],
exe_wrapper: [
valgrind,
'--tool=memcheck',
@@ -147,9 +200,10 @@ if valgrind.found()
'--show-leak-kinds=definite,possible',
'--show-error-list=yes',
'--suppressions=@0@'.format(meson.project_source_root() /
- '@0@'.format(suppression_file[0])),
+ '@0@'.format(valgrind_suppression_file)),
],
- timeout_multiplier: 10,
+ env: common_test_env,
+ timeout_multiplier: 20,
)
endif
@@ -210,64 +264,31 @@ if host_system == 'windows' and cc.get_id() != 'msvc' and cc.get_id() != 'clang-
glib_conf.set('_FILE_OFFSET_BITS', 64)
endif
-# Check for GNU visibility attributes
-g_have_gnuc_visibility = cc.compiles('''
- void
- __attribute__ ((visibility ("hidden")))
- f_hidden (void)
- {
- }
- void
- __attribute__ ((visibility ("internal")))
- f_internal (void)
- {
- }
- void
- __attribute__ ((visibility ("default")))
- f_default (void)
- {
- }
- int main (void)
- {
- f_hidden();
- f_internal();
- f_default();
- return 0;
- }
- ''',
- # Not supported by MSVC, but MSVC also won't support visibility,
- # so it's OK to pass -Werror explicitly. Replace with
- # override_options : 'werror=true' once that is supported
- args: ['-Werror'],
- name : 'GNU C visibility attributes test')
-
-if g_have_gnuc_visibility
- glibconfig_conf.set('G_HAVE_GNUC_VISIBILITY', '1')
-endif
-
-# Detect and set symbol visibility
-glib_hidden_visibility_args = []
-if get_option('default_library') != 'static'
- if host_system == 'windows' or host_system == 'cygwin'
- if get_option('default_library') != 'shared'
- error('On Windows default_library must be "shared" or "static" but not "both"')
- endif
- glib_conf.set('DLL_EXPORT', true)
- if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl'
- glib_conf.set('_GLIB_EXTERN', '__declspec(dllexport) extern')
- elif cc.has_argument('-fvisibility=hidden')
- glib_conf.set('_GLIB_EXTERN', '__attribute__((visibility("default"))) __declspec(dllexport) extern')
- glib_hidden_visibility_args = ['-fvisibility=hidden']
- endif
- elif cc.has_argument('-fvisibility=hidden')
- glib_conf.set('_GLIB_EXTERN', '__attribute__((visibility("default"))) extern')
- glib_hidden_visibility_args = ['-fvisibility=hidden']
- endif
+glib_build_shared = false
+glib_build_static = false
+if get_option('default_library') == 'both'
+ glib_build_static = true
+ glib_build_shared = true
+elif get_option('default_library') == 'static'
+ glib_build_static = true
+elif get_option('default_library') == 'shared'
+ glib_build_shared = true
+endif
+
+glib_build_both = glib_build_static and glib_build_shared
+glib_build_static_only = glib_build_static and not glib_build_shared
+glib_build_shared_only = glib_build_shared and not glib_build_static
+
+if glib_build_shared and glib_build_static and (
+ host_system == 'windows' or host_system == 'cygwin')
+ error('On Windows default_library must be "shared" or "static" but not "both"')
endif
-if get_option('default_library') == 'static'
+if glib_build_static_only
glibconfig_conf.set('GLIB_STATIC_COMPILATION', '1')
glibconfig_conf.set('GOBJECT_STATIC_COMPILATION', '1')
+ glibconfig_conf.set('GIO_STATIC_COMPILATION', '1')
+ glibconfig_conf.set('GMODULE_STATIC_COMPILATION', '1')
glibconfig_conf.set('G_INTL_STATIC_COMPILATION', '1')
glibconfig_conf.set('FFI_STATIC_BUILD', '1')
endif
@@ -306,11 +327,11 @@ endif
# optimization is 0 or g; otherwise, we have a production build.
glib_debug_cflags = []
glib_debug = get_option('glib_debug')
-optimized_build = get_option('optimization') not in [ '0', 'g' ]
-if glib_debug.enabled() or (glib_debug.auto() and get_option('debug') and not optimized_build)
+if (glib_debug.enabled() or (
+ glib_debug.auto() and get_option('debug') and get_option('optimization') in [ '0', 'g' ]))
glib_debug_cflags += ['-DG_ENABLE_DEBUG']
message('Enabling various debug infrastructure')
-elif optimized_build
+else
glib_debug_cflags += ['-DG_DISABLE_CAST_CHECKS']
message('Disabling cast checks')
endif
@@ -361,6 +382,7 @@ headers = [
'sys/mnttab.h',
'sys/mount.h',
'sys/param.h',
+ 'sys/prctl.h',
'sys/resource.h',
'sys/select.h',
'sys/statfs.h',
@@ -397,7 +419,7 @@ if cc.check_header('malloc.h')
glib_conf_prefix = glib_conf_prefix + '#define HAVE_MALLOC_H 1\n'
endif
-if cc.has_header('linux/netlink.h')
+if cc.check_header('linux/netlink.h')
glib_conf.set('HAVE_NETLINK', 1)
endif
@@ -485,6 +507,8 @@ if cc.get_id() == 'gcc' or cc.get_id() == 'clang'
'-Wduplicated-branches',
'-Wimplicit-fallthrough',
'-Wmisleading-indentation',
+ '-Wmissing-field-initializers',
+ '-Wnonnull',
'-Wunused',
# Due to maintained deprecated code, we do not want to see unused parameters
'-Wno-unused-parameter',
@@ -492,7 +516,7 @@ if cc.get_id() == 'gcc' or cc.get_id() == 'clang'
# building with -Wbad-function-cast.
'-Wno-cast-function-type',
# Due to function casts through (void*) we cannot support -Wpedantic:
- # https://wiki.gnome.org/Projects/GLib/CompilerRequirements#Function_pointer_conversions.
+ # ./docs/toolchain-requirements.md#Function_pointer_conversions.
'-Wno-pedantic',
# A zero-length format string shouldn't be considered an issue.
'-Wno-format-zero-length',
@@ -510,10 +534,10 @@ if cc.get_id() == 'gcc' or cc.get_id() == 'clang'
# Due to pervasive use of things like GPOINTER_TO_UINT(), we do not support
# building with -Wbad-function-cast.
'-Wno-bad-function-cast',
- '-Werror=declaration-after-statement',
'-Werror=implicit-function-declaration',
'-Werror=missing-prototypes',
'-Werror=pointer-sign',
+ '-Wno-string-plus-int',
]
warning_cxx_args = warning_common_args
warning_objc_args = warning_c_args
@@ -592,7 +616,9 @@ if host_system == 'windows'
endif
functions = [
+ 'accept4',
'close_range',
+ 'copy_file_range',
'endmntent',
'endservent',
'epoll_create',
@@ -600,6 +626,8 @@ functions = [
'fchmod',
'fchown',
'fdwalk',
+ 'free_aligned_sized',
+ 'free_sized',
'fsync',
'getauxval',
'getc_unlocked',
@@ -669,6 +697,11 @@ if glib_conf.has('HAVE_SYS_STATFS_H') or glib_conf.has('HAVE_SYS_MOUNT_H')
else
have_func_statfs = false
endif
+if glib_conf.has('HAVE_SYS_PRCTL_H')
+ functions += ['prctl']
+else
+ have_func_prctl = false
+endif
if host_system == 'windows'
iphlpapi_dep = cc.find_library('iphlpapi')
@@ -708,18 +741,14 @@ foreach f : functions
endif
endforeach
+# Export the information about free_sized() so we can correctly define a macro
+# wrapper around g_free()/g_free_sized() depending on whether it’s available
+glibconfig_conf.set('G_HAVE_FREE_SIZED', have_func_free_sized)
+
# Check that stpcpy() is usable; must use header.
-# cc.has_function() in some cases (clang, gcc 10+) assumes that if the
-# compiler provides a builtin of the same name that the function exists, while
-# it's in fact not provided by any header or library. This is true for
-# stpcpy() on Windows using clang and gcc as well as posix_memalign() using
-# gcc on Windows. Skip these checks on Windows for now to avoid false
-# positives. See https://github.com/mesonbuild/meson/pull/7116,
-# https://github.com/mesonbuild/meson/issues/3672 and
+# See:
# https://github.com/mesonbuild/meson/issues/5628.
-# FIXME: Once meson no longer returns success for stpcpy() and
-# posix_memalign() on Windows using GCC and clang we can remove this.
-if host_system != 'windows' and cc.has_function('stpcpy', prefix : '#include <string.h>')
+if cc.has_function('stpcpy', prefix : '#include <string.h>')
glib_conf.set('HAVE_STPCPY', 1)
endif
@@ -727,6 +756,24 @@ if cc.has_function('memalign', prefix: '#include <stdlib.h>\n#include <malloc.h>
glib_conf.set('HAVE_MEMALIGN', 1)
endif
+# For example on Openbsd, getservbyname_r() has a different signature.
+# https://man.openbsd.org/getservbyname.3
+if cc.compiles('''#include <netdb.h>
+ int main (int argc, char ** argv) {
+ int (*fcn)(const char *,
+ const char *,
+ struct servent *,
+ char *,
+ size_t,
+ struct servent **) = getservbyname_r;
+ (void) fcn;
+ return 0;
+ }''',
+ name : 'getservbyname_r()',
+ args: '-Werror=incompatible-pointer-types')
+ glib_conf.set('HAVE_GETSERVBYNAME_R', 1)
+endif
+
if cc.has_function('_aligned_malloc', prefix: '#include <malloc.h>')
glib_conf.set('HAVE__ALIGNED_MALLOC', 1)
endif
@@ -815,6 +862,10 @@ if cc.has_header_symbol('dlfcn.h', 'RTLD_NEXT', args: '-D_GNU_SOURCE')
glib_conf.set('HAVE_RTLD_NEXT', 1)
endif
+if cc.has_type('loff_t', prefix: '#include <sys/types.h>')
+ glib_conf.set('HAVE_LOFF_T', 1)
+endif
+
# Check whether to use statfs or statvfs
# Some systems have both statfs and statvfs, pick the most "native" for these
if have_func_statfs and have_func_statvfs
@@ -845,6 +896,7 @@ if host_system == 'linux'
endif
endif
+osx_ldflags = []
glib_have_os_x_9_or_later = false
glib_have_carbon = false
glib_have_cocoa = false
@@ -877,6 +929,7 @@ if host_system == 'darwin'
if glib_have_cocoa
glib_conf.set('HAVE_COCOA', true)
+ osx_ldflags += ['-Wl,-framework,Foundation', '-Wl,-framework,AppKit']
endif
endif
@@ -955,6 +1008,8 @@ endif
dlopen_dlsym_test_code = '''
#include <dlfcn.h>
+#include <stdio.h>
+int r;
int glib_underscore_test (void) { return 42; }
int main (int argc, char ** argv) {
void *f1 = (void*)0, *f2 = (void*)0, *handle;
@@ -963,7 +1018,8 @@ int main (int argc, char ** argv) {
f1 = dlsym (handle, "glib_underscore_test");
f2 = dlsym (handle, "_glib_underscore_test");
}
- return (!f2 || f1);
+ r = (!f2 || f1) ? puts ("1") : puts ("0");
+ return r > 0 ? 0 : r;
}'''
libdl_dep = []
if cc.links(dlopen_dlsym_test_code, name : 'dlopen() and dlsym() in system libraries')
@@ -1468,8 +1524,6 @@ long_long_align = cc.alignment('long long')
# be 64-bit in C99, and it is available on all supported compilers
sizet_align = cc.alignment('size_t')
-glib_conf.set('ALIGNOF_UNSIGNED_LONG', long_align)
-
glib_conf.set('SIZEOF_CHAR', char_size)
glib_conf.set('SIZEOF_INT', int_size)
glib_conf.set('SIZEOF_SHORT', short_size)
@@ -1523,7 +1577,6 @@ glibconfig_conf.set('gint32', gint32)
glibconfig_conf.set_quoted('gint32_modifier', gint32_modifier)
glibconfig_conf.set_quoted('gint32_format', gint32_format)
glibconfig_conf.set_quoted('guint32_format', guint32_format)
-glib_conf.set('ALIGNOF_GUINT32', guint32_align)
if int_size == 8
gint64 = 'int'
@@ -1562,7 +1615,6 @@ glibconfig_conf.set_quoted('gint64_format', gint64_format)
glibconfig_conf.set_quoted('guint64_format', guint64_format)
glibconfig_conf.set('gint64_constant', gint64_constant)
glibconfig_conf.set('guint64_constant', guint64_constant)
-glib_conf.set('ALIGNOF_GUINT64', guint64_align)
if host_system == 'windows'
glibconfig_conf.set('g_pid_type', 'void*')
@@ -1702,38 +1754,11 @@ else
endif
# === va_copy checks ===
-# we currently check for all three va_copy possibilities, so we get
-# all results in config.log for bug reports.
-
-va_copy_func = ''
-foreach try_func : [ '__va_copy', 'va_copy' ]
- if cc.compiles('''#include <stdarg.h>
- #include <stdlib.h>
- #ifdef _MSC_VER
- # include "msvc_recommended_pragmas.h"
- #endif
- void f (int i, ...) {
- va_list args1, args2;
- va_start (args1, i);
- @0@ (args2, args1);
- if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
- exit (1);
- va_end (args1); va_end (args2);
- }
- int main() {
- f (0, 42);
- return 0;
- }'''.format(try_func),
- name : try_func + ' check')
- va_copy_func = try_func
- endif
-endforeach
-if va_copy_func != ''
- glib_conf.set('G_VA_COPY', va_copy_func)
- glib_vacopy = '#define G_VA_COPY ' + va_copy_func
-else
- glib_vacopy = '/* #undef G_VA_COPY */'
-endif
+
+glib_vacopy = ''
+
+# We check for G_VA_COPY_AS_ARRAY for historical reasons, but we no longer
+# use it: use Standard C va_copy() instead.
va_list_val_copy_prog = '''
#include <stdarg.h>
@@ -1974,10 +1999,6 @@ else
glib_conf.set('HAVE_PTHREAD_GETNAME_NP', 1)
endif
- if cc.has_header_symbol('sys/syscall.h', 'SYS_sched_getattr')
- glib_conf.set('HAVE_SYS_SCHED_GETATTR', 1)
- endif
-
# Assume that pthread_setname_np is available in some form; same as configure
if cc.links(pthread_prefix + '''
int main() {
@@ -2060,7 +2081,10 @@ else
libiconv = dependency('iconv')
endif
-pcre2 = dependency('libpcre2-8', version: '>= 10.32', required : false)
+pcre2_req = '>=10.32'
+
+# Pick up pcre from the system, or if "--force-fallback-for libpcre2-8" was specified
+pcre2 = dependency('libpcre2-8', version: pcre2_req, required: false, default_options: ['default_library=static'])
if not pcre2.found()
if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl'
# MSVC: Search for the PCRE2 library by the configuration, which corresponds
@@ -2076,9 +2100,12 @@ endif
# Try again with the fallback
if not pcre2.found()
- pcre2 = dependency('libpcre2-8', required : true, fallback : ['pcre2', 'libpcre2_8'])
- use_pcre2_static_flag = true
-elif host_system == 'windows'
+ pcre2 = dependency('libpcre2-8', version: pcre2_req, allow_fallback: true, default_options: ['default_library=static'])
+ assert(pcre2.type_name() == 'internal')
+ # static flags are automatically enabled by the subproject if it's built
+ # with default_library=static
+ use_pcre2_static_flag = false
+elif host_system == 'windows' and pcre2.type_name() != 'internal'
pcre2_static = cc.links('''#define PCRE2_STATIC
#define PCRE2_CODE_UNIT_WIDTH 8
#include <pcre2.h>
@@ -2099,7 +2126,7 @@ subproject('gvdb')
gvdb_dep = dependency('gvdb')
libm = cc.find_library('m', required : false)
-libffi_dep = dependency('libffi', version : '>= 3.0.0', fallback : ['libffi', 'ffi_dep'])
+libffi_dep = dependency('libffi', version : '>= 3.0.0')
libz_dep = dependency('zlib')
@@ -2108,8 +2135,9 @@ libz_dep = dependency('zlib')
# FIXME: glib-gettext.m4 has much more checks to detect broken/uncompatible
# implementations. This could be extended if issues are found in some platforms.
libintl_deps = []
+libintl_prefix = '#include <libintl.h>'
libintl = dependency('intl', required: false)
-if libintl.found()
+if libintl.found() and libintl.type_name() != 'internal'
# libintl supports different threading APIs, which may not
# require additional flags, but it defaults to using pthreads if
# found. Meson's "threads" dependency does not allow you to
@@ -2119,22 +2147,29 @@ if libintl.found()
#
# Meson's builtin dependency lookup as of 0.60.0 doesn't check for
# pthread, so we do this manually here.
- if cc.has_function('ngettext', dependencies : libintl)
+ if cc.has_function('ngettext', dependencies : libintl, prefix: libintl_prefix)
libintl_deps += [libintl]
else
- libintl_pthread = cc.find_library('pthread', required : false)
- if libintl_pthread.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_pthread])
- libintl_deps += [libintl, libintl_pthread]
+ libintl_iconv = cc.find_library('iconv', required : false)
+ if libintl_iconv.found() and cc.has_function('ngettext', args : osx_ldflags, dependencies : [libintl, libintl_iconv])
+ libintl_deps += [libintl, libintl_iconv]
else
- libintl = disabler()
+ libintl_pthread = cc.find_library('pthread', required : false)
+ if libintl_pthread.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_pthread], prefix: libintl_prefix)
+ libintl_deps += [libintl, libintl_pthread]
+ else
+ libintl = disabler()
+ endif
endif
endif
endif
-if libintl.found()
- have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset', dependencies: libintl_deps)
+if libintl.found() and libintl.type_name() != 'internal'
+ have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset', dependencies: libintl_deps, prefix: libintl_prefix)
else
- libintl = subproject('proxy-libintl').get_variable('intl_dep')
+ # using proxy-libintl fallback
+ libintl = dependency('intl', allow_fallback: true)
+ assert(libintl.type_name() == 'internal')
libintl_deps = [libintl]
have_bind_textdomain_codeset = true # proxy-libintl supports it
endif
@@ -2147,6 +2182,9 @@ glib_conf.set('HAVE_GETTEXT', 1)
glib_conf.set_quoted('GLIB_LOCALE_DIR', join_paths(glib_datadir, 'locale'))
+glib_conf.set_quoted('GLIB_LOCALSTATEDIR', glib_localstatedir)
+glib_conf.set_quoted('GLIB_RUNSTATEDIR', glib_runstatedir)
+
# libmount is only used by gio, but we need to fetch the libs to generate the
# pkg-config file below
libmount_dep = []
@@ -2299,9 +2337,11 @@ if not python_version.version_compare(python_version_req)
endif
# Determine which user environment-dependent files that we want to install
-have_bash = find_program('bash', required : false).found() # For completion scripts
+bash = find_program('bash', required : false)
+have_bash = bash.found() # For completion scripts
bash_comp_dep = dependency('bash-completion', version: '>=2.0', required: false)
have_sh = find_program('sh', required : false).found() # For glib-gettextize
+have_pkg_config = find_program('pkg-config', required: false).found()
# Some installed tests require a custom environment
env_program = find_program('env', required: installed_tests_enabled)
@@ -2336,6 +2376,20 @@ if host_system == 'windows' and cc.get_id() != 'msvc' and cc.get_id() != 'clang-
# Ensure MSVC-compatible struct packing convention is used when
# compiling for Win32 with gcc. It is used for the whole project and exposed
# in glib-2.0.pc.
+ if not cc.compiles('''
+struct _GTestMSBitfields
+{
+ int a : 1;
+ short b : 1;
+};
+
+typedef char _StaticCheck[sizeof(struct _GTestMSBitfields) != sizeof(int) ? 1 : -1];
+''')
+ warning('''
+Your compiler does not have ms-bitfields packing by default.
+Please use gcc >= 4.7 or clang >= 12: GLib will drop -mms-bitfields in the future.
+''')
+ endif
win32_cflags = ['-mms-bitfields']
add_project_arguments(win32_cflags, language : 'c')
@@ -2363,15 +2417,29 @@ if want_dtrace
dtrace_obj_gen = generator(dtrace,
output : '@BASENAME@.o',
arguments : ['-G', '-s', '@INPUT@', '-o', '@OUTPUT@'])
- # FIXME: $(SED) -e "s,define STAP_HAS_SEMAPHORES 1,undef STAP_HAS_SEMAPHORES,"
- # -e "s,define _SDT_HAS_SEMAPHORES 1,undef _SDT_HAS_SEMAPHORES,"
- dtrace_hdr_gen = generator(dtrace,
+ dtrace_hdr_gen = generator(python,
output : '@BASENAME@.h',
- arguments : ['-h', '-s', '@INPUT@', '-o', '@OUTPUT@'])
+ arguments : ['-c', '''
+import subprocess, sys
+subprocess.run(sys.argv[1:], check=True)
+output = sys.argv[6]
+with open(output) as f:
+ contents = f.read()
+contents = contents.replace("define STAP_HAS_SEMAPHORES 1",
+ "undef STAP_HAS_SEMAPHORES")
+contents = contents.replace("define _SDT_HAS_SEMAPHORES 1",
+ "undef _SDT_HAS_SEMAPHORES")
+with open(output, "w") as f:
+ f.write(contents)
+''', dtrace.full_path(), '-h', '-s', '@INPUT@', '-o', '@OUTPUT@'])
glib_conf.set('HAVE_DTRACE', 1)
enable_dtrace = true
endif
+if cc.has_header_symbol('sys/ptrace.h', 'PTRACE_O_EXITKILL')
+ glib_conf.set('HAVE_PTRACE_O_EXITKILL', 1)
+endif
+
# systemtap
want_systemtap = get_option('systemtap')
enable_systemtap = false
@@ -2388,18 +2456,15 @@ if want_systemtap and enable_dtrace
enable_systemtap = true
endif
-test_timeout = 60
-test_timeout_slow = 180
-
pkg = import('pkgconfig')
windows = import('windows')
+subdir('tools')
subdir('glib')
subdir('gobject')
subdir('gthread')
subdir('gmodule')
subdir('gio')
subdir('fuzzing')
-subdir('tools')
# xgettext is optional (on Windows for instance)
if find_program('xgettext', required : get_option('nls')).found()
@@ -2412,12 +2477,22 @@ install_data('m4macros/glib-2.0.m4', 'm4macros/glib-gettext.m4', 'm4macros/gsett
install_tag : 'devel',
)
-configure_file(output : 'config.h', configuration : glib_conf)
-
+# Check whether we support overriding the invalid parameter handler on Windows for _get_osfhandle(),
+# g_fsync() (i.e. _commit()), etc
if host_system == 'windows'
- install_headers([ 'msvc_recommended_pragmas.h' ], subdir : 'glib-2.0')
+ if cc.has_function('_set_thread_local_invalid_parameter_handler', prefix: '#include <stdlib.h>')
+ glib_conf.set('HAVE__SET_THREAD_LOCAL_INVALID_PARAMETER_HANDLER', 1)
+ endif
+ if cc.has_function('_set_invalid_parameter_handler', prefix: '#include <stdlib.h>')
+ glib_conf.set('HAVE__SET_INVALID_PARAMETER_HANDLER', 1)
+ endif
+ if cc.has_header_symbol('crtdbg.h', '_CrtSetReportMode')
+ glib_conf.set('HAVE__CRT_SET_REPORT_MODE', 1)
+ endif
endif
+configure_file(output : 'config.h', configuration : glib_conf)
+
if get_option('man')
xsltproc = find_program('xsltproc', required : true)
xsltproc_command = [
@@ -2437,3 +2512,71 @@ endif
gnome = import('gnome')
subdir('docs/reference')
+
+summary({
+ 'host cpu' : host_machine.cpu_family(),
+ 'host endian' : host_machine.endian(),
+ 'host system' : host_system,
+ 'C Compiler' : cc.get_id(),
+ 'C++ Compiler' : have_cxx ? cxx.get_id() : 'none',
+ 'shared build' : glib_build_shared,
+ 'static build' : glib_build_static,
+}, section: 'Build environment')
+
+if build_machine.system() != host_system
+ summary({
+ 'build cpu' : build_machine.cpu_family(),
+ 'build endian' : build_machine.endian(),
+ 'build system' : build_machine.system(),
+ }, section: 'Build environment')
+endif
+
+summary({
+ 'prefix' : glib_prefix,
+ 'bindir' : glib_bindir,
+ 'libexecdir' : glib_libexecdir,
+ 'pkgdatadir' : glib_pkgdatadir,
+ 'datadir' : glib_datadir,
+ 'includedir' : glib_includedir,
+ 'giomodulesdir' : glib_giomodulesdir,
+ 'localstatedir' : glib_localstatedir,
+ 'runstatedir' : glib_runstatedir,
+}, section: 'Directories')
+
+if get_option('multiarch')
+ summary({
+ 'multiarch bindir' : glib_bindir,
+ 'multiarch libexecdir' : glib_libexecdir,
+ }, section: 'Directories')
+endif
+
+if enable_systemtap
+ summary('tapset dir', get_option('tapset_install_dir'), section: 'Directories')
+endif
+
+if host_system == 'linux'
+ summary({
+ 'selinux' : selinux_dep.found(),
+ 'libmount' : libmount_dep.found(),
+ }, section: 'Options')
+endif
+
+summary({
+ 'xattr' : xattr_dep.length() > 0,
+ 'man' : get_option('man'),
+ 'dtrace' : get_option('dtrace'),
+ 'systemtap' : enable_systemtap,
+ 'sysprof' : libsysprof_capture_dep.found(),
+ 'gtk_doc' : get_option('gtk_doc'),
+ 'bsymbolic_functions' : get_option('bsymbolic_functions'),
+ 'force_posix_threads' : get_option('force_posix_threads'),
+ 'tests' : get_option('tests'),
+ 'installed_tests' : get_option('installed_tests'),
+ 'nls' : get_option('nls'),
+ 'oss_fuzz' : get_option('oss_fuzz'),
+ 'glib_debug' : get_option('glib_debug'),
+ 'glib_assert' : get_option('glib_assert'),
+ 'glib_checks' : get_option('glib_checks'),
+ 'libelf' : get_option('libelf'),
+ 'multiarch' : get_option('multiarch'),
+}, section: 'Options')
diff --git a/meson_options.txt b/meson_options.txt
index f13cbfdd5..517d5757c 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,13 +1,8 @@
option('runtime_libdir',
type : 'string',
value : '',
- description : 'install runtime libraries relative to libdir')
-
-option('iconv',
- type : 'combo',
- choices : ['auto', 'libc', 'external'],
- value : 'auto',
- deprecated: true,)
+ description : 'install runtime libraries relative to libdir',
+ deprecated: true)
option('charsetalias_dir',
type : 'string',
@@ -19,6 +14,14 @@ option('gio_module_dir',
value : '',
description : 'load gio modules from this directory (default to \'libdir/gio/modules\' if unset)')
+# FIXME: Deliberately not named runstatedir to avoid colliding with
+# https://github.com/mesonbuild/meson/issues/4141; port to that when Meson
+# supports it
+option('runtime_dir',
+ type: 'string',
+ value: '',
+ description: 'Directory for transient runtime state [default: /run]')
+
option('selinux',
type : 'feature',
value : 'auto',
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 24daa0813..9a4cdf35c 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -196,6 +196,7 @@ glib/goption.c
glib/gregex.c
glib/gshell.c
glib/gspawn.c
+glib/gspawn-private.h
glib/gspawn-win32.c
glib/gstrfuncs.c
glib/guri.c
diff --git a/po/ab.po b/po/ab.po
index 8317b68aa..c4d231a35 100644
--- a/po/ab.po
+++ b/po/ab.po
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-11-24 12:35+0000\n"
+"POT-Creation-Date: 2022-09-24 17:13+0000\n"
"Last-Translator: Нанба Наала <naala-nanba@rambler.ru>\n"
"Language-Team: Abkhazian <daniel.abzakh@gmail.com>\n"
"Language: ab\n"
@@ -9,7 +9,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-DamnedLies-Scope: partial\n"
#: gio/gappinfo.c:335
msgid "Setting default applications not supported yet"
@@ -113,7 +112,7 @@ msgstr ""
#: gio/gapplication-tool.c:74 gio/gapplication-tool.c:137 gio/gdbus-tool.c:108
#: gio/gio-tool.c:226
msgid "COMMAND"
-msgstr "АДҴА"
+msgstr ""
#: gio/gapplication-tool.c:74
msgid "The command to print detailed help for"
@@ -1217,7 +1216,7 @@ msgstr ""
msgid "Not authorized to change debug settings"
msgstr ""
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5120
+#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5119
msgid "Unnamed"
msgstr "Хьӡыда"
@@ -1229,26 +1228,26 @@ msgstr ""
msgid "Unable to find terminal required for application"
msgstr ""
-#: gio/gdesktopappinfo.c:3638
+#: gio/gdesktopappinfo.c:3637
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
-#: gio/gdesktopappinfo.c:3642
+#: gio/gdesktopappinfo.c:3641
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr ""
-#: gio/gdesktopappinfo.c:3884 gio/gdesktopappinfo.c:3908
+#: gio/gdesktopappinfo.c:3883 gio/gdesktopappinfo.c:3907
msgid "Application information lacks an identifier"
msgstr ""
-#: gio/gdesktopappinfo.c:4144
+#: gio/gdesktopappinfo.c:4143
#, c-format
msgid "Can’t create user desktop file %s"
msgstr ""
-#: gio/gdesktopappinfo.c:4280
+#: gio/gdesktopappinfo.c:4279
#, c-format
msgid "Custom definition for %s"
msgstr ""
@@ -1366,7 +1365,7 @@ msgstr ""
msgid "Invalid symlink value given"
msgstr ""
-#: gio/gfile.c:4163 glib/gfileutils.c:2354
+#: gio/gfile.c:4163 glib/gfileutils.c:2335
msgid "Symbolic links not supported"
msgstr ""
@@ -2008,7 +2007,7 @@ msgstr ""
#: gio/gio-tool-mount.c:69
msgid "DEVICE"
-msgstr "АИҾАРТӘЫРА"
+msgstr ""
#: gio/gio-tool-mount.c:70
msgid "Unmount all mounts with the given scheme"
@@ -2107,7 +2106,7 @@ msgstr ""
#: gio/gio-tool-rename.c:47
msgid "NAME"
-msgstr "АХЬӠ"
+msgstr ""
#: gio/gio-tool-rename.c:52
msgid "Rename a file."
@@ -2986,115 +2985,115 @@ msgstr ""
msgid "Error setting extended attribute “%s”: %s"
msgstr ""
-#: gio/glocalfileinfo.c:1732 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr ""
-#: gio/glocalfileinfo.c:1891 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2157
+#: gio/glocalfileinfo.c:2163
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2202
+#: gio/glocalfileinfo.c:2208
msgid "Invalid attribute type (uint32 expected)"
msgstr ""
-#: gio/glocalfileinfo.c:2220
+#: gio/glocalfileinfo.c:2226
msgid "Invalid attribute type (uint64 expected)"
msgstr ""
-#: gio/glocalfileinfo.c:2239 gio/glocalfileinfo.c:2258
+#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
msgid "Invalid attribute type (byte string expected)"
msgstr ""
-#: gio/glocalfileinfo.c:2305
+#: gio/glocalfileinfo.c:2311
msgid "Cannot set permissions on symlinks"
msgstr ""
-#: gio/glocalfileinfo.c:2321
+#: gio/glocalfileinfo.c:2327
#, c-format
msgid "Error setting permissions: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2372
+#: gio/glocalfileinfo.c:2378
#, c-format
msgid "Error setting owner: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2395
+#: gio/glocalfileinfo.c:2401
msgid "symlink must be non-NULL"
msgstr ""
-#: gio/glocalfileinfo.c:2405 gio/glocalfileinfo.c:2424
-#: gio/glocalfileinfo.c:2435
+#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
+#: gio/glocalfileinfo.c:2441
#, c-format
msgid "Error setting symlink: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2414
+#: gio/glocalfileinfo.c:2420
msgid "Error setting symlink: file is not a symlink"
msgstr ""
-#: gio/glocalfileinfo.c:2506
+#: gio/glocalfileinfo.c:2492
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
-#: gio/glocalfileinfo.c:2515
+#: gio/glocalfileinfo.c:2501
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
-#: gio/glocalfileinfo.c:2525
+#: gio/glocalfileinfo.c:2511
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "Аамҭалатәи адырга UNIX %lld 64 бит иакӡом"
-#: gio/glocalfileinfo.c:2536
+#: gio/glocalfileinfo.c:2522
#, fuzzy, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "Аамҭалатәи адырга UNIX %ll d иаҵанакцом Windows зыцхыраауа аҵакыра"
-#: gio/glocalfileinfo.c:2668
+#: gio/glocalfileinfo.c:2625
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr ""
-#: gio/glocalfileinfo.c:2687
+#: gio/glocalfileinfo.c:2644
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr ""
-#: gio/glocalfileinfo.c:2700
+#: gio/glocalfileinfo.c:2657
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
-#: gio/glocalfileinfo.c:2856
+#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
#, c-format
msgid "Error setting modification or access time: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2879
+#: gio/glocalfileinfo.c:2833
msgid "SELinux context must be non-NULL"
msgstr ""
-#: gio/glocalfileinfo.c:2886
+#: gio/glocalfileinfo.c:2840
msgid "SELinux is not enabled on this system"
msgstr ""
-#: gio/glocalfileinfo.c:2896
+#: gio/glocalfileinfo.c:2850
#, c-format
msgid "Error setting SELinux context: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2993
+#: gio/glocalfileinfo.c:2947
#, c-format
msgid "Setting attribute %s not supported"
msgstr ""
@@ -4809,7 +4808,7 @@ msgstr ""
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr ""
-#: glib/gfileutils.c:2310 glib/gfileutils.c:2339
+#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr ""
@@ -5192,300 +5191,300 @@ msgstr ""
msgid "Unknown option %s"
msgstr ""
-#: glib/gregex.c:479
+#: glib/gregex.c:474
msgid "corrupted object"
msgstr ""
-#: glib/gregex.c:481
+#: glib/gregex.c:476
msgid "out of memory"
msgstr ""
-#: glib/gregex.c:487
+#: glib/gregex.c:482
msgid "backtracking limit reached"
msgstr ""
-#: glib/gregex.c:498
+#: glib/gregex.c:493 glib/gregex.c:746 glib/gregex.c:775
msgid "internal error"
msgstr ""
-#: glib/gregex.c:500
+#: glib/gregex.c:495
msgid "the pattern contains items not supported for partial matching"
msgstr ""
-#: glib/gregex.c:502
+#: glib/gregex.c:497
msgid "back references as conditions are not supported for partial matching"
msgstr ""
-#: glib/gregex.c:508
+#: glib/gregex.c:503
msgid "recursion limit reached"
msgstr ""
-#: glib/gregex.c:510
+#: glib/gregex.c:505
msgid "bad offset"
msgstr ""
-#: glib/gregex.c:512
+#: glib/gregex.c:507
msgid "recursion loop"
msgstr ""
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:515
+#: glib/gregex.c:510
msgid "matching mode is requested that was not compiled for JIT"
msgstr ""
-#: glib/gregex.c:536 glib/gregex.c:1838
+#: glib/gregex.c:514
msgid "unknown error"
msgstr ""
-#: glib/gregex.c:557
+#: glib/gregex.c:535
msgid "\\ at end of pattern"
msgstr ""
-#: glib/gregex.c:561
+#: glib/gregex.c:539
msgid "\\c at end of pattern"
msgstr ""
-#: glib/gregex.c:566
+#: glib/gregex.c:544
msgid "unrecognized character following \\"
msgstr ""
-#: glib/gregex.c:570
+#: glib/gregex.c:548
msgid "numbers out of order in {} quantifier"
msgstr ""
-#: glib/gregex.c:574
+#: glib/gregex.c:552
msgid "number too big in {} quantifier"
msgstr ""
-#: glib/gregex.c:578
+#: glib/gregex.c:556
msgid "missing terminating ] for character class"
msgstr ""
-#: glib/gregex.c:582
+#: glib/gregex.c:560
msgid "invalid escape sequence in character class"
msgstr ""
-#: glib/gregex.c:586
+#: glib/gregex.c:564
msgid "range out of order in character class"
msgstr ""
-#: glib/gregex.c:591
+#: glib/gregex.c:569
msgid "nothing to repeat"
msgstr ""
-#: glib/gregex.c:595
+#: glib/gregex.c:573
msgid "unrecognized character after (? or (?-"
msgstr ""
-#: glib/gregex.c:599
+#: glib/gregex.c:577
msgid "POSIX named classes are supported only within a class"
msgstr ""
-#: glib/gregex.c:603
+#: glib/gregex.c:581
msgid "POSIX collating elements are not supported"
msgstr ""
-#: glib/gregex.c:609
+#: glib/gregex.c:587
msgid "missing terminating )"
msgstr ""
-#: glib/gregex.c:613
+#: glib/gregex.c:591
msgid "reference to non-existent subpattern"
msgstr ""
-#: glib/gregex.c:617
+#: glib/gregex.c:595
msgid "missing ) after comment"
msgstr ""
-#: glib/gregex.c:621
+#: glib/gregex.c:599
msgid "regular expression is too large"
msgstr ""
-#: glib/gregex.c:625
+#: glib/gregex.c:603
msgid "malformed number or name after (?("
msgstr ""
-#: glib/gregex.c:629
+#: glib/gregex.c:607
msgid "lookbehind assertion is not fixed length"
msgstr ""
-#: glib/gregex.c:633
+#: glib/gregex.c:611
msgid "conditional group contains more than two branches"
msgstr ""
-#: glib/gregex.c:637
+#: glib/gregex.c:615
msgid "assertion expected after (?("
msgstr ""
-#: glib/gregex.c:641
+#: glib/gregex.c:619
msgid "a numbered reference must not be zero"
msgstr ""
-#: glib/gregex.c:645
+#: glib/gregex.c:623
msgid "unknown POSIX class name"
msgstr ""
-#: glib/gregex.c:650
+#: glib/gregex.c:628
msgid "character value in \\x{...} sequence is too large"
msgstr ""
-#: glib/gregex.c:654
+#: glib/gregex.c:632
msgid "\\C not allowed in lookbehind assertion"
msgstr ""
-#: glib/gregex.c:658
+#: glib/gregex.c:636
msgid "missing terminator in subpattern name"
msgstr ""
-#: glib/gregex.c:662
+#: glib/gregex.c:640
msgid "two named subpatterns have the same name"
msgstr ""
-#: glib/gregex.c:666
+#: glib/gregex.c:644
msgid "malformed \\P or \\p sequence"
msgstr ""
-#: glib/gregex.c:670
+#: glib/gregex.c:648
msgid "unknown property name after \\P or \\p"
msgstr ""
-#: glib/gregex.c:674
+#: glib/gregex.c:652
msgid "subpattern name is too long (maximum 32 characters)"
msgstr ""
-#: glib/gregex.c:678
+#: glib/gregex.c:656
msgid "too many named subpatterns (maximum 10,000)"
msgstr ""
-#: glib/gregex.c:682
+#: glib/gregex.c:660
msgid "octal value is greater than \\377"
-msgstr "Аабаны иҟоу аҵакы еиҳауп \\377"
+msgstr ""
-#: glib/gregex.c:686
+#: glib/gregex.c:664
msgid "DEFINE group contains more than one branch"
msgstr ""
-#: glib/gregex.c:690
+#: glib/gregex.c:668
msgid "inconsistent NEWLINE options"
msgstr ""
-#: glib/gregex.c:694
+#: glib/gregex.c:672
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
msgstr ""
-#: glib/gregex.c:699
+#: glib/gregex.c:677
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr ""
-#: glib/gregex.c:703
+#: glib/gregex.c:681
msgid "(*VERB) not recognized"
msgstr ""
-#: glib/gregex.c:707
+#: glib/gregex.c:685
msgid "number is too big"
msgstr ""
-#: glib/gregex.c:711
+#: glib/gregex.c:689
msgid "missing subpattern name after (?&"
msgstr ""
-#: glib/gregex.c:715
+#: glib/gregex.c:693
msgid "different names for subpatterns of the same number are not allowed"
msgstr ""
-#: glib/gregex.c:719
+#: glib/gregex.c:697
msgid "(*MARK) must have an argument"
msgstr ""
-#: glib/gregex.c:723
+#: glib/gregex.c:701
msgid "\\c must be followed by an ASCII character"
msgstr ""
-#: glib/gregex.c:727
+#: glib/gregex.c:705
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
-#: glib/gregex.c:731
+#: glib/gregex.c:709
msgid "\\N is not supported in a class"
msgstr ""
-#: glib/gregex.c:735
+#: glib/gregex.c:713
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr ""
-#: glib/gregex.c:739 glib/gregex.c:875
+#: glib/gregex.c:717 glib/gregex.c:856
msgid "code overflow"
msgstr ""
-#: glib/gregex.c:743
+#: glib/gregex.c:721
msgid "unrecognized character after (?P"
msgstr ""
-#: glib/gregex.c:747
+#: glib/gregex.c:725
msgid "overran compiling workspace"
msgstr ""
-#: glib/gregex.c:751
+#: glib/gregex.c:729
msgid "previously-checked referenced subpattern not found"
msgstr ""
-#: glib/gregex.c:874 glib/gregex.c:1121 glib/gregex.c:2444
+#: glib/gregex.c:855 glib/gregex.c:1100 glib/gregex.c:2406
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr ""
-#: glib/gregex.c:1721
+#: glib/gregex.c:1696
msgid "PCRE library is compiled without UTF8 support"
msgstr "Абиблиотека PCRE еизгоуп UTF-8 амаҵурада"
-#: glib/gregex.c:1729
+#: glib/gregex.c:1704
msgid "PCRE library is compiled with incompatible options"
msgstr "Абиблиотека PCRE еизгоуп еимарам ахышәарақәа рыла"
-#: glib/gregex.c:1847
+#: glib/gregex.c:1813
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr ""
-#: glib/gregex.c:2887
+#: glib/gregex.c:2848
msgid "hexadecimal digit or “}” expected"
msgstr "Иазыԥшуп жәаф хыԥхьаӡара змоу аԥхьаӡац, мамзар “}”"
-#: glib/gregex.c:2903
+#: glib/gregex.c:2864
msgid "hexadecimal digit expected"
msgstr "Иазыԥшуп жәаф хыԥхьаӡара змоу аԥхьаӡац"
-#: glib/gregex.c:2943
+#: glib/gregex.c:2904
msgid "missing “<” in symbolic reference"
msgstr "Иазхаӡом “<” асимволтә зхьарԥш аҟны"
-#: glib/gregex.c:2952
+#: glib/gregex.c:2913
msgid "unfinished symbolic reference"
msgstr "Ихырқәшам асимолтә зхьарԥш"
-#: glib/gregex.c:2959
+#: glib/gregex.c:2920
msgid "zero-length symbolic reference"
msgstr "Асимвотә зхьарԥш зоура ноль ыҟоу"
-#: glib/gregex.c:2970
+#: glib/gregex.c:2931
msgid "digit expected"
msgstr "Аԥхьаӡац азҧшра"
-#: glib/gregex.c:2988
+#: glib/gregex.c:2949
msgid "illegal symbolic reference"
msgstr "Иақәнагам асимволтә зхьарԥш"
-#: glib/gregex.c:3051
+#: glib/gregex.c:3012
msgid "stray final “\\”"
msgstr ""
-#: glib/gregex.c:3055
+#: glib/gregex.c:3016
msgid "unknown escape sequence"
msgstr "Еилкаам икодрку аишьҭагылазаара"
-#: glib/gregex.c:3065
+#: glib/gregex.c:3026
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Аҧсахратә текст аилыргара агха “%s” асимвол %lu аҟны : %s"
@@ -5512,92 +5511,92 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr ""
-#: glib/gspawn.c:310
+#: glib/gspawn.c:314
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr ""
-#: glib/gspawn.c:462
+#: glib/gspawn.c:466
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr ""
-#: glib/gspawn.c:547
+#: glib/gspawn.c:551
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr ""
-#: glib/gspawn.c:1166 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
#, c-format
msgid "Child process exited with code %ld"
msgstr ""
-#: glib/gspawn.c:1174
+#: glib/gspawn.c:1178
#, c-format
msgid "Child process killed by signal %ld"
msgstr ""
-#: glib/gspawn.c:1181
+#: glib/gspawn.c:1185
#, c-format
msgid "Child process stopped by signal %ld"
msgstr ""
-#: glib/gspawn.c:1188
+#: glib/gspawn.c:1192
#, c-format
msgid "Child process exited abnormally"
msgstr ""
-#: glib/gspawn.c:1867 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Иаҿыгоу аканал (%s) аҟынтә аиагара залымшахеит"
-#: glib/gspawn.c:2230
+#: glib/gspawn.c:2248
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr ""
-#: glib/gspawn.c:2347
+#: glib/gspawn.c:2365
#, c-format
msgid "Failed to fork (%s)"
msgstr ""
-#: glib/gspawn.c:2507 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr ""
-#: glib/gspawn.c:2517
+#: glib/gspawn.c:2535
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr ""
-#: glib/gspawn.c:2527
+#: glib/gspawn.c:2545
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr ""
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2553
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr ""
-#: glib/gspawn.c:2544
+#: glib/gspawn.c:2562
#, c-format
msgid "Failed to fork child process (%s)"
msgstr ""
-#: glib/gspawn.c:2552
+#: glib/gspawn.c:2570
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr ""
-#: glib/gspawn.c:2560
+#: glib/gspawn.c:2578
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr ""
-#: glib/gspawn.c:2584
+#: glib/gspawn.c:2602
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
@@ -5961,3 +5960,3879 @@ msgstr ""
#, c-format
msgid "%.1f EB"
msgstr ""
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#, fuzzy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#, fuzzy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#, fuzzy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#, fuzzy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#, fuzzy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#, fuzzy
+
+
+
+#, fuzzy
+
+#, fuzzy
+
+
+
+
+
+
+#, fuzzy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#, fuzzy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#, fuzzy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#, fuzzy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#, fuzzy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#, fuzzy
diff --git a/po/be.po b/po/be.po
index 5fc993e2f..e56219e65 100644
--- a/po/be.po
+++ b/po/be.po
@@ -4,8 +4,8 @@ msgid ""
msgstr ""
"Project-Id-Version: glib.master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-12-12 00:16+0000\n"
-"PO-Revision-Date: 2022-12-16 01:48+0300\n"
+"POT-Creation-Date: 2022-11-24 19:49+0000\n"
+"PO-Revision-Date: 2023-01-20 19:54+0300\n"
"Last-Translator: Yuras Shumovich <shumovichy@gmail.com>\n"
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
"Language: be\n"
@@ -500,10 +500,11 @@ msgstr "Указаны адрас пусты"
#, c-format
msgid "Cannot spawn a message bus when AT_SECURE is set"
msgstr ""
+"Немагчыма стварыць шыну паведамлення, калі зададзена значэнне AT_SECURE"
#: gio/gdbusaddress.c:1108
msgid "Cannot spawn a message bus without a machine-id: "
-msgstr "Немагчыма стварыць шыну апавяшчэння без ідэнтыфікатара машыны: "
+msgstr "Немагчыма стварыць шыну паведамлення без ідэнтыфікатара машыны: "
#: gio/gdbusaddress.c:1115
#, c-format
@@ -522,14 +523,14 @@ msgstr ""
"Немагчыма вызначыць адрас сеансавай магістралі (такая здольнасць не "
"рэалізаваная для вашай аперацыйнай сістэмы)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7322
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
"— unknown value “%s”"
msgstr ""
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7331
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -649,7 +650,7 @@ msgstr ""
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr ""
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2405
msgid "The connection is closed"
msgstr "Злучэнне закрыта"
@@ -657,89 +658,89 @@ msgstr "Злучэнне закрыта"
msgid "Timeout was reached"
msgstr "Тэрмін чакання скончыўся"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2528
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr "Падчас стварэння злучэння з боку кліента напатканыя невядомыя сцяжкі"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4257 gio/gdbusconnection.c:4611
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4402
#, c-format
msgid "No such property “%s”"
msgstr "Уласцівасць «%s» адсутнічае"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4414
#, c-format
msgid "Property “%s” is not readable"
msgstr "Уласцівасць «%s» недаступна для чытання"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4425
#, c-format
msgid "Property “%s” is not writable"
msgstr "Уласцівасць «%s» недаступна для запісу"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4550 gio/gdbusconnection.c:4765
+#: gio/gdbusconnection.c:6748
#, c-format
msgid "No such interface “%s”"
msgstr "Інтэрфейс «%s» адсутнічае"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:4987 gio/gdbusconnection.c:7262
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr ""
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5088
#, c-format
msgid "No such method “%s”"
msgstr "Метад «%s» адсутнічае"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5119
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr ""
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5322
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Аб'ект ужо экспартаваны для інтэрфейсу \"%s\" на \"%s\""
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5549
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr ""
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5605
#, c-format
msgid "Unable to set property %s.%s"
msgstr ""
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5784
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr ""
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6860
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr ""
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6981
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Паддрэва для \"%s\" ужо экспартавана"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7270
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Аб'ект па шляху «%s» не існуе"
@@ -912,7 +913,7 @@ msgstr ""
#: gio/gdbusmessage.c:2845
msgid "Cannot serialize message: "
-msgstr "Не ўдалося серыялізаваць паведамленне: "
+msgstr "Немагчыма серыялізаваць паведамленне: "
#: gio/gdbusmessage.c:2898
#, c-format
@@ -980,25 +981,25 @@ msgid ""
"and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
msgstr ""
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr ""
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Немагчыма вызначыць файл таямніцы (\"nonce\") пры стварэнні сервера"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr ""
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Радок «%s» не з'яўляецца правільным D-Bus GUID"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr ""
@@ -1288,7 +1289,7 @@ msgstr "Памылка: %s не з'яўляецца правільнай доб
msgid "Not authorized to change debug settings"
msgstr ""
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5120
+#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5106
msgid "Unnamed"
msgstr "Без назвы"
@@ -1296,30 +1297,30 @@ msgstr "Без назвы"
msgid "Desktop file didn’t specify Exec field"
msgstr ""
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2877
msgid "Unable to find terminal required for application"
msgstr "Не ўдалося знайсці тэрмінал, патрэбны для праграмы"
-#: gio/gdesktopappinfo.c:3638
+#: gio/gdesktopappinfo.c:3624
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
-#: gio/gdesktopappinfo.c:3642
+#: gio/gdesktopappinfo.c:3628
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr ""
-#: gio/gdesktopappinfo.c:3884 gio/gdesktopappinfo.c:3908
+#: gio/gdesktopappinfo.c:3870 gio/gdesktopappinfo.c:3894
msgid "Application information lacks an identifier"
msgstr "Інфармацыі аб праграме не стае ідэнтыфікатара"
-#: gio/gdesktopappinfo.c:4144
+#: gio/gdesktopappinfo.c:4130
#, c-format
msgid "Can’t create user desktop file %s"
msgstr ""
-#: gio/gdesktopappinfo.c:4280
+#: gio/gdesktopappinfo.c:4266
#, c-format
msgid "Custom definition for %s"
msgstr "Уласнае азначэнне для %s"
@@ -1392,7 +1393,7 @@ msgstr "Чакалі GEmblem для GEmblemedIcon"
msgid "Containing mount does not exist"
msgstr "Прымацаваны дыск, які змяшчае файл, не існуе"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2641 gio/glocalfile.c:2504
msgid "Can’t copy over directory"
msgstr ""
@@ -1540,37 +1541,37 @@ msgstr ""
msgid "HTTP proxy server closed connection unexpectedly."
msgstr ""
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Хібная колькасць складнікаў (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Назва класа %s не мае тыпу"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Тып %s не мае інтэрфейсу GIcon"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Тып %s не мае класаў"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Хібны нумар версіі: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Тып %s не мае функцыі from_tokens() для інтэрфейсу GIcon"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr ""
@@ -1788,7 +1789,7 @@ msgstr "МЕСЦА_ПРЫЗНАЧЭННЯ"
#: gio/gio-tool-copy.c:107
msgid "Copy one or more files from SOURCE to DESTINATION."
-msgstr "Капіраваць адзін або некалькі файлаў з КРЫНІЦА ў МЕСЦА_ПРЫЗНАЧЭННЯ"
+msgstr "Капіраваць адзін або некалькі файлаў з КРЫНІЦА ў МЕСЦА_ПРЫЗНАЧЭННЯ."
#: gio/gio-tool-copy.c:109
msgid ""
@@ -2915,7 +2916,7 @@ msgstr ""
msgid "Invalid filename %s"
msgstr "Няправільная назва файла %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1005
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr ""
@@ -2924,124 +2925,124 @@ msgstr ""
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1141
#, c-format
msgid "Containing mount for file %s not found"
msgstr ""
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1164
msgid "Can’t rename root directory"
msgstr ""
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1182 gio/glocalfile.c:1205
#, c-format
msgid "Error renaming file %s: %s"
msgstr ""
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1189
msgid "Can’t rename file, filename already exists"
msgstr ""
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1202 gio/glocalfile.c:2398 gio/glocalfile.c:2426
+#: gio/glocalfile.c:2565 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Няправільная назва файла"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1370 gio/glocalfile.c:1381
#, c-format
msgid "Error opening file %s: %s"
msgstr ""
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1506
#, c-format
msgid "Error removing file %s: %s"
msgstr ""
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2000 gio/glocalfile.c:2011 gio/glocalfile.c:2038
#, c-format
msgid "Error trashing file %s: %s"
msgstr ""
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2058
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr ""
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2079
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr ""
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2087
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2173 gio/glocalfile.c:2201
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr ""
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2247
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr ""
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2309
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr ""
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2313 gio/glocalfile.c:2369
#, c-format
msgid "Unable to trash file %s: %s"
msgstr ""
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2375
#, c-format
msgid "Unable to trash file %s"
msgstr ""
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2401
#, c-format
msgid "Error creating directory %s: %s"
msgstr ""
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2430
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Файлавая сістэма не падтрымлівае сімвальных спасылак"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2433
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr ""
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2476 gio/glocalfile.c:2511 gio/glocalfile.c:2568
#, c-format
msgid "Error moving file %s: %s"
msgstr "Памылка перамяшчэння файла %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2499
msgid "Can’t move directory over directory"
msgstr ""
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2525 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Не ўдалося стварыць запасную копію файла"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2544
#, c-format
msgid "Error removing target file: %s"
msgstr "Памылка выдалення мэтавага файла: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2558
msgid "Move between mounts not supported"
msgstr "Перамяшчэнне з аднаго прымацаванага дыска на іншы не падтрымліваецца"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2734
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Не ўдалося вызначыць узровень выкарыстання дыска для %s: %s"
@@ -3063,116 +3064,116 @@ msgstr "Няправільная назва пашыранага атрыбут
msgid "Error setting extended attribute “%s”: %s"
msgstr ""
-#: gio/glocalfileinfo.c:1732 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1731 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (няправільнае кадаванне)"
-#: gio/glocalfileinfo.c:1891 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1890 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Памылка пры зборы звестак пра файл “%s”: %s"
-#: gio/glocalfileinfo.c:2157
+#: gio/glocalfileinfo.c:2156
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Памылка пры зборы звестак аб дэскрыптары файла: %s"
-#: gio/glocalfileinfo.c:2202
+#: gio/glocalfileinfo.c:2201
msgid "Invalid attribute type (uint32 expected)"
msgstr "Няправільны тып атрыбута (чакаўся uint32)"
-#: gio/glocalfileinfo.c:2220
+#: gio/glocalfileinfo.c:2219
msgid "Invalid attribute type (uint64 expected)"
msgstr "Няправільны тып атрыбута (чакаўся uint64)"
-#: gio/glocalfileinfo.c:2239 gio/glocalfileinfo.c:2258
+#: gio/glocalfileinfo.c:2238 gio/glocalfileinfo.c:2257
msgid "Invalid attribute type (byte string expected)"
msgstr "Няправільны тып атрыбута (чакаўся радок байтаў)"
-#: gio/glocalfileinfo.c:2305
+#: gio/glocalfileinfo.c:2304
msgid "Cannot set permissions on symlinks"
msgstr "Немагчыма настаўляць дазволы для сімвальных спасылак"
-#: gio/glocalfileinfo.c:2321
+#: gio/glocalfileinfo.c:2320
#, c-format
msgid "Error setting permissions: %s"
msgstr "Памылка настаўлення дазволаў: %s"
-#: gio/glocalfileinfo.c:2372
+#: gio/glocalfileinfo.c:2371
#, c-format
msgid "Error setting owner: %s"
msgstr "Памылка прызначэння ўласніка: %s"
-#: gio/glocalfileinfo.c:2395
+#: gio/glocalfileinfo.c:2394
msgid "symlink must be non-NULL"
msgstr "сімвальная спасылка не можа мець NULL-значэнне"
-#: gio/glocalfileinfo.c:2405 gio/glocalfileinfo.c:2424
-#: gio/glocalfileinfo.c:2435
+#: gio/glocalfileinfo.c:2404 gio/glocalfileinfo.c:2423
+#: gio/glocalfileinfo.c:2434
#, c-format
msgid "Error setting symlink: %s"
msgstr "Памылка настаўлення сімвальнай спасылкі: %s"
-#: gio/glocalfileinfo.c:2414
+#: gio/glocalfileinfo.c:2413
msgid "Error setting symlink: file is not a symlink"
msgstr "Памылка настаўлення: файл не з'яўляецца сімвальнай спасылкай"
-#: gio/glocalfileinfo.c:2506
+#: gio/glocalfileinfo.c:2505
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
-#: gio/glocalfileinfo.c:2515
+#: gio/glocalfileinfo.c:2514
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
-#: gio/glocalfileinfo.c:2525
+#: gio/glocalfileinfo.c:2524
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr ""
-#: gio/glocalfileinfo.c:2536
+#: gio/glocalfileinfo.c:2535
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"Часавы адбітак UNIX %lld па-за межамі дыяпазону, які падтрымліваецца Windows"
-#: gio/glocalfileinfo.c:2668
+#: gio/glocalfileinfo.c:2667
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr ""
-#: gio/glocalfileinfo.c:2687
+#: gio/glocalfileinfo.c:2686
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr ""
-#: gio/glocalfileinfo.c:2700
+#: gio/glocalfileinfo.c:2699
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
-#: gio/glocalfileinfo.c:2856
+#: gio/glocalfileinfo.c:2855
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Памылка настаўлення часавых метак змянення і доступу: %s"
-#: gio/glocalfileinfo.c:2879
+#: gio/glocalfileinfo.c:2878
msgid "SELinux context must be non-NULL"
msgstr "SELinux-кантэкст не можа мець NULL-значэнне"
-#: gio/glocalfileinfo.c:2886
+#: gio/glocalfileinfo.c:2885
msgid "SELinux is not enabled on this system"
msgstr "SELinux не ўключаны для гэтай сістэмы"
-#: gio/glocalfileinfo.c:2896
+#: gio/glocalfileinfo.c:2895
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Памылка настаўлення SELinux-кантэксту: %s"
-#: gio/glocalfileinfo.c:2993
+#: gio/glocalfileinfo.c:2992
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Настаўленне атрыбута %s не падтрымліваецца"
@@ -3276,11 +3277,11 @@ msgstr "Памяць, патрэбная для запісу, большая з
#: gio/gmemoryoutputstream.c:774
msgid "Requested seek before the beginning of the stream"
-msgstr "Атрыманы запыт на пракрутку струменя далей за яго пачатак"
+msgstr "Атрыманы запыт на пракрутку ў пазіцыю, ранейшую за пачатак струменя"
#: gio/gmemoryoutputstream.c:789
msgid "Requested seek beyond the end of the stream"
-msgstr "Атрыманы запыт на пракрутку далей за яго канец"
+msgstr "Атрыманы запыт на пракрутку ў пазіцыю, далейшую за канец струменя"
#. Translators: This is an error
#. * message for mount objects that
@@ -3388,8 +3389,8 @@ msgstr ""
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:798 gio/gthreadedresolver.c:822
+#: gio/gthreadedresolver.c:847 gio/gthreadedresolver.c:862
#, c-format
msgid "Error resolving “%s”: %s"
msgstr ""
@@ -3938,7 +3939,7 @@ msgstr ""
#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
#, c-format
msgid "Error sending message: %s"
-msgstr "Памылка пасылання паведамлення: %s"
+msgstr "Памылка адпраўкі паведамлення: %s"
#: gio/gsocket.c:5039
msgid "GSocketControlMessage not supported on Windows"
@@ -4104,35 +4105,35 @@ msgstr ""
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:628 gio/gthreadedresolver.c:675
+#: gio/gthreadedresolver.c:704 gio/gthreadedresolver.c:716
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr ""
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:774 gio/gthreadedresolver.c:911
+#: gio/gthreadedresolver.c:1009 gio/gthreadedresolver.c:1059
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr ""
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:779 gio/gthreadedresolver.c:1014
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr ""
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:784 gio/gthreadedresolver.c:1019
+#: gio/gthreadedresolver.c:1129
#, c-format
msgid "Error resolving “%s”"
msgstr ""
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:798 gio/gthreadedresolver.c:822
+#: gio/gthreadedresolver.c:847 gio/gthreadedresolver.c:862
msgid "Malformed DNS packet"
msgstr ""
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:904
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr ""
@@ -4339,77 +4340,77 @@ msgstr "Запусціць dbus-службу"
msgid "Wrong args\n"
msgstr "Няправільныя аргументы\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr ""
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr ""
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr ""
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr ""
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr ""
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "У каталогах з данымі не знойдзена файлаў з закладкамі"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr ""
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr ""
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr ""
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr ""
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr ""
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr ""
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr ""
@@ -4882,7 +4883,7 @@ msgstr "PM"
#: glib/gdir.c:158
#, c-format
msgid "Error opening directory “%s”: %s"
-msgstr ""
+msgstr "Памылка адкрыцця каталога «%s»: %s"
#: glib/gfileutils.c:735 glib/gfileutils.c:827
#, c-format
@@ -5685,92 +5686,92 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Тэкст пусты (або змяшчаў толькі прабельныя знакі)."
-#: glib/gspawn.c:310
+#: glib/gspawn.c:319
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Не ўдалося прачытаць даныя працэсу-нашчадка (%s)"
-#: glib/gspawn.c:462
+#: glib/gspawn.c:471
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Нечаканая памылка падчас чытання даных працэсу-нашчадка (%s)"
-#: glib/gspawn.c:547
+#: glib/gspawn.c:556
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Нечаканая памылка ў waitpid() (%s)"
-#: glib/gspawn.c:1166 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1175 glib/gspawn-win32.c:1488
#, c-format
msgid "Child process exited with code %ld"
msgstr "Працэс-нашчадак скончыў працу з кодам %ld"
-#: glib/gspawn.c:1174
+#: glib/gspawn.c:1183
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Працэс-нашчадак забіты сігналам %ld"
-#: glib/gspawn.c:1181
+#: glib/gspawn.c:1190
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Працэс-нашчадак спынены сігналам %ld"
-#: glib/gspawn.c:1188
+#: glib/gspawn.c:1197
#, c-format
msgid "Child process exited abnormally"
msgstr "Працэс-нашчадак скончыў працу надзвычайным чынам"
-#: glib/gspawn.c:1867 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2027 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Не ўдалося прачытаць даныя з канала нашчадка (%s)"
-#: glib/gspawn.c:2230
+#: glib/gspawn.c:2390
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Не ўдалося запусціць працэс-нашчадак «%s» (%s)"
-#: glib/gspawn.c:2347
+#: glib/gspawn.c:2507
#, c-format
msgid "Failed to fork (%s)"
msgstr "Не ўдалося адгалінаваць працэс (%s)"
-#: glib/gspawn.c:2507 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2667 glib/gspawn-win32.c:424
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Не ўдалося змяніць каталог «%s» (%s)"
-#: glib/gspawn.c:2517
+#: glib/gspawn.c:2677
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Не ўдалося выканаць працэс-нашчадак «%s» (%s)"
-#: glib/gspawn.c:2527
+#: glib/gspawn.c:2687
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr ""
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2695
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr ""
-#: glib/gspawn.c:2544
+#: glib/gspawn.c:2704
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Не ўдалося адгалінаваць працэс-нашчадак (%s)"
-#: glib/gspawn.c:2552
+#: glib/gspawn.c:2712
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr ""
-#: glib/gspawn.c:2560
+#: glib/gspawn.c:2720
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Невядомая памылка падчас выканання працэсу-нашчадка «%s»"
-#: glib/gspawn.c:2584
+#: glib/gspawn.c:2744
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
@@ -5824,21 +5825,21 @@ msgstr ""
"Нечаканая памылка ў функцыі g_io_channel_win32_poll() падчас чытання даных "
"працэсу-нашчадка"
-#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3474
+#: glib/gstrfuncs.c:3370 glib/gstrfuncs.c:3472
msgid "Empty string is not a number"
msgstr "Пусты радок не з'яўляецца лікам"
-#: glib/gstrfuncs.c:3396
+#: glib/gstrfuncs.c:3394
#, c-format
msgid "“%s” is not a signed number"
msgstr "«%s» не з'яўляецца лікам са знакам"
-#: glib/gstrfuncs.c:3406 glib/gstrfuncs.c:3510
+#: glib/gstrfuncs.c:3404 glib/gstrfuncs.c:3508
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Лік «%s» па-за межамі дыяпазону [%s, %s]"
-#: glib/gstrfuncs.c:3500
+#: glib/gstrfuncs.c:3498
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "«%s» не з'яўляецца лікам без знака"
diff --git a/po/bg.po b/po/bg.po
index 95366b737..7f5288021 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -2,10 +2,10 @@
# Copyright (C) 2002, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
# Copyright (C) 2010, 2011, 2012, 2013, 2015 Free Software Foundation, Inc.
# Copyright (C) 2016 Free Software Foundation, Inc.
-# Copyright (C) 2022 Alexander Shopov.
+# Copyright (C) 2022, 2023 Alexander Shopov.
# Borislav Aleksandrov <B.Aleksandrov@cnsys.bg>, 2002.
# Alexander Shopov <ash@kambanaria.org>, 2002, 2005, 2006, 2007, 2008, 2009, 2010, 2011.
-# Alexander Shopov <ash@kambanaria.org>, 2012, 2013, 2015, 2016, 2022.
+# Alexander Shopov <ash@kambanaria.org>, 2012, 2013, 2015, 2016, 2022, 2023.
# Damyan Ivanov <dam+gnome@ktnx.net>, 2010.
# Krasimir Chonov <mk2616@abv.bg>, 2014.
#
@@ -13,8 +13,8 @@ msgid ""
msgstr ""
"Project-Id-Version: glib main\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-09-12 18:00+0000\n"
-"PO-Revision-Date: 2022-09-13 09:41+0200\n"
+"POT-Creation-Date: 2023-02-15 16:30+0000\n"
+"PO-Revision-Date: 2023-03-04 19:15+0200\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"Language: bg\n"
@@ -23,24 +23,24 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Задаването на приложение като стандартно не се поддържа"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Задаването на последно ползваното приложение като стандартно не се поддържа"
-#: gio/gappinfo.c:810
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "Липсва стандартно приложение за съдържание от вид „%s“"
-#: gio/gappinfo.c:870
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
-msgstr "ЛипсваНяма стандартно приложение за схема за адреси „%s“"
+msgstr "Няма стандартно приложение за схема за адреси „%s“"
#: gio/gapplication.c:502
msgid "GApplication options"
@@ -242,12 +242,12 @@ msgstr "неуспешно свързване към D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "грешка при изпращане на съобщение „%s“ до приложение „%s“\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr ""
"името на действие трябва да бъде подадено след идентификатора на приложение\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -256,25 +256,25 @@ msgstr ""
"неправилно име на действие: „%s“\n"
"името трябва да съдържа букви, цифри, „-“ или „.“\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "грешка при анализа на параметър: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "действията приемат само по един параметър\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "командата „list-actions“ изисква само идентификатор на приложение"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "не може да се открие файл „.desktop“ за приложението „%s“\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -309,11 +309,11 @@ msgstr "Потокът вече е затворен"
msgid "Truncate not supported on base stream"
msgstr "Основният поток не може да се съкращава"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
-msgstr "Действието е прекратено"
+msgstr "Действието е отменено"
#: gio/gcharsetconverter.c:262
msgid "Invalid object, not initialized"
@@ -329,13 +329,13 @@ msgstr "Няма достатъчно място в целта"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
#: glib/gutf8.c:892 glib/gutf8.c:1346
msgid "Invalid byte sequence in conversion input"
msgstr "Грешна байтова последователност на входа за преобразуване"
#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Грешка по време на преобразуване: %s"
@@ -395,17 +395,17 @@ msgstr ""
msgid "Unexpected early end-of-stream"
msgstr "Неочаквано ранен край на поток"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:162 gio/gdbusaddress.c:234 gio/gdbusaddress.c:321
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Неподдържан ключ „%s“ в адрес „%s“"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:175
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Безсмислена комбинация от ключ и стойност в адреса „%s“"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:184
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -414,28 +414,28 @@ msgstr ""
"Адресът „%s“ е грешен (трябва да съдържа само едно от следните: път, "
"директория, временна директория или абстрактни ключове)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
-#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
+#: gio/gdbusaddress.c:249 gio/gdbusaddress.c:260 gio/gdbusaddress.c:275
+#: gio/gdbusaddress.c:336 gio/gdbusaddress.c:347
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
msgstr "Грешка в адреса „%s“ — атрибутът „%s“ е неправилен"
-#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:682
+#: gio/gdbusaddress.c:417 gio/gdbusaddress.c:676
#, c-format
msgid "Unknown or unsupported transport “%s” for address “%s”"
msgstr "Непознат или неподдържан транспорт „%s“ за адрес „%s“"
-#: gio/gdbusaddress.c:467
+#: gio/gdbusaddress.c:461
#, c-format
msgid "Address element “%s” does not contain a colon (:)"
msgstr "Елементът на адреса „%s“ не съдържа двоеточие („:“)"
-#: gio/gdbusaddress.c:476
+#: gio/gdbusaddress.c:470
#, c-format
msgid "Transport name in address element “%s” must not be empty"
msgstr "Името на транспорта в елемента на адреса „%s“ не трябва да е празно"
-#: gio/gdbusaddress.c:497
+#: gio/gdbusaddress.c:491
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
@@ -444,14 +444,14 @@ msgstr ""
"Двойката ключ/стойност %d, „%s“ в адресния елемент „%s“ не съдържа знак за "
"равенство („=“)"
-#: gio/gdbusaddress.c:508
+#: gio/gdbusaddress.c:502
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
msgstr ""
"Двойката ключ/стойност %d, „%s“ в адресния елемент „%s“ съдържа празен ключ"
-#: gio/gdbusaddress.c:522
+#: gio/gdbusaddress.c:516
#, c-format
msgid ""
"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
@@ -460,7 +460,7 @@ msgstr ""
"Грешка при декодиране на ключа или стойността в двойката %d, „%s“ в адресния "
"елемент „%s“"
-#: gio/gdbusaddress.c:590
+#: gio/gdbusaddress.c:584
#, c-format
msgid ""
"Error in address “%s” — the unix transport requires exactly one of the keys "
@@ -469,83 +469,83 @@ msgstr ""
"Грешка в адреса „%s“ — транспортът „unix“ изисква точно един от ключовете "
"„path“ или „abstract“"
-#: gio/gdbusaddress.c:625
+#: gio/gdbusaddress.c:619
#, c-format
msgid "Error in address “%s” — the host attribute is missing or malformed"
msgstr "Грешка в адреса „%s“ — атрибутът за хост „host“ липсва или е грешен"
-#: gio/gdbusaddress.c:639
+#: gio/gdbusaddress.c:633
#, c-format
msgid "Error in address “%s” — the port attribute is missing or malformed"
msgstr "Грешка в адреса „%s“ — атрибутът за порт „port“ липсва или е грешен"
-#: gio/gdbusaddress.c:653
+#: gio/gdbusaddress.c:647
#, c-format
msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
msgstr ""
"Грешка в адреса „%s“ — атрибутът за момент „noncefile“ липсва или е грешен"
-#: gio/gdbusaddress.c:674
+#: gio/gdbusaddress.c:668
msgid "Error auto-launching: "
msgstr "Грешка при автоматично стартиране: "
-#: gio/gdbusaddress.c:727
+#: gio/gdbusaddress.c:721
#, c-format
msgid "Error opening nonce file “%s”: %s"
msgstr "Грешка при отваряне на моментен файл „%s“: %s"
-#: gio/gdbusaddress.c:746
+#: gio/gdbusaddress.c:740
#, c-format
msgid "Error reading from nonce file “%s”: %s"
msgstr "Грешка при четене на моментен файл „%s“: %s"
-#: gio/gdbusaddress.c:755
+#: gio/gdbusaddress.c:749
#, c-format
msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
msgstr ""
"Грешка при четене на моментен файл „%s“, очакват се 16 байта, а са получени "
"%d"
-#: gio/gdbusaddress.c:773
+#: gio/gdbusaddress.c:767
#, c-format
msgid "Error writing contents of nonce file “%s” to stream:"
msgstr "Грешка при запис на съдържанието на моментен файл „%s“ в поток:"
-#: gio/gdbusaddress.c:988
+#: gio/gdbusaddress.c:982
msgid "The given address is empty"
msgstr "Даденият адрес е празен"
-#: gio/gdbusaddress.c:1101
+#: gio/gdbusaddress.c:1095
#, c-format
msgid "Cannot spawn a message bus when AT_SECURE is set"
msgstr ""
"Създаването на шина за обмен на съобщения не е възможно при изрично зададен "
"„AT_SECURE“"
-#: gio/gdbusaddress.c:1108
+#: gio/gdbusaddress.c:1102
msgid "Cannot spawn a message bus without a machine-id: "
msgstr ""
"Създаването на шина за обмен на съобщения не е възможно без идентификатор на "
"машина: "
-#: gio/gdbusaddress.c:1115
+#: gio/gdbusaddress.c:1109
#, c-format
msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
msgstr "D-Bus не може да се стартира автоматично без „$DISPLAY“ от X11"
-#: gio/gdbusaddress.c:1157
+#: gio/gdbusaddress.c:1151
#, c-format
msgid "Error spawning command line “%s”: "
msgstr "Грешка при изпълняване на външна команда „%s“: "
-#: gio/gdbusaddress.c:1226
+#: gio/gdbusaddress.c:1220
#, c-format
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
"Адресът на шината на сесията не може да се определи (липсва реализация за "
"тази операционна система)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1374 gio/gdbusconnection.c:7316
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -554,7 +554,7 @@ msgstr ""
"Адресът на шината не може да се определи от променливата на обкръжението "
"„DBUS_STARTER_BUS_TYPE“ — непозната стойност „%s“"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1383 gio/gdbusconnection.c:7325
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -562,7 +562,7 @@ msgstr ""
"Адресът на шината не може да се определи, защото променливата "
"„DBUS_STARTER_BUS_TYPE“ липсва в обкръжението"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1393
#, c-format
msgid "Unknown bus type %d"
msgstr "Непознат вид шина %d"
@@ -583,13 +583,17 @@ msgstr ""
"Изчерпване на наличните механизми за идентификация (пробвани: %s) (налични: "
"%s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Неочаквана липса на съдържание при опит за байт"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr ""
"Идентификаторите за потребител от сървъра и отсрещната страна трябва да са "
"еднакви"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Прекъсване чрез „GDBusAuthObserver::authorize-authenticated-peer“"
@@ -681,7 +685,7 @@ msgstr "Грешка при отваряне на ключодържателя
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Допълнително, отключването на „%s“ бе също неуспешно: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2405
msgid "The connection is closed"
msgstr "Връзката прекъсна"
@@ -689,121 +693,121 @@ msgstr "Връзката прекъсна"
msgid "Timeout was reached"
msgstr "Времето за изчакване е просрочено"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2528
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr "Неподдържани флагове при създаване на изходяща връзка"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4257 gio/gdbusconnection.c:4611
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr "Обектът в „%s“ няма интерфейс „org.freedesktop.DBus.Properties“"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4402
#, c-format
msgid "No such property “%s”"
msgstr "Липсва свойство „%s“"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4414
#, c-format
msgid "Property “%s” is not readable"
msgstr "Свойството „%s“ не поддържа четене"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4425
#, c-format
msgid "Property “%s” is not writable"
msgstr "Свойството „%s“ не поддържа запис"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Грешка при задаване на свойството „%s“: Очакван е вид „%s“, а е получен „%s“"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4550 gio/gdbusconnection.c:4765
+#: gio/gdbusconnection.c:6742
#, c-format
msgid "No such interface “%s”"
msgstr "Липсва интерфейс „%s“"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:4981 gio/gdbusconnection.c:7256
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Липсва интерфейс „%s“ към обекта в „%s“"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5082
#, c-format
msgid "No such method “%s”"
msgstr "Липсва метод „%s“"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5113
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Видът на съобщението („%s“) не съвпада с очаквания („%s“)"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5316
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Вече е наличен обект за интерфейса „%s“ в „%s“"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5543
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Свойството „%s.%s“ не може да бъде получено"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5599
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Свойството „%s.%s“ не може да бъде зададено"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5778
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Методът „%s“ върна вид „%s“, а се очаква „%s“"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6854
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Не съществува метод „%s“ на интерфейса „%s“ със сигнатура „%s“"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6975
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Вече е изнесено поддърво за „%s“"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7264
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Обектът липсва в пътя „%s“"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "видът е „INVALID“"
-#: gio/gdbusmessage.c:1314
+#: gio/gdbusmessage.c:1317
msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
msgstr ""
"Съобщение „METHOD_CALL“: в заглавната част липсват полета „PATH“ или „MEMBER“"
-#: gio/gdbusmessage.c:1325
+#: gio/gdbusmessage.c:1328
msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
msgstr ""
"Съобщение „METHOD_RETURN“: в заглавната част липсва поле „REPLY_SERIAL“"
-#: gio/gdbusmessage.c:1337
+#: gio/gdbusmessage.c:1340
msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
msgstr ""
"Съобщение „ERROR“: в заглавната част липсват полета „REPLY_SERIAL“ или "
"„ERROR_NAME“"
-#: gio/gdbusmessage.c:1350
+#: gio/gdbusmessage.c:1353
msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
msgstr ""
"Съобщение „SIGNAL“: в заглавната част липсват полета „PATH“, „INTERFACE“ или "
"„MEMBER“"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1361
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -811,7 +815,7 @@ msgstr ""
"Съобщение „SIGNAL“: Полето „PATH“ в заглавната част използва запазената "
"стойност „/org/freedesktop/DBus/Local“"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1369
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -819,19 +823,19 @@ msgstr ""
"Съобщение „SIGNAL“: Полето „INTERFACE“ в заглавната част използва запазената "
"стойност „org.freedesktop.DBus.Local“"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1417 gio/gdbusmessage.c:1477
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "При опит за четене на %lu байт бяха получени %lu"
msgstr[1] "При опит за четене на %lu байта бяха получени %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1431
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "След низа „%s“ се очаква байт NUL, а не %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1450
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -841,21 +845,21 @@ msgstr ""
"отместване %d (дължината на низа е %d). Декодираният от UTF-8 низ до тази "
"позиция е „%s“"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1514 gio/gdbusmessage.c:1790 gio/gdbusmessage.c:2001
msgid "Value nested too deeply"
msgstr "Прекалено дълбоко вложена стойност"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1682
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Анализираната стойност „%s“ не е допустим път до обект в D-Bus"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1706
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Анализираната стойност „%s“ не е допустима сигнатура в D-Bus"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1757
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -866,7 +870,7 @@ msgstr[0] ""
msgstr[1] ""
"Срещнат е масив с дължина %u байта. Максималната дължина е 2²⁶ (64 MiB)"
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1777
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -875,16 +879,16 @@ msgstr ""
"Получен бе масив от вид „a%c“. Очакваше се да има дължина делима на %u "
"байта, но тя бе %u байта"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1931 gio/gdbusmessage.c:2650
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Празни структури (𝑛-орки) не са позволени в D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:1985
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Анализираната вариантна стойност „%s“ не е допустима сигнатура в D-Bus"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2026
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -892,7 +896,7 @@ msgstr ""
"Грешка при десериализиране на „GVariant“ от вид „%s“ от машинния формат на D-"
"Bus"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2211
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -901,28 +905,28 @@ msgstr ""
"Недопустима стойност на индикатора за подреждане на байтовете в думи. Очаква "
"се или 0x6c („l“), или 0x42 („B“), а е открита стойност 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2230
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Недопустима главна версия на протокола. Очаква се 1, а е открита %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2288 gio/gdbusmessage.c:2886
msgid "Signature header found but is not of type signature"
msgstr "Заглавната част със сигнатура е намерена, на тя не е за вид"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2300
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Открита е заглавна част със сигнатура „%s“, обаче тялото на съобщението е "
"празно"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2315
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Разчетената стойност „%s“ не е допустима сигнатура в D-Bus (за тяло)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -930,18 +934,18 @@ msgstr[0] "В заглавната част на съобщението няма
msgstr[1] ""
"В заглавната част на съобщението няма сигнатура, а тялото е %u байта"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2357
msgid "Cannot deserialize message: "
msgstr "Неуспешно декодиране на съобщение: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2703
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr ""
"Грешка при сериализиране на „GVariant“ от вид „%s“ в машинния формат на D-Bus"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2840
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
@@ -949,17 +953,17 @@ msgstr ""
"Броят файлови дескриптори в съобщението (%d) е различно от броя в заглавното "
"поле (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2848
msgid "Cannot serialize message: "
msgstr "Неуспешна сериализация на съобщението: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2901
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
"Тялото на съобщението има сигнатура „%s“, но няма заглавна част за сигнатура"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2911
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -968,19 +972,19 @@ msgstr ""
"Тялото на съобщението има сигнатура за вид „%s“, но полето в заглавната част "
"за сигнатури е „%s“"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2927
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
"Тялото на съобщението е празно, а сигнатурата в полето на заглавната част е "
"„(%s)“"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3482
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Връщане на грешка с тяло от вид „%s“"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3490
msgid "Error return with empty body"
msgstr "Връщане на грешка с празно тяло на съобщението"
@@ -1007,17 +1011,17 @@ msgstr "Неуспешно определяне на хардуерния про
msgid "Unable to load %s or %s: "
msgstr "Неуспешно зареждане на „%s“ или „%s“: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Грешка при извикване на „StartServiceByName“ за %s:"
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Неочакван отговор „%d“ от метода „StartServicebyName(\"%s\")“"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1027,25 +1031,25 @@ msgstr ""
"без собственик „%s“, а е създаден с флага "
"„G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START“"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Не се поддържа абстрактно пространство за имена"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Не може да се задава моментен файл при създаване на сървър"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Грешка при запис в моментен файл „%s“: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Низът „%s“ не е допустим глобален идентификатор (GIUD) в D-Bus"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Невъзможно е да се чака за връзки по неподдържан транспорт „%s“"
@@ -1074,14 +1078,14 @@ msgstr ""
"Използвайте „%s КОМАНДА --help“ за допълнителна информация за всяка "
"команда.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Грешка: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Грешка при анализа на XML с аналитична информация: %s\n"
@@ -1091,49 +1095,49 @@ msgstr "Грешка при анализа на XML с аналитична ин
msgid "Error: %s is not a valid name\n"
msgstr "Грешка: „%s“ не е вярно име\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Грешка: „%s“ не е допустим път до обект\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Свързване към системната шина"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Свързване към сесийната шина"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Свързване към даден адрес на D-Bus"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Варианти за връзка:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Опции, указващи точката за връзка"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Не е указана точка за връзка"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Указани са множество точки за връзка"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "Предупреждение: Според анализа интерфейсът „%s“ не съществува\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1142,166 +1146,166 @@ msgstr ""
"Предупреждение: Според анализа методът „%s“ не се предлага от интерфейса "
"„%s“\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Незадължителен получател на сигнала (уникално име)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Път до обекта, към който да се излъчи сигнал"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Име на сигнал и интерфейс"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Издаване на сигнал."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Грешка при свързване: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Грешка: „%s“ не е вярно, уникално име на шина\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Грешка: Не е указан път до обект\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Грешка: Не е указано име на сигнал\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Грешка: „%s“ не е допустимо име на сигнал\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Грешка: „%s“ не е допустимо име на интерфейс\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Грешка: „%s“ не е допустимо име на член\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Грешка при анализ на параметър %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr ""
"Грешка при изчистване на буферите при предаването на данните на връзка: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Целево име, към чийто метод да се направи обръщение"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Път до обект, към чийто метод да се направи обръщение"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Име на метод и интерфейс"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Време за изчакване в секунди"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Позволяване на интерактивно упълномощаване"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Обръщение към метод на отдалечен обект"
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Грешка: не е указана цел\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Грешка: „%s“ е неправилно име на шина\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Грешка: Не е указано име на метод\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Грешка: „%s“ е неправилно име на метод\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Грешка при анализ на параметър %d от вид „%s“: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Грешка при добавяне на функция за обработка %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Име на целта за анализ"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Път до обекта за анализ"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Извеждане на XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Анализ на наследниците"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Извеждане само на свойствата"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Анализ на отдалечен обект."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Име на целта за наблюдение"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Път до обекта за наблюдение"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Наблюдение на отдалечен обект."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "ГРЕШКА: може да се наблюдават само връзки към шината за съобщения\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr ""
"Услуга за задействане преди изчакване на другата (трябва да е известно име)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1309,27 +1313,27 @@ msgstr ""
"Време за изчакване в секунди преди изход с грешка. Стандартно е 0 за "
"изчакване без ограничение"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[ОПЦИЯ…] ИМЕ_ПО_ШИНА"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Изчакване за появата на името по шината."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Грешка: не е указана услуга за задействане.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Грешка: не е указана услуга за изчакване.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Грешка: Твърде много аргументи.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Грешка: „%s“ не е известно име на шина.\n"
@@ -1339,38 +1343,43 @@ msgstr "Грешка: „%s“ не е известно име на шина.\n"
msgid "Not authorized to change debug settings"
msgstr "Няма права за смяната на настройки за изчистване на грешки"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5119
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5223
msgid "Unnamed"
msgstr "Без име"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Във файла „.desktop“ липсва поле за изпълнение (Exec)"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Не може да се открие терминал за приложението"
-#: gio/gdesktopappinfo.c:3637
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Програмата „%s“ липсва в „$PATH“"
+
+#: gio/gdesktopappinfo.c:3735
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Не може да се създаде папката с потребителските настройки %s: %s"
-#: gio/gdesktopappinfo.c:3641
+#: gio/gdesktopappinfo.c:3739
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Не може да се създаде папката с настройките за MIME %s: %s"
-#: gio/gdesktopappinfo.c:3883 gio/gdesktopappinfo.c:3907
+#: gio/gdesktopappinfo.c:3981 gio/gdesktopappinfo.c:4005
msgid "Application information lacks an identifier"
msgstr "В информацията за програма липсва идентификатор"
-#: gio/gdesktopappinfo.c:4143
+#: gio/gdesktopappinfo.c:4241
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Не може да се създаде файл „.desktop“: „%s“"
-#: gio/gdesktopappinfo.c:4279
+#: gio/gdesktopappinfo.c:4377
#, c-format
msgid "Custom definition for %s"
msgstr "Потребителска дефиниция за %s"
@@ -1443,7 +1452,7 @@ msgstr "Очакваше се „GEmblem“ за „GEmblemedIcon“"
msgid "Containing mount does not exist"
msgstr "Съдържащият монтиран обект не съществува"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2641 gio/glocalfile.c:2511
msgid "Can’t copy over directory"
msgstr "Не може да се копира върху папка"
@@ -1491,7 +1500,7 @@ msgstr "Не може да се копира специален файл"
msgid "Invalid symlink value given"
msgstr "Зададена е неправилна стойност на символна връзка"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4163 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Символни връзки не се поддържат"
@@ -1592,37 +1601,37 @@ msgstr "Отговорът от сървъра-посредник по HTTP е
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "Сървърът-посредник по HTTP неочаквано прекрати връзката"
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Неправилен брой лексеми (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Липсва вид за името на клас „%s“"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Видът „%s“ не поддържа интерфейса „GIcon“"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Видът „%s“ не е клас"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Неправилен номер на версия: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Видът „%s“ не поддържа „from_tokens()“ от интерфейса „GIcon“"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Подадената версия на кодирането на икони не се поддържа"
@@ -2440,7 +2449,7 @@ msgstr ""
msgid "List contents of directories in a tree-like format."
msgstr "Извеждане на съдържанието на директориите в дървовиден вариант."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1513
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Елементът <%s> не е позволен в <%s>"
@@ -2497,7 +2506,7 @@ msgstr "Грешка при компресиране на файл: %s"
msgid "text may not appear inside <%s>"
msgstr "в <%s> не е позволен текст"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2171
msgid "Show program version and exit"
msgstr "Извеждане на версията на програмата и изход"
@@ -2513,8 +2522,8 @@ msgstr ""
"Папката откъдето да се заредят файловете, указани във ФАЙЛа (стандартно е "
"текущата)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2172
+#: gio/glib-compile-schemas.c:2201
msgid "DIRECTORY"
msgstr "ПАПКА"
@@ -2735,16 +2744,16 @@ msgstr "целта на псевдоним „%s“ не е в <choices>"
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> трябва да съдържа поне един <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:796
msgid "Empty names are not permitted"
msgstr "Празни имена не са позволени"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:806
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Неправилно име „%s“: имената трябва да започват с малка буква"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:818
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2753,36 +2762,36 @@ msgstr ""
"Неправилно име „%s“: неправилен знак „%c“ — позволени са само малки букви, "
"цифри и тире („-“)"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:827
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "Неправилно име „%s“: не са позволени две последователни тирета („--“)"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:836
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Неправилно име „%s“: последният знак не може да е тире („-“)"
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:844
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Неправилно име „%s“: максималната дължина е 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:916
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> вече е указано"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:942
msgid "Cannot add keys to a “list-of” schema"
msgstr "Към схема „list-of“ не може да се добавят ключове"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:953
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> вече е указано"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:971
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2791,7 +2800,7 @@ msgstr ""
"<key name='%s'> засенчва <key name='%s'> в <schema id='%s'>. Използвайте "
"<override>, за да промените стойността"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:982
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2800,63 +2809,63 @@ msgstr ""
"Като атрибут на <key> трябва да присъства точно едно от „type“, „enum“ или "
"„flags“"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1001
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> не е дефинирано (все още)."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1016
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Неправилен низ за вид на „GVariant“: „%s“"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1046
msgid "<override> given but schema isn’t extending anything"
msgstr "Използвано е <override>, но схемата не разширява нищо"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1059
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Липсва <key name='%s'> за предефиниране"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1067
#, c-format
msgid "<override name='%s'> already specified"
msgstr "Вече е указано <override name='%s'>"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1140
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "Вече е указано <schema id='%s'>"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1152
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> добавя към схема „%s“, която още не съществува"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1168
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> е списък на схема „%s“, която още не съществува"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1176
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Не може да е списък от схема с път"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1186
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Схема не може да се разширява с път"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1196
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
"<schema id='%s'> е списък, разширяващ <schema id='%s'>, която не е списък"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1206
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2865,17 +2874,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> разширява <schema id='%s' list-of='%s'>, но "
"„%s“ не разширява „%s“"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1223
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "Всеки път трябва да започва и да завършва с наклонена черта („/“)"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1230
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Пътят на списък трябва да завършва с „:/“"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1239
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2884,49 +2893,49 @@ msgstr ""
"ПРЕДУПРЕЖДЕНИЕ: схемата „%s“ съдържа пътя „%s“. Пътищата, които започват с „/"
"apps/“, „/desktop/“ или „/system/“ са остарели."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1269
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "вече е указано <%s id='%s'>"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1419 gio/glib-compile-schemas.c:1435
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Само един елемент <%s> е позволен в <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1517
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Елементът <%s> не е позволен на най-горно ниво"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1535
msgid "Element <default> is required in <key>"
msgstr "Задължително е в <key> да има елемент <default>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1625
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "В <%s> не е позволен текст"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1693
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "ПРЕДУПРЕЖДЕНИЕ: недефиниран указател към <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1832 gio/glib-compile-schemas.c:1911
msgid "--strict was specified; exiting."
msgstr "Указано е „--strict“, изход."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1844
msgid "This entire file has been ignored."
msgstr "Целият файл е пренебрегнат."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1907
msgid "Ignoring this file."
msgstr "Пренебрегване на файла."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1962
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2935,7 +2944,7 @@ msgstr ""
"Липсва ключ „%s“ в схемата „%s“, указан във файла за предефиниране „%s“. "
"Това предифиниране се прескача."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1970
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2944,7 +2953,7 @@ msgstr ""
"Липсва ключ „%s“ в схемата „%s“, указан във файла за предефиниране „%s“, "
"зададена е и опцията „--strict“, затова програмата приключва."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1992
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2954,7 +2963,7 @@ msgstr ""
"локализирания ключ „%s“ в схемата „%s“ (файлът с предефинирана стойност е "
"„%s“). Това предифиниране се прескача."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2001
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2964,7 +2973,7 @@ msgstr ""
"локализирания ключ „%s“ в схемата „%s“ (файлът с предефинирана стойност е "
"„%s“), зададена е и опцията „--strict“, затова програмата приключва."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2025
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2973,7 +2982,7 @@ msgstr ""
"Грешка при анализиране на ключа „%s“ от схемата „%s“, указан във файла за "
"предефиниране „%s“ — %s. Това предифиниране се прескача."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2037
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2983,7 +2992,7 @@ msgstr ""
"предефиниране „%s“ — %s, зададена е и опцията „--strict“, затова програмата "
"приключва."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2064
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2992,7 +3001,7 @@ msgstr ""
"Предефинирането на ключа „%s“ в схемата „%s“ във файла за предефиниране „%s“ "
"е извън обсега, даден в схемата. Това предифиниране се прескача."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2074
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3002,7 +3011,7 @@ msgstr ""
"е извън обсега, даден в схемата, зададена е и опцията „--strict“, затова "
"програмата приключва."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2100
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3011,7 +3020,7 @@ msgstr ""
"Предефинирането на ключа „%s“ в схемата „%s“ във файла за предефиниране „%s“ "
"не е в списъка с позволени стойности. Това предифиниране се прескача."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2110
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3021,23 +3030,23 @@ msgstr ""
"не е в списъка с позволени стойности, зададена е и опцията „--strict“, "
"затова програмата приключва."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2172
msgid "Where to store the gschemas.compiled file"
msgstr "Място за съхраняване на файла „gschemas.compiled“"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2173
msgid "Abort on any errors in schemas"
msgstr "Прекъсване на работа при всякакви грешки в схемите"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2174
msgid "Do not write the gschema.compiled file"
msgstr "Без запис на файл „gschema.compiled“"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2175
msgid "Do not enforce key name restrictions"
msgstr "Без налагане на ограниченията за имена на ключове"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2204
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3047,15 +3056,15 @@ msgstr ""
"Файловете със схемите трябва да завършват на „.gschema.xml“,\n"
"а файлът с кеша се нарича „gschemas.compiled“."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2225
msgid "You should give exactly one directory name"
msgstr "Изисква се точно едно име на папка"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2268
msgid "No schema files found: doing nothing."
msgstr "Не са открити файлове със схеми: нищо няма да се прави."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2270
msgid "No schema files found: removed existing output file."
msgstr ""
"Не са открити файлове със схеми: съществуващият резултатен файл е премахнат."
@@ -3065,7 +3074,7 @@ msgstr ""
msgid "Invalid filename %s"
msgstr "Неправилно име на файл: %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1005
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Грешка при получаване на информация за файловата система за „%s“: %s"
@@ -3074,126 +3083,126 @@ msgstr "Грешка при получаване на информация за
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1141
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Съдържащият монтиран обект за файла „%s“ не съществува"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1164
msgid "Can’t rename root directory"
msgstr "Кореновата папка не може да се преименува"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1182 gio/glocalfile.c:1205
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Грешка при преименуване на файла „%s“: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1189
msgid "Can’t rename file, filename already exists"
msgstr "Файлът не може да се преименува — съществува друг файл с такова име"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1202 gio/glocalfile.c:2405 gio/glocalfile.c:2433
+#: gio/glocalfile.c:2572 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Неправилно име на файл"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1370 gio/glocalfile.c:1381
#, c-format
msgid "Error opening file %s: %s"
msgstr "Грешка при отваряне на файла „%s“: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1506
#, c-format
msgid "Error removing file %s: %s"
msgstr "Грешка при изтриване на файла „%s“: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2000 gio/glocalfile.c:2011 gio/glocalfile.c:2038
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Грешка при преместване на файл в кошчето „%s“: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2058
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Неуспешно създаване на папката за кошче „%s“: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2079
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr ""
"Не може да се открие най-горната папка за преместване в кошчето на „%s“"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2087
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
"Преместване в кошчето на монтираните вътрешни системни томове не се поддържа"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2173 gio/glocalfile.c:2201
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Не може да се създаде папката за кошче „%s“ за изхвърлянето на „%s“"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2245
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Неуспешно създаване на файл с информация за кошчето за „%s“: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2316
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Неуспешно преместване на файл в кошче на друга файлова система: %s"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2320 gio/glocalfile.c:2376
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Неуспешно преместване на файл в кошчето „%s“: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2382
#, c-format
msgid "Unable to trash file %s"
msgstr "Неуспешно преместване на файл в кошчето „%s“"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2408
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Грешка при създаване на папка „%s“: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2437
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Файловата система не поддържа символни връзки"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2440
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Грешка при създаване на символна връзка „%s“: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2483 gio/glocalfile.c:2518 gio/glocalfile.c:2575
#, c-format
msgid "Error moving file %s: %s"
msgstr "Грешка при преместване на файл „%s“: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2506
msgid "Can’t move directory over directory"
msgstr "Папка не може да бъде преместена върху папка"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2532 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Неуспешно създаване на резервен файл"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2551
#, c-format
msgid "Error removing target file: %s"
msgstr "Грешка при премахване на целевия файл: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2565
msgid "Move between mounts not supported"
msgstr "Не се поддържа местене между монтирани местоположения"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2741
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Не може да се определи заетото място на %s: %s"
@@ -3215,119 +3224,119 @@ msgstr "Неправилно име на допълнителен атрибут
msgid "Error setting extended attribute “%s”: %s"
msgstr "Грешка при задаване на разширен атрибут „%s“: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1819 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (неправилно кодиране)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1978 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Грешка при получаване на информация за файла „%s“: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2281
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Грешка при получаване на информация за файловия дескриптор: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2326
msgid "Invalid attribute type (uint32 expected)"
msgstr "Неправилен вид на атрибут (очакваше се uint32)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2344
msgid "Invalid attribute type (uint64 expected)"
msgstr "Неправилен вид на атрибут (очакваше се uint64)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2363 gio/glocalfileinfo.c:2382
msgid "Invalid attribute type (byte string expected)"
msgstr "Неправилен вид на атрибут (очакваше се низ от байтове)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2429
msgid "Cannot set permissions on symlinks"
msgstr "Грешка при задаване на правата за достъп на символната връзка"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2445
#, c-format
msgid "Error setting permissions: %s"
msgstr "Грешка при задаване на правата за достъп: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2496
#, c-format
msgid "Error setting owner: %s"
msgstr "Грешка при задаване на собственик: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2519
msgid "symlink must be non-NULL"
msgstr "символната връзка трябва да не е NULL"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2529 gio/glocalfileinfo.c:2548
+#: gio/glocalfileinfo.c:2559
#, c-format
msgid "Error setting symlink: %s"
msgstr "Грешка при задаване на символна връзка: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2538
msgid "Error setting symlink: file is not a symlink"
msgstr "Грешка при задаване на символна връзка: файлът не е такава"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2630
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
"Допълнителните наносекунди %d за времевото клеймо по UNIX %lld са отрицателни"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2639
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"Допълнителните наносекунди %d за времевото клеймо по UNIX %lld стигат 1 "
"секунда"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2649
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "Времевото клеймо по UNIX %lld не се помества в 64 бита"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2660
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "Времевото клеймо по UNIX %lld е извън диапазона, поддържан в Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2792
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Името на файла „%s“ не може да се преобразува в UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2811
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Файлът „%s“ не може да бъде отворен — грешка от Windows: %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2824
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
"Грешка при задаване на времето на промяна или достъп на файла „%s“: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2981
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Грешка при задаване на времето на промяна или достъп: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:3004
msgid "SELinux context must be non-NULL"
msgstr "Контекстът на SELinux трябва да не е NULL"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:3011
msgid "SELinux is not enabled on this system"
msgstr "SELinux не е включен на тази система"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:3021
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Грешка при задаване на контекста на SELinux: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3118
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Не се поддържа задаването на атрибута %s"
@@ -3376,13 +3385,13 @@ msgstr "Грешка при създаване на резервно копие:
msgid "Error renaming temporary file: %s"
msgstr "Грешка при преименуване на временен файл: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Грешка при съкращаване на файл: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Грешка при отваряне на файла „%s“: %s"
@@ -3399,7 +3408,7 @@ msgstr "Целевият файл не е обикновен файл"
msgid "The file was externally modified"
msgstr "Файлът бе променен от външно приложение"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Грешка при изтриване на стар файл: %s"
@@ -3548,8 +3557,8 @@ msgstr "Непозната грешка при търсене на сървър-
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:798 gio/gthreadedresolver.c:822
+#: gio/gthreadedresolver.c:847 gio/gthreadedresolver.c:862
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Грешка при откриване по адрес на „%s“: %s"
@@ -4270,35 +4279,35 @@ msgstr "Грешка при обратно откриване по адрес н
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:628 gio/gthreadedresolver.c:675
+#: gio/gthreadedresolver.c:704 gio/gthreadedresolver.c:716
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Неуспешен анализ на запис %s в DNS: неправилен пакет от DNS"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:774 gio/gthreadedresolver.c:911
+#: gio/gthreadedresolver.c:1009 gio/gthreadedresolver.c:1059
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Няма запис в DNS от указания вид за „%s“"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:779 gio/gthreadedresolver.c:1014
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Временно е невъзможно „%s“ да бъде открит по адрес"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:784 gio/gthreadedresolver.c:1019
+#: gio/gthreadedresolver.c:1129
#, c-format
msgid "Error resolving “%s”"
msgstr "Грешка при откриване по адрес на „%s“"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:798 gio/gthreadedresolver.c:822
+#: gio/gthreadedresolver.c:847 gio/gthreadedresolver.c:862
msgid "Malformed DNS packet"
msgstr "Неправилен пакет от DNS"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:904
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Неуспешен анализ на отговора от DNS за „%s“: "
@@ -4426,7 +4435,7 @@ msgstr "Грешка при четене от файловия дескрипт
msgid "Error closing file descriptor: %s"
msgstr "Грешка при затваряне на файловия дескриптор: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2817 gio/gunixmounts.c:2870
msgid "Filesystem root"
msgstr "Коренова папка на файловата система"
@@ -4508,77 +4517,77 @@ msgstr "Стартиране на сесийна шина D-Bus"
msgid "Wrong args\n"
msgstr "Неправилни аргументи\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Неочакван атрибут „%s“ на елемента „%s“"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Атрибутът „%s“ на елемента „%s“ не е открит"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Неочакван етикет „%s“, очакваше се „%s“"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Неочакван етикет „%s“ вътре в „%s“"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Неправилна дата или време „%s“ във файла с отметки"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Не може да се открие валиден файл с отметки в папките с данни"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Вече съществува отметка за адреса „%s“"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Не е открита отметка за адреса „%s“"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Не е указан видът MIME в отметката за адреса „%s“"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Не е зададен флаг за лични данни в отметката за адреса „%s“"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "Не са зададени групи в отметката за адреса „%s“"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Никоя програма „%s“ не е регистрирала отметка за „%s“"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Неуспешно дописване за изпълнение на реда „%s“ с адреса „%s“"
@@ -5056,86 +5065,86 @@ msgstr "сл.об."
msgid "Error opening directory “%s”: %s"
msgstr "Грешка при отваряне на папка „%s“: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "Неуспешно заделяне на %lu байт за четене на файла „%s“"
msgstr[1] "Неуспешно заделяне на %lu байта за четене на файла „%s“"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Грешка при четене на файл „%s“: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Файлът „%s“ е прекалено голям"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Неуспешно четене от файл „%s“: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Неуспешно отваряне на файл „%s“: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr ""
"Неуспешно получаване на атрибутите на файл „%s“: неуспешно изпълнение на "
"„fstat()“: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr ""
"Неуспешно отваряне на файл „%s“: неуспешно изпълнение на „fdopen()“: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr ""
"Неуспешно преименуване на файл „%s“ на „%s“: неуспешно изпълнение на "
"„g_rename()“: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Неуспешен запис на файл „%s“: неуспешно изпълнение на „write()“: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Неуспешен запис на файл „%s“: неуспешно изпълнение на „fsync()“: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Неуспешно създаване на файл „%s“: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr ""
"Неуспешно изтриване на съществуващия файл „%s“: неуспешно изпълнение на "
"„g_unlink()“: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Шаблонът „%s“ е неправилен, не трябва да съдържа „%s“"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Шаблонът „%s“ не съдържа „XXXXXX“"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Неуспешно четене на символната връзка „%s“: %s"
@@ -5197,8 +5206,8 @@ msgid "Key file contains unsupported encoding “%s”"
msgstr "Ключовият файл съдържа неподдържаното кодиране „%s“"
#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3622
+#: glib/gkeyfile.c:3768 glib/gkeyfile.c:4003 glib/gkeyfile.c:4070
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Ключовият файл не съдържа групата „%s“"
@@ -5235,32 +5244,32 @@ msgstr ""
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Ключът „%s“ в групата „%s“ има стойност „%s“, а се очакваше „%s“"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4323
msgid "Key file contains escape character at end of line"
msgstr "Ключовият файл съдържа екранираща последователност в край на ред"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4345
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Ключовият файл съдържа грешна екранираща последователност — „%s“"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4490
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Стойността „%s“ не може да се интерпретира като число."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4504
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Целочислената стойност „%s“ е извън интервала на допустими стойности"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4537
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr ""
"Стойността „%s“ не може да се интерпретира като число с плаваща запетая."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4576
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Стойността „%s“ не може да се интерпретира като булева."
@@ -5284,32 +5293,32 @@ msgstr ""
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Неуспешно отваряне на файл „%s“: неуспешно изпълнение на „open()“: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:393 glib/gmarkup.c:435
#, c-format
msgid "Error on line %d char %d: "
msgstr "Грешка на ред %d, знак %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:457 glib/gmarkup.c:540
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Неправилно кодиран текст в UTF-8 — „%s“ е грешен"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:468
#, c-format
msgid "“%s” is not a valid name"
msgstr "„%s“ е неправилно име"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:484
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "„%s“ е неправилно име: „%c“"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:608
#, c-format
msgid "Error on line %d: %s"
msgstr "Грешка на ред %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:685
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5318,7 +5327,7 @@ msgstr ""
"Грешка при анализ на „%-.*s“, което трябва да е число в указател на знак "
"(напр. „&#234;“). Вероятно числото е твърде голямо"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:697
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5327,24 +5336,24 @@ msgstr ""
"Указателят на знак не завършва с „;“. Най-вероятно сте използвали „&“, без "
"той да е начало на заместваща последователност. Представете го чрез „&amp;“"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:723
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Указателят на знак „%-.*s“ не представя разрешен знак при декодиране"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:761
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Намерена е празна заместваща последователност: „&;“. Валидни "
"последователности са: „&amp;“, „&quot;“, „&lt;“, „&gt;“, „&apos;“"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:769
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Името на заместващата последователност „%-.*s“ е неизвестно"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:774
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5353,11 +5362,11 @@ msgstr ""
"„&“, без той да е начало на заместваща последователност. Представете го чрез "
"„&amp;“"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1188
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Документът трябва да започва с елемент (напр. <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1228
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5365,7 +5374,7 @@ msgid ""
msgstr ""
"„%s“ е неправилен знак след „<“. Името на елемент не може да започне с него"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1271
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5374,12 +5383,12 @@ msgstr ""
"Неподходящ знак „%s“, очаква се етикетът на празния елемент „%s“ да завърши "
"с „>“"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1341
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Прекалено много атрибути в елемента „%s“"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1361
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5387,7 +5396,7 @@ msgstr ""
"Неподходящ знак „%s“, очаква се „=“ след името на атрибут „%s“ на елемент "
"„%s“"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1403
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5398,7 +5407,7 @@ msgstr ""
"завърши със знак „>“ или „/“, или евентуално да продължи с атрибут. Най-"
"вероятно използвате неправилен знак в името на атрибут"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1448
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5407,7 +5416,7 @@ msgstr ""
"Неподходящ знак „%s“, очаква се знак „\"“ или „'“ след знака за равенство, "
"когато се присвоява стойност на атрибута „%s“ на елемент „%s“"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1582
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5415,7 +5424,7 @@ msgid ""
msgstr ""
"„%s“ е неправилен знак след „</“. Името на елемент не може да започва с „%s“"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1620
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5424,26 +5433,26 @@ msgstr ""
"„%s“ е неправилен знак при завършването на затварящ етикет с име „%s“. "
"Позволен е знакът „>“"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1632
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Елементът „%s“ е затворен, няма текущо отворен елемент"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1641
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "Елементът „%s“ е затворен, но текущо е отворен елемент „%s“"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1794
msgid "Document was empty or contained only whitespace"
msgstr "Документът е празен или съдържа само празни знаци"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1808
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr ""
"Документът завършва неочаквано веднага след отваряща счупена скоба — „<“"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1816 glib/gmarkup.c:1861
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5452,7 +5461,7 @@ msgstr ""
"Документът завършва неочаквано — има отворени елементи. Последно отворен е "
"„%s“"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1824
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5461,19 +5470,19 @@ msgstr ""
"Документът завършва неочаквано, очаква се затваряща счупена скоба да завърши "
"етикета <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1830
msgid "Document ended unexpectedly inside an element name"
msgstr "Документът завършва неочаквано в името на елемент"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1836
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Документът завършва неочаквано в името на атрибут"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Документът завършва неочаквано в отварящ етикет на елемент "
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1847
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5481,22 +5490,22 @@ msgstr ""
"Документът завършва неочаквано след знака за равенство след името на "
"атрибута. Атрибутът няма стойност"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1854
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Документът завършва неочаквано вътре в стойността на атрибут"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1871
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "Документът завършва неочаквано в затварящия етикет на елемент „%s“"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1875
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Документът завършва неочаквано в затварящия етикет на неотворен елемент"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1881
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr "Документът завършва неочаквано в коментар или инструкция за обработка"
@@ -5563,186 +5572,186 @@ msgstr "Липсва аргумент за „%s“"
msgid "Unknown option %s"
msgstr "Непозната опция „%s“"
-#: glib/gregex.c:436
+#: glib/gregex.c:479
msgid "corrupted object"
msgstr "повреден обект"
-#: glib/gregex.c:438
+#: glib/gregex.c:481
msgid "out of memory"
msgstr "недостатъчно памет"
-#: glib/gregex.c:443
+#: glib/gregex.c:487
msgid "backtracking limit reached"
msgstr "достигната е границата на обратното връщане"
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:498
msgid "internal error"
msgstr "вътрешна грешка"
-#: glib/gregex.c:456
+#: glib/gregex.c:500
msgid "the pattern contains items not supported for partial matching"
msgstr ""
"шаблонът съдържа елементи, които не се поддържат при частично съвпадение"
-#: glib/gregex.c:458
+#: glib/gregex.c:502
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"обратните указатели не се поддържат като условие при частично съвпадение"
-#: glib/gregex.c:464
+#: glib/gregex.c:508
msgid "recursion limit reached"
msgstr "прекалено дълбока рекурсия"
-#: glib/gregex.c:466
+#: glib/gregex.c:510
msgid "bad offset"
msgstr "неправилно отместване"
-#: glib/gregex.c:468
+#: glib/gregex.c:512
msgid "recursion loop"
msgstr "зацикляне при рекурсия"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:515
msgid "matching mode is requested that was not compiled for JIT"
msgstr "заявеният начин за напасване на е компилиран с поддръжка на JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:536 glib/gregex.c:1838
msgid "unknown error"
msgstr "непозната грешка"
-#: glib/gregex.c:496
+#: glib/gregex.c:557
msgid "\\ at end of pattern"
msgstr "„\\“ в края на шаблон"
-#: glib/gregex.c:500
+#: glib/gregex.c:561
msgid "\\c at end of pattern"
msgstr "„\\c“ в края на шаблон"
-#: glib/gregex.c:505
+#: glib/gregex.c:566
msgid "unrecognized character following \\"
msgstr "след „\\“ следва непознат знак"
-#: glib/gregex.c:509
+#: glib/gregex.c:570
msgid "numbers out of order in {} quantifier"
msgstr "числата не са в правилен ред в определението за брой с „{}“"
-#: glib/gregex.c:513
+#: glib/gregex.c:574
msgid "number too big in {} quantifier"
msgstr "прекалено голямо число в определението за брой с „{}“"
-#: glib/gregex.c:517
+#: glib/gregex.c:578
msgid "missing terminating ] for character class"
msgstr "липсва завършващ знак „]“ за клас от знаци"
-#: glib/gregex.c:521
+#: glib/gregex.c:582
msgid "invalid escape sequence in character class"
msgstr "грешна екранираща последователност в класа от знаци"
-#: glib/gregex.c:525
+#: glib/gregex.c:586
msgid "range out of order in character class"
msgstr "знаците са в неправилен ред в класа от знаци"
-#: glib/gregex.c:530
+#: glib/gregex.c:591
msgid "nothing to repeat"
msgstr "няма какво да се повтори"
-#: glib/gregex.c:534
+#: glib/gregex.c:595
msgid "unrecognized character after (? or (?-"
msgstr "непознат знак след „(?“ или „(?-“"
-#: glib/gregex.c:538
+#: glib/gregex.c:599
msgid "POSIX named classes are supported only within a class"
msgstr "именованите класове от POSIX се поддържат само в клас"
-#: glib/gregex.c:542
+#: glib/gregex.c:603
msgid "POSIX collating elements are not supported"
msgstr "не се поддържат елементи на POSIX за подредба"
-#: glib/gregex.c:548
+#: glib/gregex.c:609
msgid "missing terminating )"
msgstr "липсва завършваща „)“"
-#: glib/gregex.c:552
+#: glib/gregex.c:613
msgid "reference to non-existent subpattern"
msgstr "указател към несъществуващ подшаблон"
-#: glib/gregex.c:556
+#: glib/gregex.c:617
msgid "missing ) after comment"
msgstr "липсва „)“ след коментар"
-#: glib/gregex.c:560
+#: glib/gregex.c:621
msgid "regular expression is too large"
msgstr "регулярният израз е прекалено голям"
-#: glib/gregex.c:564
+#: glib/gregex.c:625
msgid "malformed number or name after (?("
msgstr "неправилен номер или име след „(?(“"
-#: glib/gregex.c:568
+#: glib/gregex.c:629
msgid "lookbehind assertion is not fixed length"
msgstr "предположението за преглед назад не е с постоянна дължина"
-#: glib/gregex.c:572
+#: glib/gregex.c:633
msgid "conditional group contains more than two branches"
msgstr "условната група съдържа повече от две разклонения"
-#: glib/gregex.c:576
+#: glib/gregex.c:637
msgid "assertion expected after (?("
msgstr "очаква се предположение след „(?(“"
-#: glib/gregex.c:580
+#: glib/gregex.c:641
msgid "a numbered reference must not be zero"
msgstr "номерираният указател не трябва да е „0“"
-#: glib/gregex.c:584
+#: glib/gregex.c:645
msgid "unknown POSIX class name"
msgstr "непознато име на клас по POSIX"
-#: glib/gregex.c:589
+#: glib/gregex.c:650
msgid "character value in \\x{...} sequence is too large"
msgstr "знаковата стойност в последователността „\\x{…}“ е прекалено голяма"
-#: glib/gregex.c:593
+#: glib/gregex.c:654
msgid "\\C not allowed in lookbehind assertion"
msgstr "предположението за преглед назад не може да съдържа „\\C“"
-#: glib/gregex.c:597
+#: glib/gregex.c:658
msgid "missing terminator in subpattern name"
msgstr "липсва краен знак в име на подшаблон"
-#: glib/gregex.c:601
+#: glib/gregex.c:662
msgid "two named subpatterns have the same name"
msgstr "два именовани подшаблона са с еднакво име"
-#: glib/gregex.c:605
+#: glib/gregex.c:666
msgid "malformed \\P or \\p sequence"
msgstr "неправилни последователности „\\P“ или „\\p“"
-#: glib/gregex.c:609
+#: glib/gregex.c:670
msgid "unknown property name after \\P or \\p"
msgstr "непознато име на свойство след „\\P“ или „\\p“"
-#: glib/gregex.c:613
+#: glib/gregex.c:674
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "името на подшаблон е прекалено дълго (максимално е 32 знака)"
-#: glib/gregex.c:617
+#: glib/gregex.c:678
msgid "too many named subpatterns (maximum 10,000)"
msgstr "прекалено много именовани подшаблони (максимумът е 10 000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:682
msgid "octal value is greater than \\377"
msgstr "осмичната стойност е по-голяма от „\\377“"
-#: glib/gregex.c:625
+#: glib/gregex.c:686
msgid "DEFINE group contains more than one branch"
msgstr "група „DEFINE“ съдържа повече от едно разклонение"
-#: glib/gregex.c:629
+#: glib/gregex.c:690
msgid "inconsistent NEWLINE options"
msgstr "несъвместими опции за нов ред"
-#: glib/gregex.c:633
+#: glib/gregex.c:694
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5750,120 +5759,120 @@ msgstr ""
"„\\g“ не е последвано от име, число във фигурни или квадратни скоби, "
"цитирано име или обикновено число"
-#: glib/gregex.c:638
+#: glib/gregex.c:699
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "„(*ACCEPT)“, „(*FAIL)“ и „(*COMMIT)“ не приемат аргументи"
-#: glib/gregex.c:642
+#: glib/gregex.c:703
msgid "(*VERB) not recognized"
msgstr "неразпознат „(*ГЛАГОЛ)“"
-#: glib/gregex.c:646
+#: glib/gregex.c:707
msgid "number is too big"
msgstr "числото е прекалено голямо"
-#: glib/gregex.c:650
+#: glib/gregex.c:711
msgid "missing subpattern name after (?&"
msgstr "липсва име на подшаблон след „(?&“"
-#: glib/gregex.c:654
+#: glib/gregex.c:715
msgid "different names for subpatterns of the same number are not allowed"
msgstr "не са позволени различни имена за подшаблони с еднакъв номер"
-#: glib/gregex.c:658
+#: glib/gregex.c:719
msgid "(*MARK) must have an argument"
msgstr "„(*MARK)“ изисква аргумент"
-#: glib/gregex.c:662
+#: glib/gregex.c:723
msgid "\\c must be followed by an ASCII character"
msgstr "„\\c“ трябва да се следва от знак от ASCII"
-#: glib/gregex.c:666
+#: glib/gregex.c:727
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"„\\k“ не е последвано от име във фигурни или квадратни скоби или от цитирано "
"име"
-#: glib/gregex.c:670
+#: glib/gregex.c:731
msgid "\\N is not supported in a class"
msgstr "„\\N“ не се поддържа в клас"
-#: glib/gregex.c:674
+#: glib/gregex.c:735
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr ""
"името е прекалено дълго за „(*MARK)“, „(*PRUNE)“, „(*SKIP)“ и „(*THEN)“"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:739 glib/gregex.c:875
msgid "code overflow"
msgstr "препълване на кода"
-#: glib/gregex.c:682
+#: glib/gregex.c:743
msgid "unrecognized character after (?P"
msgstr "непознат знак след „(?P“"
-#: glib/gregex.c:686
+#: glib/gregex.c:747
msgid "overran compiling workspace"
msgstr "надхвърлено е работното пространство за компилация"
-#: glib/gregex.c:690
+#: glib/gregex.c:751
msgid "previously-checked referenced subpattern not found"
msgstr "не е открит указан предварително проверен подшаблон"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:874 glib/gregex.c:1121 glib/gregex.c:2444
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Грешка при напасването на регулярния израз „%s“: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1721
msgid "PCRE library is compiled without UTF8 support"
msgstr "Библиотеката PCRE е компилирана без поддръжка на UTF-8"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1729
msgid "PCRE library is compiled with incompatible options"
msgstr "Библиотеката PCRE е компилирана с несъвместими опции"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1847
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Грешка при компилирането на регулярния израз „%s“, знак %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2887
msgid "hexadecimal digit or “}” expected"
msgstr "очаква се шестнадесетично число или „}“"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2903
msgid "hexadecimal digit expected"
msgstr "очаква се шестнадесетично число"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2943
msgid "missing “<” in symbolic reference"
msgstr "в символния указател липсва „<“"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2952
msgid "unfinished symbolic reference"
msgstr "незавършен символен указател"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2959
msgid "zero-length symbolic reference"
msgstr "символен указател с нулева дължина"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2970
msgid "digit expected"
msgstr "очаква се цифра"
-#: glib/gregex.c:2887
+#: glib/gregex.c:2988
msgid "illegal symbolic reference"
msgstr "неправилен символен указател"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3051
msgid "stray final “\\”"
msgstr "в края има един знак „\\“ в повече"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3055
msgid "unknown escape sequence"
msgstr "непозната екранираща последователност"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3065
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Грешка при анализа на текста за замяна „%s“ при знак %lu: %s"
@@ -5893,99 +5902,104 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Текстът е празен (или съдържа само празни знаци)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:319
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Неуспешно четене на данни от дъщерен процес (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:471
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr ""
"Неочаквана грешка в „select()“ при четене на данни от дъщерен процес (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:556
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Неочаквана грешка в „waitpid()“ (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1175 glib/gspawn-win32.c:1503
#, c-format
msgid "Child process exited with code %ld"
msgstr "Дъщерният процес завърши с код %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1183
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Дъщерният процес бе убит от сигнал %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1190
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Дъщерният процес бе спрян от сигнал %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1197
#, c-format
msgid "Child process exited abnormally"
msgstr "Дъщерният процес завърши аварийно"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2027 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Неуспешно четене от дъщерен канал (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2399
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Неуспешно пораждане на дъщерен процес „%s“ (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2525
#, c-format
msgid "Failed to fork (%s)"
msgstr "Неуспешно пораждане (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2685 glib/gspawn-win32.c:424
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Неуспешна смяна към папка „%s“ (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2695
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Неуспешно изпълнение на дъщерен процес „%s“ (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2705
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Неуспешно отваряне на файл за заместване на файлов дескриптор (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2713
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Неуспешно дублиране на файлов дескриптор за дъщерен процес (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2722
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Неуспешно разклоняване на дъщерен процес (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2730
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Неуспешно затваряне на файловия дескриптор на дъщерен процес (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2738
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Неизвестна грешка при изпълнение на дъщерен процес „%s“"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2762
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
"Неуспешно четене на достатъчно данни от канала на дъщерен процес (с "
"идентификатор %s)"
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Неправилен аргумент за файлов дескриптор на източник"
+
#: glib/gspawn-win32.c:337
msgid "Failed to read data from child process"
msgstr "Неуспешно четене на данни от дъщерен процес"
@@ -6005,27 +6019,27 @@ msgstr "Неуспешно разклоняване на дъщерен проц
msgid "Invalid program name: %s"
msgstr "Неправилно име на програма: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:868
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Неправилен низ във вектора с аргументи на позиция %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:884
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Неправилен низ в средата: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:864
#, c-format
msgid "Invalid working directory: %s"
msgstr "Неправилна работна папка: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:929
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Неуспешно изпълнение на програмата за помощта (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1158
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6033,21 +6047,21 @@ msgstr ""
"Неочаквана грешка в „g_io_channel_win32_poll()“ при четене на данни от "
"дъщерен процес"
-#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3474
+#: glib/gstrfuncs.c:3370 glib/gstrfuncs.c:3472
msgid "Empty string is not a number"
msgstr "Празен низ не е число"
-#: glib/gstrfuncs.c:3396
+#: glib/gstrfuncs.c:3394
#, c-format
msgid "“%s” is not a signed number"
msgstr "„%s“ е число със знак"
-#: glib/gstrfuncs.c:3406 glib/gstrfuncs.c:3510
+#: glib/gstrfuncs.c:3404 glib/gstrfuncs.c:3508
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Числото „%s“ е извън диапазона на допустимите стойности [%s, %s]"
-#: glib/gstrfuncs.c:3500
+#: glib/gstrfuncs.c:3498
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "„%s“ не е число без знак"
@@ -6126,132 +6140,132 @@ msgid "Character out of range for UTF-16"
msgstr "Знак извън обхвата на UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "байт"
msgstr[1] "байта"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "%u бит"
@@ -6259,7 +6273,7 @@ msgstr[1] "%u бита"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6267,7 +6281,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6275,7 +6289,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6284,14 +6298,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6299,14 +6313,14 @@ msgstr[0] "%s байт"
msgstr[1] "%s байта"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s бит"
msgstr[1] "%s бита"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6318,32 +6332,32 @@ msgstr[1] "%u B"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
diff --git a/po/ca.po b/po/ca.po
index 28749845a..fad0049f6 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -6,15 +6,15 @@
# Sílvia Miranda <silvia@softcatala.cat>, 2011.
# Jordi Serratosa <jordis@softcatala.cat>, 2012, 2017.
# Gil Forcada <gilforcada@guifi.net>, 2008-2013, 2013, 2014, 2016.
-# Jordi Mas i Hernàndez <jmas@softcatala.org>, 2016-2022
+# Jordi Mas i Hernàndez <jmas@softcatala.org>, 2016-2023
# Xavi Ivars <xavi.ivars@gmail.com>, 2017.
msgid ""
msgstr ""
"Project-Id-Version: glib 2.8\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-08 10:42+0000\n"
-"PO-Revision-Date: 2022-08-14 11:48+0100\n"
-"Last-Translator: Jordi Mas <jmas@softcatala.org>\n"
+"POT-Creation-Date: 2023-08-31 10:14+0000\n"
+"PO-Revision-Date: 2023-09-11 11:48+0100\n"
+"Last-Translator: Jordi Mas i Hernàndez <jmas@softcatala.org>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
@@ -24,48 +24,48 @@ msgstr ""
"X-Generator: Poedit 3.0.1\n"
"X-Project-Style: gnome\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Encara no s'admeten les aplicacions per defecte"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"L'establiment de l'aplicació com a última utilitzada per al tipus encara no "
"és compatible"
-#: gio/gappinfo.c:808
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr ""
"No s'ha pogut trobar l'aplicació predeterminada per al tipus de contingut "
"«%s»"
-#: gio/gappinfo.c:868
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr ""
"No s'ha pogut trobar l'aplicació predeterminada per a l'esquema URI «%s»"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "Opcions de la GApplication"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "Opcions de la GApplication:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Mostra les opcions de la GApplication"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
"Introduïu un mode de servei GApplication (utilitzeu-lo des de fitxers de "
"servei D-Bus)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Sobreescriu l'identificador de l'aplicació"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Reemplaça la instància en execució"
@@ -148,7 +148,7 @@ msgstr ""
"Identificador de l'aplicació en format D-Bus (p. ex.: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FITXER"
@@ -246,13 +246,13 @@ msgstr "no s'ha pogut connectar a D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "s'ha produït un error en enviar el missatge %s: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr ""
"s'ha de proporcionar el nom de l'acció després de l'identificador de "
"l'aplicació\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -261,27 +261,27 @@ msgstr ""
"el nom d'acció no és vàlid: «%s»\n"
"els noms d'acció han d'estar formats per caràcters alfanumèrics, «-» i «.»\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "s'ha produït un error en analitzar el paràmetre d'acció: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "les accions accepten com a màxim un paràmetre\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr ""
"l'ordre de llistat d'aplicacions (list-actions) només pren l'identificador "
"d'aplicació"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "no s'ha pogut trobar el fitxer d'escriptori de l'aplicació %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -291,9 +291,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "El valor de comptatge passat a %s és massa gran"
@@ -307,8 +307,8 @@ msgstr "No està implementada la cerca en el flux base"
msgid "Cannot truncate GBufferedInputStream"
msgstr "No es pot truncar el GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Ja està tancat el flux"
@@ -316,7 +316,7 @@ msgstr "Ja està tancat el flux"
msgid "Truncate not supported on base stream"
msgstr "No es permet truncar en els fluxos base"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -335,28 +335,28 @@ msgid "Not enough space in destination"
msgstr "No hi ha prou espai a la destinació"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "La seqüència de bytes a l'entrada de conversió no és vàlida"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "S'ha produït un error durant la conversió: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "La cancel·lació de la inicialització no està implementada"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "No es permet la conversió entre els jocs de caràcters «%s» i «%s»"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "No s'ha pogut obrir el convertidor de «%s» a «%s»"
@@ -401,17 +401,17 @@ msgstr "Aquest sistema operatiu no implementa el falsejament de credencials"
msgid "Unexpected early end-of-stream"
msgstr "No s'esperava un final de flux tan aviat"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "No es permet la clau «%s» en l'entrada de l'adreça «%s»"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "L'entrada d'adreça «%s» té una parella clau/valor que no té sentit"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -420,7 +420,7 @@ msgstr ""
"L'adreça «%s» no és vàlida (ha de ser, o bé un camí, o bé un tmpdir "
"-directori temporal-, o bé unes claus abstractes)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -558,7 +558,7 @@ msgstr ""
"No s'ha pogut determinar l'adreça del bus de sessió (no està implementat en "
"aquest sistema operatiu)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable"
@@ -567,7 +567,7 @@ msgstr ""
"No es pot determinar l'adreça del bus a través de la variable d'entorn "
"«DBUS_STARTER_BUS_TYPE»: conté un valor desconegut «%s»"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -575,7 +575,7 @@ msgstr ""
"No es pot determinar l'adreça del bus perquè la variable d'entorn "
"«DBUS_STARTER_BUS_TYPE» no està establerta"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Tipus de bus desconegut %d"
@@ -599,22 +599,26 @@ msgstr ""
"S'han exhaurit tots els mecanismes d'autenticació disponibles (s'han provat:"
" %s) (hi ha disponibles: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Manca inesperada de contingut en intentar llegir un byte"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr ""
"Els identificadors d'usuari han de ser els mateixos per a clients i servidor"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr ""
"S'ha cancel·lat a través de GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "S'ha produït un error en obtenir la informació del directori «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -622,35 +626,35 @@ msgstr ""
"Els permisos del directori «%s» no estan ben formatats. S'esperava el mode "
"0700, però s'ha obtingut el 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "S'ha produït un error en crear el directori «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "L'operació no està implementada"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr ""
"S'ha produït un error en obrir l'anell de claus «%s» per a llegir-lo: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
"La línia %d de l'anell de claus a «%s» amb el contingut «%s» no està ben "
"formatada"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -658,7 +662,7 @@ msgstr ""
"El primer testimoni de la línia %d de l'anell de claus a «%s» amb el "
"contingut «%s» no està ben formatat"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is "
@@ -667,61 +671,61 @@ msgstr ""
"El segon testimoni de la línia %d de l'anell de claus a «%s» amb el "
"contingut «%s» no està ben formatat"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr ""
"No s'ha trobat la galeta amb l'identificador %d a l'anell de claus a «%s»"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "S'ha produït un error en crear el fitxer de blocatge «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "S'ha produït un suprimir el fitxer de blocatge antic «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr ""
"S'ha produït un error en tancar el fitxer (no enllaçat) de blocatge «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "S'ha produït un error en desenllaçar el fitxer de blocatge «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr ""
"S'ha produït un error en obrir l'anell de claus «%s» per a escriptura: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr ""
"(A més a més, l'alliberació del blocatge per a «%s» també ha fallat: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "La connexió està tancada"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "S'ha esgotat el temps d'espera"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"S'han trobat senyaladors no implementats en construir-se la part de la "
"connexió del client"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -729,107 +733,115 @@ msgstr ""
"No existeix la interfície «org.freedesktop.DBus.Properties» en l'objecte al "
"camí %s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "No existeix la propietat «%s»"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "La propietat «%s» no és de lectura"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "La propietat «%s» no és d'escriptura"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"S'ha produït un error en establir la propietat «%s»: s'esperava el tipus "
"«%s», però s'ha obtingut el «%s»"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "No existeix la interfície «%s»"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "No existeix la interfície «%s» en l'objecte al camí %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "No existeix el mètode «%s»"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "El tipus de missatge «%s» no correspon al tipus «%s» que s'esperava"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Ja hi ha un objecte exportat per a la interfície %s a %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "No s'ha pogut recuperar la propietat %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "No s'ha pogut establir la propietat %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "El mètode «%s» ha retornat un tipus «%s», però s'esperava «%s»"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "No existeix el mètode «%s» a la interfície «%s» amb la signatura «%s»"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Ja està exportat un subarbre per a %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "L'objecte no existeix al camí «%s»"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "el tipus és no vàlid"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "Missatge «METHOD_CALL»: manca el camp de capçalera «PATH» o «MEMBER»"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"Missatge «METHOD_CALL»: el camp de capçalera «PATH» o «MEMBER» manca o és "
+"invàlid"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "Missatge «METHOD_RETURN»: manca el camp de capçalera «REPLY_SERIAL»"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"Missatge «METHOD_RETURN»: el camp de capçalera «REPLY_SERIAL» manca o és "
+"invàlid"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
msgstr ""
-"Missatge «ERROR»: manca el camp de capçalera «REPLY_SERIAL» o «ERROR_NAME»"
+"Missatge «ERROR»: el camp de capçalera «REPLY_SERIAL» o «ERROR_NAME» manca o"
+" és invàlid"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
msgstr ""
-"Missatge «SIGNAL»: manca el camp de capçalera «PATH», «INTERFACE» o «MEMBER»"
+"Missatge «SIGNAL»: el camp de capçalera «PATH», «INTERFACE» o «MEMBER» manca"
+" o és invàlid"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value "
"/org/freedesktop/DBus/Local"
@@ -837,7 +849,7 @@ msgstr ""
"Missatge «SIGNAL»: el camp de la capçalera «PATH» utilitza el valor reservat"
" «/org/freedesktop/DBus/Local»"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value "
"org.freedesktop.DBus.Local"
@@ -845,21 +857,21 @@ msgstr ""
"Missatge SIGNAL: el camp de capçalera INTERFACE utilitza el valor reservat "
"org.freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "Es volia llegir %lu byte però només s'han rebut %lu"
msgstr[1] "Es volien llegir %lu bytes però només s'han rebut %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr ""
"S'esperava el byte «NUL» després de la cadena «%s» però s'ha trobat el byte "
"%d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -870,21 +882,21 @@ msgstr ""
"l'òfset %d (la llargada de la cadena és %d). La cadena UTF-8 vàlida fins "
"aquell moment era «%s»"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Valor imbricat massa profund"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "El valor analitzat «%s» no és un camí d'objecte D-Bus vàlid"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "El valor analitzat «%s» no és una signatura D-Bus vàlida"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -898,7 +910,7 @@ msgstr[1] ""
"S'ha trobat una matriu de llargada %u bytes. La llargada màxima és de 2<<26 "
"bytes (64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -907,16 +919,16 @@ msgstr ""
"S'ha trobat una matriu de tipus «a%c» que s'esperava que tingués una "
"llargada múltiple de %u bytes, però en realitat és de %u bytes"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "No es permeten estructures buides (tuples) a D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "El valor analitzat «%s» per variant no és una signatura D-Bus vàlida"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire "
@@ -925,7 +937,7 @@ msgstr ""
"S'ha produït un error en convertir a estructura de dades la GVariant amb el "
"tipus de cadena «%s» del format de cable D-Bus"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -934,28 +946,28 @@ msgstr ""
"Valor d'ordenació de bits (endianness) no vàlid. S'esperava 0x6c («l») o "
"0x42 («B») però s'ha trobat el valor 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Versió major del protocol no vàlida. S'esperava 1 però s'ha trobat %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "S'ha trobat la capçalera de signatura però no és del tipus signatura"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"S'ha trobat la capçalera de la signatura amb la signatura «%s», però el cos "
"és buit"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "El valor analitzat «%s» no és una signatura de D-Bus vàlida (pel cos)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -966,11 +978,11 @@ msgstr[1] ""
"No hi ha cap capçalera de la signatura en el missatge, però el cos és de %u "
"bytes"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "No s'ha pogut tornar a convertir el missatge a estructura de dades: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -978,7 +990,7 @@ msgstr ""
"No s'ha pogut convertir a seqüència de bits la GVariant de tipus cadena «%s»"
" al format de cable D-Bus"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
@@ -986,18 +998,18 @@ msgstr ""
"El nombre de descriptors de fitxer al missatge (%d) difereix del camp de la "
"capçalera (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "No s'ha pogut convertir a seqüència de bits el missatge: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
"El cos del missatge té la signatura «%s» però no hi ha cap capçalera de "
"signatura"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -1006,58 +1018,58 @@ msgstr ""
"El cos del missatge té el tipus de signatura «%s» però la signatura en el "
"camp de la capçalera és «%s»"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
"El cos del missatge és buit però la signatura en el camp de la capçalera és "
"«(%s)»"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "S'ha retornat un error amb el cos de tipus «%s»"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "S'ha retornat un error amb el cos buit"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Premeu qualsevol tecla per a tancar aquesta finestra)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr ""
"El bus de sessió (D-Bus) no està en funcionament i l'arrencada automàtica no"
" ha funcionat"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "No s'ha pogut obtenir el perfil de maquinari: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "No s'ha pogut carregar %s ni %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "S'ha produït un error en cridar «StartServiceByName» per a %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr ""
"S'ha obtingut una resposta inesperada %d per al mètode "
"«StartServiceByName(\"%s\")»"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1067,25 +1079,25 @@ msgstr ""
"conegut %s sense cap propietari i el servidor intermediari s'ha construït "
"amb el senyalador «G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START»"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "No es pot utilitzar l'espai de noms abstracte"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "No es pot especificar el fitxer «nonce» quan es crea un servidor"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "S'ha produït un error en escriure el fitxer nonce a «%s»: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "La cadena «%s» no és un GUID vàlid de D-Bus"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "No es pot escoltar «%s», és un transport desconegut"
@@ -1113,14 +1125,14 @@ msgstr ""
"\n"
"Utilitzeu «%s ORDRE --help» per a veure l'ajuda de cada ordre en particular.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "S'ha produït un error: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "S'ha produït un error en analitzar la introspecció XML: %s\n"
@@ -1130,50 +1142,50 @@ msgstr "S'ha produït un error en analitzar la introspecció XML: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Error: %s no és un nom de membre vàlid\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Error: «%s» no és un camí d'objecte vàlid\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Connecta al bus del sistema"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Connecta al bus de la sessió"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Connecta a l'adreça de D-Bus donada"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Opcions del punt final de connexió:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Opcions d'especificació del punt final de connexió"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "No s'ha especificat el punt final de connexió"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "S'han especificat més d'un punt final de connexió"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr ""
"Avís: d'acord amb les dades d'introspecció no existeix la interfície «%s»\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1182,166 +1194,166 @@ msgstr ""
"Avís: d'acord amb les dades d'introspecció no existeix el mètode «%s» a la "
"interfície «%s»\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Destinació opcional del senyal (nom únic)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Camí a l'objecte al qual se li enviarà un senyal"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Senyal i nom d'interfície"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Envia un senyal."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "S'ha produït un error en connectar-se: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Error: %s no és un nom de bus únic vàlid.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Error: no s'ha especificat el camí a l'objecte\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Error: no s'ha especificat el nom del senyal\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Error: el nom del senyal «%s» no és vàlid\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Error: %s no és un nom d'interfície vàlid\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Error: %s no és un nom de membre vàlid\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "S'ha produït un error en analitzar el paràmetre %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "S'ha produït un error en buidar la connexió: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Nom de destinació on invocar el mètode"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Camí a l'objecte on invocar el mètode"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Mètode i nom d'interfície"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Temps d'espera, en segons"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Permet l'autorització interactiva"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Invoca un mètode en un objecte remot."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Error: no s'ha especificat la destinació\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Error: %s no és un nom de bus vàlid\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Error: no s'ha especificat el nom del mètode\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Error: el nom del mètode «%s» no és vàlid\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "S'ha produït un error en analitzar el paràmetre %d del tipus «%s»: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "S'ha produït un error en afegir el gestor %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Nom de destinació a examinar"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Camí a l'objecte a examinar"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Imprimeix XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Examina el fill"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Només mostra les propietats"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Examina un objecte remot."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Nom de destinació al qual se li vol fer un seguiment"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Camí a l'objecte al qual se li vol fer un seguiment"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Fes el seguiment a un objecte remot."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr ""
"Error: no es pot fer un seguiment d'una connexió que no sigui de missatges "
"del bus\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Servei a activar abans d'esperar l'altre (nom conegut)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout"
" (default)"
@@ -1349,71 +1361,76 @@ msgstr ""
"Temps d'espera abans de sortir amb un error (segons); 0 si no voleu temps "
"d'espera (predeterminat)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPCIÓ...] NOM-DEL-BUS"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Espera que aparegui el nom del bus."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Error: no s'ha especificat el servei a activar.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Error: no s'ha especificat el servei a esperar.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Error: massa arguments.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Error: %s no és un nom de bus conegut vàlid.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "No esteu autoritzat a canviar la configuració de depuració"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5113
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Sense nom"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "El fitxer d'escriptori no especificava el camp d'execució"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "No s'ha pogut trobar el terminal que demanava l'aplicació"
-#: gio/gdesktopappinfo.c:3631
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "No s'ha trobat el programa «%s» a $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
"No s'ha pogut crear el directori de configuració de l'aplicació de l'usuari "
"%s: %s"
-#: gio/gdesktopappinfo.c:3635
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr ""
"No s'ha pogut crear el directori de configuració MIME de l'usuari %s: %s"
-#: gio/gdesktopappinfo.c:3877 gio/gdesktopappinfo.c:3901
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "A la informació d'aplicació li manca un identificador"
-#: gio/gdesktopappinfo.c:4137
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "No s'ha pogut crear el fitxer d'escriptori de l'usuari %s"
-#: gio/gdesktopappinfo.c:4273
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Definició personalitzada per a %s"
@@ -1485,81 +1502,85 @@ msgstr "S'esperava un GEmblem per a un GEmblemedIcon"
#. Translators: This is an error message when
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "No existeix el punt de muntatge contenidor"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "No es pot copiar al directori"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "No es pot copiar el directori al directori"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Ja existeix el fitxer de destinació"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "No es pot copiar el directori de forma recursiva"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "No es pot empalmar"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+msgid "Copy file range not supported"
+msgstr "No s'admet la còpia de fitxers amb interval"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "S'ha produït un error en empalmar el fitxer: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "No es pot empalmar"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr ""
"No està implementada la còpia (referències, clonacions) entre muntatges"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr ""
"No està implementada o no és vàlida la còpia (referències, clonacions)"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr ""
"No està implementada o no ha funcionat la còpia (referències, clonacions)"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "No es pot copiar el fitxer especial"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "El valor donat per a l'enllaç simbòlic no és vàlid"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "No es poden utilitzar els enllaços simbòlics"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "No es pot utilitzar la paperera"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "En els noms de fitxers no pot haver-hi «%c»"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "No s'ha pogut crear un directori temporal per a la plantilla «%s»: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "el volum no implementa el muntatge"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr ""
"No hi ha cap aplicació que s'hagi registrat per a gestionar aquest fitxer"
@@ -1569,11 +1590,11 @@ msgid "Enumerator is closed"
msgstr "L'enumerador està tancat"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "L'enumerador de fitxer té una operació pendent"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Ja està tancat l'enumerador de fitxer"
@@ -1586,27 +1607,27 @@ msgstr "No es pot gestionar la versió %d de la codificació del GFileIcon"
msgid "Malformed input data for GFileIcon"
msgstr "Les dades d'entrada pel GFileIcon no són formades correctament"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "El flux no implementa «query_info»"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "No està implementada la cerca en el flux"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "No es permet truncar en els fluxos d'entrada"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "No es permet truncar en els fluxos"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "El nom de l'ordinador no és vàlid"
@@ -1639,37 +1660,37 @@ msgstr "La resposta del servidor intermediari d'HTTP és massa gran"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "El servidor intermediari d'HTTP ha tancat la connexió inesperadament."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Nombre de testimonis erroni (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "El nom de classe %s no té tipus"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "El tipus %s no implementa la interfície GIcon"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "El tipus %s no té classe"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "El número de versió no és format correctament: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "El tipus %s no implementa «from_tokens()» a la interfície GIcon"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr ""
"No es pot gestionar la versió proporcionada de la codificació de la icona"
@@ -1711,7 +1732,7 @@ msgstr "El flux d'entrada no té implementada la lectura"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "El flux té una operació pendent"
@@ -1817,12 +1838,12 @@ msgid "Error writing to stdout"
msgstr "S'ha produït un error en escriure a la sortida estàndard"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "UBICACIÓ"
@@ -1840,8 +1861,8 @@ msgstr ""
"en comptes de fitxers locals: per exemple, podeu usar quelcom com ara\n"
"smb://servidor/recurs/fitxer.txt com a ubicació."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "No s'ha donat cap ubicació"
@@ -1939,57 +1960,64 @@ msgstr "No segueixis els enllaços simbòlics"
msgid "attributes:\n"
msgstr "atributs:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "nom que es mostra: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "edita el nom: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "nom: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "tipus: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "mida: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "ocult\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "camí local: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "unix mount: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Atributs que es poden establir:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Espais de nom d'atributs d'escriptura:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Mostra informació sobre ubicacions."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2055,11 +2083,11 @@ msgstr "Imprimeix els noms que es mostren"
msgid "Print full URIs"
msgstr "Mostra els URI complets"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Llista el contingut de les ubicacions."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2259,19 +2287,19 @@ msgstr "Munta un volum ocult TCRYPT"
msgid "Mount a TCRYPT system volume"
msgstr "Munta un volum de sistema TCRYPT"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "S'ha denegat l'accés anònim"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "No hi ha cap disc pel fitxer de dispositiu"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "No hi ha cap volum per a l'identificador donat"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Munta o desmunta les ubicacions."
@@ -2474,11 +2502,11 @@ msgstr "La ubicació indicada no comença amb trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Segueix els enllaços simbòlics, els punts de muntatge i les dreceres"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Llista el contingut dels directoris en un format d'arbre."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "No es permet posar l'element <%s> dins de <%s>"
@@ -2534,7 +2562,7 @@ msgstr "S'ha produït un error en comprimir el fitxer %s"
msgid "text may not appear inside <%s>"
msgstr "no pot haver-hi text dins de <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Mostra la versió del programa i surt"
@@ -2550,8 +2578,8 @@ msgstr ""
"Els directoris des d'on s'han de llegir els fitxers (per defecte és el "
"directori actual)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "DIRECTORI"
@@ -2609,7 +2637,7 @@ msgstr ""
msgid "The target C compiler (default: the CC environment variable)"
msgstr "El compilador C de destinació (per defecte: la variable d'entorn CC)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2619,124 +2647,124 @@ msgstr ""
"Els fitxers d'especificació de recursos tenen l'extensió .gresource.xml\n"
"i els fitxers de recursos tenen l'extensió .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Heu de donar un sol nom de fitxer\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "el nom ha de ser com a mínim de 2 caràcters"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "El valor numèric no és vàlid"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> ja s'ha especificat"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' ja s'ha especificat"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "els indicadors han de tenir com a mínim 1 bit establert"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> ha de contenir com a mínim un <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> no està en el rang especificat"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> no és un membre vàlid del tipus enumerat especificat"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> conté una cadena no especificada en el tipus d'indicadors"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> conté una cadena que no està a <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "el <range/> ja està especificat per a aquesta clau"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> no està permès per a claus del tipus «%s»"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "el mínim especificat per al <range> és major que el màxim"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "categoria de l10n no admesa: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n demanada, però no s'ha especificat un domini de gettext"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr ""
"s'ha especificat un context de traducció per al valor sense l10n habilitat"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "No s'ha pogut analitzar el valor <default> del tipus «%s»: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> no es pot especificar per als tipus etiquetats que contenen un "
"tipus enumerat"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> ja està especificat per a aquesta clau"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> no està permès per a claus del tipus «%s»"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "ja està especificat <choice value='%s'/>"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> ha de contenir com a mínim un <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> ja està especificat per a aquesta clau"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2744,7 +2772,7 @@ msgstr ""
"<alises> només es poden especificar per a claus amb tipus enumerats o "
"d'indicadors després de <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2753,44 +2781,44 @@ msgstr ""
"s'ha especificat <alias value='%s'/> quan «%s» ja és membre del tipus "
"enumerat"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"s'ha especificat <alias value='%s'/> quan <choice value='%s'/> ja s'havia "
"proporcionat"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "ja està especificat <alias value='%s'/>"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "l'àlies de destinació «%s» no està en el tipus enumerat"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "l'àlies de destinació «%s» no està a <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> ha de contenir com a mínim un <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "No es permet utilitzar noms buits"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr ""
"El nom «%s» no és vàlid: els noms han de començar amb una lletra minúscula"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2799,37 +2827,37 @@ msgstr ""
"El nom «%s» no és vàlid: el caràcter «%c» no és vàlid. Només es permeten "
"lletres minúscules, nombres i el guionet («-»)"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr ""
"El nom «%s» no és vàlid: no es poden posar dos guionets seguits («--»)"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "El nom «%s» no és vàlid: l'últim caràcter no pot ser un guionet («-»)"
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "El nom «%s» no és vàlid: la llargada màxima és de 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "ja està especificat <child name='%s'>"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "No es poden afegir claus a un esquema del tipus «list-of»"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "ja està especificat <key name='%s'>"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2838,7 +2866,7 @@ msgstr ""
"La <key name='%s'> emmascara la <key name='%s'> a <schema id='%s'>. "
"Utilitzeu <override> per a modificar-ne el valor"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2846,57 +2874,57 @@ msgid ""
msgstr ""
"L'atribut de la <key> ha de ser necessàriament «type», «enum» o «flags»"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "(encara) no s'ha definit <%s id='%s'>."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "El tipus de cadena GVariant «%s» no és vàlid"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "S'ha indicat <override> però l'esquema no està ampliant res"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "No hi ha cap <key name='%s'> a sobreescriure"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "ja s'ha especificat <override name='%s'>"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "ja s'ha especificat <schema id='%s'>"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "El <schema id='%s'> amplia l'esquema «%s» que encara no existeix"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr ""
"El <schema id='%s'> és una llista d'un esquema «%s» que encara no existeix"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "No pot ser una llista d'un esquema amb un camí"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "No es pot ampliar un esquema amb un camí"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2904,7 +2932,7 @@ msgstr ""
"El <schema id='%s'> és una llista i amplia el <schema id='%s'> que no és una"
" llista"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s”"
@@ -2913,17 +2941,17 @@ msgstr ""
"El <schema id='%s' list-of='%s'> amplia el <schema id='%s' list-of='%s'> "
"però «%s» no amplia «%s»"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "Si es dona un camí ha de començar i acabar amb una barra inclinada"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "El camí d'una llista ha d'acabar amb «:/»"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, "
@@ -2932,49 +2960,49 @@ msgstr ""
"Avís: l'esquema «%s» conté el camí «%s». Els camins que comencen amb "
"«/apps/», «/desktop/» o «/system/» estan obsolets."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "ja s'ha especificat <%s id='%s'>"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "No es permet posar l'element <%s> dins de <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "No es permet posar l'element <%s> al primer nivell"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "L'element <default> està requerit a <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "No pot haver-hi text dins de <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Avís: referència no definida a <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "S'ha especificat «--strict», se surt."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "S'ha ignorat el fitxer sencer."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "S'està ignorant aquest fitxer."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring"
@@ -2984,7 +3012,7 @@ msgstr ""
"sobreescriptura «%s»; s'ignora la sobreescriptura d'aquesta clau."
# c-format
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and "
@@ -2993,7 +3021,7 @@ msgstr ""
"No existeix la clau «%s» en l'esquema «%s» tal com especifica el fitxer de "
"sobreescriptura «%s» i s'ha especificat --strict; se surt."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema “%s” "
@@ -3003,7 +3031,7 @@ msgstr ""
" a l'esquema «%s» (fitxer de sobreescriptura «%s»); s'ignora la "
"sobreescriptura d'aquesta clau."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema “%s” "
@@ -3013,7 +3041,7 @@ msgstr ""
" a l'esquema «%s» (fitxer de sobreescriptura «%s») i s'ha especificat "
"--strict; se surt."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -3023,7 +3051,7 @@ msgstr ""
"especifica el fitxer de sobreescriptura «%s»: %s. S'ignora la "
"sobreescriptura d'aquesta clau."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -3033,7 +3061,7 @@ msgstr ""
"especifica el fitxer de sobreescriptura «%s»: %s. S'ha especificat --strict;"
" se surt."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3043,7 +3071,7 @@ msgstr ""
"sobreescriptura «%s» és fora de l'interval de l'esquema donat; s'ignora la "
"sobreescriptura d'aquesta clau."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3053,7 +3081,7 @@ msgstr ""
"sobreescriptura «%s» és fora de l'interval de l'esquema donat i s'ha "
"especificat --strict; se surt."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3063,7 +3091,7 @@ msgstr ""
"sobreescriptura «%s» no és a la llista de valors vàlids; s'ignora la "
"sobreescriptura d'aquesta clau."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3073,23 +3101,23 @@ msgstr ""
"sobreescriptura «%s» no és a la llista de valors vàlids i s'ha especificat "
"--strict; se surt."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "On desar el fitxer gschemas.compiled"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Interromp si hi ha cap error en els esquemes"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "No escriguis el fitxer gschema.compiled"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "No siguis estricte amb les restriccions dels noms de les claus"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3099,25 +3127,25 @@ msgstr ""
"Els fitxers d'esquema han de tenir l'extensió .gschema.xml\n"
"i el fitxer de memòria cau es dirà gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Heu de donar un sol nom de directori"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "No s'ha trobat cap fitxer d'esquemes: no es fa res."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr ""
"No s'ha trobat cap fitxer d'esquemes: suprimeix el fitxer de sortida actual."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "El nom del fitxer no és vàlid: %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr ""
@@ -3127,267 +3155,267 @@ msgstr ""
#. Translators: This is an error message when trying to find
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "No s'ha trobat el punt del muntatge pel fitxer %s"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "No es pot canviar el nom del directori arrel"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "S'ha produït un error en canviar el nom del fitxer %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "No es pot canviar el nom del fitxer, ja existeix aquest nom"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Nom de fitxer no vàlid"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "S'ha produït un error en obrir el fitxer %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "S'ha produït un error en suprimir el fitxer %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "S'ha produït un error en enviar a la paperera el fitxer %s: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "No s'ha pogut crear el directori de la paperera %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "No s'ha pogut trobar el directori superior per a la paperera %s"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
"No està implementat l'enviament a la paperera en muntatges interns del "
"sistema"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "No s'ha pogut trobar o crear el directori %s de la paperera per %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "No s'ha pogut crear el fitxer d'informació de la paperera per %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr ""
"No s'ha pogut enviar el fitxer %s a la paperera als límits del sistema de "
"fitxers"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "No s'ha pogut enviar el fitxer a la paperera %s: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "No s'ha pogut enviar el fitxer %s a la paperera"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "S'ha produït un error en crear el directori %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "El sistema de fitxers no implementa enllaços simbòlics"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "S'ha produït un error en fer l'enllaç simbòlic: %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "S'ha produït un error en moure el fitxer %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "No s'ha pogut moure el directori al directori"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Ha fallat la creació del fitxer de còpia de seguretat"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "S'ha produït un error en suprimir el fitxer objectiu: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "No està implementat moure entre muntatges"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "No s'han pogut determinar l'ús del disc de %s: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "El valor de l'atribut no pot ser nul"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Tipus d'atribut no vàlid (s'esperava una cadena o un no vàlid)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "El nom de l'atribut ampliat no és vàlid"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "S'ha produït un error en establir l'atribut ampliat «%s»: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (codificació no vàlida)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "S'ha produït un error en obtenir informació del fitxer «%s»: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr ""
"S'ha produït un error en obtenir informació del descriptor de fitxer: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Tipus d'atribut no vàlid (s'esperava un uint32)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Tipus d'atribut no vàlid (s'esperava un uint64)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Tipus d'atribut no vàlid (s'esperava una cadena de bytes)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "No es poden establir permisos en els enllaços simbòlics"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "S'ha produït un error en establir els permisos: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "S'ha produït un error en establir el propietari: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "l'enllaç simbòlic no pot ser nul"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "S'ha produït un error en establir l'enllaç simbòlic: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"S'ha produït un error en establir l'enllaç simbòlic: el fitxer no és un "
"enllaç simbòlic"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
"%d nanosegons addicionals per a la marca horària d'UNIX %lld és negatiu"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"%d nanosegons addicionals per a la marca horària d'UNIX %lld arriba al segon"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "La marca horària d'UNIX %lld no hi cap en 64 bits"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"La marca horària d'UNIX %lld és fora de l'interval suportat per Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "El valor «%s» no es pot convertir a UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "No es pot obrir el fitxer «%s»: error %lu del Windows"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
"S'ha produït un error en establir el temps de modificació o d'accés per al "
"fitxer: «%s»: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr ""
"S'ha produït un error en establir el temps de modificació o d'accés: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "El context del SELinux no pot ser nul"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "Aquest sistema no té habilitat el SELinux"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "S'ha produït un error en establir el context del SELinux: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "No està implementat establir l'atribut %s"
@@ -3436,13 +3464,13 @@ msgstr "S'ha produït un error en crear la còpia de seguretat: %s"
msgid "Error renaming temporary file: %s"
msgstr "S'ha produït un error en canviar el nom del fitxer temporal: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "S'ha produït un error en truncar el fitxer: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "S'ha produït un error en obrir el fitxer «%s»: %s"
@@ -3459,7 +3487,7 @@ msgstr "El fitxer objectiu no és un fitxer regular"
msgid "The file was externally modified"
msgstr "El fitxer ha estat modificat des d'alguna aplicació externa"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "S'ha produït un error en suprimir el fitxer vell: %s"
@@ -3593,43 +3621,43 @@ msgstr "La versió del NetworkManager és massa antiga"
msgid "Output stream doesn’t implement write"
msgstr "El flux de sortida no implementa l'escriptura"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "La suma de vectors donada a %s és massa gran"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "El flux font ja està tancat"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr ""
"S'ha produït un error no especificat la cerca del servidor intermediari"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "S'ha produït un error en resoldre «%s»: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "no s'ha implementat %s"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "El domini no és vàlid"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "No existeix el recurs a «%s»"
@@ -3639,16 +3667,16 @@ msgstr "No existeix el recurs a «%s»"
msgid "The resource at “%s” failed to decompress"
msgstr "No s'ha pogut descomprimir el recurs «%s»"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "No es pot canviar el nom dels fitxers de recursos"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "El recurs a «%s» no és un directori"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "El flux d'entrada no té implementada la cerca"
@@ -4015,7 +4043,8 @@ msgstr "El sòcol no és vàlid, ha fallat la inicialització a causa de: %s"
msgid "Socket is already closed"
msgstr "El sòcol ja és tancat"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "S'ha excedit el temps d'espera d'entrada/sortida del sòcol"
@@ -4024,163 +4053,163 @@ msgstr "S'ha excedit el temps d'espera d'entrada/sortida del sòcol"
msgid "creating GSocket from fd: %s"
msgstr "s'està creant un GSocket a partir del descriptor de fitxer: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "No s'ha pogut crear el sòcol: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "S'ha especificat una família desconeguda"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "S'ha especificat un protocol desconegut"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr ""
"No es poden realitzar operacions de datagrames a un sòcol que no és de "
"datagrama."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"No es poden realitzar operacions de datagrames a un sòcol que tingui un "
"temps d'espera màxim establert."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "no s'ha pogut obtenir l'adreça local: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "no s'ha pogut obtenir l'adreça remota: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "no s'ha pogut escoltar: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "S'ha produït un error en vincular-se a l'adreça %s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "S'ha produït un error en unir-se a un grup de multidestinació: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "S'ha produït un error en deixar un grup de multidestinació: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Encara no es pot fer multidestinació des d'un origen concret"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "La família del sòcol no és compatible"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "la font especificada no és una adreça IPv4"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "El nom de la interfície és massa llarg"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "No s'ha trobat la interfície: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Encara no es pot fer multidestinació en IPv4 des d'un origen concret"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Encara no es pot fer multidestinació en IPv6 des d'un origen concret"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "S'ha produït un error en acceptar la connexió: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Connexió en curs"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "No s'ha pogut obtenir l'error pendent: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "S'ha produït un error en rebre les dades: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "S'ha produït un error en enviar les dades: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "No s'ha pogut aturar el sòcol: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "S'ha produït un error en tancar el sòcol: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "S'està esperant la condició del sòcol: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "S'ha produït un error en enviar el missatge: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Els vectors del missatge són massa grans"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "S'ha produït un error en enviar el missatge: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "El GSocketControlMessage no està implementat a Windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "S'ha produït un error en rebre un missatge: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "No s'han pogut llegir les credencials del sòcol: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "aquest sistema operatiu no admet g_socket_get_credentials"
@@ -4313,7 +4342,7 @@ msgstr ""
msgid "Unknown SOCKSv5 proxy error."
msgstr "S'ha produït un error desconegut en el servidor intermediari SOCKSv5."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr ""
@@ -4329,48 +4358,48 @@ msgstr "Els conductes no són compatibles amb aquesta plataforma"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "No es pot gestionar la versió %d de la codificació del GThemedIcon"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "No s'ha trobat cap adreça vàlida"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "S'ha produït un error en resoldre a la inversa «%s»: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr ""
"S'ha produït un error en analitzar el registre de DNS %s: paquet DNS mal "
"format"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "No hi ha cap registre del tipus sol·licitat al DNS per «%s»"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "No s'ha pogut resoldre «%s» de forma temporal"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "S'ha produït un error en resoldre «%s»"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Paquet DNS mal format"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "No s'ha pogut analitzar la resposta DNS per a «%s»: "
@@ -4429,7 +4458,7 @@ msgstr "La contrasenya introduïda no és correcta."
msgid "Sending FD is not supported"
msgstr "L'enviament de FD no és compatible"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
@@ -4437,42 +4466,42 @@ msgstr[0] "S'esperava un missatge de control però se n'ha obtingut %d"
msgstr[1] "S'esperava un missatge de control però se n'han obtingut %d"
# FIXME
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Tipus de dades extres no esperades"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "S'esperava un descriptor de fitxer però se n'ha obtingut %d\n"
msgstr[1] "S'esperava un descriptor de fitxer però se n'han obtingut %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "S'ha rebut un descriptor de fitxer no vàlid"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "No s'admet la recepció de FD"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "S'ha produït un error en enviar les credencials: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr ""
"S'ha produït un error en la comprovació de si «SO_PASSCRED» és habilitat en "
"el sòcol: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "S'ha produït un error en habilitar «SO_PASSCRED»: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero "
"bytes"
@@ -4480,12 +4509,12 @@ msgstr ""
"S'esperava llegir un sol byte per a rebre les credencials però s'han llegit "
"zero bytes"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "No s'esperava un missatge de control però s'ha obtingut %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "S'ha produït un error en inhabilitar «SO_PASSCRED»: %s"
@@ -4501,7 +4530,7 @@ msgstr "S'ha produït un error en llegir del descriptor de fitxer: %s"
msgid "Error closing file descriptor: %s"
msgstr "S'ha produït un error en tancar el descriptor de fitxer: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Arrel del sistema de fitxers"
@@ -4583,134 +4612,129 @@ msgstr "Executa un servei de D-Bus"
msgid "Wrong args\n"
msgstr "Els arguments no són vàlids\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "No s'esperava l'atribut «%s» per a l'element «%s»"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "No s'ha trobat l'atribut «%s» de l'element «%s»"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "No s'esperava l'etiqueta «%s», s'esperava «%s»"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "No s'esperava l'etiqueta «%s» dins «%s»"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "La data/hora «%s» no és vàlida al fitxer d'adreces d'interès"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr ""
"No s'ha trobat cap fitxer d'adreces d'interès dins dels directoris de dades"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Ja existeix una adreça d'interès per a l'URI «%s»"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "No s'ha trobat cap adreça d'interès per a l'URI «%s»"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "No hi ha cap tipus MIME definit a l'adreça d'interès per a l'URI «%s»"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr ""
"No hi ha cap senyalador privat definit a l'adreça d'interès per a l'URI «%s»"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "No hi ha cap grup establert a l'adreça d'interès per a l'URI «%s»"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr ""
"No hi ha cap aplicació amb el nom «%s» que hagi registrat l'adreça d'interès"
" «%s»"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "No s'ha pogut ampliar la línia d'execució «%s» amb l'URI «%s»"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Caràcter no representable a l'entrada de la conversió"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Seqüència de caràcters parcial al final de l'entrada"
# FIXME: fallback
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "No es pot convertir el «fallback» «%s» al joc de codis «%s»"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "NUL byte incrustat a l'entrada de conversió"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "La seqüència de bytes a l'entrada de conversió no és vàlida"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "L'URI «%s» no és un URI absolut que utilitzi l'esquema «file»"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "Pot ser que l'URI del fitxer local «%s» no inclogui cap «#»"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "L'URI «%s» no és vàlid"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "El nom de l'ordinador de l'URI «%s» no és vàlid"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "L'URI «%s» conté caràcters d'escapada no vàlids"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "El nom de camí «%s» no és un camí absolut"
@@ -5130,87 +5154,87 @@ msgstr "p. m."
msgid "Error opening directory “%s”: %s"
msgstr "S'ha produït un error en obrir el directori «%s»: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "No s'han pogut assignar %lu byte per a llegir el fitxer «%s»"
msgstr[1] "No s'han pogut assignar %lu bytes per a llegir el fitxer «%s»"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "S'ha produït un error en llegir el fitxer «%s»: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "El fitxer «%s» és massa gran"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "No s'ha pogut llegir del fitxer «%s»: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "No s'ha pogut obrir el fitxer «%s»: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr ""
"No s'han pogut obtenir els atributs del fitxer «%s»: ha fallat la funció "
"fstat(): %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "No s'ha pogut obrir el fitxer «%s»: ha fallat la funció fdopen(): %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr ""
"No s'ha pogut canviar el nom del fitxer «%s» a «%s»: ha fallat la funció "
"g_rename(): %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr ""
"No s'ha pogut escriure el fitxer «%s»: ha fallat la funció write(): %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr ""
"No s'ha pogut escriure el fitxer «%s»: ha fallat la funció fsync(): %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "No s'ha pogut crear el fitxer «%s»: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr ""
"No s'ha pogut suprimir el fitxer existent «%s»: ha fallat la funció "
"g_unlink(): %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "La plantilla «%s» no és vàlida, no hauria de tenir cap «%s»"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "La plantilla «%s» no conté XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "No s'ha pogut llegir l'enllaç simbòlic «%s»: %s"
@@ -5237,16 +5261,16 @@ msgstr "El canal acaba en un caràcter parcial"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "No es pot fer una lectura bàsica a g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr ""
"No s'ha pogut trobar cap fitxer de claus vàlid als directoris de cerca"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "No és un fitxer regular"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5254,44 +5278,44 @@ msgstr ""
"El fitxer de claus conté la línia «%s» que no és una parella clau-valor, "
"grup o comentari"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "El nom del grup no és vàlid: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "El fitxer de claus no comença amb un grup"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "El nom de la clau no és vàlid: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "El fitxer de claus conté la codificació no implementada «%s»"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "El fitxer de claus no té el grup «%s»"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "El fitxer de claus no conté una clau «%s» en el grup «%s»"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
"El fitxer de claus conté la clau «%s» amb el valor «%s», que no és UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
@@ -5299,7 +5323,7 @@ msgstr ""
"El fitxer de claus conté la clau «%s», que té un valor que no es pot "
"interpretar."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5308,85 +5332,85 @@ msgstr ""
"El fitxer de claus conté la clau «%s» en el grup «%s», que té un valor que "
"no es pot interpretar."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr ""
"La clau «%s» en el grup «%s» té el valor «%s» però s'esperava el valor %s"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "El fitxer de claus conté un caràcter d'escapada al final de línia"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4378
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "El fitxer de claus conté la seqüència d'escapada no vàlida «%s»"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4530
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "El valor «%s» no es pot interpretar com un nombre."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4544
#, c-format
msgid "Integer value “%s” out of range"
msgstr "El valor enter «%s» és fora de l'interval"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "El valor «%s» no es pot interpretar com un nombre amb coma flotant."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4616
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "El valor «%s» no es pot interpretar com un booleà."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"No s'han pogut obtenir els atributs del fitxer «%s%s%s%s»: ha fallat la "
"funció fstat(): %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr ""
"No s'ha pogut mapar el fitxer «%s%s%s%s»: ha fallat la funció mmap(): %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "No s'ha pogut obrir el fitxer «%s»: ha fallat la funció open(): %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "S'ha produït un error a la línia %d caràcter %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "El nom conté caràcters UTF-8 no vàlids: «%s»"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "«%s» no és un nom vàlid"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "«%s» no és un nom vàlid: «%c»"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "S'ha produït un error a la línia %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5395,7 +5419,7 @@ msgstr ""
"No s'ha pogut analitzar «%-.*s»: hi hauria d'haver hagut un dígit dins un "
"caràcter de referència (per exemple &#234;). Potser el dígit és massa gran"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5405,24 +5429,24 @@ msgstr ""
"utilitzat un caràcter «&» sense intenció d'iniciar una entitat. Substituïu "
"el caràcter «&» per &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "El caràcter de referència «%-.*s» no codifica un caràcter permès"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"S'ha detectat una entitat buida «&;». Les entitats vàlides són: &amp; &quot;"
" &lt; &gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Es desconeix el nom d'entitat «%-.*s»"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5431,11 +5455,11 @@ msgstr ""
"«&» sense intenció d'iniciar una entitat. Substituïu el caràcter «&» per "
"&amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "El document ha de començar amb un element (p. ex. <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an"
@@ -5444,7 +5468,7 @@ msgstr ""
"«%s» no és un caràcter vàlid després d'un caràcter «<»: no pot començar un "
"nom d'element"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5453,12 +5477,12 @@ msgstr ""
"S'ha trobat un caràcter estrany: «%s». S'esperava el caràcter «>» per a "
"tancar l'etiqueta d'element buit «%s»"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Massa atributs en l'element «%s»"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5466,7 +5490,7 @@ msgstr ""
"S'ha trobat un caràcter estrany: «%s». S'esperava un «=» després del nom "
"d'atribut «%s» de l'element «%s»"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5477,7 +5501,7 @@ msgstr ""
"a finalitzar l'etiqueta d'inici de l'element «%s», o opcionalment un "
"atribut. Potser heu utilitzat un caràcter no vàlid en un nom d'atribut"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5486,7 +5510,7 @@ msgstr ""
"S'ha trobat un caràcter estrany: «%s». S'esperaven unes cometes d'obertura "
"després del signe «=» en donar valor a l'atribut «%s» de l'element «%s»"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5495,7 +5519,7 @@ msgstr ""
"«%s» no és un caràcter vàlid després dels caràcters «</»; «%s» no pot "
"iniciar un nom d'element"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5504,27 +5528,27 @@ msgstr ""
"«%s» no és un caràcter vàlid després del nom d'element de tancament «%s». El"
" caràcter permès és «>»"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "L'element «%s» estava tancat. Actualment no hi ha cap element obert"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "L'element «%s» estava tancat. L'element obert actualment és «%s»"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "El document era buit o només contenia espais en blanc"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr ""
"El document ha acabat de manera inesperada immediatament després del símbol "
"«<»"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5533,7 +5557,7 @@ msgstr ""
"El document ha acabat de manera inesperada amb elements que encara eren "
"oberts. «%s» era l'últim element obert"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5542,21 +5566,21 @@ msgstr ""
"El document ha acabat de manera inesperada. S'esperava trobar un símbol «>» "
"que acabés l'etiqueta <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "El document ha acabat de manera inesperada enmig d'un nom d'element"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "El document ha acabat de manera inesperada enmig d'un nom d'atribut"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr ""
"El document ha acabat de manera inesperada enmig d'una etiqueta d'obertura "
"d'un element."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5564,25 +5588,25 @@ msgstr ""
"El document ha acabat de manera inesperada després d'un signe d'igual "
"després d'un nom d'atribut. No hi ha cap valor d'atribut"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "El document ha acabat de manera inesperada enmig d'un valor d'atribut"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr ""
"El document ha acabat de manera inesperada enmig de l'etiqueta de tancament "
"de l'element «%s»"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"El document ha acabat de manera inesperada enmig de l'etiqueta de tancament "
"per un element no obert"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"El document ha acabat de manera inesperada enmig d'un comentari o d'una "
@@ -5647,189 +5671,185 @@ msgstr "Manca un argument per a %s"
msgid "Unknown option %s"
msgstr "Es desconeix l'opció %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "objecte malmès"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "no hi ha prou memòria"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "s'ha arribat al límit de tornades enrere"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "error intern"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr ""
"el patró conté elements que no estan implementats en les concordances "
"parcials"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"no s'ha implementat l'ús de referències anteriors per a coincidències "
"parcials"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "s'ha arribat al límit de recurrències"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "desplaçament incorrecte"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "bucle recursiu"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "es demana que el mode de coincidència però es va compilar per al JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "error desconegut"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ al final del patró"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c al final del patró"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "caràcter no reconegut després de \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "nombres fora de l'interval en el quantificador {}"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "nombre massa gran en el quantificador {}"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "falta el «]» per a la classe de caràcter"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "la seqüència d'escapada en la classe de caràcter no és vàlida"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "s'ha sortit de l'interval en la classe de caràcter"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "no hi ha res per a repetir"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "no es reconeix el caràcter després de «(?» o «(?-»"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr ""
"Només es permeten les classes amb nom de POSIX dins de la pròpia classe"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "No es poden utilitzar els elements d'ordenació de POSIX"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "falta un «)»"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "referència a un subpatró que no existeix"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "falta un «)» després del comentari"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "l'expressió regular és massa gran"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "el nombre o el nom no estan ben formats després de «(?(»"
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "l'asserció cap enrere no té llargada fixa"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "el grup condicional conté més de dues branques"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "s'esperava una asserció després de «(?(»"
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "les referències numerades no poden ser zero"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "nom de classe POSIX desconeguda"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "el valor del caràcter a la seqüència «\\x{...}» és massa gran"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "no es permet \\C en assercions cap enrere"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "falta la finalització en el nom del subpatró"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "dos noms de subpatró tenen el mateix nom"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "la seqüència «\\P» o «\\p» no està ben formada"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "es desconeix el nom de la propietat després de «\\P» o «\\p»"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "el nom del subpatró és massa llarg (32 caràcters com a màxim)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "hi ha massa subpatrons amb nom (màxim de 10.000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "el valor octal és més gran que \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "El grup «DEFINE» conté més d'una branca"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "opcions «NEWLINE» incoherents"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5837,120 +5857,120 @@ msgstr ""
"després de «\\g» no hi ha cap número o cap nom o número entre claudàtors, "
"claus angulars o cometes"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "no es permeten arguments per «(*ACCEPT)», «(*FAIL)» o «(*COMMIT)»"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "no es reconeix «(*VERB)»"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "el número és massa gran"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "falta el nom del subpatró després de (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "no s'accepten noms diferents per subpatrons del mateix número"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "«(*MARK)» ha de tenir un argument"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "després de «\\c» ha d'haver-hi un caràcter ASCII"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"després de «\\k» no hi ha cap nom entre claudàtors, claus angulars o cometes"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "no es pot utilitzar \\N en una classe"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "el nom és massa llarg a «(*MARK)«, «(*PRUNE)«, «(*SKIP)» o «(*THEN)»"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "desbordament del codi"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "no es reconeix el caràcter després de «(?P»"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "s'ha produït un desbordament en compilar l'espai de treball"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "no s'ha trobat el subpatró referenciat comprovat anteriorment"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "S'ha produït un error en fer coincidir l'expressió regular %s: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "La biblioteca PCRE no està compilada per a interpretar UTF-8"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "La biblioteca PCRE ha estat compilada amb opcions incompatibles"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr ""
"S'ha produït un error en compilar l'expressió regular «%s» al caràcter %s: "
"%s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "s'esperava un dígit hexadecimal o bé «}»"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "s'esperava un dígit hexadecimal"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "falta un «<» en la referència simbòlica"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "la referència simbòlica no està acabada"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "referència simbòlica de longitud zero"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "s'esperava un dígit"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "la referència simbòlica no és vàlida"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "«\\» final extraviat"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "no es reconeix la seqüència d'escapament"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr ""
@@ -5983,142 +6003,147 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "El text era buit (o només contenia espais en blanc)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "No s'han pogut llegir dades des del procés fill (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr ""
"S'ha produït un error no esperat en llegir dades des d'un procés fill (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "S'ha produït un error inesperat en waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "El procés fill ha sortit amb el codi %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "El senyal %ld ha matat el procés fill"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "El senyal %ld ha aturat el procés fill"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "El procés fill ha sortit inesperadament"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "No s'ha pogut llegir des del conducte fill (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "No s'ha pogut engendrar el procés fill «%s» (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "No s'ha pogut bifurcar (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "No s'ha pogut canviar al directori «%s» (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "No s'ha pogut executar el procés fill «%s» (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr ""
"No s'ha pogut obrir el fitxer per a tornar a assignar el descriptor de "
"fitxers (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr ""
"No s'ha pogut duplicar el descriptor de fitxers per al procés fill (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "No s'ha pogut bifurcar el procés fill (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "No s'ha pogut tancar el descriptor de fitxers per al procés fill (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "S'ha produït un error desconegut en executar el procés fill «%s»"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
"No s'han pogut llegir prou dades del conducte de l'identificador del procés "
"fill (%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Argument FDs d'origen no vàlid"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "No s'han pogut llegir dades del procés fill"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "No s'ha pogut executar el procés fill (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "No s'ha pogut dup() en el procés fill (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "El nom del programa no és vàlid: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "La cadena en el vector d'argument no és vàlida a %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Cadena no vàlida a l'entorn: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "El directori de treball no és vàlid: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "No s'ha pogut executar el programa d'ajuda (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6126,249 +6151,249 @@ msgstr ""
"S'ha produït un error inesperat a g_io_channel_win32_poll() en llegir dades "
"d'un procés fill"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "La cadena buida no és un número"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "«%s» no és un nombre amb signe"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "El número «%s» està fora de rangs [%s, %s]"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "«%s» no és un nombre sense signe"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "Codificació %-e no vàlida en l'URI"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Caràcters no UTF-8 en l'URI"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Caràcters no UTF-8 en l'URI"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Adreça IPv6 no vàlida «%.*s» en URI"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Adreça IP codificada incorrectament «%.*s» en URI"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Nom d'amfitrió internacionalitzat incorrectament «%.*s» a l'URI"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "No s'ha pogut analitzar el port «%.*s» en l'URI"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "El port «%.*s» de l'URI està fora de rang"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "L'URI «%s» no és un URI absolut"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "L'URI «%s» no té un component amfitrió"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "L'URI no és absolut i no s'ha proporcionat cap URI base"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Falta «=» i el valor del paràmetre"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "No s'ha pogut ubicar memòria"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "El caràcter és fora de l'interval d'UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Seqüència no vàlida a l'entrada de la conversió"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "El caràcter és fora de l'interval d'UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0
#. Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "byte"
msgstr[1] "bytes"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bit"
@@ -6376,7 +6401,7 @@ msgstr[1] "bits"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6385,7 +6410,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a
#. unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6394,7 +6419,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it
#. could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6405,14 +6430,14 @@ msgstr "%.1f"
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space
#. between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6420,14 +6445,14 @@ msgstr[0] "%s byte"
msgstr[1] "%s bytes"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s bit"
msgstr[1] "%s bits"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6441,39 +6466,45 @@ msgstr[1] "%u bytes"
#. * compatibility. Users will not see this string unless a program is using
#. this deprecated function.
#. * Please translate as literally as possible.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
+#~ msgid "GApplication options"
+#~ msgstr "Opcions de la GApplication"
+
#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "edita el nom: %s\n"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "Pot ser que l'URI del fitxer local «%s» no inclogui cap «#»"
+
+#~ msgid "backtracking limit reached"
+#~ msgstr "s'ha arribat al límit de tornades enrere"
#~ msgid "internal error or corrupted object"
#~ msgstr "error intern o objecte malmès"
diff --git a/po/cs.po b/po/cs.po
index 3663cdf34..77b9d8cdc 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -9,62 +9,63 @@
# Lukas Novotny <lukasnov@cvs.gnome.org>, 2006.
# Jakub Friedl <jfriedl@suse.cz>, 2006, 2007.
# Petr Kovar <pknbe@volny.cz>, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015.
-# Marek Černocký <marek@manet.cz>, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022.
+# Marek Černocký <marek@manet.cz>, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023.
+# Vojtěch Perník <translations@pervoj.cz>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-15 20:23+0000\n"
-"PO-Revision-Date: 2022-08-29 10:46+0200\n"
-"Last-Translator: Marek Černocký <marek@manet.cz>\n"
-"Language-Team: čeština <gnome-cs-list@gnome.org>\n"
+"POT-Creation-Date: 2023-09-16 21:53+0000\n"
+"PO-Revision-Date: 2023-09-17 14:58+0200\n"
+"Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n"
+"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Gtranslator 2.91.7\n"
+"X-Generator: Poedit 3.3.2\n"
"X-Project-Style: gnome\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Nastavení výchozích aplikací není podporováno"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Nastavení aplikace, jako poslední použité pro daný typ, není zatím "
"podporováno"
-#: gio/gappinfo.c:808
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "Selhalo vyhledání výchozí aplikace pro obsah typu „%s“"
-#: gio/gappinfo.c:868
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Selhalo vyhledání výchozí aplikace pro schéma URI „%s“"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "Volby GApplication"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "Volby GApplication:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Zobrazit volby GApplication"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
"Vstoupit do režimu služby GApplication (použít ze souborů služby D-Bus)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Přepsat ID aplikace"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Nahradit běžící instanci"
@@ -144,7 +145,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Identifikátor aplikace ve formátu D-Bus (např. org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "SOUBOR"
@@ -243,11 +244,11 @@ msgstr "nelze se připojit k D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "chyba při odesílání zprávy %s aplikaci: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "název aplikace musí následovat po ID aplikace\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -256,25 +257,25 @@ msgstr ""
"neplatný název akce: „%s“\n"
"názvy akcí mohou obsahovat pouze alfanumerické znaky, „-“ a „.“\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "chyba při analyzování parametru akce: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "akce podporují nanejvýš jeden parametr\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "S příkazem list-actions lze použít pouze ID aplikace"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "nelze nalézt soubor desktop pro aplikaci %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -284,9 +285,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "%s poskytnut příliš vysoký počet"
@@ -300,8 +301,8 @@ msgstr "Posouvání není v proudu podporováno"
msgid "Cannot truncate GBufferedInputStream"
msgstr "Nelze zkrátit GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Proud je již uzavřen"
@@ -309,7 +310,7 @@ msgstr "Proud je již uzavřen"
msgid "Truncate not supported on base stream"
msgstr "Zkrácování není v proudu podporováno"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -328,28 +329,28 @@ msgid "Not enough space in destination"
msgstr "Cíl nemá dostatek místa"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Neplatná posloupnost bajtů na vstupu převodu"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Chyba při převodu: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Zrušitelné spuštění není podporováno"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Převod ze znakové sady „%s“ do „%s“ není podporován"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Nelze otevřít převodník z „%s“ do „%s“"
@@ -392,17 +393,17 @@ msgstr "Změna přihlašovacích údajů na tomto OS není implementován"
msgid "Unexpected early end-of-stream"
msgstr "Neočekávaný časný konec proudu"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Nepodporovaný klíč „%s“ v záznamu s adresou „%s“"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Nesmyslná párová kombinace klíč/hodnota v záznamu s adresou „%s“"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -411,7 +412,7 @@ msgstr ""
"Adresa „%s“ je neplatná (je zapotřebí právě jeden z klíčů path, tmpdir nebo "
"abstract)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -531,7 +532,7 @@ msgstr "Chyba při spouštění příkazového řádku „%s“: "
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr "Nelze určit adresu sběrnice sezení (v tomto OS neimplementováno)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -540,7 +541,7 @@ msgstr ""
"Nelze určit adresu sběrnice z proměnné prostředí DBUS_STARTER_BUS_TYPE – "
"neznámá hodnota „%s“"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -548,7 +549,7 @@ msgstr ""
"Nelze určit adresu sběrnice, jelikož proměnná prostředí "
"DBUS_STARTER_BUS_TYPE není nastavena"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Neznámý typ sběrnice %d"
@@ -568,217 +569,229 @@ msgid ""
msgstr ""
"Vyčerpány všechny dostupné ověřovací mechanismy (pokusů: %s) (dostupných: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Neočekávaně chybí obsah při pokusu o přečtení bajtu"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "ID uživatele musí být stejné pro klienta i server"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Zrušeno přes GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Chyba při získávání informací pro složku „%s“: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr ""
"Oprávnění složky „%s“ mají chybný formát. Očekáván režim 0700, obdržen 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Chyba při vytváření složky %s: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Operace není podporována"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Chyba při otevírání klíčenky „%s“ ke čtení: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "Řádek %d klíčenky na „%s“ s obsahem „%s“ má chybný formát"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "První symbol řádku %d klíčenky na „%s“ s obsahem „%s“ má chybný formát"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "Druhý symbol řádku %d klíčenky na „%s“ s obsahem „%s“ má chybný formát"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Nenalezena cookie s id %d v klíčence na „%s“"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Chyba při vytváření zamykacího souboru „%s“: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Chyba při mazání zastaralého zamykacího souboru „%s“: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Chyba při zavírání (neodkazovaného) zamykacího souboru „%s“: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
-msgstr "Chyba mazámí zamykacího souboru „%s“: %s"
+msgstr "Chyba mazání zamykacího souboru „%s“: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Chyba při otevírání klíčenky „%s“ k zápisu: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Navíc selhalo také uvolnění zámku pro „%s“: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "Spojení bylo ukončeno"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Časový limit vypršel"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Nalezeny nepodporované příznaky při vytváření spojení na straně klienta"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"Rozhraní „org.freedesktop.DBus.Properties“ na objektu na cestě %s neexistuje"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Vlastnost „%s“ neexistuje"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Vlastnost „%s“ není ke čtení"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Vlastnost „%s“ není zapisovatelná"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Chyba při nastavování vlastnosti „%s“: Očekáván typ „%s“, ale obdržen „%s“"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Rozhraní „%s“ neexistuje"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Rozhraní „%s“na objektu na cestě %s neexistuje"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Metoda „%s“ neexistuje"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Typ zprávy „%s“ se neshoduje s očekávaným typem „%s“"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Objekt je již exportován pro prostředí %s na %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Nelze načíst vlastnost %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Nelze nastavit vlastnost %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Metoda „%s“ vrátila typ „%s“, ale očekáván byl „%s“"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Metoda „%s“ na rozhraní „%s“ s podpisem „%s“ neexistuje"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Podstrom je již exportován pro %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "V cestě „%s“ objekt neexistuje"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "typ je INVALID"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "Zpráva METHOD_CALL: pole se záhlavím PATH nebo MEMBER schází"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"Zpráva METHOD_CALL: pole se záhlavím PATH nebo MEMBER schází nebo je neplatné"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "Zpráva METHOD_RETURN: pole se záhlavím REPLY_SERIAL schází"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"Zpráva METHOD_RETURN: pole se záhlavím REPLY_SERIAL schází nebo je neplatné"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "Zpráva ERROR: pole se záhlavím REPLY_SERIAL nebo ERROR_NAME schází"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"Zpráva ERROR: pole se záhlavím REPLY_SERIAL nebo ERROR_NAME schází nebo je "
+"neplatné"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "Zpráva SIGNAL: pole se záhlavím PATH, INTERFACE nebo MEMBER schází"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"Zpráva SIGNAL: pole se záhlavím PATH, INTERFACE nebo MEMBER schází nebo je "
+"neplatné"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -786,7 +799,7 @@ msgstr ""
"Zpráva SIGNAL: pole se záhlavím PATH používá rezervovanou hodnotu /org/"
"freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -794,7 +807,7 @@ msgstr ""
"Zpráva SIGNAL: pole se záhlavím INTERFACE používá rezervovanou hodnotu org."
"freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
@@ -802,12 +815,12 @@ msgstr[0] "Zamýšlel se přečíst %lu bajt, ale obdrženo %lu"
msgstr[1] "Zamýšlely se přečíst %lu bajty, ale obdrženo %lu"
msgstr[2] "Zamýšlelo se přečíst %lu bajtů, ale obdrženo %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Očekáván bajt NULL za řetězcem „%s“, ale byl nalezen bajt %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -816,21 +829,21 @@ msgstr ""
"Očekáván platný řetězec UTF-8, ale byly nalezeny neplatné bajty na pozici %d "
"(délka řetězce je %d). Platný řetězec UTF-8 až do příslušného bodu byl „%s“"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Hodnota je zanořená příliš hluboko"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Analyzovaná hodnota „%s“ není platná cesta objektu D-Bus"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Analyzovaná hodnota „%s“ není platný podpis D-Bus"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -843,7 +856,7 @@ msgstr[1] ""
msgstr[2] ""
"Zjištěno pole o délce %u bajtů. Maximální délka je 2<<26 bajtů (64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -852,16 +865,16 @@ msgstr ""
"Vyskytlo se pole typu „a%c“, které by mělo mít délku v násobku %u bajtů, ale "
"skutečná délka je %u bajtů"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Prázdné struktury (n-tice) nejsou na sběrnici D-Bus dovoleny"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Analyzovaná hodnota „%s“ varianty není platným podpisem D-Bus"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -869,7 +882,7 @@ msgstr ""
"Chyba při rušení serializace GVariant s řetězcem typu „%s“ z přenosového "
"formátu D-Bus"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -878,27 +891,27 @@ msgstr ""
"Neplatná hodnota endianity. Očekávána 0x6c („l“) nebo 0x42 („B“), ale "
"nalezena hodnota 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Neplatná verze hlavního protokolu. Očekávána 1, ale nalezena %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Byla nalezena hlavička podpisu, ale není typu podpis"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Byla nalezena hlavička podpisu s podpisem „%s“, ale tělo zprávy je prázdné"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Analyzovaná hodnota „%s“ není platným podpisem D-Bus (pro tělo)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -906,11 +919,11 @@ msgstr[0] "Ve zprávě není hlavička s podpisem, ale tělo zprávy má %u bajt
msgstr[1] "Ve zprávě není hlavička s podpisem, ale tělo zprávy má %u bajty"
msgstr[2] "Ve zprávě není hlavička s podpisem, ale tělo zprávy má %u bajtů"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Nelze zrušit serializaci zprávy: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -918,75 +931,75 @@ msgstr ""
"Chyba při serializaci GVariant s řetězcem typu „%s“ do přenosového formátu D-"
"Bus"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
"Počet popisovačů souborů ve zprávě (%d) se liší od pole v hlavičce (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Nelze serializovat zprávu: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "Tělo zprávy má podpis „%s“, ale záhlaví s podpisem neexistuje"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
"“%s”"
msgstr "Tělo zprávy má podpis typu „%s“, ale podpis v poli se záhlavím je „%s“"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Tělo zprávy je prázdné, ale podpis v poli se záhlavím je „(%s)“"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Navrácena chyba s tělem typu „%s“"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Navrácena chyba s prázdným tělem"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Zmáčknutím libovolného znaku okno zavřete)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "Služba dbus sezení neběží a automatické spuštění selhalo"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Nelze získat profil hardwaru: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Nelze načíst %s: %s"
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Chyba při volání StartServiceByName pro %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Neočekávaná odpověď %d od metody StartServiceByName(„%s“)"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -995,25 +1008,25 @@ msgstr ""
"Metodu nelze vyvolat; proxy je na dobře známý název %s bez vlastníka a proxy "
"byla vytvořena s příznakem G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Abstraktní jmenný prostor není podporován"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Při vytváření serveru nelze určit soubor nonce"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Chyba při zápisu souboru nonce na „%s“: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Řetězec „%s“ není platné D-Bus GUID"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Nelze naslouchat na nepodporovaném přenosu „%s“"
@@ -1041,14 +1054,14 @@ msgstr ""
"\n"
"Nápovědu k jednotlivým příkazům získáte použitím „%s PŘÍKAZ --help“.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Chyba: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Chyba při analýze introspection XML: %s\n"
@@ -1058,49 +1071,49 @@ msgstr "Chyba při analýze introspection XML: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Chyba: %s není platným názvem\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Chyba: %s není platnou cestou objektu\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Připojit k systémové sběrnici"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Připojit ke sběrnici sezení"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Připojit k dané adrese D-Bus"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Volby koncového bodu spojení:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Volby určující koncový bod spojení"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Neurčen žádný koncový bod spojení"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Určeno více koncových bodů spojení"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "Varování: Podle introspektivních dat rozhraní „%s“ neexistuje\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1109,166 +1122,166 @@ msgstr ""
"Varování: Podle introspektivních dat metoda „%s“ neexistuje na rozhraní "
"„%s“\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Volitelný cíl signálu (jedinečný název)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Cesta objektu, na kterou se má vyslat signál"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Název signálu a rozhraní"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Vyslat signál."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Chyba při spojení: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Chyba: %s není platným jedinečným názvem sběrnice.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Chyba: Není určena žádná cesta k objektu\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Chyba: Není určen název signálu\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Chyba: Název signálu „%s“ je neplatný\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Chyba: %s není platným názvem rozhraní\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Chyba: %s není platným názvem členu\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Chyba při analyzování parametru %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Chyba při vyprazdňování spojení: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Název cíle, u kterého se má spustit metoda"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Cesta objektu, u kterého se má spustit metoda"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Název metody a rozhraní"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Časový limit v sekundách"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Povolit interaktivní autorizaci"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Spustit metodu na vzdáleném objektu."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Chyba: Není určen žádný cíl\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Chyba: %s není platným názvem sběrnice\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Chyba: Není určen název metody\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Chyba: Název metody „%s“ je neplatný\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Chyba při analyzování parametru %d typu „%s“: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Chyba při přidávání obsluhy %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Název cíle, u kterého provést introspection"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Cesta objektu, u které provést introspection"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Vypsat XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Provést introspection potomka"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Vypsat pouze vlastnosti"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Provést introspection vzdáleného objektu."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Název cíle určený ke sledování"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Cesta objektu určená ke sledování"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Sledovat vzdálený objekt."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Chyba: nelze monitorovat připojení na sběrnici bez zpráv\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr ""
"Služba, která se má aktivovat před čekáním na jinou službu (oficiálně známý "
"název)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1276,68 +1289,73 @@ msgstr ""
"Časové omezení čekaní, po kterém se skončí s chybou (v sekundách). 0 znamená "
"bez omezení (výchozí)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[PŘEPÍNAČ…] NÁZEV-SBĚRNICE"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Čekat, než se objeví název sběrnice."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Chyba: Musí být určena služba, pro kterou provádíte aktivaci.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Chyba: Musí být určena služba, na kterou čekáte.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Chyba: Příliš mnoho argumentů.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Chyba: %s není platným oficiálně známým názvem sběrnice.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Neautorizováno ke změnám ladicích nastavení"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5113
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Bez názvu"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "V souboru .desktop není určeno pole Exec"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Nezdařilo se najít terminál vyžadovaný pro aplikaci"
-#: gio/gdesktopappinfo.c:3631
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Program „%s“ nebyl nalezent v cestách podle $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Nezdařilo se vytvořit složku %s s uživatelským nastavením aplikace: %s"
-#: gio/gdesktopappinfo.c:3635
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Nezdařilo se vytvořit složku %s s uživatelským nastavením MIME: %s"
-#: gio/gdesktopappinfo.c:3877 gio/gdesktopappinfo.c:3901
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Informace o aplikaci postrádá identifikátor"
-#: gio/gdesktopappinfo.c:4137
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Nezdařilo se vytvořit uživatelský soubor .desktop %s"
-#: gio/gdesktopappinfo.c:4273
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Vlastní definice %s"
@@ -1406,79 +1424,84 @@ msgstr "Očekáváno GEmblem u GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Obsahující připojené neexistuje"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Nelze kopírovat nad složku"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Nelze kopírovat složku nad složku"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Cílový soubor existuje"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Složku nelze kopírovat rekurzivně"
-# For splice(), see http://en.wikipedia.org/w/index.php?title=Splice_(system_call)&oldid=334434835
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "splice() není podporováno"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Rozsah kopírování souborů není podporován"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Chyba při spojování souboru: %s"
-#: gio/gfile.c:3185
+# For splice(), see http://en.wikipedia.org/w/index.php?title=Splice_(system_call)&oldid=334434835
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "splice() není podporováno"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Kopírování (reflink/clone) mezi připojeními není podporováno"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Kopírování (reflink/clone) není podporováno nebo je neplatné"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Kopírování (reflink/clone) není podporováno nebo neproběhlo správně"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Nelze kopírovat zvláštní soubor"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Zadaný symbolický odkaz je neplatný"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Symbolické odkazy nejsou podporovány"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Zahozené není podporováno"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Názvy souborů nemohou obsahovat „%c“"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Selhalo vytvoření dočasné složky pro šablonu „%s“: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "svazek neumí připojení"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Žádná aplikace není zaregistrována k obsluze tohoto souboru"
@@ -1487,11 +1510,11 @@ msgid "Enumerator is closed"
msgstr "Enumerator je uzavřen"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Souborový enumerator má nevykonanou operaci"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Souborový enumerator je již uzavřen"
@@ -1504,27 +1527,27 @@ msgstr "Nelze zpracovat verzi %d kódování GFileIcon"
msgid "Malformed input data for GFileIcon"
msgstr "Chybná vstupní data u GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Datový proud nepodporuje query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Posouvání není v datovém proudu podporováno"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Oříznutí není možné ve vstupním datovém proudu"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Oříznutí není v datovém proudu podporováno"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Neplatný název počítače"
@@ -1557,37 +1580,37 @@ msgstr "Odpověď z HTTP proxy je příliš velká"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "Server HTTP proxy neočekávaně ukončil spojení."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Chybný počet tokenů (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Název třídy %s nemá typ"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Typ %s neimplementuje rozhraní GIcon"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Typ %s není mezi třídami"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Chybné číslo verze: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Typ %s neimplementuje from_tokens() v rozhraní GIcon"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Nelze zpracovat poskytnutou verzi kódování ikony"
@@ -1628,7 +1651,7 @@ msgstr "Vstupní datový proud neumí čtení"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Proud má otevřenou operaci"
@@ -1734,12 +1757,12 @@ msgid "Error writing to stdout"
msgstr "Chyba při zápisu do standardního výstupu"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "UMÍSTĚNÍ"
@@ -1757,8 +1780,8 @@ msgstr ""
"lokálních souborů používá umístění GIO: například můžete pro umístění\n"
"použít něco jako smb://server/cesta/soubor.txt"
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Nebylo zadáno žádné umístění"
@@ -1854,57 +1877,64 @@ msgstr "Nenásledovat symbolické odkazy"
msgid "attributes:\n"
msgstr "atributy:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "zobrazovaný název: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "název pro úpravy: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "název: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "typ: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "velikost: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "skrytý\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "adresa uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "místní cesta: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "připojené unixové svazky: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Nastavitelné atributy:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Jmenné prostory zapisovatelných atributů:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Zobrazit informace o umístění"
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1970,11 +2000,11 @@ msgstr "Vypisovat zobrazované názvy"
msgid "Print full URIs"
msgstr "Vypsat úplné adresy URI"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Vypsat obsahy umístění."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2169,19 +2199,19 @@ msgstr "Připojit skrytý svazek TCRYPT"
msgid "Mount a TCRYPT system volume"
msgstr "Připojit systémový svazek TCRYPT"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Anonymní přístup byl zamítnut"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Pro soubor zařízení není žádné médium"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Pro dané ID není žádný svazek"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Připojit nebo odpojit umístění."
@@ -2381,11 +2411,11 @@ msgstr "Zadané umístění nezačíná trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Následovat symbolické odkazy, připojení a zástupce."
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Vypsat obsah složek v podobě stromu."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Prvek <%s> není povolen uvnitř <%s>"
@@ -2442,7 +2472,7 @@ msgstr "Chyba při komprimaci souboru „%s“"
msgid "text may not appear inside <%s>"
msgstr "text nemůže být umístěn uvnitř <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Zobrazit verzi programu a skončit"
@@ -2458,8 +2488,8 @@ msgstr ""
"Složka, ze které mají být čteny soubory odkazované v SOUBOR (výchozí je "
"aktuální složka)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "SLOŽKA"
@@ -2515,7 +2545,7 @@ msgstr "Název identifikátoru C použitý ke generování zdrojového kódu"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "Kompilátor C pro cíl (výchozí: proměnná prostředí CC)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2525,122 +2555,122 @@ msgstr ""
"Soubory se specifikacemi prostředků musí mít příponu .gschema.xml,\n"
"a soubor prostředků musí mít příponu .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Měl by být zadán právě jeden název souboru\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "přezdívka musí mít nejméně 2 znaky"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Neplatná číselná hodnota"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> již bylo určeno"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' již bylo určeno"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "hodnoty příznaků musí mít nastavený alespoň 1 bit"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> musí obsahovat nejméně jednu <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> se nenachází v určeném rozsahu"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> není platným členem určeného výčtového typu"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> obsahuje řetězec, který není v určeném příznakovém typu"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> obsahuje řetězec, který není ve volbách <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> již bylo pro tento klíč určeno"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> není možné použít pro klíče typu „%s“"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "<range> určující minimum je větší než maximum"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "nepodporovaná kategorie l10n: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "je požadována l10n, ale není uvedena doména gettext"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "uveden překladový kontext pro hodnotu bez povolené l10n"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Selhalo zpracování hodnoty <default> pro typ „%s“: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> nelze uvést u klíčů, které jsou označené, že mají výčtový typ"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> již bylo pro tento klíč určeno"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> není možné použít pro klíče typu „%s“"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> již bylo uvedeno"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> musí nejméně jedenkrát obsahovat <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> již bylo pro tento klíč určeno"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2648,7 +2678,7 @@ msgstr ""
"<aliases> může být uvedeno jen pro klíče s výčtovým nebo příznakovým typem, "
"nebo za <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2656,42 +2686,42 @@ msgid ""
msgstr ""
"<alias value='%s'/> uvedeno ve chvíli, kdy „%s“ je již členem výčtového typu"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"<alias value='%s'/> uvedeno v chvíli, kdy je již zadáno <choice value='%s'/>"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> již bylo určeno"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "alias cíle „%s“ není ve výčtovém typu"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "alias cíle „%s“ není v <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> musí nejméně jedenkrát obsahovat <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Prázdné názvy nejsou povoleny"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Neplatný název „%s“: názvy musí začínat malým písmenem"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2700,37 +2730,37 @@ msgstr ""
"Neplatný název „%s“: neplatný znak „%c“; pouze malá písmena, číslice a "
"pomlčka („-“) jsou povoleny."
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr ""
"Neplatný název „%s“: dvě po sobě následující pomlčky („--“) nejsou povoleny."
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Neplatný název „%s“: posledním znakem nemůže být pomlčka („-“)."
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Neplatný název „%s“: maximální délka je 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> již bylo určeno"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Ke schématu „list-of“ nelze přidat klíče"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> již bylo určeno"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2739,7 +2769,7 @@ msgstr ""
"<key name='%s'> má přednost před <key name='%s'> v <schema id='%s'>; "
"použijte <override> ke změně hodnoty"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2748,63 +2778,63 @@ msgstr ""
"Právě jeden z „type“, „enum“ nebo „flags“ musí být vybrán jako atribut ke "
"klíči <key>"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> (zatím) nebylo určeno."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Neplatný řetězec typu GVariant „%s“"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "Zadáno <override>, ale schéma nic nerozšiřuje"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Neexistuje žádné <key name='%s'> k přepsání"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> již bylo určeno"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> již bylo určeno"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> rozšiřuje zatím neexistující schéma „%s“"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> je seznamem zatím neexistujícího schématu „%s“"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Nemůže být seznamem schématu s cestou"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Nemůže rozšířit schéma s cestou"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
"<schema id='%s'> je seznam rozšiřující <schema id='%s'>, což není seznam"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2813,17 +2843,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> rozšiřuje <schema id='%s' list-of='%s'>, ale "
"„%s“ nerozšiřuje „%s“"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "Cesta, je-li zadána, musí začínat a končit lomítkem"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Cesta seznamu musí končit „:/“"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2832,49 +2862,49 @@ msgstr ""
"Varování: Schéma „%s“ má cestu „%s“. Cesty začínající „/apps/“, „/desktop/“ "
"nebo „/system/“ jsou zavržené."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> již bylo určeno"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Uvnitř <%2$s> je povolen jen jeden prvek <%1$s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Prvek <%s> není povolen na nejvyšší úrovni"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "V prvku <key> je vyžadován prvek <default>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Text nemůže být umístěn uvnitř <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Varování: nedefinovaný odkaz na <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "Bylo zadáno --strict; ukončuje se."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Celý tento soubor byl ignorován."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Tento soubor se ignoruje."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2883,7 +2913,7 @@ msgstr ""
"Klíč „%s“ neexistuje ve schématu „%s“, jak bylo určeno v přepisovacím "
"souboru „%s“; přepisování bude pro tento klíč ignorováno."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2892,7 +2922,7 @@ msgstr ""
"Klíč „%s“ neexistuje ve schématu „%s“, jak bylo určeno v přepisovacím "
"souboru „%s“, a přitom bylo zadáno --strict; ukončuje se."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2902,7 +2932,7 @@ msgstr ""
"„%s“ ve schématu „%s“ (přepisovací soubor „%s“); přepisování bude pro tento "
"klíč ignorováno."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2912,7 +2942,7 @@ msgstr ""
"„%s“ ve schématu „%s“ (přepisovací soubor „%s“) a přitom bylo zadáno --"
"strict; ukončuje se."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2921,7 +2951,7 @@ msgstr ""
"Chyba při zpracování klíče „%s“ ve schématu „%s“, jenž je uveden v "
"přepisovacím souboru „%s“: %s. Přepisování bude pro tento klíč ignorováno."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2930,7 +2960,7 @@ msgstr ""
"Chyba při zpracování klíče „%s“ ve schématu „%s“, jenž je uveden v "
"přepisovacím souboru „%s“: %s. Přitom bylo zadáno --strict; ukončuje se."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2939,7 +2969,7 @@ msgstr ""
"Přepis pro klíč „%s“ ve schématu „%s“ v přepisovacím souboru „%s“ je mimo "
"rozsah zadaný ve schématu; přepisování bude pro tento klíč ignorováno."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2948,7 +2978,7 @@ msgstr ""
"Přepis pro klíč „%s“ ve schématu „%s“ v přepisovacím souboru „%s“ je mimo "
"rozsah zadaný ve schématu a přitom bylo zadáno --strict; ukončuje se."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2957,7 +2987,7 @@ msgstr ""
"Přepis pro klíč „%s“ ve schématu „%s“ v přepisovacím souboru „%s“ není v "
"seznamu platných možností; přepisování bude pro tento klíč ignorováno."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2966,23 +2996,23 @@ msgstr ""
"Přepis pro klíč „%s“ ve schématu „%s“ v přepisovacím souboru „%s“ není v "
"seznamu platných možností a přitom bylo zadáno --strict; ukončuje se."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Kam ukládat soubor gschemas.compiled"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Přerušit při libovolných chybách ve schématech"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Nezapisovat soubor gschema.compiled"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Nevynucovat omezení názvů klíče"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -2992,25 +3022,25 @@ msgstr ""
"Soubory schémat musí mít rozšíření .gschema.xml,\n"
"a soubor mezipaměti se jmenuje gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Měl by být zadán právě jeden název složky"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Žádné soubory schémat nenalezeny: nebude se nic dělat."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr ""
"Žádné soubory schémat nenalezeny: odstraněn existující výstupní soubor."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Neplatný název souboru %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Chyba při získávání informace o souborovém systému pro %s: %s"
@@ -3019,257 +3049,257 @@ msgstr "Chyba při získávání informace o souborovém systému pro %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Přípojení obsahující soubor %s nebylo nalezen"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Nelze přejmenovat kořenovou složku"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Chyba při přejmenovávání souboru %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Soubor nelze přejmenovat, název souboru již existuje"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Neplatný název souboru"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Chyba při otevírání souboru %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Chyba při odstraňování souboru %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Chyba při zahazování souboru %s do koše: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Nelze vytvořit složku koše %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Nezdařilo se najít složku nejvyšší úrovně pro vyhození %s"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
"Přesouvání do koše na svazku připojeném interně systémem není podporováno"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Nezdařilo se najít nebo vytvořit složku koše %s pro vyhození %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Nelze vytvořit informační soubor o koši pro %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Nelze zahodit soubor %s do koše mimo hranice souborového systému"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Nelze zahodit soubor %s do koše: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Nelze zahodit soubor %s do koše"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Chyba při vytváření složky %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Systém souborů nepodporuje symbolické odkazy"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Chyba při vytváření symbolického odkazu %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Chyba při přesunování souboru %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Složku nelze přesunout nad složku"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Vytvoření záložního souboru selhalo"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Chyba při odstraňování cílového souboru: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Přesunování mezi připojeními není podporováno"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Nelze zjistit využití disku %s: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Hodnota atributu nesmí být prázdná"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Neplatný typ atributu (očekávány typy řetězec nebo neplatné)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Neplatný název rozšířeného atributu"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Chyba při nastavování rozšířeného atributu „%s“: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (neplatné kódování)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Chyba při získávání informací pro soubor „%s“: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Chyba při získávání informací pro popisovače souboru: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Neplatný typ atributu (očekáván uint32)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Neplatný typ atributu (očekáván uint64)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Neplatný typ atributu (očekáván bajtový řetězec)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Nelze nastavit oprávnění na symbolických odkazech"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Chyba při nastavování oprávnění: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Chyba při nastavování vlastníka: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "symbolický odkaz nesmí být prázdný"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Chyba při nastavování symbolického odkazu: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"Chyba při nastavování symbolického odkazu: soubor není symbolickým odkazem"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Dodatečné nanosekundy %d pro UNIXové časové razítko %lld jsou záporné."
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"Dodatečné nanosekundy %d pro UNIXové časové razítko %lld dosáhly 1 sekundy."
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "UNIXové časové razítko %lld se nevleze do 64 bitů."
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "UNIXové časové razítko %lld je mimo rozsah podporovaný Windows."
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Název souboru „%s“ se nezdařilo převést do UTF-16."
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Soubor „%s“ se nezdařilo otevřít: chyba Windows %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "Chyba při nastavování času změny nebo přístupu u souboru „%s“: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Chyba při nastavování času změny nebo přístupu: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "Kontext SELinux nesmí být prázdný."
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "V tomto systému není SELinux povolen"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Chyba při nastavování kontextu SELinux: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Nastavení atributu %s není podporováno"
@@ -3316,13 +3346,13 @@ msgstr "Chyba při vytváření záložní kopie: %s"
msgid "Error renaming temporary file: %s"
msgstr "Chyba při přejmenovávání dočasného souboru: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Chyba při zkracování souboru: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Chyba při otevírání souboru %s: %s"
@@ -3339,7 +3369,7 @@ msgstr "Cílový soubor není obyčejným souborem"
msgid "The file was externally modified"
msgstr "Soubor byl externě pozměněn"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Chyba při odstraňování starého souboru: %s"
@@ -3471,42 +3501,42 @@ msgstr "NetworkManager je v příliš staré verzi"
msgid "Output stream doesn’t implement write"
msgstr "Výstupní datový proud neumí zápis"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Součet vektorů předaných do %s je příliš velký"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Zdrojový proud je již ukončen"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Blíže neurčené selhání vyhledávání v proxy"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Chyba při řešení „%s“: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "Funkce %s není implementovaná"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Neplatná doména"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Prostředek v „%s“ neexistuje"
@@ -3516,16 +3546,16 @@ msgstr "Prostředek v „%s“ neexistuje"
msgid "The resource at “%s” failed to decompress"
msgstr "Selhala dekomprimace prostředku v „%s“"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Nezdařilo se přejmenovat soubor s prostředky"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "Prostředek v „%s“ není složka"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Vstupní datový proud neumí přeskakování"
@@ -3891,7 +3921,8 @@ msgstr "Neplatný soket, spuštění selhalo kvůli: %s"
msgid "Socket is already closed"
msgstr "Soket je již ukončen"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1445
msgid "Socket I/O timed out"
msgstr "Časový limit V/V soketu vypršel"
@@ -3900,160 +3931,160 @@ msgstr "Časový limit V/V soketu vypršel"
msgid "creating GSocket from fd: %s"
msgstr "vytváří se GSocket z fd: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Nelze vytvořit soket: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Byla zadána neznámá rodina"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Byl zadán neznámý protokol"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "Nelze používat datagramové operace na nedatagramovém soketu."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Nelze používat datagramové operace na soketu s nastaveným časovým limitem."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "nezdařilo se získat místní adresu: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "nezdařilo se získat vzdálenou adresu: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "nezdařilo se naslouchání: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Chyba při navázání na adresu %s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Chyba připojování ke skupině hromadného vysílání: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Chyba při opouštění skupiny hromadného vysílání: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Není podpora pro hromadné vysílání určené zdrojem"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Nepodporovaná rodina soketů"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "určení zdroje není adresa IPv4"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Název rozhraní je příliš dlouhý"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Rozhraní nebylo nalezeno: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Není podpora pro hromadné vysílání určené zdrojem IPv4"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Není podpora pro hromadné vysílání určené zdrojem IPv6"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Chyba při přijímání spojení: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Probíhá spojení"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Nelze získat nevyřízenou chybu: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Chyba při získávání dat: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Chyba při odesílání dat: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Nelze ukončit soket: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Chyba při zavírání soketu: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Čeká se na stav soketu: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Nezdařilo se odeslat zprávu: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Vektory zprávy jsou příliš rozsáhlé"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Chyba při odesílání zprávy: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage nepodporováno na Windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Chyba při získávání zprávy: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Nelze číst pověření k soketu: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials není u tohoto OS implementováno"
@@ -4175,7 +4206,7 @@ msgstr "SOCKSv5 proxy nepodporuje poskytnutý typ adresy."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Neznámá chyba SOCKSv5 proxy."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "Selhalo vytvoření roury ke komunikaci s procesem potomka (%s)"
@@ -4190,46 +4221,46 @@ msgstr "Roury nejsou na této platformě podporovány"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Nelze zpracovat verzi %d kódování GThemedIcon"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Nebyly nalezeny žádné platné adresy"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Chyba při reverzním řešení „%s“: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Chyba při zpracování záznamu %s z DNS: poškozený paket DNS"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Záznam DNS požadovaného typu pro „%s“ neexistuje"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Dočasně není možné vyřešit „%s“"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Chyba při řešení „%s“"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Poškozený paket DNS"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Selhalo zpracování odpovědi DNS pro „%s“: "
@@ -4288,7 +4319,7 @@ msgstr "Zadané heslo není správné."
msgid "Sending FD is not supported"
msgstr "Odesílání popisovače souboru není podporováno"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
@@ -4296,11 +4327,11 @@ msgstr[0] "Očekávána 1 ovládací zpráva, získána %d"
msgstr[1] "Očekávána 1 ovládací zpráva, získány %d"
msgstr[2] "Očekávána 1 ovládací zpráva, získáno %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Neočekávaný typ pomocných dat"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
@@ -4308,41 +4339,41 @@ msgstr[0] "Očekáváno jedno fd, ale získána %d\n"
msgstr[1] "Očekáváno jedno fd, ale získány %d\n"
msgstr[2] "Očekáváno jedno fd, ale získáno %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Přijat neplatný popisovač souboru"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Přijímání popisovače souboru není podporováno"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Chyba při odesílání přihlašovacích údajů: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Chyba při kontrole, zda je SO_PASSCRED povoleno u soketu: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Chyba při povolování SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"U odeslání přihlašovacích údajů očekáváno přečtení jednoho bajtu, ale "
"přečteno nula bajtů"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Ovládací zpráva nebyla očekávána, ale obdrženo %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Chyba při zakazování SO_PASSCRED: %s"
@@ -4358,7 +4389,7 @@ msgstr "Chyba při čtení z popisovače souboru: %s"
msgid "Error closing file descriptor: %s"
msgstr "Chyba při zavírání popisovače souboru: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Kořen systému souborů"
@@ -4440,129 +4471,124 @@ msgstr "Spustit službu dbus"
msgid "Wrong args\n"
msgstr "Nesprávné argumenty\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Neočekávaný atribut „%s“ prvku „%s“"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Atribut „%s“ prvku „%s“ nebyl nalezen"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Neočekávaná značka „%s“, byla očekávána značka „%s“"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Neočekávaná značka „%s“ v „%s“"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Neplatné datum/čas „%s“ v souboru se záložkami"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "V datových složkách nebyl nalezen platný soubor záložek"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Záložka URI „%s“ již existuje"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Nebyla nalezena záložka URI „%s“"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "V záložce URI „%s“ není definován žádný typ MIME"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "V záložce URI „%s“ nebyl definován žádný soukromý příznak"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "V záložce URI „%s“ nejsou nastavené žádné skupiny"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Žádná aplikace s názvem „%s“ nezaregistrovala záložku „%s“"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Nelze rozšířit řádek exec „%s“ pomocí URI „%s“"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Nereprezentovatelný znak na vstupu převodu"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Částečná posloupnost znaků na konci vstupu"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Nelze převést zálohu „%s“ do znakové sady „%s“"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Vležený nulový bajt na vstupu převodu"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Vložený nulový bajt na výstupu převodu"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "Adresa URI „%s“ není absolutní URI používající schéma „file“"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "Adresa URI „%s“ místního souboru nesmí obsahovat „#“"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "Adresa URI „%s“ je neplatné"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Název počítače v adrese URI „%s“ je neplatný"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "URI „%s“ obsahuje nesprávně změněné znaky"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Název cesty „%s“ není absolutní cestou"
@@ -4991,7 +5017,7 @@ msgstr "odp."
msgid "Error opening directory “%s”: %s"
msgstr "Chyba při otevírání složky „%s“: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
@@ -4999,72 +5025,72 @@ msgstr[0] "Nelze alokovat %lu bajtů k přečtení souboru „%s“"
msgstr[1] "Nelze alokovat %lu bajty k přečtení souboru „%s“"
msgstr[2] "Nelze alokovat %lu bajtů k přečtení souboru „%s“"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Chyba čtení souboru „%s“: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Soubor „%s“ je příliš velký"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Chyba při čtení ze souboru „%s“: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Nelze otevřít soubor „%s“: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Nelze získat atributy souboru „%s“: funkce fstat() selhala: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Nelze otevřít soubor „%s“: funkce fdopen() selhala: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "Nelze přejmenovat soubor „%s“ na „%s“: funkce g_rename() selhala: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Nelze zapisovat do souboru „%s“: funkce write() selhala: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Nelze zapisovat do souboru „%s“: funkce fsync() selhala: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Nelze vytvořit soubor „%s“: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "Existující soubor „%s“ nelze odstranit: funkce g_unlink() selhala: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Šablona „%s“ je neplatná, neměla by obsahovat „%s“"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Šablona „%s“ neobsahuje XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Nelze přečíst symbolický odkaz „%s“: %s"
@@ -5090,15 +5116,15 @@ msgstr "Kanál ukončen částí znaku"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Nelze přímo číst v g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "V složkách hledání nelze najít platný soubor klíče"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Není obyčejným souborem"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5106,50 +5132,50 @@ msgstr ""
"Soubor klíče obsahuje „%s“, což není dvojice klíč-hodnota, skupina ani "
"komentář"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Neplatný název skupiny: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Soubor klíče nezačíná skupinou"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Neplatný název klíče: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Soubor klíče obsahuje nepodporované kódování „%s“"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Soubor klíče nemá skupinu „%s“"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Soubor klíče nemá klíč „%s“ ve skupině „%s“"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "Soubor klíče obsahuje klíč „%s“ s hodnotou „%s“, která není v UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr ""
"Soubor klíče obsahuje klíč „%s“, který má neinterpretovatelnou hodnotu."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5158,82 +5184,82 @@ msgstr ""
"Soubor klíče obsahuje klíč „%s“ ve skupině „%s“, který má "
"neinterpretovatelnou hodnotu."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Klíč „%s“ ve skupině „%s“ má hodnotu „%s“, když byla očekávána „%s“"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4357
msgid "Key file contains escape character at end of line"
msgstr "Soubor klíče obsahuje na konci řádku znak změny"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4394
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Soubor klíče obsahuje neplatnou únikovou sekvenci „%s“"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4545
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Hodnotu „%s“ nelze interpretovat jako číslo."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4559
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Celočíselná hodnota „%s“ je mimo rozsah"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4592
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Hodnotu „%s“ nelze interpretovat jako reálné (plovoucí) číslo."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4631
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Hodnotu „%s“ nelze interpretovat jako pravdivostní hodnotu."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"Selhalo získání atributů souboru „%s%s%s%s“: selhala funkce fstat(): %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Selhalo namapování „%s%s%s%s“: selhala funkce mmap(): %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Selhalo otevření souboru „%s“: selhala funkce open(): %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Chyba na řádku %d, znak %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "V názvu je neplatný text v kódování UTF-8 – platné není „%s“"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "„%s“ není platným názvem"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "„%s“ není platným názvem: „%c“"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Chyba na řádku %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5242,7 +5268,7 @@ msgstr ""
"Nelze zpracovat „%-.*s“, což by mělo být číslo v znakové entitě (například "
"&#234) – číslo je možná příliš velké"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5251,24 +5277,24 @@ msgstr ""
"Znaková entita nekončí středníkem; pravděpodobně jste použili znak & bez "
"úmyslu začít entitu – zapište prosím ligaturu et jako &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Znaková entita „%-.*s“ nekóduje povolený znak"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Nalezena prázdná entita „&;“, platnými entitami jsou: &amp; &quot; &lt; &gt; "
"&apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Název entity „%-.*s“ není znám"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5276,18 +5302,18 @@ msgstr ""
"Entita nekončí středníkem; pravděpodobně jste použili znak & bez úmyslu "
"začít entitu – zapište prosím ligaturu et jako &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Dokument musí začínat prvkem (například: <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
"element name"
msgstr "„%s“ není platný znak po znaku „<“; nesmí jím začínat název prvku"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5296,19 +5322,19 @@ msgstr ""
"Nezapadající znak „%s“, byl očekáván znak „>“ k ukončení značky empty-"
"element „%s“"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Příliš mnoho atributů v prvku „%s“"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
msgstr ""
"Nezapadající znak „%s“, po názvu atributu „%s“ prvku „%s“ bylo očekáváno „=“"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5319,7 +5345,7 @@ msgstr ""
"značky prvku „%s“, nebo případně atribut; pravděpodobně jste použili "
"neplatný znak v názvu atributu"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5328,7 +5354,7 @@ msgstr ""
"Nezapadající znak „%s“, po znaku rovnítka při udávání hodnoty atributu „%s“ "
"prvku „%s“ byly očekávány uvozovky"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5336,7 +5362,7 @@ msgid ""
msgstr ""
"„%s“ není platný znak po znacích „</“; znakem „%s“ nesmí začínat název prvku"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5345,25 +5371,25 @@ msgstr ""
"„%s“ není povoleným znakem po ukončovacím názvu prvku „%s“; povoleným znakem "
"je „>“"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Prvek „%s“ byl uzavřen, žádný prvek není momentálně otevřený"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "Prvek „%s“ byl uzavřen, ale aktuálně je otevřený prvek „%s“"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Dokument je prázdný nebo obsahuje pouze mezery"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "Dokument neočekávaně skončil ihned po otevírací značce „<“"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5372,7 +5398,7 @@ msgstr ""
"Dokument neočekávaně skončil s otevřenými prvky – poslední otevřený prvek "
"byl „%s“"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5380,19 +5406,19 @@ msgid ""
msgstr ""
"Dokument neočekávaně skončil, byla očekávána uzavírací závorka značky <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Dokument neočekávaně skončil uvnitř názvu prvku"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Dokument neočekávaně skončil uvnitř názvu atributu"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Dokument neočekávaně skončil ve značce otevírající prvek."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5400,22 +5426,22 @@ msgstr ""
"Dokument neočekávaně skončil po znaku přiřazení následujícím za názvem "
"atributu; chybí hodnota atributu"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Dokument neočekávaně skončil uvnitř hodnoty atributu"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "Dokument neočekávaně skončil uvnitř uzavírací značky prvku „%s“"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Dokument neočekávaně skončil uvnitř uzavírací značky neotevřeného prvku"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"Dokument neočekávaně skončil uvnitř komentáře nebo instrukce pro zpracování"
@@ -5481,185 +5507,181 @@ msgstr "Chybí parametr %s"
msgid "Unknown option %s"
msgstr "Neznámý přepínač %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "poškozený objekt"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "nedostatek paměti"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "dosažen limit zpětného vyhledávání"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "vnitřní chyba"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "vzorek obsahuje položky nepodporované u částečného porovnávání"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"zpětné odkazy coby podmínky nejsou podporované u částečného porovnávání"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "dosažen limit rekurze"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "chybný offset"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "rekurzivní smyčka"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "je požadován příslušný režim, který ale nebyl zkompilován pro JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "neznámá chyba"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ na konci vzorku"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c na konci vzorku"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "nerozpoznaný znak následuje po \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "čísla v {} quantifier nejsou v pořádku"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "číslo v {} quantifier je příliš vysoké"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "schází koncový znak ] znakové třídy"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "neplatná posloupnost pro změnu ve znakové třídě"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "rozsah ve znakové třídě není v pořádku"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "nic k opakování"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "nerozpoznaný znak po (? nebo (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "třídy nazvané po POSIX nejsou uvnitř třídy podporovány"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "Porovnávací prvky POSIX nejsou podporovány"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "schází koncový znak )"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "odkaz na neexistující podřazený vzorek"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "po komentáři schází znak )"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "regulární výraz je příliš dlouhý"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "nesprávně utvořené číslo nebo název po (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "zpětný výrok není pevné délky"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "podmínková skupina obsahuje více než dvě větve"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "po (?( očekáván výrok"
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "číslovaná reference nesmí být nula"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "neplatný název třídy POSIX"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "znaková hodnota v posloupnosti \\x{…} je příliš vysoká"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C není dovoleno ve zpětném výroku"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "schází ukončovací člen v názvu podřazeného vzorku"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "dva nazvané podřazené vzorky mají stejný název"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "chybně utvořená posloupnost \\P nebo \\p"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "neznámý název vlastnosti po \\P či \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "název podřazeného vzorku je příliš dlouhý (maximem je 32 znaků)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "příliš mnoho nazvaných podřazených vzorků (maximem je 10 000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "osmičková hodnota je větší než \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "skupina DEFINE obsahuje více než jednu větev"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "neslučitelné volby NEWLINE"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5667,118 +5689,118 @@ msgstr ""
"po \\g nenásleduje název nebo číslo ve složené nebo lomené závorce nebo v "
"uvozovkách, nebo nenulové číslo"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "argument není povolen u (*ACCEPT), (*FAIL) nebo (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) nerozpoznáno"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "číslo je příliš velké"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "schází název podřazeného vzorku po (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "rozdílné názvy podřazených vzorků stejného čísla nejsou povoleny"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) musí mít argument"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "po \\c nesmí následovat znak ASCII"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"po \\k nenásleduje název ve složené nebo lomné závorce nebo v uvozovkách"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N není podporováno ve třídě"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "název je příliš dlouhý v (*MARK), (*PRUNE), (*SKIP) nebo (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "přetečení kódu"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "nerozpoznaný znak pře (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "přetečení přijímaných informací překládaného pracovního prostoru"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "v předchozím kroku kontrolovaný odkazovaný podřazený vzorek nenalezen"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Chyba při porovnávání regulárního výrazu %s: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "Knihovna PCRE byla přeložena bez podpory UTF-8"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "Knihovna PCRE je přeložena s nekompatibilními volbami"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Chyba při kompilaci regulárního výrazu „%s“ na znaku %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "očekávána šestnáctková číslice nebo „}“"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "očekávána šestnáctková číslice"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "v symbolickém odkazu chybí „<“"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "neukončený symbolický odkaz"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "symbolický odkaz o nulové délce"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "očekávána číslice"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "nedovolený symbolický odkaz"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "osamocené koncové „\\“"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "neznámá úniková sekvence"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Chyba při zpracování náhradního textu „%s“ na znaku %lu: %s"
@@ -5808,362 +5830,367 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Text je prázdný (nebo obsahuje pouze mezery)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Nelze číst data z procesu potomka (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Neočekávaná chyba při čtení dat z procesu potomka (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Neočekávaná chyba v waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Proces potomka skončil s kódem %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Proces potomka byl zabit signálem %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Proces potomka byl zastaven signálem %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Proces potomka neskončil normálně"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Selhalo čtení z roury potomka (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Selhalo zplození procesu potomka „%s“ (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Selhalo rozvětvení procesu (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Selhal přechod do složky „%s“ (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Selhalo spuštění procesu potomka „%s“ (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Selhalo otevření souboru pro přemapování popisovače souboru (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Selhalo zduplikování popisovače souboru pro proces potomka (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Selhalo rozvětvení procesu potomka (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Selhalo zavření popisovače souboru pro proces potomka (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Neznámá chyba při běhu procesu potomka „%s“"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "Nezdařilo se přečíst dostatek dat z roury pid potomka (%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Neplatný argument se zdrojovými popisovači souborů"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Selhalo čtení dat z procesu potomka"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Selhalo spuštění procesu potomka (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Selhala funkce dup() v procesu potomka (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Neplatný název programu: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Neplatný řetězec v poli argumentů na %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Neplatný řetězec v prostředí: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Neplatná aktuální složka: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Nelze spustit pomocný program (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
msgstr ""
"Neočekávaná chyba v g_io_channel_win32_poll() při čtení dat z procesu potomka"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Prázdný řetězec není číslo"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "„%s“ není číslo se znaménkem"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Číslo „%s“ je mimo meze [%s, %s]"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "„%s“ není číslo bez znaménka"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "Neplatné kódování pomocí % v adrese URI"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Neplatný znak v adrese URI"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Znak mimo standard UTF-8 v adrese URI"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Neplatná adresa IPv6 „%.*s“ v adrese URI"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Neplatná zakódovaná adresa IP „%.*s“ v adrese URI"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Neplatná internacionalizace názvu hostitele „%.*s“ v adrese URI"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Nezdařilo se zpracovat port „%.*s“ v adrese URI"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Port „%.*s“ v adrese URI je mimo rozsah"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "Adresa URI „%s“ není absolutní"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "Adresa URI „%s“ nemá část s hostitelem"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "Adresa URI není absolutní a není poskytnuta žádná základní URI"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Schází „=“ a hodnota parametru"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Nelze alokovat paměť"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Znak je mimo rozsah UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Neplatná posloupnost na vstupu převodu"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Znak je mimo rozsah UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "bajt"
msgstr[1] "bajty"
msgstr[2] "bajtů"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bit"
@@ -6172,7 +6199,7 @@ msgstr[2] "bitů"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6180,7 +6207,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6188,7 +6215,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6197,14 +6224,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6213,7 +6240,7 @@ msgstr[1] "%s bajty"
msgstr[2] "%s bajtů"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
@@ -6221,7 +6248,7 @@ msgstr[0] "%s bit"
msgstr[1] "%s bity"
msgstr[2] "%s bitů"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6234,32 +6261,42 @@ msgstr[2] "%u bajtů"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
+
+#~ msgid "GApplication options"
+#~ msgstr "Volby GApplication"
+
+#, c-format
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "Adresa URI „%s“ místního souboru nesmí obsahovat „#“"
+
+#~ msgid "backtracking limit reached"
+#~ msgstr "dosažen limit zpětného vyhledávání"
diff --git a/po/da.po b/po/da.po
index c194f63ac..860c079d3 100644
--- a/po/da.po
+++ b/po/da.po
@@ -28,8 +28,8 @@ msgid ""
msgstr ""
"Project-Id-Version: glib master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-05 19:22+0000\n"
-"PO-Revision-Date: 2022-08-27 15:44+0200\n"
+"POT-Creation-Date: 2023-08-31 10:14+0000\n"
+"PO-Revision-Date: 2023-09-01 08:44+0200\n"
"Last-Translator: Alan Mortensen <alanmortensen.am@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
@@ -37,44 +37,44 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.3\n"
+"X-Generator: Poedit 3.0.1\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Indstilling af standardprogrammer understøttes endnu ikke"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Indstilling af program som det sidst brugte til typen understøttes endnu ikke"
-#: gio/gappinfo.c:808
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "Kunne ikke finde standardprogram til indholdstypen “%s”"
-#: gio/gappinfo.c:868
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Kunne ikke finde standardprogram til URI-skemaet “%s”"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "GApplication-indstillinger"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "GApplication-indstillinger:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Vis GApplication-indstillinger"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr "Indtast GApplication-tjenestetilstand (brug fra D-Bus-tjenestefiler)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Tilsidesæt programmets id"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Erstat den kørende instans"
@@ -154,7 +154,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Programidentifikator i D-Bus-format (f.eks. org.eksempel.fremviser)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FIL"
@@ -251,11 +251,11 @@ msgstr "kan ikke forbinde til D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "fejl ved afsendelse af meddelelse %s til program: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "der skal gives et handlingsnavn efter program-id\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -264,25 +264,25 @@ msgstr ""
"ugyldigt handlingsnavn: “%s”\n"
"handlingsnavne kan kun bestå af alfanumeriske tegn, “-” og “.”\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "fejl ved fortolkning af handlingsparameter: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "handlinger tager maksimalt en enkelt parameter\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "kommandoen list-actions tager kun program-id"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "kan ikke finde skrivebordsfil for programmet %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -292,9 +292,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "For stor talværdi givet til %s"
@@ -308,8 +308,8 @@ msgstr "Søgning understøttes ikke af basisstrømmen"
msgid "Cannot truncate GBufferedInputStream"
msgstr "Kan ikke afkorte GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Strømmen er allerede lukket"
@@ -317,7 +317,7 @@ msgstr "Strømmen er allerede lukket"
msgid "Truncate not supported on base stream"
msgstr "Afkortning understøttes ikke af basisstrømmen"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -336,28 +336,28 @@ msgid "Not enough space in destination"
msgstr "Ikke nok plads på destinationen"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Ugyldig bytesekvens i konverteringsinddata"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Fejl under konvertering: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Initialisering med mulighed for afbrydelse understøttes ikke"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Konvertering fra tegnsæt “%s” til “%s” er ikke understøttet"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Kunne ikke konvertere fra “%s” til “%s”"
@@ -400,17 +400,17 @@ msgstr "Falske akkreditiver er ikke mulige på dette operativsystem"
msgid "Unexpected early end-of-stream"
msgstr "Uventet tidlig strømafslutning"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Ikke-understøttet nøgle “%s” i adresseindgang “%s”"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Meningsløst nøgle-/værdikombination i adresseindgang “%s”"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -419,7 +419,7 @@ msgstr ""
"Adressen “%s” er ugyldig (kræver præcist en af nøglerne path, dir, tmpdir "
"eller abstract)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -546,7 +546,7 @@ msgstr ""
"Kan ikke bestemme sessionsbussens adresse (ikke implementeret for dette "
"operativsystem)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -555,7 +555,7 @@ msgstr ""
"Kan ikke bestemme busadressen fra miljøvariablen DBUS_STARTER_BUS_TYPE — "
"ukendt værdi “%s”"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -563,7 +563,7 @@ msgstr ""
"Kan ikke bestemme busadressen, da miljøvariablen DBUS_STARTER_BUS_TYPE ikke "
"er angivet"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Ukendt bustype %d"
@@ -584,20 +584,24 @@ msgstr ""
"Forsøgte alle tilgængelige godkendelsesmekanismer (forsøgt: %s) "
"(tilgængelige: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Uventet mangel på indhold ved forsøg på at læse en byte"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Bruger-id'er skal være de samme for peer og server"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Annulleret via GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Fejl ved indhentning af oplysninger for mappen “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -605,32 +609,32 @@ msgstr ""
"Rettigheder for mappen “%s” er fejlformateret. Forventede tilstanden 0700, "
"fandt 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Fejl ved oprettelse af mappen “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Operationen understøttes ikke"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Fejl ved åbning af nøgleringen “%s” til læsning: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "Linje %d i nøgleringen på “%s” med indholdet “%s” er fejlformateret"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -638,7 +642,7 @@ msgstr ""
"Første symbol i linje %d af nøgleringen på “%s” med indholdet “%s” er "
"fejlformateret"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -646,162 +650,171 @@ msgstr ""
"Andet symbol i linje %d af nøgleringen på “%s” med indholdet “%s” er "
"fejlformateret"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Fandt ingen cookie med id %d i nøgleringen på “%s”"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Fejl ved oprettelse af låsefil “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Fejl ved sletning af forældet låsefil “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Fejl ved lukning af låsefil (uden link) “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Fejl ved fjernelse af link til låsefil “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Fejl ved åbning af nøgleringen “%s” til skrivning: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Yderligere kunne låsen for “%s” ikke opgives: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "Forbindelsen er lukket"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Tiden løb ud"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Der blev fundet ikke-understøttede flag ved oprettelse af en forbindelse på "
"klientsiden"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"Ingen grænseflade “org.freedesktop.DBus.Properties” på objekt ved stien %s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Ingen sådan egenskab “%s”"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Egenskaben “%s” kan ikke læses"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Egenskaben “%s” er skrivebeskyttet"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Fejl ved anvendelse af egenskaben “%s”: Forventede typen “%s”, men fik “%s”"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Ingen sådan grænseflade “%s”"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Ingen sådan grænseflade “%s” på objektet ved stien %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Ingen sådan metode “%s”"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Beskedtypen “%s” er ikke den forventede type, “%s”"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Der er allerede eksporteret et objekt for grænsefladen %s på %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Kan ikke hente egenskaben %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Kan ikke sætte egenskaben %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Metoden “%s” returnerede typen “%s”, men forventede “%s”"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Metoden “%s” på grænsefladen “%s” med signatur “%s” findes ikke"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Der er allerede eksporteret et undertræ for %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Objektet findes ikke ved stien “%s”"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "typen er INVALID"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
msgstr ""
-"Meddelelse for METHOD_CALL: Et af teksthovederne PATH eller MEMBER mangler"
+"Meddelelse for METHOD_CALL: Et af teksthovederne PATH eller MEMBER mangler "
+"eller er ugyldigt"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "Meddelelse for METHOD_RETURN: Teksthovedet REPLY_SERIAL mangler"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"Meddelelse for METHOD_RETURN: Teksthovedet REPLY_SERIAL mangler eller er "
+"ugyldigt"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "FEJLmeddelelse: Teksthovedet REPLY_SERIAL eller ERROR_NAME mangler"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"FEJL-meddelelse: Teksthovedet REPLY_SERIAL eller ERROR_NAME mangler eller er "
+"ugyldigt"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "SIGNALmeddelelse: Teksthovedet PATH, INTERFACE eller MEMBER mangler"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"SIGNAL-meddelelse: Teksthovedet PATH, INTERFACE eller MEMBER mangler eller er "
+"ugyldigt"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -809,7 +822,7 @@ msgstr ""
"SIGNALmeddelelse: Teksthovedet PATH bruger den reserverede værdi /org/"
"freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -817,19 +830,19 @@ msgstr ""
"SIGNALbesked: Teksthovedet INTERFACE bruger den reserverede værdi org."
"freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "Ville læse %lu byte men fik kun %lu"
msgstr[1] "Ville læse %lu byte men fik kun %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Forventede NUL-byte efter strengen “%s”, men fandt byte %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -839,21 +852,21 @@ msgstr ""
"(strengens længde er %d). Den gyldige UTF-8-streng indtil dette punkt var "
"“%s”"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Værdien er for dybt indlejret"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Den fortolkede værdi “%s” er ikke en gyldig objektsti til D-Bus"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Fortolket værdi “%s” er ikke en gyldig D-Bus-signatur"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -866,7 +879,7 @@ msgstr[1] ""
"Stødte på et array med længde %u byte. Den maksimale længde er 2<<26 byte "
"(64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -875,16 +888,16 @@ msgstr ""
"Stødte på et array af typen “a%c”, som ventes at have en længde som er et "
"multiplum af %u byte, men som havde længde %u byte"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Tomme strukturer (tupler) er ikke tilladte i D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Fortolket værdi “%s” for variant er ikke en gyldig D-Bus-signatur"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -892,7 +905,7 @@ msgstr ""
"Fejl ved deserialisering af GVariant med type-streng “%s” fra D-Bus-wire-"
"formatet"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -901,38 +914,38 @@ msgstr ""
"Ugyldigt værdi for byterækkefølge (endianness). Forventede 0x6c (“l”) eller "
"0x42 (“B”), men fandt værdien 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Ugyldig hovedprotokolversion. Forventede 1 men fandt %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Signaturteksthoved fundet, men er ikke af typen signatur"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Signaturteksthoved med signaturen “%s” fundet, men beskedteksten er tom"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Fortolket værdi “%s” er ikke en gyldig D-Bus-signatur (for tekst)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
msgstr[0] "Intet signaturteksthoved i beskeden, men beskedteksten er %u byte"
msgstr[1] "Intet signaturteksthoved i beskeden, men beskedteksten er %u byte"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Kan ikke deserialisere besked: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -940,23 +953,23 @@ msgstr ""
"Fejl ved serialisering af GVariant med typestreng “%s” til D-Bus-wire-"
"formatet"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
"Antal fildeskriptorer i meddelelsen (%d) er forskelligt fra teksthovedet (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Kan ikke serialisere besked: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "Beskedteksten har signatur “%s”, men der er intet signaturteksthoved"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -964,53 +977,53 @@ msgid ""
msgstr ""
"Beskedteksten har typesignatur “%s”, men signaturen i teksthovedet er “%s”"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Beskedteksten er tom, men signaturen i teksthovedet er “(%s)”"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Fejlagtig returværdi med beskedtekst af typen “%s”"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Fejlagtig returværdi - tom beskedtekst"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Tryk på en tast for at lukke dette vindue)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "Sessions-dbus kører ikke, og autostart mislykkedes"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Kan ikke hente hardwareprofil: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Kan ikke indlæse %s eller %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Fejl ved kald til StartServiceByName for %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Uventet svar %d fra metoden StartServiceByName(“%s”)"
# Ved ikke helt hvad proxy dækker over her
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1019,25 +1032,25 @@ msgstr ""
"Kan ikke kalde metode; proxy er for et velkendt navn %s uden ejer, og proxy "
"blev konstrueret med flaget G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Abstrakt navnerum understøttes ikke"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Kan ikke angive “nonce”-fil ved oprettelse af server"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Fejl ved skrivning af “nonce”-fil i “%s”: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Strengen “%s” er ikke en gyldig D-Bus-GUID"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Kan ikke lytte på ikke-understøttet transport “%s”"
@@ -1065,14 +1078,14 @@ msgstr ""
"\n"
"Brug “%s KOMMANDO --help” for at få hjælp om hver kommando.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Fejl: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Fejl ved fortolkning af XML til introspektion: %s\n"
@@ -1082,49 +1095,49 @@ msgstr "Fejl ved fortolkning af XML til introspektion: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Fejl: %s er ikke et gyldigt navn\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Fejl: “%s” er ikke en gyldig objektsti\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Forbind til systembussen"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Forbind til sessionsbussen"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Forbind til den givne D-Bus-adresse"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Tilvalg for forbindelsesslutpunkt:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Tilvalg, der angiver forbindelsens slutpunkt"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Intet slutpunkt for forbindelsen angivet"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Flere slutpunkter for forbindelsen angivet"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "Advarsel: Grænsefladen “%s” findes ikke ifølge introspektionsdata\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1133,164 +1146,164 @@ msgstr ""
"Advarsel: Metoden “%s” findes ikke i grænsefladen “%s” ifølge "
"introspektionsdata\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Valgfri destination for signal (unikt navn)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Objektsti, der skal udsendes et signal fra"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Signal- og grænsefladenavn"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Udsend et signal."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Fejl ved forbindelse: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Fejl: “%s” er ikke et gyldigt unikt busnavn.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Fejl: Objektstien er ikke angivet\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Fejl: Signalnavnet er ikke angivet\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Fejl: Signalnavnet “%s” er ugyldigt\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Fejl: “%s” er ikke et gyldigt grænsefladenavn\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Fejl: “%s” er ikke et gyldigt medlemsnavn\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Fejl ved fortolkning af parameter %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Fejl ved tømning (flush) af forbindelse: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Destinationsnavnet, som metoden skal kaldes på"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Objektstien, som metoden skal kaldes på"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Metode- og grænsefladenavn"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Tidsudløb i sekunder"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Tillad interaktiv godkendelse"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Kald en metode på et fjernobjekt."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Fejl: Destinationen er ikke angivet\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Fejl: %s er ikke et gyldigt busnavn\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Fejl: Metodenavnet er ikke angivet\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Fejl: Metodenavnet “%s” er ugyldigt\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Fejl ved fortolkning af parameter %d af typen “%s”: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Fejl ved tilføjelse af håndtag: %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Destinationsnavnet, der skal introspiceres"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Objektstien, der skal introspiceres"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Udskriv XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Foretag introspektion af underelementer"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Vis kun egenskaber"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Introspicér et fjernobjekt."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Navn på destination, der skal overvåges"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Objektsti, der skal overvåges"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Overvåg et fjernobjekt."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Fejl: Kan ikke overvåge en ikke-meddelelsesbus-forbindelse\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Tjeneste som skal aktiveres, før den anden afventes (velkendt navn)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1298,68 +1311,73 @@ msgstr ""
"Ventetid før afslutning med fejl (sekunder); 0 for ingen tidsgrænse "
"(standard)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[TILVALG …] BUSNAVN"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Vent på at et busnavn fremkommer."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Fejl: Der skal angives en tjeneste at aktivere for.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Fejl: Der skal angives en tjeneste at vente på.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Fejl: For mange argumenter.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Fejl: %s er ikke et gyldigt velkendt busnavn.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Ikke godkendt til at ændre fejlsøgningsindstillinger"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5113
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Unavngivet"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Skrivebordsfil angav intet Exec-felt"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Kan ikke finde terminal krævet af dette program"
-#: gio/gdesktopappinfo.c:3631
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Programmet “%s” blev ikke fundet i $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Kan ikke oprette konfigurationsfolder %s for brugerprogram: %s"
-#: gio/gdesktopappinfo.c:3635
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Kan ikke oprette bruger-MIME-konfigurationsfolder %s: %s"
-#: gio/gdesktopappinfo.c:3877 gio/gdesktopappinfo.c:3901
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Programinformation mangler en identifikator"
-#: gio/gdesktopappinfo.c:4137
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Kan ikke oprette brugerskrivebords-fil %s"
-#: gio/gdesktopappinfo.c:4273
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Tilpasset definition for %s"
@@ -1428,79 +1446,84 @@ msgstr "Forventede et GEmblem til GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Indeholdende montering findes ikke"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Kan ikke kopiere over mappe"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Kan ikke kopiere mappe over mappe"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Målfilen findes"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Kan ikke kopiere mappe rekursivt"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "Splejsning understøttes ikke"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Filintervalskopiering understøttes ikke"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Fejl ved splejsning af fil: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Splejsning understøttes ikke"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Kopiering (reflink/klon) mellem monteringer understøttes ikke"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Kopiering (reflink/klon) er ikke understøttet eller ugyldigt"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Kopiering (reflink/klon) er ikke understøttet eller virkede ikke"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Kan ikke kopiere specialfil"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Ugyldig værdi givet for symlink"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Symbolske links er ikke understøttet"
# I koden er det en funktion der hedder g_file_trash, som kan give dette som en fejlmeddelelse
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Flyt til papirkurv understøttes ikke"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Filnavne må ikke indeholder “%c”"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Kunne ikke oprette en midlertidig mappe til skabelonen “%s”: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "diskenheden implementerer ikke montering"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Intet program er registreret til håndtering af denne fil"
@@ -1510,11 +1533,11 @@ msgstr "Optæller er lukket"
# udviklerkommentar ved tilsvarende streng andetsteds i filen forklarer dette
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Filoptæller arbejder stadig"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Filoptæller er allerede lukket"
@@ -1527,27 +1550,27 @@ msgstr "Kan ikke håndtere version %d af GFileIcon-kodning"
msgid "Malformed input data for GFileIcon"
msgstr "Fejlformateret inddata til GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Strømmen understøtter ikke query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Søgning understøttes ikke på strømmen"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Afkortning tillades ikke for inputstrømmen"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Afkortning understøttes ikke på strømmen"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Ugyldigt værtsnavn"
@@ -1580,38 +1603,38 @@ msgstr "HTTP-proxysvaret er for stort"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "HTTP-proxyserveren lukkede uventet forbindelsen."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Forkert antal tegn (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Ingen type til klassenavn %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Typen %s implementerer ikke GIcon-grænsefladen"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Typen %s har ingen klasse"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Fejlformateret versionsnummer %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr ""
"Typen %s implementerer ikke from_tokens(), som er del af GIcon-grænsefladen"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Kan ikke håndtere den givne version af ikonkodningen"
@@ -1652,7 +1675,7 @@ msgstr "Inputstrøm implementerer ikke læsning"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Strøm arbejder stadig"
@@ -1758,12 +1781,12 @@ msgid "Error writing to stdout"
msgstr "Fejl under skrivning til stdout"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "STED"
@@ -1781,8 +1804,8 @@ msgstr ""
"stedet for lokale filer. For eksempel kan du bruge noget i stil med\n"
"smb://server/ressource/fil.txt som sted."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Ingen steder givet"
@@ -1878,57 +1901,64 @@ msgstr "Følg ikke symbolske links"
msgid "attributes:\n"
msgstr "attributter:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "visningsnavn: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "redigeringsnavn: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "navn: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "type: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "størrelse: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "skjult\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "lokal sti: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "unix-montering: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Attributter som kan ændres:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Navnerum for attributter som kan ændres:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Vis oplysninger om steder."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1996,11 +2026,11 @@ msgstr "Vis skærmnavne"
msgid "Print full URIs"
msgstr "Vis fulde URI'er"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Vis stedernes indhold."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2199,19 +2229,19 @@ msgstr "Montér en skjult TCRYPT-diskenhed"
msgid "Mount a TCRYPT system volume"
msgstr "Montér en TCRYPT-systemdiskenhed"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Anonym adgang nægtet"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Intet drev for enhedsfilen"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Ingen diskenhed for givent id"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Montér eller afmontér stederne."
@@ -2413,11 +2443,11 @@ msgstr "Den angivne placering begynder ikke med trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Følg symbolske links, monteringer og genveje"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Vis indhold af mapper i et træagtigt format."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Elementet <%s> er ikke tilladt inden i <%s>"
@@ -2473,7 +2503,7 @@ msgstr "Fejl ved komprimering af filen %s"
msgid "text may not appear inside <%s>"
msgstr "der må ikke være tekst inden i <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Vis programversion og afslut"
@@ -2489,8 +2519,8 @@ msgstr ""
"Katalogerne hvorfra filer fra henvisninger i FIL læses (som standard det "
"nuværende katalog)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "KATALOG"
@@ -2545,7 +2575,7 @@ msgstr "C-identifikatornavn, der bruges til genereret kildekode"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "Mål-C-kompileren (standard: CC-miljøvariablen)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2555,125 +2585,125 @@ msgstr ""
"Ressourcespecifikationsfiler har filendelsen .gresource.xml,\n"
"og ressourcefilen har filendelsen .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Du skal angive præcist ét filnavn\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "kaldenavn (nick) skal være på mindst 2 tegn"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Ugyldig numerisk værdi"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> allerede angivet"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' allerede angivet"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "værdier til flag må højst have 1 bit sat"
# value eller værdi?
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> skal indeholde mindst én <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> indgår ikke i det givne interval"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> er ikke et gyldigt medlem af den angivne numererede type"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> indeholder en streng, som ikke tilhører den angivne flagtype"
# oversæt choices?
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> indeholder en streng, som ikke er blandt <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> er allerede angivet for denne nøgle"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> er ikke tilladt for nøgler af typen “%s”"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "<range>-minimum er større end maksimum"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "l10n-kategori ikke understøttet: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n blev forespurgt, men intet gettext-domæne givet"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "oversættelseskontekst givet for værdi uden at l10n er slået til"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Kunne ikke fortolke <default>-værdi for typen “%s”: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> kan ikke angives for nøgler, der er markeret som havende en "
"nummereret type"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> er allerede givet for denne nøgle"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> er ikke tilladt for nøgler af typen “%s”"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> er allerede givet"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> skal indeholde mindst én <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> er allerede angivet for denne nøgle"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2681,7 +2711,7 @@ msgstr ""
"<aliases> kan kun angives for nøgler af nummereret type eller flagtype, "
"eller efter <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2689,41 +2719,41 @@ msgid ""
msgstr ""
"<alias value='%s'/> givet mens “%s” allerede er medlem i nummereret type"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr "<alias value='%s'/> givet mens <choice value='%s'/> allerede var givet"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> er allerede givet"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "alias-målet “%s” er ikke en nummereret type"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "alias-målet “%s” er ikke i <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> skal indeholde mindst én <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Tomme navne er ikke tilladt"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Ugyldigt navn “%s”: Navne skal begynde med et lille bogstav"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2732,36 +2762,36 @@ msgstr ""
"Ugyldigt navn “%s”: ugyldigt tegn “%c”; kun små bogstaver, tal og bindestreg "
"(“-”) er tilladt"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "Ugyldigt navn “%s”: To bindestreger i træk (“--”) er ikke tilladt"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Ugyldigt navn “%s”: Sidste tegn må ikke være en bindestreg (“-”)"
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Ugyldigt navn “%s”: maksimale længde er 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> allerede angivet"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Kan ikke føje nøgler til et “list-of”-skema"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> allerede angivet"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2770,7 +2800,7 @@ msgstr ""
"<key name='%s'> overskygger <key name='%s'> i <schema id='%s'>; brug "
"<override> for at ændre værdi"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2779,57 +2809,57 @@ msgstr ""
"Præcist en af “type”, “enum” eller “flags” skal være angivet som attribut "
"for <key>"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> (endnu) ikke defineret."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Ugyldig typestreng “%s” for GVariant"
# override og extend bruges i forbindelse med nedarvning i forbindelse med objektorienteret programmering
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> givet, men skemaet nedarver ikke fra noget"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Ingen <key name='%s'> at overskrive"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> er allerede angivet"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> er allerede angivet"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> nedarver fra skemaet “%s”, som ikke findes endnu"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> er en liste for skemaet “%s”, som ikke findes endnu"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Kan ikke være en liste for et skema med en sti"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Kan ikke nedarve fra et skema med en sti"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2837,7 +2867,7 @@ msgstr ""
"<schema id='%s'> er en liste, der nedarver fra <schema id='%s'>, som ikke er "
"en liste"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2846,17 +2876,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> nedarver fra <schema id='%s' list-of='%s'>, "
"men “%s” nedarver ikke fra “%s”"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "En sti, hvis givet, skal starte og slutte med skråstreg"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Stien for en liste skal slutte med “:/”"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2865,49 +2895,49 @@ msgstr ""
"Advarsel: Skemaet “%s” har stien “%s”. Stier som begynder med “/apps/”, “/"
"desktop/” eller “/system/” er forældede."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> allerede angivet"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Kun ét <%s>-element er tilladt inden i <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Elementet <%s> er ikke tilladt i topniveau"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Elementet <default> er påkrævet i <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Der må ikke være tekst inden i <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Advarsel: udefineret reference til <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "--strict blev angivet; afslutter."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Hele denne fil er blevet ignoreret."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Ignorerer denne fil."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2916,7 +2946,7 @@ msgstr ""
"Ingen sådan nøgle “%s” i skemaet “%s” som angivet i overskrivningsfilen "
"“%s”; ignorerer overskrivning for denne nøgle."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2925,7 +2955,7 @@ msgstr ""
"Ingen sådan nøgle “%s” i skemaet “%s” som angivet i overskrivningsfilen "
"“%s”, og --strict var givet; afslutter."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2935,7 +2965,7 @@ msgstr ""
"skemaet “%s” (overskrivelsesfil “%s”); ignorerer overskrivning for denne "
"nøgle."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2944,7 +2974,7 @@ msgstr ""
"Kan ikke skrivebordsspecifikt overskrive den lokaliserede nøgle “%s” i "
"skemaet “%s” (overskrivelsesfil “%s”), og --strict var givet; afslutter."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2953,7 +2983,7 @@ msgstr ""
"Fejl ved fortolkning af nøglen “%s” i skemaet “%s” som givet i "
"overskrivningsfilen “%s”: %s. Ignorerer overskrivning for denne nøgle."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2962,7 +2992,7 @@ msgstr ""
"Fejl ved fortolkning af nøglen “%s” i skemaet “%s” som givet i "
"overskrivningsfilen “%s”: %s. --strict var givet; afslutter."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2972,7 +3002,7 @@ msgstr ""
"ikke i det interval, skemaet angiver; ignorerer overskrivning for denne "
"nøgle."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2981,7 +3011,7 @@ msgstr ""
"Overskrivning for nøglen “%s” i skemaet “%s” i overskrivningsfilen “%s” er "
"ikke i det interval, skemaet angiver, og --strict var givet; afslutter."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2991,7 +3021,7 @@ msgstr ""
"findes ikke i listen over gyldige valg; ignorerer overskrivning for denne "
"nøgle."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3000,23 +3030,23 @@ msgstr ""
"Overskrivning for nøglen “%s” i skemaet “%s” i overskrivningsfilen “%s” "
"findes ikke i listen over gyldige valg, og --strict var givet; afslutter."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Hvor filen gschemas.compiled skal lægges"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Afbryd ved enhver fejl i skemaer"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Skriv ikke filen gschema.compiled"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Gennemtving ikke begrænsninger på nøglenavn"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3026,24 +3056,24 @@ msgstr ""
"Schemafiler skal have filendelsen .gschema.xml,\n"
"og mellemlagerfilen kaldes gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Du skal give præcist et katalognavn"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Ingen skemafiler fundet: Gør intet."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "Ingen skemafiler fundet: fjernede eksisterende uddatafil."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Ugyldigt filnavn %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Fejl ved hentning af filsysteminfo for %s: %s"
@@ -3052,258 +3082,258 @@ msgstr "Fejl ved hentning af filsysteminfo for %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Indeholdende montering for filen %s blev ikke fundet"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Kan ikke omdøbe rodmappen"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Fejl ved omdøbning af filen %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Kan ikke omdøbe fil, da filnavnet allerede findes"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Ugyldigt filnavn"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Fejl ved åbning af filen %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Fejl under fjernelse af filen %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Fejl ved flytning af filen %s til papirkurv: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Kan ikke oprette papirkurvskatalog %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Kan ikke finde topniveau-katalog til papirkurv %s"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Papirkurv understøttes ikke på interne systemmonteringer"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Kan ikke finde eller oprette papirkurvskatalog %s til papirkurv %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Kan ikke oprette papirkurvs-infofil for %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Kan ikke smide filen %s ud på andet filsystem"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Kan ikke smide filen %s ud: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Kan ikke smide filen %s ud"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Fejl ved oprettelse af mappen %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Filsystemet understøtter ikke symbolske links"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Fejl under oprettelse af symbolsk link %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Fejl ved flytning af filen %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Kan ikke flytte mappe over mappe"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Oprettelse af sikkerhedskopi mislykkedes"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Fejl ved fjernelse af målfil: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Flytning mellem monteringer understøttes ikke"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Kunne ikke bestemme diskforbruget af %s: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Attributværdien må ikke være NULL"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Ugyldig attributtype (streng eller ugyldig forventet)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Ugyldigt udvidet attributnavn"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Fejl ved indstilling af udvidet attribut “%s”: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (ugyldig kodning)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Fejl ved indhentning af oplysninger om filen “%s”: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Fejl ved indhentning af oplysninger om fildeskriptor: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Ugyldig attributtype (uint32 forventet)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Ugyldig attributtype (uint64 forventet)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Ugyldig attributtype (byte-streng forventet)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Kan ikke ændre rettigheder på symlinks"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Fejl ved ændring af rettigheder: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Fejl ved ændring af ejer: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "symlink må ikke være NULL"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Fejl ved manipulation af symlink: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "Fejl ved manipulation af symlink: filen er ikke et symlink"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Antal ekstra nanosekunder %d for UNIX-tidsstempel %lld er negativt"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"Antal ekstra nanosekunder %d for UNIX-tidsstempel %lld når op på 1 sekund"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "UNIX-tidsstempel %lld passer ikke ind i 64 bit"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"UNIX-tidsstempel %lld ligger uden for intervallet, som understøttes af "
"Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Filnavnet “%s” kan ikke konverteres til UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Filen “%s” kan ikke åbnes: Windowsfejl %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
"Fejl ved ændring af tidspunkt for ændring eller tilgang for filen “%s”: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Fejl ved ændring af tidspunkt for ændring eller tilgang: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "SELinux-kontekst skal være forskellig fra NULL"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux er ikke aktiveret på dette system"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Fejl ved ændring af SELinux-kontekst: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Indstilling af attributten %s understøttes ikke"
@@ -3350,13 +3380,13 @@ msgstr "Fejl under oprettelse af sikkerhedskopi: %s"
msgid "Error renaming temporary file: %s"
msgstr "Fejl under omdøbning af midlertidig fil: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Fejl ved afkortning af filen: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Fejl ved åbning af filen “%s”: %s"
@@ -3373,7 +3403,7 @@ msgstr "Målfilen er ikke en almindelig fil"
msgid "The file was externally modified"
msgstr "Filen blev ændret eksternt"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Fejl under fjernelse af gammel fil: %s"
@@ -3506,42 +3536,42 @@ msgstr "Versionen af NetværksHåndtering er for gammel"
msgid "Output stream doesn’t implement write"
msgstr "Uddatastrøm implementerer ikke write"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Summen af vektorer givet til %s er for stor"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Kildestrømmen er allerede lukket"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Uspecificeret fejl under opslag af proxy"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Fejl ved opløsning af “%s”: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s er ikke implementeret"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Ugyldigt domæne"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Ressourcen på “%s” findes ikke"
@@ -3551,16 +3581,16 @@ msgstr "Ressourcen på “%s” findes ikke"
msgid "The resource at “%s” failed to decompress"
msgstr "Ressourcen på “%s” kunne ikke udpakkes"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Ressourcefiler kan ikke omdøbes"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "Ressourcen i “%s” er ikke et katalog"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Inputstrømmen implementerer ikke søgning"
@@ -3925,7 +3955,8 @@ msgstr "Ugyldig sokkel, initialisering mislykkedes på grund af: %s"
msgid "Socket is already closed"
msgstr "Soklen er allerede lukket"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "Tidsudløb for sokkel-I/O"
@@ -3934,159 +3965,159 @@ msgstr "Tidsudløb for sokkel-I/O"
msgid "creating GSocket from fd: %s"
msgstr "opretter GSocket fra fd: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Kan ikke oprette sokkel: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Der blev angivet en ukendt familie"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Der blev angivet en ukendt protokol"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "Kan ikke bruge datagramoperationer på en ikke-datagram-sokkel."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr "Kan ikke bruge datagramoperationer på en sokkel med angivet udløbstid."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "kunne ikke finde lokal adresse: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "kunne ikke finde fjern adresse: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "kunne ikke lytte: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Fejl ved binding til adresse %s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Fejl ved deltagelse i multicastgruppe: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Fejl ved fratræden fra multicastgruppe: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Ingen understøttelse for kildespecifik multicast"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Sokkelfamilie understøttes ikke"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "kildespecifik er ikke en IPv4-adresse"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Grænsefladenavnet er for langt"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Grænseflade ikke fundet: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Ingen understøttelse for kildespecifik multicast med IPv4"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Ingen understøttelse for kildespecifik multicast med IPv6"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Fejl ved accept af forbindelse: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Forbinder"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Kan ikke hente verserende fejl: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Fejl ved modtagelse af data: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Fejl ved afsendelse af data: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Kan ikke nedlukke sokkel: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Fejl ved lukning af sokkel: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Venter på sokkelbetingelse: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Kan ikke sende meddelelse: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Meddelelsesvektorer er for store"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Fejl ved afsendelse af meddelelse: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage understøttes ikke af Windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Fejl ved modtagelse af meddelelse: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Kan ikke læse sokkelakkreditiver: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials ikke implementeret på dette operativsystem"
@@ -4208,7 +4239,7 @@ msgstr "SOCKSv5-proxy understøtter ikke den givne adressetype."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Ukendt SOCKSv5-proxyfejl."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "Fejl under oprettelse af kommunikationskanal til underproces (%s)"
@@ -4223,46 +4254,46 @@ msgstr "Kanaler understøttes ikke på denne platform"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Kan ikke håndtere version %d af GThemedIcon-kodningen"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Der blev ikke fundet nogen gyldige adresser"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Fejl ved baglæns opløsning af “%s”: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Fejl ved fortolkning af DNS-post %s: fejlformateret DNS-pakke"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Ingen DNS-post af den forespurgte type for “%s”"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Midlertidigt ude af stand til at opløse “%s”"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Fejl ved opløsning af “%s”"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Fejlformateret DNS-pakke"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Kunne ikke fortolke DNS-svar for “%s”: "
@@ -4322,59 +4353,59 @@ msgstr "Den indtastede adgangskode er forkert."
msgid "Sending FD is not supported"
msgstr "Afsendelse af FD understøttes ikke"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "Forventede én kontrolmeddelelse, men fik %d"
msgstr[1] "Forventede én kontrolmeddelelse, men fik %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Uventet type af supplerende data"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "Forventede én fd, men fik %d\n"
msgstr[1] "Forventede én fd, men fik %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Modtog ugyldig fd"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Modtagelse af FD understøttes ikke"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Fejl ved afsendelse af akkreditiver: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Fejl ved kontrol af om SO_PASSCRED er slået til for sokkel: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Fejl ved aktivering af SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Forventede at læse en enkelt byte for at modtage akkreditiver, men læste nul "
"byte"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Forventer ikke kontrolmeddelelse, men modtog %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Fejl ved deaktivering af SO_PASSCRED: %s"
@@ -4390,7 +4421,7 @@ msgstr "Fejl ved læsning fra fildeskriptor: %s"
msgid "Error closing file descriptor: %s"
msgstr "Fejl ved lukning af fildeskriptor: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Filsystemets rod"
@@ -4474,129 +4505,124 @@ msgstr "Kør en dbus-tjeneste"
msgid "Wrong args\n"
msgstr "Forkerte argumenter\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Uventet attribut “%s” for elementet “%s”"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Attributten “%s” for elementet “%s” blev ikke fundet"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Uventet mærke “%s”, forventede mærket “%s”"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Uventet mærke “%s” inden i “%s”"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Ugyldig dato/klokkeslæt “%s” i bogmærkefil"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Ingen gyldig bogmærkefil blev fundet i datakatalogerne"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Et bogmærke for URI'en “%s” findes allerede"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Der blev intet bogmærke fundet for URI'en “%s”"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Ingen MIME-type er defineret i bogmærket for URI'en “%s”"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Intet privat flag er defineret i bogmærket for URI'en “%s”"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "Ingen grupper er sat i bogmærket for URI'en “%s”"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Intet program med navnet “%s” har registreret et bogmærke for “%s”"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Kunne ikke udvide eksekveringslinjen “%s” med URI'en “%s”"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Konverteringsinddata indeholder et tegn, som ikke kan repræsenteres"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Delvis tegnsekvens ved slutningen af inddata"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Kan ikke konvertere tilbagefaldet “%s” til tegnsæt “%s”"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Indlejret NUL-byte i konverteringsinddata"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Indlejret NUL-byte i konverteringsuddata"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "URI'en “%s” er ikke en absolut URI, ved brug af “fil”-metoden"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "Den lokale fil-URI “%s” må ikke indeholde en “#”"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "URI'en “%s” er ugyldig"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Værtsnavnet for URI'en “%s” er ugyldig"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "URI'en “%s” indeholder ugyldigt beskyttede tegn"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Stinavnet “%s” er ikke en absolut sti"
@@ -5020,80 +5046,80 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "Fejl ved åbning af mappen “%s”: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "Kunne ikke allokere %lu byte til at læse filen “%s”"
msgstr[1] "Kunne ikke allokere %lu byte til at læse filen “%s”"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Fejl ved læsning af filen “%s”: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Filen “%s” er for stor"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Kunne ikke læse fra filen “%s”: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Kunne ikke åbne filen “%s”: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Kunne ikke læse attributter for filen “%s”: fstat() mislykkedes: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Kunne ikke åbne filen “%s”: fdopen() mislykkedes: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "Kunne ikke omdøbe filen “%s” til “%s”: g_rename() mislykkedes: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Kunne ikke skrive filen “%s”: write() mislykkedes: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Kunne ikke skrive filen “%s”: fsync() mislykkedes: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Fejl under oprettelse af filen “%s”: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr ""
"Den eksisterende fil “%s” kunne ikke fjernes: g_unlink() mislykkedes: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Skabelonen “%s” er ugyldig, må ikke indeholde en “%s”"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Skabelonen “%s” indeholder ikke XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Kunne ikke læse den symbolske link “%s”: %s"
@@ -5119,15 +5145,15 @@ msgstr "Kanal afslutter med et ufuldendt tegn"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Kan ikke foretage en rå læsning i g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Gyldig nøglefil blev ikke fundet i søgekatalogerne"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Ikke en almindelig fil"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5135,50 +5161,50 @@ msgstr ""
"Nøglefilen indeholder linjen “%s” hvilken ikke er et nøgle-værdi-par, en "
"gruppe eller en kommentar"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Ugyldigt gruppenavn: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Nøglefilen starter ikke med en gruppe"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Ugyldigt nøglenavn: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Nøglefilen indeholder kodningen “%s”, der ikke understøttes"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Nøglefilen indeholder ikke gruppen “%s”"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Nøglefilen indeholder ikke nøglen “%s” i gruppen “%s”"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "Nøglefilen indeholder nøglen “%s” med værdien “%s” der ikke er UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr ""
"Nøglefilen indeholder nøglen “%s”, som har en værdi, der ikke kan fortolkes."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5187,82 +5213,82 @@ msgstr ""
"Nøglefilen indeholder nøglen “%s” i gruppen “%s”, som har en værdi der ikke "
"kan fortolkes."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Nøglen “%s” i gruppen “%s” har værdien “%s”, mens %s blev forventet"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "Nøglefilen indeholder beskyttede tegn for enden af linjen"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4378
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Nøglefilen indeholder en ugyldig undvigesekvens “%s”"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4530
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Værdien “%s” kan ikke fortolkes som et nummer."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4544
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Heltalsværdien “%s” er ikke i gyldigt interval"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Værdien “%s” kan ikke fortolkes som en float."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4616
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Værdien “%s” kan ikke fortolkes som en sandhedsværdi."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"Kunne ikke læse attributter for filen “%s%s%s%s”: fstat() mislykkedes: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Kunne ikke kortlægge %s%s%s%s: mmap() mislykkedes: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Kunne ikke åbne filen “%s”: open() mislykkedes: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Fejl på linje %d tegn %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Ugyldig UTF-8-kodet tekst i navnet — ugyldig “%s”"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "“%s” er ikke et gyldigt navn"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "“%s” er ikke et gyldigt navn: “%c”"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Fejl på linje %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5271,7 +5297,7 @@ msgstr ""
"Fejl ved fortolkning af “%-.*s” som skulle have været et ciffer i en "
"tegnreference (&#234; for eksempel) — måske er cifret for stort"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5281,23 +5307,23 @@ msgstr ""
"og-tegn uden at det var beregnet på at starte en entitet — undgå dette ved "
"at bruge &amp; i stedet"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Tegnreferencen “%-.*s” koder ikke et tilladt tegn"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Tom entitet “&;” fundet; gyldige entiteter er: &amp; &quot; &lt; &gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Entitetsnavnet “%-.*s” er ukendt"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5306,11 +5332,11 @@ msgstr ""
"tegn uden at det var beregnet på at starte en entitet — dette undgås ved at "
"bruge &amp; i stedet"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Dokumentet skal begynde med et element (f.eks <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5319,7 +5345,7 @@ msgstr ""
"“%s” er ikke et gyldigt tegn efter et “<”-tegn; det kan ikke være "
"begyndelsen på et elementnavn"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5328,12 +5354,12 @@ msgstr ""
"Mærkeligt tegn “%s”, forventede et “>”-tegn for at afslutte det tomme "
"elementmærke “%s”"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "For mange attributter i elementet “%s”"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5341,7 +5367,7 @@ msgstr ""
"Mærkeligt tegn “%s”, forventede et “=” efter attributnavn “%s” for elementet "
"“%s”"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5352,7 +5378,7 @@ msgstr ""
"begyndelsesmærket til elementet “%s” eller alternativt en attribut; måske "
"brugte du et ugyldigt tegn i attributnavnet"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5361,7 +5387,7 @@ msgstr ""
"Mærkeligt tegn “%s”, forventede et åbningsanførselstegn efter lighedstegnet "
"når værdien for egenskaben “%s” for attributten “%s” angives"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5370,7 +5396,7 @@ msgstr ""
"“%s” er ikke et gyldigt tegn efter tegnene “</”; “%s” er måske ikke "
"begyndelsen på et elementnavn"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5379,25 +5405,25 @@ msgstr ""
"“%s” er ikke et gyldigt tegn efter det lukkende elementnavn “%s”; tilladt "
"tegn er “>”"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Element “%s” blev lukket, ingen åbne elementer nu"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "Element “%s” blev lukket, men aktivt åbent element er “%s”"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Dokumentet var tomt eller indeholdt kun blanke tegn"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "Dokumentet sluttede uventet lige efter en åben vinkelparentes “<”"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5405,7 +5431,7 @@ msgid ""
msgstr ""
"Dokumentet sluttede uventet med åbne elementer — “%s” var sidste åbne element"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5414,19 +5440,19 @@ msgstr ""
"Dokumentet sluttede uventet, forventede at se en vinkelparentes for at "
"afslutte det sidste mærke <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Dokumentet sluttede uventet inden i et elementnavn"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Dokumentet sluttede uventet inden i et attributnavn"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Dokumentet sluttede uventet inden i et element-åbnende mærke."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5434,22 +5460,22 @@ msgstr ""
"Dokumentet sluttede uventet efter lighedstegnet efter et attributnavn; ingen "
"attributværdi"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Dokumentet sluttede uventet inden i en attributværdi"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "Dokumentet sluttede uventet inden i lukningsmærket for elementet “%s”"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Dokumentet sluttede uventet inden i lukningsmærket for et uåbnet element"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"Dokumentet sluttede uventet inden i en kommentar eller behandlingsinstruktion"
@@ -5513,188 +5539,184 @@ msgstr "Mangler argument for %s"
msgid "Unknown option %s"
msgstr "Ukendt tilvalg %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "beskadiget objekt"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "ikke mere ledig hukommelse"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "grænse for bagudlæsning nået"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "intern fejl"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr ""
"mønsteret indeholder elementer der ikke understøttes i forbindelse med "
"partiel træfning"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"baglæns referencer som betingelser understøttes ikke i forbindelse med "
"partiel træfning"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "rekursionsgrænse nået"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "ugyldig forskydning"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "rekursiv løkke"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "der anmodes om en matchtilstand, som ikke er kompileret til JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "ukendt fejl"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ sidst i mønster"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c sidst i mønster"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "ukendt tegn følger \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "tal er ude af rækkefølge i {}-kvantor"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "for stort tal i {}-kvantor"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "manglende afsluttende ] for tegnklasse"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "ugyldig undvigesekvens i tegnklasse"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "følgen er ikke ordnet i tegnklassen"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "intet at gentage"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "ukendt tegn efter (? eller (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX-navngivne klasser understøttes kun inden i en klasse"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "POSIX-arrangerende elementer understøttes ikke"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "manglende afsluttende )"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "reference til ikke-eksisterende undermønster"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "manglende ) efter kommentar"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "regulært udtryk for stort"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "fejlformateret tal eller navn efter (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "lookbehind-assert-erklæring har ikke fast længde"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "betinget gruppe indeholder mere end to grene"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "assert-erklæring forventet efter (?("
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "en nummereret reference kan ikke være nul"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "ukendt POSIX-klassenavn"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "tegnværdi i \\x{…}-sekvens er for stor"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C ikke tillad i lookbehind-assert-erklæring"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "manglende terminator i undermønsters navn"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "to navngivne undermønstre har samme navn"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "fejlformateret \\P- eller \\p-sekvens"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "ukendt egenskabsnavn efter \\P eller \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "undermønsters navn er for langt (maksimal 32 tegn)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "for mange navngivne undermønstre (maksimalt 10.000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "oktal værdi er større end \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "DEFINE-gruppe indeholder mere end én gren"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "inkonsistente NEWLINE-indstillinger"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5702,119 +5724,119 @@ msgstr ""
"\\g følges ikke af et navn eller tal indeholdt i klammer eller "
"vinkelklammer, eller af et enkeltstående tal"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "et argument er ikke tilladt for (*ACCEPT), (*FAIL) eller (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) ikke genkendt"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "tallet er for stort"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "manglende undermønsternavn efter (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "forskellige navne til undermønstre med samme nummer er ikke tilladt"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) skal have et argument"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c skal være efterfulgt af et ASCII-tegn"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"\\k følges ikke af et navn indeholdt i klammer, vinkelklammer eller "
"citationstegn"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N understøttes ikke i en klasse"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "navn er for langt i (*MARK), (*PRUNE), (*SKIP) eller (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "kodeoverløb"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "ukendt tegn efter (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "overløb kompileringsarbejdspladsen"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "tidligere kontrolleret, refereret undermønster blev ikke fundet"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Fejl under søgning med det regulære udtryk %s: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "PCRE-biblioteket er kompileret uden UTF8-understøttelse"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "PCRE-biblioteket er kompileret med inkompatible indstillinger"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Fejl under kompilering af det regulære udtryk “%s” ved tegn %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "hexadecimalt ciffer eller “}” forventet"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "hexadecimalt ciffer forventet"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "manglende “<” i symbolsk reference"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "ufærdig symbolsk reference"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "symbolsk reference med længde nul"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "ciffer forventet"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "ugyldig symbolsk reference"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "løst afsluttende “\\”"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "ukendt undvigesekvens"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Fejl under fortolkning af erstatningstekst “%s” ved tegn %lu: %s"
@@ -5844,137 +5866,143 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Tekst var tom (eller indeholdt kun blanke tegn)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Fejl ved læsning af data fra underproces (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Uventet fejl ved læsning af data fra underproces (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Uventet fejl i waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Underproces afsluttede med kode %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Underproces dræbt med signal %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Underproces stoppet med signal %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Underproces afsluttede fejlagtigt"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Fejl under læsning fra barnedatakanal (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Fejl under kørsel af underprocessen “%s” (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Fejl under fraspaltning af proces (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Fejl ved skift til mappen “%s” (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Kunne ikke køre underprocessen “%s” (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Kunne ikke åbne filen for at omtildele fildeskriptoren (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Kunne ikke duplikere fildeskriptoren for underproces (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Fejl ved fraspaltning af underproces (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Kunne ikke lukke fildeskriptoren for underproces (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Ukendt fejl under kørsel af underprocessen “%s”"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
"Kunne ikke læse tilstrækkelig mængde data fra underprocessens pid-kanal (%s)"
-#: glib/gspawn-win32.c:337
+# FD: fildeskriptor
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Ugyldigt argument til kilde-FD'er"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Fejl under læsning af data fra underproces"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Kunne ikke køre underproces (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Kunne ikke dup() i underproces (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Ugyldigt programnavn: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Ugyldig streng i argumentvektor på %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Ugyldig streng i miljø: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Ugyldigt arbejdskatalog: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Fejl under kørsel af hjælpeprogram (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -5982,225 +6010,225 @@ msgstr ""
"Uventet fejl i g_io_channel_win32_poll() under læsning af data fra en "
"underproces"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Tom streng er ikke et tal"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "“%s” er ikke et tal med fortegn"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Tallet “%s” er uden for det gyldige interval [%s, %s]"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "“%s” er ikke et tal uden fortegn"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "Ugyldig %-kodning i URI"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Ugyldigt tegn i URI"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Ikke-UTF-8-tegn i URI"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Ugyldig IPv6-adresse “%.*s” i URI"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Ugyldigt kodet IP-adresse “%.*s” i URI"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Ugyldigt internationaliseret værtsnavn ‘%.*s’ i URI"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Kunne ikke fortolke port “%.*s” i URI"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Porten “%.*s” i URI ligger uden for gyldigt interval"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "URI'en “%s” er ikke en absolut URI"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "URI'en “%s” har ingen værtskomponent"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "URI'en er ikke absolut og der er ikke givet nogen basis-URI"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Mangler “=” og parameterværdi"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Kunne ikke allokere hukommelse"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Tegn uden for gyldigt interval for UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Ugyldig sekvens i konverteringsinddata"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Tegn uden for gyldigt interval for UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "byte"
msgstr[1] "byte"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bit"
@@ -6208,7 +6236,7 @@ msgstr[1] "bit"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6216,7 +6244,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6224,7 +6252,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6233,15 +6261,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
-#| msgid "%.1f kB"
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6249,14 +6276,14 @@ msgstr[0] "%s byte"
msgstr[1] "%s byte"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s byte"
msgstr[1] "%s byte"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6268,38 +6295,45 @@ msgstr[1] "%u byte"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
-#~ msgid "edit name: %s\n"
-#~ msgstr "redigeringsnavn: %s\n"
+#~ msgid "GApplication options"
+#~ msgstr "GApplication-indstillinger"
+
+#, c-format
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "Den lokale fil-URI “%s” må ikke indeholde en “#”"
+
+#~ msgid "backtracking limit reached"
+#~ msgstr "grænse for bagudlæsning nået"
#~ msgid "internal error or corrupted object"
#~ msgstr "intern fejl eller beskadiget objekt"
diff --git a/po/de.po b/po/de.po
index 5c7964a7a..40eeb534c 100644
--- a/po/de.po
+++ b/po/de.po
@@ -11,17 +11,17 @@
# Tobias Endrigkeit <tobiasendrigkeit@googlemail.com>, 2012.
# Bernd Homuth <dev@hmt.im>, 2015.
# Wolfgang Stöggl <c72578@yahoo.de>, 2011, 2015-2016.
-# Tim Sabsch <tim@sabsch.com>, 2019-2022.
+# Tim Sabsch <tim@sabsch.com>, 2019-2023.
# Mario Blättermann <mario.blaettermann@gmail.com>, 2010-2013, 2015-2018, 2020-2021.
-# Philipp Kiemle <philipp.kiemle@gmail.com>, 2021-2022.
-# Jürgen Benvenuti <gastornis@posteo.org>, 2022.
+# Philipp Kiemle <philipp.kiemle@gmail.com>, 2021-2023.
+# Jürgen Benvenuti <gastornis@posteo.org>, 2022, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: glib master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-09-22 12:38+0000\n"
-"PO-Revision-Date: 2022-09-24 20:17+0200\n"
+"POT-Creation-Date: 2023-08-31 20:16+0000\n"
+"PO-Revision-Date: 2023-09-01 11:37+0200\n"
"Last-Translator: Jürgen Benvenuti <gastornis@posteo.org>\n"
"Language-Team: German <gnome-de@gnome.org>\n"
"Language: de\n"
@@ -29,47 +29,47 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.1.1\n"
+"X-Generator: Poedit 3.3.1\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Setzen von Standardanwendungen wird noch nicht unterstützt"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Setzen einer Anwendung als »zuletzt verwendet für einen Typ« wird noch nicht "
"unterstützt"
-#: gio/gappinfo.c:810
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr ""
"Es konnte keine Vorgabeanwendung für den Inhaltstyp »%s« gefunden werden"
-#: gio/gappinfo.c:870
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr ""
"Es konnte keine Vorgabeanwendung für das Adressschema »%s« gefunden werden"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "Optionen für GApplication"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "GApplication-Optionen:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Optionen für GApplication anzeigen"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
-msgstr "GApplication Dienstmodus starten (aus D-Bus Dienstdateien verwenden)"
+msgstr "GApplication-Dienstmodus starten (aus D-Bus Dienstdateien verwenden)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Anwendungskennung überschreiben"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Laufende Instanz ersetzen"
@@ -149,7 +149,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Anwendungsbezeichnung im D-Bus-Format (z.B: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "DATEI"
@@ -247,11 +247,11 @@ msgstr "Verbindung mit D-Bus ist nicht möglich: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "Fehler beim Senden der %s-Nachricht zur Anwendung: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "Der Aktionsname muss nach der Anwendungskennung angegeben werden\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -260,25 +260,25 @@ msgstr ""
"Ungültiger Aktionsname: »%s«\n"
"Aktionsnamen dürfen nur aus alphanumerischen Zeichen, »-« und ».« bestehen\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "Fehler bei der Verarbeitung des Aktionsparameters: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "Aktionen akzeptiert maximal einen Parameter\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "Der Befehl list-actions akzeptiert nur die Anwendungskennung"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "Die desktop-Datei für die Anwendung %s konnte nicht gefunden werden\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -288,9 +288,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Zu großer Zählwert an %s übermittelt"
@@ -304,8 +304,8 @@ msgstr "Suchen im Basis-Datenstrom nicht unterstützt"
msgid "Cannot truncate GBufferedInputStream"
msgstr "GBufferedInputStream konnte nicht abgeschnitten werden"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Datenstrom ist bereits geschlossen"
@@ -313,7 +313,7 @@ msgstr "Datenstrom ist bereits geschlossen"
msgid "Truncate not supported on base stream"
msgstr "Abschneiden wird vom Basis-Datenstrom nicht unterstützt"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -332,28 +332,28 @@ msgid "Not enough space in destination"
msgstr "Nicht genug Platz im Ziel"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Ungültige Bytefolge in Umwandlungseingabe"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Fehler bei der Umwandlung: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Abbrechbare Initialisierung wird nicht unterstützt"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Umwandlung von Zeichensatz »%s« in »%s« wird nicht unterstützt"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Konverter von »%s« in »%s« konnte nicht geöffnet werden"
@@ -397,17 +397,17 @@ msgstr ""
msgid "Unexpected early end-of-stream"
msgstr "Unerwartet frühes Datenstromende"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Nicht unterstützter Schlüssel »%s« im Adresseintrag »%s«"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Bedeutungsloses Schlüssel-Wert-Paar im Adresseintrag »%s«"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -416,7 +416,7 @@ msgstr ""
"Adresse »%s« ist ungültig (benötigt genau einen der Schlüssel path, dir, "
"tmpdir oder abstract keys)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -549,7 +549,7 @@ msgstr ""
"Adresse des Sitzungsbus konnte nicht ermittelt werden (für dieses "
"Betriebssystem nicht implementiert)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -558,7 +558,7 @@ msgstr ""
"Bus-Adresse konnte nicht über die Umgebungsvariable DBUS_STARTER_BUS_TYPE "
"ermittelt werden – unbekannter Wert »%s«"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -566,7 +566,7 @@ msgstr ""
"Bus-Adresse konnte nicht ermittelt werden, da die Umgebungsvariable "
"DBUS_STARTER_BUS_TYPE nicht gesetzt ist"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Unbekannter Bus-Typ %d"
@@ -588,20 +588,24 @@ msgstr ""
"Alle verfügbaren Legitimierungsmechanismen sind ausgeschöpft (%s Versuche) "
"(verfügbar: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Unerwarteter Mangel an Inhalt beim Versuch, einen Byte zu lesen"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Benutzerkennungen müssen für Server und Gegenstelle gleich sein"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Abgebrochen durch GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Fehler beim Holen der Informationen für Ordner »%s«: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -609,32 +613,32 @@ msgstr ""
"Zugriffsrechte des Ordners »%s« sind inkorrekt. Erwarteter Modus ist 0700, "
"0%o wurde erhalten"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Fehler beim Erstellen des Ordners »%s«: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Vorgang wird nicht unterstützt"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Fehler beim Öffnen des Schlüsselbundes »%s« zum Lesen: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "Zeile %d des Schlüsselbundes auf »%s« mit Inhalt »%s« ist inkorrekt"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -642,7 +646,7 @@ msgstr ""
"Der erste Token in Zeile %d des Schlüsselbundes bei »%s« mit dem Inhalt »%s« "
"ist inkorrekt"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -650,58 +654,58 @@ msgstr ""
"Der zweite Token in Zeile %d des Schlüsselbundes bei »%s« mit dem Inhalt "
"»%s« ist inkorrekt"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr ""
"Cookie mit Kennung %d konnte im Schlüsselbund auf »%s« nicht gefunden werden"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Fehler beim Erstellen der Sperrdatei »%s«: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Fehler beim Löschen der alten Sperrdatei »%s«: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Fehler beim Schließen der entknüpften Sperrdatei »%s«: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Fehler beim Entknüpfen der Sperrdatei »%s«: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Fehler beim Öffnen des Schlüsselbundes »%s« zum Schreiben: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Außerdem schlug das Entsperren von »%s« ebenso fehl: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "Verbindung ist geschlossen"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Zeitüberschreitung wurde erreicht"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Beim Erstellen einer client-seitigen Verbindung wurden nicht unterstützte "
"Flags entdeckt"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -709,105 +713,113 @@ msgstr ""
"Keine derartige Schnittstelle »org.freedesktop.DBus.Properties« des Objekts "
"im Pfad %s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Keine derartige Eigenschaft »%s«"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Eigenschaft »%s« ist nicht lesbar"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Eigenschaft »%s« ist nicht schreibbar"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Fehler beim Setzen der Eigenschaft »%s«: Erwarteter Typ war »%s«, aber »%s« "
"wurde erhalten"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Keine derartige Schnittstelle »%s«"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Keine derartige Schnittstelle »%s« des Objekts im Pfad %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Keine derartige Methode »%s«"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Der Nachrichtentyp »%s« entspricht nicht dem erwarteten Typ »%s«"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Für die Schnittstelle %s auf %s wurde bereits ein Objekt exportiert"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Eigenschaft kann nicht abgefragt werden: %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Eigenschaft kann nicht gesetzt werden: %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Methode »%s« gab Typ »%s« zurück, aber »%s« wurde erwartet"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Methode »%s« in Schnittstelle »%s« mit Signatur »%s« existiert nicht"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Ein Unterbaum wurde bereits für %s exportiert"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Das Objekt existiert nicht am Pfad »%s«"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "Typ ist UNGÜLTIG"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "METHOD_CALL-Meldung: Kopfzeilenfeld PATH oder MEMBER fehlt"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"METHOD_CALL-Meldung: Kopfzeilenfeld PATH oder MEMBER fehlt oder ist ungültig"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "METHOD_RETURN-Meldung: Kopfzeilenfeld REPLY_SERIAL fehlt"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"METHOD_RETURN-Meldung: Kopfzeilenfeld REPLY_SERIAL fehlt oder ist ungültig"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "ERROR-Meldung: Kopfzeilenfeld REPLY_SERIAL oder ERROR_NAME fehlt"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"ERROR-Meldung: Kopfzeilenfeld REPLY_SERIAL oder ERROR_NAME fehlt oder ist "
+"ungültig"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "SIGNAL-Meldung: Kopfzeilenfeld PATH, INTERFACE oder MEMBER fehlt"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"SIGNAL-Meldung: Kopfzeilenfeld PATH, INTERFACE oder MEMBER fehlt oder ist "
+"ungültig"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -815,7 +827,7 @@ msgstr ""
"SIGNAL-Meldung: Das Kopfzeilenfeld PATH verwendet den reservierten Wert /org/"
"freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -823,21 +835,21 @@ msgstr ""
"SIGNAL-Meldung: Das Kopfzeilenfeld INTERFACE verwendet den reservierten Wert "
"org.freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "%lu Byte sollte gelesen werden, aber nur %lu erhalten"
msgstr[1] "%lu Bytes sollten gelesen werden, aber nur %lu erhalten"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr ""
"Ein NUL-Byte wurde nach der Zeichenkette »%s« erwartet, aber es wurde Byte "
"%d gefunden"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -847,21 +859,21 @@ msgstr ""
"Position %d gefunden (Länge der Zeichenkette ist %d). Die gültige UTF-8-"
"Zeichenkette bis zu diesem Punkt war »%s«."
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Der Wert ist zu tief verschachtelt"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Verarbeiteter Wert »%s« ist kein gültiger D-Bus-Objektpfad"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Verarbeiteter Wert »%s« ist keine gültige D-Bus-Signatur"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -874,7 +886,7 @@ msgstr[1] ""
"Array der Länge %u Bytes wurde erkannt. Maximale Länge ist 2<<26 Bytes (64 "
"MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -883,16 +895,16 @@ msgstr ""
"Es wurde ein Feld des Typs »a%c« gefunden. Erwartet wurde als Länge ein "
"Vielfaches von %u Byte, aber es waren %u Byte Länge"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Leere Strukturen (Tupel) sind in D-Bus nicht erlaubt"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Verarbeiteter Wert »%s« für Variante ist keine gültige D-Bus-Signatur"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -900,7 +912,7 @@ msgstr ""
"Fehler beim Deserialisieren von GVariant mit der Typenzeichenkette »%s« aus "
"dem D-Bus Wire-Format"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -909,29 +921,29 @@ msgstr ""
"Ungültiger Wert für die Speicherreihenfolge. Es wird entweder 0x6c (»l«) "
"oder 0x42 (»B«) erwartet, aber der Wert 0x%02x gefunden"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr ""
"Ungültige Version des Hauptprotokolls. Erwartet wurde 1, jedoch %d gefunden"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Signatur-Kopfzeilenfeld gefunden, ist aber nicht vom Typ Signatur"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Signatur-Kopfzeilenfeld mit Signatur »%s« gefunden, aber Nachrichtenrumpf "
"ist leer"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Verarbeiteter Wert »%s« ist keine gültige D-Bus-Signatur (für Rumpf)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -942,11 +954,11 @@ msgstr[1] ""
"Kein Signatur-Kopfzeilenfeld in der Nachricht, aber der Nachrichtenrumpf ist "
"%u Bytes groß"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Meldung kann nicht deserialisiert werden: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -954,7 +966,7 @@ msgstr ""
"Fehler beim Deserialisieren von GVariant mit der Typenzeichenkette »%s« in "
"das D-Bus Wire-Format"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
@@ -962,18 +974,18 @@ msgstr ""
"Anzahl der Dateideskriptoren in Meldung (%d) und Kopfzeilenfeld (%d) ist "
"unterschiedlich"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Meldung kann nicht serialisiert werden: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
"Nachrichtenrumpf hat den Signaturtyp »%s«, aber es gibt keine Signatur im "
"Kopfzeilenfeld"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -982,54 +994,54 @@ msgstr ""
"Nachrichtenrumpf hat den Signaturtyp »%s«, aber die Signatur im "
"Kopfzeilenfeld ist »%s«"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
"Nachrichtenrumpf ist leer, aber die Signatur im Kopfzeilenfeld ist »(%s)«"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Fehlerrückmeldung mit Inhalt des Typs »%s«"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Fehlerrückmeldung mit leerem Inhalt"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr ""
"(Geben Sie ein beliebiges Zeichen ein, um dieses Fenster zu schließen)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "Der Sitzungs-dbus läuft nicht und automatisches Starten schlug fehl"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Hardware-Profil konnte nicht ermittelt werden: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "%s oder %s kann nicht geladen werden: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Fehler beim Aufruf von StartServiceByName für %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Unerwartete Antwort %d von der Methode StartServiceByName(»%s«)"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1039,25 +1051,25 @@ msgstr ""
"bekannten Namen %s ohne Besitzer, und der Proxy wurde mit dem Flag "
"»G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START« erstellt"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Abstrakter Namensraum wird nicht unterstützt"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Nonce-Datei kann beim Erstellen eines Servers nicht angegeben werden"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Fehler beim Schreiben der Nonce-Datei auf »%s«: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Die Zeichenkette »%s« ist keine gültige GUID für D-Bus"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "An nicht unterstützter Übertragung »%s« kann nicht gelauscht werden"
@@ -1085,14 +1097,14 @@ msgstr ""
"\n"
"Mit »%s BEFEHL --help« erhalten Sie Hilfe zu jedem der Befehle.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Fehler: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Fehler beim Verarbeiten des XML-Codes der Inspektion: %s\n"
@@ -1102,43 +1114,43 @@ msgstr "Fehler beim Verarbeiten des XML-Codes der Inspektion: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Fehler: %s ist kein gültiger Name\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Fehler: %s ist kein gültiger Objektpfad\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Zum Systembus verbinden"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Zum Sitzungsbus verbinden"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Zur angegebenen D-Bus-Adresse verbinden"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Optionen für Gegenstelle der Verbindung:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Optionen zur Gegenstelle der Verbindung"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Keine Gegenstelle der Verbindung angegeben"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Mehrere Gegenstellen der Verbindung angegeben"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
@@ -1146,7 +1158,7 @@ msgstr ""
"Warnung: Entsprechend den Inspektionsdaten existiert die Schnittstelle »%s« "
"nicht\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1155,167 +1167,167 @@ msgstr ""
"Warnung: Entsprechend den Inspektionsdaten existiert die Methode »%s« nicht "
"in der Schnittstelle »%s«\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Optionales Ziel des Signals (eindeutiger Name)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Objektpfad, auf den das Signal ausgegeben werden soll"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Signal und Schnittstellenname"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Ein Signal ausgeben."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Fehler beim Verbinden: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Fehler: %s ist kein gültiger eindeutiger Bus-Name.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Fehler: Objektpfad wurde nicht angegeben\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Fehler: Signalname wurde nicht angegeben\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Fehler: Signalname »%s« ist ungültig\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Fehler: %s ist kein gültiger Schnittstellenname\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Fehler: %s ist kein gültiger Mitgliedsname\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Fehler bei der Verarbeitung des Parameters %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Fehler beim Löschen der Verbindung: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Name des Ziels, für das die Methode aufgerufen werden soll"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Objektpfad, für den die Methode aufgerufen werden soll"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Methode und Schnittstellenname"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Zeitablauf in Sekunden"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Interaktive Legitimierung erlauben"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Eine Methode für ein entferntes Objekt aufrufen."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Fehler: Ziel wurde nicht angegeben\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Fehler: %s ist kein gültiger Bus-Name\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Fehler: Name der Methode wurde nicht angegeben\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Fehler: Name der Methode »%s« ist ungültig\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Fehler bei der Verarbeitung des Parameters %d vom Typ »%s«: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Fehler beim Hinzufügen des Handlers %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Name des Ziels der Inspektion"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Zu inspizierender Objektpfad"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "XML drucken"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Unterelemente inspizieren"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Nur Eigenschaften ausgeben"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Ein entferntes Objekt inspizieren."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Name des zu überwachenden Ziels"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Zu überwachender Objektpfad"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Ein entferntes Objekt überwachen."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr ""
"Fehler: eine Nicht-Message-Bus-Verbindung kann nicht überwacht werden\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr ""
"Zu aktivierender Dienst, bevor auf den anderen gewartet wird (allgemein "
"bekannter Name)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1323,73 +1335,78 @@ msgstr ""
"Zeitspanne, die gewartet werden soll, bis mit einer Fehlermeldung "
"abgebrochen wird (Sekunden); 0 für keine Zeitspanne (Voreinstellung)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPTION …] BUS-NAME"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Name eines Busses, auf dessen Verfügbarkeit gewartet werden soll."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr ""
"Fehler: Es muss ein Dienst angegeben werden, der gestartet werden soll.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr ""
"Fehler: Es muss ein Dienst angegeben werden, auf den gewartet werden soll.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Fehler: Zu viele Argumente.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Fehler: %s ist kein gültiger, bekannter Bus-Name\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Nicht berechtigt, Fehlerdiagnose-Einstellungen zu ändern"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5119
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Unbenannt"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Desktop-Datei hat kein Exec-Feld angegeben"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Für die Anwendung benötigtes Terminal konnte nicht gefunden werden"
-#: gio/gdesktopappinfo.c:3637
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Programm »%s« wurde nicht im $PATH gefunden"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
"Konfigurationsordner %s für Benutzeranwendungen konnte nicht erstellt "
"werden: %s"
-#: gio/gdesktopappinfo.c:3641
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr ""
"MIME-Konfigurationsordner %s des Benutzers konnte nicht erstellt werden: %s"
-#: gio/gdesktopappinfo.c:3883 gio/gdesktopappinfo.c:3907
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Den Anwendungsinformationen fehlt ein Bezeichner"
-#: gio/gdesktopappinfo.c:4143
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Benutzer-Desktop-Datei %s kann nicht erstellt werden"
-#: gio/gdesktopappinfo.c:4279
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Benutzerdefinition für %s"
@@ -1458,80 +1475,85 @@ msgstr "Es wurde ein GEmblem für GEmblemedIcon erwartet"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Enthaltender Einhängepunkt existiert nicht"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Es kann nicht über den Ordner kopiert werden"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Ordner kann nicht über Ordner kopiert werden"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Zieldatei existiert"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Ordner kann nicht rekursiv kopiert werden"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "Zusammenfügen wird nicht unterstützt"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Dateibereich kopieren wird nicht unterstützt"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Fehler beim Zusammenfügen der Datei: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Zusammenfügen wird nicht unterstützt"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Kopieren (reflink/clone) zwischen Einhängepunkten nicht unterstützt"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Kopieren (reflink/clone) wird nicht unterstützt oder ist ungültig"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr ""
"Kopieren (reflink/clone) wird nicht unterstützt oder funktioniert nicht"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Spezielle Datei kann nicht kopiert werden"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Ungültiger Wert für symbolische Verknüpfung angegeben"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Symbolische Verknüpfungen nicht unterstützt"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Papierkorb nicht unterstützt"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Dateinamen dürfen kein »%c« enthalten"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr ""
"Für die Vorlage »%s« konnte kein temporärer Ordner erstellt werden: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "Datenträger unterstützt Einhängen nicht"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Es wurde keine Anwendung gefunden, die diese Datei verarbeiten kann"
@@ -1540,11 +1562,11 @@ msgid "Enumerator is closed"
msgstr "Datei-Enumerator ist geschlossen"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Datei-Enumerator hat noch einen ausstehenden Vorgang"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Datei-Enumerator ist bereits geschlossen"
@@ -1557,27 +1579,27 @@ msgstr "Version %d der GFileIcon-Kodierung kann nicht verarbeitet werden"
msgid "Malformed input data for GFileIcon"
msgstr "Ungültige Eingangsdaten für GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Datenstrom unterstützt query_info nicht"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Suchen im Datenstrom nicht unterstützt"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Abschneiden des Eingabedatenstroms nicht erlaubt"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Abschneiden wird vom Datenstrom nicht unterstützt"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Ungültiger Rechnername"
@@ -1610,37 +1632,37 @@ msgstr "Antwort vom HTTP-Proxy ist zu groß"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "HTTP Proxy-Server hat die Verbindung unerwartet geschlossen."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Ungültige Symbolanzahl (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Kein Typ für Klassenname %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "GIcon-Schnittstelle wird vom Typ %s nicht unterstützt"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Typ %s ist keine Klasse"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Ungültige Versionsnummer: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Typ %s implementiert nicht from_tokens() der GIcon-Schnittstelle"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Übergebene Version der Symbol-Kodierung kann nicht verarbeitet werden"
@@ -1681,7 +1703,7 @@ msgstr "Eingabedatenstrom unterstützt kein Lesen"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Datenstrom hat noch einen ausstehenden Vorgang"
@@ -1787,12 +1809,12 @@ msgid "Error writing to stdout"
msgstr "Fehler beim Schreiben in die Standardausgabe"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1210 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "ORT"
@@ -1810,8 +1832,8 @@ msgstr ""
"jedoch werden GIO-Orte statt lokaler Dateien verwendet; z.B. können\n"
"Sie als Ort etwas wie »smb://server/ressource/datei.txt« angeben."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1261 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Keine Orte angegeben"
@@ -1907,57 +1929,64 @@ msgstr "Symbolischen Verknüpfungen nicht folgen"
msgid "attributes:\n"
msgstr "Attribute:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "Anzeigename: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "Name bearbeiten: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "Name: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "Typ: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "Größe: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "verborgen\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "Adresse: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "Lokaler Pfad: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "Unix-Einhängepunkt: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Setzbare Attribute:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Namensraum der schreibbaren Attribute:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Informationen zu Orten zeigen."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2025,11 +2054,11 @@ msgstr "Anzeigenamen ausgeben"
msgid "Print full URIs"
msgstr "Volle Adressen ausgeben"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Den Inhalt der Orte auflisten."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2236,15 +2265,15 @@ msgstr "Einen TCRYPT-Systemdatenträger einhängen"
msgid "Anonymous access denied"
msgstr "Der anonyme Zugriff wurde verwehrt"
-#: gio/gio-tool-mount.c:533
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Kein Laufwerk für Gerätedatei"
-#: gio/gio-tool-mount.c:1025
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Kein Datenträger für angegebene Kennung"
-#: gio/gio-tool-mount.c:1214
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Die Orte ein- oder aushängen."
@@ -2447,11 +2476,11 @@ msgid "Follow symbolic links, mounts and shortcuts"
msgstr ""
"Symbolischen Verknüpfungen, Einhängepunkten und Schnellzugriffen folgen"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Den Inhalt von Ordnern in einer Baumstruktur auflisten."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Element <%s> ist innerhalb <%s> nicht erlaubt"
@@ -2508,7 +2537,7 @@ msgstr "Fehler beim Komprimieren der Datei %s"
msgid "text may not appear inside <%s>"
msgstr "Text könnte nicht innerhalb von <%s> erscheinen"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Programm-Version anzeigen und beenden"
@@ -2524,8 +2553,8 @@ msgstr ""
"Die Ordner, aus denen in FILE referenzierte Dateien gelesen werden sollen "
"(Vorgabe ist der aktuelle Ordner)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "ORDNER"
@@ -2580,7 +2609,7 @@ msgstr "C-Bezeichnername für den generierten Quellcode"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "Der Ziel-C-Compiler (Voreinstellung: die CC-Umgebungsvariable)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2591,126 +2620,126 @@ msgstr ""
"haben,\n"
"die Ressourcendateien die Erweiterung .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Sie sollten genau einen Dateinamen angeben\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "Nick muss aus mindestens zwei Zeichen bestehen"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Ungültiger numerischer Wert"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> bereits angegeben"
# Hier scheinen im Original die spitzen Klammern zu fehlen
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "<value='%s'> wurde bereits angegeben"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "Für Flag-Werte darf höchstens 1 Bit gesetzt sein"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> muss mindestens ein <value> enthalten"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> ist im angegebenen Bereich nicht enthalten"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> ist kein gültiges Element des angegebenen Aufzählungstyps"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> enthält eine Zeichenkette, die nicht den angegebenen Flag-Typ hat"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> enthält eine Zeichenkette, die nicht in <choices> enthalten ist"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> wurde für diesen Schlüssel bereits angegeben"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> ist für Schlüssel des Typs »%s« nicht erlaubt"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
-msgstr "<range> angebenenes Minimum ist größer als das Maximum"
+msgstr "<range> angegebenes Minimum ist größer als das Maximum"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "Nicht unterstützte l10n-Kategorie: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n wurde angefordert, aber keine Gettext-Domain angegeben"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr ""
"Übersetzungskontext wurde für den Wert angegeben, ohne dass l10n aktiviert "
"ist"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Der <default>-Wert des Typs »%s« konnte nicht ausgewertet werden: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> kann nicht für Schlüssel angegeben werden, die als Aufzählungstyp "
"markiert sind"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> wurde für diesen Schlüssel bereits angegeben"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> ist für Schlüssel des Typs »%s« nicht erlaubt"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> wurde bereits angegeben"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> muss mindestens ein <choice> enthalten"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> wurde für diesen Schlüssel bereits angegeben"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2718,7 +2747,7 @@ msgstr ""
"<aliases> kann nur für Schlüssel mit Aufzählungs- oder Flag-Typ oder nach "
"<choices> angebenden werden"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2727,43 +2756,43 @@ msgstr ""
"<alias value='%s'/> wurde angegeben, wobei »%s« bereits ein Element des "
"Aufzählungstyps ist"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"<alias value='%s'/> wurde angegeben, während <choice value='%s'/> bereits "
"angegeben war"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> bereits angegeben"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "Alias-Ziel »%s« ist kein Aufzählungstyp"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "Alias-Ziel »%s« ist nicht in <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> muss mindestens einen <alias> enthalten"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Leere Namen sind nicht zulässig"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Ungültiger Name »%s«: Namen müssen mit einem Kleinbuchstaben beginnen"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2772,39 +2801,39 @@ msgstr ""
"Ungültiger Name »%s«: ungültiges Zeichen »%c«; nur Kleinbuchstaben, Ziffern "
"und Bindestriche »-« sind zulässig"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr ""
"Ungültiger Name »%s«: Zwei aufeinander folgende Bindestriche »--« sind nicht "
"zulässig"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr ""
"Ungültiger Name »%s«: das letzte Zeichen darf kein Bindestrich »-« sein."
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Ungültiger Name »%s«: maximale Länge ist 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> wurde bereits angegeben"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Schlüssel können nicht zum Schema »list-of« hinzugefügt werden"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> wurde bereits angegeben"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2813,7 +2842,7 @@ msgstr ""
"<key name='%s'> verdeckt <key name='%s'> in <schema id='%s'>; verwenden Sie "
"<override>, um den Wert anzupassen"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2822,57 +2851,57 @@ msgstr ""
"Genau eines von »type«, »enum« oder »flags« muss als Attribut für <key> "
"angegeben werden"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> (noch) nicht definiert."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Ungültige GVariant-Typzeichenkette »%s«"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> angegeben, aber das Schema erweitert nichts"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Kein <key name='%s'> zum Überschreiben"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> wurde bereits angegeben"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> wurde bereits angegeben"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> erweitert noch nicht vorhandenes Schema »%s«"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr ""
"<schema id='%s'> ist eine Liste des noch nicht vorhandenen Schemas »%s«"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Darf keine Liste von Schemata mit einem Pfad sein"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Ein Schema darf nicht um einen Pfad erweitert werden"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2880,7 +2909,7 @@ msgstr ""
"<schema id='%s'> ist eine Liste, welche <schema id='%s'> erweitert, das "
"keine Liste ist"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2889,18 +2918,18 @@ msgstr ""
"<schema id='%s' list-of='%s'> erweitert <schema id='%s' list-of='%s'>, aber "
"»%s« erweitert »%s« nicht"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr ""
"Ein Pfad, falls angegeben, muss mit einem Schrägstrich beginnen und enden"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Der Pfad einer Liste muss mit »:/« enden"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2909,49 +2938,49 @@ msgstr ""
"Warnung: Schema »%s« hat den Pfad »%s«. Mit »/apps/«, »/desktop/« oder »/"
"system/« beginnende Pfade gelten jedoch als veraltet."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> bereits angegeben"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Nur ein <%s>-Element ist innerhalb von <%s> erlaubt"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Element <%s> ist in der obersten Ebene nicht erlaubt"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Element <default> wird in <key> benötigt"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Text darf nicht innerhalb von <%s> erscheinen"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Warnung: nicht definierte Referenz zu <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "--strict wurde angegeben; Abbruch."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Die gesamte Datei wurde ignoriert."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Diese Datei wird ignoriert."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2960,7 +2989,7 @@ msgstr ""
"Kein Schlüssel »%s« in Schema »%s« wie angegeben in überschreibender Datei "
"»%s«. Die Überschreibung wird für diesen Schlüssel ignoriert."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2970,7 +2999,7 @@ msgstr ""
"»%s«, und »--strict« wurde angegeben. Abbruch."
# Das habe ich nicht wirklich verstanden, bitte sorgfältig gegenlesen.
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2981,7 +3010,7 @@ msgstr ""
"Überschreibung wird für diesen Schlüssel ignoriert."
# Das habe ich nicht wirklich verstanden, bitte sorgfältig gegenlesen.
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2991,7 +3020,7 @@ msgstr ""
"Schema »%s« (überschreibende Datei »%s«) nicht bereitgestellt werden, und »--"
"strict« wurde angegeben. Abbruch."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -3001,7 +3030,7 @@ msgstr ""
"überschreibender Datei »%s«: %s. Die Überschreibung wird für diesen "
"Schlüssel ignoriert."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -3010,7 +3039,7 @@ msgstr ""
"Fehler beim Verarbeiten des Schlüssels »%s« in Schema »%s« wie angegeben in "
"überschreibender Datei »%s«: %s, und »--strict« wurde angegeben. Abbruch."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3020,7 +3049,7 @@ msgstr ""
"»%s« liegt außerhalb des im Schema angegebenen Bereichs. Die Überschreibung "
"wird für diesen Schlüssel ignoriert."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3030,7 +3059,7 @@ msgstr ""
"»%s« liegt außerhalb des im Schema angegebenen Bereichs, und »--strict« "
"wurde angegeben. Abbruch."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3040,7 +3069,7 @@ msgstr ""
"»%s« befindet sich nicht in der Liste gültiger Auswahlmöglichkeiten. Die "
"Überschreibung wird für diesen Schlüssel ignoriert."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3050,23 +3079,23 @@ msgstr ""
"»%s« befindet sich nicht in der Liste gültiger Auswahlmöglichkeiten, und »--"
"strict« wurde angegeben. Abbruch."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Speicherort der Datei gschemas.compiled"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Abbruch wegen einiger Fehler in Schemata"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Die Datei »gschema.compiled« nicht schreiben"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Keine Einschränkungen für Schlüsselnamen erzwingen"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3076,24 +3105,24 @@ msgstr ""
"Schemadateien müssen die Erweiterung .gschema.xml haben,\n"
"die Zwischenspeicherdatei die Erweiterung gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Sie sollten genau einen Ordnernamen angeben"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Keine Schema-Dateien gefunden. Es wird nichts unternommen."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "Keine Schema-Dateien gefunden. Vorhandene Ausgabedatei wurde entfernt."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Ungültiger Dateiname %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Fehler beim Einlesen der Dateisystem-Information für %s: %s"
@@ -3102,266 +3131,266 @@ msgstr "Fehler beim Einlesen der Dateisystem-Information für %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Enthaltender Einhängepunkt für Datei %s wurde nicht gefunden"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Wurzelordner kann nicht umbenannt werden"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Fehler beim Umbenennen der Datei %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Datei kann nicht umbenannt werden, da der Dateiname bereits existiert"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Ungültiger Dateiname"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Fehler beim Öffnen der Datei »%s«: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Fehler beim Entfernen der Datei »%s«: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Fehler beim Verschieben der Datei %s in den Papierkorb: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Papierkorb-Ordner %s konnte nicht angelegt werden: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr ""
"Oberster Ordner konnte zum Verschieben von %s in den Papierkorb nicht "
"gefunden werden"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
"Papierkorbaktionen zwischen systeminternen Einhängepunkten werden nicht "
"unterstützt"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Papierkorb-Ordner %s konnte für %s nicht gefunden oder angelegt werden"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Löschprotokoll-Datei für %s konnte nicht angelegt werden: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr ""
"Datei %s kann nicht über Dateisystemgrenzen hinweg in den Papierkorb "
"verschoben werden"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Datei %s kann nicht in den Papierkorb verschoben werden: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Datei %s kann nicht in den Papierkorb verschoben werden"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Fehler beim Erstellen des Ordners »%s«: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Das Dateisystem unterstützt keine symbolische Verknüpfungen"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Fehler beim Erstellen der symbolischen Verknüpfung %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Fehler beim Verschieben der Datei %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Ordner kann nicht über Ordner verschoben werden"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Erstellen der Sicherungsdatei gescheitert"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Fehler beim Entfernen der Zieldatei: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Verschieben zwischen Einhängepunkten nicht unterstützt"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Konnte die Festplattenbelegung von %s nicht bestimmen: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Attributwert darf nicht NULL sein"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Ungültiger Attributtyp (»string« oder »invalid« wird erwartet)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Ungültiger erweiterter Attributname"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Fehler beim Setzen des erweiterten Attributs »%s«: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (ungültige Kodierung)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Fehler beim Holen der Informationen für Datei »%s«: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Fehler beim Holen der Informationen für Dateideskriptor: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Ungültiger Attributtyp (»uint32« erwartet)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Ungültiger Attributtyp (»uint64« erwartet)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Ungültiger Attributtyp (»byte string« erwartet)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr ""
"Zugriffsrechte für symbolische Verknüpfungen können nicht gesetzt werden"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Fehler beim Setzen der Zugriffsrechte: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Fehler beim Setzen des Besitzers: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "Symbolische Verknüpfung darf nicht NULL sein"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Fehler beim Setzen der symbolischen Verknüpfung: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"Fehler beim Setzen der symbolischen Verknüpfung: Datei ist keine symbolische "
"Verknüpfung"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Zusätzliche Nanosekunden %d für UNIX-Zeitstempel %lld sind negativ"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"Zusätzliche Nanosekunden %d für UNIX-Zeitstempel %lld erreichen 1 Sekunde"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "UNIX-Zeitstempel %lld passt nicht in 64 Bit"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"UNIX-Zeitstempel %lld ist außerhalb des von Windows unterstützten Bereichs"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Dateiname »%s« kann nicht nach UTF-16 konvertiert werden"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Datei »%s« kann nicht geöffnet werden: Windows-Fehler %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
"Fehler beim Setzen der Änderungs- oder Zugriffszeit für Datei »%s«: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Fehler beim Setzen der Zugriffsrechte oder der Zugriffszeit: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "SELinux-Kontext darf nicht NULL sein"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux ist auf diesem System nicht aktiviert"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Fehler beim Setzen des SELinux-Kontexts: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Setzen des Attributs %s nicht unterstützt"
@@ -3564,42 +3593,42 @@ msgstr "Die Version von NetworkManager ist zu alt"
msgid "Output stream doesn’t implement write"
msgstr "Ausgabedatenstrom unterstützt kein Schreiben"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "An %s übermittelte Vektorsumme ist zu groß"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Quelldatenstrom ist bereits geschlossen"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Nicht näher angegebener Fehler beim Nachschlagen des Proxys"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Fehler beim Auflösen von »%s«: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s ist nicht implementiert"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Ungültige Domain"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Die Ressource auf »%s« existiert nicht"
@@ -3609,16 +3638,16 @@ msgstr "Die Ressource auf »%s« existiert nicht"
msgid "The resource at “%s” failed to decompress"
msgstr "Die Ressource auf »%s« konnte nicht entpackt werden"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Die Ressourcen-Dateien können nicht umbenannt werden"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "Die Ressource auf »%s« ist ein Ordner"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Eingabedatenstrom unterstützt kein Suchen"
@@ -3990,7 +4019,8 @@ msgstr "Ungültiger Socket, Initialisierung schlug fehl wegen: %s"
msgid "Socket is already closed"
msgstr "Der Socket ist bereits geschlossen"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "Zeitüberschreitung bei Ein-/Ausgabeoperation des Sockets"
@@ -3999,163 +4029,163 @@ msgstr "Zeitüberschreitung bei Ein-/Ausgabeoperation des Sockets"
msgid "creating GSocket from fd: %s"
msgstr "GSocket wird erstellt von Dateideskriptor: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Socket kann nicht angelegt werden: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Eine unbekannte Familie wurde angegeben"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Ein unbekanntes Protokoll wurde angegeben"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr ""
"Datagramm-Operationen können nicht auf einem Nicht-Datagramm-Socket "
"ausgeführt werden."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Datagramm-Operationen können nicht auf einem Socket mit gesetzter "
"Zeitüberschreitung ausgeführt werden."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "Lokale Adresse konnte nicht gelesen werden: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "Entfernte Adresse konnte nicht gelesen werden: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "Es konnte nicht gelauscht werden: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Fehler beim Binden an Adresse %s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Fehler beim Beitreten zur Multicast-Gruppe: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Fehler beim Verlassen der Multicast-Gruppe: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Quellen-spezifisches Multicast wird nicht unterstützt"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Nicht unterstützte Socket-Familie"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "Quellen-spezifisch ist keine IPv4-Adresse"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Schnittstellenname ist zu lang"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Schnittstelle nicht gefunden: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Quellen-spezifisches IPv4-Multicast wird nicht unterstützt"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Quellen-spezifisches IPv6-Multicast wird nicht unterstützt"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Fehler bei Annahme der Verbindung: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Verbindungsvorgang läuft"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Ausstehender Fehler konnte nicht erhalten werden: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Fehler beim Erhalt von Daten: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Fehler beim Senden von Daten: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Socket kann nicht heruntergefahren werden: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Fehler beim Schließen des Sockets: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Es wird auf eine Socket-Bedingung gewartet: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Nachricht konnte nicht gesendet werden: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Nachrichtenträger sind zu lang"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Fehler beim Senden der Nachricht: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage wird unter Windows nicht unterstützt"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Fehler beim Empfang der Nachricht: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Socket-Berechtigungen konnten nicht gelesen werden: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr ""
"g_socket_get_credentials ist für dieses Betriebssystem nicht implementiert"
@@ -4280,7 +4310,7 @@ msgstr "SOCKSv5-Proxy unterstützt den angegebenen Adresstyp nicht."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Unbekannter Fehler im SOCKSv5-Proxy."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr ""
@@ -4297,46 +4327,46 @@ msgstr "Weiterleitungen werden auf dieser Plattform nicht unterstützt"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Version %d der GThemedIcon-Kodierung kann nicht verarbeitet werden"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Es wurden keine gültigen Adressen gefunden"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Fehler beim Rückwärtsauflösen von »%s«: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Fehler bei der Verarbeitung des DNS %s-Eintrags: ungültiges DNS-Paket"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Kein DNS-Eintrag des angeforderten Typs für »%s«"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "»%s« kann vorübergehend nicht aufgelöst werden"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Fehler beim Auflösen von »%s«"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Ungültiges DNS-Paket"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Fehler bei der Verarbeitung der DNS-Antwort zu »%s«: "
@@ -4396,60 +4426,60 @@ msgstr "Das eingegebene Passwort ist ungültig."
msgid "Sending FD is not supported"
msgstr "Senden von FD wird nicht unterstützt"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "1 Kontrollnachricht wird erwartet, %d wurde erhalten"
msgstr[1] "1 Kontrollnachricht wird erwartet, %d wurden erhalten"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Unerwartete Art von Zusatzdaten"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "Ein Dateideskriptor wird erwartet, aber %d wurde erhalten\n"
msgstr[1] "Ein Dateideskriptor wird erwartet, aber %d wurden erhalten\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Ungültiger Dateideskriptor wurde erhalten"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Erhalten von FD wird nicht unterstützt"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Fehler beim Senden der Anmeldedaten: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr ""
"Fehler bei der Überprüfung, ob SO_PASSCRED für Socket aktiviert ist: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Fehler beim Aktivieren von SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Erwartet wurde der Empfang eines einzelnen Bytes als Anmeldedaten, jedoch "
"null Bytes gelesen"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Kontrollnachricht wurde nicht erwartet, %d wurde erhalten"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Fehler beim Deaktivieren von SO_PASSCRED: %s"
@@ -4465,7 +4495,7 @@ msgstr "Fehler beim Lesen aus dem Dateideskriptor: %s"
msgid "Error closing file descriptor: %s"
msgstr "Fehler beim Schließen des Dateideskriptors: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Wurzelordner des Dateisystems"
@@ -4549,137 +4579,132 @@ msgstr "Einen D-Bus-Dienst ausführen"
msgid "Wrong args\n"
msgstr "Falsche Argumente\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Unerwartetes Attribut »%s« des Elements »%s«"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Attribut »%s« des Elements »%s« konnte nicht gefunden werden"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Unerwarteter Tag »%s«; Tag »%s« wird erwartet"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Unerwarteter Tag »%s« innerhalb von »%s«"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Ungültiges Datum bzw. Uhrzeit »%s« in der Lesezeichendatei"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Es wurde keine gültige Lesezeichendatei in den Datenordnern gefunden"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Es existiert bereits ein Lesezeichen für die Adresse »%s«"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Es konnte kein Lesezeichen für die Adresse »%s« gefunden werden."
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Es ist kein MIME-Typ im Lesezeichen für die Adresse »%s« definiert."
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr ""
"Es konnte keine »privat«-Markierung für das Lesezeichen für die Adresse »%s« "
"gefunden werden."
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr ""
"Es wurden keine Gruppen für das Lesezeichen für die Adresse »%s« festgelegt."
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr ""
"Es wurde keine Anwendung namens »%s« gefunden, die ein Lesezeichen für »%s« "
"registriert hat."
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr ""
"Die Befehlszeile »%s« konnte nicht mit der Adresse »%s« verknüpft werden."
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Nicht darstellbares Zeichen in Umwandlungsausgabe"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Bruchstückhafte Zeichenfolge am Eingabeende"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Notnagel »%s« kann nicht in Kodierung »%s« umgewandelt werden"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Eingebettetes NUL-Byte in Umwandlungseingabe"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Eingebettetes NUL-Byte in Umwandlungsausgabe"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr ""
"Die Adresse »%s« ist keine absolute Adresse, die das »file«-Schema verwendet"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "Die lokale Adresse »%s« darf kein »#« enthalten"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "Die Adresse »%s« ist ungültig"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Der Rechnername der Adresse »%s« ist ungültig"
# CHECK
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "Die Adresse »%s« enthält ungültige Escape-Zeichen"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Der Pfadname »%s« ist kein absoluter Pfad"
@@ -5102,86 +5127,86 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "Fehler beim Öffnen des Ordners »%s«: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "%lu Byte konnte nicht zugeordnet werden, um Datei »%s« zu lesen"
msgstr[1] "%lu Bytes konnten nicht zugeordnet werden, um Datei »%s« zu lesen"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Fehler beim Lesen der Datei »%s«: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Datei »%s« ist zu groß"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Aus der Datei »%s« konnte nicht gelesen werden: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Datei »%s« konnte nicht geöffnet werden: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr ""
"Attribute der Datei »%s« konnten nicht ermittelt werden: fstat() "
"gescheitert: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Datei »%s« konnte nicht geöffnet werden: fdopen() gescheitert: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr ""
"Datei »%s« konnte nicht in »%s« umbenannt werden: g_rename() ist "
"gescheitert: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Schreiben der Datei »%s« schlug fehl: write() ist gescheitert: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr ""
"Datei »%s« konnte nicht geschrieben werden: fsync() ist gescheitert: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Datei »%s« konnte nicht angelegt werden: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr ""
"Die vorhandene Datei »%s« konnte nicht entfernt werden: g_unlink() ist "
"gescheitert: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Vorlage »%s« ungültig, sollte kein »%s« enthalten"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Vorlage »%s« enthält nicht XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Die symbolische Verknüpfung »%s« konnte nicht gelesen werden: %s"
@@ -5207,15 +5232,15 @@ msgstr "Kanal endet mit einem Teilzeichen"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Raw-read in g_io_channel_read_to_end nicht möglich"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Es wurde keine gültige Schlüsselwertedatei in den Suchordnern gefunden"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Keine reguläre Datei"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5223,45 +5248,45 @@ msgstr ""
"Die Schlüsselwertedatei enthält die Zeile »%s«, welche kein zulässiges "
"Schlüssel-Wert-Paar, keine Gruppe und kein Kommentar ist"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Ungültiger Gruppenname: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Die Schlüsselwertedatei beginnt nicht mit einer Gruppe"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Ungültiger Schlüsselname: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Die Schlüsselwertedatei enthält die nicht unterstützte Kodierung »%s«"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Die Schlüsselwertedatei enthält nicht die Gruppe »%s«"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Die Schlüsselwertedatei hat keinen Schlüssel »%s« in der Gruppe »%s«"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
"Die Schlüsselwertedatei enthält den Schlüssel »%s« mit dem Wert »%s«, der "
"nicht in UTF-8 kodiert ist"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
@@ -5269,7 +5294,7 @@ msgstr ""
"Die Schlüsselwertedatei enthält den Schlüssel »%s« mit einem Wert, der nicht "
"interpretiert werden konnte."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5278,87 +5303,87 @@ msgstr ""
"Die Schlüsselwertedatei enthält den Schlüssel »%s« in der Gruppe »%s« mit "
"einem Wert, der nicht interpretiert werden konnte."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr ""
"Der Schlüssel »%s« in der Gruppe »%s« enthält den Wert »%s«, obwohl %s "
"erwartet wurde"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "Die Schlüsselwertedatei enthält ein Escape-Zeichen am Zeilenende"
# CHECK
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4378
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Die Schlüsselwertedatei enthält das ungültige Escape-Zeichen »%s«"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4530
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Der Wert »%s« konnte nicht als Zahl interpretiert werden."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4544
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Ganzzahliger Wert »%s« ist außerhalb des Wertebereiches"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Der Wert »%s« konnte nicht als Gleitkommazahl interpretiert werden."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4616
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr ""
"Der Wert »%s« konnte nicht als boolescher Ausdruck interpretiert werden."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"Attribute der Datei »%s%s%s%s« konnten nicht ermittelt werden: fstat() "
"gescheitert: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "»%s%s%s%s« konnte nicht abgebildet werden: mmap() ist gescheitert: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Datei »%s« konnte nicht geöffnet werden: open() ist gescheitert: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Fehler in Zeile %d, Zeichen %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Ungültiger UTF-8-kodierter Text im Namen – »%s« ist nicht gültig"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "»%s« ist kein gültiger Name"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "»%s« ist kein gültiger Name: »%c«"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Fehler in Zeile %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5367,7 +5392,7 @@ msgstr ""
"»%-.*s«, was eine Zahl in einer Zeichenreferenz (wie &#234;) sein sollte, "
"konnte nicht analysiert werden – vielleicht ist die Zahl zu groß"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5377,24 +5402,24 @@ msgstr ""
"&-Zeichen benutzt, ohne eine Entität beginnen zu wollen – umschreiben Sie "
"das »&« als &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Zeichenreferenz »%-.*s« kodiert kein zulässiges Zeichen"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Leere Entität »&;« gefunden; gültige Entitäten sind &amp; &quot; &lt; &gt; "
"&apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Entitätenname »%-.*s« ist unbekannt"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5403,11 +5428,11 @@ msgstr ""
"Zeichen benutzt, ohne eine Entität beginnen zu wollen – umschreiben Sie das "
"»&« als &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Dokument muss mit einem Element beginnen (e.g. <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5416,7 +5441,7 @@ msgstr ""
"»%s« ist kein gültiges Zeichen nach einem »<«-Zeichen; es darf keinen "
"Elementnamen beginnen"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5425,12 +5450,12 @@ msgstr ""
"Seltsames Zeichen »%s«, »>« erwartet um Start-Tag des leeren Elements »%s« "
"abzuschließen"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Zu viele Attribute im Element »%s«"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5438,7 +5463,7 @@ msgstr ""
"Seltsames Zeichen »%s«, »=« wird nach dem Attributnamen »%s« des Elements "
"»%s« erwartet"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5449,7 +5474,7 @@ msgstr ""
"»/« erwartet, um das Start-Tag des Elements »%s« abzuschließen; vielleicht "
"haben Sie ein ungültiges Zeichen in einem Attributnamen benutzt"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5459,7 +5484,7 @@ msgstr ""
"Elements »%s« wurde ein Anführungszeichen nach dem Gleichheitszeichen "
"erwartet"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5468,7 +5493,7 @@ msgstr ""
"»%s« ist kein gültiges Zeichen, wenn es auf die Zeichen »</« folgt; »%s« "
"darf keinen Elementnamen beginnen"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5477,26 +5502,26 @@ msgstr ""
"»%s« ist kein gültiges Zeichen, wenn es auf den schließenden Elementnamen "
"»%s« folgt; das erlaubte Zeichen ist »>«"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Element »%s« wurde geschlossen, kein Element ist derzeit offen"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr ""
"Element »%s« wurde geschlossen, aber das derzeit offene Element ist »%s«"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Dokument ist leer oder enthält nur Leerraum"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "Dokument endete unerwartet nach einer offenen spitzen Klammer »<«"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5505,7 +5530,7 @@ msgstr ""
"Dokument endete unerwartet mit noch offenen Elementen – »%s« war das letzte "
"offene Element"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5514,19 +5539,19 @@ msgstr ""
"Dokument endete unerwartet, es wurde eine spitze Klammer »>«, die das Tag "
"<%s/> schließt, erwartet"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Dokument endete unerwartet innerhalb eines Elementnamens"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Dokument endete unerwartet innerhalb eines Attributnamens"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Dokument endete unerwartet innerhalb eines Element-öffnenden Tags."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5534,25 +5559,25 @@ msgstr ""
"Dokument endete unerwartet nach dem Gleichheitszeichen, das einem "
"Attributnamen folgt; kein Attributwert"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Dokument endete unerwartet innerhalb eines Attributwertes"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr ""
"Dokument endete unerwartet innerhalb eines schließenden Tags für das Element "
"»%s«"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Dokument endete unerwartet innerhalb eines schließenden Tags für ein "
"ungeöffnetes Element"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"Dokument endete unerwartet innerhalb eines Kommentars oder "
@@ -5617,190 +5642,187 @@ msgstr "Für %s wird ein Argument benötigt"
msgid "Unknown option %s"
msgstr "Unbekannte Option %s"
-#: glib/gregex.c:474
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "Beschädigtes Objekt"
-#: glib/gregex.c:476
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "Nicht genügend freier Speicher"
-#: glib/gregex.c:482
-msgid "backtracking limit reached"
-msgstr "Rückverfolgungsgrenze wurde erreicht"
-
-#: glib/gregex.c:493 glib/gregex.c:746 glib/gregex.c:775
+#: glib/gregex.c:497
msgid "internal error"
msgstr "Interner Fehler"
-#: glib/gregex.c:495
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr ""
"Der Ausdruck enthält Elemente, die teilweise Übereinstimmung nicht "
"unterstützen"
-#: glib/gregex.c:497
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"Rückreferenzen als Bedingungen werden für teilweise Übereinstimmung nicht "
"unterstützt"
-#: glib/gregex.c:503
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "Rekursionslimit wurde erreicht"
-#: glib/gregex.c:505
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "fehlerhafter Versatz"
-#: glib/gregex.c:507
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "Rekursionsschleife"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:510
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr ""
+"Übereinstimmungsmodus wurde angefragt, der nicht für JIT kompiliert ist"
-#: glib/gregex.c:514
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "Unbekannter Fehler"
-#: glib/gregex.c:535
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ am Ende des Ausdrucks"
-#: glib/gregex.c:539
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c am Ende des Ausdrucks"
-#: glib/gregex.c:544
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "Unbekanntes Zeichen nach \\"
# CHECK
-#: glib/gregex.c:548
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "Ziffern wirkungslos in {}-Quantifizierer"
-#: glib/gregex.c:552
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "Ziffer zu groß in {}-Quantifizierer"
-#: glib/gregex.c:556
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "Terminierendes ] für Zeichenklasse fehlt"
-#: glib/gregex.c:560
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "Ungültige Escape-Sequenz in Zeichenklasse"
# CHECK
-#: glib/gregex.c:564
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "Bereich wirkungslos in Zeichenklasse"
-#: glib/gregex.c:569
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "Nichts zum Wiederholen"
-#: glib/gregex.c:573
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "Unbekanntes Zeichen nach (? oder (?-"
-#: glib/gregex.c:577
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX-benannte Klassen werden nur innerhalb einer Klasse unterstützt"
-#: glib/gregex.c:581
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "POSIX-Elementverknüpfungen nicht unterstützt"
-#: glib/gregex.c:587
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "Abschließende ) fehlt"
-#: glib/gregex.c:591
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "Referenz auf nicht existierenden Unterausdruck"
-#: glib/gregex.c:595
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "fehlende ) nach Kommentar"
-#: glib/gregex.c:599
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "Regulärer Ausdruck zu groß"
-#: glib/gregex.c:603
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "Falsch formatierte Zahl oder Name nach (?("
-#: glib/gregex.c:607
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "Rückblickende Annahme hat keine feste Länge"
-#: glib/gregex.c:611
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "Bedingte Gruppe enthält mehr als zwei Verzweigungen"
-#: glib/gregex.c:615
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "Annahme erwartet nach (?("
-#: glib/gregex.c:619
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "Eine nummerierte Referenz darf nicht Null sein"
-#: glib/gregex.c:623
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "Unbekannter POSIX-Klassenname"
-#: glib/gregex.c:628
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "Wert in \\x{…}-Sequenz ist zu groß"
-#: glib/gregex.c:632
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C nicht erlaubt in rückblickender Annahme"
-#: glib/gregex.c:636
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "Terminierung im Namen des Unterausdrucks fehlt"
-#: glib/gregex.c:640
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "Zwei benannte Unterausdrücke haben den gleichen Namen"
-#: glib/gregex.c:644
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "Fehlerhafte \\P- oder \\p-Sequenz"
-#: glib/gregex.c:648
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "Unbekannte Eigenschaftsname nach \\P oder \\p"
-#: glib/gregex.c:652
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "Name des Unterausdrucks ist zu lang (maximal 32 Zeichen)"
-#: glib/gregex.c:656
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "Zu viele benannte Unterausdrücke (maximal 10.000)"
-#: glib/gregex.c:660
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "Oktaler Wert ist größer als \\377"
-#: glib/gregex.c:664
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "DEFINE-Gruppe enthält mehr als eine Verzweigung"
-#: glib/gregex.c:668
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "Inkonsistente NEWLINE-Optionen"
-#: glib/gregex.c:672
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5808,124 +5830,124 @@ msgstr ""
"Auf \\g folgt kein eingeklammerter, in eckigen Klammern eingeklammerter oder "
"zitierter Name oder eine Zahl oder eine einfache Zahl"
-#: glib/gregex.c:677
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "Ein Argument ist für (*ACCEPT), (*FAIL), oder (*COMMIT) nicht erlaubt"
-#: glib/gregex.c:681
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) nicht erkannt"
-#: glib/gregex.c:685
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "Zahl ist zu groß"
-#: glib/gregex.c:689
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "Name des Unterausdrucks nach (?& fehlt"
-#: glib/gregex.c:693
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr ""
"Verschiedene Namen für Unterausdrücke der gleichen Nummer sind nicht erlaubt"
-#: glib/gregex.c:697
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) benötigt ein Argument"
-#: glib/gregex.c:701
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "Auf \\c muss ein ASCII-Zeichen folgen"
-#: glib/gregex.c:705
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"Auf \\k folgt kein eingeklammerter, in eckigen Klammern eingeklammerter oder "
"zitierter Name"
-#: glib/gregex.c:709
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N wird in einer Klasse nicht unterstützt"
-#: glib/gregex.c:713
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "Name ist zu lang in (*MARK), (*PRUNE), (*SKIP), oder (*THEN)"
-#: glib/gregex.c:717 glib/gregex.c:856
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "Code-Überlauf"
-#: glib/gregex.c:721
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "Unbekanntes Zeichen nach (?P"
-#: glib/gregex.c:725
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "Überlauf beim Kompilieren des Arbeitsbereichs"
-#: glib/gregex.c:729
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr ""
"Bereits geprüfter, referenzierter Unterausdruck konnte nicht gefunden werden"
-#: glib/gregex.c:855 glib/gregex.c:1100 glib/gregex.c:2406
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Fehler beim Anwenden des regulären Ausdrucks %s: %s"
-#: glib/gregex.c:1696
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "PCRE-Bibliothek wurde ohne UTF8-Unterstützung kompiliert"
-#: glib/gregex.c:1704
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr ""
"PCRE-Bibliothek wurde mit Unterstützung für nicht-kompatible Optionen "
"kompiliert"
-#: glib/gregex.c:1813
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr ""
"Fehler beim Kompilieren des regulären Ausdrucks »%s« bei Zeichen %s: %s"
-#: glib/gregex.c:2848
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "Hexadezimalzahl oder »}« erwartet"
-#: glib/gregex.c:2864
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "Hexadezimalzahl erwartet"
-#: glib/gregex.c:2904
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "Fehlendes »<» in symbolischer Referenz"
-#: glib/gregex.c:2913
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "Unvollendete symbolische Referenz"
-#: glib/gregex.c:2920
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "Symbolische Referenz der Länge 0"
-#: glib/gregex.c:2931
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "Ziffer erwartet"
-#: glib/gregex.c:2949
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "Illegale symbolische Referenz"
-#: glib/gregex.c:3012
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "Verirrtes abschließendes »\\«"
-#: glib/gregex.c:3016
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "Unbekannte Escape-Sequenz"
-#: glib/gregex.c:3026
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Fehler beim Verarbeiten des Ersetzungstextes »%s« an Zeichen %lu: %s"
@@ -5956,142 +5978,147 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Text war leer (oder enthielt nur Leerraum)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Daten vom Kindprozess konnten nicht gelesen werden (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Unerwarteter Fehler beim Lesen von Daten eines Kindprozesses (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Unerwarteter Fehler in waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Der Kindprozess wurde mit Status %ld beendet"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Der Kindprozess wurde mit Signal %ld beendet"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Der Kindprozess wurde mit Signal %ld beendet"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Der Kindprozess wurde gewaltsam beendet"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Lesen aus Weiterleitung zum Kind (%s) gescheitert"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Abspalten des Kindprozesses »%s« gescheitert (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Abspalten gescheitert (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "In Ordner »%s« (%s) konnte nicht gewechselt werden"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Kindprozess »%s« konnte nicht ausgeführt werden (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr ""
"Öffnen der Datei zur Neuzuweisung des Datei-Deskriptors ist fehlgeschlagen "
"(%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr ""
"Duplizieren des Datei-Deskriptors für Kindprozess ist fehlgeschlagen (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Abspalten des Kindprozesses gescheitert (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr ""
"Schließen des Datei-Deskriptors des Kindprozesses ist fehlgeschlagen (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Unbekannter Fehler beim Ausführen des Kindprozesses »%s«"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
"Es konnten nicht genug Daten von Kind-Programmkennungsweiterleitung (%s) "
"gelesen werden"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Ungültiges Datei-Deskriptor-Argument der Quelle"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Daten konnten nicht vom Kindprozess gelesen werden"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Kindprozess konnte nicht ausgeführt werden (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "dup() im Kindprozess ist fehlgeschlagen (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Ungültiger Programmname: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Ungültige Zeichenkette im Argumentsvektor bei %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Ungültige Zeichenkette in der Umgebung: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Ungültiger Arbeitsordner: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Hilfsprogramm (%s) konnte nicht ausgeführt werden"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6099,225 +6126,225 @@ msgstr ""
"Unerwarteter Fehler in g_io_channel_win32_poll() beim Lesen aus dem "
"Kindprozess"
-#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3474
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Leere Zeichenkette ist keine Zahl"
-#: glib/gstrfuncs.c:3396
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "»%s« ist keine vorzeichenbehaftete Zahl"
-#: glib/gstrfuncs.c:3406 glib/gstrfuncs.c:3510
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Zahl »%s« ist außerhalb des zulässigen Bereichs [%s, %s]"
-#: glib/gstrfuncs.c:3500
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "»%s« ist keine vorzeichenlose Zahl"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "Unzulässige %-Kodierung in Adresse"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Unzulässiges Zeichen in Adresse"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Nicht-UTF-8-Zeichen in Adresse"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Ungültige IPv6-Adresse »%.*s« in Adresse"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Unzulässig kodierte IP-Adresse »%.*s« in Adresse"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Unzulässig internationalisierter Rechnername »%.*s« in Adresse"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Port »%.*s« in Adresse konnte nicht verarbeitet werden"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Port »%.*s« in Adresse ist außerhalb des Bereiches"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "Adresse »%s« ist keine absolute Adresse"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "Adresse »%s« hat keine Host-Komponente"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "Adresse ist nicht absolut und es wurde keine Basis-Adresse angegeben"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "»=« und Parameter-Wert fehlen"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Fehler beim Anfordern von Speicher"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Zeichen außerhalb des Bereiches für UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Ungültige Folge in Umwandlungseingabe"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Zeichen außerhalb des Bereiches für UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "KB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "KB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "EiB"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "Byte"
msgstr[1] "Bytes"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "Bit"
@@ -6325,7 +6352,7 @@ msgstr[1] "Bits"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6333,7 +6360,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6341,7 +6368,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6350,14 +6377,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6365,14 +6392,14 @@ msgstr[0] "%s Byte"
msgstr[1] "%s Bytes"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s bit"
msgstr[1] "%s bits"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6384,39 +6411,44 @@ msgstr[1] "%u Bytes"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
-#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "Name bearbeiten: %s\n"
+#~ msgid "GApplication options"
+#~ msgstr "Optionen für GApplication"
+
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "Die lokale Adresse »%s« darf kein »#« enthalten"
+
+#~ msgid "backtracking limit reached"
+#~ msgstr "Rückverfolgungsgrenze wurde erreicht"
#~ msgid "internal error or corrupted object"
#~ msgstr "Interner Fehler oder beschädigtes Objekt"
@@ -6470,99 +6502,75 @@ msgstr "%.1f EB"
#~ msgstr ""
#~ "PCRE-Bibliothek wurde ohne Unterstützung für UTF8-Eigenschaften kompiliert"
-#, c-format
#~ msgid "Error while optimizing regular expression %s: %s"
#~ msgstr "Fehler beim Optimieren des regulären Ausdrucks %s: %s"
-#, c-format
#~ msgid "%.1f MB"
#~ msgstr "%.1f MB"
-#, c-format
#~ msgid "%.1f GB"
#~ msgstr "%.1f GB"
-#, c-format
#~ msgid "%.1f TB"
#~ msgstr "%.1f TB"
-#, c-format
#~ msgid "%.1f PB"
#~ msgstr "%.1f PB"
-#, c-format
#~ msgid "%.1f EB"
#~ msgstr "%.1f EB"
-#, c-format
#~ msgid "%.1f KiB"
#~ msgstr "%.1f KiB"
-#, c-format
#~ msgid "%.1f MiB"
#~ msgstr "%.1f MiB"
-#, c-format
#~ msgid "%.1f GiB"
#~ msgstr "%.1f GiB"
-#, c-format
#~ msgid "%.1f TiB"
#~ msgstr "%.1f TiB"
-#, c-format
#~ msgid "%.1f PiB"
#~ msgstr "%.1f PiB"
-#, c-format
#~ msgid "%.1f EiB"
#~ msgstr "%.1f EiB"
-#, c-format
#~ msgid "%.1f kb"
#~ msgstr "%.1f kbit"
-#, c-format
#~ msgid "%.1f Mb"
#~ msgstr "%.1f Mbit"
-#, c-format
#~ msgid "%.1f Gb"
#~ msgstr "%.1f Gbit"
-#, c-format
#~ msgid "%.1f Tb"
#~ msgstr "%.1f Tbit"
-#, c-format
#~ msgid "%.1f Pb"
#~ msgstr "%.1f Pbit"
-#, c-format
#~ msgid "%.1f Eb"
#~ msgstr "%.1f Ebit"
-#, c-format
#~ msgid "%.1f Kib"
#~ msgstr "%.1f Kibit"
-#, c-format
#~ msgid "%.1f Mib"
#~ msgstr "%.1f Mibit"
-#, c-format
#~ msgid "%.1f Gib"
#~ msgstr "%.1f Gibit"
-#, c-format
#~ msgid "%.1f Tib"
#~ msgstr "%.1f Tibit"
-#, c-format
#~ msgid "%.1f Pib"
#~ msgstr "%.1f Pibit"
-#, c-format
#~ msgid "%.1f Eib"
#~ msgstr "%.1f Eibit"
diff --git a/po/en_GB.po b/po/en_GB.po
index f3af2a009..7316cb9a8 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -4,14 +4,14 @@
# Gareth Owen <gowen72@yahoo.com> 2004
# Philip Withnall <philip@tecnocode.co.uk>, 2010.
# Zander Brown <zbrown@gnome.org>, 2019-2021.
-# Bruce Cowan <bruce@bcowan.me.uk>, 2009-2022.
+# Bruce Cowan <bruce@bcowan.me.uk>, 2009-2023.
#
msgid ""
msgstr ""
"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-05 19:22+0000\n"
-"PO-Revision-Date: 2022-09-05 10:29+0100\n"
+"POT-Creation-Date: 2023-08-31 11:01+0000\n"
+"PO-Revision-Date: 2023-09-06 12:31+0100\n"
"Last-Translator: Bruce Cowan <bruce@bcowan.me.uk>\n"
"Language-Team: English - United Kingdom <en@li.org>\n"
"Language: en_GB\n"
@@ -19,7 +19,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Gtranslator 42.0\n"
+"X-Generator: Poedit 3.3.1\n"
"X-Project-Style: gnome\n"
"X-DL-Team: en_GB\n"
"X-DL-Module: glib\n"
@@ -27,20 +27,20 @@ msgstr ""
"X-DL-Domain: po\n"
"X-DL-State: Translating\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Setting default applications not supported yet"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr "Setting application as last used for type not supported yet"
-#: gio/gappinfo.c:808
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "Failed to find default application for content type ‘%s’"
-#: gio/gappinfo.c:868
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Failed to find default application for URI Scheme ‘%s’"
@@ -140,7 +140,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Application identifier in D-Bus format (eg: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FILE"
@@ -237,11 +237,11 @@ msgstr "unable to connect to D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "error sending %s message to application: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "action name must be given after application id\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -250,25 +250,25 @@ msgstr ""
"invalid action name: “%s”\n"
"action names must consist of only alphanumerics, “-” and “.”\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "error parsing action parameter: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "actions accept a maximum of one parameter\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "list-actions command takes only the application id"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "unable to find desktop file for application %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -280,7 +280,7 @@ msgstr ""
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Too large count value passed to %s"
@@ -303,7 +303,7 @@ msgstr "Stream is already closed"
msgid "Truncate not supported on base stream"
msgstr "Truncate not supported on base stream"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -323,13 +323,13 @@ msgstr "Not enough space in destination"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
#: glib/gutf8.c:892 glib/gutf8.c:1346
msgid "Invalid byte sequence in conversion input"
msgstr "Invalid byte sequence in conversion input"
#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Error during conversion: %s"
@@ -386,17 +386,17 @@ msgstr "Credentials spoofing is not possible on this OS"
msgid "Unexpected early end-of-stream"
msgstr "Unexpected early end-of-stream"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Unsupported key “%s” in address entry “%s”"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Meaningless key/value pair combination in address entry “%s”"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -405,7 +405,7 @@ msgstr ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
"keys)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -528,7 +528,7 @@ msgstr "Error spawning command line “%s”: "
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr "Cannot determine session bus address (not implemented for this OS)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -537,7 +537,7 @@ msgstr ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
"— unknown value “%s”"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -545,7 +545,7 @@ msgstr ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Unknown bus type %d"
@@ -565,218 +565,230 @@ msgid ""
msgstr ""
"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Unexpected lack of content trying to read a byte"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "User IDs must be the same for peer and server"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Error when getting information for directory “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Error creating directory “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1095 gio/gfile.c:1333
#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gfile.c:3797 gio/gfile.c:3937 gio/gfile.c:4349 gio/gfile.c:4819
+#: gio/gfile.c:5230 gio/gfile.c:5315 gio/gfile.c:5405 gio/gfile.c:5502
+#: gio/gfile.c:5589 gio/gfile.c:5690 gio/gfile.c:8819 gio/gfile.c:8909
+#: gio/gfile.c:8993 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Operation not supported"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Error opening keyring “%s” for reading: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "Line %d of the keyring at “%s” with content “%s” is malformed"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Didn’t find cookie with id %d in the keyring at “%s”"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Error creating lock file “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Error deleting stale lock file “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Error closing (unlinked) lock file “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Error unlinking lock file “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Error opening keyring “%s” for writing: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Additionally, releasing the lock for “%s” also failed: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "The connection is closed"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Timeout was reached"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Unsupported flags encountered when constructing a client-side connection"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "No such property “%s”"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Property “%s” is not readable"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Property “%s” is not writable"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr "Error setting property “%s”: Expected type “%s” but got “%s”"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "No such interface “%s”"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "No such interface “%s” on object at path %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "No such method “%s”"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Type of message, “%s”, does not match expected type “%s”"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "An object is already exported for the interface %s at %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Unable to retrieve property %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Unable to set property %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Method “%s” returned type “%s”, but expected “%s”"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Method “%s” on interface “%s” with signature “%s” does not exist"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "A subtree is already exported for %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Object does not exist at path “%s”"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "type is INVALID"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "METHOD_CALL message: PATH or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1324
+#| msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "METHOD_RETURN message: REPLY_SERIAL header field is missing"
+#: gio/gdbusmessage.c:1340
+#| msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+#: gio/gdbusmessage.c:1360
+#| msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1384
+#| msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -784,7 +796,7 @@ msgstr ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -792,19 +804,19 @@ msgstr ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "Wanted to read %lu byte but only got %lu"
msgstr[1] "Wanted to read %lu bytes but only got %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Expected NUL byte after the string “%s” but found byte %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -813,21 +825,21 @@ msgstr ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
"(length of string is %d). The valid UTF-8 string up until that point was “%s”"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Value nested too deeply"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Parsed value “%s” is not a valid D-Bus object path"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Parsed value “%s” is not a valid D-Bus signature"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -838,7 +850,7 @@ msgstr[0] ""
msgstr[1] ""
"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -847,23 +859,23 @@ msgstr ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
"bytes, but found to be %u bytes in length"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Empty structures (tuples) are not allowed in D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Parsed value “%s” for variant is not a valid D-Bus signature"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr ""
"Error deserialising GVariant with type string “%s” from the D-Bus wire format"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -872,60 +884,60 @@ msgstr ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
"0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Invalid major protocol version. Expected 1 but found %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Signature header found but is not of type signature"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr "Signature header with signature “%s” found but message body is empty"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Parsed value “%s” is not a valid D-Bus signature (for body)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
msgstr[0] "No signature header in message but the message body is %u byte"
msgstr[1] "No signature header in message but the message body is %u bytes"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Cannot deserialise message: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr ""
"Error serialising GVariant with type string “%s” to the D-Bus wire format"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
"Number of file descriptors in message (%d) differs from header field (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Cannot serialise message: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "Message body has signature “%s” but there is no signature header"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -934,52 +946,52 @@ msgstr ""
"Message body has type signature “%s” but signature in the header field is "
"“%s”"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Message body is empty but signature in the header field is “(%s)”"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Error return with body of type “%s”"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Error return with empty body"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Type any character to close this window)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "Session dbus not running, and autolaunch failed"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Unable to get Hardware profile: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Unable to load %s or %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Error calling StartServiceByName for %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Unexpected reply %d from StartServiceByName(\"%s\") method"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -989,25 +1001,25 @@ msgstr ""
"owner, and proxy was constructed with the "
"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Abstract namespace not supported"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Cannot specify nonce file when creating a server"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Error writing nonce file at “%s”: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "The string “%s” is not a valid D-Bus GUID"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Cannot listen on unsupported transport “%s”"
@@ -1035,14 +1047,14 @@ msgstr ""
"\n"
"Use “%s COMMAND --help” to get help on each command.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Error: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Error parsing introspection XML: %s\n"
@@ -1052,50 +1064,50 @@ msgstr "Error parsing introspection XML: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Error: %s is not a valid name\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Error: %s is not a valid object path\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Connect to the system bus"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Connect to the session bus"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Connect to given D-Bus address"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Connection Endpoint Options:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Options specifying the connection endpoint"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "No connection endpoint specified"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Multiple connection endpoints specified"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr ""
"Warning: According to introspection data, interface “%s” does not exist\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1104,164 +1116,164 @@ msgstr ""
"Warning: According to introspection data, method “%s” does not exist on "
"interface “%s”\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Optional destination for signal (unique name)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Object path to emit signal on"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Signal and interface name"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Emit a signal."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Error connecting: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Error: %s is not a valid unique bus name.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Error: Object path is not specified\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Error: Signal name is not specified\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Error: Signal name “%s” is invalid\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Error: %s is not a valid interface name\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Error: %s is not a valid member name\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Error parsing parameter %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Error flushing connection: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Destination name to invoke method on"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Object path to invoke method on"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Method and interface name"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Timeout in seconds"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Allow interactive authorisation"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Invoke a method on a remote object."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Error: Destination is not specified\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Error: %s is not a valid bus name\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Error: Method name is not specified\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Error: Method name “%s” is invalid\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Error parsing parameter %d of type “%s”: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Error adding handle %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Destination name to introspect"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Object path to introspect"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Print XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Introspect children"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Only print properties"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Introspect a remote object."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Destination name to monitor"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Object path to monitor"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Monitor a remote object."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Error: can’t monitor a non-message-bus connection\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Service to activate before waiting for the other one (well-known name)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1269,68 +1281,73 @@ msgstr ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPTION…] BUS-NAME"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Wait for a bus name to appear."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Error: A service to activate for must be specified.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Error: A service to wait for must be specified.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Error: Too many arguments.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Error: %s is not a valid well-known bus name.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Not authorised to change debug settings"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5113
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Unnamed"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Desktop file didn’t specify Exec field"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Unable to find terminal required for application"
-#: gio/gdesktopappinfo.c:3631
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Program ‘%s’ not found in $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Can’t create user application configuration folder %s: %s"
-#: gio/gdesktopappinfo.c:3635
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Can’t create user MIME configuration folder %s: %s"
-#: gio/gdesktopappinfo.c:3877 gio/gdesktopappinfo.c:3901
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Application information lacks an identifier"
-#: gio/gdesktopappinfo.c:4137
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Can’t create user desktop file %s"
-#: gio/gdesktopappinfo.c:4273
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Custom definition for %s"
@@ -1403,7 +1420,7 @@ msgstr "Expected a GEmblem for GEmblemedIcon"
msgid "Containing mount does not exist"
msgstr "Containing mount does not exist"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2641 gio/glocalfile.c:2515
msgid "Can’t copy over directory"
msgstr "Can’t copy over directory"
@@ -1428,49 +1445,49 @@ msgstr "Splice not supported"
msgid "Error splicing file: %s"
msgstr "Error splicing file: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3195
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Copy (reflink/clone) between mounts is not supported"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3199
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Copy (reflink/clone) is not supported or invalid"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3204
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Copy (reflink/clone) is not supported or didn’t work"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3269
msgid "Can’t copy special file"
msgstr "Can’t copy special file"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4163
msgid "Invalid symlink value given"
msgstr "Invalid symlink value given"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4173 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Symbolic links not supported"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4460
msgid "Trash not supported"
msgstr "Wastebasket not supported"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4572
#, c-format
msgid "File names cannot contain “%c”"
msgstr "File names cannot contain “%c”"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7003 gio/gfile.c:7129
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Failed to create a temporary directory for template “%s”: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7418 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "volume doesn’t implement mount"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7532 gio/gfile.c:7609
msgid "No application is registered as handling this file"
msgstr "No application is registered as handling this file"
@@ -1479,11 +1496,11 @@ msgid "Enumerator is closed"
msgstr "Enumerator is closed"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:424 gio/gfileenumerator.c:523
msgid "File enumerator has outstanding operation"
msgstr "File enumerator has outstanding operation"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:415 gio/gfileenumerator.c:514
msgid "File enumerator is already closed"
msgstr "File enumerator is already closed"
@@ -1549,37 +1566,37 @@ msgstr "HTTP proxy response too big"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "HTTP proxy server closed connection unexpectedly."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Wrong number of tokens (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "No type for class name %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Type %s does not implement the GIcon interface"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Type %s is not classed"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Malformed version number: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Type %s does not implement from_tokens() on the GIcon interface"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Can’t handle the supplied version of the icon encoding"
@@ -1726,12 +1743,12 @@ msgid "Error writing to stdout"
msgstr "Error writing to stdout"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1210 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "LOCATION"
@@ -1749,8 +1766,8 @@ msgstr ""
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1261 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "No locations given"
@@ -1846,57 +1863,57 @@ msgstr "Don’t follow symbolic links"
msgid "attributes:\n"
msgstr "attributes:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#: gio/gio-tool-info.c:166 gio/gio-tool-info.c:176
#, c-format
msgid "display name: %s\n"
msgstr "display name: %s\n"
-#: gio/gio-tool-info.c:182
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "name: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "type: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "size: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "hidden\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "local path: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "unix mount: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Settable attributes:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Writable attribute namespaces:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Show information about locations."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1962,11 +1979,11 @@ msgstr "Print display names"
msgid "Print full URIs"
msgstr "Print full URIs"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "List the contents of the locations."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2160,19 +2177,19 @@ msgstr "Mount a TCRYPT hidden volume"
msgid "Mount a TCRYPT system volume"
msgstr "Mount a TCRYPT system volume"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Anonymous access denied"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:533
msgid "No drive for device file"
msgstr "No drive for device file"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1025
msgid "No volume for given ID"
msgstr "No volume for given ID"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1214
msgid "Mount or unmount the locations."
msgstr "Mount or unmount the locations."
@@ -2361,9 +2378,9 @@ msgid ""
"Note: for --restore switch, if the original location of the trashed file \n"
"already exists, it will not be overwritten unless --force is set."
msgstr ""
-"Note: for --restore switch, if the original location of the file before\n"
-"moved to the wastebasket already exists, it will not be overwritten unless\n"
-"--force is set."
+"Note: for --restore switch, if the original location of the file before \n"
+"being moved to the wastebasket already exists, it will not be \n"
+"overwritten unless --force is set."
#: gio/gio-tool-trash.c:260
msgid "Location given doesn't start with trash:///"
@@ -2373,11 +2390,11 @@ msgstr "Location given doesn’t start with trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Follow symbolic links, mounts and shortcuts"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "List contents of directories in a tree-like format."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Element <%s> not allowed inside <%s>"
@@ -2432,7 +2449,7 @@ msgstr "Error compressing file %s"
msgid "text may not appear inside <%s>"
msgstr "text may not appear inside <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Show program version and exit"
@@ -2448,8 +2465,8 @@ msgstr ""
"The directories to load files referenced in FILE from (default: current "
"directory)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "DIRECTORY"
@@ -2503,7 +2520,7 @@ msgstr "C identifier name used for the generated source code"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "The target C compiler (default: the CC environment variable)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2513,122 +2530,122 @@ msgstr ""
"Resource specification files have the extension .gresource.xml,\n"
"and the resource file have the extension called .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "You should give exactly one file name\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "nick must be a minimum of 2 characters"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Invalid numeric value"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> already specified"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' already specified"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "flags values must have at most 1 bit set"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> must contain at least one <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> is not contained in the specified range"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> is not a valid member of the specified enumerated type"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> contains string not in the specified flags type"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> contains a string not in <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> already specified for this key"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> not allowed for keys of type “%s”"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "<range> specified minimum is greater than maximum"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "unsupported l10n category: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n requested, but no gettext domain given"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "translation context given for value without l10n enabled"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Failed to parse <default> value of type “%s”: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> already specified for this key"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> not allowed for keys of type “%s”"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> already given"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> must contain at least one <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> already specified for this key"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2636,7 +2653,7 @@ msgstr ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2645,41 +2662,41 @@ msgstr ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
"type"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr "<alias value='%s'/> given when <choice value='%s'/> was already given"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> already specified"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "alias target “%s” is not in enumerated type"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "alias target “%s” is not in <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> must contain at least one <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Empty names are not permitted"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Invalid name “%s”: names must begin with a lowercase letter"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2688,36 +2705,36 @@ msgstr ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
"and hyphen (“-”) are permitted"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Invalid name “%s”: the last character may not be a hyphen (“-”)"
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Invalid name “%s”: maximum length is 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> already specified"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Cannot add keys to a “list-of” schema"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> already specified"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2726,7 +2743,7 @@ msgstr ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
"to modify value"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2735,63 +2752,63 @@ msgstr ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
"to <key>"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> not (yet) defined."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Invalid GVariant type string “%s”"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> given but schema isn’t extending anything"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "No <key name='%s'> to override"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> already specified"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> already specified"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> extends not yet existing schema “%s”"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> is list of not yet existing schema “%s”"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Cannot be a list of a schema with a path"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Cannot extend a schema with a path"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2800,17 +2817,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
"does not extend “%s”"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "A path, if given, must begin and end with a slash"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "The path of a list must end with “:/”"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2819,49 +2836,49 @@ msgstr ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
"desktop/” or “/system/” are deprecated."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> already specified"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Only one <%s> element allowed inside <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Element <%s> not allowed at the top level"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Element <default> is required in <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Text may not appear inside <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Warning: undefined reference to <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "--strict was specified; exiting."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "This entire file has been ignored."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Ignoring this file."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2870,7 +2887,7 @@ msgstr ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
"override for this key."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2879,7 +2896,7 @@ msgstr ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
"strict was specified; exiting."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2888,7 +2905,7 @@ msgstr ""
"Cannot provide per-desktop overrides for localised key “%s” in schema "
"“%s” (override file “%s”); ignoring override for this key."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2897,7 +2914,7 @@ msgstr ""
"Cannot provide per-desktop overrides for localised key “%s” in schema "
"“%s” (override file “%s”) and --strict was specified; exiting."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2906,7 +2923,7 @@ msgstr ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
"%s. Ignoring override for this key."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2915,7 +2932,7 @@ msgstr ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
"%s. --strict was specified; exiting."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2924,7 +2941,7 @@ msgstr ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
"range given in the schema; ignoring override for this key."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2933,7 +2950,7 @@ msgstr ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
"range given in the schema and --strict was specified; exiting."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2942,7 +2959,7 @@ msgstr ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
"list of valid choices; ignoring override for this key."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2951,23 +2968,23 @@ msgstr ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
"list of valid choices and --strict was specified; exiting."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Where to store the gschemas.compiled file"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Abort on any errors in schemas"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Do not write the gschema.compiled file"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Do not enforce key name restrictions"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -2977,24 +2994,24 @@ msgstr ""
"Schema files are required to have the extension .gschema.xml,\n"
"and the cache file is called gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "You should give exactly one directory name"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "No schema files found: doing nothing."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "No schema files found: removed existing output file."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:567 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Invalid filename %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1009
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Error getting filesystem info for %s: %s"
@@ -3003,254 +3020,254 @@ msgstr "Error getting filesystem info for %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1145
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Containing mount for file %s not found"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1168
msgid "Can’t rename root directory"
msgstr "Can’t rename root directory"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1186 gio/glocalfile.c:1209
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Error renaming file %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1193
msgid "Can’t rename file, filename already exists"
msgstr "Can’t rename file, filename already exists"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1206 gio/glocalfile.c:2409 gio/glocalfile.c:2437
+#: gio/glocalfile.c:2576 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Invalid filename"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1374 gio/glocalfile.c:1385
#, c-format
msgid "Error opening file %s: %s"
msgstr "Error opening file %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1510
#, c-format
msgid "Error removing file %s: %s"
msgstr "Error removing file %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2004 gio/glocalfile.c:2015 gio/glocalfile.c:2042
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Error moving file %s to the wastebasket: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2062
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Unable to create the wastebasket directory %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2083
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Unable to find toplevel directory to move %s to the wastebasket"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2091
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Can’t move to wastebasket on system internal mounts"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2177 gio/glocalfile.c:2205
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Unable to find or create wastebasket directory %s to move %s to"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2249
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Unable to create wastebasket info file for %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2320
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Unable to move %s to wastebasket across filesystem boundaries"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2324 gio/glocalfile.c:2380
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Unable to move file %s to the wastebasket: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2386
#, c-format
msgid "Unable to trash file %s"
msgstr "Unable to move file %s to the wastebasket"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2412
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Error creating directory %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2441
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Filesystem does not support symbolic links"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2444
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Error making symbolic link %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2487 gio/glocalfile.c:2522 gio/glocalfile.c:2579
#, c-format
msgid "Error moving file %s: %s"
msgstr "Error moving file %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2510
msgid "Can’t move directory over directory"
msgstr "Can’t move directory over directory"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2536 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Backup file creation failed"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2555
#, c-format
msgid "Error removing target file: %s"
msgstr "Error removing target file: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2569
msgid "Move between mounts not supported"
msgstr "Move between mounts not supported"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2745
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Could not determine the disk usage of %s: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Attribute value must be non-NULL"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Invalid attribute type (string or invalid expected)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Invalid extended attribute name"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Error setting extended attribute “%s”: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (invalid encoding)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Error when getting information for file “%s”: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Error when getting information for file descriptor: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Invalid attribute type (uint32 expected)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Invalid attribute type (uint64 expected)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Invalid attribute type (byte string expected)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Cannot set permissions on symlinks"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Error setting permissions: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Error setting owner: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "symlink must be non-NULL"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Error setting symlink: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "Error setting symlink: file is not a symlink"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Extra nanoseconds %d for UNIX timestamp %lld are negative"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "UNIX timestamp %lld does not fit into 64 bits"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "UNIX timestamp %lld is outside of the range supported by Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "File name “%s” cannot be converted to UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "File “%s” cannot be opened: Windows Error %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "Error setting modification or access time for file “%s”: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Error setting modification or access time: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "SELinux context must be non-NULL"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux is not enabled on this system"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Error setting SELinux context: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Setting attribute %s not supported"
@@ -3297,13 +3314,13 @@ msgstr "Error creating backup copy: %s"
msgid "Error renaming temporary file: %s"
msgstr "Error renaming temporary file: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Error truncating file: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Error opening file “%s”: %s"
@@ -3320,7 +3337,7 @@ msgstr "Target file is not a regular file"
msgid "The file was externally modified"
msgstr "The file was externally modified"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Error removing old file: %s"
@@ -3467,8 +3484,8 @@ msgstr "Unspecified proxy lookup failure"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:798 gio/gthreadedresolver.c:822
+#: gio/gthreadedresolver.c:847 gio/gthreadedresolver.c:862
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Error resolving “%s”: %s"
@@ -3485,8 +3502,8 @@ msgstr "Invalid domain"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "The resource at “%s” does not exist"
@@ -3496,16 +3513,16 @@ msgstr "The resource at “%s” does not exist"
msgid "The resource at “%s” failed to decompress"
msgstr "The resource at “%s” failed to decompress"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Resource files cannot be renamed"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "The resource at “%s” is not a directory"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Input stream doesn’t implement seek"
@@ -3794,7 +3811,7 @@ msgstr ""
" set Set the value of a key\n"
" reset Reset the value of a key\n"
" reset-recursively Reset all values in a given schema\n"
-" writable Check if a key is writable\n"
+" writable Check if a key is writeable\n"
" monitor Watch for changes\n"
"\n"
"Use “gsettings help COMMAND” to get detailed help.\n"
@@ -3870,7 +3887,7 @@ msgstr "Invalid socket, initialisation failed due to: %s"
msgid "Socket is already closed"
msgstr "Socket is already closed"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3225 gio/gsocket.c:4458 gio/gsocket.c:4516
msgid "Socket I/O timed out"
msgstr "Socket I/O timed out"
@@ -3964,74 +3981,74 @@ msgstr "No support for IPv4 source-specific multicast"
msgid "No support for IPv6 source-specific multicast"
msgstr "No support for IPv6 source-specific multicast"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2924
#, c-format
msgid "Error accepting connection: %s"
msgstr "Error accepting connection: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3050
msgid "Connection in progress"
msgstr "Connection in progress"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3101
msgid "Unable to get pending error: "
msgstr "Unable to get pending error: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3290
#, c-format
msgid "Error receiving data: %s"
msgstr "Error receiving data: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3487
#, c-format
msgid "Error sending data: %s"
msgstr "Error sending data: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3674
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Unable to shutdown socket: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3755
#, c-format
msgid "Error closing socket: %s"
msgstr "Error closing socket: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4451
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Waiting for socket condition: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4841 gio/gsocket.c:4857 gio/gsocket.c:4870
#, c-format
msgid "Unable to send message: %s"
msgstr "Unable to send message: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4842 gio/gsocket.c:4858 gio/gsocket.c:4871
msgid "Message vectors too large"
msgstr "Message vectors too large"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4887 gio/gsocket.c:4889 gio/gsocket.c:5036 gio/gsocket.c:5121
+#: gio/gsocket.c:5299 gio/gsocket.c:5339 gio/gsocket.c:5341
#, c-format
msgid "Error sending message: %s"
msgstr "Error sending message: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5063
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage not supported on Windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5536 gio/gsocket.c:5612 gio/gsocket.c:5838
#, c-format
msgid "Error receiving message: %s"
msgstr "Error receiving message: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6123 gio/gsocket.c:6134 gio/gsocket.c:6197
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Unable to read socket credentials: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6206
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials not implemented for this OS"
@@ -4153,12 +4170,12 @@ msgstr "SOCKSv5 proxy does not support provided address type."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Unknown SOCKSv5 proxy error."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:615 glib/gspawn-win32.c:354
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "Failed to create pipe for communicating with child process (%s)"
-#: gio/gtestdbus.c:621
+#: gio/gtestdbus.c:622
#, c-format
msgid "Pipes are not supported in this platform"
msgstr "Pipes are not supported in this platform"
@@ -4179,35 +4196,35 @@ msgstr "Error reverse-resolving “%s”: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:628 gio/gthreadedresolver.c:675
+#: gio/gthreadedresolver.c:704 gio/gthreadedresolver.c:716
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Error parsing DNS %s record: malformed DNS packet"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:774 gio/gthreadedresolver.c:911
+#: gio/gthreadedresolver.c:1009 gio/gthreadedresolver.c:1059
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "No DNS record of the requested type for “%s”"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:779 gio/gthreadedresolver.c:1014
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Temporarily unable to resolve “%s”"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:784 gio/gthreadedresolver.c:1019
+#: gio/gthreadedresolver.c:1129
#, c-format
msgid "Error resolving “%s”"
msgstr "Error resolving “%s”"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:798 gio/gthreadedresolver.c:822
+#: gio/gthreadedresolver.c:847 gio/gthreadedresolver.c:862
msgid "Malformed DNS packet"
msgstr "Malformed DNS packet"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:904
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Failed to parse DNS response for “%s”: "
@@ -4266,58 +4283,58 @@ msgstr "The password entered is incorrect."
msgid "Sending FD is not supported"
msgstr "Sending FD is not supported"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:601
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "Expecting 1 control message, got %d"
msgstr[1] "Expecting 1 control message, got %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:613
msgid "Unexpected type of ancillary data"
msgstr "Unexpected type of ancillary data"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "Expecting one fd, but got %d\n"
msgstr[1] "Expecting one fd, but got %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Received invalid fd"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Receiving FD is not supported"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Error sending credentials: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:541
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Error checking if SO_PASSCRED is enabled for socket: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:557
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Error enabling SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:586
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:627
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Not expecting control message, but got %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:652
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Error while disabling SO_PASSCRED: %s"
@@ -4333,7 +4350,7 @@ msgstr "Error reading from file descriptor: %s"
msgid "Error closing file descriptor: %s"
msgstr "Error closing file descriptor: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2817 gio/gunixmounts.c:2870
msgid "Filesystem root"
msgstr "Filesystem root"
@@ -4415,77 +4432,77 @@ msgstr "Run a dbus service"
msgid "Wrong args\n"
msgstr "Wrong args\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Unexpected attribute “%s” for element “%s”"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Attribute “%s” of element “%s” not found"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Unexpected tag “%s”, tag “%s” expected"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Unexpected tag “%s” inside “%s”"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Invalid date/time ‘%s’ in bookmark file"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "No valid bookmark file found in data dirs"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "A bookmark for URI “%s” already exists"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "No bookmark found for URI “%s”"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "No MIME type defined in the bookmark for URI “%s”"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "No private flag has been defined in bookmark for URI “%s”"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "No groups set in bookmark for URI “%s”"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "No application with name “%s” registered a bookmark for “%s”"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Failed to expand exec line “%s” with URI “%s”"
@@ -4960,79 +4977,79 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "Error opening directory “%s”: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "Could not allocate %lu byte to read file “%s”"
msgstr[1] "Could not allocate %lu bytes to read file “%s”"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Error reading file “%s”: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "File “%s” is too large"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Failed to read from file “%s”: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Failed to open file “%s”: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Failed to get attributes of file “%s”: fstat() failed: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Failed to open file “%s”: fdopen() failed: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Failed to write file “%s”: write() failed: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Failed to write file “%s”: fsync() failed: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Failed to create file “%s”: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "Existing file “%s” could not be removed: g_unlink() failed: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Template “%s” invalid, should not contain a “%s”"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Template “%s” doesn’t contain XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Failed to read the symbolic link “%s”: %s"
@@ -5058,65 +5075,65 @@ msgstr "Channel terminates in a partial character"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Can’t do a raw read in g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:800
msgid "Valid key file could not be found in search dirs"
msgstr "Valid key file could not be found in search dirs"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:837
msgid "Not a regular file"
msgstr "Not a regular file"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1295
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
msgstr ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1352
#, c-format
msgid "Invalid group name: %s"
msgstr "Invalid group name: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1376
msgid "Key file does not start with a group"
msgstr "Key file does not start with a group"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1400
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Invalid key name: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1428
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Key file contains unsupported encoding “%s”"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1683 glib/gkeyfile.c:1856 glib/gkeyfile.c:3303
+#: glib/gkeyfile.c:3367 glib/gkeyfile.c:3497 glib/gkeyfile.c:3626
+#: glib/gkeyfile.c:3772 glib/gkeyfile.c:4007 glib/gkeyfile.c:4074
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Key file does not have group “%s”"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1811
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Key file does not have key “%s” in group “%s”"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1973 glib/gkeyfile.c:2089
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "Key file contains key “%s” with value “%s” which is not UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1993 glib/gkeyfile.c:2109 glib/gkeyfile.c:2548
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr ""
"Key file contains key “%s” which has a value that cannot be interpreted."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2763 glib/gkeyfile.c:3132
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5125,81 +5142,81 @@ msgstr ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
"interpreted."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2841 glib/gkeyfile.c:2918
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Key “%s” in group “%s” has value “%s” where %s was expected"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4330
msgid "Key file contains escape character at end of line"
msgstr "Key file contains escape character at end of line"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4352
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Key file contains invalid escape sequence “%s”"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4504
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Value “%s” cannot be interpreted as a number."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4518
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Integer value “%s” out of range"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4551
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Value “%s” cannot be interpreted as a float number."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4590
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Value “%s” cannot be interpreted as a boolean."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Failed to map %s%s%s%s: mmap() failed: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Failed to open file “%s”: open() failed: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Error on line %d char %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Invalid UTF-8 encoded text in name — not valid “%s”"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "“%s” is not a valid name"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "“%s” is not a valid name: “%c”"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Error on line %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5208,7 +5225,7 @@ msgstr ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
"reference (&#234; for example) — perhaps the digit is too large"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5218,23 +5235,23 @@ msgstr ""
"ampersand character without intending to start an entity — escape ampersand "
"as &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Character reference “%-.*s” does not encode a permitted character"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Entity name “%-.*s” is not known"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5242,11 +5259,11 @@ msgstr ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Document must begin with an element (e.g. <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5255,7 +5272,7 @@ msgstr ""
"“%s” is not a valid character following a “<” character; it may not begin an "
"element name"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5264,19 +5281,19 @@ msgstr ""
"Odd character “%s”: expected a '>' character to end the empty-element tag "
"“%s”"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Too many attributes in element “%s”"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
msgstr ""
"Odd character “%s”, expected a '=' after attribute name “%s” of element “%s”"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5287,7 +5304,7 @@ msgstr ""
"element “%s”, or optionally an attribute; perhaps you used an invalid "
"character in an attribute name"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5296,7 +5313,7 @@ msgstr ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
"giving value for attribute “%s” of element “%s”"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5305,7 +5322,7 @@ msgstr ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
"begin an element name"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5314,25 +5331,25 @@ msgstr ""
"“%s” is not a valid character following the close element name “%s”; the "
"allowed character is '>'"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Element “%s” was closed, no element is currently open"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "Element “%s” was closed, but the currently open element is “%s”"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Document was empty or contained only whitespace"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "Document ended unexpectedly just after an open angle bracket “<”"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5341,7 +5358,7 @@ msgstr ""
"Document ended unexpectedly with elements still open — “%s” was the last "
"element opened"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5350,19 +5367,19 @@ msgstr ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
"the tag <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Document ended unexpectedly inside an element name"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Document ended unexpectedly inside an attribute name"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Document ended unexpectedly inside an element-opening tag."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5370,22 +5387,22 @@ msgstr ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Document ended unexpectedly while inside an attribute value"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "Document ended unexpectedly inside the close tag for element “%s”"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Document ended unexpectedly inside the close tag for an unopened element"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr "Document ended unexpectedly inside a comment or processing instruction"
@@ -5448,302 +5465,303 @@ msgstr "Missing argument for %s"
msgid "Unknown option %s"
msgstr "Unknown option %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:479
msgid "corrupted object"
msgstr "corrupted object"
-#: glib/gregex.c:438
+#: glib/gregex.c:481
msgid "out of memory"
msgstr "out of memory"
-#: glib/gregex.c:443
+#: glib/gregex.c:487
msgid "backtracking limit reached"
msgstr "backtracking limit reached"
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:498
msgid "internal error"
msgstr "internal error"
-#: glib/gregex.c:456
+#: glib/gregex.c:500
msgid "the pattern contains items not supported for partial matching"
msgstr "the pattern contains items not supported for partial matching"
-#: glib/gregex.c:458
+#: glib/gregex.c:502
msgid "back references as conditions are not supported for partial matching"
msgstr "back references as conditions are not supported for partial matching"
-#: glib/gregex.c:464
+#: glib/gregex.c:508
msgid "recursion limit reached"
msgstr "recursion limit reached"
-#: glib/gregex.c:466
+#: glib/gregex.c:510
msgid "bad offset"
msgstr "bad offset"
-#: glib/gregex.c:468
+#: glib/gregex.c:512
msgid "recursion loop"
msgstr "recursion loop"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:515
msgid "matching mode is requested that was not compiled for JIT"
msgstr "matching mode is requested that was not compiled for JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:536 glib/gregex.c:1838
msgid "unknown error"
msgstr "unknown error"
-#: glib/gregex.c:496
+#: glib/gregex.c:557
msgid "\\ at end of pattern"
msgstr "\\ at end of pattern"
-#: glib/gregex.c:500
+#: glib/gregex.c:561
msgid "\\c at end of pattern"
msgstr "\\c at end of pattern"
-#: glib/gregex.c:505
+#: glib/gregex.c:566
msgid "unrecognized character following \\"
msgstr "unrecognised character following \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:570
msgid "numbers out of order in {} quantifier"
msgstr "numbers out of order in {} quantifier"
-#: glib/gregex.c:513
+#: glib/gregex.c:574
msgid "number too big in {} quantifier"
msgstr "number too big in {} quantifier"
-#: glib/gregex.c:517
+#: glib/gregex.c:578
msgid "missing terminating ] for character class"
msgstr "missing terminating ] for character class"
-#: glib/gregex.c:521
+#: glib/gregex.c:582
msgid "invalid escape sequence in character class"
msgstr "invalid escape sequence in character class"
-#: glib/gregex.c:525
+#: glib/gregex.c:586
msgid "range out of order in character class"
msgstr "range out of order in character class"
-#: glib/gregex.c:530
+#: glib/gregex.c:591
msgid "nothing to repeat"
msgstr "nothing to repeat"
-#: glib/gregex.c:534
+#: glib/gregex.c:595
msgid "unrecognized character after (? or (?-"
msgstr "unrecognised character after (? or (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:599
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX named classes are supported only within a class"
-#: glib/gregex.c:542
+#: glib/gregex.c:603
msgid "POSIX collating elements are not supported"
msgstr "POSIX collating elements are not supported"
-#: glib/gregex.c:548
+#: glib/gregex.c:609
msgid "missing terminating )"
msgstr "missing terminating )"
-#: glib/gregex.c:552
+#: glib/gregex.c:613
msgid "reference to non-existent subpattern"
msgstr "reference to non-existent subpattern"
-#: glib/gregex.c:556
+#: glib/gregex.c:617
msgid "missing ) after comment"
msgstr "missing ) after comment"
-#: glib/gregex.c:560
+#: glib/gregex.c:621
msgid "regular expression is too large"
msgstr "regular expression is too large"
-#: glib/gregex.c:564
+#: glib/gregex.c:625
msgid "malformed number or name after (?("
msgstr "malformed number or name after (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:629
msgid "lookbehind assertion is not fixed length"
msgstr "lookbehind assertion is not fixed length"
-#: glib/gregex.c:572
+#: glib/gregex.c:633
msgid "conditional group contains more than two branches"
msgstr "conditional group contains more than two branches"
-#: glib/gregex.c:576
+#: glib/gregex.c:637
msgid "assertion expected after (?("
msgstr "assertion expected after (?("
-#: glib/gregex.c:580
+#: glib/gregex.c:641
msgid "a numbered reference must not be zero"
msgstr "a numbered reference must not be zero"
-#: glib/gregex.c:584
+#: glib/gregex.c:645
msgid "unknown POSIX class name"
msgstr "unknown POSIX class name"
-#: glib/gregex.c:589
+#: glib/gregex.c:650
msgid "character value in \\x{...} sequence is too large"
-msgstr "character value in \\x{…} sequence is too large"
+msgstr "character value in \\x{...} sequence is too large"
-#: glib/gregex.c:593
+#: glib/gregex.c:654
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C not allowed in lookbehind assertion"
-#: glib/gregex.c:597
+#: glib/gregex.c:658
msgid "missing terminator in subpattern name"
msgstr "missing terminator in subpattern name"
-#: glib/gregex.c:601
+#: glib/gregex.c:662
msgid "two named subpatterns have the same name"
msgstr "two named subpatterns have the same name"
-#: glib/gregex.c:605
+#: glib/gregex.c:666
msgid "malformed \\P or \\p sequence"
msgstr "malformed \\P or \\p sequence"
-#: glib/gregex.c:609
+#: glib/gregex.c:670
msgid "unknown property name after \\P or \\p"
msgstr "unknown property name after \\P or \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:674
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "subpattern name is too long (maximum 32 characters)"
-#: glib/gregex.c:617
+#: glib/gregex.c:678
msgid "too many named subpatterns (maximum 10,000)"
msgstr "too many named subpatterns (maximum 10,000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:682
msgid "octal value is greater than \\377"
msgstr "octal value is greater than \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:686
msgid "DEFINE group contains more than one branch"
msgstr "DEFINE group contains more than one branch"
-#: glib/gregex.c:629
+#: glib/gregex.c:690
msgid "inconsistent NEWLINE options"
msgstr "inconsistent NEWLINE options"
-#: glib/gregex.c:633
+#: glib/gregex.c:694
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
msgstr ""
-"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
-"or by a plain number"
+"\\g is not followed by a curly-bracketed, angle-bracketed, or quoted name or "
+"number, or by a plain number"
-#: glib/gregex.c:638
+#: glib/gregex.c:699
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:703
msgid "(*VERB) not recognized"
msgstr "(*VERB) not recognised"
-#: glib/gregex.c:646
+#: glib/gregex.c:707
msgid "number is too big"
msgstr "number is too big"
-#: glib/gregex.c:650
+#: glib/gregex.c:711
msgid "missing subpattern name after (?&"
msgstr "missing subpattern name after (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:715
msgid "different names for subpatterns of the same number are not allowed"
msgstr "different names for subpatterns of the same number are not allowed"
-#: glib/gregex.c:658
+#: glib/gregex.c:719
msgid "(*MARK) must have an argument"
msgstr "(*MARK) must have an argument"
-#: glib/gregex.c:662
+#: glib/gregex.c:723
msgid "\\c must be followed by an ASCII character"
msgstr "\\c must be followed by an ASCII character"
-#: glib/gregex.c:666
+#: glib/gregex.c:727
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
-msgstr "\\k is not followed by a braced, angle-bracketed, or quoted name"
+msgstr ""
+"\\k is not followed by a curly-bracketed, angle-bracketed, or quoted name"
-#: glib/gregex.c:670
+#: glib/gregex.c:731
msgid "\\N is not supported in a class"
msgstr "\\N is not supported in a class"
-#: glib/gregex.c:674
+#: glib/gregex.c:735
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:739 glib/gregex.c:875
msgid "code overflow"
msgstr "code overflow"
-#: glib/gregex.c:682
+#: glib/gregex.c:743
msgid "unrecognized character after (?P"
msgstr "unrecognised character after (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:747
msgid "overran compiling workspace"
msgstr "overran compiling workspace"
-#: glib/gregex.c:690
+#: glib/gregex.c:751
msgid "previously-checked referenced subpattern not found"
msgstr "previously-checked referenced subpattern not found"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:874 glib/gregex.c:1121 glib/gregex.c:2444
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Error while matching regular expression %s: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1721
msgid "PCRE library is compiled without UTF8 support"
msgstr "PCRE library is compiled without UTF8 support"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1729
msgid "PCRE library is compiled with incompatible options"
msgstr "PCRE library is compiled with incompatible options"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1847
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Error while compiling regular expression ‘%s’ at char %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2887
msgid "hexadecimal digit or “}” expected"
msgstr "hexadecimal digit or “}” expected"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2903
msgid "hexadecimal digit expected"
msgstr "hexadecimal digit expected"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2943
msgid "missing “<” in symbolic reference"
msgstr "missing “<” in symbolic reference"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2952
msgid "unfinished symbolic reference"
msgstr "unfinished symbolic reference"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2959
msgid "zero-length symbolic reference"
msgstr "zero-length symbolic reference"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2970
msgid "digit expected"
msgstr "digit expected"
-#: glib/gregex.c:2887
+#: glib/gregex.c:2988
msgid "illegal symbolic reference"
msgstr "illegal symbolic reference"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3051
msgid "stray final “\\”"
msgstr "stray final “\\”"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3055
msgid "unknown escape sequence"
msgstr "unknown escape sequence"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3065
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Error while parsing replacement text “%s” at char %lu: %s"
@@ -5770,96 +5788,101 @@ msgstr "Text ended before matching quote was found for %c. (The text was “%s
msgid "Text was empty (or contained only whitespace)"
msgstr "Text was empty (or contained only whitespace)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:319
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Failed to read data from child process (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:471
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Unexpected error in reading data from a child process (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:556
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Unexpected error in waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1175 glib/gspawn-win32.c:1503
#, c-format
msgid "Child process exited with code %ld"
msgstr "Child process exited with code %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1183
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Child process killed by signal %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1190
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Child process stopped by signal %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1197
#, c-format
msgid "Child process exited abnormally"
msgstr "Child process exited abnormally"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2027 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Failed to read from child pipe (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2399
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Failed to spawn child process “%s” (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2525
#, c-format
msgid "Failed to fork (%s)"
msgstr "Failed to fork (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2685 glib/gspawn-win32.c:424
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Failed to change to directory “%s” (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2695
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Failed to execute child process “%s” (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2705
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Failed to open file to remap file descriptor (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2713
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Failed to duplicate file descriptor for child process (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2722
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Failed to fork child process (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2730
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Failed to close file descriptor for child process (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2738
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Unknown error executing child process “%s”"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2762
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "Failed to read enough data from child pid pipe (%s)"
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Invalid source FDs argument"
+
#: glib/gspawn-win32.c:337
msgid "Failed to read data from child process"
msgstr "Failed to read data from child process"
@@ -5879,27 +5902,27 @@ msgstr "Failed to dup() in child process (%s)"
msgid "Invalid program name: %s"
msgstr "Invalid program name: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:868
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Invalid string in argument vector at %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:884
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Invalid string in environment: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:864
#, c-format
msgid "Invalid working directory: %s"
msgstr "Invalid working directory: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:929
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Failed to execute helper program (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1158
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -5907,21 +5930,21 @@ msgstr ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Empty string is not a number"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "“%s” is not a signed number"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Number “%s” is out of bounds [%s, %s]"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "“%s” is not an unsigned number"
@@ -6000,132 +6023,132 @@ msgid "Character out of range for UTF-16"
msgstr "Character out of range for UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "byte"
msgstr[1] "bytes"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bit"
@@ -6133,7 +6156,7 @@ msgstr[1] "bits"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6141,7 +6164,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6149,7 +6172,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6158,14 +6181,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6173,14 +6196,14 @@ msgstr[0] "%s byte"
msgstr[1] "%s bytes"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s bit"
msgstr[1] "%s bits"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6192,32 +6215,32 @@ msgstr[1] "%u bytes"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
diff --git a/po/eo.po b/po/eo.po
index 3bbd01410..64b0753d6 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,14 +7,14 @@
# Manuel < >, 2010.
# Ryan LORTIE <desrt@desrt.ca>, 2011.
# Tiffany ANTOPOLSKI <tiffany.antopolski@gmail.com>, 2011, 2012.
-# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2010, 2011, 2012, 2017.
+# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2010-2023.
+#
msgid ""
msgstr ""
"Project-Id-Version: glib 2.3.0\n"
-"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=glib&k"
-"eywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2017-05-29 10:24+0000\n"
-"PO-Revision-Date: 2017-06-11 02:06+0200\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
+"POT-Creation-Date: 2023-08-31 10:14+0000\n"
+"PO-Revision-Date: 2023-09-19 23:57+0200\n"
"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
"Language-Team: Esperanto <gnome-eo-list@gnome.org>\n"
"Language: eo\n"
@@ -22,140 +22,152 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Virtaal 0.7.1\n"
+"X-Generator: Poedit 3.2.2\n"
"X-Project-Style: gnome\n"
-#: ../gio/gapplication.c:490
-#| msgid "Application Options:"
-msgid "GApplication options"
-msgstr "Aplikaĵaj opcioj"
+#: gio/gappinfo.c:339
+msgid "Setting default applications not supported yet"
+msgstr "Agordi defaŭltajn aplikaĵojn ankoraŭ ne estas subtenataj"
-#: ../gio/gapplication.c:490
-#| msgid "Application Options:"
+#: gio/gappinfo.c:372
+#, fuzzy
+#| msgid "Setting attribute %s not supported"
+msgid "Setting application as last used for type not supported yet"
+msgstr "Agordi atributon %s ne subtenita"
+
+#: gio/gappinfo.c:814
+#, c-format
+msgid "Failed to find default application for content type ‘%s’"
+msgstr "Malsukcesis trovi defaŭltan aplikaĵon por enhavtipo ‘%s’"
+
+#: gio/gappinfo.c:874
+#, c-format
+msgid "Failed to find default application for URI Scheme ‘%s’"
+msgstr "Malsukcesis trovi defaŭltan aplikaĵon por URI-skemo '%s'"
+
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "GAplikaj-opcioj:"
+
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Montri aplikaĵajn opciojn"
-#: ../gio/gapplication.c:535
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
-msgstr ""
+msgstr "Enigi la servoreĝimon de GApplication (uzi de D-Bus-servodosieroj)"
-#: ../gio/gapplication.c:547
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
+msgstr "Anstataŭigi la ID de la aplikaĵo"
+
+#: gio/gapplication.c:575
+msgid "Replace the running instance"
msgstr ""
-#: ../gio/gapplication-tool.c:45 ../gio/gapplication-tool.c:46
-#: ../gio/gio-tool.c:227 ../gio/gresource-tool.c:488
-#: ../gio/gsettings-tool.c:520
+#: gio/gapplication-tool.c:47 gio/gapplication-tool.c:48 gio/gio-tool.c:229
+#: gio/gresource-tool.c:496 gio/gsettings-tool.c:586
msgid "Print help"
msgstr "Presi helpon"
-#: ../gio/gapplication-tool.c:47 ../gio/gresource-tool.c:489
-#: ../gio/gresource-tool.c:557
+#: gio/gapplication-tool.c:49 gio/gresource-tool.c:497 gio/gresource-tool.c:565
msgid "[COMMAND]"
msgstr "[KOMANDO]"
-#: ../gio/gapplication-tool.c:49 ../gio/gio-tool.c:228
-#, fuzzy
-#| msgid "Print help"
+#: gio/gapplication-tool.c:51 gio/gio-tool.c:230
msgid "Print version"
-msgstr "Montri helpon"
+msgstr "Motri version"
-#: ../gio/gapplication-tool.c:50 ../gio/gsettings-tool.c:526
+#: gio/gapplication-tool.c:52 gio/gsettings-tool.c:592
msgid "Print version information and exit"
-msgstr ""
+msgstr "Eligi versian informon kaj ĉesi"
-#: ../gio/gapplication-tool.c:52
-#, fuzzy
-#| msgid "Can't find application"
+#: gio/gapplication-tool.c:55
msgid "List applications"
-msgstr "Ne eblas trovi aplikaĵon"
+msgstr "Listigi aplikaĵojn"
-#: ../gio/gapplication-tool.c:53
+#: gio/gapplication-tool.c:56
msgid "List the installed D-Bus activatable applications (by .desktop files)"
-msgstr ""
+msgstr "Listigi la instalitajn aktivigeblajn aplikaĵojn de D-Bus (per .desktop dosieroj)"
-#: ../gio/gapplication-tool.c:55
-#, fuzzy
-#| msgid "Can't find application"
+#: gio/gapplication-tool.c:59
msgid "Launch an application"
-msgstr "Ne eblas trovi aplikaĵon"
+msgstr "Lanĉi aplikaĵon"
-#: ../gio/gapplication-tool.c:56
+#: gio/gapplication-tool.c:60
msgid "Launch the application (with optional files to open)"
-msgstr ""
+msgstr "Lanĉi la aplikaĵon (kun laŭvolaj dosieroj por malfermi)"
-#: ../gio/gapplication-tool.c:57
+#: gio/gapplication-tool.c:61
msgid "APPID [FILE…]"
msgstr ""
-#: ../gio/gapplication-tool.c:59
+#: gio/gapplication-tool.c:63
msgid "Activate an action"
-msgstr ""
+msgstr "Aktivigi agon"
-#: ../gio/gapplication-tool.c:60
+#: gio/gapplication-tool.c:64
msgid "Invoke an action on the application"
-msgstr ""
+msgstr "Alvoki agon sur la aplikaĵo"
-#: ../gio/gapplication-tool.c:61
+#: gio/gapplication-tool.c:65
msgid "APPID ACTION [PARAMETER]"
msgstr ""
-#: ../gio/gapplication-tool.c:63
+#: gio/gapplication-tool.c:67
msgid "List available actions"
-msgstr ""
+msgstr "Listigi disponeblajn agojn"
-#: ../gio/gapplication-tool.c:64
+#: gio/gapplication-tool.c:68
+#, fuzzy
msgid "List static actions for an application (from .desktop file)"
-msgstr ""
+msgstr "Listo de senmovaj agoj por aplikaĵo (el .desktop dosiero)"
-#: ../gio/gapplication-tool.c:65 ../gio/gapplication-tool.c:71
+#: gio/gapplication-tool.c:69 gio/gapplication-tool.c:75
msgid "APPID"
msgstr ""
-#: ../gio/gapplication-tool.c:70 ../gio/gapplication-tool.c:133
-#: ../gio/gdbus-tool.c:90 ../gio/gio-tool.c:224
+#: gio/gapplication-tool.c:74 gio/gapplication-tool.c:137 gio/gdbus-tool.c:108
+#: gio/gio-tool.c:226
msgid "COMMAND"
msgstr "KOMANDO"
-#: ../gio/gapplication-tool.c:70
+#: gio/gapplication-tool.c:74
msgid "The command to print detailed help for"
-msgstr ""
+msgstr "La komando por montri detalan helpon por"
-#: ../gio/gapplication-tool.c:71
+#: gio/gapplication-tool.c:75
msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
-msgstr ""
+msgstr "Aplikaĵ-identigilo en D-Bus-formato (ekz.: org.example.viewer)"
-#: ../gio/gapplication-tool.c:72 ../gio/glib-compile-resources.c:665
-#: ../gio/glib-compile-resources.c:671 ../gio/glib-compile-resources.c:698
-#: ../gio/gresource-tool.c:495 ../gio/gresource-tool.c:561
+#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
+#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "DOSIERO"
-#: ../gio/gapplication-tool.c:72
+#: gio/gapplication-tool.c:76
msgid "Optional relative or absolute filenames, or URIs to open"
-msgstr ""
+msgstr "Laŭvolaj relativaj aŭ absolutaj dosiernomoj, aŭ URI-oj por malfermi"
-#: ../gio/gapplication-tool.c:73
-#| msgid "SECTION"
+#: gio/gapplication-tool.c:77
msgid "ACTION"
msgstr "AGO"
-#: ../gio/gapplication-tool.c:73
-#, fuzzy
-#| msgid "Destination name to introspect"
+#: gio/gapplication-tool.c:77
msgid "The action name to invoke"
-msgstr "Nomo de celo por introspekti"
+msgstr "La agonomo alvokenda"
-#: ../gio/gapplication-tool.c:74
+#: gio/gapplication-tool.c:78
msgid "PARAMETER"
-msgstr ""
+msgstr "PARAMETRO"
-#: ../gio/gapplication-tool.c:74
+#: gio/gapplication-tool.c:78
msgid "Optional parameter to the action invocation, in GVariant format"
-msgstr ""
+msgstr "Laŭvola parametro al la ago alvoko, en formato GVariant"
-#: ../gio/gapplication-tool.c:96 ../gio/gresource-tool.c:526
-#: ../gio/gsettings-tool.c:612
+#: gio/gapplication-tool.c:100 gio/gresource-tool.c:534
+#: gio/gsettings-tool.c:678
#, c-format
msgid ""
"Unknown command %s\n"
@@ -164,104 +176,96 @@ msgstr ""
"Nekonata komando %s\n"
"\n"
-#: ../gio/gapplication-tool.c:101
-#| msgid "Usage:"
+#: gio/gapplication-tool.c:105
msgid "Usage:\n"
msgstr "Uzo:\n"
-#: ../gio/gapplication-tool.c:114 ../gio/gresource-tool.c:551
-#: ../gio/gsettings-tool.c:647
+#: gio/gapplication-tool.c:118 gio/gresource-tool.c:559
+#: gio/gsettings-tool.c:713
msgid "Arguments:\n"
msgstr "Argumentoj:\n"
-#: ../gio/gapplication-tool.c:133
+#: gio/gapplication-tool.c:137 gio/gio-tool.c:226
msgid "[ARGS…]"
-msgstr ""
+msgstr "[ARG-oj…]"
-#: ../gio/gapplication-tool.c:134
+#: gio/gapplication-tool.c:138
#, c-format
msgid "Commands:\n"
-msgstr ""
+msgstr "Komandoj:\n"
#. Translators: do not translate 'help', but please translate 'COMMAND'.
-#: ../gio/gapplication-tool.c:146
+#: gio/gapplication-tool.c:150
#, c-format
msgid ""
"Use “%s help COMMAND” to get detailed help.\n"
"\n"
-msgstr ""
+msgstr "Uzi \"%s help KOMANDO\" por ricevi detalan helpon.\n"
-#: ../gio/gapplication-tool.c:165
+#: gio/gapplication-tool.c:169
#, c-format
msgid ""
"%s command requires an application id to directly follow\n"
"\n"
msgstr ""
-#: ../gio/gapplication-tool.c:171
+#: gio/gapplication-tool.c:175
#, c-format
msgid "invalid application id: “%s”\n"
-msgstr ""
+msgstr "nevalida aplikaĵa identigo: “%s”\n"
#. Translators: %s is replaced with a command name like 'list-actions'
-#: ../gio/gapplication-tool.c:182
+#: gio/gapplication-tool.c:186
#, c-format
msgid ""
"“%s” takes no arguments\n"
"\n"
msgstr ""
+"“%s” ne prenas argumentojn\n"
+"\n"
-#: ../gio/gapplication-tool.c:266
+#: gio/gapplication-tool.c:270
#, c-format
-#| msgid "Could not connect to %s: "
msgid "unable to connect to D-Bus: %s\n"
msgstr "ne eblas konekti al D-Bus: %s\n"
-#: ../gio/gapplication-tool.c:286
+#: gio/gapplication-tool.c:290
#, c-format
-#| msgid "Error sending message: %s"
msgid "error sending %s message to application: %s\n"
msgstr "eraro dum sendado de %s mesaĝo al aplikaĵo: %s\n"
-#: ../gio/gapplication-tool.c:317
-#, c-format
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr ""
-#: ../gio/gapplication-tool.c:325
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
"action names must consist of only alphanumerics, “-” and “.”\n"
msgstr ""
-#: ../gio/gapplication-tool.c:344
-#, fuzzy, c-format
-#| msgid "Error parsing parameter %d: %s\n"
+#: gio/gapplication-tool.c:351
+#, c-format
msgid "error parsing action parameter: %s\n"
-msgstr "eraro dum sintaksa analizo de la parametro: %s\n"
+msgstr "eraro analizante ago-parametron: %s\n"
-#: ../gio/gapplication-tool.c:356
-#, c-format
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr ""
-#: ../gio/gapplication-tool.c:411
-#, c-format
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr ""
-#: ../gio/gapplication-tool.c:421
+#: gio/gapplication-tool.c:428
#, fuzzy, c-format
#| msgid "Unable to find terminal required for application"
msgid "unable to find desktop file for application %s\n"
msgstr "ne eblas trovi terminalon bezonata por aplikaĵo %s\n"
-#: ../gio/gapplication-tool.c:466
+#: gio/gapplication-tool.c:473
#, c-format
-#| msgid ""
-#| "Unknown command %s\n"
-#| "\n"
msgid ""
"unrecognised command: %s\n"
"\n"
@@ -269,819 +273,758 @@ msgstr ""
"nekonata komando: %s\n"
"\n"
-#: ../gio/gbufferedinputstream.c:420 ../gio/gbufferedinputstream.c:498
-#: ../gio/ginputstream.c:179 ../gio/ginputstream.c:379
-#: ../gio/ginputstream.c:617 ../gio/ginputstream.c:1019
-#: ../gio/goutputstream.c:203 ../gio/goutputstream.c:834
-#: ../gio/gpollableinputstream.c:205 ../gio/gpollableoutputstream.c:206
+#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Tro granda nombra valoro transdonita al %s"
-#: ../gio/gbufferedinputstream.c:891 ../gio/gbufferedoutputstream.c:575
-#: ../gio/gdataoutputstream.c:562
+#: gio/gbufferedinputstream.c:893 gio/gbufferedoutputstream.c:577
+#: gio/gdataoutputstream.c:564
#, fuzzy
#| msgid "Seek not supported on stream"
msgid "Seek not supported on base stream"
msgstr "Serĉo ne estas subtenata en fluo"
-#: ../gio/gbufferedinputstream.c:937
+#: gio/gbufferedinputstream.c:940
#, fuzzy
#| msgid "Cannot truncate GMemoryInputStream"
msgid "Cannot truncate GBufferedInputStream"
msgstr "Ne eblas trunki GMemoryInputStream-on"
-#: ../gio/gbufferedinputstream.c:982 ../gio/ginputstream.c:1208
-#: ../gio/giostream.c:300 ../gio/goutputstream.c:1660
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Fluo estas jam fermita"
-#: ../gio/gbufferedoutputstream.c:612 ../gio/gdataoutputstream.c:592
+#: gio/gbufferedoutputstream.c:614 gio/gdataoutputstream.c:594
#, fuzzy
#| msgid "Truncate not supported on stream"
msgid "Truncate not supported on base stream"
msgstr "Trunki ne permesita en fluo"
-#: ../gio/gcancellable.c:317 ../gio/gdbusconnection.c:1849
-#: ../gio/gdbusprivate.c:1402 ../gio/gsimpleasyncresult.c:870
-#: ../gio/gsimpleasyncresult.c:896
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
+#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
msgstr "Operacio rezignita"
-#: ../gio/gcharsetconverter.c:260
+#: gio/gcharsetconverter.c:262
msgid "Invalid object, not initialized"
msgstr "Nevalida objekto, ne pravalorizita"
-#: ../gio/gcharsetconverter.c:281 ../gio/gcharsetconverter.c:309
+#: gio/gcharsetconverter.c:283 gio/gcharsetconverter.c:311
msgid "Incomplete multibyte sequence in input"
msgstr "Nekompleta plurbajta sekvenco en enigo"
-#: ../gio/gcharsetconverter.c:315 ../gio/gcharsetconverter.c:324
+#: gio/gcharsetconverter.c:317 gio/gcharsetconverter.c:326
msgid "Not enough space in destination"
msgstr "Ne sufiĉa spaco en la cel-loko"
-#: ../gio/gcharsetconverter.c:342 ../gio/gdatainputstream.c:848
-#: ../gio/gdatainputstream.c:1257 ../glib/gconvert.c:438 ../glib/gconvert.c:845
-#: ../glib/giochannel.c:1556 ../glib/giochannel.c:1598
-#: ../glib/giochannel.c:2442 ../glib/gutf8.c:856 ../glib/gutf8.c:1309
+#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Nevalida bajtosekvenco en konverta enigo"
-#: ../gio/gcharsetconverter.c:347 ../glib/gconvert.c:446 ../glib/gconvert.c:770
-#: ../glib/giochannel.c:1563 ../glib/giochannel.c:2454
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Eraro dum la konverto: %s"
-#: ../gio/gcharsetconverter.c:444 ../gio/gsocket.c:1085
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Rezignebla pravalorizo ne estas subtenata"
-#: ../gio/gcharsetconverter.c:454 ../glib/gconvert.c:321
-#: ../glib/giochannel.c:1384
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, fuzzy, c-format
#| msgid "Conversion from character set '%s' to '%s' is not supported"
msgid "Conversion from character set “%s” to “%s” is not supported"
-msgstr "Konverto de signaro '%s' al '%s' ne estas subtenata"
+msgstr "Konverto de signaro “%s” al '%s' ne estas subtenata"
-#: ../gio/gcharsetconverter.c:458 ../glib/gconvert.c:325
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, fuzzy, c-format
#| msgid "Could not open converter from '%s' to '%s'"
msgid "Could not open converter from “%s” to “%s”"
-msgstr "Ne eblas malfermi konvertilon de '%s' al '%s'"
+msgstr "Ne eblas malfermi konvertilon de “%s” al '%s'"
-#: ../gio/gcontenttype.c:358
+#: gio/gcontenttype.c:472
#, c-format
msgid "%s type"
msgstr "%s tipo"
-#: ../gio/gcontenttype-win32.c:177
+#: gio/gcontenttype-win32.c:198
msgid "Unknown type"
msgstr "Nekonata tipo"
-#: ../gio/gcontenttype-win32.c:179
+#: gio/gcontenttype-win32.c:200
#, c-format
msgid "%s filetype"
msgstr "%s dosierotipo"
-#: ../gio/gcredentials.c:312 ../gio/gcredentials.c:571
+#: gio/gcredentials.c:337
+msgid "GCredentials contains invalid data"
+msgstr ""
+
+#: gio/gcredentials.c:397 gio/gcredentials.c:688
msgid "GCredentials is not implemented on this OS"
msgstr "GCredentials ne estas realigita sur ĉi tiu operaciumo"
-#: ../gio/gcredentials.c:467
+#: gio/gcredentials.c:552 gio/gcredentials.c:570
msgid "There is no GCredentials support for your platform"
msgstr "Estas neniu subteno por GCredentials por via platformo"
-#: ../gio/gcredentials.c:513
+#: gio/gcredentials.c:628
#, fuzzy
#| msgid "GCredentials is not implemented on this OS"
msgid "GCredentials does not contain a process ID on this OS"
msgstr "GCredentials ne estas realigita sur ĉi tiu operaciumo"
-#: ../gio/gcredentials.c:565
+#: gio/gcredentials.c:682
#, fuzzy
#| msgid "GCredentials is not implemented on this OS"
msgid "Credentials spoofing is not possible on this OS"
msgstr "Credentials ne estas realigita sur ĉi tiu operaciumo"
-#: ../gio/gdatainputstream.c:304
+#: gio/gdatainputstream.c:306
msgid "Unexpected early end-of-stream"
msgstr "Neatendata frua flufino"
-#: ../gio/gdbusaddress.c:155 ../gio/gdbusaddress.c:243
-#: ../gio/gdbusaddress.c:324
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, fuzzy, c-format
#| msgid "Unsupported key '%s' in address entry '%s'"
msgid "Unsupported key “%s” in address entry “%s”"
-msgstr "Nesubtenata ŝlosilo '%s' en adresenigo '%s'"
+msgstr "Nesubtenata ŝlosilo “%s” en adresenigo '%s'"
-#: ../gio/gdbusaddress.c:182
-#, fuzzy, c-format
-#| msgid ""
-#| "Address '%s' is invalid (need exactly one of path, tmpdir or abstract "
-#| "keys)"
-msgid ""
-"Address “%s” is invalid (need exactly one of path, tmpdir or abstract keys)"
-msgstr ""
-"Adreso “%s” estas malvalida (bezonas precize unu el 'path', 'tmpdir' aŭ "
-"'abstract' ŝlosiloj)"
-
-#: ../gio/gdbusaddress.c:195
+#: gio/gdbusaddress.c:181
#, fuzzy, c-format
#| msgid "Meaningless key/value pair combination in address entry '%s'"
msgid "Meaningless key/value pair combination in address entry “%s”"
-msgstr "Sensignifa ŝlosilo/valoro parokombinaĵo en adresa enigo '%s'"
+msgstr "Sensignifa ŝlosilo/valoro parokombinaĵo en adresa enigo “%s”"
+
+#: gio/gdbusaddress.c:190
+#, fuzzy, c-format
+#| msgid "Address '%s' is invalid (need exactly one of path, tmpdir or abstract keys)"
+msgid "Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract keys)"
+msgstr "Adreso “%s” estas malvalida (bezonas precize unu el 'path', 'tmpdir' aŭ 'abstract' ŝlosiloj)"
-#: ../gio/gdbusaddress.c:258 ../gio/gdbusaddress.c:339
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
+#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, fuzzy, c-format
#| msgid "Error in address '%s' - the port attribute is malformed"
-msgid "Error in address “%s” — the port attribute is malformed"
-msgstr "Eraro en adreso '%s' - la 'port' atributo estas misformita"
+msgid "Error in address “%s” — the “%s” attribute is malformed"
+msgstr "Eraro en adreso “%s” - la 'port' atributo estas misformita"
-#: ../gio/gdbusaddress.c:269 ../gio/gdbusaddress.c:350
+#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:682
#, fuzzy, c-format
-#| msgid "Error in address '%s' - the family attribute is malformed"
-msgid "Error in address “%s” — the family attribute is malformed"
-msgstr "Eraro en adreso '%s' - la 'family' atributo estas misformita"
+#| msgid "Unknown or unsupported transport '%s' for address '%s'"
+msgid "Unknown or unsupported transport “%s” for address “%s”"
+msgstr "Nekonata aŭ nesubtenata transporto “%s” por adreso '%s'"
-#: ../gio/gdbusaddress.c:460
+#: gio/gdbusaddress.c:467
#, fuzzy, c-format
#| msgid "Address element '%s', does not contain a colon (:)"
msgid "Address element “%s” does not contain a colon (:)"
-msgstr "Adresa elemento '%s', ne havas dupunkton (:)"
+msgstr "Adresa elemento “%s”, ne havas dupunkton (:)"
-#: ../gio/gdbusaddress.c:481
-#, fuzzy, c-format
-#| msgid ""
-#| "Key/Value pair %d, '%s', in address element '%s', does not contain an "
-#| "equal sign"
-msgid ""
-"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
-"sign"
+#: gio/gdbusaddress.c:476
+#, c-format
+msgid "Transport name in address element “%s” must not be empty"
msgstr ""
-"Ŝlosilo/valoro paro %d, '%s', en adresa elemento '%s', ne havas egalsignon"
-#: ../gio/gdbusaddress.c:495
+#: gio/gdbusaddress.c:497
#, fuzzy, c-format
-#| msgid ""
-#| "Error unescaping key or value in Key/Value pair %d, '%s', in address "
-#| "element '%s'"
-msgid ""
-"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
-"“%s”"
-msgstr ""
-"Eraro dum malkodŝanĝo de la ŝlosilo aŭ la valoro en ŝlosilo/valoro paro %d, "
-"'%s', en adresa elemento '%s'"
+#| msgid "Key/Value pair %d, '%s', in address element '%s', does not contain an equal sign"
+msgid "Key/Value pair %d, “%s”, in address element “%s” does not contain an equal sign"
+msgstr "Ŝlosilo/valoro paro %d, “%s”, en adresa elemento '%s', ne havas egalsignon"
-#: ../gio/gdbusaddress.c:573
+#: gio/gdbusaddress.c:508
#, fuzzy, c-format
-#| msgid ""
-#| "Error in address '%s' - the unix transport requires exactly one of the "
-#| "keys 'path' or 'abstract' to be set"
-msgid ""
-"Error in address “%s” — the unix transport requires exactly one of the keys "
-"“path” or “abstract” to be set"
-msgstr ""
-"Eraro en adreso '%s' - la uniksa transporto bezonas precize unu de la "
-"ŝlosiloj 'path' aŭ 'abstract' esti agordita"
+#| msgid "Key/Value pair %d, '%s', in address element '%s', does not contain an equal sign"
+msgid "Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
+msgstr "Ŝlosilo/valoro paro %d, “%s”, en adresa elemento '%s', ne havas egalsignon"
+
+#: gio/gdbusaddress.c:522
+#, fuzzy, c-format
+#| msgid "Error unescaping key or value in Key/Value pair %d, '%s', in address element '%s'"
+msgid "Error unescaping key or value in Key/Value pair %d, “%s”, in address element “%s”"
+msgstr "Eraro dum malkodŝanĝo de la ŝlosilo aŭ la valoro en ŝlosilo/valoro paro %d, “%s”, en adresa elemento '%s'"
-#: ../gio/gdbusaddress.c:609
+#: gio/gdbusaddress.c:590
+#, fuzzy, c-format
+#| msgid "Error in address '%s' - the unix transport requires exactly one of the keys 'path' or 'abstract' to be set"
+msgid "Error in address “%s” — the unix transport requires exactly one of the keys “path” or “abstract” to be set"
+msgstr "Eraro en adreso “%s” - la uniksa transporto bezonas precize unu de la ŝlosiloj 'path' aŭ 'abstract' esti agordita"
+
+#: gio/gdbusaddress.c:625
#, fuzzy, c-format
#| msgid "Error in address '%s' - the host attribute is missing or malformed"
msgid "Error in address “%s” — the host attribute is missing or malformed"
-msgstr "Eraro en adreso '%s' - la 'host' atributo mankas aŭ estas misformita"
+msgstr "Eraro en adreso “%s” - la 'host' atributo mankas aŭ estas misformita"
-#: ../gio/gdbusaddress.c:623
+#: gio/gdbusaddress.c:639
#, fuzzy, c-format
#| msgid "Error in address '%s' - the port attribute is missing or malformed"
msgid "Error in address “%s” — the port attribute is missing or malformed"
-msgstr ""
-"Eraro en adreso '%s' - la 'port' atributo estas maka aŭ estas misformita"
+msgstr "Eraro en adreso “%s” - la 'port' atributo estas maka aŭ estas misformita"
-#: ../gio/gdbusaddress.c:637
+#: gio/gdbusaddress.c:653
#, fuzzy, c-format
-#| msgid ""
-#| "Error in address '%s' - the noncefile attribute is missing or malformed"
+#| msgid "Error in address '%s' - the noncefile attribute is missing or malformed"
msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
-msgstr ""
-"Eraro en adreso '%s' - la 'noncefile' atributo mankas aŭ estas misformita"
+msgstr "Eraro en adreso “%s” - la 'noncefile' atributo mankas aŭ estas misformita"
-#: ../gio/gdbusaddress.c:658
+#: gio/gdbusaddress.c:674
msgid "Error auto-launching: "
msgstr "Eraro dum aŭtolanĉo: "
-#: ../gio/gdbusaddress.c:666
-#, fuzzy, c-format
-#| msgid "Unknown or unsupported transport '%s' for address '%s'"
-msgid "Unknown or unsupported transport “%s” for address “%s”"
-msgstr "Nekonata aŭ nesubtenata transporto '%s' por adreso '%s'"
-
-#: ../gio/gdbusaddress.c:702
+#: gio/gdbusaddress.c:727
#, fuzzy, c-format
#| msgid "Error opening nonce file '%s': %s"
msgid "Error opening nonce file “%s”: %s"
-msgstr "Eraro dum malfermo de dosiero 'nonce' '%s': %s"
+msgstr "Eraro dum malfermo de dosiero 'nonce' “%s”: %s"
-#: ../gio/gdbusaddress.c:720
+#: gio/gdbusaddress.c:746
#, fuzzy, c-format
#| msgid "Error reading from nonce file '%s': %s"
msgid "Error reading from nonce file “%s”: %s"
msgstr "Eraro dum legado de dosiero 'nonce' “%s”: %s"
-#: ../gio/gdbusaddress.c:729
+#: gio/gdbusaddress.c:755
#, fuzzy, c-format
#| msgid "Error reading from nonce file '%s', expected 16 bytes, got %d"
msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
-msgstr "Eraro dum legado de dosiero nonce '%s', 16 baitoj atendita, akirita %d"
+msgstr "Eraro dum legado de dosiero nonce “%s”, 16 baitoj atendita, akirita %d"
-#: ../gio/gdbusaddress.c:747
+#: gio/gdbusaddress.c:773
#, fuzzy, c-format
#| msgid "Error writing contents of nonce file '%s' to stream:"
msgid "Error writing contents of nonce file “%s” to stream:"
-msgstr "Eraro dum skribado de enhavo de dosiero nonce '%s' al la fluo:"
+msgstr "Eraro dum skribado de enhavo de dosiero nonce “%s” al la fluo:"
-#: ../gio/gdbusaddress.c:956
+#: gio/gdbusaddress.c:988
msgid "The given address is empty"
msgstr "La donita adreso estas malplena"
-#: ../gio/gdbusaddress.c:1069
+#: gio/gdbusaddress.c:1101
#, fuzzy, c-format
#| msgid "Cannot spawn a message bus without a machine-id: "
-msgid "Cannot spawn a message bus when setuid"
+msgid "Cannot spawn a message bus when AT_SECURE is set"
msgstr "Ne eblas starti mesaĝan buson sen maŝino-identigo"
-#: ../gio/gdbusaddress.c:1076
+#: gio/gdbusaddress.c:1108
msgid "Cannot spawn a message bus without a machine-id: "
msgstr "Ne eblas starti mesaĝan buson sen maŝino-identigo: "
-#: ../gio/gdbusaddress.c:1083
+#: gio/gdbusaddress.c:1115
#, c-format
msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
msgstr ""
-#: ../gio/gdbusaddress.c:1125
+#: gio/gdbusaddress.c:1157
#, fuzzy, c-format
#| msgid "Error spawning command line '%s': "
msgid "Error spawning command line “%s”: "
msgstr "Eraro dum starto de la komanda linio “%s”: "
-#: ../gio/gdbusaddress.c:1342
-#, c-format
-msgid "(Type any character to close this window)\n"
-msgstr ""
-
-#: ../gio/gdbusaddress.c:1496
-#, c-format
-msgid "Session dbus not running, and autolaunch failed"
-msgstr ""
-
-#: ../gio/gdbusaddress.c:1507
+#: gio/gdbusaddress.c:1226
#, c-format
msgid "Cannot determine session bus address (not implemented for this OS)"
-msgstr ""
-"Ne eblas determini seancobusan adreson (ne estas realigita por ĉi tiu "
-"operaciumo)"
+msgstr "Ne eblas determini seancobusan adreson (ne estas realigita por ĉi tiu operaciumo)"
-#: ../gio/gdbusaddress.c:1645
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, fuzzy, c-format
-#| msgid ""
-#| "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment "
-#| "variable - unknown value '%s'"
-msgid ""
-"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
-"— unknown value “%s”"
-msgstr ""
-"Ne eblas determi busadreson per DBUS_STARTER_BUS_TYPE medivariablo - "
-"nekonata valoron '%s'"
+#| msgid "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable - unknown value '%s'"
+msgid "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable — unknown value “%s”"
+msgstr "Ne eblas determi busadreson per DBUS_STARTER_BUS_TYPE medivariablo - nekonata valoron “%s”"
-#: ../gio/gdbusaddress.c:1654 ../gio/gdbusconnection.c:7155
-msgid ""
-"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
-"variable is not set"
-msgstr ""
-"Ne eblas determi busadreso ĉar la DBUS_STARTER_BUS_TYPE medivariable ne "
-"estas agordita"
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
+msgid "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment variable is not set"
+msgstr "Ne eblas determi busadreso ĉar la DBUS_STARTER_BUS_TYPE medivariable ne estas agordita"
-#: ../gio/gdbusaddress.c:1664
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Nekonata bustipo %d"
-#: ../gio/gdbusauth.c:293
+#: gio/gdbusauth.c:294
msgid "Unexpected lack of content trying to read a line"
msgstr "Neatendita manko de enhavo kiam provas legi linion"
-#: ../gio/gdbusauth.c:337
+#: gio/gdbusauth.c:338
msgid "Unexpected lack of content trying to (safely) read a line"
msgstr "Neatendita manko de enhavo kiam provas legi (sekure) linion"
-#: ../gio/gdbusauth.c:508
+#: gio/gdbusauth.c:482
#, c-format
-msgid ""
-"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
+msgid "Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
+msgstr "Eluzis ĉiujn haveblajn aŭtentigajn metodojn (provinta: %s) (havebla: %s)"
+
+#: gio/gdbusauth.c:1045
+#, fuzzy
+#| msgid "Unexpected lack of content trying to read a line"
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Neatendita manko de enhavo kiam provas legi linion"
+
+#: gio/gdbusauth.c:1195
+msgid "User IDs must be the same for peer and server"
msgstr ""
-"Eluzis ĉiujn haveblajn aŭtentigajn metodojn (provinta: %s) (havebla: %s)"
-#: ../gio/gdbusauth.c:1174
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Resignita per GDBusAuthObserver::authorize-authenticated-peer"
-#: ../gio/gdbusauthmechanismsha1.c:261
+#: gio/gdbusauthmechanismsha1.c:307
#, fuzzy, c-format
#| msgid "Error when getting information for directory '%s': %s"
msgid "Error when getting information for directory “%s”: %s"
-msgstr "Eraro dum akiro de informo de dosierujo '%s': %s"
+msgstr "Eraro dum akiro de informo de dosierujo “%s”: %s"
-#: ../gio/gdbusauthmechanismsha1.c:273
+#: gio/gdbusauthmechanismsha1.c:322
#, fuzzy, c-format
-#| msgid ""
-#| "Permissions on directory '%s' are malformed. Expected mode 0700, got 0%o"
-msgid ""
-"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
-msgstr ""
-"Permesoj sur dosierujo '%s' estas misformitaj. Atendita reĝimo 0700, akirita "
-"0%o"
+#| msgid "Permissions on directory '%s' are malformed. Expected mode 0700, got 0%o"
+msgid "Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
+msgstr "Permesoj sur dosierujo “%s” estas misformitaj. Atendita reĝimo 0700, akirita 0%o"
-#: ../gio/gdbusauthmechanismsha1.c:294
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, fuzzy, c-format
#| msgid "Error creating directory '%s': %s"
msgid "Error creating directory “%s”: %s"
-msgstr "Eraro dum kreo de la dosierujo '%s': %s"
+msgstr "Eraro dum kreo de la dosierujo “%s”: %s"
+
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
+msgid "Operation not supported"
+msgstr "Operacio ne estas subtenata"
-#: ../gio/gdbusauthmechanismsha1.c:377
+#: gio/gdbusauthmechanismsha1.c:411
#, fuzzy, c-format
#| msgid "Error opening keyring '%s' for reading: "
msgid "Error opening keyring “%s” for reading: "
msgstr "Eraro dum malfermo de la ŝlosiloringo “%s” por legi: "
-#: ../gio/gdbusauthmechanismsha1.c:401 ../gio/gdbusauthmechanismsha1.c:714
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, fuzzy, c-format
#| msgid "Line %d of the keyring at '%s' with content '%s' is malformed"
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
-msgstr "Linio %d de la ŝlosiloringo al '%s' kun enhavo '%s' estas misformita"
+msgstr "Linio %d de la ŝlosiloringo al “%s” kun enhavo '%s' estas misformita"
-#: ../gio/gdbusauthmechanismsha1.c:415 ../gio/gdbusauthmechanismsha1.c:728
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, fuzzy, c-format
-#| msgid ""
-#| "First token of line %d of the keyring at '%s' with content '%s' is "
-#| "malformed"
-msgid ""
-"First token of line %d of the keyring at “%s” with content “%s” is malformed"
-msgstr ""
-"Unua ĵetono de linio %d de la ŝlosiloringo al '%s' kun enhavo '%s' estas "
-"misformita"
+#| msgid "First token of line %d of the keyring at '%s' with content '%s' is malformed"
+msgid "First token of line %d of the keyring at “%s” with content “%s” is malformed"
+msgstr "Unua ĵetono de linio %d de la ŝlosiloringo al “%s” kun enhavo '%s' estas misformita"
-#: ../gio/gdbusauthmechanismsha1.c:430 ../gio/gdbusauthmechanismsha1.c:742
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, fuzzy, c-format
-#| msgid ""
-#| "Second token of line %d of the keyring at '%s' with content '%s' is "
-#| "malformed"
-msgid ""
-"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
-msgstr ""
-"Dua ĵetono de linio %d de la ŝlosiloringo al '%s' kun enhavo '%s' estas "
-"misformita"
+#| msgid "Second token of line %d of the keyring at '%s' with content '%s' is malformed"
+msgid "Second token of line %d of the keyring at “%s” with content “%s” is malformed"
+msgstr "Dua ĵetono de linio %d de la ŝlosiloringo al “%s” kun enhavo '%s' estas misformita"
-#: ../gio/gdbusauthmechanismsha1.c:454
+#: gio/gdbusauthmechanismsha1.c:486
#, fuzzy, c-format
#| msgid "Didn't find cookie with id %d in the keyring at '%s'"
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
-msgstr "Ne trovas kuketon kun identigo %d en la ŝlosiloringo ĉe '%s'"
+msgstr "Ne trovas kuketon kun identigo %d en la ŝlosiloringo ĉe “%s”"
-#: ../gio/gdbusauthmechanismsha1.c:532
-#, fuzzy, c-format
-#| msgid "Error deleting stale lock file '%s': %s"
-msgid "Error deleting stale lock file “%s”: %s"
-msgstr "Eraro dum forigo de la malnova ŝlosdosiero '%s': %s"
-
-#: ../gio/gdbusauthmechanismsha1.c:564
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
-#| msgid "Error creating lock file '%s': %s"
msgid "Error creating lock file “%s”: %s"
msgstr "Eraro dum kreo de la ŝlosdosiero “%s”: %s"
-#: ../gio/gdbusauthmechanismsha1.c:594
+#: gio/gdbusauthmechanismsha1.c:616
+#, fuzzy, c-format
+#| msgid "Error deleting stale lock file '%s': %s"
+msgid "Error deleting stale lock file “%s”: %s"
+msgstr "Eraro dum forigo de la malnova ŝlosdosiero “%s”: %s"
+
+#: gio/gdbusauthmechanismsha1.c:655
#, fuzzy, c-format
#| msgid "Error closing (unlinked) lock file '%s': %s"
msgid "Error closing (unlinked) lock file “%s”: %s"
-msgstr "Eraro dum fermo de la (malligita) ŝlosdosiero '%s': %s"
+msgstr "Eraro dum fermo de la (malligita) ŝlosdosiero “%s”: %s"
-#: ../gio/gdbusauthmechanismsha1.c:604
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
-#| msgid "Error unlinking lock file '%s': %s"
msgid "Error unlinking lock file “%s”: %s"
msgstr "Eraro dum malligado de la ŝlosdosiero “%s”: %s"
-#: ../gio/gdbusauthmechanismsha1.c:681
+#: gio/gdbusauthmechanismsha1.c:742
#, fuzzy, c-format
#| msgid "Error opening keyring '%s' for writing: "
msgid "Error opening keyring “%s” for writing: "
-msgstr "Eraro dum malfermo de ŝlosiringo '%s' por skribi: "
+msgstr "Eraro dum malfermo de ŝlosiringo “%s” por skribi: "
-#: ../gio/gdbusauthmechanismsha1.c:878
+#: gio/gdbusauthmechanismsha1.c:936
#, fuzzy, c-format
#| msgid "(Additionally, releasing the lock for '%s' also failed: %s) "
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Cetere, liberigo de la seruro por “%s” ankaŭ ne sukcesis: %s) "
-#: ../gio/gdbusconnection.c:612 ../gio/gdbusconnection.c:2378
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "La konekto estas fermita"
-#: ../gio/gdbusconnection.c:1879
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Tempolimo estis atingita"
-#: ../gio/gdbusconnection.c:2500
-msgid ""
-"Unsupported flags encountered when constructing a client-side connection"
+#: gio/gdbusconnection.c:2538
+msgid "Unsupported flags encountered when constructing a client-side connection"
msgstr "Nesubtenataj flagoj renkontitaj dum kreo de klientflanka konekto"
-#: ../gio/gdbusconnection.c:4124 ../gio/gdbusconnection.c:4471
-#, c-format
-msgid ""
-"No such interface 'org.freedesktop.DBus.Properties' on object at path %s"
-msgstr ""
-"Neniu tia interfaco 'org.freedesktop.DBus.Properties' en objekto en vojo %s"
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
+#, fuzzy, c-format
+#| msgid "No such interface 'org.freedesktop.DBus.Properties' on object at path %s"
+msgid "No such interface “org.freedesktop.DBus.Properties” on object at path %s"
+msgstr "Neniu tia interfaco 'org.freedesktop.DBus.Properties' en objekto en vojo %s"
-#: ../gio/gdbusconnection.c:4266
-#, c-format
-msgid "No such property '%s'"
-msgstr "Neniu tia atributo '%s'"
+#: gio/gdbusconnection.c:4422
+#, fuzzy, c-format
+#| msgid "No such property '%s'"
+msgid "No such property “%s”"
+msgstr "Neniu tia atributo “%s”"
-#: ../gio/gdbusconnection.c:4278
-#, c-format
-msgid "Property '%s' is not readable"
-msgstr "Atributo '%s' ne estas legebla"
+#: gio/gdbusconnection.c:4434
+#, fuzzy, c-format
+#| msgid "Property '%s' is not readable"
+msgid "Property “%s” is not readable"
+msgstr "Atributo “%s” ne estas legebla"
-#: ../gio/gdbusconnection.c:4289
-#, c-format
-msgid "Property '%s' is not writable"
-msgstr "Atributo '%s' ne estas skribebla"
+#: gio/gdbusconnection.c:4445
+#, fuzzy, c-format
+#| msgid "Property '%s' is not writable"
+msgid "Property “%s” is not writable"
+msgstr "Atributo “%s” ne estas skribebla"
-#: ../gio/gdbusconnection.c:4309
-#, c-format
-msgid "Error setting property '%s': Expected type '%s' but got '%s'"
-msgstr ""
-"Eraro dum agordado de la atributo '%s': Atendita tipo '%s' sed akiris '%s'"
+#: gio/gdbusconnection.c:4465
+#, fuzzy, c-format
+#| msgid "Error setting property '%s': Expected type '%s' but got '%s'"
+msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
+msgstr "Eraro dum agordado de la atributo “%s”: Atendita tipo '%s' sed akiris '%s'"
-#: ../gio/gdbusconnection.c:4414 ../gio/gdbusconnection.c:4622
-#: ../gio/gdbusconnection.c:6586
-#, c-format
-msgid "No such interface '%s'"
-msgstr "Neniu tia interfaco '%s'"
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
+#, fuzzy, c-format
+#| msgid "No such interface '%s'"
+msgid "No such interface “%s”"
+msgstr "Neniu tia interfaco “%s”"
-#: ../gio/gdbusconnection.c:4840 ../gio/gdbusconnection.c:7095
-#, c-format
-msgid "No such interface '%s' on object at path %s"
-msgstr "Neniu tia interfaco '%s' sur objekto en vojo %s"
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
+#, fuzzy, c-format
+#| msgid "No such interface '%s' on object at path %s"
+msgid "No such interface “%s” on object at path %s"
+msgstr "Neniu tia interfaco “%s” sur objekto en vojo %s"
-#: ../gio/gdbusconnection.c:4938
+#: gio/gdbusconnection.c:5102
#, c-format
-msgid "No such method '%s'"
-msgstr "Neniu tia metodo '%s'"
+msgid "No such method “%s”"
+msgstr "Neniu tia metodo “%s”"
-#: ../gio/gdbusconnection.c:4969
-#, c-format
-msgid "Type of message, '%s', does not match expected type '%s'"
-msgstr "Tipo de mesaĝo, '%s', ne kongruas kun la atendita tipo '%s'"
+#: gio/gdbusconnection.c:5133
+#, fuzzy, c-format
+#| msgid "Type of message, '%s', does not match expected type '%s'"
+msgid "Type of message, “%s”, does not match expected type “%s”"
+msgstr "Tipo de mesaĝo, “%s”, ne kongruas kun la atendita tipo '%s'"
-#: ../gio/gdbusconnection.c:5167
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Objekto jam estas elportita por la interfaco %s ĉe %s"
-#: ../gio/gdbusconnection.c:5393
+#: gio/gdbusconnection.c:5563
#, fuzzy, c-format
#| msgid "Unable to create socket: %s"
msgid "Unable to retrieve property %s.%s"
msgstr "Ne eblas krei kontaktskatolon %s.%s"
-#: ../gio/gdbusconnection.c:5449
+#: gio/gdbusconnection.c:5619
#, fuzzy, c-format
#| msgid "Unable to create socket: %s"
msgid "Unable to set property %s.%s"
msgstr "Ne eblas krei kontaktskatolon %s.%s"
-#: ../gio/gdbusconnection.c:5625
-#, c-format
-msgid "Method '%s' returned type '%s', but expected '%s'"
-msgstr "Metodo '%s' redonis tipo '%s', sed estis atendata '%s' '"
+#: gio/gdbusconnection.c:5798
+#, fuzzy, c-format
+#| msgid "Method '%s' returned type '%s', but expected '%s'"
+msgid "Method “%s” returned type “%s”, but expected “%s”"
+msgstr "Metodo “%s” redonis tipo '%s', sed estis atendata '%s' '"
-#: ../gio/gdbusconnection.c:6697
-#, c-format
-msgid "Method '%s' on interface '%s' with signature '%s' does not exist"
-msgstr "Metodo '%s' sur interfaco '%s' kun subskribo '%s' ne existas"
+#: gio/gdbusconnection.c:6874
+#, fuzzy, c-format
+#| msgid "Method '%s' on interface '%s' with signature '%s' does not exist"
+msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
+msgstr "Metodo “%s” sur interfaco '%s' kun subskribo '%s' ne existas"
-#: ../gio/gdbusconnection.c:6818
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Subarbo estas jam elportita por %s"
-#: ../gio/gdbusconnection.c:7146
-#, c-format
-msgid ""
-"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
-"- unknown value '%s'"
-msgstr ""
-"Ne eblas determi busadreson per DBUS_STARTER_BUS_TYPE medivariablo - "
-"nekonata valoron '%s'"
+#: gio/gdbusconnection.c:7287
+#, fuzzy, c-format
+#| msgid "Key file does not have group '%s'"
+msgid "Object does not exist at path “%s”"
+msgstr "Ŝlosilodosiero ne havas grupon “%s”"
-#: ../gio/gdbusmessage.c:1246
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "tipo estas NEVALIDA"
-#: ../gio/gdbusmessage.c:1257
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1324
+#, fuzzy
+#| msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
msgstr "METODO_VOKO mesaĝo: VOJO aŭ MEMBRO kapo-kampo mankas"
-#: ../gio/gdbusmessage.c:1268
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
+#: gio/gdbusmessage.c:1340
+#, fuzzy
+#| msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
msgstr "METOD_REVENO mesaĝo: RESPONDO_SERI0 kapo-kampo mankas"
-#: ../gio/gdbusmessage.c:1280
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+#: gio/gdbusmessage.c:1360
+#, fuzzy
+#| msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
msgstr "ERARMESAĜO: RESPONDO_SERIO kapo-kampo aŭ ERARO_NOMO mankas"
-#: ../gio/gdbusmessage.c:1293
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1384
+#, fuzzy
+#| msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
+msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
msgstr "SIGNALMESAĜO: VOJO, INTERFACO or MEMBRO kapo-kampo mankas"
-#: ../gio/gdbusmessage.c:1301
-msgid ""
-"SIGNAL message: The PATH header field is using the reserved value /org/"
-"freedesktop/DBus/Local"
-msgstr ""
-"SIGNALMESAĜO: La VOJO-a kapo-kampo uzas la valoron reservitan "
-"/org/freedesktop/DBus/Local"
+#: gio/gdbusmessage.c:1392
+msgid "SIGNAL message: The PATH header field is using the reserved value /org/freedesktop/DBus/Local"
+msgstr "SIGNALMESAĜO: La VOJO-a kapo-kampo uzas la valoron reservitan /org/freedesktop/DBus/Local"
-#: ../gio/gdbusmessage.c:1309
-msgid ""
-"SIGNAL message: The INTERFACE header field is using the reserved value org."
-"freedesktop.DBus.Local"
-msgstr ""
-"SIGNALMESAĜO: La kapo-kampo INTERFACO uzas la valoron reservitan org."
-"freedesktop.DBus.Local"
+#: gio/gdbusmessage.c:1400
+msgid "SIGNAL message: The INTERFACE header field is using the reserved value org.freedesktop.DBus.Local"
+msgstr "SIGNALMESAĜO: La kapo-kampo INTERFACO uzas la valoron reservitan org.freedesktop.DBus.Local"
-#: ../gio/gdbusmessage.c:1357 ../gio/gdbusmessage.c:1417
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
-#| msgid "Wanted to read %lu byte but got EOF"
-#| msgid_plural "Wanted to read %lu bytes but got EOF"
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "Volis legi %lu bajto sed nur akiris %lu"
msgstr[1] "Volis legi %lu bajtoj sed nur akiris %lu"
-#: ../gio/gdbusmessage.c:1371
+#: gio/gdbusmessage.c:1463
#, fuzzy, c-format
#| msgid "Expected NUL byte after the string '%s' but found byte %d"
msgid "Expected NUL byte after the string “%s” but found byte %d"
-msgstr "Atendita NUL bajto post la ĉeno '%s' sed trovita bajto %d"
+msgstr "Atendita NUL bajto post la ĉeno “%s” sed trovita bajto %d"
-#: ../gio/gdbusmessage.c:1390
+#: gio/gdbusmessage.c:1482
#, fuzzy, c-format
-#| msgid ""
-#| "Expected valid UTF-8 string but found invalid bytes at byte offset %d "
-#| "(length of string is %d). The valid UTF-8 string up until that point was "
-#| "'%s'"
-msgid ""
-"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
-"(length of string is %d). The valid UTF-8 string up until that point was “%s”"
+#| msgid "Expected valid UTF-8 string but found invalid bytes at byte offset %d (length of string is %d). The valid UTF-8 string up until that point was '%s'"
+msgid "Expected valid UTF-8 string but found invalid bytes at byte offset %d (length of string is %d). The valid UTF-8 string up until that point was “%s”"
+msgstr "Atendis validan UTF-8 ĉenon sed trovitaj nevalidaj bajtoj ĉe bajto deŝovo %d (longeco de ĉeno estas %d). La valida UTF-8 ĉeno ĝis tiu punkto estis “%s”"
+
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
+msgid "Value nested too deeply"
msgstr ""
-"Atendis validan UTF-8 ĉenon sed trovitaj nevalidaj bajtoj ĉe bajto deŝovo %d "
-"(longeco de ĉeno estas %d). La valida UTF-8 ĉeno ĝis tiu punkto estis “%s”"
-#: ../gio/gdbusmessage.c:1589
+#: gio/gdbusmessage.c:1714
#, fuzzy, c-format
#| msgid "Parsed value '%s' is not a valid D-Bus object path"
msgid "Parsed value “%s” is not a valid D-Bus object path"
-msgstr "Analizita valoro '%s' ne estas valida D-Bus objektovojo"
+msgstr "Analizita valoro “%s” ne estas valida D-Bus objektovojo"
-#: ../gio/gdbusmessage.c:1611
+#: gio/gdbusmessage.c:1738
#, fuzzy, c-format
#| msgid "Parsed value '%s' is not a valid D-Bus signature"
msgid "Parsed value “%s” is not a valid D-Bus signature"
-msgstr "Analizita valoro '%s' ne estas valida D-Busa subskribo"
+msgstr "Analizita valoro “%s” ne estas valida D-Busa subskribo"
-#: ../gio/gdbusmessage.c:1658
+#: gio/gdbusmessage.c:1789
#, c-format
-msgid ""
-"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
-msgid_plural ""
-"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
-msgstr[0] ""
-"Renkontis matricon de longeco %u bajto. Maksimumo estas 2<<26 bajtoj (64 "
-"MiB)."
-msgstr[1] ""
-"Renkontis matricon de longeco %u bajtoj. Maksimumo estas 2<<26 bajtoj (64 "
-"MiB)."
-
-#: ../gio/gdbusmessage.c:1678
+msgid "Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
+msgid_plural "Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
+msgstr[0] "Renkontis matricon de longeco %u bajto. Maksimumo estas 2<<26 bajtoj (64 MiB)."
+msgstr[1] "Renkontis matricon de longeco %u bajtoj. Maksimumo estas 2<<26 bajtoj (64 MiB)."
+
+#: gio/gdbusmessage.c:1809
#, c-format
-msgid ""
-"Encountered array of type “a%c”, expected to have a length a multiple of %u "
-"bytes, but found to be %u bytes in length"
+msgid "Encountered array of type “a%c”, expected to have a length a multiple of %u bytes, but found to be %u bytes in length"
+msgstr ""
+
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
+msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr ""
-#: ../gio/gdbusmessage.c:1845
+#: gio/gdbusmessage.c:2017
#, fuzzy, c-format
#| msgid "Parsed value '%s' for variant is not a valid D-Bus signature"
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
-msgstr "Analizita valoro '%s' por variaĵo ne estas valida D-Busa subskribo"
+msgstr "Analizita valoro “%s” por variaĵo ne estas valida D-Busa subskribo"
-#: ../gio/gdbusmessage.c:1869
+#: gio/gdbusmessage.c:2058
#, fuzzy, c-format
-#| msgid ""
-#| "Error deserializing GVariant with type string '%s' from the D-Bus wire "
-#| "format"
-msgid ""
-"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
-msgstr ""
-"Eraro dum malseriigo de GVariant kun tipo ĉeno '%s' de la D-Buso dratoformo"
+#| msgid "Error deserializing GVariant with type string '%s' from the D-Bus wire format"
+msgid "Error deserializing GVariant with type string “%s” from the D-Bus wire format"
+msgstr "Eraro dum malseriigo de GVariant kun tipo ĉeno “%s” de la D-Buso dratoformo"
-#: ../gio/gdbusmessage.c:2053
+#: gio/gdbusmessage.c:2243
#, fuzzy, c-format
-#| msgid ""
-#| "Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found "
-#| "value 0x%02x"
-msgid ""
-"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
-"0x%02x"
-msgstr ""
-"Nevalida pezekstrem('endianness')-valoro. Atendita 0x6c ('l') aŭ 0x42 ('B') "
-"sed trovas valoron 0x%02x"
+#| msgid "Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found value 0x%02x"
+msgid "Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value 0x%02x"
+msgstr "Nevalida pezekstrem('endianness')-valoro. Atendita 0x6c ('l') aŭ 0x42 ('B') sed trovas valoron 0x%02x"
-#: ../gio/gdbusmessage.c:2066
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Nevalida ĉefprotokolo versio. Atendita 1 sed trovita %d"
-#: ../gio/gdbusmessage.c:2122
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
+msgid "Signature header found but is not of type signature"
+msgstr ""
+
+#: gio/gdbusmessage.c:2332
#, fuzzy, c-format
#| msgid "Signature header with signature '%s' found but message body is empty"
msgid "Signature header with signature “%s” found but message body is empty"
-msgstr ""
-"Subskriba kapo kun subskribo '%s' estis trovita sed korpo de mesaĝo estas "
-"malplena"
+msgstr "Subskriba kapo kun subskribo “%s” estis trovita sed korpo de mesaĝo estas malplena"
-#: ../gio/gdbusmessage.c:2136
+#: gio/gdbusmessage.c:2347
#, fuzzy, c-format
#| msgid "Parsed value '%s' is not a valid D-Bus signature (for body)"
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
-msgstr "Analizita valoro '%s' ne estas valida D-Bus subskribo (por korpo)"
+msgstr "Analizita valoro “%s” ne estas valida D-Bus subskribo (por korpo)"
-#: ../gio/gdbusmessage.c:2166
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
-msgstr[0] ""
-"Ne estas subskriba kapo en mesaĝo sed la korpo de mesaĝo estas %u bajtoj"
-msgstr[1] ""
-"Ne estas subskriba kapo en mesaĝo sed la korpo de mesaĝo estas %u bajtoj"
+msgstr[0] "Ne estas subskriba kapo en mesaĝo sed la korpo de mesaĝo estas %u bajtoj"
+msgstr[1] "Ne estas subskriba kapo en mesaĝo sed la korpo de mesaĝo estas %u bajtoj"
-#: ../gio/gdbusmessage.c:2176
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Ne eblas malseriigi mesaĝon: "
-#: ../gio/gdbusmessage.c:2517
+#: gio/gdbusmessage.c:2735
#, fuzzy, c-format
-#| msgid ""
-#| "Error serializing GVariant with type string '%s' to the D-Bus wire format"
-msgid ""
-"Error serializing GVariant with type string “%s” to the D-Bus wire format"
-msgstr ""
-"Eraro dum seriigo de GVariant kun tipoĉeno '%s' al la D-Buso dratoformo"
+#| msgid "Error serializing GVariant with type string '%s' to the D-Bus wire format"
+msgid "Error serializing GVariant with type string “%s” to the D-Bus wire format"
+msgstr "Eraro dum seriigo de GVariant kun tipoĉeno “%s” al la D-Buso dratoformo"
-#: ../gio/gdbusmessage.c:2654
+#: gio/gdbusmessage.c:2872
#, c-format
-msgid ""
-"Message has %d file descriptors but the header field indicates %d file "
-"descriptors"
+msgid "Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
-"Mesaĝo havas %d dosiernumerojn sed la kapo-kampo indikas %d dosiernumeroj"
-#: ../gio/gdbusmessage.c:2662
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Ne eblas seriigi mesaĝon: "
-#: ../gio/gdbusmessage.c:2706
+#: gio/gdbusmessage.c:2933
#, fuzzy, c-format
#| msgid "Message body has signature '%s' but there is no signature header"
msgid "Message body has signature “%s” but there is no signature header"
-msgstr "Korpo de mesaĝo havas subskribon '%s' sed ne estas iu subskribokapo"
+msgstr "Korpo de mesaĝo havas subskribon “%s” sed ne estas iu subskribokapo"
-#: ../gio/gdbusmessage.c:2716
+#: gio/gdbusmessage.c:2943
#, fuzzy, c-format
-#| msgid ""
-#| "Message body has type signature '%s' but signature in the header field is "
-#| "'%s'"
-msgid ""
-"Message body has type signature “%s” but signature in the header field is "
-"“%s”"
-msgstr "Korpo de mesaĝo havas tipon '%s' sed tipo en la mesaĝokapo estas '%s'"
+#| msgid "Message body has type signature '%s' but signature in the header field is '%s'"
+msgid "Message body has type signature “%s” but signature in the header field is “%s”"
+msgstr "Korpo de mesaĝo havas tipon “%s” sed tipo en la mesaĝokapo estas '%s'"
-#: ../gio/gdbusmessage.c:2732
+#: gio/gdbusmessage.c:2959
#, fuzzy, c-format
#| msgid "Message body is empty but signature in the header field is '(%s)'"
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Korpo de mesaĝo estas malplena sed tipo en la masaĝokapo estas '(%s)'"
-#: ../gio/gdbusmessage.c:3285
+#: gio/gdbusmessage.c:3514
#, fuzzy, c-format
#| msgid "Error return with body of type '%s'"
msgid "Error return with body of type “%s”"
-msgstr "Erara reveno kun korpo de tipo '%s'"
+msgstr "Erara reveno kun korpo de tipo “%s”"
-#: ../gio/gdbusmessage.c:3293
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Erara reveno kun malplena korpo"
-#: ../gio/gdbusprivate.c:2066
+#: gio/gdbusprivate.c:2201
+#, c-format
+msgid "(Type any character to close this window)\n"
+msgstr "(Tajpu ajnan klavon por fermi tiun fenestron)\n"
+
+#: gio/gdbusprivate.c:2387
+#, c-format
+msgid "Session dbus not running, and autolaunch failed"
+msgstr ""
+
+#: gio/gdbusprivate.c:2410
#, fuzzy, c-format
#| msgid "Unable to trash file: %s"
msgid "Unable to get Hardware profile: %s"
msgstr "Ne eblas forŝovi dosieron %s al rubujo"
-#: ../gio/gdbusprivate.c:2111
-msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
-msgstr "Ne eblas ŝargi na /var/lib/dbus/machine-id aŭ /etc/machine-id: "
+#. Translators: Both placeholders are file paths
+#: gio/gdbusprivate.c:2461
+#, fuzzy, c-format
+#| msgid "Unable to trash file %s: %s"
+msgid "Unable to load %s or %s: "
+msgstr "Ne eblas forigi dosieron %s: %s"
-#: ../gio/gdbusproxy.c:1611
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Eraro dum voko de StartServiceByName por %s: "
-#: ../gio/gdbusproxy.c:1634
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Neatendata respondo %d de StartServiceByName(\"%s\") metodo"
-#: ../gio/gdbusproxy.c:2719 ../gio/gdbusproxy.c:2853
-msgid ""
-"Cannot invoke method; proxy is for a well-known name without an owner and "
-"proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
-msgstr ""
-"Ne eblas envoki metodon; prokurilo estas por bonkonata nomo sen posedanto "
-"kaj prokurilo estis kreita kun la G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flago"
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
+#, fuzzy, c-format
+#| msgid "Cannot invoke method; proxy is for a well-known name without an owner and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
+msgid "Cannot invoke method; proxy is for the well-known name %s without an owner, and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
+msgstr "Ne eblas envoki metodon; prokurilo estas por bonkonata nomo sen posedanto kaj prokurilo estis kreita kun la G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flago"
-#: ../gio/gdbusserver.c:708
-msgid "Abstract name space not supported"
+#: gio/gdbusserver.c:758
+#, fuzzy
+#| msgid "Abstract name space not supported"
+msgid "Abstract namespace not supported"
msgstr "Abstrakta nomspaco nesubtenatas"
-#: ../gio/gdbusserver.c:795
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Ne eblas specifi 'nonce'-dosieron dum kreo de servilo"
-#: ../gio/gdbusserver.c:873
+#: gio/gdbusserver.c:932
#, fuzzy, c-format
#| msgid "Error writing nonce file at '%s': %s"
msgid "Error writing nonce file at “%s”: %s"
-msgstr "Eraro dum skribo de 'nonce'-dosiero ĉe '%s': %s"
+msgstr "Eraro dum skribo de 'nonce'-dosiero ĉe “%s”: %s"
-#: ../gio/gdbusserver.c:1044
+#: gio/gdbusserver.c:1107
#, fuzzy, c-format
#| msgid "The string '%s' is not a valid D-Bus GUID"
msgid "The string “%s” is not a valid D-Bus GUID"
-msgstr "La ĉeno '%s' ne estas valida D-Bus GUID"
+msgstr "La ĉeno “%s” ne estas valida D-Bus GUID"
-#: ../gio/gdbusserver.c:1084
+#: gio/gdbusserver.c:1145
#, fuzzy, c-format
#| msgid "Cannot listen on unsupported transport '%s'"
msgid "Cannot listen on unsupported transport “%s”"
-msgstr "Ne eblas aŭskulti sur nesubtenata transporto '%s'"
+msgstr "Ne eblas aŭskulti sur nesubtenata transporto “%s”"
-#: ../gio/gdbus-tool.c:95
-#, fuzzy, c-format
-#| msgid ""
-#| "Commands:\n"
-#| " help Shows this information\n"
-#| " introspect Introspect a remote object\n"
-#| " monitor Monitor a remote object\n"
-#| " call Invoke a method on a remote object\n"
-#| " emit Emit a signal\n"
-#| "\n"
-#| "Use \"%s COMMAND --help\" to get help on each command.\n"
+#: gio/gdbus-tool.c:113
+#, c-format
msgid ""
"Commands:\n"
" help Shows this information\n"
@@ -1099,319 +1042,319 @@ msgstr ""
" monitor Kontroladi foran objekton\n"
" call Envoki metodon sur foran objekto\n"
" emit Sendi signalon\n"
+" wait Atendi, ke busnomo aperos\n"
"\n"
-"Uzi \"%s KOMANDON --help\" por akiri helpon pri ĉiu komando.\n"
+"Uzi “%s KOMANDO --help” por akiri helpon pri ĉiu komando.\n"
-#: ../gio/gdbus-tool.c:165 ../gio/gdbus-tool.c:227 ../gio/gdbus-tool.c:299
-#: ../gio/gdbus-tool.c:323 ../gio/gdbus-tool.c:725 ../gio/gdbus-tool.c:1068
-#: ../gio/gdbus-tool.c:1510
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Eraro: %s\n"
-#: ../gio/gdbus-tool.c:176 ../gio/gdbus-tool.c:240 ../gio/gdbus-tool.c:1526
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Eraro analizanta introspektan XML-datumaron: %s\n"
-#: ../gio/gdbus-tool.c:209
+#: gio/gdbus-tool.c:253
#, c-format
-#| msgid "Error: %s is not a valid member name\n"
msgid "Error: %s is not a valid name\n"
msgstr "Eraro: %s ne estas valida nomo\n"
-#: ../gio/gdbus-tool.c:357
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
+#, c-format
+msgid "Error: %s is not a valid object path\n"
+msgstr "Eraro: %s ne estas valida objekto-vojo\n"
+
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Konekti al la systemabuso"
-#: ../gio/gdbus-tool.c:358
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Konekti al la seanca buso"
-#: ../gio/gdbus-tool.c:359
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Konekti al donita D-Buso adreso"
-#: ../gio/gdbus-tool.c:369
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Opcioj de konekta finpunkto:"
-#: ../gio/gdbus-tool.c:370
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Opcioj specifantaj la konektan finpunkton"
-#: ../gio/gdbus-tool.c:392
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Ne konekta finpunkto specifita"
-#: ../gio/gdbus-tool.c:402
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Multoblaj konektaj finpunktoj specifitaj"
-#: ../gio/gdbus-tool.c:472
+#: gio/gdbus-tool.c:524
#, fuzzy, c-format
-#| msgid ""
-#| "Warning: According to introspection data, interface '%s' does not exist\n"
-msgid ""
-"Warning: According to introspection data, interface “%s” does not exist\n"
-msgstr "Averto: Laŭ introspekta datumaro, interfaco '%s' ne ekzistas\n"
+#| msgid "Warning: According to introspection data, interface '%s' does not exist\n"
+msgid "Warning: According to introspection data, interface “%s” does not exist\n"
+msgstr "Averto: Laŭ introspekta datumaro, interfaco “%s” ne ekzistas\n"
-#: ../gio/gdbus-tool.c:481
+#: gio/gdbus-tool.c:533
#, fuzzy, c-format
-#| msgid ""
-#| "Warning: According to introspection data, method '%s' does not exist on "
-#| "interface '%s'\n"
-msgid ""
-"Warning: According to introspection data, method “%s” does not exist on "
-"interface “%s”\n"
-msgstr ""
-"Averto: Laŭ introspekta datumaro, metodo '%s' ne ekzistas sur interfaco "
-"'%s'\n"
+#| msgid "Warning: According to introspection data, method '%s' does not exist on interface '%s'\n"
+msgid "Warning: According to introspection data, method “%s” does not exist on interface “%s”\n"
+msgstr "Averto: Laŭ introspekta datumaro, metodo “%s” ne ekzistas sur interfaco '%s'\n"
-#: ../gio/gdbus-tool.c:543
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Malnepra celo por signalo (unika nomo)"
-#: ../gio/gdbus-tool.c:544
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Objektovojo por sendi signalon sur"
-#: ../gio/gdbus-tool.c:545
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Signalo kaj interfaco nomo"
-#: ../gio/gdbus-tool.c:579
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Sendi signalon."
-#: ../gio/gdbus-tool.c:613 ../gio/gdbus-tool.c:858 ../gio/gdbus-tool.c:1616
-#: ../gio/gdbus-tool.c:1851 ../gio/gdbus-tool.c:2067
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Konekt-eraro: %s\n"
-#: ../gio/gdbus-tool.c:625
+#: gio/gdbus-tool.c:705
#, c-format
-msgid "Error: object path not specified.\n"
-msgstr "Eraro: objektovojo ne specifita.\n"
+msgid "Error: %s is not a valid unique bus name.\n"
+msgstr "Eraro: %s ne estas valida unika buso-nomo.\n"
-#: ../gio/gdbus-tool.c:630 ../gio/gdbus-tool.c:925 ../gio/gdbus-tool.c:1681
-#: ../gio/gdbus-tool.c:1917
-#, c-format
-msgid "Error: %s is not a valid object path\n"
-msgstr "Eraro: %s ne estas valida objekto-vojo\n"
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
+msgid "Error: Object path is not specified\n"
+msgstr "Eraro: Objektvojo ne estas specifita\n"
-#: ../gio/gdbus-tool.c:636
-#, c-format
-msgid "Error: signal not specified.\n"
-msgstr "Eraro: signalo ne specifita.\n"
+#: gio/gdbus-tool.c:767
+msgid "Error: Signal name is not specified\n"
+msgstr "Eraro: Signalnomo ne estas specifita\n"
-#: ../gio/gdbus-tool.c:643
-#, fuzzy, c-format
-#| msgid "Error: signal not specified.\n"
-msgid "Error: signal must be the fully-qualified name.\n"
-msgstr "Eraro: signalo ne specifita.\n"
+#: gio/gdbus-tool.c:781
+#, c-format
+msgid "Error: Signal name “%s” is invalid\n"
+msgstr "Eraro: Signalnomo“%s” estas nevalida\n"
-#: ../gio/gdbus-tool.c:651
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
-msgstr "Eraro: '%s' ne estas valida interfaco-nomo\n"
+msgstr "Eraro: %s ne estas valida interfaco-nomo\n"
-#: ../gio/gdbus-tool.c:657
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Eraro: %s ne estas valida membro-nomo\n"
-#: ../gio/gdbus-tool.c:663
-#, c-format
-msgid "Error: %s is not a valid unique bus name.\n"
-msgstr "Eraro: %s ne estas valida unika buso-nomo.\n"
-
#. Use the original non-"parse-me-harder" error
-#: ../gio/gdbus-tool.c:700 ../gio/gdbus-tool.c:1037
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Eraro dum sintaksa analizo de la parametro %d: %s\n"
-#: ../gio/gdbus-tool.c:732
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Eraro dum elbufrigo de la konekto: %s\n"
-#: ../gio/gdbus-tool.c:759
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Nomo de celvojo por envoki sur ĝin metodon"
-#: ../gio/gdbus-tool.c:760
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Vojo al objekto por envoki sur ĝin metodon"
-#: ../gio/gdbus-tool.c:761
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Metodo- kaj interfaco-nomo"
-#: ../gio/gdbus-tool.c:762
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Tempolimo en sekundoj"
-#: ../gio/gdbus-tool.c:803
+#: gio/gdbus-tool.c:900
+msgid "Allow interactive authorization"
+msgstr ""
+
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Envoki metodon sur fora objekto."
-#: ../gio/gdbus-tool.c:878 ../gio/gdbus-tool.c:1635 ../gio/gdbus-tool.c:1870
-#, c-format
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Eraro: Celzono ne estas specifita\n"
-#: ../gio/gdbus-tool.c:890 ../gio/gdbus-tool.c:1652 ../gio/gdbus-tool.c:1882
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
-#| msgid "Error: %s is not a valid member name\n"
msgid "Error: %s is not a valid bus name\n"
msgstr "Eraro: %s ne estas valida bus-nomo\n"
-#: ../gio/gdbus-tool.c:905 ../gio/gdbus-tool.c:1661
-#, c-format
-msgid "Error: Object path is not specified\n"
-msgstr "Eraro: Objektvojo ne estas specifita\n"
-
-#: ../gio/gdbus-tool.c:940
-#, c-format
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Eraro: Metodonomo ne estas specifita\n"
-#: ../gio/gdbus-tool.c:951
-#, fuzzy, c-format
-#| msgid "Error: Method name '%s' is invalid\n"
+#: gio/gdbus-tool.c:1091
+#, c-format
msgid "Error: Method name “%s” is invalid\n"
-msgstr "Eraro: Metodonomo'%s' estas nevalida\n"
+msgstr "Eraro: Metodonomo “%s” estas nevalida\n"
-#: ../gio/gdbus-tool.c:1029
+#: gio/gdbus-tool.c:1169
#, fuzzy, c-format
#| msgid "Error parsing parameter %d of type '%s': %s\n"
msgid "Error parsing parameter %d of type “%s”: %s\n"
-msgstr "Eraro dum sintaksa analizo de la parametro %d de tipo '%s': %s\n"
+msgstr "Eraro dum sintaksa analizo de la parametro %d de tipo “%s”: %s\n"
-#: ../gio/gdbus-tool.c:1473
+#: gio/gdbus-tool.c:1195
+#, fuzzy, c-format
+#| msgid "Error reading from handle: %s"
+msgid "Error adding handle %d: %s\n"
+msgstr "Eraro dum lego de dosiernumero: %s"
+
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Nomo de celo por introspekti"
-#: ../gio/gdbus-tool.c:1474
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Objektvojo por introspekti"
-#: ../gio/gdbus-tool.c:1475
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Presi XML"
-#: ../gio/gdbus-tool.c:1476
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Introspekti idoj"
-#: ../gio/gdbus-tool.c:1477
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Nur presi agordojn"
-#: ../gio/gdbus-tool.c:1568
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Introspekti foran objekton."
-#: ../gio/gdbus-tool.c:1773
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Nomo de celo de kontrolota"
-#: ../gio/gdbus-tool.c:1774
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Vojo de kontrolota objekto"
-#: ../gio/gdbus-tool.c:1803
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Kontroli foran objekton."
-#: ../gio/gdbus-tool.c:1980
+#: gio/gdbus-tool.c:2078
+msgid "Error: can’t monitor a non-message-bus connection\n"
+msgstr ""
+
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr ""
-#: ../gio/gdbus-tool.c:1983
-msgid ""
-"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
-"(default)"
+#: gio/gdbus-tool.c:2205
+msgid "Timeout to wait for before exiting with an error (seconds); 0 for no timeout (default)"
msgstr ""
-#: ../gio/gdbus-tool.c:2031
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr ""
-#: ../gio/gdbus-tool.c:2033
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr ""
-#: ../gio/gdbus-tool.c:2109
-#, fuzzy, c-format
+#: gio/gdbus-tool.c:2330
+#, fuzzy
#| msgid "Error: object path not specified.\n"
msgid "Error: A service to activate for must be specified.\n"
msgstr "Eraro: objektovojo ne specifita.\n"
-#: ../gio/gdbus-tool.c:2114
-#, fuzzy, c-format
+#: gio/gdbus-tool.c:2335
+#, fuzzy
#| msgid "Error: object path not specified.\n"
msgid "Error: A service to wait for must be specified.\n"
msgstr "Eraro: objektovojo ne specifita.\n"
-#: ../gio/gdbus-tool.c:2119
-#, c-format
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr ""
-#: ../gio/gdbus-tool.c:2127 ../gio/gdbus-tool.c:2134
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
-#| msgid "Error: %s is not a valid unique bus name.\n"
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Eraro: %s ne estas valida konata buso-nomo.\n"
-#: ../gio/gdesktopappinfo.c:1997 ../gio/gdesktopappinfo.c:4504
+#: gio/gdebugcontrollerdbus.c:361
+#, c-format
+msgid "Not authorized to change debug settings"
+msgstr ""
+
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Sennoma"
-#: ../gio/gdesktopappinfo.c:2407
+#: gio/gdesktopappinfo.c:2652
#, fuzzy
#| msgid "Desktop file didn't specify Exec field"
msgid "Desktop file didn’t specify Exec field"
msgstr "Labortabla dosiero ne specifis Exec-kampon"
-#: ../gio/gdesktopappinfo.c:2692
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Ne eblas trovi terminalon bezonata por aplikaĵo"
-#: ../gio/gdesktopappinfo.c:3100
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr ""
+
+#: gio/gdesktopappinfo.c:3738
#, fuzzy, c-format
#| msgid "Can't create user application configuration folder %s: %s"
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Ne eblas krei uzanto-aplikaĵan agordodosierujon %s: %s"
-#: ../gio/gdesktopappinfo.c:3104
+#: gio/gdesktopappinfo.c:3742
#, fuzzy, c-format
#| msgid "Can't create user MIME configuration folder %s: %s"
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Ne eblas krei por uzanto MIME-an agordodosierujon %s: %s"
-#: ../gio/gdesktopappinfo.c:3344 ../gio/gdesktopappinfo.c:3368
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Mankas identigilo en la aplikaĵaj informoj"
-#: ../gio/gdesktopappinfo.c:3602
+#: gio/gdesktopappinfo.c:4244
#, fuzzy, c-format
#| msgid "Can't create user desktop file %s"
msgid "Can’t create user desktop file %s"
msgstr "Ne eblas krei por uzanto labortablan dosieron %s"
-#: ../gio/gdesktopappinfo.c:3736
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Propra difino por %s"
-#: ../gio/gdrive.c:417
+#: gio/gdrive.c:419
#, fuzzy
#| msgid "drive doesn't implement eject"
msgid "drive doesn’t implement eject"
@@ -1420,303 +1363,313 @@ msgstr "diskingo ne realigas elĵeton"
#. Translators: This is an error
#. * message for drive objects that
#. * don't implement any of eject or eject_with_operation.
-#: ../gio/gdrive.c:495
+#: gio/gdrive.c:497
#, fuzzy
#| msgid "drive doesn't implement eject or eject_with_operation"
msgid "drive doesn’t implement eject or eject_with_operation"
msgstr "diskingo ne realigas 'eject' aŭ eject_with_operation"
-#: ../gio/gdrive.c:571
+#: gio/gdrive.c:573
#, fuzzy
#| msgid "drive doesn't implement polling for media"
msgid "drive doesn’t implement polling for media"
msgstr "diskingo ne realigas demandadon pri datumportiloj"
-#: ../gio/gdrive.c:776
+#: gio/gdrive.c:780
#, fuzzy
#| msgid "drive doesn't implement start"
msgid "drive doesn’t implement start"
msgstr "diskingo ne realigas start (starton)"
-#: ../gio/gdrive.c:878
+#: gio/gdrive.c:882
#, fuzzy
#| msgid "drive doesn't implement stop"
msgid "drive doesn’t implement stop"
msgstr "diskingo ne realigas stop (halton)"
-#: ../gio/gdummytlsbackend.c:195 ../gio/gdummytlsbackend.c:317
-#: ../gio/gdummytlsbackend.c:509
+#: gio/gdtlsconnection.c:1188 gio/gtlsconnection.c:957
+msgid "TLS backend does not implement TLS binding retrieval"
+msgstr ""
+
+#: gio/gdummytlsbackend.c:197 gio/gdummytlsbackend.c:323
+#: gio/gdummytlsbackend.c:515
msgid "TLS support is not available"
msgstr "TLS subteno ne estas havebla"
-#: ../gio/gdummytlsbackend.c:419
+#: gio/gdummytlsbackend.c:425
#, fuzzy
#| msgid "TLS support is not available"
msgid "DTLS support is not available"
msgstr "TLS subteno ne estas havebla"
-#: ../gio/gemblem.c:323
+#: gio/gemblem.c:325
#, fuzzy, c-format
#| msgid "Can't handle version %d of GEmblem encoding"
msgid "Can’t handle version %d of GEmblem encoding"
msgstr "Ne eblas trakti version %d de GEmblem kodoprezento"
-#: ../gio/gemblem.c:333
+#: gio/gemblem.c:335
#, c-format
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr "Misformita nombro da ĵetonoj (%d) en GEmblem kodoprezento"
-#: ../gio/gemblemedicon.c:362
+#: gio/gemblemedicon.c:364
#, fuzzy, c-format
#| msgid "Can't handle version %d of GEmblemedIcon encoding"
msgid "Can’t handle version %d of GEmblemedIcon encoding"
msgstr "Ne eblas trakti version %d de GEmblemedIcon kodoprezento"
-#: ../gio/gemblemedicon.c:372
+#: gio/gemblemedicon.c:374
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr "Misformita nombro da ĵetonoj (%d) en GEmblemedIcon kodoprezento"
-#: ../gio/gemblemedicon.c:395
+#: gio/gemblemedicon.c:397
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "Atendis GEmblem por GEmblemedIcon"
-#: ../gio/gfile.c:969 ../gio/gfile.c:1207 ../gio/gfile.c:1345
-#: ../gio/gfile.c:1583 ../gio/gfile.c:1638 ../gio/gfile.c:1696
-#: ../gio/gfile.c:1780 ../gio/gfile.c:1837 ../gio/gfile.c:1901
-#: ../gio/gfile.c:1956 ../gio/gfile.c:3609 ../gio/gfile.c:3664
-#: ../gio/gfile.c:3900 ../gio/gfile.c:3942 ../gio/gfile.c:4410
-#: ../gio/gfile.c:4821 ../gio/gfile.c:4906 ../gio/gfile.c:4996
-#: ../gio/gfile.c:5093 ../gio/gfile.c:5180 ../gio/gfile.c:5281
-#: ../gio/gfile.c:7822 ../gio/gfile.c:7912 ../gio/gfile.c:7996
-#: ../gio/win32/gwinhttpfile.c:437
-msgid "Operation not supported"
-msgstr "Operacio ne estas subtenata"
-
#. Translators: This is an error message when
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: ../gio/gfile.c:1468
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Enhavantan munton ne ekzistas"
-#: ../gio/gfile.c:2515 ../gio/glocalfile.c:2375
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
#, fuzzy
#| msgid "Can't copy over directory"
msgid "Can’t copy over directory"
msgstr "Ne eblas kopii super dosierujo"
-#: ../gio/gfile.c:2575
+#: gio/gfile.c:2708
#, fuzzy
#| msgid "Can't copy directory over directory"
msgid "Can’t copy directory over directory"
msgstr "Ne eblas kopii dosierujon super dosierujo"
-#: ../gio/gfile.c:2583
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Celdosiero jam ekzistas"
-#: ../gio/gfile.c:2602
+#: gio/gfile.c:2735
#, fuzzy
#| msgid "Can't recursively copy directory"
msgid "Can’t recursively copy directory"
msgstr "Ne eblas rikure kopii dosierujon"
-#: ../gio/gfile.c:2889
-msgid "Splice not supported"
-msgstr "Splisi ne subtenata"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, fuzzy, c-format
+#| msgid "Operation not supported"
+msgid "Copy file range not supported"
+msgstr "Operacio ne estas subtenata"
-#: ../gio/gfile.c:2893
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Eraro dum splisado de la dosiero: %s"
-#: ../gio/gfile.c:3024
-#| msgid "Move between mounts not supported"
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Splisi ne subtenata"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Kopii (reflink/clone) inter muntoj ne estas subtenata"
-#: ../gio/gfile.c:3028
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr ""
-#: ../gio/gfile.c:3033
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr ""
-#: ../gio/gfile.c:3096
+#: gio/gfile.c:3395
#, fuzzy
#| msgid "Can't copy special file"
msgid "Can’t copy special file"
msgstr "Ne eblas kopii specialan dosieron"
-#: ../gio/gfile.c:3890
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Invalida simligila valoro donita"
-#: ../gio/gfile.c:4051
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
+msgid "Symbolic links not supported"
+msgstr "Simbolaj ligiloj ne estas subtenataj"
+
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Rubujo ne estas subtenata"
-#: ../gio/gfile.c:4163
+#: gio/gfile.c:4723
#, c-format
-#| msgid "File names cannot contain '%c'"
msgid "File names cannot contain “%c”"
msgstr "Dosiernomoj ne povas enhavi “%c”"
-#: ../gio/gfile.c:6609 ../gio/gvolume.c:363
+#: gio/gfile.c:7155 gio/gfile.c:7281
+#, fuzzy, c-format
+#| msgid "Failed to change to directory '%s' (%s)"
+msgid "Failed to create a temporary directory for template “%s”: %s"
+msgstr "Malsukcesis ŝanĝi al dosierujo “%s” (%s)"
+
+#: gio/gfile.c:7599 gio/gvolume.c:366
#, fuzzy
#| msgid "volume doesn't implement mount"
msgid "volume doesn’t implement mount"
msgstr "datumportilo ne realigas 'mount'"
-#: ../gio/gfile.c:6718
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Neniu aplikaĵo estas registrita kiel traktilo por ĉi tiu dosiero"
-#: ../gio/gfileenumerator.c:212
+#: gio/gfileenumerator.c:214
msgid "Enumerator is closed"
msgstr "Enumeraciilo estas fermita"
-#: ../gio/gfileenumerator.c:219 ../gio/gfileenumerator.c:278
-#: ../gio/gfileenumerator.c:377 ../gio/gfileenumerator.c:476
+#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Dosierenumeraciilo havas restantan operacion"
-#: ../gio/gfileenumerator.c:368 ../gio/gfileenumerator.c:467
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Dosierenumeraciilo jam estas fermita"
-#: ../gio/gfileicon.c:236
+#: gio/gfileicon.c:252
#, fuzzy, c-format
#| msgid "Can't handle version %d of GFileIcon encoding"
msgid "Can’t handle version %d of GFileIcon encoding"
msgstr "Ne eblas trakti version %d de GFileIcon-kodoprezento"
-#: ../gio/gfileicon.c:246
+#: gio/gfileicon.c:262
msgid "Malformed input data for GFileIcon"
msgstr "Esti misformita eniga datumaro por GFileIcon"
-#: ../gio/gfileinputstream.c:149 ../gio/gfileinputstream.c:394
-#: ../gio/gfileiostream.c:167 ../gio/gfileoutputstream.c:164
-#: ../gio/gfileoutputstream.c:497
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
+#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
+#: gio/gfileoutputstream.c:499
#, fuzzy
#| msgid "Stream doesn't support query_info"
msgid "Stream doesn’t support query_info"
msgstr "Fluo ne subtenas query_info-on"
-#: ../gio/gfileinputstream.c:325 ../gio/gfileiostream.c:379
-#: ../gio/gfileoutputstream.c:371
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
+#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Serĉo ne estas subtenata en fluo"
-#: ../gio/gfileinputstream.c:369
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Trunki ne permesita en eniga fluo"
-#: ../gio/gfileiostream.c:455 ../gio/gfileoutputstream.c:447
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Trunki ne permesita en fluo"
-#: ../gio/ghttpproxy.c:91 ../gio/gresolver.c:410 ../gio/gresolver.c:476
-#: ../glib/gconvert.c:1650
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Nevalida gastiga komputilonomo"
-#: ../gio/ghttpproxy.c:143
+#: gio/ghttpproxy.c:145
msgid "Bad HTTP proxy reply"
msgstr ""
-#: ../gio/ghttpproxy.c:159
+#: gio/ghttpproxy.c:161
#, fuzzy
#| msgid "The connection is closed"
msgid "HTTP proxy connection not allowed"
msgstr "La konekto estas fermita"
-#: ../gio/ghttpproxy.c:164
+#: gio/ghttpproxy.c:166
msgid "HTTP proxy authentication failed"
msgstr ""
-#: ../gio/ghttpproxy.c:167
+#: gio/ghttpproxy.c:169
msgid "HTTP proxy authentication required"
msgstr ""
-#: ../gio/ghttpproxy.c:171
+#: gio/ghttpproxy.c:173
#, c-format
-#| msgid "The connection is closed"
msgid "HTTP proxy connection failed: %i"
msgstr "HTTP-prokurila konekto malsukcesis: %i"
-#: ../gio/ghttpproxy.c:269
+#: gio/ghttpproxy.c:268
+#, fuzzy
+#| msgid "HTTP proxy connection failed: %i"
+msgid "HTTP proxy response too big"
+msgstr "HTTP-prokurila konekto malsukcesis: %i"
+
+#: gio/ghttpproxy.c:285
msgid "HTTP proxy server closed connection unexpectedly."
msgstr ""
-#: ../gio/gicon.c:290
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Malĝusta nombro de ĵetonoj (%d)"
-#: ../gio/gicon.c:310
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Neniu tipo por klasnomo %s"
-#: ../gio/gicon.c:320
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Tipo %s ne realigas la GIcon interfaco"
-#: ../gio/gicon.c:331
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Tipo %s ne estas klasata"
-#: ../gio/gicon.c:345
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Misformita versionumero: %s"
-#: ../gio/gicon.c:359
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Tipo %s ne realigas from_tokens() sur la GIcon Interfaco"
-#: ../gio/gicon.c:461
+#: gio/gicon.c:470
#, fuzzy
#| msgid "Can't handle the supplied version the icon encoding"
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Ne eblas trakti la provizitan version de bildsimbolo kodoprezento"
-#: ../gio/ginetaddressmask.c:182
+#: gio/ginetaddressmask.c:184
msgid "No address specified"
msgstr "Neniu adreso specifita"
-#: ../gio/ginetaddressmask.c:190
+#: gio/ginetaddressmask.c:192
#, c-format
msgid "Length %u is too long for address"
msgstr "Longeco %u estas tro longa por adreso"
-#: ../gio/ginetaddressmask.c:223
+#: gio/ginetaddressmask.c:225
msgid "Address has bits set beyond prefix length"
msgstr ""
-#: ../gio/ginetaddressmask.c:300
+#: gio/ginetaddressmask.c:302
#, c-format
-#| msgid "Could not parse '%s' as IP address mask"
msgid "Could not parse “%s” as IP address mask"
msgstr "Ne eblas analizi na “%s” kiel IP-adresa masko"
-#: ../gio/ginetsocketaddress.c:203 ../gio/ginetsocketaddress.c:220
-#: ../gio/gnativesocketaddress.c:106 ../gio/gunixsocketaddress.c:218
+#: gio/ginetsocketaddress.c:205 gio/ginetsocketaddress.c:222
+#: gio/gnativesocketaddress.c:111 gio/gunixsocketaddress.c:230
msgid "Not enough space for socket address"
msgstr "Ne sufiĉa spaco por kontaktskatolo adreso"
-#: ../gio/ginetsocketaddress.c:235
+#: gio/ginetsocketaddress.c:237
msgid "Unsupported socket address"
msgstr "Nesubtenata kontaktskatolo adreso"
-#: ../gio/ginputstream.c:188
+#: gio/ginputstream.c:190
#, fuzzy
#| msgid "Input stream doesn't implement read"
msgid "Input stream doesn’t implement read"
@@ -1728,292 +1681,293 @@ msgstr "Eniga fluo ne realigas legon"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: ../gio/ginputstream.c:1218 ../gio/giostream.c:310
-#: ../gio/goutputstream.c:1670
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Fluo havas restantan operacion"
-#: ../gio/gio-tool.c:160
+#: gio/gio-tool.c:162
msgid "Copy with file"
msgstr ""
-#: ../gio/gio-tool.c:164
+#: gio/gio-tool.c:166
msgid "Keep with file when moved"
msgstr ""
-#: ../gio/gio-tool.c:205
+#: gio/gio-tool.c:207
msgid "“version” takes no arguments"
-msgstr ""
+msgstr "“version” anticipas neniun argumenton"
-#: ../gio/gio-tool.c:207 ../gio/gio-tool.c:223 ../glib/goption.c:857
+#: gio/gio-tool.c:209 gio/gio-tool.c:225 glib/goption.c:871
msgid "Usage:"
msgstr "Uzo:"
-#: ../gio/gio-tool.c:210
+#: gio/gio-tool.c:212
msgid "Print version information and exit."
-msgstr ""
-
-#: ../gio/gio-tool.c:224
-msgid "[ARGS...]"
-msgstr ""
+msgstr "Presi versian informon kaj ĉesi."
-#: ../gio/gio-tool.c:226
+#: gio/gio-tool.c:228
msgid "Commands:"
-msgstr ""
+msgstr "Komandoj:"
-#: ../gio/gio-tool.c:229
+#: gio/gio-tool.c:231
msgid "Concatenate files to standard output"
msgstr ""
-#: ../gio/gio-tool.c:230
+#: gio/gio-tool.c:232
msgid "Copy one or more files"
msgstr ""
-#: ../gio/gio-tool.c:231
+#: gio/gio-tool.c:233
msgid "Show information about locations"
msgstr ""
-#: ../gio/gio-tool.c:232
+#: gio/gio-tool.c:234
+#, fuzzy
+#| msgid "Can't find application"
+msgid "Launch an application from a desktop file"
+msgstr "Ne eblas trovi aplikaĵon"
+
+#: gio/gio-tool.c:235
msgid "List the contents of locations"
msgstr ""
-#: ../gio/gio-tool.c:233
+#: gio/gio-tool.c:236
msgid "Get or set the handler for a mimetype"
msgstr ""
-#: ../gio/gio-tool.c:234
+#: gio/gio-tool.c:237
#, fuzzy
#| msgid "Can't open directory"
msgid "Create directories"
msgstr "Ne eblas malfermi dosierujon"
-#: ../gio/gio-tool.c:235
+#: gio/gio-tool.c:238
msgid "Monitor files and directories for changes"
msgstr ""
-#: ../gio/gio-tool.c:236
+#: gio/gio-tool.c:239
msgid "Mount or unmount the locations"
msgstr ""
-#: ../gio/gio-tool.c:237
+#: gio/gio-tool.c:240
msgid "Move one or more files"
msgstr ""
-#: ../gio/gio-tool.c:238
+#: gio/gio-tool.c:241
msgid "Open files with the default application"
msgstr ""
-#: ../gio/gio-tool.c:239
+#: gio/gio-tool.c:242
msgid "Rename a file"
msgstr ""
-#: ../gio/gio-tool.c:240
+#: gio/gio-tool.c:243
msgid "Delete one or more files"
msgstr ""
-#: ../gio/gio-tool.c:241
+#: gio/gio-tool.c:244
msgid "Read from standard input and save"
msgstr ""
-#: ../gio/gio-tool.c:242
+#: gio/gio-tool.c:245
msgid "Set a file attribute"
msgstr ""
-#: ../gio/gio-tool.c:243
+#: gio/gio-tool.c:246
msgid "Move files or directories to the trash"
msgstr ""
-#: ../gio/gio-tool.c:244
+#: gio/gio-tool.c:247
msgid "Lists the contents of locations in a tree"
msgstr ""
-#: ../gio/gio-tool.c:246
+#: gio/gio-tool.c:249
#, c-format
msgid "Use %s to get detailed help.\n"
msgstr ""
-#: ../gio/gio-tool-cat.c:80
-#| msgid "Error writing to file: %s"
+#: gio/gio-tool-cat.c:89
msgid "Error writing to stdout"
msgstr "Eraro dum skribado al stdout"
#. Translators: commandline placeholder
-#: ../gio/gio-tool-cat.c:124 ../gio/gio-tool-info.c:282
-#: ../gio/gio-tool-list.c:165 ../gio/gio-tool-mkdir.c:48
-#: ../gio/gio-tool-monitor.c:37 ../gio/gio-tool-monitor.c:39
-#: ../gio/gio-tool-monitor.c:41 ../gio/gio-tool-monitor.c:43
-#: ../gio/gio-tool-monitor.c:203 ../gio/gio-tool-mount.c:1141
-#: ../gio/gio-tool-open.c:45 ../gio/gio-tool-remove.c:48
-#: ../gio/gio-tool-rename.c:45 ../gio/gio-tool-set.c:89
-#: ../gio/gio-tool-trash.c:81 ../gio/gio-tool-tree.c:239
-#, fuzzy
-#| msgid "SECTION"
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
+#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
+#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
-msgstr "SEKCIO"
+msgstr "LOKO"
-#: ../gio/gio-tool-cat.c:129
+#: gio/gio-tool-cat.c:140
msgid "Concatenate files and print to standard output."
msgstr ""
-#: ../gio/gio-tool-cat.c:131
+#: gio/gio-tool-cat.c:142
msgid ""
"gio cat works just like the traditional cat utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location."
msgstr ""
-#: ../gio/gio-tool-cat.c:153 ../gio/gio-tool-info.c:313
-#: ../gio/gio-tool-mkdir.c:76 ../gio/gio-tool-monitor.c:228
-#: ../gio/gio-tool-open.c:71 ../gio/gio-tool-remove.c:72
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
+#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
-msgstr ""
+msgstr "Neniuj lokoj donitaj"
-#: ../gio/gio-tool-copy.c:42 ../gio/gio-tool-move.c:38
+#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
#, fuzzy
#| msgid "Target file is a directory"
msgid "No target directory"
msgstr "Celdosiero estas dosierujo"
-#: ../gio/gio-tool-copy.c:43 ../gio/gio-tool-move.c:39
+#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41
msgid "Show progress"
-msgstr ""
+msgstr "Montri progreson"
-#: ../gio/gio-tool-copy.c:44 ../gio/gio-tool-move.c:40
+#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:42
msgid "Prompt before overwrite"
-msgstr ""
+msgstr "Demandi antaŭ anstataŭi"
-#: ../gio/gio-tool-copy.c:45
+#: gio/gio-tool-copy.c:48
msgid "Preserve all attributes"
-msgstr ""
+msgstr "Konservi ĉiujn atributojn"
-#: ../gio/gio-tool-copy.c:46 ../gio/gio-tool-move.c:41
-#: ../gio/gio-tool-save.c:49
+#: gio/gio-tool-copy.c:49 gio/gio-tool-move.c:43 gio/gio-tool-save.c:51
#, fuzzy
#| msgid "Backup file creation failed"
msgid "Backup existing destination files"
msgstr "Sekurkopia kreado malsukcesis"
-#: ../gio/gio-tool-copy.c:47
+#: gio/gio-tool-copy.c:50
msgid "Never follow symbolic links"
msgstr ""
-#: ../gio/gio-tool-copy.c:72 ../gio/gio-tool-move.c:67
+#: gio/gio-tool-copy.c:51
+msgid "Use default permissions for the destination"
+msgstr ""
+
+#: gio/gio-tool-copy.c:76 gio/gio-tool-move.c:69
#, c-format
msgid "Transferred %s out of %s (%s/s)"
msgstr ""
#. Translators: commandline placeholder
-#: ../gio/gio-tool-copy.c:98 ../gio/gio-tool-move.c:94
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96
msgid "SOURCE"
-msgstr ""
+msgstr "FONTO"
#. Translators: commandline placeholder
-#: ../gio/gio-tool-copy.c:98 ../gio/gio-tool-move.c:94
-#: ../gio/gio-tool-save.c:165
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96 gio/gio-tool-save.c:162
msgid "DESTINATION"
-msgstr ""
+msgstr "CELO"
-#: ../gio/gio-tool-copy.c:103
+#: gio/gio-tool-copy.c:107
msgid "Copy one or more files from SOURCE to DESTINATION."
msgstr ""
-#: ../gio/gio-tool-copy.c:105
+#: gio/gio-tool-copy.c:109
msgid ""
"gio copy is similar to the traditional cp utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location."
msgstr ""
-#: ../gio/gio-tool-copy.c:147
+#: gio/gio-tool-copy.c:151
#, fuzzy, c-format
#| msgid "The resource at '%s' is not a directory"
msgid "Destination %s is not a directory"
-msgstr "La risurco ĉe '%s' ne estas dosierujo"
+msgstr "La risurco ĉe “%s” ne estas dosierujo"
-#: ../gio/gio-tool-copy.c:192 ../gio/gio-tool-move.c:185
+#: gio/gio-tool-copy.c:198 gio/gio-tool-move.c:188
#, c-format
msgid "%s: overwrite “%s”? "
msgstr ""
-#: ../gio/gio-tool-info.c:34
+#: gio/gio-tool-info.c:39
msgid "List writable attributes"
msgstr ""
-#: ../gio/gio-tool-info.c:35
-#| msgid "Error getting filesystem info: %s"
+#: gio/gio-tool-info.c:40
msgid "Get file system info"
msgstr "Akiro de dosiersistema informo"
-#: ../gio/gio-tool-info.c:36 ../gio/gio-tool-list.c:35
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
msgid "The attributes to get"
msgstr ""
-#: ../gio/gio-tool-info.c:36 ../gio/gio-tool-list.c:35
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
msgid "ATTRIBUTES"
-msgstr ""
+msgstr "ATRIBUTOJ"
-#: ../gio/gio-tool-info.c:37 ../gio/gio-tool-list.c:38 ../gio/gio-tool-set.c:34
+#: gio/gio-tool-info.c:42 gio/gio-tool-list.c:40 gio/gio-tool-set.c:37
msgid "Don’t follow symbolic links"
-msgstr ""
+msgstr "Ne sekvi simbolajn ligilojn"
-#: ../gio/gio-tool-info.c:75
-#, c-format
+#: gio/gio-tool-info.c:105
msgid "attributes:\n"
msgstr ""
#. Translators: This is a noun and represents and attribute of a file
-#: ../gio/gio-tool-info.c:127
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
-msgstr ""
+msgstr "montra nomo: %s\n"
#. Translators: This is a noun and represents and attribute of a file
-#: ../gio/gio-tool-info.c:132
+#: gio/gio-tool-info.c:176
#, c-format
msgid "edit name: %s\n"
msgstr ""
-#: ../gio/gio-tool-info.c:138
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
-msgstr ""
+msgstr "nomo: %s\n"
-#: ../gio/gio-tool-info.c:145
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
-msgstr ""
+msgstr "tipo: %s\n"
-#: ../gio/gio-tool-info.c:151
-#, c-format
+#: gio/gio-tool-info.c:197
msgid "size: "
-msgstr ""
+msgstr "grando: "
-#: ../gio/gio-tool-info.c:156
-#, c-format
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
-msgstr ""
+msgstr "kaŝita\n"
-#: ../gio/gio-tool-info.c:159
+#: gio/gio-tool-info.c:206
#, c-format
-#| msgid "Error: %s\n"
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: ../gio/gio-tool-info.c:228
+#: gio/gio-tool-info.c:213
#, c-format
-msgid "Settable attributes:\n"
+msgid "local path: %s\n"
msgstr ""
-#: ../gio/gio-tool-info.c:252
+#: gio/gio-tool-info.c:247
#, c-format
+msgid "unix mount: %s%s %s %s %s\n"
+msgstr ""
+
+#: gio/gio-tool-info.c:328
+msgid "Settable attributes:\n"
+msgstr ""
+
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr ""
-#: ../gio/gio-tool-info.c:287
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr ""
-#: ../gio/gio-tool-info.c:289
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2022,23 +1976,64 @@ msgid ""
"namespace, e.g. unix, or by “*”, which matches all attributes"
msgstr ""
-#: ../gio/gio-tool-list.c:36 ../gio/gio-tool-tree.c:32
+#. Translators: commandline placeholder
+#: gio/gio-tool-launch.c:56
+msgid "DESKTOP-FILE [FILE-ARG …]"
+msgstr ""
+
+#: gio/gio-tool-launch.c:59
+msgid "Launch an application from a desktop file, passing optional filename arguments to it."
+msgstr ""
+
+#: gio/gio-tool-launch.c:79
+msgid "No desktop file given"
+msgstr ""
+
+#: gio/gio-tool-launch.c:87
+#, fuzzy
+#| msgid "There is no GCredentials support for your platform"
+msgid "The launch command is not currently supported on this platform"
+msgstr "Estas neniu subteno por GCredentials por via platformo"
+
+#: gio/gio-tool-launch.c:100
+#, fuzzy, c-format
+#| msgid "Unable to trash file %s: %s"
+msgid "Unable to load ‘%s‘: %s"
+msgstr "Ne eblas forigi dosieron %s: %s"
+
+#: gio/gio-tool-launch.c:109
+#, fuzzy, c-format
+#| msgid "Failed to read from file '%s': %s"
+msgid "Unable to load application information for ‘%s‘"
+msgstr "Malsukcesis ŝargi el dosiero “%s”"
+
+#: gio/gio-tool-launch.c:121
+#, fuzzy, c-format
+#| msgid "Error launching application: %s"
+msgid "Unable to launch application ‘%s’: %s"
+msgstr "Eraro dum lanĉo de la aplikaĵo: %s"
+
+#: gio/gio-tool-list.c:38 gio/gio-tool-tree.c:34
msgid "Show hidden files"
msgstr ""
-#: ../gio/gio-tool-list.c:37
+#: gio/gio-tool-list.c:39
msgid "Use a long listing format"
msgstr ""
-#: ../gio/gio-tool-list.c:39
+#: gio/gio-tool-list.c:41
+msgid "Print display names"
+msgstr ""
+
+#: gio/gio-tool-list.c:42
msgid "Print full URIs"
msgstr ""
-#: ../gio/gio-tool-list.c:170
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr ""
-#: ../gio/gio-tool-list.c:172
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2047,465 +2042,528 @@ msgid ""
msgstr ""
#. Translators: commandline placeholder
-#: ../gio/gio-tool-mime.c:71
+#: gio/gio-tool-mime.c:73
msgid "MIMETYPE"
msgstr ""
-#: ../gio/gio-tool-mime.c:71
+#: gio/gio-tool-mime.c:73
msgid "HANDLER"
msgstr ""
-#: ../gio/gio-tool-mime.c:76
+#: gio/gio-tool-mime.c:78
msgid "Get or set the handler for a mimetype."
msgstr ""
-#: ../gio/gio-tool-mime.c:78
+#: gio/gio-tool-mime.c:80
msgid ""
"If no handler is given, lists registered and recommended applications\n"
"for the mimetype. If a handler is given, it is set as the default\n"
"handler for the mimetype."
msgstr ""
-#: ../gio/gio-tool-mime.c:100
+#: gio/gio-tool-mime.c:102
msgid "Must specify a single mimetype, and maybe a handler"
msgstr ""
-#: ../gio/gio-tool-mime.c:116
+#: gio/gio-tool-mime.c:118
#, c-format
msgid "No default applications for “%s”\n"
msgstr ""
-#: ../gio/gio-tool-mime.c:122
+#: gio/gio-tool-mime.c:124
#, c-format
msgid "Default application for “%s”: %s\n"
msgstr ""
-#: ../gio/gio-tool-mime.c:127
-#, c-format
+#: gio/gio-tool-mime.c:129
msgid "Registered applications:\n"
msgstr ""
-#: ../gio/gio-tool-mime.c:129
-#, c-format
-#| msgid "Can't find application"
+#: gio/gio-tool-mime.c:131
msgid "No registered applications\n"
msgstr "Neniu registrita aplikaĵo\n"
-#: ../gio/gio-tool-mime.c:140
-#, c-format
+#: gio/gio-tool-mime.c:142
msgid "Recommended applications:\n"
msgstr ""
-#: ../gio/gio-tool-mime.c:142
-#, c-format
-#| msgid "Can't find application"
+#: gio/gio-tool-mime.c:144
msgid "No recommended applications\n"
msgstr "Neniu rekomendita aplikaĵo\n"
-#: ../gio/gio-tool-mime.c:162
+#: gio/gio-tool-mime.c:164
#, fuzzy, c-format
#| msgid "Failed to read from file '%s': %s"
msgid "Failed to load info for handler “%s”"
msgstr "Malsukcesis ŝargi el dosiero “%s”"
-#: ../gio/gio-tool-mime.c:168
+#: gio/gio-tool-mime.c:170
#, c-format
msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
msgstr ""
-#: ../gio/gio-tool-mkdir.c:31
+#: gio/gio-tool-mkdir.c:33
#, fuzzy
#| msgid "Can't open directory"
msgid "Create parent directories"
msgstr "Ne eblas malfermi dosierujon"
-#: ../gio/gio-tool-mkdir.c:52
-#| msgid "Can't open directory"
+#: gio/gio-tool-mkdir.c:54
msgid "Create directories."
msgstr "Krei doserujojn."
-#: ../gio/gio-tool-mkdir.c:54
+#: gio/gio-tool-mkdir.c:56
msgid ""
"gio mkdir is similar to the traditional mkdir utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/mydir as location."
msgstr ""
-#: ../gio/gio-tool-monitor.c:37
+#: gio/gio-tool-monitor.c:39
msgid "Monitor a directory (default: depends on type)"
msgstr ""
-#: ../gio/gio-tool-monitor.c:39
+#: gio/gio-tool-monitor.c:41
msgid "Monitor a file (default: depends on type)"
msgstr ""
-#: ../gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43
msgid "Monitor a file directly (notices changes made via hardlinks)"
msgstr ""
-#: ../gio/gio-tool-monitor.c:43
+#: gio/gio-tool-monitor.c:45
msgid "Monitors a file directly, but doesn’t report changes"
msgstr ""
-#: ../gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:47
msgid "Report moves and renames as simple deleted/created events"
msgstr ""
-#: ../gio/gio-tool-monitor.c:47
+#: gio/gio-tool-monitor.c:49
msgid "Watch for mount events"
msgstr ""
-#: ../gio/gio-tool-monitor.c:208
+#: gio/gio-tool-monitor.c:211
msgid "Monitor files or directories for changes."
msgstr ""
-#: ../gio/gio-tool-mount.c:58
+#: gio/gio-tool-mount.c:65
msgid "Mount as mountable"
msgstr ""
-#: ../gio/gio-tool-mount.c:59
-msgid "Mount volume with device file"
+#: gio/gio-tool-mount.c:66
+msgid "Mount volume with device file, or other identifier"
msgstr ""
-#: ../gio/gio-tool-mount.c:59
-msgid "DEVICE"
-msgstr ""
+#: gio/gio-tool-mount.c:66
+msgid "ID"
+msgstr "ID"
-#: ../gio/gio-tool-mount.c:60
+#: gio/gio-tool-mount.c:67
msgid "Unmount"
-msgstr ""
+msgstr "Demeti"
-#: ../gio/gio-tool-mount.c:61
+#: gio/gio-tool-mount.c:68
msgid "Eject"
+msgstr "Elĵeti"
+
+#: gio/gio-tool-mount.c:69
+msgid "Stop drive with device file"
msgstr ""
-#: ../gio/gio-tool-mount.c:62
+#: gio/gio-tool-mount.c:69
+msgid "DEVICE"
+msgstr "APARATO"
+
+#: gio/gio-tool-mount.c:70
msgid "Unmount all mounts with the given scheme"
msgstr ""
-#: ../gio/gio-tool-mount.c:62
+#: gio/gio-tool-mount.c:70
msgid "SCHEME"
msgstr ""
-#: ../gio/gio-tool-mount.c:63
+#: gio/gio-tool-mount.c:71
msgid "Ignore outstanding file operations when unmounting or ejecting"
msgstr ""
-#: ../gio/gio-tool-mount.c:64
+#: gio/gio-tool-mount.c:72
msgid "Use an anonymous user when authenticating"
msgstr ""
#. Translator: List here is a verb as in 'List all mounts'
-#: ../gio/gio-tool-mount.c:66
+#: gio/gio-tool-mount.c:74
msgid "List"
-msgstr ""
+msgstr "Listo"
-#: ../gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:75
msgid "Monitor events"
msgstr ""
-#: ../gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:76
#, fuzzy
#| msgid "Show help options"
msgid "Show extra information"
msgstr "Montri helpajn opciojn"
-#: ../gio/gio-tool-mount.c:246 ../gio/gio-tool-mount.c:276
+#: gio/gio-tool-mount.c:77
+msgid "The numeric PIM when unlocking a VeraCrypt volume"
+msgstr ""
+
+#: gio/gio-tool-mount.c:77
+#, fuzzy
+#| msgctxt "GDateTime"
+#| msgid "PM"
+msgid "PIM"
+msgstr "PTM"
+
+#: gio/gio-tool-mount.c:78
+msgid "Mount a TCRYPT hidden volume"
+msgstr ""
+
+#: gio/gio-tool-mount.c:79
+msgid "Mount a TCRYPT system volume"
+msgstr ""
+
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr ""
-#: ../gio/gio-tool-mount.c:897
-#, c-format
-msgid "Mounted %s at %s\n"
+#: gio/gio-tool-mount.c:559
+msgid "No drive for device file"
msgstr ""
-#: ../gio/gio-tool-mount.c:950
-msgid "No volume for device file"
+#: gio/gio-tool-mount.c:1051
+msgid "No volume for given ID"
msgstr ""
-#: ../gio/gio-tool-mount.c:1145
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr ""
-#: ../gio/gio-tool-move.c:42
+#: gio/gio-tool-move.c:44
msgid "Don’t use copy and delete fallback"
msgstr ""
-#: ../gio/gio-tool-move.c:99
+#: gio/gio-tool-move.c:101
msgid "Move one or more files from SOURCE to DEST."
msgstr ""
-#: ../gio/gio-tool-move.c:101
+#: gio/gio-tool-move.c:103
msgid ""
"gio move is similar to the traditional mv utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location"
msgstr ""
-#: ../gio/gio-tool-move.c:142
+#: gio/gio-tool-move.c:145
#, c-format
-#| msgid "Target file is a directory"
msgid "Target %s is not a directory"
msgstr "Celo %s ne estas dosierujo"
-#: ../gio/gio-tool-open.c:50
+#: gio/gio-tool-open.c:77
msgid ""
"Open files with the default application that\n"
"is registered to handle files of this type."
msgstr ""
-#: ../gio/gio-tool-remove.c:31 ../gio/gio-tool-trash.c:31
+#: gio/gio-tool-remove.c:33 gio/gio-tool-trash.c:35
msgid "Ignore nonexistent files, never prompt"
msgstr ""
-#: ../gio/gio-tool-remove.c:52
+#: gio/gio-tool-remove.c:54
msgid "Delete the given files."
-msgstr ""
+msgstr "Forigi la donitajn dosierojn."
-#: ../gio/gio-tool-rename.c:45
+#: gio/gio-tool-rename.c:47
msgid "NAME"
-msgstr ""
+msgstr "NOMO"
-#: ../gio/gio-tool-rename.c:50
+#: gio/gio-tool-rename.c:52
msgid "Rename a file."
-msgstr ""
+msgstr "Alinomi dosieron."
-#: ../gio/gio-tool-rename.c:70
-#| msgid "Missing argument for %s"
+#: gio/gio-tool-rename.c:72
msgid "Missing argument"
msgstr "Mankas argumento"
-#: ../gio/gio-tool-rename.c:76 ../gio/gio-tool-save.c:195
-#: ../gio/gio-tool-set.c:137
+#: gio/gio-tool-rename.c:78 gio/gio-tool-save.c:192 gio/gio-tool-set.c:150
msgid "Too many arguments"
-msgstr ""
+msgstr "Tro da argumentoj"
-#: ../gio/gio-tool-rename.c:95
+#: gio/gio-tool-rename.c:97
#, c-format
msgid "Rename successful. New uri: %s\n"
-msgstr ""
+msgstr "Alinomis sukcese. Nova URI: %s\n"
-#: ../gio/gio-tool-save.c:50
+#: gio/gio-tool-save.c:52
msgid "Only create if not existing"
msgstr ""
-#: ../gio/gio-tool-save.c:51
+#: gio/gio-tool-save.c:53
msgid "Append to end of file"
msgstr ""
-#: ../gio/gio-tool-save.c:52
+#: gio/gio-tool-save.c:54
msgid "When creating, restrict access to the current user"
msgstr ""
-#: ../gio/gio-tool-save.c:53
+#: gio/gio-tool-save.c:55
msgid "When replacing, replace as if the destination did not exist"
msgstr ""
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: ../gio/gio-tool-save.c:55
+#: gio/gio-tool-save.c:57
msgid "Print new etag at end"
msgstr ""
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: ../gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:59
msgid "The etag of the file being overwritten"
msgstr ""
-#: ../gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:59
msgid "ETAG"
msgstr ""
-#: ../gio/gio-tool-save.c:119
+#: gio/gio-tool-save.c:115
#, fuzzy
#| msgid "Error reading from handle: %s"
msgid "Error reading from standard input"
msgstr "Eraro dum lego de dosiernumero"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: ../gio/gio-tool-save.c:145
-#, c-format
-#| msgid "TLS support is not available"
+#: gio/gio-tool-save.c:141
msgid "Etag not available\n"
msgstr "Etag ne estas havebla\n"
-#: ../gio/gio-tool-save.c:168
+#: gio/gio-tool-save.c:165
msgid "Read from standard input and save to DEST."
msgstr ""
-#: ../gio/gio-tool-save.c:188
+#: gio/gio-tool-save.c:185
msgid "No destination given"
msgstr ""
-#: ../gio/gio-tool-set.c:33
+#: gio/gio-tool-set.c:36
msgid "Type of the attribute"
msgstr ""
-#: ../gio/gio-tool-set.c:33
+#: gio/gio-tool-set.c:36
msgid "TYPE"
+msgstr "TIPO"
+
+#: gio/gio-tool-set.c:38
+msgid "Unset given attribute"
msgstr ""
-#: ../gio/gio-tool-set.c:89
+#: gio/gio-tool-set.c:95
msgid "ATTRIBUTE"
-msgstr ""
+msgstr "ATRIBUTO"
-#: ../gio/gio-tool-set.c:89
+#: gio/gio-tool-set.c:95
msgid "VALUE"
-msgstr ""
+msgstr "VALORO"
-#: ../gio/gio-tool-set.c:93
+#: gio/gio-tool-set.c:99
msgid "Set a file attribute of LOCATION."
msgstr ""
-#: ../gio/gio-tool-set.c:113
+#: gio/gio-tool-set.c:119
#, fuzzy
#| msgid "No connection endpoint specified"
msgid "Location not specified"
msgstr "Ne konekta finpunkto specifita"
-#: ../gio/gio-tool-set.c:120
-#| msgid "Error: signal not specified.\n"
+#: gio/gio-tool-set.c:126
msgid "Attribute not specified"
msgstr "Atributo ne estas specifita"
-#: ../gio/gio-tool-set.c:130
-#| msgid "Error: signal not specified.\n"
+#: gio/gio-tool-set.c:143
msgid "Value not specified"
msgstr "Valoro ne estas specifita"
-#: ../gio/gio-tool-set.c:180
+#: gio/gio-tool-set.c:193
#, c-format
-#| msgid "Invalid attribute type (string expected)"
msgid "Invalid attribute type “%s”"
msgstr "Nevalida atributa tipo “%s”"
-#: ../gio/gio-tool-trash.c:32
+#: gio/gio-tool-trash.c:36
msgid "Empty the trash"
+msgstr "Malplenigi la rubon"
+
+#: gio/gio-tool-trash.c:37
+msgid "List files in the trash with their original locations"
+msgstr ""
+
+#: gio/gio-tool-trash.c:38
+msgid "Restore a file from trash to its original location (possibly recreating the directory)"
+msgstr ""
+
+#: gio/gio-tool-trash.c:108
+#, fuzzy
+#| msgid "Unable to find terminal required for application"
+msgid "Unable to find original path"
+msgstr "Ne eblas trovi terminalon bezonata por aplikaĵo"
+
+#: gio/gio-tool-trash.c:125
+#, fuzzy
+#| msgid "Unable to create socket: %s"
+msgid "Unable to recreate original location: "
+msgstr "Ne eblas krei kontaktskatolon: %s"
+
+#: gio/gio-tool-trash.c:138
+#, fuzzy
+#| msgid "Unable to find terminal required for application"
+msgid "Unable to move file to its original location: "
+msgstr "ne eblas trovi terminalon bezonata por aplikaĵo %s\n"
+
+#: gio/gio-tool-trash.c:227
+msgid "Move/Restore files or directories to the trash."
msgstr ""
-#: ../gio/gio-tool-trash.c:86
-msgid "Move files or directories to the trash."
+#: gio/gio-tool-trash.c:229
+msgid ""
+"Note: for --restore switch, if the original location of the trashed file \n"
+"already exists, it will not be overwritten unless --force is set."
msgstr ""
-#: ../gio/gio-tool-tree.c:33
+#: gio/gio-tool-trash.c:260
+msgid "Location given doesn't start with trash:///"
+msgstr ""
+
+#: gio/gio-tool-tree.c:35
msgid "Follow symbolic links, mounts and shortcuts"
msgstr ""
-#: ../gio/gio-tool-tree.c:244
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr ""
-#: ../gio/glib-compile-resources.c:142 ../gio/glib-compile-schemas.c:1492
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Elemento <%s> ne estas permesita interne de <%s>"
-#: ../gio/glib-compile-resources.c:146
+#: gio/glib-compile-resources.c:146
#, c-format
msgid "Element <%s> not allowed at toplevel"
msgstr "Elemento <%s> ne estas permesita je plejsupre nivelo"
-#: ../gio/glib-compile-resources.c:237
+#: gio/glib-compile-resources.c:236
#, c-format
msgid "File %s appears multiple times in the resource"
msgstr ""
-#: ../gio/glib-compile-resources.c:248
+#: gio/glib-compile-resources.c:247
#, fuzzy, c-format
#| msgid "Failed to locate '%s' in current directory"
msgid "Failed to locate “%s” in any source directory"
msgstr "Malsukcesis trovi na “%s” en fonta dosierujo"
-#: ../gio/glib-compile-resources.c:259
+#: gio/glib-compile-resources.c:258
#, fuzzy, c-format
#| msgid "Failed to locate '%s' in current directory"
msgid "Failed to locate “%s” in current directory"
msgstr "Malsukcesis trovi na “%s” en aktuala dosierujo"
-#: ../gio/glib-compile-resources.c:290
+#: gio/glib-compile-resources.c:292
#, fuzzy, c-format
#| msgid "Unknown processing option \"%s\""
msgid "Unknown processing option “%s”"
msgstr "Nekonata opcio de traktado “%s”"
-#: ../gio/glib-compile-resources.c:308 ../gio/glib-compile-resources.c:354
+#. Translators: the first %s is a gresource XML attribute,
+#. * the second %s is an environment variable, and the third
+#. * %s is a command line tool
+#.
+#: gio/glib-compile-resources.c:312 gio/glib-compile-resources.c:369
+#: gio/glib-compile-resources.c:426
#, c-format
-msgid "Failed to create temp file: %s"
-msgstr "Malsukcesis krei dosieron: %s"
+msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
+msgstr ""
-#: ../gio/glib-compile-resources.c:382
+#: gio/glib-compile-resources.c:459
#, c-format
msgid "Error reading file %s: %s"
msgstr "Eraro dum legado de la dosiero %s: %s"
-#: ../gio/glib-compile-resources.c:402
+#: gio/glib-compile-resources.c:479
#, c-format
msgid "Error compressing file %s"
msgstr "Eraro dum kompaktigo de dosiero: %s"
-#: ../gio/glib-compile-resources.c:469 ../gio/glib-compile-schemas.c:1604
+#: gio/glib-compile-resources.c:543
#, c-format
msgid "text may not appear inside <%s>"
msgstr "teksto ne povi montriĝas interne de <%s>"
-#: ../gio/glib-compile-resources.c:664 ../gio/glib-compile-schemas.c:2053
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr ""
-#: ../gio/glib-compile-resources.c:665
-msgid "name of the output file"
+#: gio/glib-compile-resources.c:822
+#, fuzzy
+#| msgid "name of the output file"
+msgid "Name of the output file"
msgstr "nomo de la elig-dosiero"
-#: ../gio/glib-compile-resources.c:666
-msgid ""
-"The directories where files are to be read from (default to current "
-"directory)"
+#: gio/glib-compile-resources.c:823
+msgid "The directories to load files referenced in FILE from (default: current directory)"
msgstr ""
-#: ../gio/glib-compile-resources.c:666 ../gio/glib-compile-schemas.c:2054
-#: ../gio/glib-compile-schemas.c:2082
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "DOSIERUJO"
-#: ../gio/glib-compile-resources.c:667
-msgid ""
-"Generate output in the format selected for by the target filename extension"
+#: gio/glib-compile-resources.c:824
+msgid "Generate output in the format selected for by the target filename extension"
msgstr ""
-#: ../gio/glib-compile-resources.c:668
+#: gio/glib-compile-resources.c:825
msgid "Generate source header"
msgstr ""
-#: ../gio/glib-compile-resources.c:669
-msgid "Generate sourcecode used to link in the resource file into your code"
+#: gio/glib-compile-resources.c:826
+msgid "Generate source code used to link in the resource file into your code"
msgstr ""
-#: ../gio/glib-compile-resources.c:670
+#: gio/glib-compile-resources.c:827
msgid "Generate dependency list"
msgstr "Generi liston de dependeco"
-#: ../gio/glib-compile-resources.c:671
-msgid "name of the dependency file to generate"
+#: gio/glib-compile-resources.c:828
+msgid "Name of the dependency file to generate"
msgstr ""
-#: ../gio/glib-compile-resources.c:672
+#: gio/glib-compile-resources.c:829
msgid "Include phony targets in the generated dependency file"
msgstr ""
-#: ../gio/glib-compile-resources.c:673
+#: gio/glib-compile-resources.c:830
#, fuzzy
#| msgid "Don't automatically create and register resource"
msgid "Don’t automatically create and register resource"
msgstr "Ne aŭtomate generi aŭ registri risurcon"
-#: ../gio/glib-compile-resources.c:674
+#: gio/glib-compile-resources.c:831
msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
msgstr ""
-#: ../gio/glib-compile-resources.c:675
+#: gio/glib-compile-resources.c:832
+msgid "Don’t embed resource data in the C file; assume it's linked externally instead"
+msgstr ""
+
+#: gio/glib-compile-resources.c:833
msgid "C identifier name used for the generated source code"
msgstr ""
-#: ../gio/glib-compile-resources.c:701
+#: gio/glib-compile-resources.c:834
+msgid "The target C compiler (default: the CC environment variable)"
+msgstr ""
+
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2515,263 +2573,421 @@ msgstr ""
"Risurca specifiga dosiero havas la sufikson .gresource.xml,\n"
"kaj la risurca dosiero estas nomita .gresource."
-#: ../gio/glib-compile-resources.c:723
-#, c-format
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Vi devus doni precize unu dosieran nomon\n"
-#: ../gio/glib-compile-schemas.c:784
-msgid "empty names are not permitted"
-msgstr "malplenaj nomoj ne estas permesataj"
+#: gio/glib-compile-schemas.c:95
+#, c-format
+msgid "nick must be a minimum of 2 characters"
+msgstr "kromnomo devas esti minimume de 2 signoj"
+
+#: gio/glib-compile-schemas.c:106
+#, fuzzy, c-format
+#| msgid "Invalid symlink value given"
+msgid "Invalid numeric value"
+msgstr "Invalida simligila valoro donita"
-#: ../gio/glib-compile-schemas.c:794
+#: gio/glib-compile-schemas.c:114
#, c-format
-msgid "invalid name '%s': names must begin with a lowercase letter"
-msgstr "nevalida nomo '%s': nomoj devas komenciĝi per minusklo"
+msgid "<value nick='%s'/> already specified"
+msgstr "<value nick='%s'/> jam specifita"
+
+#: gio/glib-compile-schemas.c:122
+#, c-format
+msgid "value='%s' already specified"
+msgstr "value='%s' jam specifita"
+
+#: gio/glib-compile-schemas.c:136
+#, c-format
+msgid "flags values must have at most 1 bit set"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:161
+#, c-format
+msgid "<%s> must contain at least one <value>"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:806
+#: gio/glib-compile-schemas.c:317
#, fuzzy, c-format
-#| msgid ""
-#| "invalid name '%s': invalid character '%c'; only lowercase letters, "
-#| "numbers and dash ('-') are permitted."
-msgid ""
-"invalid name '%s': invalid character '%c'; only lowercase letters, numbers "
-"and hyphen ('-') are permitted."
+#| msgid "No connection endpoint specified"
+msgid "<%s> is not contained in the specified range"
+msgstr "Ne konekta finpunkto specifita"
+
+#: gio/glib-compile-schemas.c:329
+#, c-format
+msgid "<%s> is not a valid member of the specified enumerated type"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:335
+#, c-format
+msgid "<%s> contains string not in the specified flags type"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:341
+#, c-format
+msgid "<%s> contains a string not in <choices>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:375
+msgid "<range/> already specified for this key"
+msgstr "<range/> jam specifita por tiu ŝlosilo"
+
+#: gio/glib-compile-schemas.c:393
+#, c-format
+msgid "<range> not allowed for keys of type “%s”"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:410
+#, c-format
+msgid "<range> specified minimum is greater than maximum"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:435
+#, c-format
+msgid "unsupported l10n category: %s"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:443
+msgid "l10n requested, but no gettext domain given"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:455
+msgid "translation context given for value without l10n enabled"
msgstr ""
-"nevalida nomo '%s: nevalida karaktro '%c'; nur minuskloj, nombroj kaj "
-"streketo ('-') permesataj."
-#: ../gio/glib-compile-schemas.c:815
+#: gio/glib-compile-schemas.c:477
+#, fuzzy, c-format
+#| msgid "Failed to create file '%s': %s"
+msgid "Failed to parse <default> value of type “%s”: "
+msgstr "Malsukcesis krei dosieron “%s”: %s"
+
+#: gio/glib-compile-schemas.c:494
+msgid "<choices> cannot be specified for keys tagged as having an enumerated type"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:503
+msgid "<choices> already specified for this key"
+msgstr "<choices> jam specifita por tiu ŝlosilo"
+
+#: gio/glib-compile-schemas.c:515
+#, c-format
+msgid "<choices> not allowed for keys of type “%s”"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:531
+#, fuzzy, c-format
+#| msgid "<child name='%s'> already specified"
+msgid "<choice value='%s'/> already given"
+msgstr "<child name='%s'> jam specifita"
+
+#: gio/glib-compile-schemas.c:546
+#, c-format
+msgid "<choices> must contain at least one <choice>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:560
+msgid "<aliases> already specified for this key"
+msgstr "<aliases> jam specifita por tiu ŝlosilo"
+
+#: gio/glib-compile-schemas.c:564
+msgid "<aliases> can only be specified for keys with enumerated or flags types or after <choices>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:583
+#, c-format
+msgid "<alias value='%s'/> given when “%s” is already a member of the enumerated type"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:589
+#, c-format
+msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:597
+#, c-format
+msgid "<alias value='%s'/> already specified"
+msgstr "<alias value='%s'/> jam specifita"
+
+#: gio/glib-compile-schemas.c:607
+#, fuzzy, c-format
+#| msgid "“%s” is not a signed number"
+msgid "alias target “%s” is not in enumerated type"
+msgstr "“%s” ne estas valida numero"
+
+#: gio/glib-compile-schemas.c:608
+#, c-format
+msgid "alias target “%s” is not in <choices>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:623
+#, c-format
+msgid "<aliases> must contain at least one <alias>"
+msgstr ""
+
+#: gio/glib-compile-schemas.c:797
+#, fuzzy
+#| msgid "empty names are not permitted"
+msgid "Empty names are not permitted"
+msgstr "malplenaj nomoj ne estas permesataj"
+
+#: gio/glib-compile-schemas.c:807
+#, fuzzy, c-format
+#| msgid "invalid name '%s': names must begin with a lowercase letter"
+msgid "Invalid name “%s”: names must begin with a lowercase letter"
+msgstr "nevalida nomo '%s': nomoj devas komenciĝi per minusklo"
+
+#: gio/glib-compile-schemas.c:819
+#, fuzzy, c-format
+#| msgid "invalid name '%s': invalid character '%c'; only lowercase letters, numbers and dash ('-') are permitted."
+msgid "Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers and hyphen (“-”) are permitted"
+msgstr "nevalida nomo '%s: nevalida karaktro '%c'; nur minuskloj, nombroj kaj streketo ('-') permesataj."
+
+#: gio/glib-compile-schemas.c:828
#, fuzzy, c-format
#| msgid "invalid name '%s': two successive dashes ('--') are not permitted."
-msgid "invalid name '%s': two successive hyphens ('--') are not permitted."
+msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "nevalida nomo '%s': du sinsekvaj streketoj ('--') ne permesataj."
-#: ../gio/glib-compile-schemas.c:824
+#: gio/glib-compile-schemas.c:837
#, fuzzy, c-format
#| msgid "invalid name '%s': the last character may not be a dash ('-')."
-msgid "invalid name '%s': the last character may not be a hyphen ('-')."
+msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "nevalida nomo '%s': la fina karaktro ne povas esti streketo ('-')."
-#: ../gio/glib-compile-schemas.c:832
-#, c-format
-msgid "invalid name '%s': maximum length is 1024"
+#: gio/glib-compile-schemas.c:845
+#, fuzzy, c-format
+#| msgid "invalid name '%s': maximum length is 1024"
+msgid "Invalid name “%s”: maximum length is 1024"
msgstr "nevalida nomo '%s': maksimuma longeco estas 1024"
-#: ../gio/glib-compile-schemas.c:902
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> jam specifita"
-#: ../gio/glib-compile-schemas.c:928
-msgid "cannot add keys to a 'list-of' schema"
+#: gio/glib-compile-schemas.c:943
+#, fuzzy
+#| msgid "cannot add keys to a 'list-of' schema"
+msgid "Cannot add keys to a “list-of” schema"
msgstr "ne eblas aldoni ŝlosilojn al skemo 'list-of'"
-#: ../gio/glib-compile-schemas.c:939
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> jam specifita"
-#: ../gio/glib-compile-schemas.c:957
+#: gio/glib-compile-schemas.c:972
#, c-format
-msgid ""
-"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
-"to modify value"
-msgstr ""
-"<key name='%s'> kaŝas <key name='%s'> en <schema id='%s'>; uzu <override> "
-"por modifi valoron"
+msgid "<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> to modify value"
+msgstr "<key name='%s'> kaŝas <key name='%s'> en <schema id='%s'>; uzu <override> por modifi valoron"
-#: ../gio/glib-compile-schemas.c:968
-#, c-format
-msgid ""
-"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute "
-"to <key>"
-msgstr ""
-"precize unu el 'type', 'enum' aŭ 'flags' devas esti specifita kiel atributo "
-"de <key>"
+#: gio/glib-compile-schemas.c:983
+#, fuzzy, c-format
+#| msgid "exactly one of 'type', 'enum' or 'flags' must be specified as an attribute to <key>"
+msgid "Exactly one of “type”, “enum” or “flags” must be specified as an attribute to <key>"
+msgstr "precize unu el 'type', 'enum' aŭ 'flags' devas esti specifita kiel atributo de <key>"
-#: ../gio/glib-compile-schemas.c:987
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> ne (jam) difinita."
-#: ../gio/glib-compile-schemas.c:1002
-#, c-format
-msgid "invalid GVariant type string '%s'"
+#: gio/glib-compile-schemas.c:1017
+#, fuzzy, c-format
+#| msgid "invalid GVariant type string '%s'"
+msgid "Invalid GVariant type string “%s”"
msgstr "nevalida GVariant tipo-ĉeno '%s'"
-#: ../gio/glib-compile-schemas.c:1032
-msgid "<override> given but schema isn't extending anything"
+#: gio/glib-compile-schemas.c:1047
+#, fuzzy
+#| msgid "<override> given but schema isn't extending anything"
+msgid "<override> given but schema isn’t extending anything"
msgstr "<override> donita sed skemo ne etendanta io"
-#: ../gio/glib-compile-schemas.c:1045
+#: gio/glib-compile-schemas.c:1060
#, c-format
-msgid "no <key name='%s'> to override"
-msgstr "neniu <key name='%s'> por superregi"
+msgid "No <key name='%s'> to override"
+msgstr "Neniu <key name='%s'> por anstataŭi"
-#: ../gio/glib-compile-schemas.c:1053
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> jam specifita"
-#: ../gio/glib-compile-schemas.c:1126
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> jam specifita"
-#: ../gio/glib-compile-schemas.c:1138
-#, c-format
-msgid "<schema id='%s'> extends not yet existing schema '%s'"
+#: gio/glib-compile-schemas.c:1153
+#, fuzzy, c-format
+#| msgid "<schema id='%s'> extends not yet existing schema '%s'"
+msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> etendas skemo '%s' kiu ankoraŭ ne ekzistas"
-#: ../gio/glib-compile-schemas.c:1154
-#, c-format
-msgid "<schema id='%s'> is list of not yet existing schema '%s'"
+#: gio/glib-compile-schemas.c:1169
+#, fuzzy, c-format
+#| msgid "<schema id='%s'> is list of not yet existing schema '%s'"
+msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> estas listo de skemo '%s' kiu ankoraŭ ne ekzistas"
-#: ../gio/glib-compile-schemas.c:1162
-#, c-format
-msgid "Can not be a list of a schema with a path"
+#: gio/glib-compile-schemas.c:1177
+#, fuzzy, c-format
+#| msgid "Can not be a list of a schema with a path"
+msgid "Cannot be a list of a schema with a path"
msgstr "Ne eblas esti listo de skemo kun vojo"
-#: ../gio/glib-compile-schemas.c:1172
-#, c-format
-msgid "Can not extend a schema with a path"
+#: gio/glib-compile-schemas.c:1187
+#, fuzzy, c-format
+#| msgid "Can not extend a schema with a path"
+msgid "Cannot extend a schema with a path"
msgstr "Ne eblas etendi liston de skemo kun vojo"
-#: ../gio/glib-compile-schemas.c:1182
+#: gio/glib-compile-schemas.c:1197
#, c-format
-msgid ""
-"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
-msgstr ""
-"<schema id='%s'> estas listo, etendanta <schema id='%s'> kiu ne estas listo"
+msgid "<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
+msgstr "<schema id='%s'> estas listo, etendanta <schema id='%s'> kiu ne estas listo"
-#: ../gio/glib-compile-schemas.c:1192
-#, c-format
-msgid ""
-"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but '%s' "
-"does not extend '%s'"
-msgstr ""
-"<schema id='%s' list-of='%s'> etendas <schema id='%s' list-of='%s'> sed '%s' "
-"ne etendas '%s'"
+#: gio/glib-compile-schemas.c:1207
+#, fuzzy, c-format
+#| msgid "<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but '%s' does not extend '%s'"
+msgid "<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” does not extend “%s”"
+msgstr "<schema id='%s' list-of='%s'> etendas <schema id='%s' list-of='%s'> sed '%s' ne etendas '%s'"
-#: ../gio/glib-compile-schemas.c:1209
-#, c-format
-msgid "a path, if given, must begin and end with a slash"
+#: gio/glib-compile-schemas.c:1224
+#, fuzzy, c-format
+#| msgid "a path, if given, must begin and end with a slash"
+msgid "A path, if given, must begin and end with a slash"
msgstr "vojo, se donita, devas komenciĝi kaj finiĝi kun oblikvo"
-#: ../gio/glib-compile-schemas.c:1216
+#: gio/glib-compile-schemas.c:1231
+#, c-format
+msgid "The path of a list must end with “:/”"
+msgstr "La vojo de listo devas finiĝi per “:/”"
+
+#: gio/glib-compile-schemas.c:1240
#, c-format
-msgid "the path of a list must end with ':/'"
-msgstr "la vojo de listo devas finiĝi en ':/'"
+msgid "Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/desktop/” or “/system/” are deprecated."
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1248
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> jam specifita"
-#: ../gio/glib-compile-schemas.c:1398 ../gio/glib-compile-schemas.c:1414
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
-#| msgid "Element <%s> not allowed inside <%s>"
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Elemento <%s> ne estas permesata ene de <%s>"
-#: ../gio/glib-compile-schemas.c:1496
+#: gio/glib-compile-schemas.c:1518
#, c-format
-#| msgid "Element <%s> not allowed at toplevel"
msgid "Element <%s> not allowed at the top level"
msgstr "Elemento <%s> ne estas permesata je plejsupra nivelo"
-#. Translators: Do not translate "--strict".
-#: ../gio/glib-compile-schemas.c:1806 ../gio/glib-compile-schemas.c:1880
-#: ../gio/glib-compile-schemas.c:1956
-#, c-format
-msgid "--strict was specified; exiting.\n"
-msgstr "--strict estis specifita; eliranta.\n"
+#: gio/glib-compile-schemas.c:1536
+msgid "Element <default> is required in <key>"
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1816
+#: gio/glib-compile-schemas.c:1626
#, c-format
-msgid "This entire file has been ignored.\n"
-msgstr "Ĉi tiu tuta dosiero estas ignorita.\n"
+msgid "Text may not appear inside <%s>"
+msgstr "Teksto ne povas aperi ene de <%s>"
-#: ../gio/glib-compile-schemas.c:1876
+#: gio/glib-compile-schemas.c:1694
#, c-format
-msgid "Ignoring this file.\n"
-msgstr "Ignoras ĉi tiun dosieron.\n"
+msgid "Warning: undefined reference to <schema id='%s'/>"
+msgstr ""
+
+#. Translators: Do not translate "--strict".
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
+msgid "--strict was specified; exiting."
+msgstr "--strict estis specifita; eliranta."
+
+#: gio/glib-compile-schemas.c:1845
+msgid "This entire file has been ignored."
+msgstr "Ĉi tiu tuta dosiero estis ignorita."
-#: ../gio/glib-compile-schemas.c:1916
+#: gio/glib-compile-schemas.c:1908
+msgid "Ignoring this file."
+msgstr "Ignorante ĉi tiun dosieron."
+
+#: gio/glib-compile-schemas.c:1963
+#, fuzzy, c-format
+#| msgid "No such key '%s' in schema '%s' as specified in override file '%s'"
+msgid "No such key “%s” in schema “%s” as specified in override file “%s”; ignoring override for this key."
+msgstr "Neniu tia ŝlosilo '%s' en skemo '%s' kiel estas specifite en superrego-dosiero '%s'"
+
+#: gio/glib-compile-schemas.c:1971
+#, fuzzy, c-format
+#| msgid "No such key '%s' in schema '%s' as specified in override file '%s'"
+msgid "No such key “%s” in schema “%s” as specified in override file “%s” and --strict was specified; exiting."
+msgstr "Neniu tia ŝlosilo '%s' en skemo '%s' kiel estas specifite en superrego-dosiero '%s'"
+
+#: gio/glib-compile-schemas.c:1993
#, c-format
-msgid "No such key '%s' in schema '%s' as specified in override file '%s'"
+msgid "Cannot provide per-desktop overrides for localized key “%s” in schema “%s” (override file “%s”); ignoring override for this key."
msgstr ""
-"Neniu tia ŝlosilo '%s' en skemo '%s' kiel estas specifite en superrego-"
-"dosiero '%s'"
-#: ../gio/glib-compile-schemas.c:1922 ../gio/glib-compile-schemas.c:1980
-#: ../gio/glib-compile-schemas.c:2008
+#: gio/glib-compile-schemas.c:2002
#, c-format
-msgid "; ignoring override for this key.\n"
-msgstr "; ignoras superrego por ĉi tiu ŝlosilo.\n"
+msgid "Cannot provide per-desktop overrides for localized key “%s” in schema “%s” (override file “%s”) and --strict was specified; exiting."
+msgstr ""
-#: ../gio/glib-compile-schemas.c:1926 ../gio/glib-compile-schemas.c:1984
-#: ../gio/glib-compile-schemas.c:2012
-#, c-format
-msgid " and --strict was specified; exiting.\n"
-msgstr " kaj --strict estis specifita; eliranta.\n"
+#: gio/glib-compile-schemas.c:2026
+#, fuzzy, c-format
+#| msgid "error parsing key '%s' in schema '%s' as specified in override file '%s': %s. "
+msgid "Error parsing key “%s” in schema “%s” as specified in override file “%s”: %s. Ignoring override for this key."
+msgstr "eraro dum sintaksa analizo de la ŝlosilo '%s' en skemo '%s' kiel estas specifita en superrego-dosiero '%s': %s."
-#: ../gio/glib-compile-schemas.c:1942
+#: gio/glib-compile-schemas.c:2038
#, fuzzy, c-format
-#| msgid ""
-#| "error parsing key '%s' in schema '%s' as specified in override file '%s': "
-#| "%s. "
-msgid ""
-"error parsing key '%s' in schema '%s' as specified in override file '%s': %s."
-msgstr ""
-"eraro dum sintaksa analizo de la ŝlosilo '%s' en skemo '%s' kiel estas "
-"specifita en superrego-dosiero '%s': %s."
+#| msgid "error parsing key '%s' in schema '%s' as specified in override file '%s': %s. "
+msgid "Error parsing key “%s” in schema “%s” as specified in override file “%s”: %s. --strict was specified; exiting."
+msgstr "eraro dum sintaksa analizo de la ŝlosilo '%s' en skemo '%s' kiel estas specifita en superrego-dosiero '%s': %s."
-#: ../gio/glib-compile-schemas.c:1952
-#, c-format
-msgid "Ignoring override for this key.\n"
-msgstr "Ignoras superregon por ĉi tiu ŝlosilo.\n"
+#: gio/glib-compile-schemas.c:2065
+#, fuzzy, c-format
+#| msgid "override for key '%s' in schema '%s' in override file '%s' is out of the range given in the schema"
+msgid "Override for key “%s” in schema “%s” in override file “%s” is outside the range given in the schema; ignoring override for this key."
+msgstr "superrego por ŝlosilo '%s' en skemo '%s' en superrego-dosiero '%s' ne estas en la intervalo donita en la skemo"
-#: ../gio/glib-compile-schemas.c:1970
+#: gio/glib-compile-schemas.c:2075
#, fuzzy, c-format
-#| msgid ""
-#| "override for key '%s' in schema '%s' in override file '%s' is out of the "
-#| "range given in the schema"
-msgid ""
-"override for key '%s' in schema '%s' in override file '%s' is outside the "
-"range given in the schema"
-msgstr ""
-"superrego por ŝlosilo '%s' en skemo '%s' en superrego-dosiero '%s' ne estas "
-"en la intervalo donita en la skemo"
+#| msgid "override for key '%s' in schema '%s' in override file '%s' is out of the range given in the schema"
+msgid "Override for key “%s” in schema “%s” in override file “%s” is outside the range given in the schema and --strict was specified; exiting."
+msgstr "superrego por ŝlosilo '%s' en skemo '%s' en superrego-dosiero '%s' ne estas en la intervalo donita en la skemo"
-#: ../gio/glib-compile-schemas.c:1998
-#, c-format
-msgid ""
-"override for key '%s' in schema '%s' in override file '%s' is not in the "
-"list of valid choices"
-msgstr ""
-"superrego por ŝlosilo '%s' en skemo '%s' en superrego-dosiero '%s' ne estas "
-"en la listo de la validaj elektoj"
+#: gio/glib-compile-schemas.c:2101
+#, fuzzy, c-format
+#| msgid "override for key '%s' in schema '%s' in override file '%s' is not in the list of valid choices"
+msgid "Override for key “%s” in schema “%s” in override file “%s” is not in the list of valid choices; ignoring override for this key."
+msgstr "superrego por ŝlosilo '%s' en skemo '%s' en superrego-dosiero '%s' ne estas en la listo de la validaj elektoj"
-#: ../gio/glib-compile-schemas.c:2054
-msgid "where to store the gschemas.compiled file"
-msgstr "kie enmemorigi la gschema.compiled dosieron"
+#: gio/glib-compile-schemas.c:2111
+#, fuzzy, c-format
+#| msgid "override for key '%s' in schema '%s' in override file '%s' is not in the list of valid choices"
+msgid "Override for key “%s” in schema “%s” in override file “%s” is not in the list of valid choices and --strict was specified; exiting."
+msgstr "superrego por ŝlosilo '%s' en skemo '%s' en superrego-dosiero '%s' ne estas en la listo de la validaj elektoj"
-#: ../gio/glib-compile-schemas.c:2055
+#: gio/glib-compile-schemas.c:2173
+msgid "Where to store the gschemas.compiled file"
+msgstr "Kie stoki la dosieron gschemas.compiled"
+
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Ĉesigi se iuj eraroj en skemoj"
-#: ../gio/glib-compile-schemas.c:2056
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Ne verki na la gschema.compiled dosieron"
-#: ../gio/glib-compile-schemas.c:2057
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Ne devigi ŝlosilonomajn limigojn"
-#: ../gio/glib-compile-schemas.c:2085
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -2781,32 +2997,24 @@ msgstr ""
"Skemaj dosieroj estas bezonas havi la sufikson .gschema.xml,\n"
"kaj la kaŝmemora dosiero estas nomita gschemas.compiled."
-#: ../gio/glib-compile-schemas.c:2106
-#, c-format
-msgid "You should give exactly one directory name\n"
-msgstr "Vi devus doni precize unu dosierujan nomon\n"
+#: gio/glib-compile-schemas.c:2238
+msgid "You should give exactly one directory name"
+msgstr "Vi devus doni precize unu dosierujon"
-#: ../gio/glib-compile-schemas.c:2148
-#, c-format
-msgid "No schema files found: "
-msgstr "Neniuj skemaj dosieroj trovitaj: "
-
-#: ../gio/glib-compile-schemas.c:2151
-#, c-format
-msgid "doing nothing.\n"
-msgstr "faranta nenion.\n"
+#: gio/glib-compile-schemas.c:2285
+msgid "No schema files found: doing nothing."
+msgstr "Neniuj skemaj dosieroj trovitaj: farante nenion."
-#: ../gio/glib-compile-schemas.c:2154
-#, c-format
-msgid "removed existing output file.\n"
-msgstr "forigis ekzistantan eliran dosieron.\n"
+#: gio/glib-compile-schemas.c:2287
+msgid "No schema files found: removed existing output file."
+msgstr "Neniuj skemaj dosieroj trovitaj: forigita ekzistanta eligdosiero."
-#: ../gio/glocalfile.c:643 ../gio/win32/gwinhttpfile.c:420
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Nevalida dosiernomo %s"
-#: ../gio/glocalfile.c:1037
+#: gio/glocalfile.c:1012
#, fuzzy, c-format
#| msgid "Error getting filesystem info: %s"
msgid "Error getting filesystem info for %s: %s"
@@ -2816,356 +3024,385 @@ msgstr "Eraro dum akiro de dosiersistema informo %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: ../gio/glocalfile.c:1176
+#: gio/glocalfile.c:1148
#, fuzzy, c-format
#| msgid "Containing mount does not exist"
msgid "Containing mount for file %s not found"
msgstr "Enhavantan munton por dosiero %s ne trovis"
-#: ../gio/glocalfile.c:1199
+#: gio/glocalfile.c:1171
#, fuzzy
#| msgid "Can't rename root directory"
msgid "Can’t rename root directory"
msgstr "Ne eblas alinomi radikan dosierujon"
-#: ../gio/glocalfile.c:1217 ../gio/glocalfile.c:1240
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, fuzzy, c-format
#| msgid "Error reading file %s: %s"
msgid "Error renaming file %s: %s"
msgstr "Eraro dum legado de la dosiero %s: %s"
-#: ../gio/glocalfile.c:1224
-#, fuzzy
-#| msgid "Can't rename file, filename already exists"
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Ne eblas alinomi dosieron, dosiernomo jam ekzistas"
-#: ../gio/glocalfile.c:1237 ../gio/glocalfile.c:2251 ../gio/glocalfile.c:2279
-#: ../gio/glocalfile.c:2436 ../gio/glocalfileoutputstream.c:549
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Nevalida dosiernomo"
-#: ../gio/glocalfile.c:1404 ../gio/glocalfile.c:1419
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, fuzzy, c-format
#| msgid "Error opening file '%s': %s"
msgid "Error opening file %s: %s"
msgstr "Eraro dum malfermo de la dosiero '%s': %s"
-#: ../gio/glocalfile.c:1544
+#: gio/glocalfile.c:1513
#, c-format
-#| msgid "Error removing file: %s"
msgid "Error removing file %s: %s"
msgstr "Eraro dum forigo de la dosiero %s: %s"
-#: ../gio/glocalfile.c:1927
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
-#| msgid "Error trashing file: %s"
msgid "Error trashing file %s: %s"
msgstr "Eraro dum forigo de la dosiero %s: %s"
-#: ../gio/glocalfile.c:1950
-#, c-format
-msgid "Unable to create trash dir %s: %s"
+#: gio/glocalfile.c:2065
+#, fuzzy, c-format
+#| msgid "Unable to create trash dir %s: %s"
+msgid "Unable to create trash directory %s: %s"
msgstr "Ne eblas krei rubujan dosierujon %s: %s"
-#: ../gio/glocalfile.c:1970
+#: gio/glocalfile.c:2086
#, fuzzy, c-format
#| msgid "Unable to find toplevel directory for trash"
msgid "Unable to find toplevel directory to trash %s"
msgstr "Ne eblas trovi plejsupra-nivelan dosierujon por rubujo %s"
-#: ../gio/glocalfile.c:2049 ../gio/glocalfile.c:2069
+#: gio/glocalfile.c:2094
+#, fuzzy, c-format
+#| msgid "Copy (reflink/clone) between mounts is not supported"
+msgid "Trashing on system internal mounts is not supported"
+msgstr "Kopii (reflink/clone) inter muntoj ne estas subtenata"
+
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, fuzzy, c-format
#| msgid "Unable to find or create trash directory"
-msgid "Unable to find or create trash directory for %s"
+msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Ne eblas trovi aŭ krei rubujan dosierujon %s"
-#: ../gio/glocalfile.c:2103
+#: gio/glocalfile.c:2252
#, fuzzy, c-format
#| msgid "Unable to create trashing info file: %s"
msgid "Unable to create trashing info file for %s: %s"
msgstr "Ne eblas krei trashinfo-dosieron %s: %s"
-#: ../gio/glocalfile.c:2162
+#: gio/glocalfile.c:2323
#, fuzzy, c-format
#| msgid "Unable to trash file: %s"
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Ne eblas forŝovi dosieron %s al rubujo"
-#: ../gio/glocalfile.c:2166 ../gio/glocalfile.c:2222
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
-#| msgid "Unable to trash file: %s"
msgid "Unable to trash file %s: %s"
msgstr "Ne eblas forigi dosieron %s: %s"
-#: ../gio/glocalfile.c:2228
+#: gio/glocalfile.c:2389
#, fuzzy, c-format
#| msgid "Unable to trash file: %s"
msgid "Unable to trash file %s"
msgstr "Ne eblas forŝovi dosieron %s al rubujo"
-#: ../gio/glocalfile.c:2254
+#: gio/glocalfile.c:2415
#, fuzzy, c-format
#| msgid "Error creating directory '%s': %s"
msgid "Error creating directory %s: %s"
msgstr "Eraro dum kreo de la dosierujo '%s': %s"
-#: ../gio/glocalfile.c:2283
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Dosiersistemo ne subtenas simbolajn ligilojn"
-#: ../gio/glocalfile.c:2286
+#: gio/glocalfile.c:2447
#, c-format
-#| msgid "Error making symbolic link: %s"
msgid "Error making symbolic link %s: %s"
msgstr "Eraro dum kreo de la simbola ligilo %s: %s"
-#: ../gio/glocalfile.c:2292 ../glib/gfileutils.c:2077
-msgid "Symbolic links not supported"
-msgstr "Simbolaj ligiloj ne estas subtenataj"
-
-#: ../gio/glocalfile.c:2347 ../gio/glocalfile.c:2382 ../gio/glocalfile.c:2439
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
-#| msgid "Error moving file: %s"
msgid "Error moving file %s: %s"
msgstr "Eraro dum movado de la dosiero %s: %s"
-#: ../gio/glocalfile.c:2370
+#: gio/glocalfile.c:2513
#, fuzzy
#| msgid "Can't move directory over directory"
msgid "Can’t move directory over directory"
msgstr "Ne eblas movi dosierujon super dosierujo"
-#: ../gio/glocalfile.c:2396 ../gio/glocalfileoutputstream.c:925
-#: ../gio/glocalfileoutputstream.c:939 ../gio/glocalfileoutputstream.c:954
-#: ../gio/glocalfileoutputstream.c:971 ../gio/glocalfileoutputstream.c:985
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
+#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Sekurkopia kreado malsukcesis"
-#: ../gio/glocalfile.c:2415
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Eraro dum forigo de la celdosiero: %s"
-#: ../gio/glocalfile.c:2429
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Movo inter muntoj ne estas subtenata"
-#: ../gio/glocalfile.c:2620
+#: gio/glocalfile.c:2748
#, fuzzy, c-format
#| msgid "could not get remote address: %s"
msgid "Could not determine the disk usage of %s: %s"
msgstr "Ne eblas akiri foran adreson %s: %s"
-#: ../gio/glocalfileinfo.c:721
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Atributa valoro devas ne esti NUL-a"
-#: ../gio/glocalfileinfo.c:728
-msgid "Invalid attribute type (string expected)"
+#: gio/glocalfileinfo.c:772
+#, fuzzy
+#| msgid "Invalid attribute type (string expected)"
+msgid "Invalid attribute type (string or invalid expected)"
msgstr "Nevalida atributa tipo (ĉeno atendata)"
-#: ../gio/glocalfileinfo.c:735
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Nevalida etendita atributnomo"
-#: ../gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:830
#, fuzzy, c-format
#| msgid "Error setting extended attribute '%s': %s"
msgid "Error setting extended attribute “%s”: %s"
msgstr "Eraro dum agordado de la etendita atributo “%s”: %s"
-#: ../gio/glocalfileinfo.c:1575
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (nevalida kodoprezento)"
-#: ../gio/glocalfileinfo.c:1766 ../gio/glocalfileoutputstream.c:803
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileoutputstream.c:997
#, fuzzy, c-format
#| msgid "Error when getting information for file '%s': %s"
msgid "Error when getting information for file “%s”: %s"
msgstr "Eraro dum akiro de informo de dosiero “%s”: %s"
-#: ../gio/glocalfileinfo.c:2017
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Eraro dum akiro informo pri dosierpriskribilo: %s"
-#: ../gio/glocalfileinfo.c:2062
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Nevalida atributa tipo (uint32 atendata)"
-#: ../gio/glocalfileinfo.c:2080
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Nevalida atributa tipo (uint64 atendata)"
-#: ../gio/glocalfileinfo.c:2099 ../gio/glocalfileinfo.c:2118
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Nevalida atributa tipo (bajta ĉeno atendata)"
-#: ../gio/glocalfileinfo.c:2153
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Ne eblas agordi permesojn sur simbolaj ligiloj"
-#: ../gio/glocalfileinfo.c:2169
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Eraro dum agordado de la permesoj: %s"
-#: ../gio/glocalfileinfo.c:2220
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Eraro dum agordado de posedanto: %s"
-#: ../gio/glocalfileinfo.c:2243
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "simligilo devas ne esti NUL-a"
-#: ../gio/glocalfileinfo.c:2253 ../gio/glocalfileinfo.c:2272
-#: ../gio/glocalfileinfo.c:2283
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Eraro dum agordado de simligilo: %s"
-#: ../gio/glocalfileinfo.c:2262
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "Eraro dum agordado de simligilo: dosiero ne estas simligilo"
-#: ../gio/glocalfileinfo.c:2388
+#: gio/glocalfileinfo.c:2599
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2608
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2618
+#, c-format
+msgid "UNIX timestamp %lld does not fit into 64 bits"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2629
+#, c-format
+msgid "UNIX timestamp %lld is outside of the range supported by Windows"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2761
+#, c-format
+msgid "File name “%s” cannot be converted to UTF-16"
+msgstr "Dosiernomo “%s” ne povas esti konvertita al UTF-16"
+
+#: gio/glocalfileinfo.c:2780
+#, c-format
+msgid "File “%s” cannot be opened: Windows Error %lu"
+msgstr "Dosiero “%s” ne povas esti malfermita: Vindoza eraro %lu"
+
+#: gio/glocalfileinfo.c:2793
+#, c-format
+msgid "Error setting modification or access time for file “%s”: %lu"
+msgstr "Eraro agordante modifon aŭ alirtempon por dosiero “%s”: %lu"
+
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Eraro dum agordado de modifaĵo aŭ alira horo: %s"
-#: ../gio/glocalfileinfo.c:2411
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "SELinuksa kunteksto devas ne esti NUL-a"
-#: ../gio/glocalfileinfo.c:2426
+#: gio/glocalfileinfo.c:2980
+msgid "SELinux is not enabled on this system"
+msgstr "SELinux ne estas enŝaltita sur ĉi tiu sistemo"
+
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Eraro dum agordado de la SELinuksa kunteksto: %s"
-#: ../gio/glocalfileinfo.c:2433
-msgid "SELinux is not enabled on this system"
-msgstr "SELinux ne estas enŝaltita sur ĉi tiu sistemo"
-
-#: ../gio/glocalfileinfo.c:2525
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Agordi atributon %s ne subtenita"
-#: ../gio/glocalfileinputstream.c:168 ../gio/glocalfileoutputstream.c:694
+#: gio/glocalfileinputstream.c:165 gio/glocalfileoutputstream.c:803
#, c-format
msgid "Error reading from file: %s"
msgstr "Eraro dum legado de la dosiero: %s"
-#: ../gio/glocalfileinputstream.c:199 ../gio/glocalfileinputstream.c:211
-#: ../gio/glocalfileinputstream.c:225 ../gio/glocalfileinputstream.c:333
-#: ../gio/glocalfileoutputstream.c:456 ../gio/glocalfileoutputstream.c:1003
-#, c-format
-msgid "Error seeking in file: %s"
-msgstr "Eraro dum serĉo en la dosiero: %s"
-
-#: ../gio/glocalfileinputstream.c:255 ../gio/glocalfileoutputstream.c:246
-#: ../gio/glocalfileoutputstream.c:340
+#: gio/glocalfileinputstream.c:196 gio/glocalfileoutputstream.c:355
+#: gio/glocalfileoutputstream.c:449
#, c-format
msgid "Error closing file: %s"
msgstr "Eraro dum fermado de la dosiero: %s"
-#: ../gio/glocalfilemonitor.c:840
+#: gio/glocalfileinputstream.c:274 gio/glocalfileoutputstream.c:565
+#: gio/glocalfileoutputstream.c:1188
+#, c-format
+msgid "Error seeking in file: %s"
+msgstr "Eraro dum serĉo en la dosiero: %s"
+
+#: gio/glocalfilemonitor.c:882
msgid "Unable to find default local file monitor type"
msgstr "Ne eblas trovi defaŭltan tipon de loka dosiera monitoro"
-#: ../gio/glocalfileoutputstream.c:194 ../gio/glocalfileoutputstream.c:226
-#: ../gio/glocalfileoutputstream.c:715
+#: gio/glocalfileoutputstream.c:222 gio/glocalfileoutputstream.c:300
+#: gio/glocalfileoutputstream.c:336 gio/glocalfileoutputstream.c:824
#, c-format
msgid "Error writing to file: %s"
msgstr "Eraro dum skribado de la dosiero: %s"
-#: ../gio/glocalfileoutputstream.c:273
+#: gio/glocalfileoutputstream.c:382
#, c-format
msgid "Error removing old backup link: %s"
msgstr "Eraro dum forigo de la malnova sekurkopia ligilo: %s"
-#: ../gio/glocalfileoutputstream.c:287 ../gio/glocalfileoutputstream.c:300
+#: gio/glocalfileoutputstream.c:396 gio/glocalfileoutputstream.c:409
#, c-format
msgid "Error creating backup copy: %s"
msgstr "Eraro dum kreado de sekurkopio: %s"
-#: ../gio/glocalfileoutputstream.c:318
+#: gio/glocalfileoutputstream.c:427
#, c-format
msgid "Error renaming temporary file: %s"
msgstr "Eraro dum alinomo de la provizora dosiero: %s"
-#: ../gio/glocalfileoutputstream.c:502 ../gio/glocalfileoutputstream.c:1054
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Eraro dum trunko de la dosiero: %s"
-#: ../gio/glocalfileoutputstream.c:555 ../gio/glocalfileoutputstream.c:785
-#: ../gio/glocalfileoutputstream.c:1035 ../gio/gsubprocess.c:360
+#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, fuzzy, c-format
#| msgid "Error opening file '%s': %s"
msgid "Error opening file “%s”: %s"
msgstr "Eraro dum malfermo de la dosiero “%s”: %s"
-#: ../gio/glocalfileoutputstream.c:816
+#: gio/glocalfileoutputstream.c:959
msgid "Target file is a directory"
msgstr "Celdosiero estas dosierujo"
-#: ../gio/glocalfileoutputstream.c:821
+#: gio/glocalfileoutputstream.c:973
msgid "Target file is not a regular file"
msgstr "Celdosiero ne estas regula dosiero"
-#: ../gio/glocalfileoutputstream.c:833
+#: gio/glocalfileoutputstream.c:1015
msgid "The file was externally modified"
msgstr "La dosiero estis ekstere modifita"
-#: ../gio/glocalfileoutputstream.c:1019
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Eraro dum forigo de la malnova dosiero: %s"
-#: ../gio/gmemoryinputstream.c:474 ../gio/gmemoryoutputstream.c:772
+#: gio/gmemoryinputstream.c:476 gio/gmemoryoutputstream.c:764
msgid "Invalid GSeekType supplied"
msgstr "Nevalida GSeekType liverita"
-#: ../gio/gmemoryinputstream.c:484
+#: gio/gmemoryinputstream.c:486
msgid "Invalid seek request"
msgstr "Nevalida serĉpeto"
-#: ../gio/gmemoryinputstream.c:508
+#: gio/gmemoryinputstream.c:510
msgid "Cannot truncate GMemoryInputStream"
msgstr "Ne eblas trunki GMemoryInputStream-on"
-#: ../gio/gmemoryoutputstream.c:567
+#: gio/gmemoryoutputstream.c:570
msgid "Memory output stream not resizable"
msgstr "Grando de memoro-eliga fluo ne estas ŝanĝebla"
-#: ../gio/gmemoryoutputstream.c:583
+#: gio/gmemoryoutputstream.c:586
msgid "Failed to resize memory output stream"
msgstr "Malsuksesis ŝanĝi la grandon de memoro-eliga fluo"
-#: ../gio/gmemoryoutputstream.c:673
-msgid ""
-"Amount of memory required to process the write is larger than available "
-"address space"
-msgstr ""
-"Sumo de memoro kiu estas bezonata por trakti de la skribo estas pli granda "
-"ol havebla adresa spaco"
+#: gio/gmemoryoutputstream.c:665
+msgid "Amount of memory required to process the write is larger than available address space"
+msgstr "Sumo de memoro kiu estas bezonata por trakti de la skribo estas pli granda ol havebla adresa spaco"
-#: ../gio/gmemoryoutputstream.c:782
+#: gio/gmemoryoutputstream.c:774
msgid "Requested seek before the beginning of the stream"
msgstr "Petita enpozicigo antaŭ la komencon de la fluo"
-#: ../gio/gmemoryoutputstream.c:797
+#: gio/gmemoryoutputstream.c:789
msgid "Requested seek beyond the end of the stream"
msgstr "Petita serĉ-loko estas preter la finon de la fluo"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement unmount.
-#: ../gio/gmount.c:393
+#: gio/gmount.c:401
#, fuzzy
#| msgid "mount doesn't implement \"unmount\""
msgid "mount doesn’t implement “unmount”"
@@ -3174,7 +3411,7 @@ msgstr "munto ne realigas “unmount”"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement eject.
-#: ../gio/gmount.c:469
+#: gio/gmount.c:477
#, fuzzy
#| msgid "mount doesn't implement \"eject\""
msgid "mount doesn’t implement “eject”"
@@ -3183,7 +3420,7 @@ msgstr "munto ne realigas “eject”"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of unmount or unmount_with_operation.
-#: ../gio/gmount.c:547
+#: gio/gmount.c:555
#, fuzzy
#| msgid "mount doesn't implement \"unmount\" or \"unmount_with_operation\""
msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
@@ -3192,7 +3429,7 @@ msgstr "munto ne realigas “unmount” aŭ “unmount_with_operation”"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of eject or eject_with_operation.
-#: ../gio/gmount.c:632
+#: gio/gmount.c:640
#, fuzzy
#| msgid "mount doesn't implement \"eject\" or \"eject_with_operation\""
msgid "mount doesn’t implement “eject” or “eject_with_operation”"
@@ -3201,7 +3438,7 @@ msgstr "munto ne realigas “eject” aŭ “eject_with_operation”"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement remount.
-#: ../gio/gmount.c:720
+#: gio/gmount.c:728
#, fuzzy
#| msgid "mount doesn't implement \"remount\""
msgid "mount doesn’t implement “remount”"
@@ -3210,7 +3447,7 @@ msgstr "munto ne realigas \"remount\""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: ../gio/gmount.c:802
+#: gio/gmount.c:810
#, fuzzy
#| msgid "mount doesn't implement content type guessing"
msgid "mount doesn’t implement content type guessing"
@@ -3219,110 +3456,140 @@ msgstr "munto ne realigas konjektanta de enhava tipo"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: ../gio/gmount.c:889
+#: gio/gmount.c:897
#, fuzzy
#| msgid "mount doesn't implement synchronous content type guessing"
msgid "mount doesn’t implement synchronous content type guessing"
msgstr "munto ne realigas konjektadon pri enhava tipo sinkrone"
-#: ../gio/gnetworkaddress.c:378
+#: gio/gnetworkaddress.c:417
#, fuzzy, c-format
#| msgid "Hostname '%s' contains '[' but not ']'"
msgid "Hostname “%s” contains “[” but not “]”"
msgstr "Gastiga komputilnomo '%s' havas '[' sed ne ']'"
-#: ../gio/gnetworkmonitorbase.c:206 ../gio/gnetworkmonitorbase.c:310
+#: gio/gnetworkmonitorbase.c:221 gio/gnetworkmonitorbase.c:325
msgid "Network unreachable"
msgstr "Loka reto estas ne kontaktebla"
-#: ../gio/gnetworkmonitorbase.c:244 ../gio/gnetworkmonitorbase.c:274
+#: gio/gnetworkmonitorbase.c:259 gio/gnetworkmonitorbase.c:289
msgid "Host unreachable"
-msgstr ""
+msgstr "Gastiganto neatingebla"
-#: ../gio/gnetworkmonitornetlink.c:96 ../gio/gnetworkmonitornetlink.c:108
-#: ../gio/gnetworkmonitornetlink.c:127
+#: gio/gnetworkmonitornetlink.c:101 gio/gnetworkmonitornetlink.c:113
+#: gio/gnetworkmonitornetlink.c:132
#, c-format
msgid "Could not create network monitor: %s"
msgstr "Ne eblas krei retmonitoron: %s"
-#: ../gio/gnetworkmonitornetlink.c:117
+#: gio/gnetworkmonitornetlink.c:122
msgid "Could not create network monitor: "
msgstr "Ne eblas krei retmonitoron: "
-#: ../gio/gnetworkmonitornetlink.c:175
+#: gio/gnetworkmonitornetlink.c:185
msgid "Could not get network status: "
msgstr "Ne eblas akiri restaton: "
-#: ../gio/gnetworkmonitornm.c:329
+#: gio/gnetworkmonitornm.c:313
+#, c-format
+msgid "NetworkManager not running"
+msgstr ""
+
+#: gio/gnetworkmonitornm.c:324
#, c-format
msgid "NetworkManager version too old"
msgstr ""
-#: ../gio/goutputstream.c:212 ../gio/goutputstream.c:560
+#: gio/goutputstream.c:234 gio/goutputstream.c:777
#, fuzzy
#| msgid "Output stream doesn't implement write"
msgid "Output stream doesn’t implement write"
msgstr "Eliga fluo ne realigas skribon"
-#: ../gio/goutputstream.c:521 ../gio/goutputstream.c:1224
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
+#, c-format
+msgid "Sum of vectors passed to %s too large"
+msgstr ""
+
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Fontfluo jam estas fermita"
-#: ../gio/gresolver.c:342 ../gio/gthreadedresolver.c:116
-#: ../gio/gthreadedresolver.c:126
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
+msgid "Unspecified proxy lookup failure"
+msgstr ""
+
+#. Translators: the first placeholder is a domain name, the
+#. * second is an error message
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, fuzzy, c-format
#| msgid "Error resolving '%s': %s"
msgid "Error resolving “%s”: %s"
msgstr "Eraro dum serĉo '%s': %s"
-#: ../gio/gresource.c:595 ../gio/gresource.c:846 ../gio/gresource.c:863
-#: ../gio/gresource.c:987 ../gio/gresource.c:1059 ../gio/gresource.c:1132
-#: ../gio/gresource.c:1202 ../gio/gresourcefile.c:453
-#: ../gio/gresourcefile.c:576 ../gio/gresourcefile.c:713
+#. Translators: The placeholder is for a function name.
+#: gio/gresolver.c:547 gio/gresolver.c:707
+#, c-format
+msgid "%s not implemented"
+msgstr "%s ne efektivigita"
+
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
+msgid "Invalid domain"
+msgstr "Nevalida domajno"
+
+#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
+#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, fuzzy, c-format
#| msgid "The resource at '%s' does not exist"
msgid "The resource at “%s” does not exist"
msgstr "La risurco ĉe '%s' ne ekzistas"
-#: ../gio/gresource.c:760
+#: gio/gresource.c:850
#, fuzzy, c-format
#| msgid "The resource at '%s' is not a directory"
msgid "The resource at “%s” failed to decompress"
msgstr "La risurco ĉe '%s' ne estas dosierujo"
-#: ../gio/gresourcefile.c:709
+#: gio/gresourcefile.c:663
+msgid "Resource files cannot be renamed"
+msgstr ""
+
+#: gio/gresourcefile.c:753
#, fuzzy, c-format
#| msgid "The resource at '%s' is not a directory"
msgid "The resource at “%s” is not a directory"
msgstr "La risurco ĉe '%s' ne estas dosierujo"
-#: ../gio/gresourcefile.c:917
+#: gio/gresourcefile.c:961
#, fuzzy
#| msgid "Input stream doesn't implement seek"
msgid "Input stream doesn’t implement seek"
msgstr "Eniga fluo ne realigas serĉon"
-#: ../gio/gresource-tool.c:494
+#: gio/gresource-tool.c:502
msgid "List sections containing resources in an elf FILE"
msgstr ""
-#: ../gio/gresource-tool.c:500
+#: gio/gresource-tool.c:508
msgid ""
"List resources\n"
"If SECTION is given, only list resources in this section\n"
"If PATH is given, only list matching resources"
msgstr ""
-#: ../gio/gresource-tool.c:503 ../gio/gresource-tool.c:513
+#: gio/gresource-tool.c:511 gio/gresource-tool.c:521
msgid "FILE [PATH]"
msgstr "DOSIERO [VOJO]"
-#: ../gio/gresource-tool.c:504 ../gio/gresource-tool.c:514
-#: ../gio/gresource-tool.c:521
+#: gio/gresource-tool.c:512 gio/gresource-tool.c:522 gio/gresource-tool.c:529
msgid "SECTION"
msgstr "SEKCIO"
-#: ../gio/gresource-tool.c:509
+#: gio/gresource-tool.c:517
msgid ""
"List resources with details\n"
"If SECTION is given, only list resources in this section\n"
@@ -3330,15 +3597,15 @@ msgid ""
"Details include the section, size and compression"
msgstr ""
-#: ../gio/gresource-tool.c:519
+#: gio/gresource-tool.c:527
msgid "Extract a resource file to stdout"
msgstr "Eltiri risurcan dosieron al 'stdout'"
-#: ../gio/gresource-tool.c:520
+#: gio/gresource-tool.c:528
msgid "FILE PATH"
msgstr "DOSIERA VOJO"
-#: ../gio/gresource-tool.c:534
+#: gio/gresource-tool.c:542
#, fuzzy
#| msgid ""
#| "Usage:\n"
@@ -3380,7 +3647,7 @@ msgstr ""
"Uzu 'gresource help KOMANDO' por akiri helpon detale.\n"
"\n"
-#: ../gio/gresource-tool.c:548
+#: gio/gresource-tool.c:556
#, c-format
msgid ""
"Usage:\n"
@@ -3395,112 +3662,102 @@ msgstr ""
"%s\n"
"\n"
-#: ../gio/gresource-tool.c:555
+#: gio/gresource-tool.c:563
msgid " SECTION An (optional) elf section name\n"
msgstr " SEKCIO (laŭvola) nomo de elf-a sekcio\n"
-#: ../gio/gresource-tool.c:559 ../gio/gsettings-tool.c:654
+#: gio/gresource-tool.c:567 gio/gsettings-tool.c:720
msgid " COMMAND The (optional) command to explain\n"
msgstr " KOMANDO La (laŭvola) komando por klarigi\n"
-#: ../gio/gresource-tool.c:565
+#: gio/gresource-tool.c:573
msgid " FILE An elf file (a binary or a shared library)\n"
msgstr ""
-#: ../gio/gresource-tool.c:568
+#: gio/gresource-tool.c:576
msgid ""
" FILE An elf file (a binary or a shared library)\n"
" or a compiled resource file\n"
msgstr ""
-#: ../gio/gresource-tool.c:572
+#: gio/gresource-tool.c:580
msgid "[PATH]"
msgstr "[VOJO]"
-#: ../gio/gresource-tool.c:574
+#: gio/gresource-tool.c:582
msgid " PATH An (optional) resource path (may be partial)\n"
msgstr " VOJO (laŭvola) vojo de risurco (eble parta)\n"
-#: ../gio/gresource-tool.c:575
+#: gio/gresource-tool.c:583
msgid "PATH"
msgstr "VOJO"
-#: ../gio/gresource-tool.c:577
+#: gio/gresource-tool.c:585
msgid " PATH A resource path\n"
msgstr " VOJO vojo de risurco\n"
-#: ../gio/gsettings-tool.c:51 ../gio/gsettings-tool.c:72
-#: ../gio/gsettings-tool.c:851
-#, fuzzy, c-format
-#| msgid "No such schema '%s'\n"
+#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:925
+#, c-format
msgid "No such schema “%s”\n"
-msgstr "Neniu tia skemo '%s'\n"
+msgstr "Neniu tia skemo “%s”\n"
-#: ../gio/gsettings-tool.c:57
+#: gio/gsettings-tool.c:57
#, fuzzy, c-format
#| msgid "Schema '%s' is not relocatable (path must not be specified)\n"
msgid "Schema “%s” is not relocatable (path must not be specified)\n"
msgstr "Skemo '%s' ne estas translokigebla (vojo devas ne esti specifita)\n"
-#: ../gio/gsettings-tool.c:78
+#: gio/gsettings-tool.c:78
#, fuzzy, c-format
#| msgid "Schema '%s' is relocatable (path must be specified)\n"
msgid "Schema “%s” is relocatable (path must be specified)\n"
msgstr "Skemo '%s' estas translokigebla (vojo devas esti specifita)\n"
-#: ../gio/gsettings-tool.c:92
-#, c-format
+#: gio/gsettings-tool.c:92
msgid "Empty path given.\n"
msgstr "Malplena vojo estis donita.\n"
-#: ../gio/gsettings-tool.c:98
-#, c-format
+#: gio/gsettings-tool.c:98
msgid "Path must begin with a slash (/)\n"
msgstr "Vojo devas komenciĝi per oblikvo (/)\n"
-#: ../gio/gsettings-tool.c:104
-#, c-format
+#: gio/gsettings-tool.c:104
msgid "Path must end with a slash (/)\n"
msgstr "Vojo devas finiĝi per oblikvo (/)\n"
-#: ../gio/gsettings-tool.c:110
-#, c-format
+#: gio/gsettings-tool.c:110
msgid "Path must not contain two adjacent slashes (//)\n"
msgstr "Vojo devas ne havi du apudajn oblikvojn (//)\n"
-#: ../gio/gsettings-tool.c:489
-#, c-format
+#: gio/gsettings-tool.c:555
msgid "The provided value is outside of the valid range\n"
msgstr "La valoro provizita estas preter la valida intervalo\n"
-#: ../gio/gsettings-tool.c:496
-#, c-format
-#| msgid "Property '%s' is not writable"
+#: gio/gsettings-tool.c:562
msgid "The key is not writable\n"
msgstr "La ŝlosilo ne estas skribebla\n"
-#: ../gio/gsettings-tool.c:532
+#: gio/gsettings-tool.c:598
msgid "List the installed (non-relocatable) schemas"
msgstr "Listigi la instalitajn (ne translokigeblajn) skemojn"
-#: ../gio/gsettings-tool.c:538
+#: gio/gsettings-tool.c:604
msgid "List the installed relocatable schemas"
msgstr "Listigi la instalintajn translokiĝeblajn skemojn"
-#: ../gio/gsettings-tool.c:544
+#: gio/gsettings-tool.c:610
msgid "List the keys in SCHEMA"
msgstr "Listi la ŝlosilojn en SKEMO"
-#: ../gio/gsettings-tool.c:545 ../gio/gsettings-tool.c:551
-#: ../gio/gsettings-tool.c:594
+#: gio/gsettings-tool.c:611 gio/gsettings-tool.c:617 gio/gsettings-tool.c:660
msgid "SCHEMA[:PATH]"
msgstr "SKEMO[:VOJO]"
-#: ../gio/gsettings-tool.c:550
+#: gio/gsettings-tool.c:616
msgid "List the children of SCHEMA"
msgstr "Listi la idojn de SKEMO"
-#: ../gio/gsettings-tool.c:556
+#: gio/gsettings-tool.c:622
msgid ""
"List keys and values, recursively\n"
"If no SCHEMA is given, list all keys\n"
@@ -3508,51 +3765,50 @@ msgstr ""
"Listi ŝlosilojn kaj valorojn, rikure\n"
"Se ne SKEMO estas donita, listi ĉiujn ŝlosilojn\n"
-#: ../gio/gsettings-tool.c:558
+#: gio/gsettings-tool.c:624
msgid "[SCHEMA[:PATH]]"
msgstr "[SKEMO[:VOJO]]"
-#: ../gio/gsettings-tool.c:563
+#: gio/gsettings-tool.c:629
msgid "Get the value of KEY"
msgstr "Akiri la valoron de ŜLOSILO"
-#: ../gio/gsettings-tool.c:564 ../gio/gsettings-tool.c:570
-#: ../gio/gsettings-tool.c:576 ../gio/gsettings-tool.c:588
-#: ../gio/gsettings-tool.c:600
+#: gio/gsettings-tool.c:630 gio/gsettings-tool.c:636 gio/gsettings-tool.c:642
+#: gio/gsettings-tool.c:654 gio/gsettings-tool.c:666
msgid "SCHEMA[:PATH] KEY"
msgstr "SKEMO[:VOJO] ŜLOSILO"
-#: ../gio/gsettings-tool.c:569
+#: gio/gsettings-tool.c:635
msgid "Query the range of valid values for KEY"
msgstr "Informpeti la intervalon de validaj valoroj por ŜLOSILO"
-#: ../gio/gsettings-tool.c:575
+#: gio/gsettings-tool.c:641
#, fuzzy
#| msgid "Query the range of valid values for KEY"
msgid "Query the description for KEY"
msgstr "Informpeti la intervalon de validaj valoroj por ŜLOSILO"
-#: ../gio/gsettings-tool.c:581
+#: gio/gsettings-tool.c:647
msgid "Set the value of KEY to VALUE"
msgstr "Agordi la valoron de ŜLOSILO al VALORO"
-#: ../gio/gsettings-tool.c:582
+#: gio/gsettings-tool.c:648
msgid "SCHEMA[:PATH] KEY VALUE"
msgstr "SKEMO[:VOJO] ŜLOSILO VALORO"
-#: ../gio/gsettings-tool.c:587
+#: gio/gsettings-tool.c:653
msgid "Reset KEY to its default value"
msgstr "Reŝargi ŜLOSILO-n al ĝia defaŭlta valoro"
-#: ../gio/gsettings-tool.c:593
+#: gio/gsettings-tool.c:659
msgid "Reset all keys in SCHEMA to their defaults"
msgstr "Reŝargi ĉiujn ŝlosilojn en SKEMO al iliaj defaŭltoj"
-#: ../gio/gsettings-tool.c:599
+#: gio/gsettings-tool.c:665
msgid "Check if KEY is writable"
msgstr "Kontroli ĉu ŜLOSILO estas skribebla"
-#: ../gio/gsettings-tool.c:605
+#: gio/gsettings-tool.c:671
msgid ""
"Monitor KEY for changes.\n"
"If no KEY is specified, monitor all keys in SCHEMA.\n"
@@ -3562,11 +3818,11 @@ msgstr ""
"Se ŜLOSILO ne estas specifata, kontroladi ĉiujn ŝlosilojn en SKEMO.\n"
"Uzu ^C por haltigi kontroladon.\n"
-#: ../gio/gsettings-tool.c:608
+#: gio/gsettings-tool.c:674
msgid "SCHEMA[:PATH] [KEY]"
msgstr "SKEMO[:VOJO] [ŜLOSILO]"
-#: ../gio/gsettings-tool.c:620
+#: gio/gsettings-tool.c:686
#, fuzzy
#| msgid ""
#| "Usage:\n"
@@ -3635,7 +3891,7 @@ msgstr ""
"Uzu “gsettings help KOMANDO” por akiri helpon detale.\n"
"\n"
-#: ../gio/gsettings-tool.c:644
+#: gio/gsettings-tool.c:710
#, c-format
msgid ""
"Usage:\n"
@@ -3650,11 +3906,11 @@ msgstr ""
"%s\n"
"\n"
-#: ../gio/gsettings-tool.c:650
+#: gio/gsettings-tool.c:716
msgid " SCHEMADIR A directory to search for additional schemas\n"
msgstr " SCHEMADIR Dosierujo por serĉi pliajn skemojn\n"
-#: ../gio/gsettings-tool.c:658
+#: gio/gsettings-tool.c:724
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
@@ -3662,400 +3918,466 @@ msgstr ""
" SKEMO La nomo de la skemo\n"
" VOJO La vojo, por translokigeblaj skemoj\n"
-#: ../gio/gsettings-tool.c:663
+#: gio/gsettings-tool.c:729
msgid " KEY The (optional) key within the schema\n"
msgstr " ŜLOSILO La (laŭvola) ŝlosilo interne de la skemo\n"
-#: ../gio/gsettings-tool.c:667
+#: gio/gsettings-tool.c:733
msgid " KEY The key within the schema\n"
msgstr " ŜLOSILO La ŝlosilo interne de la skemo\n"
-#: ../gio/gsettings-tool.c:671
+#: gio/gsettings-tool.c:737
msgid " VALUE The value to set\n"
msgstr " VALUE La valoro agordota\n"
-#: ../gio/gsettings-tool.c:726
+#: gio/gsettings-tool.c:792
#, fuzzy, c-format
#| msgid "Could not open converter from '%s' to '%s'"
msgid "Could not load schemas from %s: %s\n"
msgstr "Ne eblas ŝarĝi skemon de %s: %s\n"
-#: ../gio/gsettings-tool.c:738
-#, c-format
-#| msgid "No schema files found: "
+#: gio/gsettings-tool.c:804
msgid "No schemas installed\n"
msgstr "Neniuj skemo instalita\n"
-#: ../gio/gsettings-tool.c:809
-#, c-format
+#: gio/gsettings-tool.c:883
msgid "Empty schema name given\n"
msgstr "Malplena skemo-nomo donita\n"
-#: ../gio/gsettings-tool.c:864
-#, fuzzy, c-format
-#| msgid "No such key '%s'\n"
+#: gio/gsettings-tool.c:938
+#, c-format
msgid "No such key “%s”\n"
-msgstr "Neniu tia ŝlosilo '%s'\n"
+msgstr "Neniu tia ŝlosilo “%s”\n"
-#: ../gio/gsocket.c:369
+#: gio/gsocket.c:419
msgid "Invalid socket, not initialized"
msgstr "Nevalida kontaktskatolo, ne pravalorizita"
-#: ../gio/gsocket.c:376
+#: gio/gsocket.c:426
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
msgstr "Nevalida kontaktskatolo, pravalorizo malsukcesis pro: %s"
-#: ../gio/gsocket.c:384
+#: gio/gsocket.c:434
msgid "Socket is already closed"
msgstr "Kontaktskatolo estas jam fermita"
-#: ../gio/gsocket.c:399 ../gio/gsocket.c:2754 ../gio/gsocket.c:3939
-#: ../gio/gsocket.c:3995
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "Kontaktoskatolo I/O eltempiĝis"
-#: ../gio/gsocket.c:531
+#: gio/gsocket.c:586
#, c-format
msgid "creating GSocket from fd: %s"
msgstr "kreanta GSocket de fd: %s"
-#: ../gio/gsocket.c:559 ../gio/gsocket.c:613 ../gio/gsocket.c:620
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Ne eblas krei kontaktskatolon: %s"
-#: ../gio/gsocket.c:613
+#: gio/gsocket.c:714
#, fuzzy
#| msgid "Unknown protocol was specified"
msgid "Unknown family was specified"
msgstr "Nekonata protokolo estis specifita"
-#: ../gio/gsocket.c:620
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Nekonata protokolo estis specifita"
-#: ../gio/gsocket.c:1111
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr ""
-#: ../gio/gsocket.c:1128
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
-#: ../gio/gsocket.c:1932
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "ne eblas akiri lokan adreson: %s"
-#: ../gio/gsocket.c:1975
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "ne eblas akiri foran adreson: %s"
-#: ../gio/gsocket.c:2041
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "ne eblas aŭskulti: %s"
-#: ../gio/gsocket.c:2140
-#, c-format
-msgid "Error binding to address: %s"
+#: gio/gsocket.c:2230
+#, fuzzy, c-format
+#| msgid "Error binding to address: %s"
+msgid "Error binding to address %s: %s"
msgstr "Eraro dum bindado al la adreso: %s"
-#: ../gio/gsocket.c:2255 ../gio/gsocket.c:2292
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Eraro kunigante plurelsendgrupon: %s"
-#: ../gio/gsocket.c:2256 ../gio/gsocket.c:2293
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Eraro lasante plurelsendgrupon: %s"
-#: ../gio/gsocket.c:2257
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Neniu subteno por fontspecifa plurelsendgrupo"
-#: ../gio/gsocket.c:2477
+#: gio/gsocket.c:2554
+#, fuzzy
+#| msgid "Unsupported socket address"
+msgid "Unsupported socket family"
+msgstr "Nesubtenata kontaktskatolo adreso"
+
+#: gio/gsocket.c:2579
+msgid "source-specific not an IPv4 address"
+msgstr ""
+
+#: gio/gsocket.c:2603
+#, c-format
+msgid "Interface name too long"
+msgstr "Interfaca nomo estas tro longa"
+
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
+#, c-format
+msgid "Interface not found: %s"
+msgstr ""
+
+#: gio/gsocket.c:2646
+#, fuzzy
+#| msgid "No support for source-specific multicast"
+msgid "No support for IPv4 source-specific multicast"
+msgstr "Neniu subteno por fontspecifa plurelsendgrupo"
+
+#: gio/gsocket.c:2704
+#, fuzzy
+#| msgid "No support for source-specific multicast"
+msgid "No support for IPv6 source-specific multicast"
+msgstr "Neniu subteno por fontspecifa plurelsendgrupo"
+
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Eraro dum akcepto de la konekto: %s"
-#: ../gio/gsocket.c:2598
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Farata konektado"
-#: ../gio/gsocket.c:2647
-#| msgid "Unable to get pending error: %s"
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Ne eblas akiri okazontan eraron: "
-#: ../gio/gsocket.c:2817
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Eraro dum ricevo de la datumaro: %s"
-#: ../gio/gsocket.c:3012
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Eraro dum sendado de la datumaro: %s"
-#: ../gio/gsocket.c:3199
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Ne eblas fermi kontaktskatolon: %s"
-#: ../gio/gsocket.c:3280
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Eraro malfermi kontaktskatolon: %s"
-#: ../gio/gsocket.c:3932
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Atendanta kontaktskatolon kondiĉon: %s"
-#: ../gio/gsocket.c:4404 ../gio/gsocket.c:4484 ../gio/gsocket.c:4662
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
+#, fuzzy, c-format
+#| msgid "Error sending message: %s"
+msgid "Unable to send message: %s"
+msgstr "Eraro dum sendado de la mesaĝo: %s"
+
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
+msgid "Message vectors too large"
+msgstr ""
+
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Eraro dum sendado de la mesaĝo: %s"
-#: ../gio/gsocket.c:4428
+#: gio/gsocket.c:5074
#, fuzzy
#| msgid "GSocketControlMessage not supported on windows"
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage ne estas subternata sur Vindozo"
-#: ../gio/gsocket.c:4881 ../gio/gsocket.c:4954 ../gio/gsocket.c:5180
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Eraro dum ricevo de la mesaĝo: %s"
-#: ../gio/gsocket.c:5452
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, fuzzy, c-format
#| msgid "Unable to create socket: %s"
msgid "Unable to read socket credentials: %s"
msgstr "Ne eblas krei kontaktskatolon: %s"
-#: ../gio/gsocket.c:5461
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials ne realigita por ĉi tiu mastruma sistemo"
-#: ../gio/gsocketclient.c:176
+#: gio/gsocketclient.c:193
#, c-format
msgid "Could not connect to proxy server %s: "
msgstr "Ne eblis konekti al prokura servilo %s: "
-#: ../gio/gsocketclient.c:190
+#: gio/gsocketclient.c:207
#, c-format
msgid "Could not connect to %s: "
msgstr "Ne eblis konekti al %s: "
-#: ../gio/gsocketclient.c:192
+#: gio/gsocketclient.c:209
msgid "Could not connect: "
msgstr "Ne eblis konekti: "
-#: ../gio/gsocketclient.c:1027 ../gio/gsocketclient.c:1599
-msgid "Unknown error on connect"
-msgstr "Nekonata eraro okazis je konektado"
-
-#: ../gio/gsocketclient.c:1081 ../gio/gsocketclient.c:1535
+#: gio/gsocketclient.c:1204 gio/gsocketclient.c:1807
#, fuzzy
#| msgid "Trying to proxy over non-TCP connection is not supported."
msgid "Proxying over a non-TCP connection is not supported."
msgstr "Provo prokuri tra ne-TCP-a konekto ne estas subtenata."
-#: ../gio/gsocketclient.c:1110 ../gio/gsocketclient.c:1561
+#: gio/gsocketclient.c:1236 gio/gsocketclient.c:1836
#, fuzzy, c-format
#| msgid "Proxy protocol '%s' is not supported."
msgid "Proxy protocol “%s” is not supported."
msgstr "Prokura protokolo “%s” ne estas subtenata."
-#: ../gio/gsocketlistener.c:218
+#: gio/gsocketlistener.c:232
msgid "Listener is already closed"
msgstr "Aŭskultilo estas jam fermita"
-#: ../gio/gsocketlistener.c:264
+#: gio/gsocketlistener.c:278
msgid "Added socket is closed"
msgstr "Aldonita kontaktskatolo estas fermita"
-#: ../gio/gsocks4aproxy.c:118
+#: gio/gsocks4aproxy.c:120
#, fuzzy, c-format
#| msgid "SOCKSv4 does not support IPv6 address '%s'"
msgid "SOCKSv4 does not support IPv6 address “%s”"
msgstr "SOCKSv4 ne subtenas IPv6-an adreson “%s”"
-#: ../gio/gsocks4aproxy.c:136
+#: gio/gsocks4aproxy.c:138
msgid "Username is too long for SOCKSv4 protocol"
msgstr "Uzantonomo estas tro longa por SOCKSv4-protokolo"
-#: ../gio/gsocks4aproxy.c:153
+#: gio/gsocks4aproxy.c:155
#, fuzzy, c-format
#| msgid "Hostname '%s' is too long for SOCKSv4 protocol"
msgid "Hostname “%s” is too long for SOCKSv4 protocol"
msgstr "Gastiga komputilonomo “%s” estas tro longa por SOCKSv4-protokolo"
-#: ../gio/gsocks4aproxy.c:179
+#: gio/gsocks4aproxy.c:181
msgid "The server is not a SOCKSv4 proxy server."
msgstr "La servilo ne estas SOCKSv4-prokura servilo."
-#: ../gio/gsocks4aproxy.c:186
+#: gio/gsocks4aproxy.c:188
msgid "Connection through SOCKSv4 server was rejected"
msgstr "Konekto tra SOCKSv4-servilo malakceptiĝis"
-#: ../gio/gsocks5proxy.c:153 ../gio/gsocks5proxy.c:324
-#: ../gio/gsocks5proxy.c:334
+#: gio/gsocks5proxy.c:155 gio/gsocks5proxy.c:340 gio/gsocks5proxy.c:350
msgid "The server is not a SOCKSv5 proxy server."
msgstr "La servilo ne estas SOCKSv5-prokura servilo."
-#: ../gio/gsocks5proxy.c:167
+#: gio/gsocks5proxy.c:169 gio/gsocks5proxy.c:186
msgid "The SOCKSv5 proxy requires authentication."
msgstr "La SOCKSv5-prokurilo bezonas aŭtentokontrolon."
-#: ../gio/gsocks5proxy.c:177
-msgid ""
-"The SOCKSv5 proxy requires an authentication method that is not supported by "
-"GLib."
-msgstr ""
-"La SOCKSv5-prokurilo benzonas aŭtentokontrolan metodon ke ne estas subtenita "
-"per GLib."
+#: gio/gsocks5proxy.c:193
+msgid "The SOCKSv5 proxy requires an authentication method that is not supported by GLib."
+msgstr "La SOCKSv5-prokurilo benzonas aŭtentokontrolan metodon ke ne estas subtenita per GLib."
-#: ../gio/gsocks5proxy.c:206
+#: gio/gsocks5proxy.c:222
msgid "Username or password is too long for SOCKSv5 protocol."
msgstr "Uzantonomo aŭ pasvorto estas tro longa por SOCKSv5-protokolo."
-#: ../gio/gsocks5proxy.c:236
+#: gio/gsocks5proxy.c:252
msgid "SOCKSv5 authentication failed due to wrong username or password."
msgstr "SOCKSv5-aŭtentokontrolo malsukcesis pro erara uzantonomo aŭ pasvorto."
-#: ../gio/gsocks5proxy.c:286
+#: gio/gsocks5proxy.c:302
#, fuzzy, c-format
#| msgid "Hostname '%s' is too long for SOCKSv5 protocol"
msgid "Hostname “%s” is too long for SOCKSv5 protocol"
msgstr "Gastiga komputilonomo “%s” estas tro longa por SOCKSv5-protokolo"
-#: ../gio/gsocks5proxy.c:348
+#: gio/gsocks5proxy.c:364
msgid "The SOCKSv5 proxy server uses unknown address type."
msgstr "La SOCKSv5-prokura servilo uzas adrestipon kiu estas nekonata."
-#: ../gio/gsocks5proxy.c:355
+#: gio/gsocks5proxy.c:371
msgid "Internal SOCKSv5 proxy server error."
msgstr "Interna SOCKSv5-prokur-servila eraro."
-#: ../gio/gsocks5proxy.c:361
+#: gio/gsocks5proxy.c:377
msgid "SOCKSv5 connection not allowed by ruleset."
msgstr "SOCKSv5-konekto ne estas permesita laŭ servila agordo."
-#: ../gio/gsocks5proxy.c:368
+#: gio/gsocks5proxy.c:384
msgid "Host unreachable through SOCKSv5 server."
msgstr "Gastiga komputilo estas ne kontaktebla per SOCKSv5-servilo."
-#: ../gio/gsocks5proxy.c:374
+#: gio/gsocks5proxy.c:390
msgid "Network unreachable through SOCKSv5 proxy."
msgstr "Loka reto estas ne kontaktebla per SOCKSv5-prokurilo."
-#: ../gio/gsocks5proxy.c:380
+#: gio/gsocks5proxy.c:396
msgid "Connection refused through SOCKSv5 proxy."
msgstr "Konekto ne estis akceptita per SOCKv5 prokurilo."
-#: ../gio/gsocks5proxy.c:386
+#: gio/gsocks5proxy.c:402
#, fuzzy
#| msgid "SOCKSv5 proxy does not support 'connect' command."
msgid "SOCKSv5 proxy does not support “connect” command."
msgstr "Komando “connect” ne estas subtenata de SOCKSv5-prokurilo."
-#: ../gio/gsocks5proxy.c:392
+#: gio/gsocks5proxy.c:408
msgid "SOCKSv5 proxy does not support provided address type."
msgstr "Provizita adrestipo ne estas subtenata de SOCKSv5-prokurilo."
-#: ../gio/gsocks5proxy.c:398
+#: gio/gsocks5proxy.c:414
msgid "Unknown SOCKSv5 proxy error."
msgstr "Nekonata SOCKv5 prokurilo eraro."
-#: ../gio/gthemedicon.c:518
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
+#, c-format
+msgid "Failed to create pipe for communicating with child process (%s)"
+msgstr "Malsukcesis krei dukton por komunikado kun procezido (%s)"
+
+#: gio/gtestdbus.c:621
+#, fuzzy, c-format
+#| msgid "Seek not supported on stream"
+msgid "Pipes are not supported in this platform"
+msgstr "Serĉo ne estas subtenata en fluo"
+
+#: gio/gthemedicon.c:597
#, fuzzy, c-format
#| msgid "Can't handle version %d of GThemedIcon encoding"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Ne eblas trakti version %d de GThemedIcon kodoprezento"
-#: ../gio/gthreadedresolver.c:118
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr ""
-#: ../gio/gthreadedresolver.c:213
+#: gio/gthreadedresolver.c:514
#, fuzzy, c-format
#| msgid "Error reverse-resolving '%s': %s"
msgid "Error reverse-resolving “%s”: %s"
msgstr "Eraro dum inversa serĉo “%s”: %s"
-#: ../gio/gthreadedresolver.c:550 ../gio/gthreadedresolver.c:630
-#: ../gio/gthreadedresolver.c:728 ../gio/gthreadedresolver.c:778
+#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
+#, c-format
+msgid "Error parsing DNS %s record: malformed DNS packet"
+msgstr ""
+
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr ""
-#: ../gio/gthreadedresolver.c:555 ../gio/gthreadedresolver.c:733
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, fuzzy, c-format
#| msgid "Temporarily unable to resolve '%s'"
msgid "Temporarily unable to resolve “%s”"
msgstr "Ne eblas solvi “%s” provizore"
-#: ../gio/gthreadedresolver.c:560 ../gio/gthreadedresolver.c:738
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, fuzzy, c-format
#| msgid "Error resolving '%s'"
msgid "Error resolving “%s”"
msgstr "Eraro dum solvado de “%s”"
-#: ../gio/gtlscertificate.c:250
-msgid "Cannot decrypt PEM-encoded private key"
-msgstr "Ne eblas malĉifri PEM-kodigitan privatan ŝlosilon"
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
+msgid "Malformed DNS packet"
+msgstr ""
-#: ../gio/gtlscertificate.c:255
+#: gio/gthreadedresolver.c:1089
+#, c-format
+msgid "Failed to parse DNS response for “%s”: "
+msgstr "Malsukcesis analizi DNS-respondon por “%s”: "
+
+#: gio/gtlscertificate.c:480
msgid "No PEM-encoded private key found"
msgstr "Neniu PEM-kodigita privata ŝlosilo trovita"
-#: ../gio/gtlscertificate.c:265
+#: gio/gtlscertificate.c:490
+msgid "Cannot decrypt PEM-encoded private key"
+msgstr "Ne eblas malĉifri PEM-kodigitan privatan ŝlosilon"
+
+#: gio/gtlscertificate.c:501
msgid "Could not parse PEM-encoded private key"
msgstr "Ne eblas analizi PEM-kodigitan privatan ŝlosilon"
-#: ../gio/gtlscertificate.c:290
+#: gio/gtlscertificate.c:528
msgid "No PEM-encoded certificate found"
msgstr "Neniu PEM-kodigita atestilo trovita"
-#: ../gio/gtlscertificate.c:299
+#: gio/gtlscertificate.c:537
msgid "Could not parse PEM-encoded certificate"
msgstr "Ne eblas analizi PEM-kodigitan atestilon"
-#: ../gio/gtlspassword.c:111
-msgid ""
-"This is the last chance to enter the password correctly before your access "
-"is locked out."
+#: gio/gtlscertificate.c:800
+msgid "The current TLS backend does not support PKCS #12"
msgstr ""
-"Ĉi tiu estas la fina ebleco enigi la pasvorton ĝuste antaŭ ol via aliro "
-"estos barita."
+
+#: gio/gtlscertificate.c:1017
+msgid "This GTlsBackend does not support creating PKCS #11 certificates"
+msgstr ""
+
+#: gio/gtlspassword.c:113
+msgid "This is the last chance to enter the password correctly before your access is locked out."
+msgstr "Ĉi tiu estas la fina ebleco enigi la pasvorton ĝuste antaŭ ol via aliro estos barita."
#. Translators: This is not the 'This is the last chance' string. It is
#. * displayed when more than one attempt is allowed.
-#: ../gio/gtlspassword.c:115
+#: gio/gtlspassword.c:117
#, fuzzy
-#| msgid ""
-#| "Several password entered have been incorrect, and your access will be "
-#| "locked out after further failures."
-msgid ""
-"Several passwords entered have been incorrect, and your access will be "
-"locked out after further failures."
-msgstr ""
-"Kelkaj eraraj pasvortoj enigitaj, kaj via aliro estos barita se pliaj "
-"malsukcesoj okazos."
+#| msgid "Several password entered have been incorrect, and your access will be locked out after further failures."
+msgid "Several passwords entered have been incorrect, and your access will be locked out after further failures."
+msgstr "Kelkaj eraraj pasvortoj enigitaj, kaj via aliro estos barita se pliaj malsukcesoj okazos."
-#: ../gio/gtlspassword.c:117
+#: gio/gtlspassword.c:119
msgid "The password entered is incorrect."
msgstr "La pasvorto enigita estas ne korekta."
-#: ../gio/gunixconnection.c:166 ../gio/gunixconnection.c:561
+#: gio/gunixconnection.c:127
+#, fuzzy
+#| msgid "Setting attribute %s not supported"
+msgid "Sending FD is not supported"
+msgstr "Agordi atributon %s ne subtenita"
+
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, fuzzy, c-format
#| msgid "Expecting 1 control message, got %d"
msgid "Expecting 1 control message, got %d"
@@ -4063,11 +4385,11 @@ msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "Atendita 1 stirmesaĝo, akirita %d"
msgstr[1] "Atendita 1 stirmesaĝo, akirita %d"
-#: ../gio/gunixconnection.c:182 ../gio/gunixconnection.c:573
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Ne atendita tipo de helpa datumaro"
-#: ../gio/gunixconnection.c:200
+#: gio/gunixconnection.c:216
#, fuzzy, c-format
#| msgid "Expecting one fd, but got %d\n"
msgid "Expecting one fd, but got %d\n"
@@ -4075,71 +4397,73 @@ msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "Atendita unu fd, sed akirita %d\n"
msgstr[1] "Atendita unu fd, sed akirita %d\n"
-#: ../gio/gunixconnection.c:219
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Akirita ne valida fd"
-#: ../gio/gunixconnection.c:355
+#: gio/gunixconnection.c:242
+#, fuzzy
+#| msgid "Setting attribute %s not supported"
+msgid "Receiving FD is not supported"
+msgstr "Agordi atributon %s ne subtenita"
+
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Eraro dum sendo de la akreditaĵoj: "
-#: ../gio/gunixconnection.c:503
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
-msgstr ""
-"Eraro kontrolanta ĉu SO_PASSCRED estas enŝaltita por kontaktskatolo: %s"
+msgstr "Eraro kontrolanta ĉu SO_PASSCRED estas enŝaltita por kontaktskatolo: %s"
-#: ../gio/gunixconnection.c:518
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Eraro dum enŝalto de SO_PASSCRED: %s"
-#: ../gio/gunixconnection.c:547
-msgid ""
-"Expecting to read a single byte for receiving credentials but read zero bytes"
-msgstr ""
-"Atendanta legi unuopan bajton por ricevi akreditaĵojn sed legis neniom da "
-"bajtoj"
+#: gio/gunixconnection.c:587
+msgid "Expecting to read a single byte for receiving credentials but read zero bytes"
+msgstr "Atendanta legi unuopan bajton por ricevi akreditaĵojn sed legis neniom da bajtoj"
-#: ../gio/gunixconnection.c:587
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Ne atendanta stirmesaĝon, sed akiris %d"
-#: ../gio/gunixconnection.c:611
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Eraro dum elŝalto de SO_PASSCRED: %s"
-#: ../gio/gunixinputstream.c:369 ../gio/gunixinputstream.c:390
+#: gio/gunixinputstream.c:359 gio/gunixinputstream.c:380
#, c-format
msgid "Error reading from file descriptor: %s"
msgstr "Eraro dum legado de la dosiernumero: %s"
-#: ../gio/gunixinputstream.c:423 ../gio/gunixoutputstream.c:409
-#: ../gio/gwin32inputstream.c:217 ../gio/gwin32outputstream.c:204
+#: gio/gunixinputstream.c:413 gio/gunixoutputstream.c:522
+#: gio/gwin32inputstream.c:219 gio/gwin32outputstream.c:206
#, c-format
msgid "Error closing file descriptor: %s"
msgstr "Eraro dum fermado de la dosiernumero: %s"
-#: ../gio/gunixmounts.c:2422 ../gio/gunixmounts.c:2475
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Dosiersistema radiko"
-#: ../gio/gunixoutputstream.c:355 ../gio/gunixoutputstream.c:376
+#: gio/gunixoutputstream.c:359 gio/gunixoutputstream.c:379
+#: gio/gunixoutputstream.c:466 gio/gunixoutputstream.c:486
+#: gio/gunixoutputstream.c:632
#, c-format
msgid "Error writing to file descriptor: %s"
msgstr "Eraro dum skribado de la dosiernumero: %s"
-#: ../gio/gunixsocketaddress.c:241
+#: gio/gunixsocketaddress.c:253
#, fuzzy
#| msgid "Abstract unix domain socket addresses not supported on this system"
msgid "Abstract UNIX domain socket addresses not supported on this system"
-msgstr ""
-"Abstraktaj uniksoretregionaj kontaktoskatolaj adresoj ne estas subtenataj "
-"sur ĉi tiu sistemo"
+msgstr "Abstraktaj uniksoretregionaj kontaktoskatolaj adresoj ne estas subtenataj sur ĉi tiu sistemo"
-#: ../gio/gvolume.c:437
+#: gio/gvolume.c:440
#, fuzzy
#| msgid "volume doesn't implement eject"
msgid "volume doesn’t implement eject"
@@ -4148,432 +4472,634 @@ msgstr "datumportilo ne realigas eject-an funkcion"
#. Translators: This is an error
#. * message for volume objects that
#. * don't implement any of eject or eject_with_operation.
-#: ../gio/gvolume.c:514
+#: gio/gvolume.c:517
#, fuzzy
#| msgid "volume doesn't implement eject or eject_with_operation"
msgid "volume doesn’t implement eject or eject_with_operation"
msgstr "datumportilo ne realigas eject-an aŭ eject_with_operation-an funkciojn"
-#: ../gio/gwin32inputstream.c:185
+#: gio/gwin32inputstream.c:187
#, c-format
msgid "Error reading from handle: %s"
msgstr "Eraro dum lego de dosiernumero: %s"
-#: ../gio/gwin32inputstream.c:232 ../gio/gwin32outputstream.c:219
+#: gio/gwin32inputstream.c:234 gio/gwin32outputstream.c:221
#, c-format
msgid "Error closing handle: %s"
msgstr "Eraro dum fermo de dosiernumero: %s"
-#: ../gio/gwin32outputstream.c:172
+#: gio/gwin32outputstream.c:174
#, c-format
msgid "Error writing to handle: %s"
msgstr "Eraro dum skribo al dosiernumero: %s"
-#: ../gio/gzlibcompressor.c:394 ../gio/gzlibdecompressor.c:347
+#: gio/gzlibcompressor.c:396 gio/gzlibdecompressor.c:349
msgid "Not enough memory"
msgstr "Memoro ne sufiĉas"
-#: ../gio/gzlibcompressor.c:401 ../gio/gzlibdecompressor.c:354
+#: gio/gzlibcompressor.c:403 gio/gzlibdecompressor.c:356
#, c-format
msgid "Internal error: %s"
msgstr "Interna eraro: %s"
-#: ../gio/gzlibcompressor.c:414 ../gio/gzlibdecompressor.c:368
+#: gio/gzlibcompressor.c:416 gio/gzlibdecompressor.c:370
msgid "Need more input"
msgstr "Bezonas pli da enigo"
-#: ../gio/gzlibdecompressor.c:340
+#: gio/gzlibdecompressor.c:342
msgid "Invalid compressed data"
msgstr "Nevalida densigita datumaro"
-#: ../gio/tests/gdbus-daemon.c:18
+#: gio/tests/gdbus-daemon.c:18
msgid "Address to listen on"
msgstr ""
-#: ../gio/tests/gdbus-daemon.c:19
+#: gio/tests/gdbus-daemon.c:19
msgid "Ignored, for compat with GTestDbus"
msgstr ""
-#: ../gio/tests/gdbus-daemon.c:20
+#: gio/tests/gdbus-daemon.c:20
#, fuzzy
#| msgid "Print help"
msgid "Print address"
msgstr "Presi helpon"
-#: ../gio/tests/gdbus-daemon.c:21
+#: gio/tests/gdbus-daemon.c:21
msgid "Print address in shell mode"
msgstr ""
-#: ../gio/tests/gdbus-daemon.c:28
+#: gio/tests/gdbus-daemon.c:28
msgid "Run a dbus service"
-msgstr ""
+msgstr "Lanĉi dbus-servon"
-#: ../gio/tests/gdbus-daemon.c:42
-#, c-format
+#: gio/tests/gdbus-daemon.c:42
msgid "Wrong args\n"
-msgstr ""
+msgstr "Malĝustaj argumentoj\n"
-#: ../glib/gbookmarkfile.c:754
+#: glib/gbookmarkfile.c:861
#, fuzzy, c-format
#| msgid "Unexpected attribute '%s' for element '%s'"
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Neatendita atributo “%s” pri elemento “%s”"
-#: ../glib/gbookmarkfile.c:765 ../glib/gbookmarkfile.c:836
-#: ../glib/gbookmarkfile.c:846 ../glib/gbookmarkfile.c:953
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, fuzzy, c-format
#| msgid "Attribute '%s' of element '%s' not found"
msgid "Attribute “%s” of element “%s” not found"
msgstr "Atributo “%s” de elemento “%s” ne trovita"
-#: ../glib/gbookmarkfile.c:1123 ../glib/gbookmarkfile.c:1188
-#: ../glib/gbookmarkfile.c:1252 ../glib/gbookmarkfile.c:1262
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, fuzzy, c-format
#| msgid "Unexpected tag '%s', tag '%s' expected"
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Etikedo “%s” estas neatendita, etikedo “%s” estas atendita"
-#: ../glib/gbookmarkfile.c:1148 ../glib/gbookmarkfile.c:1162
-#: ../glib/gbookmarkfile.c:1230
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, fuzzy, c-format
#| msgid "Unexpected tag '%s' inside '%s'"
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Neatendita etikedo “%s” interne de “%s”"
-#: ../glib/gbookmarkfile.c:1756
+#: glib/gbookmarkfile.c:1717
+#, c-format
+msgid "Invalid date/time ‘%s’ in bookmark file"
+msgstr ""
+
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Neniu valida legosigna dosiero estis trovita en datumaj dosierujoj"
-#: ../glib/gbookmarkfile.c:1957
+#: glib/gbookmarkfile.c:2157
#, c-format
-#| msgid "A bookmark for URI '%s' already exists"
msgid "A bookmark for URI “%s” already exists"
msgstr "Legosigno por URI “%s” jam ekzistas"
-#: ../glib/gbookmarkfile.c:2003 ../glib/gbookmarkfile.c:2161
-#: ../glib/gbookmarkfile.c:2246 ../glib/gbookmarkfile.c:2326
-#: ../glib/gbookmarkfile.c:2411 ../glib/gbookmarkfile.c:2494
-#: ../glib/gbookmarkfile.c:2572 ../glib/gbookmarkfile.c:2651
-#: ../glib/gbookmarkfile.c:2693 ../glib/gbookmarkfile.c:2790
-#: ../glib/gbookmarkfile.c:2910 ../glib/gbookmarkfile.c:3100
-#: ../glib/gbookmarkfile.c:3176 ../glib/gbookmarkfile.c:3344
-#: ../glib/gbookmarkfile.c:3433 ../glib/gbookmarkfile.c:3522
-#: ../glib/gbookmarkfile.c:3638
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, fuzzy, c-format
#| msgid "No bookmark found for URI '%s'"
msgid "No bookmark found for URI “%s”"
msgstr "Neniu legosigno trovita por URI “%s”"
-#: ../glib/gbookmarkfile.c:2335
+#: glib/gbookmarkfile.c:2538
#, fuzzy, c-format
#| msgid "No MIME type defined in the bookmark for URI '%s'"
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Neniu MIME-tipo estas difinita en la legosigno por URI “%s”"
-#: ../glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2623
#, fuzzy, c-format
#| msgid "No private flag has been defined in bookmark for URI '%s'"
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Neniu privata flago estis difinita en legosigno por URI “%s”"
-#: ../glib/gbookmarkfile.c:2799
+#: glib/gbookmarkfile.c:3164
#, fuzzy, c-format
#| msgid "No groups set in bookmark for URI '%s'"
msgid "No groups set in bookmark for URI “%s”"
msgstr "Neniuj grupoj agorditaj en legosigno por URI-o “%s”"
-#: ../glib/gbookmarkfile.c:3197 ../glib/gbookmarkfile.c:3354
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, fuzzy, c-format
#| msgid "No application with name '%s' registered a bookmark for '%s'"
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Neniu aplikaĵo kun nomo “%s” registris legosignon por “%s”"
-#: ../glib/gbookmarkfile.c:3377
+#: glib/gbookmarkfile.c:3863
#, fuzzy, c-format
#| msgid "Failed to expand exec line '%s' with URI '%s'"
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Malsukcesis ekspansii plenuman linion '%s' per URI '%s'"
-#: ../glib/gconvert.c:477 ../glib/gutf8.c:852 ../glib/gutf8.c:1064
-#: ../glib/gutf8.c:1201 ../glib/gutf8.c:1305
+#: glib/gconvert.c:469
+#, fuzzy
+#| msgid "Invalid sequence in conversion input"
+msgid "Unrepresentable character in conversion input"
+msgstr "Nevalida sekvenco en konverta enigo"
+
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Parta karaktrosekvenco ĉe enigofino"
-#: ../glib/gconvert.c:742
+#: glib/gconvert.c:767
#, fuzzy, c-format
#| msgid "Cannot convert fallback '%s' to codeset '%s'"
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Ne eblas konverti la retrodefaŭlton '%s' al kodaro '%s'"
-#: ../glib/gconvert.c:1513
+#: glib/gconvert.c:939
+#, fuzzy
+#| msgid "Invalid byte sequence in conversion input"
+msgid "Embedded NUL byte in conversion input"
+msgstr "Nevalida bajtosekvenco en konverta enigo"
+
+#: glib/gconvert.c:960
+#, fuzzy
+#| msgid "Invalid byte sequence in conversion input"
+msgid "Embedded NUL byte in conversion output"
+msgstr "Nevalida bajtosekvenco en konverta enigo"
+
+#: glib/gconvert.c:1698
#, fuzzy, c-format
#| msgid "The URI '%s' is not an absolute URI using the \"file\" scheme"
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "La URI '%s' ne estas absolutan URI uzanta la \"file\"-skemon"
-#: ../glib/gconvert.c:1523
-#, fuzzy, c-format
-#| msgid "The local file URI '%s' may not include a '#'"
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "La loka dosiera URI '%s' devas ne havi la '#'"
-
-#: ../glib/gconvert.c:1540
+#: glib/gconvert.c:1728
#, fuzzy, c-format
#| msgid "The URI '%s' is invalid"
msgid "The URI “%s” is invalid"
msgstr "La URI '%s' estas nevalida"
-#: ../glib/gconvert.c:1552
+#: glib/gconvert.c:1741
#, fuzzy, c-format
#| msgid "The hostname of the URI '%s' is invalid"
msgid "The hostname of the URI “%s” is invalid"
msgstr "La gastiga komputilnomo de la URI '%s' ne estas valida"
-#: ../glib/gconvert.c:1568
+#: glib/gconvert.c:1758
#, fuzzy, c-format
#| msgid "The URI '%s' contains invalidly escaped characters"
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "La URI '%s' havas karaktrojn kiuj estas eskapataj nevalide"
-#: ../glib/gconvert.c:1640
+#: glib/gconvert.c:1832
#, fuzzy, c-format
#| msgid "The pathname '%s' is not an absolute path"
msgid "The pathname “%s” is not an absolute path"
msgstr "La vojnomo '%s' ne estas absoluta vojo"
#. Translators: this is the preferred format for expressing the date and the time
-#: ../glib/gdatetime.c:202
+#: glib/gdatetime.c:228
msgctxt "GDateTime"
msgid "%a %b %e %H:%M:%S %Y"
msgstr "%a %b %e %H:%M:%S %Y"
#. Translators: this is the preferred format for expressing the date
-#: ../glib/gdatetime.c:205
+#: glib/gdatetime.c:231
msgctxt "GDateTime"
msgid "%m/%d/%y"
msgstr "%F"
#. Translators: this is the preferred format for expressing the time
-#: ../glib/gdatetime.c:208
+#: glib/gdatetime.c:234
msgctxt "GDateTime"
msgid "%H:%M:%S"
msgstr "%H:%M:%S"
#. Translators: this is the preferred format for expressing 12 hour time
-#: ../glib/gdatetime.c:211
+#: glib/gdatetime.c:237
msgctxt "GDateTime"
msgid "%I:%M:%S %p"
msgstr "%I:%M:%S %p"
-#: ../glib/gdatetime.c:224
+#. Translators: Some languages (Baltic, Slavic, Greek, and some more)
+#. * need different grammatical forms of month names depending on whether
+#. * they are standalone or in a complete date context, with the day
+#. * number. Some other languages may prefer starting with uppercase when
+#. * they are standalone and with lowercase when they are in a complete
+#. * date context. Here are full month names in a form appropriate when
+#. * they are used standalone. If your system is Linux with the glibc
+#. * version 2.27 (released Feb 1, 2018) or newer or if it is from the BSD
+#. * family (which includes OS X) then you can refer to the date command
+#. * line utility and see what the command `date +%OB' produces. Also in
+#. * the latest Linux the command `locale alt_mon' in your native locale
+#. * produces a complete list of month names almost ready to copy and
+#. * paste here. Note that in most of the languages (western European,
+#. * non-European) there is no difference between the standalone and
+#. * complete date form.
+#.
+#: glib/gdatetime.c:276
msgctxt "full month name"
msgid "January"
msgstr "januaro"
-#: ../glib/gdatetime.c:226
+#: glib/gdatetime.c:278
msgctxt "full month name"
msgid "February"
msgstr "februaro"
-#: ../glib/gdatetime.c:228
+#: glib/gdatetime.c:280
msgctxt "full month name"
msgid "March"
msgstr "marto"
-#: ../glib/gdatetime.c:230
+#: glib/gdatetime.c:282
msgctxt "full month name"
msgid "April"
msgstr "aprilo"
-#: ../glib/gdatetime.c:232
+#: glib/gdatetime.c:284
msgctxt "full month name"
msgid "May"
msgstr "majo"
-#: ../glib/gdatetime.c:234
+#: glib/gdatetime.c:286
msgctxt "full month name"
msgid "June"
msgstr "junio"
-#: ../glib/gdatetime.c:236
+#: glib/gdatetime.c:288
msgctxt "full month name"
msgid "July"
msgstr "julio"
-#: ../glib/gdatetime.c:238
+#: glib/gdatetime.c:290
msgctxt "full month name"
msgid "August"
msgstr "aŭgusto"
-#: ../glib/gdatetime.c:240
+#: glib/gdatetime.c:292
msgctxt "full month name"
msgid "September"
msgstr "septembro"
-#: ../glib/gdatetime.c:242
+#: glib/gdatetime.c:294
msgctxt "full month name"
msgid "October"
msgstr "oktobro"
-#: ../glib/gdatetime.c:244
+#: glib/gdatetime.c:296
msgctxt "full month name"
msgid "November"
msgstr "novembro"
-#: ../glib/gdatetime.c:246
+#: glib/gdatetime.c:298
msgctxt "full month name"
msgid "December"
msgstr "decembro"
-#: ../glib/gdatetime.c:261
+#. Translators: Some languages need different grammatical forms of
+#. * month names depending on whether they are standalone or in a complete
+#. * date context, with the day number. Some may prefer starting with
+#. * uppercase when they are standalone and with lowercase when they are
+#. * in a full date context. However, as these names are abbreviated
+#. * the grammatical difference is visible probably only in Belarusian
+#. * and Russian. In other languages there is no difference between
+#. * the standalone and complete date form when they are abbreviated.
+#. * If your system is Linux with the glibc version 2.27 (released
+#. * Feb 1, 2018) or newer then you can refer to the date command line
+#. * utility and see what the command `date +%Ob' produces. Also in
+#. * the latest Linux the command `locale ab_alt_mon' in your native
+#. * locale produces a complete list of month names almost ready to copy
+#. * and paste here. Note that this feature is not yet supported by any
+#. * other platform. Here are abbreviated month names in a form
+#. * appropriate when they are used standalone.
+#.
+#: glib/gdatetime.c:330
msgctxt "abbreviated month name"
msgid "Jan"
msgstr "jan"
-#: ../glib/gdatetime.c:263
+#: glib/gdatetime.c:332
msgctxt "abbreviated month name"
msgid "Feb"
msgstr "feb"
-#: ../glib/gdatetime.c:265
+#: glib/gdatetime.c:334
msgctxt "abbreviated month name"
msgid "Mar"
msgstr "mar"
-#: ../glib/gdatetime.c:267
+#: glib/gdatetime.c:336
msgctxt "abbreviated month name"
msgid "Apr"
msgstr "apr"
-#: ../glib/gdatetime.c:269
+#: glib/gdatetime.c:338
msgctxt "abbreviated month name"
msgid "May"
msgstr "maj"
-#: ../glib/gdatetime.c:271
+#: glib/gdatetime.c:340
msgctxt "abbreviated month name"
msgid "Jun"
msgstr "jun"
-#: ../glib/gdatetime.c:273
+#: glib/gdatetime.c:342
msgctxt "abbreviated month name"
msgid "Jul"
msgstr "jul"
-#: ../glib/gdatetime.c:275
+#: glib/gdatetime.c:344
msgctxt "abbreviated month name"
msgid "Aug"
msgstr "aŭg"
-#: ../glib/gdatetime.c:277
+#: glib/gdatetime.c:346
msgctxt "abbreviated month name"
msgid "Sep"
msgstr "sep"
-#: ../glib/gdatetime.c:279
+#: glib/gdatetime.c:348
msgctxt "abbreviated month name"
msgid "Oct"
msgstr "okt"
-#: ../glib/gdatetime.c:281
+#: glib/gdatetime.c:350
msgctxt "abbreviated month name"
msgid "Nov"
msgstr "nov"
-#: ../glib/gdatetime.c:283
+#: glib/gdatetime.c:352
msgctxt "abbreviated month name"
msgid "Dec"
msgstr "dec"
-#: ../glib/gdatetime.c:298
+#: glib/gdatetime.c:367
msgctxt "full weekday name"
msgid "Monday"
msgstr "lundo"
-#: ../glib/gdatetime.c:300
+#: glib/gdatetime.c:369
msgctxt "full weekday name"
msgid "Tuesday"
msgstr "mardo"
-#: ../glib/gdatetime.c:302
+#: glib/gdatetime.c:371
msgctxt "full weekday name"
msgid "Wednesday"
msgstr "merkredo"
-#: ../glib/gdatetime.c:304
+#: glib/gdatetime.c:373
msgctxt "full weekday name"
msgid "Thursday"
msgstr "ĵaŭdo"
-#: ../glib/gdatetime.c:306
+#: glib/gdatetime.c:375
msgctxt "full weekday name"
msgid "Friday"
msgstr "vendredo"
-#: ../glib/gdatetime.c:308
+#: glib/gdatetime.c:377
msgctxt "full weekday name"
msgid "Saturday"
msgstr "sabato"
-#: ../glib/gdatetime.c:310
+#: glib/gdatetime.c:379
msgctxt "full weekday name"
msgid "Sunday"
msgstr "dimanĉo"
-#: ../glib/gdatetime.c:325
+#: glib/gdatetime.c:394
msgctxt "abbreviated weekday name"
msgid "Mon"
msgstr "lun"
-#: ../glib/gdatetime.c:327
+#: glib/gdatetime.c:396
msgctxt "abbreviated weekday name"
msgid "Tue"
msgstr "mar"
-#: ../glib/gdatetime.c:329
+#: glib/gdatetime.c:398
msgctxt "abbreviated weekday name"
msgid "Wed"
msgstr "mer"
-#: ../glib/gdatetime.c:331
+#: glib/gdatetime.c:400
msgctxt "abbreviated weekday name"
msgid "Thu"
msgstr "ĵaŭ"
-#: ../glib/gdatetime.c:333
+#: glib/gdatetime.c:402
msgctxt "abbreviated weekday name"
msgid "Fri"
msgstr "ven"
-#: ../glib/gdatetime.c:335
+#: glib/gdatetime.c:404
msgctxt "abbreviated weekday name"
msgid "Sat"
msgstr "sab"
-#: ../glib/gdatetime.c:337
+#: glib/gdatetime.c:406
msgctxt "abbreviated weekday name"
msgid "Sun"
msgstr "dim"
+#. Translators: Some languages need different grammatical forms of
+#. * month names depending on whether they are standalone or in a full
+#. * date context, with the day number. Some may prefer starting with
+#. * uppercase when they are standalone and with lowercase when they are
+#. * in a full date context. Here are full month names in a form
+#. * appropriate when they are used in a full date context, with the
+#. * day number. If your system is Linux with the glibc version 2.27
+#. * (released Feb 1, 2018) or newer or if it is from the BSD family
+#. * (which includes OS X) then you can refer to the date command line
+#. * utility and see what the command `date +%B' produces. Also in
+#. * the latest Linux the command `locale mon' in your native locale
+#. * produces a complete list of month names almost ready to copy and
+#. * paste here. In older Linux systems due to a bug the result is
+#. * incorrect in some languages. Note that in most of the languages
+#. * (western European, non-European) there is no difference between the
+#. * standalone and complete date form.
+#.
+#: glib/gdatetime.c:470
+msgctxt "full month name with day"
+msgid "January"
+msgstr "januaro"
+
+#: glib/gdatetime.c:472
+msgctxt "full month name with day"
+msgid "February"
+msgstr "februaro"
+
+#: glib/gdatetime.c:474
+msgctxt "full month name with day"
+msgid "March"
+msgstr "marto"
+
+#: glib/gdatetime.c:476
+msgctxt "full month name with day"
+msgid "April"
+msgstr "aprilo"
+
+#: glib/gdatetime.c:478
+msgctxt "full month name with day"
+msgid "May"
+msgstr "majo"
+
+#: glib/gdatetime.c:480
+msgctxt "full month name with day"
+msgid "June"
+msgstr "junio"
+
+#: glib/gdatetime.c:482
+msgctxt "full month name with day"
+msgid "July"
+msgstr "julio"
+
+#: glib/gdatetime.c:484
+msgctxt "full month name with day"
+msgid "August"
+msgstr "aŭgusto"
+
+#: glib/gdatetime.c:486
+msgctxt "full month name with day"
+msgid "September"
+msgstr "septembro"
+
+#: glib/gdatetime.c:488
+msgctxt "full month name with day"
+msgid "October"
+msgstr "oktobro"
+
+#: glib/gdatetime.c:490
+msgctxt "full month name with day"
+msgid "November"
+msgstr "novembro"
+
+#: glib/gdatetime.c:492
+msgctxt "full month name with day"
+msgid "December"
+msgstr "decembro"
+
+#. Translators: Some languages need different grammatical forms of
+#. * month names depending on whether they are standalone or in a full
+#. * date context, with the day number. Some may prefer starting with
+#. * uppercase when they are standalone and with lowercase when they are
+#. * in a full date context. Here are abbreviated month names in a form
+#. * appropriate when they are used in a full date context, with the
+#. * day number. However, as these names are abbreviated the grammatical
+#. * difference is visible probably only in Belarusian and Russian.
+#. * In other languages there is no difference between the standalone
+#. * and complete date form when they are abbreviated. If your system
+#. * is Linux with the glibc version 2.27 (released Feb 1, 2018) or newer
+#. * then you can refer to the date command line utility and see what the
+#. * command `date +%b' produces. Also in the latest Linux the command
+#. * `locale abmon' in your native locale produces a complete list of
+#. * month names almost ready to copy and paste here. In other systems
+#. * due to a bug the result is incorrect in some languages.
+#.
+#: glib/gdatetime.c:557
+msgctxt "abbreviated month name with day"
+msgid "Jan"
+msgstr "jan"
+
+#: glib/gdatetime.c:559
+msgctxt "abbreviated month name with day"
+msgid "Feb"
+msgstr "feb"
+
+#: glib/gdatetime.c:561
+msgctxt "abbreviated month name with day"
+msgid "Mar"
+msgstr "mar"
+
+#: glib/gdatetime.c:563
+msgctxt "abbreviated month name with day"
+msgid "Apr"
+msgstr "apr"
+
+#: glib/gdatetime.c:565
+msgctxt "abbreviated month name with day"
+msgid "May"
+msgstr "maj"
+
+#: glib/gdatetime.c:567
+msgctxt "abbreviated month name with day"
+msgid "Jun"
+msgstr "jun"
+
+#: glib/gdatetime.c:569
+msgctxt "abbreviated month name with day"
+msgid "Jul"
+msgstr "jul"
+
+#: glib/gdatetime.c:571
+msgctxt "abbreviated month name with day"
+msgid "Aug"
+msgstr "aŭg"
+
+#: glib/gdatetime.c:573
+msgctxt "abbreviated month name with day"
+msgid "Sep"
+msgstr "sep"
+
+#: glib/gdatetime.c:575
+msgctxt "abbreviated month name with day"
+msgid "Oct"
+msgstr "okt"
+
+#: glib/gdatetime.c:577
+msgctxt "abbreviated month name with day"
+msgid "Nov"
+msgstr "nov"
+
+#: glib/gdatetime.c:579
+msgctxt "abbreviated month name with day"
+msgid "Dec"
+msgstr "dec"
+
#. Translators: 'before midday' indicator
-#: ../glib/gdatetime.c:354
+#: glib/gdatetime.c:596
msgctxt "GDateTime"
msgid "AM"
msgstr "ATM"
#. Translators: 'after midday' indicator
-#: ../glib/gdatetime.c:357
+#: glib/gdatetime.c:599
msgctxt "GDateTime"
msgid "PM"
msgstr "PTM"
-#: ../glib/gdir.c:155
+#: glib/gdir.c:158
#, fuzzy, c-format
#| msgid "Error opening directory '%s': %s"
msgid "Error opening directory “%s”: %s"
msgstr "Eraro dum malfermado de la dosierujo '%s': %s"
-#: ../glib/gfileutils.c:706 ../glib/gfileutils.c:798
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, fuzzy, c-format
#| msgid "Could not allocate %lu bytes to read file \"%s\""
msgid "Could not allocate %lu byte to read file “%s”"
@@ -4581,1301 +5107,1408 @@ msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "Ne eblis akiri %lu bajtojn por legi la dosieron \"%s\""
msgstr[1] "Ne eblis akiri %lu bajtojn por legi la dosieron \"%s\""
-#: ../glib/gfileutils.c:723
+#: glib/gfileutils.c:770
#, fuzzy, c-format
#| msgid "Error reading file %s: %s"
msgid "Error reading file “%s”: %s"
msgstr "Eraro dum legado de la dosiero %s: %s"
-#: ../glib/gfileutils.c:759
+#: glib/gfileutils.c:806
#, fuzzy, c-format
#| msgid "File \"%s\" is too large"
msgid "File “%s” is too large"
msgstr "Dosiero \"%s\" estas tro granda"
-#: ../glib/gfileutils.c:823
+#: glib/gfileutils.c:870
#, fuzzy, c-format
#| msgid "Failed to read from file '%s': %s"
msgid "Failed to read from file “%s”: %s"
msgstr "Malsukcesis legi el dosiero '%s': %s"
-#: ../glib/gfileutils.c:871 ../glib/gfileutils.c:943
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, fuzzy, c-format
#| msgid "Failed to open file '%s': %s"
msgid "Failed to open file “%s”: %s"
msgstr "Malsukcesis malfermi dosieron '%s': %s"
-#: ../glib/gfileutils.c:883
+#: glib/gfileutils.c:933
#, fuzzy, c-format
#| msgid "Failed to get attributes of file '%s': fstat() failed: %s"
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Malsukcesis akiri atributojn de dosiero '%s': fstat() malsukcesis: %s"
-#: ../glib/gfileutils.c:913
+#: glib/gfileutils.c:964
#, fuzzy, c-format
#| msgid "Failed to open file '%s': fdopen() failed: %s"
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Malsukcesis malfermi dosieron '%s': fdopen() malsukcesis: %s"
-#: ../glib/gfileutils.c:1012
+#: glib/gfileutils.c:1065
#, fuzzy, c-format
#| msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
-msgstr ""
-"Malsukcesis alinomi dosieron de '%s' al '%s': g_rename() malsukcesis: %s"
+msgstr "Malsukcesis alinomi dosieron de '%s' al '%s': g_rename() malsukcesis: %s"
-#: ../glib/gfileutils.c:1047 ../glib/gfileutils.c:1554
-#, fuzzy, c-format
-#| msgid "Failed to create file '%s': %s"
-msgid "Failed to create file “%s”: %s"
-msgstr "Malsukcesis krei dosieron '%s': %s"
-
-#: ../glib/gfileutils.c:1074
+#: glib/gfileutils.c:1179
#, c-format
-#| msgid "Failed to write file '%s': fwrite() failed: %s"
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Malsukcesis skribi dosieron “%s”: write() malsukcesis: %s"
-#: ../glib/gfileutils.c:1117
+#: glib/gfileutils.c:1200
#, fuzzy, c-format
#| msgid "Failed to write file '%s': fsync() failed: %s"
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Skribi dosieron malsukcesis '%s': fsync() malsukcesis: %s"
-#: ../glib/gfileutils.c:1241
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
+#, fuzzy, c-format
+#| msgid "Failed to create file '%s': %s"
+msgid "Failed to create file “%s”: %s"
+msgstr "Malsukcesis krei dosieron '%s': %s"
+
+#: glib/gfileutils.c:1406
#, fuzzy, c-format
#| msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "Ne eblas forigi ekzistatan dosieron '%s': g_unlink() malsukcesis: %s"
-#: ../glib/gfileutils.c:1520
+#: glib/gfileutils.c:1741
#, fuzzy, c-format
#| msgid "Template '%s' invalid, should not contain a '%s'"
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Ŝablono '%s' ne estas valida, ĝi devas ne havi '%s'"
-#: ../glib/gfileutils.c:1533
+#: glib/gfileutils.c:1754
#, fuzzy, c-format
#| msgid "Template '%s' doesn't contain XXXXXX"
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Ŝablono '%s' ne havas XXXXXX"
-#: ../glib/gfileutils.c:2058
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, fuzzy, c-format
#| msgid "Failed to read the symbolic link '%s': %s"
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Malsukcesis legi la simbolan ligilon '%s': %s"
-#: ../glib/giochannel.c:1388
+#: glib/giochannel.c:1408
#, fuzzy, c-format
#| msgid "Could not open converter from '%s' to '%s': %s"
msgid "Could not open converter from “%s” to “%s”: %s"
msgstr "Ne eblis malfermi konvertilon de '%s al '%s: %s"
-#: ../glib/giochannel.c:1733
+#: glib/giochannel.c:1761
#, fuzzy
#| msgid "Can't do a raw read in g_io_channel_read_line_string"
msgid "Can’t do a raw read in g_io_channel_read_line_string"
msgstr "Ne eblas fari krudan legon en g_io_channel_read_line_string"
-#: ../glib/giochannel.c:1780 ../glib/giochannel.c:2038
-#: ../glib/giochannel.c:2125
+#: glib/giochannel.c:1808 glib/giochannel.c:2066 glib/giochannel.c:2153
msgid "Leftover unconverted data in read buffer"
msgstr "Kroma nekonvertita datumaro en legbufro"
-#: ../glib/giochannel.c:1861 ../glib/giochannel.c:1938
+#: glib/giochannel.c:1889 glib/giochannel.c:1966
msgid "Channel terminates in a partial character"
msgstr "Kanalo finas per parta karaktro"
-#: ../glib/giochannel.c:1924
+#: glib/giochannel.c:1952
#, fuzzy
#| msgid "Can't do a raw read in g_io_channel_read_to_end"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Ne eblas fari krudan legon en g_io_channel_read_to_end"
-#: ../glib/gkeyfile.c:736
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Valida ŝlosilodosiero ne povas esti trovita en serĉaj dosierujoj"
-#: ../glib/gkeyfile.c:772
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Ne estas regula dosiero"
-#: ../glib/gkeyfile.c:1212
+#: glib/gkeyfile.c:1297
#, fuzzy, c-format
-#| msgid ""
-#| "Key file contains line '%s' which is not a key-value pair, group, or "
-#| "comment"
-msgid ""
-"Key file contains line “%s” which is not a key-value pair, group, or comment"
-msgstr ""
-"Ŝlosilodosiero havas linion '%s' kiu ne estas ŝlosilo-valoro paro, grupo, aŭ "
-"komento"
+#| msgid "Key file contains line '%s' which is not a key-value pair, group, or comment"
+msgid "Key file contains line “%s” which is not a key-value pair, group, or comment"
+msgstr "Ŝlosilodosiero havas linion '%s' kiu ne estas ŝlosilo-valoro paro, grupo, aŭ komento"
-#: ../glib/gkeyfile.c:1269
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Nevalida grupa nomo: %s"
-#: ../glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Ŝlosilodosiero ne komenciĝas per grupo"
-#: ../glib/gkeyfile.c:1317
+#: glib/gkeyfile.c:1402
#, c-format
-msgid "Invalid key name: %s"
-msgstr "Nevalida ŝlosilonomo: %s"
+msgid "Invalid key name: %.*s"
+msgstr "Nevalida ŝlosilonomo: %.*s"
-#: ../glib/gkeyfile.c:1344
+#: glib/gkeyfile.c:1430
#, fuzzy, c-format
#| msgid "Key file contains unsupported encoding '%s'"
msgid "Key file contains unsupported encoding “%s”"
msgstr "Ŝlosilodosiero havas nesubtenatan kodoprezenton '%s'"
-#: ../glib/gkeyfile.c:1587 ../glib/gkeyfile.c:1760 ../glib/gkeyfile.c:3140
-#: ../glib/gkeyfile.c:3203 ../glib/gkeyfile.c:3333 ../glib/gkeyfile.c:3463
-#: ../glib/gkeyfile.c:3607 ../glib/gkeyfile.c:3836 ../glib/gkeyfile.c:3903
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, fuzzy, c-format
#| msgid "Key file does not have group '%s'"
msgid "Key file does not have group “%s”"
msgstr "Ŝlosilodosiero ne havas grupon '%s'"
-#: ../glib/gkeyfile.c:1715
+#: glib/gkeyfile.c:1806
#, fuzzy, c-format
#| msgid "Key file does not have key '%s' in group '%s'"
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Ŝlosilodosiero ne havas ŝlosilon '%s' en grupo '%s'"
-#: ../glib/gkeyfile.c:1877 ../glib/gkeyfile.c:1993
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, fuzzy, c-format
#| msgid "Key file contains key '%s' with value '%s' which is not UTF-8"
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "Ŝlosildosiero havas ŝlosilon '%s' kun valoro '%s' kiu ne estas UTF-8"
-#: ../glib/gkeyfile.c:1897 ../glib/gkeyfile.c:2013 ../glib/gkeyfile.c:2382
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, fuzzy, c-format
-#| msgid ""
-#| "Key file contains key '%s' which has a value that cannot be interpreted."
-msgid ""
-"Key file contains key “%s” which has a value that cannot be interpreted."
+#| msgid "Key file contains key '%s' which has a value that cannot be interpreted."
+msgid "Key file contains key “%s” which has a value that cannot be interpreted."
msgstr "Ŝlosildosiero havas ŝlosilon '%s' kiu havas neinterpeteblan valoron."
-#: ../glib/gkeyfile.c:2600 ../glib/gkeyfile.c:2969
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, fuzzy, c-format
-#| msgid ""
-#| "Key file contains key '%s' in group '%s' which has a value that cannot be "
-#| "interpreted."
-msgid ""
-"Key file contains key “%s” in group “%s” which has a value that cannot be "
-"interpreted."
-msgstr ""
-"Ŝlosilodosiero havas ŝlosilon '%s' en grupo '%s' kiu havas neinterpeteblan "
-"valoron."
+#| msgid "Key file contains key '%s' in group '%s' which has a value that cannot be interpreted."
+msgid "Key file contains key “%s” in group “%s” which has a value that cannot be interpreted."
+msgstr "Ŝlosilodosiero havas ŝlosilon '%s' en grupo '%s' kiu havas neinterpeteblan valoron."
-#: ../glib/gkeyfile.c:2678 ../glib/gkeyfile.c:2755
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
-#| msgid "Key '%s' in group '%s' has value '%s' where %s was expected"
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Ŝlosilo “%s” en grupo “%s” havas valoron “%s” kie %s estis atendita"
-#: ../glib/gkeyfile.c:4143
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "Ŝlosilodosiero havas kodŝanĝan signon ĉe fino de linio"
-#: ../glib/gkeyfile.c:4165
+#: glib/gkeyfile.c:4378
#, fuzzy, c-format
#| msgid "Key file contains invalid escape sequence '%s'"
msgid "Key file contains invalid escape sequence “%s”"
msgstr "La ŝlosildosiero havas nevalidan kodŝanĝan sekvencon '%s'"
-#: ../glib/gkeyfile.c:4307
+#: glib/gkeyfile.c:4530
#, fuzzy, c-format
#| msgid "Value '%s' cannot be interpreted as a number."
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Valoro '%s' neinterpreteblas kiel nombro."
-#: ../glib/gkeyfile.c:4321
+#: glib/gkeyfile.c:4544
#, fuzzy, c-format
#| msgid "Integer value '%s' out of range"
msgid "Integer value “%s” out of range"
msgstr "Entjera valoro '%s' estas ekster la intervalo"
-#: ../glib/gkeyfile.c:4354
+#: glib/gkeyfile.c:4577
#, fuzzy, c-format
#| msgid "Value '%s' cannot be interpreted as a float number."
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Valoro '%s' neinterpreteblas kiel glita nombro."
-#: ../glib/gkeyfile.c:4393
+#: glib/gkeyfile.c:4616
#, fuzzy, c-format
#| msgid "Value '%s' cannot be interpreted as a boolean."
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Valoro '%s' neinterpreteblas kiel bulea."
-#: ../glib/gmappedfile.c:129
+#: glib/gmappedfile.c:135
#, fuzzy, c-format
#| msgid "Failed to get attributes of file '%s%s%s%s': fstat() failed: %s"
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
-msgstr ""
-"Malsukcesis akiri atributojn de dosiero '%s%s%s%s': fstat() malsukcesis: %s"
+msgstr "Malsukcesis akiri atributojn de dosiero '%s%s%s%s': fstat() malsukcesis: %s"
-#: ../glib/gmappedfile.c:195
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Malsukcesis mapigi dosieron %s%s%s%s: mmap() malsukcesis: %s"
-#: ../glib/gmappedfile.c:262
+#: glib/gmappedfile.c:268
#, fuzzy, c-format
#| msgid "Failed to open file '%s': open() failed: %s"
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Malsukcesis malfermi dosieron '%s': open() malsukcesis: %s"
-#: ../glib/gmarkup.c:397 ../glib/gmarkup.c:439
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Eraro sur linio %d karaktro %d: "
-#: ../glib/gmarkup.c:461 ../glib/gmarkup.c:544
-#, c-format
-msgid "Invalid UTF-8 encoded text in name - not valid '%s'"
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
+#, fuzzy, c-format
+#| msgid "Invalid UTF-8 encoded text in name - not valid '%s'"
+msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Nevalida UTF-8-kodigita teksto en nomo - ne valida '%s'"
-#: ../glib/gmarkup.c:472
+#: glib/gmarkup.c:473
#, c-format
-#| msgid "'%s' is not a valid name "
-msgid "'%s' is not a valid name"
-msgstr "'%s' ne estas valida nomo"
+msgid "“%s” is not a valid name"
+msgstr "“%s” ne estas valida nomo"
-#: ../glib/gmarkup.c:488
-#, c-format
-#| msgid "'%s' is not a valid name: '%c' "
-msgid "'%s' is not a valid name: '%c'"
+#: glib/gmarkup.c:489
+#, fuzzy, c-format
+#| msgid "'%s' is not a valid name: '%c'"
+msgid "“%s” is not a valid name: “%c”"
msgstr "'%s' ne estas valida nomo: '%c'"
-#: ../glib/gmarkup.c:598
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Eraro sur linio %d: %s"
-#: ../glib/gmarkup.c:675
-#, c-format
-msgid ""
-"Failed to parse '%-.*s', which should have been a digit inside a character "
-"reference (&#234; for example) - perhaps the digit is too large"
-msgstr ""
-"Malsukcesis analizi '%-.*s', kiu devus esti cifero en karaktra referenco ("
-"ekzemple &#234) - la cifero estas eble tro granda"
+#: glib/gmarkup.c:690
+#, fuzzy, c-format
+#| msgid "Failed to parse '%-.*s', which should have been a digit inside a character reference (&#234; for example) - perhaps the digit is too large"
+msgid "Failed to parse “%-.*s”, which should have been a digit inside a character reference (&#234; for example) — perhaps the digit is too large"
+msgstr "Malsukcesis analizi '%-.*s', kiu devus esti cifero en karaktra referenco (ekzemple &#234) - la cifero estas eble tro granda"
-#: ../glib/gmarkup.c:687
-msgid ""
-"Character reference did not end with a semicolon; most likely you used an "
-"ampersand character without intending to start an entity - escape ampersand "
-"as &amp;"
-msgstr ""
-"Karaktra referenco ne finis per punktokomo; vi verŝajne uzas kaj-signon sen "
-"intenco komencigi eron - nuligu kaj-signon kiel &amp;"
+#: glib/gmarkup.c:702
+#, fuzzy
+#| msgid "Character reference did not end with a semicolon; most likely you used an ampersand character without intending to start an entity - escape ampersand as &amp;"
+msgid "Character reference did not end with a semicolon; most likely you used an ampersand character without intending to start an entity — escape ampersand as &amp;"
+msgstr "Karaktra referenco ne finis per punktokomo; vi verŝajne uzas kaj-signon sen intenco komencigi eron - nuligu kaj-signon kiel &amp;"
-#: ../glib/gmarkup.c:713
-#, c-format
-msgid "Character reference '%-.*s' does not encode a permitted character"
+#: glib/gmarkup.c:728
+#, fuzzy, c-format
+#| msgid "Character reference '%-.*s' does not encode a permitted character"
+msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Karaktra referenco '%-.*s' ne enkodigas permesatan karaktron"
-#: ../glib/gmarkup.c:751
-msgid ""
-"Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
-msgstr ""
-"Malplena ento '&;' vidita; validaj entoj estas : &amp; &quot; &lt; &gt; "
-"&apos;"
+#: glib/gmarkup.c:766
+#, fuzzy
+#| msgid "Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
+msgid "Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
+msgstr "Malplena ento '&;' vidita; validaj entoj estas : &amp; &quot; &lt; &gt; &apos;"
-#: ../glib/gmarkup.c:759
-#, c-format
-msgid "Entity name '%-.*s' is not known"
+#: glib/gmarkup.c:774
+#, fuzzy, c-format
+#| msgid "Entity name '%-.*s' is not known"
+msgid "Entity name “%-.*s” is not known"
msgstr "Ento-nomo '%-.*s' ne estas konata"
-#: ../glib/gmarkup.c:764
-msgid ""
-"Entity did not end with a semicolon; most likely you used an ampersand "
-"character without intending to start an entity - escape ampersand as &amp;"
-msgstr ""
-"Ento ne finiĝis per punktokomo; vi eble uzis kaj-signon sen intenco "
-"komencigi enton - nuligu kaj-signon kiel &amp;"
+#: glib/gmarkup.c:779
+#, fuzzy
+#| msgid "Entity did not end with a semicolon; most likely you used an ampersand character without intending to start an entity - escape ampersand as &amp;"
+msgid "Entity did not end with a semicolon; most likely you used an ampersand character without intending to start an entity — escape ampersand as &amp;"
+msgstr "Ento ne finiĝis per punktokomo; vi eble uzis kaj-signon sen intenco komencigi enton - nuligu kaj-signon kiel &amp;"
-#: ../glib/gmarkup.c:1170
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Dokumento devas komenci per elemento (ekz. <book>)"
-#: ../glib/gmarkup.c:1210
-#, c-format
-msgid ""
-"'%s' is not a valid character following a '<' character; it may not begin an "
-"element name"
-msgstr ""
-"'%s' ne estas valida karaktro post '<' karaktro; ĝi ne povas komenci "
-"elementan nomon"
+#: glib/gmarkup.c:1233
+#, fuzzy, c-format
+#| msgid "'%s' is not a valid character following a '<' character; it may not begin an element name"
+msgid "“%s” is not a valid character following a “<” character; it may not begin an element name"
+msgstr "“%s” ne estas valida karaktro post '<' karaktro; ĝi ne povas komenci elementan nomon"
-#: ../glib/gmarkup.c:1252
-#, c-format
-msgid ""
-"Odd character '%s', expected a '>' character to end the empty-element tag "
-"'%s'"
-msgstr ""
-"Malbona karaktro '%s', karaktro '>' atendita por fini la malplena-elementon "
-"etikedon '%s'"
+#: glib/gmarkup.c:1276
+#, fuzzy, c-format
+#| msgid "Odd character '%s', expected a '>' character to end the empty-element tag '%s'"
+msgid "Odd character “%s”, expected a “>” character to end the empty-element tag “%s”"
+msgstr "Malbona karaktro “%s”, karaktro '>' atendita por fini la malplena-elementon etikedon '%s'"
-#: ../glib/gmarkup.c:1333
-#, c-format
-msgid ""
-"Odd character '%s', expected a '=' after attribute name '%s' of element '%s'"
-msgstr ""
-"Malbona karaktro '%s', karaktro '=' estas atendita post atributnomo '%s' de "
-"elemento '%s'"
+#: glib/gmarkup.c:1346
+#, fuzzy, c-format
+#| msgid "Unexpected attribute '%s' for element '%s'"
+msgid "Too many attributes in element “%s”"
+msgstr "Neatendita atributo “%s” pri elemento “%s”"
-#: ../glib/gmarkup.c:1374
-#, c-format
-msgid ""
-"Odd character '%s', expected a '>' or '/' character to end the start tag of "
-"element '%s', or optionally an attribute; perhaps you used an invalid "
-"character in an attribute name"
-msgstr ""
-"Malbona karaktro '%s', '>' aŭ '/' estas atendita por fini la komencan "
-"etikedon de elemento '%s', aŭ laŭvole atributon; eble vi uzas nevalidan "
-"karaktron en atributnomo"
+#: glib/gmarkup.c:1366
+#, fuzzy, c-format
+#| msgid "Odd character '%s', expected a '=' after attribute name '%s' of element '%s'"
+msgid "Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
+msgstr "Malbona karaktro “%s”, karaktro '=' estas atendita post atributnomo '%s' de elemento '%s'"
-#: ../glib/gmarkup.c:1418
-#, c-format
-msgid ""
-"Odd character '%s', expected an open quote mark after the equals sign when "
-"giving value for attribute '%s' of element '%s'"
-msgstr ""
-"Malbona karaktro '%s', maldekstra citilo estas atendita post la egalsigno "
-"kiam donanta valoron por atributo '%s' de elemento '%s'"
+#: glib/gmarkup.c:1408
+#, fuzzy, c-format
+#| msgid "Odd character '%s', expected a '>' or '/' character to end the start tag of element '%s', or optionally an attribute; perhaps you used an invalid character in an attribute name"
+msgid "Odd character “%s”, expected a “>” or “/” character to end the start tag of element “%s”, or optionally an attribute; perhaps you used an invalid character in an attribute name"
+msgstr "Malbona karaktro “%s”, '>' aŭ '/' estas atendita por fini la komencan etikedon de elemento '%s', aŭ laŭvole atributon; eble vi uzas nevalidan karaktron en atributnomo"
-#: ../glib/gmarkup.c:1551
-#, c-format
-msgid ""
-"'%s' is not a valid character following the characters '</'; '%s' may not "
-"begin an element name"
-msgstr ""
-"'%s' ne estas valida karaktro post la karaktroj '</'; '%s' ne povas komenci "
-"elementnomon"
+#: glib/gmarkup.c:1453
+#, fuzzy, c-format
+#| msgid "Odd character '%s', expected an open quote mark after the equals sign when giving value for attribute '%s' of element '%s'"
+msgid "Odd character “%s”, expected an open quote mark after the equals sign when giving value for attribute “%s” of element “%s”"
+msgstr "Malbona karaktro “%s”, maldekstra citilo estas atendita post la egalsigno kiam donanta valoron por atributo '%s' de elemento '%s'"
-#: ../glib/gmarkup.c:1587
-#, c-format
-msgid ""
-"'%s' is not a valid character following the close element name '%s'; the "
-"allowed character is '>'"
-msgstr ""
-"'%s' ne estas valida karaktro post la fermiga elementnomo '%s'; la permesata "
-"karaktro estas '>'"
+#: glib/gmarkup.c:1587
+#, fuzzy, c-format
+#| msgid "'%s' is not a valid character following the characters '</'; '%s' may not begin an element name"
+msgid "“%s” is not a valid character following the characters “</”; “%s” may not begin an element name"
+msgstr "“%s” ne estas valida karaktro post la karaktroj '</'; '%s' ne povas komenci elementnomon"
-#: ../glib/gmarkup.c:1598
-#, c-format
-msgid "Element '%s' was closed, no element is currently open"
-msgstr "Elemento '%s' estis fermita, neniu elemento estas malferma nun"
+#: glib/gmarkup.c:1625
+#, fuzzy, c-format
+#| msgid "'%s' is not a valid character following the close element name '%s'; the allowed character is '>'"
+msgid "“%s” is not a valid character following the close element name “%s”; the allowed character is “>”"
+msgstr "“%s” ne estas valida karaktro post la fermiga elementnomo '%s'; la permesata karaktro estas '>'"
-#: ../glib/gmarkup.c:1607
-#, c-format
-msgid "Element '%s' was closed, but the currently open element is '%s'"
-msgstr "Elemento '%s' estis fermita, sed la malfermita elemento estas '%s' nun"
+#: glib/gmarkup.c:1637
+#, fuzzy, c-format
+#| msgid "Element '%s' was closed, no element is currently open"
+msgid "Element “%s” was closed, no element is currently open"
+msgstr "Elemento “%s” estis fermita, neniu elemento estas malferma nun"
+
+#: glib/gmarkup.c:1646
+#, fuzzy, c-format
+#| msgid "Element '%s' was closed, but the currently open element is '%s'"
+msgid "Element “%s” was closed, but the currently open element is “%s”"
+msgstr "Elemento “%s” estis fermita, sed la malfermita elemento estas '%s' nun"
-#: ../glib/gmarkup.c:1760
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Dokumento estis malpena aŭ ĝi havis nur blankspacon"
-#: ../glib/gmarkup.c:1774
-msgid "Document ended unexpectedly just after an open angle bracket '<'"
+#: glib/gmarkup.c:1813
+#, fuzzy
+#| msgid "Document ended unexpectedly just after an open angle bracket '<'"
+msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "Dokumento finiĝis neatendite tuj post maldekstra angulkrampon '<'"
-#: ../glib/gmarkup.c:1782 ../glib/gmarkup.c:1827
-#, c-format
-msgid ""
-"Document ended unexpectedly with elements still open - '%s' was the last "
-"element opened"
-msgstr ""
-"Dokumento finiĝis neatendite kun elementoj ankoraŭ malfermaj - '%s' estis la "
-"elemento malfermita laste"
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
+#, fuzzy, c-format
+#| msgid "Document ended unexpectedly with elements still open - '%s' was the last element opened"
+msgid "Document ended unexpectedly with elements still open — “%s” was the last element opened"
+msgstr "Dokumento finiĝis neatendite kun elementoj ankoraŭ malfermaj - “%s” estis la elemento malfermita laste"
-#: ../glib/gmarkup.c:1790
+#: glib/gmarkup.c:1829
#, c-format
-msgid ""
-"Document ended unexpectedly, expected to see a close angle bracket ending "
-"the tag <%s/>"
-msgstr ""
-"Dokumento finiĝis neatendite, atendis vidi etikedon finiĝanta per dekstra "
-"angulkrampo <%s/>"
+msgid "Document ended unexpectedly, expected to see a close angle bracket ending the tag <%s/>"
+msgstr "Dokumento finiĝis neatendite, atendis vidi etikedon finiĝanta per dekstra angulkrampo <%s/>"
-#: ../glib/gmarkup.c:1796
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Dokumento finiĝis neatendite interne de elementnomo"
-#: ../glib/gmarkup.c:1802
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Dokumento finiĝis neatendite interne de atributnomo"
-#: ../glib/gmarkup.c:1807
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Dokumento finiĝis neatendite interne de elemento-malfermanta etikedo."
-#: ../glib/gmarkup.c:1813
-msgid ""
-"Document ended unexpectedly after the equals sign following an attribute "
-"name; no attribute value"
-msgstr ""
-"Dokumento finiĝis neatendite post la egalsigno sekvanta atributnomo; neniu "
-"atributvaloro"
+#: glib/gmarkup.c:1852
+msgid "Document ended unexpectedly after the equals sign following an attribute name; no attribute value"
+msgstr "Dokumento finiĝis neatendite post la egalsigno sekvanta atributnomo; neniu atributvaloro"
-#: ../glib/gmarkup.c:1820
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Dokumento finiĝis neatendite dum interne de atributvaloro"
-#: ../glib/gmarkup.c:1836
-#, c-format
-msgid "Document ended unexpectedly inside the close tag for element '%s'"
-msgstr "Dokumento finiĝis interne de la ferma etikedo por elemento '%s'"
+#: glib/gmarkup.c:1876
+#, fuzzy, c-format
+#| msgid "Document ended unexpectedly inside the close tag for element '%s'"
+msgid "Document ended unexpectedly inside the close tag for element “%s”"
+msgstr "Dokumento finiĝis interne de la ferma etikedo por elemento “%s”"
+
+#: glib/gmarkup.c:1880
+#, fuzzy
+#| msgid "Document ended unexpectedly inside the close tag for element '%s'"
+msgid "Document ended unexpectedly inside the close tag for an unopened element"
+msgstr "Dokumento finiĝis interne de la ferma etikedo por elemento “%s”"
-#: ../glib/gmarkup.c:1842
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr "Dokumento finiĝis neatendite interne de komento aŭ traktada instrukcio"
-#: ../glib/goption.c:861
-#, fuzzy
-#| msgid "[OPTION...]"
+#: glib/goption.c:875
msgid "[OPTION…]"
msgstr "[OPCIO...]"
-#: ../glib/goption.c:977
+#: glib/goption.c:991
msgid "Help Options:"
msgstr "Helpaj Opcioj:"
-#: ../glib/goption.c:978
+#: glib/goption.c:992
msgid "Show help options"
msgstr "Montri helpajn opciojn"
-#: ../glib/goption.c:984
+#: glib/goption.c:998
msgid "Show all help options"
msgstr "Montri ĉiujn helpan opciojn"
-#: ../glib/goption.c:1047
+#: glib/goption.c:1061
msgid "Application Options:"
msgstr "Aplikaĵaj Opcioj:"
-#: ../glib/goption.c:1049
-#| msgid "Help Options:"
+#: glib/goption.c:1063
msgid "Options:"
msgstr "Opcioj:"
-#: ../glib/goption.c:1113 ../glib/goption.c:1183
-#, fuzzy, c-format
-#| msgid "Cannot parse integer value '%s' for %s"
+#: glib/goption.c:1127 glib/goption.c:1197
+#, c-format
msgid "Cannot parse integer value “%s” for %s"
-msgstr "Ne eblas analizi entjeran valoron '%s' de %s"
+msgstr "Ne eblas analizi entjeran valoron “%s” por %s"
-#: ../glib/goption.c:1123 ../glib/goption.c:1191
+#: glib/goption.c:1137 glib/goption.c:1205
#, fuzzy, c-format
#| msgid "Integer value '%s' for %s out of range"
msgid "Integer value “%s” for %s out of range"
-msgstr "Entjera valoro '%s' de %s estas ekster la intervalo"
+msgstr "Entjera valoro “%s” de %s estas ekster la intervalo"
-#: ../glib/goption.c:1148
+#: glib/goption.c:1162
#, fuzzy, c-format
#| msgid "Cannot parse double value '%s' for %s"
msgid "Cannot parse double value “%s” for %s"
-msgstr "Ne eblas analizi duoblan valoron '%s' de %s"
+msgstr "Ne eblas analizi duoblan valoron “%s” de %s"
-#: ../glib/goption.c:1156
+#: glib/goption.c:1170
#, fuzzy, c-format
#| msgid "Double value '%s' for %s out of range"
msgid "Double value “%s” for %s out of range"
-msgstr "Duobla valoro '%s' de %s estas ekster la intervalo"
+msgstr "Duobla valoro “%s” de %s estas ekster la intervalo"
-#: ../glib/goption.c:1448 ../glib/goption.c:1527
+#: glib/goption.c:1462 glib/goption.c:1541
#, c-format
msgid "Error parsing option %s"
msgstr "Eraro dum sintaksa analizo de la opcio %s"
-#: ../glib/goption.c:1558 ../glib/goption.c:1671
+#: glib/goption.c:1563 glib/goption.c:1676
#, c-format
msgid "Missing argument for %s"
msgstr "Mankas argumento de %s"
-#: ../glib/goption.c:2132
+#: glib/goption.c:2186
#, c-format
msgid "Unknown option %s"
msgstr "Nekonata opcio %s"
-#: ../glib/gregex.c:257
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "difektita objekto"
-#: ../glib/gregex.c:259
-msgid "internal error or corrupted object"
-msgstr "interna eraro aŭ difektita objekto"
-
-#: ../glib/gregex.c:261
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "memormanko"
-#: ../glib/gregex.c:266
-msgid "backtracking limit reached"
-msgstr "retrospurada limo estas atingata"
+#: glib/gregex.c:497
+msgid "internal error"
+msgstr "interna eraro"
-#: ../glib/gregex.c:278 ../glib/gregex.c:286
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "la modelo havas erojn kiuj ne estas subtenataj por parta kongruado"
-#: ../glib/gregex.c:280
-msgid "internal error"
-msgstr "interna eraro"
-
-#: ../glib/gregex.c:288
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr "retroreferencoj kiel kondiĉoj ne estas subtenataj por parta kongruado"
-#: ../glib/gregex.c:297
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "rekurslimo atingita"
-#: ../glib/gregex.c:299
-msgid "invalid combination of newline flags"
-msgstr "nevalida kombinaĵo de novlinioj flagoj"
-
-#: ../glib/gregex.c:301
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "malbona deŝovo"
-#: ../glib/gregex.c:303
-msgid "short utf8"
-msgstr "mallonga utf8"
-
-#: ../glib/gregex.c:305
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr ""
-#: ../glib/gregex.c:309
+#. should not happen in GRegex since we check modes before each match
+#: glib/gregex.c:514
+msgid "matching mode is requested that was not compiled for JIT"
+msgstr ""
+
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "nekonata eraro"
-#: ../glib/gregex.c:329
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ ĉe fino de modelo"
-#: ../glib/gregex.c:332
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c ĉe fino de modelo"
-#: ../glib/gregex.c:335
+#: glib/gregex.c:565
#, fuzzy
#| msgid "unrecognized character follows \\"
msgid "unrecognized character following \\"
msgstr "nerekonata karaktro sekvas \\"
-#: ../glib/gregex.c:338
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "nombroj neordigitaj en {} kvantoro"
-#: ../glib/gregex.c:341
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "nombro tro granda en {} kvantoro"
-#: ../glib/gregex.c:344
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "mankas finiga ] por karaktro-klaso"
-#: ../glib/gregex.c:347
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "nevalida kodŝanĝa sekvenco en karaktro-klaso"
-#: ../glib/gregex.c:350
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "intervalo ne ordigita en karaktro-klaso"
-#: ../glib/gregex.c:353
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "nenio ripetebla"
-#: ../glib/gregex.c:357
-msgid "unexpected repeat"
-msgstr "neatendita ripeto"
-
-#: ../glib/gregex.c:360
-#| msgid "unrecognized character after (?"
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "nekonata karaktro post (? aŭ (?-"
-#: ../glib/gregex.c:363
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX nomitaj klasoj estas subtenataj nur ene de klaso"
-#: ../glib/gregex.c:366
+#: glib/gregex.c:602
+msgid "POSIX collating elements are not supported"
+msgstr "POSIX kunmetigaj elementoj ne estas subtenataj"
+
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "mankas finiga )"
-#: ../glib/gregex.c:369
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "referenco al ne ekzistanta submodelo"
-#: ../glib/gregex.c:372
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "manka ) post komento"
-#: ../glib/gregex.c:375
-#, fuzzy
-#| msgid "regular expression too large"
+#: glib/gregex.c:620
msgid "regular expression is too large"
-msgstr "regula esprima tro granda"
-
-#: ../glib/gregex.c:378
-msgid "failed to get memory"
-msgstr "malsukcesis akiri memoron"
+msgstr "regula esprima estas tro granda"
-#: ../glib/gregex.c:382
-msgid ") without opening ("
-msgstr ") sen komenca ("
-
-#: ../glib/gregex.c:386
-msgid "code overflow"
-msgstr "koda troo"
-
-#: ../glib/gregex.c:390
-msgid "unrecognized character after (?<"
-msgstr "nekonata karaktro post (?<"
+#: glib/gregex.c:624
+msgid "malformed number or name after (?("
+msgstr "misformata nombro aŭ nomo post (?("
-#: ../glib/gregex.c:393
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "retrorigarda aserto ne havas fiksitan longon"
-#: ../glib/gregex.c:396
-msgid "malformed number or name after (?("
-msgstr "misformata nombro aŭ nomo post (?("
-
-#: ../glib/gregex.c:399
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "kondiĉa grupo havas pli ol du branĉigojn"
-#: ../glib/gregex.c:402
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "aserto atendata post (?("
-#. translators: '(?R' and '(?[+-]digits' are both meant as (groups of)
-#. * sequences here, '(?-54' would be an example for the second group.
-#.
-#: ../glib/gregex.c:409
-msgid "(?R or (?[+-]digits must be followed by )"
-msgstr "(?R aŭ (?[+-]ciferoj devas esti sekvataj de )"
+#: glib/gregex.c:640
+msgid "a numbered reference must not be zero"
+msgstr ""
-#: ../glib/gregex.c:412
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "nekonata POSIX klasnomo"
-#: ../glib/gregex.c:415
-msgid "POSIX collating elements are not supported"
-msgstr "POSIX kunmetigaj elementoj ne estas subtenataj"
-
-#: ../glib/gregex.c:418
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "karaktro-valoro en \\x{...} sekvenco estas tro granda"
-#: ../glib/gregex.c:421
-msgid "invalid condition (?(0)"
-msgstr "nevalida kondiĉo (?(0)"
-
-#: ../glib/gregex.c:424
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C ne estas permesata en retrorigarda aserto"
-#: ../glib/gregex.c:431
-msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
-msgstr ""
-
-#: ../glib/gregex.c:434
-msgid "recursive call could loop indefinitely"
-msgstr "rikura voko povus iteracii senfine"
-
-#: ../glib/gregex.c:438
-msgid "unrecognized character after (?P"
-msgstr "nekonata karaktro post (?P"
-
-#: ../glib/gregex.c:441
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "manka finilo en submodela nomo"
-#: ../glib/gregex.c:444
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "du nomitaj submodeloj havas la saman nomon"
-#: ../glib/gregex.c:447
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "misformita \\P aŭ \\p sekvenco"
-#: ../glib/gregex.c:450
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "nekonata eco-nomo post \\P aŭ \\p"
-#: ../glib/gregex.c:453
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "submodela nomo estas tro longa (maksimume 32 karaktroj)"
-#: ../glib/gregex.c:456
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "tro multaj nomitaj submodeloj (maksimume 10.000)"
-#: ../glib/gregex.c:459
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "okuma valoro estas pli granda ol \\377"
-#: ../glib/gregex.c:463
-msgid "overran compiling workspace"
-msgstr "troplenigis kompilada laborspaco"
-
-#: ../glib/gregex.c:467
-msgid "previously-checked referenced subpattern not found"
-msgstr "antaŭe kontrolita referencita submodelo ne trovita"
-
-#: ../glib/gregex.c:470
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "DIFINI grupo havas pli ol unu branĉo"
-#: ../glib/gregex.c:473
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "nekoheraj NOVLINIO-j opcioj"
-#: ../glib/gregex.c:476
+#: glib/gregex.c:693
#, fuzzy
-#| msgid ""
-#| "\\g is not followed by a braced name or an optionally braced non-zero "
-#| "number"
-msgid ""
-"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
-"or by a plain number"
-msgstr ""
-"\\g ne estas sekvata de nomo inter kunigaj krampoj, aŭ de nenula nombro "
-"malnepre en kunigaj krampoj"
+#| msgid "\\g is not followed by a braced name or an optionally braced non-zero number"
+msgid "\\g is not followed by a braced, angle-bracketed, or quoted name or number, or by a plain number"
+msgstr "\\g ne estas sekvata de nomo inter kunigaj krampoj, aŭ de nenula nombro malnepre en kunigaj krampoj"
-#: ../glib/gregex.c:480
-msgid "a numbered reference must not be zero"
-msgstr ""
-
-#: ../glib/gregex.c:483
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr ""
-#: ../glib/gregex.c:486
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr ""
-#: ../glib/gregex.c:489
+#: glib/gregex.c:706
msgid "number is too big"
-msgstr ""
+msgstr "numero estas tro granda"
-#: ../glib/gregex.c:492
+#: glib/gregex.c:710
#, fuzzy
#| msgid "missing terminator in subpattern name"
msgid "missing subpattern name after (?&"
msgstr "manka finilo en submodela nomo post (?&"
-#: ../glib/gregex.c:495
-#, fuzzy
-#| msgid "digit expected"
-msgid "digit expected after (?+"
-msgstr "cifero atendata post (?+"
-
-#: ../glib/gregex.c:498
-msgid "] is an invalid data character in JavaScript compatibility mode"
-msgstr ""
-
-#: ../glib/gregex.c:501
+#: glib/gregex.c:714
#, fuzzy
#| msgid "two named subpatterns have the same name"
msgid "different names for subpatterns of the same number are not allowed"
msgstr "du nomitaj submodeloj havas la saman nomon"
-#: ../glib/gregex.c:504
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr ""
-#: ../glib/gregex.c:507
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr ""
-#: ../glib/gregex.c:510
+#: glib/gregex.c:726
#, fuzzy
-#| msgid ""
-#| "\\g is not followed by a braced name or an optionally braced non-zero "
-#| "number"
+#| msgid "\\g is not followed by a braced name or an optionally braced non-zero number"
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
-msgstr ""
-"\\g ne estas sekvata de nomo inter kunigaj krampoj, aŭ de nenula nombro "
-"malnepre en kunigaj krampoj"
+msgstr "\\g ne estas sekvata de nomo inter kunigaj krampoj, aŭ de nenula nombro malnepre en kunigaj krampoj"
-#: ../glib/gregex.c:513
-#| msgid "URIs not supported"
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N ne estas subtenataj en klaso"
-#: ../glib/gregex.c:516
-msgid "too many forward references"
-msgstr ""
-
-#: ../glib/gregex.c:519
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr ""
-#: ../glib/gregex.c:522
-#| msgid "character value in \\x{...} sequence is too large"
-msgid "character value in \\u.... sequence is too large"
-msgstr "karaktro-valoro en \\u.... sekvenco estas tro granda"
+#: glib/gregex.c:738 glib/gregex.c:874
+msgid "code overflow"
+msgstr "koda troo"
+
+#: glib/gregex.c:742
+msgid "unrecognized character after (?P"
+msgstr "nekonata karaktro post (?P"
+
+#: glib/gregex.c:746
+msgid "overran compiling workspace"
+msgstr "troplenigis kompilada laborspaco"
+
+#: glib/gregex.c:750
+msgid "previously-checked referenced subpattern not found"
+msgstr "antaŭe kontrolita referencita submodelo ne trovita"
-#: ../glib/gregex.c:745 ../glib/gregex.c:1977
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Eraro dum kongruado de regula esprimo %s: %s"
-#: ../glib/gregex.c:1316
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "PCRE-biblioteko estas kompilata sen UTF8-subteno"
-#: ../glib/gregex.c:1320
-msgid "PCRE library is compiled without UTF8 properties support"
-msgstr "PCRE-biblioteko estas kompilata sen UTF8-ecoj-subteno"
-
-#: ../glib/gregex.c:1328
+#: glib/gregex.c:1743
#, fuzzy
#| msgid "PCRE library is compiled without UTF8 properties support"
msgid "PCRE library is compiled with incompatible options"
msgstr "PCRE-biblioteko estas kompilata sen nekongruaj opcioj"
-#: ../glib/gregex.c:1357
-#, c-format
-msgid "Error while optimizing regular expression %s: %s"
-msgstr "Eraro dum optimumigo de regula esprimo %s: %s"
-
-#: ../glib/gregex.c:1437
+#: glib/gregex.c:1860
#, c-format
-msgid "Error while compiling regular expression %s at char %d: %s"
-msgstr "Eraro dum kompilo de regula esprimo %s ĉe karaktro %d: %s"
+msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
+msgstr "Eraro dum kompilo de regula esprimo ‘%s’ ĉe karaktro %s: %s"
-#: ../glib/gregex.c:2413
-#, fuzzy
-#| msgid "hexadecimal digit or '}' expected"
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
-msgstr "deksusuma cifero aŭ '}' atendata"
+msgstr "deksesuma cifero aŭ \"}\" atendita"
-#: ../glib/gregex.c:2429
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "deksesuma cifero atendata"
-#: ../glib/gregex.c:2469
-#, fuzzy
-#| msgid "missing '<' in symbolic reference"
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
-msgstr "mankas '<' en simbola referenco"
+msgstr "mankas “<” en simbola referenco"
-#: ../glib/gregex.c:2478
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "nefinita simbola referenco"
-#: ../glib/gregex.c:2485
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "nulo-longa simbola referenco"
-#: ../glib/gregex.c:2496
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "cifero atendata"
-#: ../glib/gregex.c:2514
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "malpermesita simbola referenco"
-#: ../glib/gregex.c:2576
-#, fuzzy
-#| msgid "stray final '\\'"
+#: glib/gregex.c:3064
msgid "stray final “\\”"
-msgstr "ne bezonata fina '\\'"
+msgstr "devaga fina \"\\\""
-#: ../glib/gregex.c:2580
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "nekonata kodŝanĝa sekvenco"
-#: ../glib/gregex.c:2590
-#, fuzzy, c-format
-#| msgid "Error while parsing replacement text \"%s\" at char %lu: %s"
+#: glib/gregex.c:3078
+#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
-msgstr ""
-"Eraro dum sintaksa analizo de anstataŭa teksto \"%s\" ĉe karaktro %lu: %s"
+msgstr "Eraro dum analizado de anstataŭiga teksto \"%s\" ĉe signo %lu: %s"
-#: ../glib/gshell.c:94
+#: glib/gshell.c:98
#, fuzzy
#| msgid "Quoted text doesn't begin with a quotation mark"
msgid "Quoted text doesn’t begin with a quotation mark"
msgstr "Citata teksto ne komenciĝas per citilo"
-#: ../glib/gshell.c:184
+#: glib/gshell.c:188
msgid "Unmatched quotation mark in command line or other shell-quoted text"
msgstr "Ne kongrua citilo sur komanda linio aŭ alia teksto citis en ŝelo"
-#: ../glib/gshell.c:580
+#: glib/gshell.c:594
#, fuzzy, c-format
#| msgid "Text ended just after a '\\' character. (The text was '%s')"
msgid "Text ended just after a “\\” character. (The text was “%s”)"
-msgstr "Teksto finiĝis post '\\' karaktron. (La teksto estis '%s')"
+msgstr "Teksto finiĝis post '\\' karaktron. (La teksto estis “%s”)"
-#: ../glib/gshell.c:587
+#: glib/gshell.c:601
#, fuzzy, c-format
-#| msgid ""
-#| "Text ended before matching quote was found for %c. (The text was '%s')"
+#| msgid "Text ended before matching quote was found for %c. (The text was '%s')"
msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
-msgstr ""
-"Teksto finiĝis antaŭ kongrua citilo por %c estis trovita. (La teksto estis "
-"'%s')"
+msgstr "Teksto finiĝis antaŭ kongrua citilo por %c estis trovita. (La teksto estis “%s”)"
-#: ../glib/gshell.c:599
+#: glib/gshell.c:613
msgid "Text was empty (or contained only whitespace)"
msgstr "Teksto estis malplena (aŭ havis nur blankspacon)"
-#: ../glib/gspawn.c:250
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Malsukcesis legi datumaron de procezido (%s)"
-#: ../glib/gspawn.c:394
-#, c-format
-msgid "Unexpected error in select() reading data from a child process (%s)"
+#: glib/gspawn.c:473
+#, fuzzy, c-format
+#| msgid "Unexpected error in select() reading data from a child process (%s)"
+msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Neatendita eraro en select() dum datumlegado de procezido (%s)"
-#: ../glib/gspawn.c:479
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Neatendita eraro en waitpid() (%s)"
-#: ../glib/gspawn.c:886 ../glib/gspawn-win32.c:1231
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
-msgstr ""
+msgstr "Ida procezo eliris kun kodo %ld"
-#: ../glib/gspawn.c:894
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
-msgstr ""
+msgstr "Ida procezo mortigita de signalo %ld"
-#: ../glib/gspawn.c:901
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
-msgstr ""
+msgstr "Ida procezo ĉesigita per signalo %ld"
-#: ../glib/gspawn.c:908
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
-msgstr ""
+msgstr "Ida procezo eliris nenormale"
-#: ../glib/gspawn.c:1313 ../glib/gspawn-win32.c:337 ../glib/gspawn-win32.c:345
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Malsukcesis legi de duktido (%s)"
-#: ../glib/gspawn.c:1383
+#: glib/gspawn.c:2404
+#, fuzzy, c-format
+#| msgid "Failed to execute child process \"%s\" (%s)"
+msgid "Failed to spawn child process “%s” (%s)"
+msgstr "Malsukcesis plenumi procezidon \"%s\" (%s)"
+
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Malsukcesis branĉiĝi (%s)"
-#: ../glib/gspawn.c:1532 ../glib/gspawn-win32.c:368
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, fuzzy, c-format
#| msgid "Failed to change to directory '%s' (%s)"
msgid "Failed to change to directory “%s” (%s)"
-msgstr "Malsukcesis ŝanĝi al dosierujo '%s' (%s)"
+msgstr "Malsukcesis ŝanĝi al dosierujo “%s” (%s)"
-#: ../glib/gspawn.c:1542
+#: glib/gspawn.c:2700
#, fuzzy, c-format
#| msgid "Failed to execute child process \"%s\" (%s)"
msgid "Failed to execute child process “%s” (%s)"
msgstr "Malsukcesis plenumi procezidon \"%s\" (%s)"
-#: ../glib/gspawn.c:1552
+#: glib/gspawn.c:2710
+#, fuzzy, c-format
+#| msgid "Failed to open file '%s': open() failed: %s"
+msgid "Failed to open file to remap file descriptor (%s)"
+msgstr "Malsukcesis malfermi dosieron “%s”: open() malsukcesis: %s"
+
+#: glib/gspawn.c:2718
#, c-format
-msgid "Failed to redirect output or input of child process (%s)"
-msgstr "Malsukcesis alidirektigi enigon aŭ eligon de procezido (%s)"
+msgid "Failed to duplicate file descriptor for child process (%s)"
+msgstr "Malsukcesis duobligi dosierpriskribilon por ida procezo (%s)"
-#: ../glib/gspawn.c:1561
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Malsukcesis branĉiĝi procezidon (%s)"
-#: ../glib/gspawn.c:1569
-#, fuzzy, c-format
-#| msgid "Unknown error executing child process \"%s\""
+#: glib/gspawn.c:2735
+#, c-format
+msgid "Failed to close file descriptor for child process (%s)"
+msgstr "Malsukcesis fermi dosierpriskribilon por ida procezo (%s)"
+
+#: glib/gspawn.c:2743
+#, c-format
msgid "Unknown error executing child process “%s”"
-msgstr "Nekonata eraro dum plenumanta de la procezido \"%s\""
+msgstr "Nekonata eraro dum rulo de ida procezo “%s”"
-#: ../glib/gspawn.c:1593
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "Malsukcesis legi sufiĉe datumaron de pid-duktido (%s)"
-#: ../glib/gspawn-win32.c:281
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Nevalida fonta FD-argumento"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
-msgstr "Malsukesis legi datumaron de procezido"
+msgstr "Malsukesis legi datumaron de ida procezo"
-#: ../glib/gspawn-win32.c:298
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
-msgid "Failed to create pipe for communicating with child process (%s)"
-msgstr "Malsukcesis krei dukton por komunikado kun procezido (%s)"
+msgid "Failed to execute child process (%s)"
+msgstr "Malsukcesis plenumi ida procezon (%s)"
-#: ../glib/gspawn-win32.c:374 ../glib/gspawn-win32.c:493
+#: glib/gspawn-win32.c:519
#, c-format
-msgid "Failed to execute child process (%s)"
-msgstr "Malsukcesis plenumi procezidon (%s)"
+msgid "Failed to dup() in child process (%s)"
+msgstr "Malsukcesis dup() en ida procezo (%s)"
-#: ../glib/gspawn-win32.c:443
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Nevalida programa nomo: %s"
-#: ../glib/gspawn-win32.c:453 ../glib/gspawn-win32.c:720
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Nevalida ĉeno en argument-vektoro ĉe %d: %s"
-#: ../glib/gspawn-win32.c:464 ../glib/gspawn-win32.c:735
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Nevalida ĉeno en medio: %s"
-#: ../glib/gspawn-win32.c:716
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Nevalida kuranta dosierujo: %s"
-#: ../glib/gspawn-win32.c:781
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Malsukcesis plenumi helpan programon (%s)"
-#: ../glib/gspawn-win32.c:995
-msgid ""
-"Unexpected error in g_io_channel_win32_poll() reading data from a child "
-"process"
-msgstr ""
-"Neatendita eraro dum g_io_channel_win32_poll() legado de datumaro de "
-"procezido"
+#: glib/gspawn-win32.c:1230
+msgid "Unexpected error in g_io_channel_win32_poll() reading data from a child process"
+msgstr "Neatendita eraro dum g_io_channel_win32_poll() legado de datumaro de procezido"
-#: ../glib/gstrfuncs.c:3237 ../glib/gstrfuncs.c:3338
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
-msgstr ""
+msgstr "Malplena ĉeno ne estas nombro"
-#: ../glib/gstrfuncs.c:3261
+#: glib/gstrfuncs.c:3397
#, c-format
-#| msgid "'%s' is not a valid name "
msgid "“%s” is not a signed number"
msgstr "“%s” ne estas valida numero"
-#: ../glib/gstrfuncs.c:3271 ../glib/gstrfuncs.c:3374
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
-msgstr ""
+msgstr "Numero “%s” estas ekster limoj [%s, %s]"
-#: ../glib/gstrfuncs.c:3364
+#: glib/gstrfuncs.c:3501
#, c-format
-#| msgid "'%s' is not a valid name "
msgid "“%s” is not an unsigned number"
msgstr "“%s” ne estas valida numero"
-#: ../glib/gutf8.c:798
-#| msgid "failed to get memory"
+#: glib/guri.c:318
+#, no-c-format
+msgid "Invalid %-encoding in URI"
+msgstr "Nevalida %-kodado en URI"
+
+#: glib/guri.c:335
+msgid "Illegal character in URI"
+msgstr "Nevalida signo en URI"
+
+#: glib/guri.c:369
+msgid "Non-UTF-8 characters in URI"
+msgstr "Ne-UTF-8-signoj en URI"
+
+#: glib/guri.c:549
+#, c-format
+msgid "Invalid IPv6 address ‘%.*s’ in URI"
+msgstr "Nevalida IPv6-adreso '%.*s' en URI"
+
+#: glib/guri.c:604
+#, c-format
+msgid "Illegal encoded IP address ‘%.*s’ in URI"
+msgstr "Nevalida kodita IP-adreso '%.*s' en URI"
+
+#: glib/guri.c:616
+#, c-format
+msgid "Illegal internationalized hostname ‘%.*s’ in URI"
+msgstr "Nevalida internaciigita gastiga nomo '%.*s' en URI"
+
+#: glib/guri.c:648 glib/guri.c:660
+#, c-format
+msgid "Could not parse port ‘%.*s’ in URI"
+msgstr "Ne eblis analizi pordon '%.*s' en URI"
+
+#: glib/guri.c:667
+#, c-format
+msgid "Port ‘%.*s’ in URI is out of range"
+msgstr "Pordo '%.*s' en URI estas ekster intervalo"
+
+#: glib/guri.c:1230 glib/guri.c:1294
+#, c-format
+msgid "URI ‘%s’ is not an absolute URI"
+msgstr "URI '%s' ne estas absoluta URI"
+
+#: glib/guri.c:1236
+#, c-format
+msgid "URI ‘%s’ has no host component"
+msgstr "URI '%s' havas neniun gastigan komponenton"
+
+#: glib/guri.c:1466
+msgid "URI is not absolute, and no base URI was provided"
+msgstr "URI ne estas absoluta, kaj neniu baza URI estis disponigita"
+
+#: glib/guri.c:2252
+msgid "Missing ‘=’ and parameter value"
+msgstr "Mankas '=' kaj parametrovaloro"
+
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Malsukcesis akiri memoron"
-#: ../glib/gutf8.c:931
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Karaktro estas ekster la intervalo de UTF-8"
-#: ../glib/gutf8.c:1032 ../glib/gutf8.c:1041 ../glib/gutf8.c:1171
-#: ../glib/gutf8.c:1180 ../glib/gutf8.c:1319 ../glib/gutf8.c:1416
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Nevalida sekvenco en konverta enigo"
-#: ../glib/gutf8.c:1330 ../glib/gutf8.c:1427
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Karaktro estas ekster la intervalo de UTF-16"
-#: ../glib/gutils.c:2139 ../glib/gutils.c:2166 ../glib/gutils.c:2272
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
+#: glib/gutils.c:2966
+msgid "kB"
+msgstr "kB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
+#: glib/gutils.c:2968
+msgid "MB"
+msgstr "MB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
+#: glib/gutils.c:2970
+msgid "GB"
+msgstr "GB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
+#: glib/gutils.c:2972
+msgid "TB"
+msgstr "TB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
+#: glib/gutils.c:2974
+msgid "PB"
+msgstr "PB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
+#: glib/gutils.c:2976
+msgid "EB"
+msgstr "EB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
+#: glib/gutils.c:2980
+msgid "KiB"
+msgstr "KiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
+#: glib/gutils.c:2982
+msgid "MiB"
+msgstr "MiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
+#: glib/gutils.c:2984
+msgid "GiB"
+msgstr "GiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
+#: glib/gutils.c:2986
+msgid "TiB"
+msgstr "TiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
+#: glib/gutils.c:2988
+msgid "PiB"
+msgstr "PiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
+#: glib/gutils.c:2990
+msgid "EiB"
+msgstr "EiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
+#: glib/gutils.c:2994
+msgid "kb"
+msgstr "kb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
+#: glib/gutils.c:2996
+msgid "Mb"
+msgstr "Mb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
+#: glib/gutils.c:2998
+msgid "Gb"
+msgstr "Gb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
+#: glib/gutils.c:3000
+msgid "Tb"
+msgstr "Tb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
+#: glib/gutils.c:3002
+msgid "Pb"
+msgstr "Pb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
+#: glib/gutils.c:3004
+msgid "Eb"
+msgstr "Eb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
+#: glib/gutils.c:3008
+msgid "Kib"
+msgstr "Kib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
+#: glib/gutils.c:3010
+msgid "Mib"
+msgstr "Mib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
+#: glib/gutils.c:3012
+msgid "Gib"
+msgstr "Gib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
+#: glib/gutils.c:3014
+msgid "Tib"
+msgstr "Tib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
+#: glib/gutils.c:3016
+msgid "Pib"
+msgstr "Pib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
+#: glib/gutils.c:3018
+msgid "Eib"
+msgstr "Eib"
+
+#: glib/gutils.c:3056
+msgid "byte"
+msgid_plural "bytes"
+msgstr[0] "bajto"
+msgstr[1] "bajtoj"
+
+#: glib/gutils.c:3060
+msgid "bit"
+msgid_plural "bits"
+msgstr[0] "bito"
+msgstr[1] "bitoj"
+
+#. Translators: The "%u" is replaced with the size value, like "13"; it could
+#. * be part of "13 bytes", but only the number is requested this time.
+#: glib/gutils.c:3068
+#, c-format
+msgctxt "format-size"
+msgid "%u"
+msgstr "%u"
+
+#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
+#: glib/gutils.c:3073
+#, c-format
+msgctxt "format-size"
+msgid "%u %s"
+msgstr "%u %s"
+
+#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
+#. * be part of "13.0 MB", but only the number is requested this time.
+#: glib/gutils.c:3109
+#, c-format
+msgctxt "format-size"
+msgid "%.1f"
+msgstr "%.1f"
+
+#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
+#. * the unit symbol. An example: "13.0 MB"
+#: glib/gutils.c:3115
+#, c-format
+msgctxt "format-size"
+msgid "%.1f %s"
+msgstr "%.1f %s"
+
+#. Translators: the %s in "%s bytes" will always be replaced by a number.
+#: glib/gutils.c:3155
+#, c-format
+msgid "%s byte"
+msgid_plural "%s bytes"
+msgstr[0] "%s bajto"
+msgstr[1] "%s bajtoj"
+
+#. Translators: the %s in "%s bits" will always be replaced by a number.
+#: glib/gutils.c:3160
+#, c-format
+msgid "%s bit"
+msgid_plural "%s bits"
+msgstr[0] "%s bito"
+msgstr[1] "%s bitoj"
+
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
msgstr[0] "%u bajto"
msgstr[1] "%u bajtoj"
-#: ../glib/gutils.c:2145
+#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
+#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
+#. * compatibility. Users will not see this string unless a program is using this deprecated function.
+#. * Please translate as literally as possible.
+#.
+#: glib/gutils.c:3214
#, c-format
-msgid "%.1f KiB"
-msgstr "%.1f KiB"
+msgid "%.1f KB"
+msgstr "%.1f KB"
-#: ../glib/gutils.c:2147
+#: glib/gutils.c:3219
#, c-format
-msgid "%.1f MiB"
-msgstr "%.1f MiB"
+msgid "%.1f MB"
+msgstr "%.1f MB"
-#: ../glib/gutils.c:2150
+#: glib/gutils.c:3224
#, c-format
-msgid "%.1f GiB"
-msgstr "%.1f GiB"
+msgid "%.1f GB"
+msgstr "%.1f GB"
-#: ../glib/gutils.c:2153
+#: glib/gutils.c:3229
#, c-format
-msgid "%.1f TiB"
-msgstr "%.1f TiB"
+msgid "%.1f TB"
+msgstr "%.1f TB"
-#: ../glib/gutils.c:2156
+#: glib/gutils.c:3234
#, c-format
-msgid "%.1f PiB"
-msgstr "%.1f PiB"
+msgid "%.1f PB"
+msgstr "%.1f PB"
-#: ../glib/gutils.c:2159
+#: glib/gutils.c:3239
#, c-format
-msgid "%.1f EiB"
-msgstr "%.1f EiB"
+msgid "%.1f EB"
+msgstr "%.1f EB"
+
+#~| msgid "Application Options:"
+#~ msgid "GApplication options"
+#~ msgstr "Aplikaĵaj opcioj"
+
+#, fuzzy, c-format
+#~| msgid "Error in address '%s' - the family attribute is malformed"
+#~ msgid "Error in address “%s” — the family attribute is malformed"
+#~ msgstr "Eraro en adreso '%s' - la 'family' atributo estas misformita"
-#: ../glib/gutils.c:2172
#, c-format
-msgid "%.1f kB"
-msgstr "%.1f kB"
+#~ msgid "No such method '%s'"
+#~ msgstr "Neniu tia metodo '%s'"
-#: ../glib/gutils.c:2175 ../glib/gutils.c:2290
#, c-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
+#~ msgid "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable - unknown value '%s'"
+#~ msgstr "Ne eblas determi busadreson per DBUS_STARTER_BUS_TYPE medivariablo - nekonata valoron '%s'"
-#: ../glib/gutils.c:2178 ../glib/gutils.c:2295
#, c-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
+#~ msgid "Message has %d file descriptors but the header field indicates %d file descriptors"
+#~ msgstr "Mesaĝo havas %d dosiernumerojn sed la kapo-kampo indikas %d dosiernumeroj"
+
+#~ msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
+#~ msgstr "Ne eblas ŝargi na /var/lib/dbus/machine-id aŭ /etc/machine-id: "
-#: ../glib/gutils.c:2180 ../glib/gutils.c:2300
#, c-format
-msgid "%.1f TB"
-msgstr "%.1f TB"
+#~ msgid "Error: object path not specified.\n"
+#~ msgstr "Eraro: objektovojo ne specifita.\n"
-#: ../glib/gutils.c:2183 ../glib/gutils.c:2305
#, c-format
-msgid "%.1f PB"
-msgstr "%.1f PB"
+#~ msgid "Error: signal not specified.\n"
+#~ msgstr "Eraro: signalo ne specifita.\n"
+
+#, fuzzy, c-format
+#~| msgid "Error: signal not specified.\n"
+#~ msgid "Error: signal must be the fully-qualified name.\n"
+#~ msgstr "Eraro: signalo ne specifita.\n"
-#: ../glib/gutils.c:2186 ../glib/gutils.c:2310
#, c-format
-msgid "%.1f EB"
-msgstr "%.1f EB"
+#~ msgid "Failed to create temp file: %s"
+#~ msgstr "Malsukcesis krei dosieron: %s"
-#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: ../glib/gutils.c:2223
#, c-format
-msgid "%s byte"
-msgid_plural "%s bytes"
-msgstr[0] "%s bajto"
-msgstr[1] "%s bajtoj"
+#~ msgid "; ignoring override for this key.\n"
+#~ msgstr "; ignoras superrego por ĉi tiu ŝlosilo.\n"
-#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
-#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
-#. * compatibility. Users will not see this string unless a program is using this deprecated function.
-#. * Please translate as literally as possible.
-#.
-#: ../glib/gutils.c:2285
#, c-format
-msgid "%.1f KB"
-msgstr "%.1f KB"
+#~ msgid " and --strict was specified; exiting.\n"
+#~ msgstr " kaj --strict estis specifita; eliranta.\n"
-msgctxt "full month name with day"
-msgid "January"
-msgstr "januaro"
+#, c-format
+#~ msgid "Ignoring override for this key.\n"
+#~ msgstr "Ignoras superregon por ĉi tiu ŝlosilo.\n"
-msgctxt "full month name with day"
-msgid "February"
-msgstr "februaro"
+#, c-format
+#~ msgid "doing nothing.\n"
+#~ msgstr "faranta nenion.\n"
-msgctxt "full month name with day"
-msgid "March"
-msgstr "marto"
+#~ msgid "Unknown error on connect"
+#~ msgstr "Nekonata eraro okazis je konektado"
-msgctxt "full month name with day"
-msgid "April"
-msgstr "aprilo"
+#, fuzzy, c-format
+#~| msgid "The local file URI '%s' may not include a '#'"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "La loka dosiera URI '%s' devas ne havi la '#'"
-msgctxt "full month name with day"
-msgid "May"
-msgstr "majo"
+#~ msgid "internal error or corrupted object"
+#~ msgstr "interna eraro aŭ difektita objekto"
-msgctxt "full month name with day"
-msgid "June"
-msgstr "junio"
+#~ msgid "backtracking limit reached"
+#~ msgstr "retrospurada limo estas atingata"
-msgctxt "full month name with day"
-msgid "July"
-msgstr "julio"
+#~ msgid "invalid combination of newline flags"
+#~ msgstr "nevalida kombinaĵo de novlinioj flagoj"
-msgctxt "full month name with day"
-msgid "August"
-msgstr "aŭgusto"
+#~ msgid "short utf8"
+#~ msgstr "mallonga utf8"
-msgctxt "full month name with day"
-msgid "September"
-msgstr "septembro"
+#~ msgid "unexpected repeat"
+#~ msgstr "neatendita ripeto"
-msgctxt "full month name with day"
-msgid "October"
-msgstr "oktobro"
+#~ msgid "failed to get memory"
+#~ msgstr "malsukcesis akiri memoron"
-msgctxt "full month name with day"
-msgid "November"
-msgstr "novembro"
+#~ msgid ") without opening ("
+#~ msgstr ") sen komenca ("
-msgctxt "full month name with day"
-msgid "December"
-msgstr "decembro"
+#~ msgid "unrecognized character after (?<"
+#~ msgstr "nekonata karaktro post (?<"
-msgctxt "abbreviated month name with day"
-msgid "Jan"
-msgstr "jan"
+#~ msgid "(?R or (?[+-]digits must be followed by )"
+#~ msgstr "(?R aŭ (?[+-]ciferoj devas esti sekvataj de )"
-msgctxt "abbreviated month name with day"
-msgid "Feb"
-msgstr "feb"
+#~ msgid "invalid condition (?(0)"
+#~ msgstr "nevalida kondiĉo (?(0)"
-msgctxt "abbreviated month name with day"
-msgid "Mar"
-msgstr "mar"
+#~ msgid "recursive call could loop indefinitely"
+#~ msgstr "rikura voko povus iteracii senfine"
-msgctxt "abbreviated month name with day"
-msgid "Apr"
-msgstr "apr"
+#, fuzzy
+#~| msgid "digit expected"
+#~ msgid "digit expected after (?+"
+#~ msgstr "cifero atendata post (?+"
-msgctxt "abbreviated month name with day"
-msgid "May"
-msgstr "maj"
+#~| msgid "character value in \\x{...} sequence is too large"
+#~ msgid "character value in \\u.... sequence is too large"
+#~ msgstr "karaktro-valoro en \\u.... sekvenco estas tro granda"
-msgctxt "abbreviated month name with day"
-msgid "Jun"
-msgstr "jun"
+#~ msgid "PCRE library is compiled without UTF8 properties support"
+#~ msgstr "PCRE-biblioteko estas kompilata sen UTF8-ecoj-subteno"
-msgctxt "abbreviated month name with day"
-msgid "Jul"
-msgstr "jul"
+#, c-format
+#~ msgid "Error while optimizing regular expression %s: %s"
+#~ msgstr "Eraro dum optimumigo de regula esprimo %s: %s"
-msgctxt "abbreviated month name with day"
-msgid "Aug"
-msgstr "aŭg"
+#, c-format
+#~ msgid "%.1f KiB"
+#~ msgstr "%.1f KiB"
-msgctxt "abbreviated month name with day"
-msgid "Sep"
-msgstr "sep"
+#, c-format
+#~ msgid "%.1f MiB"
+#~ msgstr "%.1f MiB"
-msgctxt "abbreviated month name with day"
-msgid "Oct"
-msgstr "okt"
+#, c-format
+#~ msgid "%.1f GiB"
+#~ msgstr "%.1f GiB"
-msgctxt "abbreviated month name with day"
-msgid "Nov"
-msgstr "nov"
+#, c-format
+#~ msgid "%.1f TiB"
+#~ msgstr "%.1f TiB"
-msgctxt "abbreviated month name with day"
-msgid "Dec"
-msgstr "dec"
+#, c-format
+#~ msgid "%.1f PiB"
+#~ msgstr "%.1f PiB"
+
+#, c-format
+#~ msgid "%.1f EiB"
+#~ msgstr "%.1f EiB"
#~ msgid "Abnormal program termination spawning command line '%s': %s"
#~ msgstr "Nenormala programfiniĝo dum starto de komanda linio '%s': %s"
@@ -5890,9 +6523,6 @@ msgstr "dec"
#~ msgid "Error processing input file with xmllint"
#~ msgstr "Eraro dum traktado de enig-dosiero per 'xmllint'"
-#~ msgid "Unable to find default local directory monitor type"
-#~ msgstr "Ne eblas trovi defaŭltan tipon de loka dosieruja kontrolado"
-
#~ msgid "Error renaming file: %s"
#~ msgstr "Eraro dum alinomo de la dosiero: %s"
@@ -5905,15 +6535,8 @@ msgstr "dec"
#~ msgid "No service record for '%s'"
#~ msgstr "Ne ekzistas servorikordo por '%s'"
-#~ msgid ""
-#~ "Unexpected option length while checking if SO_PASSCRED is enabled for "
-#~ "socket. Expected %d bytes, got %d"
-#~ msgstr ""
-#~ "Neatendita opciolongo dum kontrolanta ĉu SO_PASSCRED estas enŝaltita por "
-#~ "kontaktskatolo. Atendita %d bajtoj, akiras %d"
-
-#~ msgid "Error launching application: %s"
-#~ msgstr "Eraro dum lanĉo de la aplikaĵo: %s"
+#~ msgid "Unexpected option length while checking if SO_PASSCRED is enabled for socket. Expected %d bytes, got %d"
+#~ msgstr "Neatendita opciolongo dum kontrolanta ĉu SO_PASSCRED estas enŝaltita por kontaktskatolo. Atendita %d bajtoj, akiras %d"
#~ msgid "association changes not supported on win32"
#~ msgstr "asociigaj ŝanĝoj ne subtenitaj en vin32"
@@ -5925,8 +6548,7 @@ msgstr "dec"
#~ msgstr "Eraro dum legado de la dosiero '%s': %s"
#~ msgid "Failed to open file '%s' for writing: fdopen() failed: %s"
-#~ msgstr ""
-#~ "Malsukcesis malfermi dosieron '%s' por skribi: fdopen() malsukcesis: %s"
+#~ msgstr "Malsukcesis malfermi dosieron '%s' por skribi: fdopen() malsukcesis: %s"
#~ msgid "Failed to write file '%s': fflush() failed: %s"
#~ msgstr "Skribi dosieron malsukcesis '%s': fflush() malsukcesis: %s"
@@ -5941,9 +6563,7 @@ msgstr "dec"
#~ msgstr "laborspaca limo por malplenaj subĉenoj estas atingitaj"
#~ msgid "case-changing escapes (\\l, \\L, \\u, \\U) are not allowed here"
-#~ msgstr ""
-#~ "kodŝanĝaj sekvencoj kiuj ŝanĝas usklecon (\\l, \\L, \\u, \\U) ne estas "
-#~ "permesi ĉi tie"
+#~ msgstr "kodŝanĝaj sekvencoj kiuj ŝanĝas usklecon (\\l, \\L, \\u, \\U) ne estas permesi ĉi tie"
#~ msgid "repeating a DEFINE group is not allowed"
#~ msgstr "ripeto de DIFIN-grupo ne estas permesata"
@@ -5966,10 +6586,8 @@ msgstr "dec"
#~ msgid "Error writing to unix: %s"
#~ msgstr "Eraro dum skribo al unikso: %s"
-#~ msgid ""
-#~ "Key file contains key '%s' which has value that cannot be interpreted."
-#~ msgstr ""
-#~ "Ŝlosilodosiero havas ŝlosilon '%s' kiu havas neinterpreteblan valoron."
+#~ msgid "Key file contains key '%s' which has value that cannot be interpreted."
+#~ msgstr "Ŝlosilodosiero havas ŝlosilon '%s' kiu havas neinterpreteblan valoron."
#~ msgid "This option will be removed soon."
#~ msgstr "Ĉi tiu opcio estos forigita baldaŭ."
diff --git a/po/es.po b/po/es.po
index f25024d76..9e34ee631 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8,65 +8,64 @@
#
#
# Jorge González <jorgegonz@svn.gnome.org>, 2007, 2008, 2009, 2010, 2011, 2012.
-# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010-2022.
-# Daniel Mustieles García <daniel.mustieles@gmail.com>, 2022.
+# Daniel Mustieles <daniel.mustieles@gmail.com>, 2022-2023.
#
msgid ""
msgstr ""
"Project-Id-Version: glib.master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-31 23:44+0000\n"
-"PO-Revision-Date: 2022-09-12 07:48+0200\n"
-"Last-Translator: Daniel Mustieles García <daniel.mustieles@gmail.com>\n"
+"POT-Creation-Date: 2023-09-11 06:52+0000\n"
+"PO-Revision-Date: 2023-09-11 10:13+0200\n"
+"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n"
"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"X-Generator: Gtranslator 42.0\n"
+"X-Generator: Gtranslator 45.alpha0\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Todavía no se soporta establecer aplicaciones predeterminadas"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Establecer aplicación como la usada por última vez para el tipo no está "
"soportado"
-#: gio/gappinfo.c:810
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr ""
"Falló al buscar una aplicación predeterminada para el tipo de contenido «%s»"
-#: gio/gappinfo.c:870
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr ""
"Falló al encontrar una aplicación predeterminada el esquema del URI «%s»"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "Opciones de GApplication"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "Opciones de GApplication:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Mostrar las opciones de GApplication"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
"Entrar en modo de servicio de GApplication (usar desde archivos de servicio "
"de D-Bus)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Omitir el ID de la aplicación"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Reemplazar la instancia actual en ejecución"
@@ -148,7 +147,7 @@ msgstr ""
"Identificador de la aplicación en formato D-Bus (ej. org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "ARCHIVO"
@@ -246,12 +245,12 @@ msgstr "no se pudo conectar a D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "error al enviar el mensaje %s a la aplicación: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr ""
"se debe indicar el nombre de la acción después del ID de la aplicación\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -261,25 +260,25 @@ msgstr ""
"los nombres de las acciones sólo pueden tener caracteres alfanuméricos «-» y "
"«.»\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "error al analizar el parámetro de la acción: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "las acciones aceptan un máximo de un parámetro\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "el comando «list-actions» sólo toma el ID de la aplicación"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "no se puede encontrar un archivo .desktop para la aplicación %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -289,9 +288,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "El valor de conteo pasado a %s es demasiado largo"
@@ -305,8 +304,8 @@ msgstr "No se permite buscar en el flujo base"
msgid "Cannot truncate GBufferedInputStream"
msgstr "No se puede truncar GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "El flujo ya se cerró"
@@ -314,7 +313,7 @@ msgstr "El flujo ya se cerró"
msgid "Truncate not supported on base stream"
msgstr "No se soporta el truncado en el flujo base"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -333,29 +332,29 @@ msgid "Not enough space in destination"
msgstr "No hay suficiente espacio en el destino"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Hay una secuencia de bytes no válida en la entrada de conversión"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Falló durante la conversión: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "La inicialización cancelable no eestá soportada"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr ""
"La conversión desde el conjunto de caracteres «%s» a «%s» no está soportada"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "No se pudo abrir el conversor de «%s» a «%s»"
@@ -398,18 +397,18 @@ msgstr "No se soporta la burla de credenciales en este SO"
msgid "Unexpected early end-of-stream"
msgstr "Final de flujo inesperadamente prematuro"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Clave «%s» no soportada en la entrada de dirección «%s»"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr ""
"Combinación del par clave/valor sin sentido en la entrada de dirección «%s»"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -418,7 +417,7 @@ msgstr ""
"La dirección «%s» no es válida (se necesita exactamente una ruta, carpeta, "
"carpeta temporal o claves abstractas)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -554,7 +553,7 @@ msgstr ""
"No se puede determinar la dirección del bus de sesión (no implementado para "
"este SO)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -563,7 +562,7 @@ msgstr ""
"No se puede determinar la dirección del bus desde la variable de entorno "
"DBUS_STARTER_BUS_TYPE; variable «%s» desconocida"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -571,7 +570,7 @@ msgstr ""
"No se puede determinar la dirección del bus porque la variable de entorno "
"DBUS_STARTER_BUS_TYPE no está establecida"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Tipo de bus %d desconocido"
@@ -593,20 +592,24 @@ msgstr ""
"Se agotaron todos los mecanismos de autenticación (intentados: %s) "
"(disponibles: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Falta de contenido inesperada al intentar leer un byte"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "El ID del usuario debe ser el mismo en el par y el servidor"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Cancelado a través de GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Error al obtener la información de la carpeta «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -614,34 +617,34 @@ msgstr ""
"Los permisos de la carpeta «%s» están mal formados. Se esperaba el modo "
"0700, se obtuvo 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Error al crear la carpeta %s: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Operación no soportada"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Error al abrir el depósito de claves «%s» para su lectura: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
"La línea %d del depósito de claves en «%s» con contenido «%s» está mal "
"formada"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -649,7 +652,7 @@ msgstr ""
"El primer token de la línea %d del depósito de claves en «%s» con contenido "
"«%s» está mal formado"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -657,58 +660,58 @@ msgstr ""
"El segundo token de la línea %d del depósito de claves en «%s» con contenido "
"«%s» está mal formado"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "No se encontró la «cookie» con ID %d en el depósito de claves en «%s»"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Error al crear el archivo de bloqueo «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Error al eliminar el archivo de bloqueo antiguo «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Error al cerrar (desenlazar) el archivo de bloqueo «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Error al desenlazar el archivo de bloqueo «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Error al abrir el depósito de claves «%s» para su escritura:"
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr ""
"(Adicionalmente, también falló la liberación del bloqueo para «%s»: %s)"
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "La conexión está cerrada"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Se alcanzó el tiempo de expiración"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Se encontraron opciones no soportadas al construir la conexión del lado del "
"cliente"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -716,106 +719,115 @@ msgstr ""
"No existe la interfaz «org.freedesktop.DBus.Properties» en el objeto en la "
"ruta %s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "No existe la propiedad «%s»"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "No se puede leer la propiedad «%s»"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "No se puede escribir la propiedad «%s»"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Error al establecer la propiedad «%s». Se esperaba el tipo «%s» pero se "
"obtuvo «%s»."
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "La interfaz «%s» no existe"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "No existe la interfaz «%s» en el objeto en la ruta %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "No existe el método «%s»"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "El tipo de mensaje, «%s», no coincide con el tipo esperado «%s»"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Ya existe un objeto exportado para la interfaz %s en %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "No se pudo obtener la propiedad %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "No se pudo establecer la propiedad %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "El método «%s» devolvió el tipo «%s» pero se esperaba «%s»"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "El método «%s» con interfaz «%s» y firma «%s» no existe"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Ya se ha exportado un subárbol para %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "El objeto no existe en la ruta «%s»"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "el tipo no es válido («INVALID»)"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "Mensaje de METHOD_CALL: falta el campo de cabecera PATH o MEMEBER"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"Mensaje de METHOD_CALL: falta el campo de cabecera PATH o MEMEBER o no es "
+"válido"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "Mensaje de METHOD_RETURN: falta el campo de cabecera REPLY_SERIAL"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"Mensaje de METHOD_RETURN: falta el campo de cabecera REPLY_SERIAL o no es "
+"válido"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
msgstr ""
-"Mensaje de ERROR: falta el campo de cabecera REPLY_SERRIAL o ERROR_NAME"
+"Mensaje de ERROR: falta el campo de cabecera REPLY_SERIAL o ERROR_NAME o no "
+"es válido"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "Mensaje de SIGNAL: falta el campo de cabecera PATH, INTERFACE o MEMBER"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"Mensaje de SIGNAL: falta el campo de cabecera PATH, INTERFACE o MEMBER o no "
+"es válido"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -823,7 +835,7 @@ msgstr ""
"Mensaje de SIGNAL: el campo de cabecera PATH está usando el valor reservado /"
"org/freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -831,21 +843,21 @@ msgstr ""
"Mensaje de SIGNAL: el campo de cabecera INTERFACE está usando el valor "
"reservado org.freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "Se quería leer %lu byte pero sólo se obtuvo %lu"
msgstr[1] "Se querían leer %lu bytes pero sólo se obtuvo %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr ""
"Se esperaba el byte NULL después de la cadena «%s» pero se encontró el byte "
"%d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -855,21 +867,21 @@ msgstr ""
"en el byte desplazado %d (la longitud de la cadena es %d). La cadena UTF-8 "
"válida hasta ese punto era «%s»."
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Valor anidado demasiado profundamente"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "El valor analizado «%s» no es un objeto de ruta D-Bus válido"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "El valor analizado «%s» no es una firma de D-Bus válida"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -882,7 +894,7 @@ msgstr[1] ""
"Se encontró un array de longitud %u bytes. La longitud máxima es 2<<26 bytes "
"(64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -891,17 +903,17 @@ msgstr ""
"Encontrado un vector de tipo «a%c», esperando que su longitud fuese múltiplo "
"de %u bytes, pero su longitud es de %u"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Las estructuras vacías (tuplas) no están permitidas en D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr ""
"El valor analizado «%s» para la variante no es una firma de D-Bus válida"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -909,7 +921,7 @@ msgstr ""
"Error al deserializar GVariant con el tipo de cadena «%s» al formato de "
"mensaje de D-Bus"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -918,31 +930,31 @@ msgstr ""
"Valor endian no válido. Se esperaba 0x6c («l») o 0x42 («B»)» pero se obtuvo "
"el valor 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr ""
"La versión principal del protocolo no es válida. Se esperaba 1 pero se "
"encontró %d."
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Cabecera de firma encontrada pero no es del tipo firma"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Se encontró la cabecera de firma con firma «%s» pero el cuerpo del mensaje "
"está vacío"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr ""
"El valor analizado «%s» no es una firma de D-Bus válida (para el cuerpo)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -953,11 +965,11 @@ msgstr[1] ""
"No existe la cabecera de firma en el mensaje pero el cuerpo del mensaje "
"tiene %u bytes"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "No se puede deserializar el mensaje: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -965,7 +977,7 @@ msgstr ""
"Error al serializar GVariant con el tipo de cadena «%s» al formato de "
"mensaje de D-Bus"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
@@ -973,17 +985,17 @@ msgstr ""
"El número de descriptores de archivos en el mensaje (%d) es distinto del "
"campo de cabecera (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "No se puede serializar el mensaje: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
"El cuerpo del mensaje tiene la firma «%s» pero no existe la cabecera de firma"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -992,55 +1004,55 @@ msgstr ""
"El cuerpo del mensaje tiene un tipo de firma «%s» pero la firma en el campo "
"de cabecera es «%s»"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
"El cuerpo del mensaje está vacío pero la firma en el campo de cabecera es "
"«(%s)»"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Error al devolver el cuerpo de tipo «%s»"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Error al devolver un cuepro vacío"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Escriba un carácter cualquiera para cerrar esta ventana)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr ""
"La sesión de dbus no está en ejecución, y falló el lanzamiento automático"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "No se pudo obtener el perfil de hardware: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "No se pudo cargar «%s» o %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Error al llamar StartSereviceByName para %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Respuesta %d no esperada del método StartServiceByName(«%s»)"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1050,27 +1062,27 @@ msgstr ""
"%sconocido y el proxy se construyó con la opción "
"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Espacio de nombres abstracto no soportado"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr ""
"No se puede especificar el archivo de número usado una sola vez al crear un "
"servidor"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Error al escribir el archivo de número usado una sola vez en «%s»: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "La cadena «%s» no es un GUID válido de D-Bus"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "No se puede escuchar en un transporte no soportado «%s»"
@@ -1098,14 +1110,14 @@ msgstr ""
"\n"
"Use «%s COMANDO --help» para obtener ayuda de cada comando.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Error: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Error al analizar la introspección XML: %s\n"
@@ -1115,43 +1127,43 @@ msgstr "Error al analizar la introspección XML: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Error: %s no es un nombre válido\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Error: %s no es una ruta de objeto válida\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Conectar con el bus del sistema"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Conectar con el bus de sesión"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Conectar con la dirección de D-Bus proporcionada"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Opciones de conexión del extremo:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Opciones para especificar la conexión del extremo:"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "No se especificó ningún punto de conexión extremo"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Se especificaron varios puntos de conexión extremos"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
@@ -1159,7 +1171,7 @@ msgstr ""
"Advertencia: según la introspección de los datos, la interfaz «%s» no "
"existe\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1168,165 +1180,165 @@ msgstr ""
"Advertencia: según la introspección de los datos, el método «%s» no existe "
"en la interfaz «%s»\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Destino opcional para la señal (nombre único)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Ruta del objeto sobre el que emitir la señal"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Nombres de la interfaz y señal"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Emitir una señal."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Error al conectar: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Error: %s no es un nombre de bus único válido.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Error: no se especificó la ruta del objeto\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Error: no se especificó el nombre de la señal\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Error: el nombre de la señal «%s» no es válido\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Error: %s no es un nombre de interfaz válida\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Error: %s no es un nombre de miembro válido\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Error al analizar el parámetro %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Error al limpiar la conexión: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Nombre del detino sobre el que invocar elmétodo"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Ruta del objeto sobre la que invocar el método"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Nombre de la interfaz y método"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Tiempo de expiración en segundos"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Permitir autorización interactiva"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Invocar un método en un objeto remoto."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Error: el destino no está especificado\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Error: %s no es un nombre de bus válido\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Error: no se especificó el nombre del método\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Error: el nombre del método «%s» no es válido\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Error al analizar el parámetro %d del tipo «%s»: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Error al añadir el manejador %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Nombre de destino que introspeccionar"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Ruta del objeto que introspeccionar"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Imprimir XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Introspeccionar hijo"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Solo mostrar propiedades"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Introspeccionar un objeto remoto."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Nombre de destino para monitorizar"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Ruta objeto para monitorizar"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Monitorizar un objeto remoto."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr ""
"Error: no se puede monitorizar una conexión que no sea de mensajes del bus\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Servicio que activar antes de esperar a otro (nombre conocido)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1334,70 +1346,75 @@ msgstr ""
"Tiempo que esperar antes de salir con un error (en segundos); 0 para que no "
"haya tiempo de expiración (predeterminado)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPCIÓN…] NOMBRE-BUS"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Esperar a que aparezca el nombre del bus."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Error: se debe especificar un servicio que activar.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Error: se debe especificar un servicio al que esperar.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Demasiados argumentos.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Error: %s no es un nombre de bus conocido válido\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "No autorizado para cambiar la configuración de depuración"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5112
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Sin nombre"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "El archivo de escritorio no especificó el campo Exec"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Imposible encontrar el terminal requerido por la aplicación"
-#: gio/gdesktopappinfo.c:3630
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Programa «%s» no encontrado en $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
"No se puede crear la carpeta de configuración de la aplicación %s del "
"usuario: %s"
-#: gio/gdesktopappinfo.c:3634
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "No se puede crear la carpeta de configuración MIME %s del usuario: %s"
-#: gio/gdesktopappinfo.c:3876 gio/gdesktopappinfo.c:3900
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "La información de la aplicación carece de un identificador"
-#: gio/gdesktopappinfo.c:4136
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "No se puede crear el archivo de escritorio %s del usuario"
-#: gio/gdesktopappinfo.c:4272
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Definición personalizada para %s"
@@ -1466,78 +1483,83 @@ msgstr "Se esperaba un GEmblem para GEmblemedIconjo"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "El punto de montaje contenido no existe"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "No se puede copiar sobre la carpeta"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "No se puede copiar una carpeta sobre otra"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "El archivo destino ya existe"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "No se puede copiar la carpeta recursivamente"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "La unión no está soportada"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Copiar el rango de archivos no está soportado"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Error al unir el archivo: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "La unión no está soportada"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Copiar (reflink/clone) entre puntos de montaje no está soportado"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Copiar (reflink/clone) no está soportado o no es válido"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Copiar (reflink/clone) no está soportado o no ha funcionado"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "No se puede copiar el archivo especial"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "El valor del enlace simbólico dado no es válido"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Enlaces simbólicos no soportados"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "No se soporta mover a la papelera"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Los nombres de archivo no pueden contener «%c»"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Falló al crear una carpeta temporal para la plantilla «%s»: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "el volumen no implementa el montaje"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "No hay ninguna aplicación registrada para manejar este archivo"
@@ -1546,11 +1568,11 @@ msgid "Enumerator is closed"
msgstr "El enumerador está cerrado"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "El enumerador del archivo tiene una operación excepcional"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "El enumerador del archivo ya está cerrado"
@@ -1563,27 +1585,27 @@ msgstr "No se puede manejar la versión %d de la codificación GFileIcon"
msgid "Malformed input data for GFileIcon"
msgstr "Datos de entrada mal formados para GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "El flujo no soporta query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "No se permite buscar en el flujo"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "No se permite truncar en el flujo de entrada"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "No se soporta el truncamiento en el flujo"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "El nombre del host no es válido"
@@ -1616,37 +1638,37 @@ msgstr "La respuesta del proxy HTTP es demasiado grande"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "El servidor proxy HTTP cerró la conexión inesperadamente."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Número de tokens (%d) incorrecto"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "No existe el tipo para la clase de nombre %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "El tipo %s no implementa la interfaz GIcon"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "El tipo %s no tiene clase"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Número de versión mal formado: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "El tipo %s no implementa from_tokens() en la interfaz GIcon"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr ""
"No se puede manejar la versión proporcionada de la codificación de icono"
@@ -1688,7 +1710,7 @@ msgstr "El flujo de entrada no implementa la lectura"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "El flujo tiene una operación excepcional"
@@ -1796,12 +1818,12 @@ msgid "Error writing to stdout"
msgstr "Error al escribir en la salida estándar"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "UBICACIÓN"
@@ -1819,8 +1841,8 @@ msgstr ""
"ubicaciones GIO en lugar de archivos locales: por ejemplo, puede\n"
"usar algo como smb://servidor/recurso/archivo.txt como ubicación."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "No se han proporcionado ubicaciones"
@@ -1916,57 +1938,64 @@ msgstr "No seguir enlaces simbólicos"
msgid "attributes:\n"
msgstr "atributos:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "nombre que mostrar: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "nombre editado: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "nombre: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "tipo: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "tamaño: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "oculto\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "URI: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "ruta local: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "montaje unix: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Atributos que se pueden establecer:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Espacios de nombres de atributos que se pueden escribir:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Mostrar información sobre las ubicaciones."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2033,11 +2062,11 @@ msgstr "Imprimir nombres que mostrar"
msgid "Print full URIs"
msgstr "Imprimir URI completos"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Listar el contenido de las ubicaciones."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2237,19 +2266,19 @@ msgstr "Montar un volumen TCRYPT oculto"
msgid "Mount a TCRYPT system volume"
msgstr "Montar un volumen de sistema TCRYPT"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Acceso anónimo denegado"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "No hay unidad para el archivo de dispositivo"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "No hay volumen para el ID dado"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Montar o desmontar las ubicaciones."
@@ -2450,11 +2479,11 @@ msgstr "La ubicación indicada no empieza por trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Seguir enlaces simbólicos, puntos de montaje y atajos"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Listar el contenido de las carpetas en forma de árbol."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "No se permite el elemento <%s> dentro de <%s>"
@@ -2511,7 +2540,7 @@ msgstr "Error al comprimir el archivo %s"
msgid "text may not appear inside <%s>"
msgstr "El texto no debe aparecer dentro de <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Mostrar la versión del programa y salir"
@@ -2527,8 +2556,8 @@ msgstr ""
"La carpeta de la que se tienen que leer los archivos indicados en ARCHIVO "
"(la predeterminada es la carpeta actual)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "CARPETA"
@@ -2585,7 +2614,7 @@ msgstr "Nombre del identificador C usado para el código fuente generado"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "El compilador C objetivo (predeterminado: la variable de entorno CC)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2596,124 +2625,124 @@ msgstr ""
"gresource.xml,\n"
"y el archivo del recurso debe tener la extensión se llama .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Deberá proporcionar exactamente un nombre de archivo\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "«nick» debe tener al menos dos caracteres"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Valor numérico no válido"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> ya especificado"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' ya especificado"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "los valores de las opciones deben tener al menos 1 bit establecido"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> debe contener al menos un <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> no está dentro del rango especificado"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> no es un miembro válido del tipo enumerado especificado"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr ""
"<%s> contiene una cadena que no está especificada en los tipos de opciones"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> contiene una cadena que no está en <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> ya especificada para esta clave"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> no permitido para las claves de tipo «%s»"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "<range> mínimo especificado es mayor que el máximo"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "categoría l10n no soportada: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n solicitado, pero no se ha dado el dominio de gettext"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "contexto de traducción especificado sin tener l10n activado"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Falló al analizar el valor <default> del tipo «%s»: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> no se puede especificar para tipos etiquetados como que tienen un "
"tipo enumerado"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> ya especificado para esta clave"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> no permitido para las claves de tipo «%s»"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> ya especificado"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> debe contener al menos un <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> ya especificado por esta clave"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2721,7 +2750,7 @@ msgstr ""
"<aliases> sólo se puede especificar para claves con tipos enumerados, de "
"opciones o después de <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2729,42 +2758,42 @@ msgid ""
msgstr ""
"<alias value='%s'/> dado cuando «%s» ya es un miembro del tipo enumerado"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr "<alias value='%s'/> dado cuando ya se había dado <choice value='%s'/>"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> ya especificado"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "el alias del objetivo «%s» no está en el tipo enumerado"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "el alias del objetivo «%s» no está en <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> debe contener al menos un <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "No se permiten nombres vacíos"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr ""
"Nombre «%s» no válido: los nombres deben comenzar por una letra minúscula"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2773,36 +2802,36 @@ msgstr ""
"Nombre «%s» no válido: el carácter «%c» no es válido; sólo se permiten "
"nombres en minúscula, números y guión («-»)"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "Nombre «%s» no válido: no se permiten dos guiones seguidos («--»)"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Nombre «%s» no válido: el último carácter no puede ser un guión («-»)"
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Nombre «%s» no válido: la longitud máxima es 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> ya especificado"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "no se pueden añadir claves a un esquema «list-of»"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> ya especificada"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2811,7 +2840,7 @@ msgstr ""
"<key name='%s'> eclipsa a <key name='%s'> en <schema id='%s'>; use "
"<override> para modificar el valor"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2820,56 +2849,56 @@ msgstr ""
"Se debe especificar exactamente uno de «type», «enum» o «flags» como "
"atributo para <key>"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> aún no especificado."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Tipo de cadena GVariant «%s» no válida"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "Se proporcionó <override> pero el esquema no extiende nada"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "No existe <key name='%s'> para sobrescribir"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> ya especificada"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> ya especificado"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> extiende el esquema «%s» que aún no existe"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> es una lista del esquema «%s» que aún no existe"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "No puede ser una lista de un esquema con una ruta"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "No se puede extender un esquema con una ruta"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2877,7 +2906,7 @@ msgstr ""
"<schema id='%s'> es una lista, extendiendo <schema id='%s'> que no es una "
"lista"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2886,17 +2915,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> extiende <schema id='%s' list-of='%s'> pero "
"«%s» no extiende «%s»"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "Si se especifica una ruta, debe comenzar y terminar con una barra"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "La ruta de la lista debe terminar con «:/»"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2905,49 +2934,49 @@ msgstr ""
"Advertencia: el esquema «%s» tiene la ruta «%s». Las rutas que empiezan por "
"«/apps/», «/desktop/» o «/system/» están obsoletas."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> ya especificado"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Sólo se permite un elemento <%s> dentro de <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "No se permite el elemento <%s> en el nivel superior"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Se requiere el elemento <default> en <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "El texto no debe aparecer dentro de <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Advertencia: referencia a <schema id='%s'/> no definida"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "se especificó --strict; saliendo."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Se ha ignorado este archivo completamente."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Ignorando este archivo."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2956,7 +2985,7 @@ msgstr ""
"No existe la clave «%s» en el esquema «%s» como se especificó en el archivo "
"de sobrescritura «%s»; se ignora para esta clave."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2965,7 +2994,7 @@ msgstr ""
"No existe la clave «%s» en el esquema «%s» como se especificó en el archivo "
"de sobrescritura «%s» y se ha especificado --strict; saliendo."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2974,7 +3003,7 @@ msgstr ""
"No se pueden proporcionar las alternativas para la clave «%s» traducida en "
"el esquema «%s» (sobrescribe el archivo %s): se ignora para esta clave."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2984,7 +3013,7 @@ msgstr ""
"el esquema «%s» (sobrescribe el archivo %s) y se ha especificado --strict; "
"saliendo."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2993,7 +3022,7 @@ msgstr ""
"Error al analizar la clave «%s» en el esquema «%s» como se especificó en el "
"archivo de sobrescritura «%s»: %s; se ignora para esta clave."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -3002,7 +3031,7 @@ msgstr ""
"Error al analizar la clave «%s» en el esquema «%s» como se especificó en el "
"archivo de sobrescritura «%s»: %s y se ha especificado --strict; saliendo."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3012,7 +3041,7 @@ msgstr ""
"sobrescritura «%s» está fuera del rango proporcionado en el esquema; se "
"ignora para esta clave."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3022,7 +3051,7 @@ msgstr ""
"sobrescritura «%s» está fuera del rango proporcionado en el esquema y se ha "
"especificado --strict; saliendo."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3032,7 +3061,7 @@ msgstr ""
"sobrescritura «%s» no está en la lista de opciones válidas; se ignora para "
"esta clave."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3042,23 +3071,23 @@ msgstr ""
"sobrescritura «%s» no está en la lista de opciones válidas y se ha "
"especificado --strict; saliendo."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Dónde almacenar el archivo gschemas.compiled"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Abortar ante cualquier error en los esquemas"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "No escribir el archivo gschemas.compiled"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "No forzar las restricciones de nombre de las claves"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3069,26 +3098,26 @@ msgstr ""
"Los archivos de esquema deben tener la extensión .gschema.xml,\n"
"y el archivo de caché se llama gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Deberá proporcionar exactamente un nombre de carpeta"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "No se encontró ningún archivo de esquemas: no se hace nada."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr ""
"No se han encontrado archivos de esquemas: se ha eliminado el archivo de "
"salida existente."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Nombre de archivo no válido %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Error al obtener la información del sistema de archivos para %s: %s"
@@ -3097,262 +3126,262 @@ msgstr "Error al obtener la información del sistema de archivos para %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "No se ha encontrado el punto de montaje para el archivo %s"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "No se puede renombrar la carpeta raíz"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Error al leer el archivo %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "No se puede renombrar el archivo, el nombre de archivo ya existe"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Nombre de archivo no válido"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Error al abrir el archivo %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Error al eliminar el archivo %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Error al mover a la papelera el archivo %s: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "No se pudo crear la carpeta de papelera %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "No se pudo encontrar la carpeta de nivel superior para la papelera %s"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Copiar (reflink/clone) entre puntos de montaje no está soportado"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "No se pudo encontrar o crear la carpeta %s de la papelera para %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "No se pudo crear la información de papelera para el archivo %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr ""
"No se pudo enviar a la papelera el archivo %s entre sistemas de archivos"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "No se pudo enviar a la papelera el archivo %s: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "No se pudo enviar a la papelera el archivo %s"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Error al crear la carpeta %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "El sistema de archivos no soporta enlaces simbólicos"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Error al crear el enlace simbólico %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Error al mover el archivo %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "No se puede mover una carpeta sobre una carpeta"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Falló la creación del archivo de respaldo"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Error al eliminar el archivo destino: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "No se soporta mover archivos entre puntos de montaje"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "No se pudo determinar el uso de disco de %s: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "El valor del atributo de ser no nulo"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Tipo de atributo no válido (se esperaba una cadena o no válido)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Nombre extendido del atributo no válido"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Error al establecer el atributo extendido «%s»: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (codificación no válida)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Error al obtener la información del archivo «%s»: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Error al obtener la información del descriptor del archivo: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Tipo de atributo no válido (se esperaba uint32)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Tipo de atributo no válido (se esperaba uint64)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Tipo de atributo no válido (se esperaba una cadena byte)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "No se pueden establecer permisos en enlaces simbólicos"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Error al establecer permisos: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Error al establecer el propietario: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "el enlace simbólico debe ser no nulo"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Error al establecer el enlace simbólico: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"Error al establecer el enlace simbólico: el archivo no es un enlace simbólico"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
"Los %d nanosegundos adicionales para la marca de tiempo UNIX %lld son "
"negativos"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"Los %d nanosegundos adicionales para la marca de tiempo UNIX %lld alcanzan 1 "
"segundo"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "La marca de tiempo UNIX %lld no cabe en 64 bits"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"La marca de tiempo UNIX %lld está fuera del rango soportado por Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "El nombre de archivo «%s» no se puede convertir a UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "No se puede abrir el archivo «%s»: error de Windows %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
"Error al establecer o modificar la hora de acceso para el archivo %s: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Error al establecer o modificar el tiempo de acceso: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "El contexto SELinux debe ser no nulo"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux no está activado en este sistema"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Error al establecer el contexto SELinux: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Establecer el atributo %s no está soportado"
@@ -3401,13 +3430,13 @@ msgstr "Error al crear una copia de respaldo: %s"
msgid "Error renaming temporary file: %s"
msgstr "Error al renombrar el archivo temporal: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Error al truncar el archivo: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Error al abrir el archivo %s: %s"
@@ -3424,7 +3453,7 @@ msgstr "El archivo destino no es un archivo regular"
msgid "The file was externally modified"
msgstr "El archivo se modificó externamente"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Error al eliminar el archivo antiguo: %s"
@@ -3560,42 +3589,42 @@ msgstr "Versión de NetworkManager demasiado antigua"
msgid "Output stream doesn’t implement write"
msgstr "El flujo de salida no implementa la escritura"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "La suma de vectores pasada a %s es demasiado grande"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "El flujo de origen ya está cerrado"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Falló la búsqueda del proxy no especificado"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Error al resolver «%s»: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s no está implementado"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Dominio no válido"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "El recurso en «%s» no existe"
@@ -3605,16 +3634,16 @@ msgstr "El recurso en «%s» no existe"
msgid "The resource at “%s” failed to decompress"
msgstr "El recurso en «%s» falló al descomprimir"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "No se puede renombrar los archivos de recursos"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "El recurso en «%s» no es una carpeta"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "El flujo de entrada no implementa la búsqueda"
@@ -3982,7 +4011,8 @@ msgstr "Socket no válido, falló la instalación debido a: %s"
msgid "Socket is already closed"
msgstr "El socket ya está cerrado"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "Expiró la E/S del socket"
@@ -3991,163 +4021,163 @@ msgstr "Expiró la E/S del socket"
msgid "creating GSocket from fd: %s"
msgstr "creando el GSocket desde fd: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "No se pudo crear el socket: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Se especificó una familia desconocida"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Se especificó un protocolo desconocido"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr ""
"No se pueden usar operaciones de datagrama en un zócalo que no es de "
"datagrama."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"No se pueden usar operaciones de datagrama en un zócalo sin un tiempo de "
"expiración establecido."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "no se pudo obtener la dirección local: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "no se pudo obtener la dirección remota: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "no se pudo escuchar: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Error al vincular con la dirección %s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Error al unirse al grupo de multicast: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Error al abandonar al grupo de multicast: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "No se soporta el multicast específico de la fuente"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Familia del socket no soportada"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "la fuente específica no es una dirección IPv4"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "El nombre de la interfaz es demasiado largo"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Interfaz no encontrada: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "No se soporta el multicast específico de la fuente para IPv4"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "No se soporta el multicast específico de la fuente para IPv6"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Error al aceptar la conexión: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Conexión en progreso"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "No se pudo obtener el error pendiente: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Error al recibir los datos: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Error al enviar los datos: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "No se pudo desconectar el socket: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Error al cerrar el socket: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Esperando la condición del socket: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "No se pudo enviar el mensaje: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Vectores de mensaje demasiado largos"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Error al enviar el mensaje: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage no está soportado en Windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Error al recibir el mensaje: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "No se pudieron leer las credenciales del socket: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials no está implementado en este SO"
@@ -4274,7 +4304,7 @@ msgstr "El proxy SOCKSv5 no soporta el tipo de dirección proporcionado."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Error desconocido del proxy SOCKSv5."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr ""
@@ -4291,46 +4321,46 @@ msgstr "En esta plataforma no se soportan las tuberías"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "No se puede manejar la versión %d de la codificación GThemedIcon"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "No se han encontrado direcciones válidas"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Error al resolver «%s» de forma inversa: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Error al analizar el registro DNS %s: paquete DNS mal formado"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "No hay un registro de DNS del tipo solicitado para «%s»"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "No se puede resolver «%s» temporalmente"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Error al resolver «%s»"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Paquete DNS mal formado"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Falló al analizar la respuesta DNS para «%s» "
@@ -4389,59 +4419,59 @@ msgstr "La contraseña introducida no es correcta."
msgid "Sending FD is not supported"
msgstr "No se soporta el envío de FD"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "Se esperaba un mensaje de control, se obtuvo %d"
msgstr[1] "Se esperaba un mensaje de control, se obtuvieron %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Tipos de datos complementarios inesperados"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "Se esperaba un fd pero se obtuvo %d\n"
msgstr[1] "Se esperaba un fd pero se obtuvieron %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Se recibió un fd no válido"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "No se soporta recibid FD"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Error al enviar las credenciales: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Error al comprobar si SO_PASSCRED está activada para el socket: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Error al activar SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Se esperaba leer un solo byte para recibir las credenciales pero se leyeron "
"cero bytes"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "No se esperaba un mensaje de control, pero se obtuvo %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Error al desactivar SO_PASSCRED: %s"
@@ -4457,7 +4487,7 @@ msgstr "Error al leer del descriptor del archivo: %s"
msgid "Error closing file descriptor: %s"
msgstr "Error al cerrar el descriptor del archivo: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Sistema de archivos raíz"
@@ -4540,131 +4570,126 @@ msgstr "Ejecutar un servicio dbus"
msgid "Wrong args\n"
msgstr "Argumentos incorrectos\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Atributo inesperado «%s» para el elemento «%s»"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "El atributo «%s» del elemento «%s» no se ha encontrado"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Etiqueta «%s» inesperada, se esperaba la etiqueta «%s»"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Etiqueta «%s» inesperada dentro de «%s»"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Fecha/hora «%s» no válida en el archivo de marcadores"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr ""
"No se pudo encontrar ningún archivo de marcadores válido en las carpetas de "
"datos"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Ya existe un marcador para el URI «%s»"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "No se encontró un marcador para el URI «%s»"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Ningún tipo MIME definido en el marcador para la URI «%s»"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "No se ha definido ningún flag privado en el marcador para el URI «%s»"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "No se ha establecido ningún grupo en el marcador para el URI «%s»"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Ninguna aplicación con nombre «%s» registró un marcador para «%s»"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Falló la expansión de lalinea ejecutable «%s» con el URI «%s»"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Carácter no representable en entrada de conversión"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Hay una secuencia parcial de caracteres en el final de la entrada"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "No se puede convertir el fallback «%s» al conjunto de códigos «%s»"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Tipo NUL empotrado en la entrada de conversión"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Tipo NUL empotrado en la salida de conversión"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "El URI «%s» no es una URI absoluta utilizando el esquema «file»"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "El archivo local en la URI «%s» no debe incluir un «#»"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "El URI «%s» no es válido"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "El nombre del host de la URI «%s» no es válido"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "El URI «%s» contiene caracteres de escape no válidos"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "El nombre de la ruta «%s» no es una ruta absoluta"
@@ -5087,79 +5112,79 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "Falló al abrir la carpeta «%s»: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "No se pudo asignar %lu byte para leer el archivo «%s»"
msgstr[1] "No se pudieron asignar %lu bytes para leer el archivo «%s»"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Error al leer el archivo %s: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "El archivo «%s» es demasiado grande"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Falló al leer del archivo «%s»: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Falló al abrir el archivo «%s»: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Falló al obtener los atributos del archivo «%s»: fstat() falló: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Falló al abrir el archivo «%s»: fdopen() falló: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "Falló al renombrar el archivo «%s» a «%s»: g_rename() falló: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Falló al escribir el archivo «%s»: falló write(): %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Falló al escribir el archivo «%s»: falló fsync(): %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Falló al crear el archivo «%s»: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "El archivo existente «%s» no se pudo eliminar: g_unlink() falló: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "La plantilla «%s» no es válida, no debería contener un «%s»"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "La plantilla «%s» no contiene XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Falló al leer el enlace simbólico «%s»: %s"
@@ -5187,16 +5212,16 @@ msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr ""
"No se puede hacer una lectura en bruto (raw) en g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr ""
"No se pudo encontrar la clave de archivo válida en las carpetas de búsqueda"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "No es un archivo regular"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5204,45 +5229,45 @@ msgstr ""
"El archivo de claves contiene la línea «%s» que no es un par valor-clave, "
"grupo o comentario"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Nombre de grupo no válido: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "El archivo de claves no empieza por un grupo"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Nombre de clave no válido: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "El archivo de claves contiene una codificación «%s» no soportada"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "El archivo de claves no tiene el grupo «%s»"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "El archivo de claves no tiene la clave «%s» en el grupo «%s»"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
"El archivo de claves contiene la clave «%s» con el valor «%s» el cual no es "
"UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
@@ -5250,7 +5275,7 @@ msgstr ""
"El archivo de claves contiene la clave «%s» que tiene un valor que no se "
"puede interpretar."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5259,84 +5284,84 @@ msgstr ""
"El archivo de claves contiene la clave «%s» en el grupo «%s» que tiene un "
"valor que no puede interpretarse."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr ""
"La clave «%s» en el grupo «%s» tiene el valor «%s», pero se esperaba %s"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4357
msgid "Key file contains escape character at end of line"
msgstr ""
"El archivo de claves contiene un carácter de escape al final de la línea"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4394
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "El archivo de claves contiene la secuencia de escape no válida «%s»"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4545
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "El valor «%s» no puede interpretarse como un número."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4559
#, c-format
msgid "Integer value “%s” out of range"
msgstr "El valor entero «%s» está fuera de rango"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4592
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "El valor «%s» no puede interpretarse como un número de coma flotante."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4631
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "El valor «%s» no puede interpretarse como un booleano."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"Falló al obtener los atributos del archivo «%s%s%s%s»: fstat() falló: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Falló al mapear el archivo «%s%s%s%s»: mmap() falló: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Falló al abrir el archivo «%s»: open() falló: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Error en la línea %d, carácter %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Texto codificado como UTF-8 en el nombre no válido; «%s» no es válido"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "«%s» no es un nombre válido"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "«%s» no es un nombre válido: «%c»"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Error en la línea %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5346,7 +5371,7 @@ msgstr ""
"carácter de referencia( por ejemplo &#234;) - tal vez el dígito es demasiado "
"grande"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5356,24 +5381,24 @@ msgstr ""
"un carácter «&» sin pretender iniciar una entidad; escape el carácter \"&\" "
"como &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "El carácter de referencia «%-.*s» no codifica un carácter permitido"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"La entidad «&;» está vacía; las entidades válidas son: &amp; &quot; &lt; "
"&gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "El nombre de la entidad «%-.*s» es desconocido"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5382,11 +5407,11 @@ msgstr ""
"\"&\" sin la intención de indicar una entidad, escape el signo \"&\" como "
"&amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "El documento debe comenzar con un elemento (por ejemplo: <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5395,7 +5420,7 @@ msgstr ""
"«%s» no es un carácter válido a continuación del carácter '<'; no debe "
"iniciar un nombre de elemento"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5404,12 +5429,12 @@ msgstr ""
"Carácter «%s» impropio, se esperaba un carácter «>» para terminar la "
"etiqueta vacía del elemento «%s»"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Demasiados atributos en el elemento «%s»"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5417,7 +5442,7 @@ msgstr ""
"Carácter «%s» impropio, se esperaba el carácter '=' después del nombre de "
"atributo «%s» del elemento «%s»"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5428,7 +5453,7 @@ msgstr ""
"etiqueta de inicio del elemento «%s» u opcionalmente un atributo; tal vez "
"utilizó un carácter que no es válido en un nombre de atributo"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5437,7 +5462,7 @@ msgstr ""
"Carácter «%s» impropio, se esperaba una marca de apertura de comillas "
"después del signo igual al darle valor al atributo «%s» del elemento «%s»"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5446,7 +5471,7 @@ msgstr ""
"«%s» no es un carácter válido a continuación de los caracteres '</'; «%s» "
"no debe iniciar un nombre de elemento"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5455,27 +5480,27 @@ msgstr ""
"«%s» no es un carácter válido a continuación del nombre del elemento de "
"cierre «%s»; el carácter permitido es '>'"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Se cerró el elemento «%s», no existe ningún elemento abierto"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr ""
"Se cerró el elemento «%s», pero el elemento que está abierto actualmente es "
"«%s»"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "El documento estaba vacío o sólo contenía espacios en blanco"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "El documento termina inesperadamente justo después de un '<'"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5484,7 +5509,7 @@ msgstr ""
"El documento termina inesperadamente con elementos todavía abiertos - «%s» "
"fue el último elemento abierto"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5493,21 +5518,21 @@ msgstr ""
"El documento termina inesperadamente, se esperaba un carácter '>' "
"finalizando la etiqueta <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "El documento termina inesperadamente dentro de un nombre de elemento"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "El documento termina inesperadamente dentro de un nombre de atributo"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr ""
"El documento terminó inesperadamente dentro de una etiqueta de apertura de "
"elemento."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5515,25 +5540,25 @@ msgstr ""
"El documento termina inesperadamente después de los signos igual que siguen "
"al nombre de atributo; sin valor de atributo"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "El documento termina inesperadamente dentro del valor de un atributo"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr ""
"El documento termina inesperadamente dentro de la etiqueta de cierre del "
"elemento «%s»"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"El documento termina inesperadamente dentro de la etiqueta de cierre para un "
"elemento no abierto"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"El documento termina inesperadamente dentro de un comentario o instrucción "
@@ -5598,187 +5623,183 @@ msgstr "Falta un argumento para %s"
msgid "Unknown option %s"
msgstr "Opción desconocida %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "objeto corrupto"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "sin memoria"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "se alcanzó el límite de «backtracking»"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "error interno"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr ""
"el patrón contiene elementos no soportados para una coincidencia parcial"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"no se soportan referencias anteriores como condiciones para coincidencias "
"parciales"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "se alcanzó el límite de recursividad"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "desplazamiento erróneo"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "bucle de repetición"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "solicitado el modo de coincidencia que no se compiló para JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "error desconocido"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ al final del patrón"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c al final del patrón"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "carácter no reconocido después de \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "números fuera de rango en el cuantificador {}"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "número demasiado grande en el cuantificador {}"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "falta la terminación ] para la clase de carácter"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "secuencia de escape no válida en la clase de carácter"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "rango fuera de orden en la clase de carácter"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "nada que repetir"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "carácter no reconocido después de (? o (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "Sólo se soportan las clases con nombres POSIX dentro de una clase"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "los elementos POSIX recopilados no están soportados"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "falta el ) de terminación"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "referencia a un subpatrón no existente"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "falta ) después del comentario"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "la expresión regular es demasiado larga"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "número o nombre mal formado después de (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "la comprobación «lookbehind» no tiene una longitud fija"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "el grupo condicional contiene más de dos ramas"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "se esperaba una comprobación después de (?("
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "una referencia con número no puede ser cero"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "nombre de clase POSIX desconocido"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "el valor del carácter en la secuencia \\x{…} es demasiado largo"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "no se permite \\C en comprobaciones «lookbehind»"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "falta el terminador en el nombre del subpatrón"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "dos subpatrones tienen el mismo nombre"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "secuencia \\P o \\p mal formada"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "nombre de propiedad desconocido después de \\P o \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "el nombre del subpatrón es demasiado largo (máximo 32 caracteres)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "demasiados subpatrones con nombre (máximo 10.000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "el valor octal es mayor que \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "el grupo DEFINE contiene más de una rama"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "opciones NEWLINE inconsistentes"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5786,119 +5807,119 @@ msgstr ""
"\\g no está seguido por un nombre entre llaves, corchetes angulares o número "
"o entre comillas, o por un número simple"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "no se permite un argumento para (*ACCEPT), (*FAIL), o (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) no reconocido"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "el número es demasiado grande"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "falta elnombre del subpatrón después de (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "no se permiten diferentes nombres para subpatrones del mismo número"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) debe tener un argumento"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c debe estar seguido de un carácter ASCII"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"\\k no está seguido por un nombre entre llaves, corchetes angulares o entre "
"comillas"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N no está soportado en una clase"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "el nombre es demasiado largo en (*MARK), (*PRUNE), (*SKIP), o (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "desbordamiento de código"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "carácter no reconocido después de (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "se desbordó el espacio de trabajo de compilación"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "no se encontró el subpatrón referenciado anteriormente comprobado"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Error al coincidir con la expresión regular %s: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "La biblioteca PCRE está compilada sin soporte para UTF8"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "La biblioteca PCRE está compilada con opciones incompatibles"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Error al compilar la expresión regular «%s» en el carácter %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "se esperaba un dígito hexadecimal o «}»"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "se esperaba un dígito hexadecimal"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "falta «<» en la referencia simbólica"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "referencia de símbolo sin terminar"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "referencia simbólica de longitud cero"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "se esperaba un dígito"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "referencia simbólica ilegal"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "«\\» al final de la cadena"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "secuencia de escape desconocida"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Error al analizar el texto de reemplazo «%s» en el carácter %lu: %s"
@@ -5930,136 +5951,141 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "El texto está vacío (o sólo contiene espacios en blanco)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Falló en la lectura de datos desde el proceso hijo (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Error inesperado al leer datos desde el proceso hijo (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Falló inesperado en waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "El proceso hijo terminó con el código %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "El proceso hijo terminado por la señal %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "El proceso hijo se detuvo por la señal %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "El proceso hijo terminó de forma anormal"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Falló al leer desde el conducto hijo (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Falló al ejecutar el proceso hijo «%s» (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Falló al bifurcar (fork) (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Falló al cambiar a la carpeta «%s» (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Falló al ejecutar el proceso hijo «%s» (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Falló al abrir el archivo para volver a mapear el descriptor: (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Falló al duplicar el descriptor del archivo para el proceso hijo (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Falló al bifurcar el proceso hijo (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Falló al cerrar el descriptor del archivo para el proceso hijo (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Error desconocido al ejecutar el proceso hijo «%s»"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "Falló al leer suficientes datos desde el conducto del pid hijo (%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Origen de argumento de FD no válido"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Falló al leer los datos desde un proceso hijo"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Falló al ejecutar el proceso hijo (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Falló al hacer dup() en el proceso hijo (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Nombre de programa no válido: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Cadena no válida en el vector del argumento en %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Cadena no válida en el entorno: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Carpeta de trabajo no válido: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Falló al ejecutar el programa auxiliar (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6067,225 +6093,225 @@ msgstr ""
"Falló inesperado en g_io_channel_win32_poll() al leer datos desde un proceso "
"hijo"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Una cadena vacía no es un número"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "«%s» no es un número con signo"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "El número «%s» está fuera de los límites [%s, %s]"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "«%s» no es un número sin signo"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "codificación %-e no válida en el URI"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Caracter ilegal en el URI"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Caracteres no UTF-8 en el URI"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Dirección IPv6 «%.*s» no válida en el URI"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Dirección IP codificada «%.*s» no válida en el URI"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Nombre de equipo traducido «%.*s» no válido en el URI"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "No se pudo analizar el puerto «%.*s» en el URI"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Puerto «%.*s» en el URI fuera de rango"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "El URI «%s» no es un URI absoluto"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "El URI «%s» no tiene componente de equipo"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "El URI no es absoluto y no se ha proporcionado un URI base"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Faltan el «=» y el valor del parámetro"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Falló al obtener memoria"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "El carácter se sale del rango para UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Secuencia no válida en la entrada de conversión"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "El carácter se sale del rango para UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "byte"
msgstr[1] "bytes"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bit"
@@ -6293,7 +6319,7 @@ msgstr[1] "bit"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6301,7 +6327,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6309,7 +6335,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6318,14 +6344,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6333,14 +6359,14 @@ msgstr[0] "%s byte"
msgstr[1] "%s bytes"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s bit"
msgstr[1] "%s bits"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6352,39 +6378,45 @@ msgstr[1] "%u bytes"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
+#~ msgid "backtracking limit reached"
+#~ msgstr "se alcanzó el límite de «backtracking»"
+
+#~ msgid "GApplication options"
+#~ msgstr "Opciones de GApplication"
+
#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "nombre editado: %s\n"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "El archivo local en la URI «%s» no debe incluir un «#»"
#~ msgid "internal error or corrupted object"
#~ msgstr "error interno u objeto corrupto"
diff --git a/po/eu.po b/po/eu.po
index d96ec11cc..a9476e83b 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -5,13 +5,13 @@
# Hizkuntza Politikarako Sailburuordetza <hizpol@ej-gv.es>, 2004.
# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2004, 2005, 2006, 2007, 2008, 2009, 2010.
# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2011, 2012, 2013, 2014, 2015, 2016, 2017.
-# Asier Sarasua Garmendia <asiersarasua@ni.eus>, 2019, 2020, 2021, 2022.
+# Asier Sarasua Garmendia <asiersarasua@ni.eus>, 2019, 2020, 2021, 2022, 2023.
#
msgid ""
msgstr "Project-Id-Version: glib master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-05 19:22+0000\n"
-"PO-Revision-Date: 2022-08-07 10:00+0100\n"
+"POT-Creation-Date: 2023-09-06 12:12+0000\n"
+"PO-Revision-Date: 2023-09-07 10:00+0100\n"
"Last-Translator: Asier Sarasua Garmendia <asiersarasua@ni.eus>\n"
"Language-Team: Basque <librezale@librezale.eus>\n"
"Language: eu\n"
@@ -20,41 +20,41 @@ msgstr "Project-Id-Version: glib master\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Aplikazio lehenetsia ezartzea edago onartuta oraindik"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr "Erabilitako azken aplikazioa motarako ezartzea ez dago onartuta oraindik"
-#: gio/gappinfo.c:808
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "Huts egin du ‘%s’ eduki motarako aplikazio lehenetsia aurkitzeak"
-#: gio/gappinfo.c:868
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Huts egin du ‘%s’ URI eskemarako aplikazio lehenetsia aurkitzeak"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "GApplication aplikazioaren aukerak"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "GApplication aplikazioaren aukerak:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Erakutsi GApplication-en aukerak"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr "Sartu GApplication zerbitzu moduan (erabili D-Bus zerbitzuaren fitxategietatik)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Gainidatzi aplikazioaren IDa"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Ordeztu exekuzioan dagoen instantzia"
@@ -133,7 +133,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Aplikazioaren identifikatzailea D-bus formatuan (adib: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FITXATEGIA"
@@ -226,11 +226,11 @@ msgstr "ezin da D-Bus-arekin konektatu: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "errorea '%s' mezua aplikazioari bidaltzean: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "ekintzaren izena eman behar da aplikazioaren IDaren ondoren\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -239,25 +239,25 @@ msgstr "baliogabeko ekintza-izena: “%s”\n"
"ekintzaren izenak soilik karaktere alfanumerikoak, “-” eta “.” karaktereak\n"
"eduki ditzake\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "errorea ekintzaren parametroa analizatzean: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "ekintzak gehienez parametro bat onartzen du\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "'list-actions' komandoak soilik aplikazioaren IDa hartzen du"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "ezin da '%s' aplikazioaren '.desktop' fitxategia aurkitu\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -266,9 +266,9 @@ msgstr "komando ezezaguna: %s\n"
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Zenbaketaren balio handiegia honi pasatuta: %s"
@@ -282,8 +282,8 @@ msgstr "Ez da bilaketarik onartzen oinarrizko korrontean"
msgid "Cannot truncate GBufferedInputStream"
msgstr "Ezin da GBufferedInputStream trunkatu"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Korrontea jadanik itxita dago"
@@ -291,7 +291,7 @@ msgstr "Korrontea jadanik itxita dago"
msgid "Truncate not supported on base stream"
msgstr "Trunkatzea ez da onartzen oinarrizko korrontean"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -310,28 +310,28 @@ msgid "Not enough space in destination"
msgstr "Ez dago nahikoa lekurik helburuan"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Byteen sekuentzia baliogabea bihurketa-sarreran"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Errorea bihurtzean: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Hasieratzea bertan behera uztea ez dago onartuta"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "“%s” karaktere-multzoa “%s” bihurtzea ez da onartzen"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Ezin izan da “%s” “%s” bihurtzeko tresna ireki"
@@ -374,24 +374,24 @@ msgstr "Kredentzialak usurpatzea ezinezkoa da SE honetan"
msgid "Unexpected early end-of-stream"
msgstr "Ustekabeko korronte-amaiera azkarregia"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Onartu gabeko “%s” gakoa helbidearen “%s” sarreran"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Zentzurik gabeko gakoa/balioa bikotearen konbinazioa “%s” helbidearen sarreran"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
"keys)"
msgstr "“%s” helbidea baliogabea da (gako hauetako bat behar du: “path” (bide-izena), “tmpdir” (aldi baterako direktorioa) edo “abstract” (abstraktua))"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -506,20 +506,20 @@ msgstr "Errorea “%s” komando-lerroa abiaraztean: "
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr "Ezin da saioaren bus-eko helbidea zehaztu (ez dago SE honetan garatuta)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
"— unknown value “%s”"
msgstr "Ezin da bus-aren helbidea zehaztua inguruneko DBUS_STARTER_BUS_TYPE aldagaitik. “%s” balio ezezaguna"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
msgstr "Ezin da bus-aren helbidea zehaztua, inguruneko DBUS_STARTER_BUS_TYPE aldagaia ezarri gabe dagoelako"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "%d bus mota ezezaguna"
@@ -538,424 +538,430 @@ msgid ""
"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
msgstr "Autentifikazioko metodo guztiak agortuta (saiatuta: %s) (erabilgarri: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Edukiaren zati bat falta da byte bat irakurtzean"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Erabiltzailearen IDak ID bera izan behar du parekoan eta zerbitzarian"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Bertan behera utzita GDBusAuthObserver::authorize-authenticated-peer erabiliz"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Errorea “%s” direktorioaren informazioa eskuratzean: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr "“%s” direktorioko baimenak gaizki osatuta. 0700 modua espero zen, baina 0%o lortuta"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Errorea “%s” direktorioa sortzean: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Eragiketa ez dago onartuta"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Errorea “%s” gako sorta irakurtzeko irekitzean: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "“%2$s”(e)ngo gako sortako %1$d. lerroa (“%3$s” edukiarekin) gaizki osatuta dago"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "“%2$s”(e)ngo gako sortako %1$d. lerroko aurreneko tokena (“%3$s” edukiarekin) gaizki osatuta dago"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "“%2$s”(e)ngo gako sortako %1$d. lerroko bigarren tokena (“%3$s” edukiarekin) gaizki osatuta dago"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Ez da %d IDko cookie-rik aurkitu “%s”(e)ngo gako sortan"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Errorea blokeoko “%s” fitxategia sortzean: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Errorea blokeoaren “%s” fitxategi zaharkitua ezabatzean: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Errorea blokeoko (estekatu gabeko) “%s” fitxategia ixtean: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Errorea blokeoko “%s” fitxategia desestekatzean: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Errorea “%s” gako sorta idazteko irekitzean: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Gainera, “%s”(r)en blokeoa askatzeak ere huts egin du: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "Konexioa itxi egin da"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Denbora-mugara iritsi da"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr "Onartu gabeko banderak aurkitu dira bezeroaren aldeko konexioa eraikitzean"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr "Ez dago “org.freedesktop.DBus.Properties” interfazerik %s bide-izeneko objektuan"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Ez dago “%s” propietaterik"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "“%s” propietatea ez da irakurgarria"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "“%s” propietatea ez da idazgarria"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr "Errorea “%s” propietatea ezartzean: “%s” mota espero zen, baina “%s” lortu da"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Ez dago “%s” interfazerik"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Ez dago “%s” interfazerik %s bide-izeneko objektuan"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Ez dago “%s” metodorik"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "“%s” mezu mota ez dator bat espero zen “%s” motarekin"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Jadanik objektu bat esportatuta dago %s interfazearentzako %s(e)n"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Ezin da %s.%s propietatea eskuratu"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Ezin da %s.%s propietatea ezarri"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "“%s” metodoak “%s” mota itzuli du, baina “%s” espero zen"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "“%s” metodoa, “%s” interfazekoa eta “%s” sinadura duena, ez da existitzen"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Azpizuhaitza jadanik %s(e)ra esportatuta"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Objekturik ez da existitzen “%s” bide-izenean"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "mota baliogabea da"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "METHOD_CALL-en mezua: goiburuko PATH edo MEMBER eremua falta da"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr "METHOD_CALL-en mezua: goiburuko PATH edo MEMBER eremua falta da edo baliogabea da"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "METHOD_RETURN-en mezua: goiburuko REPLY_SERIAL eremua falta da"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr "METHOD_RETURN-en mezua: goiburuko REPLY_SERIAL eremua falta da edo baliogabea da"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "ERROR-en mezua: goiburuko REPLY_SERIAL edo ERROR_NAME eremua falta da"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr "ERROR-en mezua: goiburuko REPLY_SERIAL edo ERROR_NAME eremua falta da edo baliogabea da"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "SIGNAL-en mezua: goiburuko PATH, INTERFACE edo MEMBER eremua falta da"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr "SIGNAL-en mezua: goiburuko PATH, INTERFACE edo MEMBER eremua falta da edo baliogabea da"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
msgstr "SIGNAL-en mezua: goiburuko PATH eremua '/org/freedesktop/DBus/Local' balio erreserbatua erabiltzen ari da"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
msgstr "SIGNAL-en mezua: goiburuko INTERFACE eremua '/org/freedesktop/DBus/Local' balio erreserbatua erabiltzen ari da"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "byte %lu irakurtzea nahi zen, baina soilik %lu lortu da"
msgstr[1] "%lu byte irakurtzea nahi ziren, baina %lu lortu da"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "NUL bytea espero zen “%s” katearen ondoren, baina “%d” bytea aurkitu da"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
"(length of string is %d). The valid UTF-8 string up until that point was “%s”"
-msgstr "Baliozko UTF-8 katea espero zen, baina baliogabeko byte batzuk aurkitu dira byteen %d desplazamenduan (katearen luzera: %d). Ordurarteko baliozko UTF-8 katea honakoa zen: “%s”"
+msgstr "Baliozko UTF-8 katea espero zen, baina baliogabeko byte batzuk aurkitu dira byteen %d desplazamenduan (katearen luzera: %d). Ordura arteko baliozko UTF-8 katea honakoa zen: “%s”"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Balioa sakonegi habiaratuta dago"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Analizatutako “%s” balioa ez da baliozko D-Bus objektuaren bide-izen bat"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Analizatutako “%s” balioa ez da baliozko D-Bus sinadura"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
msgid_plural ""
"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
-msgstr[0] "%u byte luzerako matrizea aurkituta. Gehieneko luzera 2<<26 byte da (64 MiB)."
-msgstr[1] "%u byte luzerako matrizea aurkituta. Gehieneko luzera 2<<26 byte da (64 MiB)."
+msgstr[0] "%u byte luzerako matrizea aurkitu da. Gehieneko luzera 2<<26 byte da (64 MiB)."
+msgstr[1] "%u byte luzerako matrizea aurkitu da. Gehieneko luzera 2<<26 byte da (64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
"bytes, but found to be %u bytes in length"
msgstr "“a%c' motako matrizea aurkitu da, expected to have a length a multiple of %u byteko multiploko luzera edukitzea espero zen, baina %u byteko luzera du"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "D-Bus-en ez dira hutsik dauden egiturak (tuplak) onartzen"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Analizatutako “%s” balioa aldagaiarentzat ez da baliozko D-Bus sinadura bat"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr "Errorea GVariant deserializatzean “%s” kate motarekin D-Bus konexioko formatutik"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
"0x%02x"
msgstr "Baliogabeko endian balioa. 0x6c (“l“) edo 0x42 (“B“) espero zen, baina 0x%02x balioa aurkitu da."
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Protokoloaren bertsio nagusia baliogabea. 1 espero zen, baina %d aurkitu da"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Sinaduraren goiburua aurkitu da, baina ez da sinadura motakoa"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr "Sinaduraren goiburua “%s” sinadurarekin aurkitu da, baina gorputza hutsik dago"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Analizatutako “%s” balioa ez da baliozko D-Bus sinadura (gorputzarentzako)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
msgstr[0] "Ez dago sinaduraren goibururik mezuan, baina mezuaren gorputzak %u byte du"
msgstr[1] "Ez dago sinaduraren goibururik mezuan, baina mezuaren gorputzak %u byte ditu"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Ezin da mezua deserializatu: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr "Errorea GVariant serializatzean “%s” kate motarekin D-Bus konexioaren formatura"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr "Mezuko fitxategi-deskriptoreen kopurua (%d) goiburu-eremukoaren (%d) desberdina da"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Ezin da mezua serializatu: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "Mezuaren gorputzak “%s” sinadura du, baina ez dago sinaduraren goibururik"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
"“%s”"
msgstr "Mezuaren gorputzak “%s” sinadura mota du, baina goiburuaren eremuko sinadura “%s” da"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Mezuaren gorputza hutsik dago, baina goiburuaren eremuko sinadura “(%s)“ da"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Errorearen itzulera “'%s” motako gorputzarekin"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Errorearen itzulera gorputz hutsarekin"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Sakatu edozer tekla leihoa ixteko)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "Saioaren dbus ez da exekutatzen ari, eta abiarazte automatikoak huts egin du"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Ezin da hardwarearen profila eskuratu: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Ezin izan da %s edo %s kargatu: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Errorea %s(r)en StartServiceByName deia egitean: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Ustekabeko %d erantzuna StartServiceByName(“%s”) metodotik"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
"and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
msgstr "Ezin da metodoari deitu: proxyak jaberik gabeko %s izen ezaguna du eta G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START banderarekin eraiki zen"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Izen abstraktuen lekua ez da onartzen"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Ezin da izendapeneko fitxategia zehaztu zerbitzari bat sortzean"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Errorea “%s” izendapeneko fitxategian idaztean: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "“%s” katea ez da baliozko D-Bus GUID bat"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Ezin da onartu gabeko “%s” garraioa entzun"
@@ -982,14 +988,14 @@ msgstr "Komandoak:\n"
"\n"
"Erabili “%s KOMANDOA --help” komando bakoitzari dagokion laguntza lortzeko.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Errorea: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Errorea introspekzioko XMLa analizatzean: %s\n"
@@ -999,280 +1005,285 @@ msgstr "Errorea introspekzioko XMLa analizatzean: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Errorea: '%s' ez da baliozko izena\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Errorea: '%s' ez da objektuaren baliozko bide-izena\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Konektatu sistemako bus-arekin"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Konektatu saioko bus-arekin"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Konektatu emandako D-Bus helbidera"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Konexioaren amaierako puntuaren aukerak:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Aukerak konexioaren amaierako puntua zehaztuz"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Ez da konexioaren amaierako punturik zehaztu"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Konexioaren hainbat amaierako puntu zehaztu dira"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "Abisua: introspekzioko datuen arabera, “%s” interfazea ez da existitzen\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
"interface “%s”\n"
msgstr "Abisua: introspekzioko datuen arabera, “%s” metodoa ez da existitzen “%s” interfazean\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Seinalearen aukerazko helburua (izen esklusiboa)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Objektuaren bide-izena bere gainera seinalea igortzeko"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Seinale eta interfazearen izena"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Igorri seinale bat."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Errorea konektatzean: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Errorea: '%s' ez da bus-aren baliozko izen esklusiboa\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Errorea: objektuaren bide-izena ez dago zehaztuta\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Errorea: seinalearen izena ez dago zehaztuta\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Errorea: “%s” seinalearen izena baliogabea da\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Errorea: '%s' ez da interfazearen baliozko izena\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Errorea: '%s' ez da kidearen baliozko izena\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Errorea %d parametroa analizatzean: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Errorea konexioa garbitzean: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Helburuaren izena metodoari deitzeko"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Objektuaren bide-izena metodoari deitzeko"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Metodo eta interfazearen izena"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Denbora-muga (segundotan)"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Onartu baimen dinamikoa"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Deitu metodo bati urruneko objektu batean."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Errorea: helburua ez dago zehaztuta\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Errorea: '%s' ez da busaren baliozko izena\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Errorea: metodoaren izena ez dago zehaztuta\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Errorea: “%s” metodoaren izena baliogabea da\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Errorea “%2$s” motako %1$d parametroa analizatzean: %3$s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Errorea %d heldulekua gehitzean: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Helburuko izena introspekzioa egiteko"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Objektuaren bide-izena introspekzioa egiteko"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Inprimatu XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Aztertu umeen barnean"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Soilik inprimatzeko propietateak"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Urruneko objektu baten introspekzioa egin."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Helburuko izena monitorizatzeko"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Objektuaren bide-izena monitorizatzeko"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Monitorizatu urruneko objektu bat."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Errorea: ezin da monitorizatu non-message-bus konexio bat\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Aktibatu beharreko zerbitzua bestearen (izen ezaguna) zain egon aurretik"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
msgstr "Denbora-muga errore batekin irten aurretik zain egoteko (segundotan); 0 denbora-mugarik ez (lehenetsia)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[AUKERA…] BUS-IZENA"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Bus-izen bat agertzeko zain egon."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Errorea: zerbitzua zehaztu behar da aktibatzeko.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Errorea: zerbitzua zehaztu behar da haren zain egoteko.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Errorea: argumentu gehiegi.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Errorea: '%s' ez da busaren izen ezagun bat\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Ez duzu arazketa-ezarpenak aldatzeko baimenik"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5113
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Izengabea"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Mahaigaineko fitxategiak ez du Exec eremua zehaztu"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Ezin izan da aplikazioak eskatzen duen terminala aurkitu"
-#: gio/gdesktopappinfo.c:3631
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Ez da aurkitu ‘%s’ programa $PATH bidean"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Ezin da erabiltzailearen aplikazioaren %s konfigurazio-karpeta sortu: %s"
-#: gio/gdesktopappinfo.c:3635
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Ezin da erabiltzailearen MIMEren %s konfigurazio-karpeta sortu: %s"
-#: gio/gdesktopappinfo.c:3877 gio/gdesktopappinfo.c:3901
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Aplikazioaren informazioari identifikatzaile bat falta zaio"
-#: gio/gdesktopappinfo.c:4137
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Ezin da erabiltzailearen mahaigaineko %s fitxategia sortu"
-#: gio/gdesktopappinfo.c:4273
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "%s(r)en definizio pertsonalizatua"
@@ -1341,78 +1352,83 @@ msgstr "GEmblen espero zen GEmblemedIcon-entzako"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Ontziaren muntaia ez da existitzen"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Ezin da direktorioaren gainean kopiatu"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Ezin da direktorioa kopiatu direktorio gainean"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Helburuko fitxategia existitzen da"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Ezin da direktorioa errekurtsiboki kopiatu"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "Lotura ez da onartzen"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Kopiatutako fitxategi barrutia ez da onartzen"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Errorea fitxategia batzean: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Lotura ez da onartzen"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Muntaien artean kopiatzea (reflink/clone) ez dago onartuta"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Kopiatzea (reflink/clone) ez dago onartuta edo baliogabea da"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Kopiatzea (reflink/clone) ez dago onartuta edo ez du funtzionatzen"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Ezin da fitxategi berezia kopiatu"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Esteka sinbolikoaren baliogabeko balioa eman da"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Esteka sinbolikoak ez dira onartzen"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Zakarrontzira botatzea ez dago onartuta"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Fitxategi-izenek ezin dute “%c” eduki"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Huts egin du “%s” txantiloirako aldi baterako direktorioa sortzeak: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "bolumenak ez dauka muntatzea inplementatuta"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Ez da aplikaziorik erregistratu fitxategi hau kudeatzeko"
@@ -1421,11 +1437,11 @@ msgid "Enumerator is closed"
msgstr "Enumeratzailea itxi da"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Fitxategiaren enumeratzaileak eragiketa bat du lanean"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Fitxategiaren enumeratzailea itxita dago jadanik"
@@ -1438,28 +1454,28 @@ msgstr "Ezin da GFileIcon kodeketaren %d bertsioa kudeatu"
msgid "Malformed input data for GFileIcon"
msgstr "Gaizki osatutako sarrerako datuak GFileIcon-entzako"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Korronteak ez du query_info onartzen"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Ez da bilaketarik onartzen korrontean"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Trunkatzea ez da baimentzen sarrerako korrontean"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Trunkatzea ez da onartzen korrontean"
#
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Ostalari-izen baliogabea"
@@ -1492,37 +1508,37 @@ msgstr "HTTP proxyaren erantzuna handiegia da"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "HTTP proxy zerbitzariak konexioa ustekabean itxi du."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Okerreko token kopurua (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Ez dago %s klasearen izen motarik"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "%s motak ez du GIcon interfazea inplementatzen"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "%s mota ez du klaserik"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Gaizko osatutako bertsio zenbakia: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "%s motak ez du from_tokens() inplementatzen GIcon interfazean"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Ezin da ikonoaren kodeketaren emandako bertsioa kudeatu"
@@ -1563,7 +1579,7 @@ msgstr "Sarrerako korronteak ez dauka irakurtzea inplementatuta"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Korronteak eragiketa bat du lanean"
@@ -1669,12 +1685,12 @@ msgid "Error writing to stdout"
msgstr "Errorea irteera arruntean (stdout) idaztean"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "KOKALEKUA"
@@ -1689,8 +1705,8 @@ msgid ""
"like smb://server/resource/file.txt as location."
msgstr "'cat' tresna bezala erabiltzen da 'gio cat', baina GIOren kokalekuak erabiliz lokaleko fitxategien ordez. Adibidez, honelako zerbait erabil dezakezu kokaleku gisa: smb://zerbitzaria/baliabidea/fitxategia.txt"
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Ez da kokalekurik eman"
@@ -1783,67 +1799,72 @@ msgstr "Ez jarraitu esteka sinbolikoak"
msgid "attributes:\n"
msgstr "atributuak:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "bistaratu izena: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "editatu izena: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "izena: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "mota: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "tamaina: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "ezkutukoa\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "URIa: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "bide-izen lokala: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "unix muntatzea: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Atributu ezargarriak:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Atributu idazgarrien izen-espazioak:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Erakutsi kokalekuei buruzko informazioa."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location. File attributes can\n"
"be specified with their GIO name, e.g. standard::icon, or just by\n"
"namespace, e.g. unix, or by “*”, which matches all attributes"
-msgstr "“ls” tresna bezala erabiltzen da “gio info“, baina GIOren kokalekuak erabiliz \n"
-"lokaleko fitxategien ordez. Adibidez, honelako zerbait erabil dezakezu\n"
-"kokaleku gisa: smb://zerbitzaria/baliabidea/fitxategia.txt. Fitxategiaren\n"
-"atributuak haien GIO izenekin zehatz daiteke, adibidez, standard::icon edo\n"
+msgstr "'ls' tresna bezala erabiltzen da 'gio info', baina GIOren kokalekuak erabiliz fitxategi lokalen ordez. Adibidez, honelako zerbait erabil dezakezu kokaleku gisa: smb://zerbitzaria/baliabidea/fitxategia.txt Fitxategiaren atributuak\n"
+"haien GIO izenekin zehatz daitezke, adibidez, standard::icon edo\n"
"izen-espazioarekin, adib. unix edo “*“ (atributu guztiekin bat datorrelarik)."
#. Translators: commandline placeholder
@@ -1896,20 +1917,20 @@ msgstr "Inprimatu bistaratze-izenak"
msgid "Print full URIs"
msgstr "Erakutsi URI osoak"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Zerrendatu kokalekuen edukia."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location. File attributes can\n"
"be specified with their GIO name, e.g. standard::icon"
-msgstr "'ls' tresna bezala erabiltzen da 'gio list', baina GIOren kokalekuak erabiliz \n"
-"lokaleko fitxategien ordez. Adibidez, honelako zerbait erabil dezakezu\n"
-"kokaleku gisa: smb://zerbitzaria/baliabidea/fitxategia.txt. Fixategiaren\n"
-"atributuak haien GIO izenekin zehatz daiteke, adibidez, standard::icon"
+msgstr "'ls' tresna bezala erabiltzen da 'gio list', baina GIOren\n"
+"kokalekuak erabiliz fitxategi lokalen ordez. Adibidez, honelako zerbait\n"
+"erabil dezakezu kokaleku gisa: smb://zerbitzaria/baliabidea/fitxategia.txt Fitxategiaren atributuak\n"
+"haien GIO izenekin zehatz daitezke, adibidez, standard::icon."
#. Translators: commandline placeholder
#: gio/gio-tool-mime.c:73
@@ -2091,19 +2112,19 @@ msgstr "Muntatu TCRYPT bolumen ezkutu bat"
msgid "Mount a TCRYPT system volume"
msgstr "Muntatu TCRYPT sistema-bolumen bat"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Anonimoki atzitzea debekatua"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Ez dago unitaterik gailu-fitxategirako"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Ez dago bolumenik ID horretarako"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Muntatu edo desmuntatu kokalekuak."
@@ -2163,7 +2184,7 @@ msgstr "Argumentu gehiegi"
#: gio/gio-tool-rename.c:97
#, c-format
msgid "Rename successful. New uri: %s\n"
-msgstr "Izenez ongi aldatu da. URI berria: %s\n"
+msgstr "Izena ongi aldatu da. URI berria: %s\n"
#: gio/gio-tool-save.c:52
msgid "Only create if not existing"
@@ -2298,11 +2319,11 @@ msgstr "Emandako kokalekua ez da trash:/// testuarekin hasten"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Jarraitu esteka sinbolikoak, muntatze-puntuak eta lasterbideak"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Zerrendatu direktorioen edukia zuhaitz baten bezalako formatuan."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "<%s> elementua ez da <%s>(r)en barruan onartzen"
@@ -2357,7 +2378,7 @@ msgstr "Errorea %s fitxategia konprimatzean"
msgid "text may not appear inside <%s>"
msgstr "testua ezin da <%s>(r)en barruan egon"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Erakutsi programaren bertsioa eta irten"
@@ -2371,8 +2392,8 @@ msgid ""
"directory)"
msgstr "FITXATEGIA atributuak erreferentziatutako fitxategiak kargatzeko direktorioak (lehenetsia: uneko direktorioa)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "DIREKTORIOA"
@@ -2423,7 +2444,7 @@ msgstr "C identifikatzailearen izena (sortutako iturburuaren kodean erabilita)"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "Helburuko C konpilatzailea (balio lehenetsia: CC ingurumen-aldagaia)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2432,425 +2453,425 @@ msgstr "Konpilatu baliabidearen zehaztapen bat baliabideko fitxategi batean.\n"
"Baliabideen zehaztapenen fitxategiak .gresource.xml luzapena dute,\n"
"eta baliabideen fitxategiek berriz .gresource luzapena."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Fitxategi baten izena bakarrik eman behar duzu\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "goitizenak gutxienez 2 karaktere eduki behar ditu"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Baliogabeko zenbakizko balioa"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> jadanik zehaztuta"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "\"value='%s'\" jadanik zehaztuta"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "balioen banderek 1 bit ezarrita eduki behar dute"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s>(e)k gutxienez <value> bat eduki behar du"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> ez dago zehaztutako barrutian"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> ez da zehaztutako zenbatutako motaren baliozko kidea"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s>(e)k badu katerik zehaztutako bandera motetan ez dagoena"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s>(e)k badu katerik <choices>-en ez dagoena"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> jadanik zehaztuta gako honentzat"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> ez dago baimenduta “%s” motako gakoentzako"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "<range> zehaztutako gutxienekoa gehienekoa baino handiagoa da"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "onartu gabeko l10n kategoria: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n eskatuta, baina ez da gettext-en domeinurik eman"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "balioaren emandako itzulpenaren testuingurua l10n gaitu gabe"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Huts egin du “%s” motaren <default> balioa analizatzean "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr "Ezin da <choices> zehaztu zenbatutako mota bat baluten bezalako etiketatutako gakoentzako"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> jadanik zehaztuta gakoarentzako"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> ez dago baimenduta “%s” motako gakoentzako"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> jadanik emanda"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices>-ek gutxienez <choice> bat eduki behar du"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> jadanik zehaztuta gako honentzako"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
msgstr "<aliases> soilik zehatz daitezke zenbatuta edo banderak motetako gakoekin, edo <choices> ondoren"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
"type"
msgstr "<alias value='%s'/> eman da “%s” jadanik zenbatuta motako kide denean"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr "<alias value='%s'/> eman da jadanik <choice value='%s'/> emanda dagoenean"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> jadanik zehaztuta"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "helburuko “%s” aliasa ez da zenbatuta motakoa"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "helburuko “%s” aliasa ez dagon <choices>-en"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases>-ek gutxienez <alias> bat eduki behar du"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Izen hutsak ez daude baimenduta"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "“%s” izena baliogabea: izenak letra minuskula batekin hasi behar dira"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
"and hyphen (“-”) are permitted"
msgstr "“%s” izena baliogabea: “%c” karakterea baliogabea. soilik letra minuskulak, zenbakiak eta hipenazioa (“-“) onartzen dira."
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "“%s” izena baliogabea: bi hipenazio jarraian (“--“) ez dago onartuta."
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "“%s” izena baliogabea: azken karakterea ezin da hipenazioa (“-“) izan."
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "“%s” izena baliogabea: gehieneko luzera 1024 da"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> jadanik zehaztuta"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Ezin zaio gakorik gehitu “list-of” eskema bati"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> jadanik zehaztuta"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
"to modify value"
msgstr "<key name='%s'>-ek <key name='%s'> iluntzen du <schema id='%s'>-en; erabili <override> balioa aldatzeko"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
"to <key>"
msgstr "<key>-rentzako hauetariko bat zehaztu behar da atributu gisa: “type“, “enum“edo “flags“"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> ez dago (oraindik) definituta."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Baliogabeko GVariant motako “%s” katea"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> eman da, baina eskema ez da ezer hedatzen ari"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Ez dago <key name='%s'>(e)rik gainidazteko"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> jadanik zehaztuta"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> jadanik zehaztuta"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> oraindik existitzen ez den “%s” eskema hedatzen du"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> oraindik existitzen ez den “%s” eskemaren zerrenda da"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Ezin da bide-izena duen eskema baten zerrenda izan"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Ezin da eskema bat bide-izen batekin hedatu"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr "<schema id='%s'> zerrenda bat da, zerrenda ez den <schema id='%s'> hedatzen duena"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
"does not extend “%s”"
msgstr "<schema id='%s' list-of='%s'>(e)k <schema id='%s' list-of='%s'> hedatzen du, baina “%s”(e)k ez du “%s” hedatzen"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "Bide-izen bat ematen bada, barra batekin (/) hasi eta amaitu behar da"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Zerrenda bateko bide-izena “:/“-rekin amaitu behar da"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
"desktop/” or “/system/” are deprecated."
-msgstr "Abisua: “%s” eskemak “%s” bide-izena du. \"/apps/\", \"/desktop/\" edo \"/system/\"-ekin hasten diren bide-izenak zaharkituta daude."
+msgstr "Abisua: “%s” eskemak “%s” bide-izena du. \"/apps/\", \"/desktop/\" edo \"/system/\"-ekin hasten diren bide-izenak zaharkituta daude."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> jadanik zehaztuta"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Soilik <%s> elementu bakarra onartzen da <%s>(r)en barruan"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "<%s> elementua ez da maila gorenean onartzen"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "<default> elementua behar da <key>-en"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Testua ezin da <%s>(r)en barruan egon"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Abisua: definitu gabeko erreferentzia <schema id='%s'/>-erako"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "--strict zehaztu da; irteten."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Fitxategi oso honi ezikusi egin zaio."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Fitxategi honi ezikusi egiten."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
"override for this key."
msgstr "Ez dago “%s” gakorik “%s” eskeman, gainidazteko “%s” fitxategian ageri den bezala; gako honen gainidazteari ezikusi egiten."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
"strict was specified; exiting."
msgstr "Ez dago “%s” gakorik “%s” eskeman, gainidazteko “%s” fitxategian ageri den bezala, eta --strict zehaztu da; irteten."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
"“%s” (override file “%s”); ignoring override for this key."
msgstr "Ezin dira mahaigainaren araberako gainidazteak hornitu “%s” gako lokalizatuetarako “%s” eskeman (gainidatzi “%s” fitxategia); gako honen gainidazteari ezikusi egiten."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
"“%s” (override file “%s”) and --strict was specified; exiting."
msgstr "Ezin dira mahaigainaren araberako gainidazteak hornitu “%s” gako lokalizatuetarako “%s” eskeman (gainidatzi “%s” fitxategia), eta --strict zehaztu da; irteten."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
"%s. Ignoring override for this key."
msgstr "Errorea “%s” gakoa (“%s” eskemakoa) analizatzean “%s” gainidazte-fitxategian ageri den bezala: %s. Gako honen gainidazteari ezikusi egiten."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
"%s. --strict was specified; exiting."
msgstr "Errorea “%s” gakoa (“%s” eskemakoa) analizatzean “%s” gainidazte-fitxategian ageri den bezala: %s. --strict zehaztu da; irteten."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
"range given in the schema; ignoring override for this key."
msgstr "“%s” gakoaren gainidaztea (“%s” eskemakoa) “%s” gainidazte-fitxategian ageri den bezala, eskeman emandako barrutitik kanpo dago; gako honen gainidazteari ezikusi egiten."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
"range given in the schema and --strict was specified; exiting."
msgstr "“%s” gakoaren gainidaztea (“%s” eskemakoa) “%s” gainidazte-fitxategian ageri den bezala, eskeman emandako barrutitik kanpo dago eta --strict zehaztu da; irteten."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
"list of valid choices; ignoring override for this key."
msgstr "“%s” gakoaren gainidaztea (“%s” eskemakoa) “%s” gainidazte-fitxategian ageri den bezala, ez dago baliozko aukeren zerrendan; gako honen gainidazteari ezikusi egiten."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
"list of valid choices and --strict was specified; exiting."
msgstr "“%s” gakoaren gainidaztea (“%s” eskemakoa) “%s” gainidazte-fitxategian ageri den bezala, ez dago baliozko aukeren zerrendan eta --strict zehaztu da; irteten."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Non gordeko den 'gschemas.compiled' fitxategia"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Abortatu eskemetan edozer motako erroreak agertzean"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Ez idatzi gschema.compiled fitxategia"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Ez derrigortu gako-izenen murriztapenik"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -2859,25 +2880,25 @@ msgstr "Konpilatu GSettings eskemen fitxategi guztiak eskema-cache batean.\n"
"Eskemen fitxategiek .gschema.xml luzapena eduki behar dute,\n"
"eta cache-ko fitxategia gschemas.compiled deitzen da."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Direktorio baten izena bakarrik eman behar duzu"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Ez da eskemen fitxategirik aurkitu: ez da ezer egingo."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "Ez da eskemen fitxategia aurkitu: lehendik dagoen irteera-fitxategia kendu da."
#
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "%s fitxategi-izen baliogabea"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Errorea %s(r)en fitxategi-sistemako informazioa lortzean: %s"
@@ -2886,255 +2907,255 @@ msgstr "Errorea %s(r)en fitxategi-sistemako informazioa lortzean: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Ez da %s fitxategiaren muntatze-puntua aurkitzen"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Ezin da erroko direktorioa izenez aldatu"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Errorea '%s' fitxategia izenez aldatzean: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Ezin da fitxategia izenez aldatu, fitxategi-izena badago lehendik ere"
#
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Fitxategi-izen baliogabea"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Errorea '%s' fitxategia irekitzean: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Errorea '%s' fitxategia kentzean: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Errorea '%s' fitxategia zakarrontzira botatzean: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Ezin izan da %s zakarrontzi-direktorioa sortu: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Ezin da '%s' zakarrontziaren goi-mailako direktorioa aurkitu"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Sistemaren barneko muntaietan ez da onartzen zakarrontzira botatzea"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Ezin izan da %s zakarrontzi-direktorioa aurkitu edo sortu %s zakarrontzian"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Ezin da '%s' fitxategiaren zakarrontzi-informazioa sortu: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Ezin da '%s' fitxategia fitxategi-sistemen arteko zakarrontzira bota"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Ezin da '%s' fitxategia zakarrontzira bota: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Ezin da '%s' fitxategia zakarrontzira bota"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Errorea '%s' direktorioa sortzean: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Fitxategi-sistemak ez ditu esteka sinbolikorik onartzen"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Errorea '%s' esteka sinbolikoa sortzean: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Errorea '%s' fitxategia lekuz aldatzean: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Ezin da direktorioa lekuz aldatu direktorioaren gainera"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Huts egin du babeskopia sortzean"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Errorea helburuko fitxategia kentzean: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Muntaien artean lekuz aldatzea ez dago onartuta"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Ezin izan da '%s' diskoaren erabilpena zehaztu: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Atributuaren balioa NULL ezin da izan"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Atributu mota baliogabea (katea edo baliogabea espero zen)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Atributu hedatuaren izen baliogabea"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Errorea “%s” atributu hedatua ezartzean: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (baliogabeko kodeketa)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Errorea “'%s” fitxategiaren informazioa eskuratzean: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Errorea fitxategiaren deskriptorearen informazioa irakurtzean: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Baliogabeko atributu mota (uint32 espero zen)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Baliogabeko atributu mota (uint64 espero zen)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Baliogabeko atributu mota (byte katea espero zen)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Ezin da baimenik ezarri esteka sinbolikoetan"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Errorea baimenak ezartzean: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Errorea jabea ezartzean: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "esteka sinbolikoak NULL-en desberdina izan behar du"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Errorea esteka sinbolikoa ezartzean: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "Errorea esteka sinbolikoa ezartzean: fitxategia ez da esteka sinboliko bat"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "%d nanosegundo gehigarriak negatiboak dira %lld UNIX denbora-zigiluetarako"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr "%d nanosegundo gehigarriak segundo 1 dira %lld UNIX denbora-zigiluetarako"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "%lld UNIX denbora-zigilua ez da sartzen 64 bit-etan"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "%lld UNIX denbora-zigilua Windowsen onartutako barrutitik kanpo dago"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "“%s” fitxategi-izena ezin da UTF-16 kodeketara bihurtu"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "“%s” fitxategia ezin da ireki: Windows errorea %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "Errorea “%s” fitxategiaren aldaketa edo atzipen denbora ezartzean: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Errorea eraldaketa edo atzipen ordua ezartzean: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "SELinux testuinguruak NULL-en desberdina izan behar du"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux ez dago gaituta sistema honetan"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Errorea SELinux testuingurua ezartzean: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "%s atributuaren ezarpena ez dago onartuta"
@@ -3181,13 +3202,13 @@ msgstr "Errorea babeskopiaren kopia sortzean: %s"
msgid "Error renaming temporary file: %s"
msgstr "Errorea aldi baterako fitxategia izenez aldatzean: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Errorea fitxategia trunkatzean: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Errorea “%s” fitxategia irekitzean: %s"
@@ -3204,7 +3225,7 @@ msgstr "Helburuko fitxategia ez da fitxategi arrunta"
msgid "The file was externally modified"
msgstr "Fitxategia kanpotik aldatu da"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Errorea fitxategi zaharra kentzean: %s"
@@ -3334,43 +3355,43 @@ msgstr "NetworkManager-en bertsioa zaharregia"
msgid "Output stream doesn’t implement write"
msgstr "Irteerako korronteak ez dauka idaztea inplementatuta"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "%s(e)ri pasatutako bektoreen batuketa handiegia da"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Iturburuko korrontea jadanik itxi da"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Proxy-kontsultaren zehaztu gabeko hutsegitea"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Errorea “%s” ebaztean: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s ez dago inplementatuta"
#
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Baliogabeko domeinua"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "“%s”(e)ko baliabidea ez da existitzen"
@@ -3380,16 +3401,16 @@ msgstr "“%s”(e)ko baliabidea ez da existitzen"
msgid "The resource at “%s” failed to decompress"
msgstr "Huts egin du “%s”(e)ko baliabidea deskonprimatzean"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Baliabideen fitxategiari ezin zaio izena aldatu"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "“%s”(e)ko baliabidea ez da direktorio bat"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Sarrerako korronteak ez dauka bilaketa inplementatuta"
@@ -3491,7 +3512,7 @@ msgid ""
" FILE An elf file (a binary or a shared library)\n"
" or a compiled resource file\n"
msgstr " FITXATEGIA Elf fitxategia (bitarra edo partekatutako liburutegia)\n"
-" edo konpilatutako baliabidearen fitxategi bat\n"
+" edo konpilatutako baliabidearen fitxategi bat\n"
#: gio/gresource-tool.c:580
msgid "[PATH]"
@@ -3658,24 +3679,22 @@ msgstr "Erabilera:\n"
" gsettings [--schemadir ESKEMA-DIREKTORIOA] KOMANDOA [ARGUMENTUAK…]\n"
"\n"
"Komandoak:\n"
-" help Erakutsi informazio hau\n"
-" list-schemas Zerrendatu instalatutako eskemak\n"
-" list-relocatable-schemas Zerrendatu lekuz alda daitezkeen eskemak\n"
-" list-keys Zerrendatu eskema bateko gakoak\n"
-" list-children Zerrendatu eskema baten haurrak\n"
-" list-recursively Zerrendatu gako eta balioak, \n"
-" errekurtsiboki\n"
-" range Kontsultatu gako baten barrutia\n"
-" describe Kontsultatu gakoaren azalpena\n"
-" get Lortu gako baten balioa\n"
-" set Ezarri gako baten balioa\n"
-" reset Berrezarri gako baten balioa\n"
-" reset-recursively Berrezarri emandako eskema baten\n"
-" balio guztiak\n"
-" writable Begiratu gako bat idazgarria al den\n"
-" monitor Behatu aldaketak\n"
+" help Erakutsi informazio hau\n"
+" list-schemas Zerrendatu instalatutako eskemak\n"
+" list-relocatable-schemas Zerrendatu lekuz aldatu daitezkeen eskemak\n"
+" list-keys Zerrendatu eskema bateko gakoak\n"
+" list-children Zerrendatu eskema bateko haurrak\n"
+" list-recursively Zerrendatu gakoak eta balioak modu errekurtsiboan\n"
+" range Kontsultatu gako baten barrutiak\n"
+" describe Kontsultatu gako baten deskribapena\n"
+" get Eskuratu gako baten balioa\n"
+" set Ezarri gako baten balioa\n"
+" reset Berrezarri gako baten balioa\n"
+" reset-recursively Berrezarri emandako eskema baten balio guztiak\n"
+" writable Begiratu gako bat idazgarria den ala ez\n"
+" monitor Gainbegiratu aldaketak\n"
"\n"
-"Erabili “gsettings help KOMANDOA“ laguntza xehea lortzeko.\n"
+"Erabili “gsettings help COMMAND” laguntza xehea jasotzeko.\n"
"\n"
#: gio/gsettings-tool.c:710
@@ -3746,7 +3765,8 @@ msgstr "Baliogabeko socket-a, hasieratzeak huts egin du: %s"
msgid "Socket is already closed"
msgstr "Socket-a jadanik itxita dago"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "S/Iko socketaren denbora-muga gaindituta"
@@ -3755,159 +3775,159 @@ msgstr "S/Iko socketaren denbora-muga gaindituta"
msgid "creating GSocket from fd: %s"
msgstr "GSocket sortzen fd-tik: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Ezin da socket-a sortu: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Familia ezezaguna zehaztu da"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Protokolo ezezaguna zehaztu da"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "Ezin da datagramen eragiketarik erabili datagramak ez diren socket-etan."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr "Ezin da datagramen eragiketarik erabili socket-etan iraungitze-denborarik ezarri gabe."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "ezin izan da lokaleko helbidea lortu: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "ezin izan da urruneko helbidea lortu: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "ezin izan da entzun: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Errorea %s helbidearekin lotzean: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Errorea multidifusioko taldean elkartzean: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Errorea multidifusioko taldea uztean: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Iturburu zehatzeko multidifusiorik ez da onartzen"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Onartzen ez den socket familia"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "Iturburu zehatzekoa ez IPv4 helbidea"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Interfaze-izena luzeegia da"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Interfazea ez da aurkitu: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "IPv4 iturburu zehatzeko multidifusiorik ez da onartzen"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "IPv6 iturburu zehatzeko multidifusiorik ez da onartzen"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Errorea konexioa onartzean: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Konexioa lantzen"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Ezin da falta diren erroreak lortu: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Errorea datuak jasotzean: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Errorea datuak bidaltzean: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Ezin da socket-a itzali: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Errorea socket-a ixtean: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Socket-aren baldintzen zai: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Ezin izan da mezua bidali: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Mezu-bektoreak luzeegiak dira"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Errorea mezua bidaltzean: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage ez da Windows sisteman onartzen"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Errorea mezua jasotzean: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Ezin da socket-aren kredentzialik irakurri: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials ez dago S.E. honetan inplementatuta"
@@ -4027,7 +4047,7 @@ msgstr "SOCKSv5 proxyak ez du emandako helbide mota onartzen."
msgid "Unknown SOCKSv5 proxy error."
msgstr "SOCKSv5 proxyaren errore ezezaguna."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "Ezin izan da kanalizazioa sortu prozesu haurrarekin komunikatzeko (%s)"
@@ -4042,46 +4062,46 @@ msgstr "Plataforma honetan ez dira kanalizazioak onartzen"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Ezin da GThemedIcon kodeketaren %d bertsioa kudeatu"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Ez da baliozko helbiderik aurkitu"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Errorea “%s” alderantziz ebaztean: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Errorea DNS %s erregistroa analizatzean: gaizki osatutako DNS paketea"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Ez dago eskatutako motaren DNS erregistrorik “%s”(r)entzako"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Ezin da “%s” ebatzi aldi batean"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Errorea “%s” ebaztean"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Gaizki osatutako DNS paketea"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Huts egin du “%s”(e)rako DNS erantzuna analizatzeak: "
@@ -4136,57 +4156,57 @@ msgstr "Sartutako pasahitza okerrekoa da."
msgid "Sending FD is not supported"
msgstr "FD bidaltzea ez dago onartuta"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "Kontroleko mezu 1 espero zen, %d lortu da"
msgstr[1] "Kontroleko mezu 1 espero zen, %d lortu da"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Ustekabeko datu-laguntzaile mota"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "fd bat espero zen, baina %d lortu da\n"
msgstr[1] "fd bat espero zen, baina %d lortu da\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Baliogabeko fd jasota"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "FD jasotzea ez dago onartuta"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Errorea kredentzialak bidaltzean: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Errorea SO_PASSCRED gaituta dagoen begiratzean socket-arentzako: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Errorea SO_PASSCRED gaitzean: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr "Harrerako kredentzialentzako byte bakar bat irakurtzea espero zen, baina zero byte irakurri dira."
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Ez zen kontroleko mezurik espero, baina %d lortu dira"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Errorea SO_PASSCRED desgaitzean: %s"
@@ -4202,7 +4222,7 @@ msgstr "Errorea fitxategiaren deskriptoretik irakurtzean: %s"
msgid "Error closing file descriptor: %s"
msgstr "Errorea fitxategiaren deskriptorea ixtean: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Fitxategi-sistemaren erroa"
@@ -4285,129 +4305,124 @@ msgstr "Exekutatu dbus zerbitzua"
msgid "Wrong args\n"
msgstr "Okerreko argumentuak\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "“%2$s” elementuaren ustekabeko “%1$s” atributua"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "“%2$s” elementuaren “%1$s” atributua ez da aurkitu"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Ustekabeko “%s” etiketa, “%s” espero zen"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "“%2$s” barruan ustekabeko “%1$s” etiketa"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Baliogabeko ‘%s’ data/ordua laster-marken fitxategian"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Ezin izan da baliozko laster-marken fitxategia aurkitu datuen direktorioan"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "“%s” URIaren laster-marka badago lehendik ere"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Ez da “%s” URIaren laster-markarik aurkitu"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Ez dago “%s” URIaren laster-markan MIME motarik definituta"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "“%s” URIaren laster-markan ez dago bandera pribaturik definituta"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "“%s” URIaren laster-markan ez dago talderik ezarrita"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "“%s” izeneko aplikaziorik ez du erregistratu laster-markarik '%s'(e)n"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Huts egin du “%s” exekuzioko lerroa “%s” URIarekin hedatzean"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Adierazi ezin den karakterea bihurketa-sarreran"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Karaktere-sekuentzia partziala sarreraren amaieran"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Ezin da “%s” atzerapena “%s” kode-multzo bihurtu"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "NUL byte baliogabea bihurketa-sarreran"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "NUL byte kapsulatua bihurketa-sarreran"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "“%s” URIa ez da “fitxategi“-eskema erabiltzen duen URI absolutua"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "Baliteke “%s” URI fitxategi lokalak “#“ ez edukitzea"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "“%s” URI baliogabea da"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "“%s” URIaren ostalari-izena baliogabea da"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "“%s” URIak ihes-karaktere baliogabeak ditu"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "“%s” bide-izena ez da bide-izen absolutua"
@@ -4776,7 +4791,7 @@ msgstr "Apr."
#: glib/gdatetime.c:565
msgctxt "abbreviated month name with day"
msgid "May"
-msgstr "Maiatza"
+msgstr "Mai."
#: glib/gdatetime.c:567
msgctxt "abbreviated month name with day"
@@ -4830,79 +4845,79 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "Errorea “%s” direktorioa irekitzean: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "Ezin izan da byte %lu esleitu “%s” fitxategia irakurtzeko"
msgstr[1] "Ezin izan dira %lu byte esleitu “%s” fitxategia irakurtzeko"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Errorea “%s” fitxategia irakurtzean: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "“%s” fitxategia handiegia da"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Ezin izan da “%s” fitxategitik irakurri: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Ezin izan da “%s” fitxategia ireki: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Ezin izan dira “%s” fitxategiko atributuak lortu, fstat() funtzioak huts egin du: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Ezin izan da “%s” fitxategia ireki, fdopen() funtzioak huts egin du: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "Ezin izan da “%s” fitxategia “%s” gisa berrizendatu, g_rename() funtzioak huts egin du: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Huts egin du “%s” fitxategian idaztean: fwrite() funtzioak huts egin du: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Huts egin du “%s” fitxategia idaztean: fsync() funtzioak huts egin du: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Ezin izan da “%s” fitxategia sortu: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "“%s” fitxategia ezin izan da kendu, g_unlik() funtzioak huts egin du: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "“%s” txantiloia baliogabea da, ez luke “%s” eduki behar"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "“%s” txantiloiak ez dauka: XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Ezin izan da “%s” esteka sinbolikorik irakurri: %s"
@@ -4928,210 +4943,210 @@ msgstr "Kanala karaktere partzial batean bukatzen da"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Ezin dira datu gordinak irakurri “g_io_channel_read_to_end“-etik"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Ezin izan da baliozko gakoa datuen direktorioan aurkitu"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Ez da fitxategi arrunta"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
msgstr "Gako-fitxategiak “%s” lerroa du, gako-balioa bikotea, taldea edo iruzkinik ez daukalarik"
#
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Taldearen izen baliogabea: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Gako-fitxategiak ez da talde batekin hasten"
#
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Gakoaren izen baliogabea: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Gako-fitxategiak onartzen ez den “%s” kodeketa du"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Gako-fitxategiak ez dauka “%s” taldea"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Gako-fitxategiak ez dauka “%s” gakoa (“%s” taldean)"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "Gako-fitxategiak “%s” gakoa dauka (%s balioduna) baina ez da UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr "Gako-fitxategiak “%s” gakoa dauka, baina ezin den interpretatu balio bat dauka."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
"interpreted."
msgstr "Gako-fitxategiak “%s” gakoa dauka ('%s taldean), baina dagokion balioa ezin da interpretatu."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "“%2$s” taldeko “%1$s” gakoaren balioa “%3$s” da, “%4$s” izan ordez."
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "Gako-fitxategiak ihes-karakterea dauka lerro amaieran"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4378
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Gako-fitxategiak “%s” ihes-sekuentzia baliogabea dauka"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4530
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "“%s” balioa ezin da zenbaki gisa interpretatu"
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4544
#, c-format
msgid "Integer value “%s” out of range"
msgstr "“%s” osoko balioa barrutitik kanpo"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "“%s” balioa ezin da zenbaki mugikor gisa interpretatu."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4616
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "“%s” balioa ezin da boolear gisa interpretatu"
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr "Huts egin du “%s%s%s%s” fitxategiaren atributuak lortzean. fstat() funtzioak huts egin du: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Huts egin %s%s%s%s mapatzean. mmap() funtzioak huts egin du: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Ezin izan da “%s” fitxategia ireki, open() funtzioak huts egin du: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Errorea %d lerroko %d karakterean: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "UTF-8 gisa kodetutako testu baliogabea izenean - “%s” ez da baliozkoa"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "“%s” ez da baliozko izena"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "“%s” ez da baliozko izena: “%c”"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Errorea %d lerroan: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
"reference (&#234; for example) — perhaps the digit is too large"
msgstr "Ezin izan da “%-.*s” analizatu, digitu bat izan behar zuen karaktere-erreferentzia baten barruan (&#234; adibidez); agian digitua handiegia da"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
"as &amp;"
msgstr "Karaktere-erreferentzia ez da puntu eta komaz bukatzen; ziurrenik & ikurra erabiliko zenuen entitatea hasteko asmorik gabe. Izendatu & karakterea &amp; gisa"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "“%-.*s” karaktere-erreferentziak ez du baimendutako karaktere bat kodetzen"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr "“&;” entitatea hutsik dago; baliozko entitateak hauek dira: &amp; &quot; &lt; &gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "“%-.*s” entitate-izena ezezaguna da"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
msgstr "Entitatea ez da puntu eta komaz bukatzen; normalean & ikurra erabiltzen da entitatea hasteko asmorik gabe; izendatu & karakterea &amp; gisa"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Dokumentuak elementu batez hasi behar du (adibidez, <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
"element name"
msgstr "“%s” ez da baliozko karakterea '<' karakterearen atzetik; baliteke elementu baten izena ez hastea"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
"“%s”"
msgstr "“%s” karaktere bitxia, '>' karakterea espero zen “%s” elementuaren etiketa hutsa amaitzeko"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Atributu gehiegi “%s” elementuan"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
msgstr "“%s” karaktere bitxia, '=' espero zen “%s” atributuaren ondoren “%s” elementuan"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5139,92 +5154,92 @@ msgid ""
"character in an attribute name"
msgstr "“%s” atributuaren ondoren karaktere bitxia, “>“ edo “/“ karakterea espero zen “%s” atributuaren ondoren elementuaren hasiera-etiketa bukatzeko, edo bestela atributu bat. Agian karaktere baliogabea erabili duzu atributu-izen batean"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
"giving value for attribute “%s” of element “%s”"
msgstr "“%s” karaktere bitxia, komatxo irekia espero zen berdin ikurraren ondoren “%s” atributuari balioa ematean “%s” elementuan"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
"begin an element name"
msgstr "“%s” ez da karaktere balioduna “</“; karaktereen atzetik; baliteke “%s” atributuak elementu baten izena ez hastea"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
"allowed character is “>”"
msgstr "“%s” ez da baliozko karakterea da “%s” itxiera-elementuaren izenaren atzetik; baimendutako karakterea “>“ da"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "“%s” elementua itxi egin da, unean ez dago elementurik irekita"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "“%s” elementua itxi egin da, baina unean “%s” elementua dago irekita"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Dokumentua hutsik dago edo zuriuneak bakarrik ditu"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "Dokumentua ustekabean itxi da “<“ angelu-parentesi ireki baten ondoren"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
"element opened"
msgstr "Dokumentua ustekabean amaitu da oraindik irekita zeuden elementuekin. “%s” irekitako azken elementua da"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
"the tag <%s/>"
msgstr "Dokumentua ustekabean amaitu da, angelu-parentesi itxia ikustea espero zen <%s/> etiketa amaitzen"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Dokumentua ustekabean amaitu da elementu-izen baten barruan"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Dokumentua ustekabean amaitu da atributu-izen baten barruan"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Dokumentua ustekabean amaitu da elementua irekitzeko etiketa baten barruan."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
msgstr "Dokumentua ustekabean amaitu da atributu-izen baten ondorengo berdin ikurraren atzetik; ez dago atributu-baliorik"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Dokumentua ustekabean amaitu da atributu-balio baten barruan"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "Dokumentua ustekabean amaitu da “%s” elementuaren itxiera-etiketaren barruan"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr "Dokumentua ustekabean amaitu da ireki gabeko elementu baten itxiera-etiketaren barruan"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr "Dokumentua ustekabean amaitu da iruzkin baten barruan edo prozesatzen ari zen instrukzio baten barruan"
@@ -5287,300 +5302,296 @@ msgstr "%s(e)ko argumentua falta da"
msgid "Unknown option %s"
msgstr "%s aukera ezezaguna"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "hondatutako objektua"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "Memoriarik ez"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "atzera-jotzearen mugara gainditua"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "barneko errorea"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "ereduak zenbait elementu ditu bat etortze partzialetan onartzen ez direnak"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr "aurreko erreferentziak baldintza gisa ez daude onartuta bat etortze partzialetan"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "errekurtsioaren muga gainditua"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "okerreko desplazamendua"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "errekurtsioaren begizta"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "eskatu den bat etortze modua ez da konpilatu JITerako"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "errore ezezaguna"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ ereduaren amaieran"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c ereduaren amaieran"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "karaktere ezezagunak jarraitzen dio \\ karaktereari"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "zenbakiak barrutitik kanpo {} kuantifikatzailean"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "zenbaki handiegiak {} kuantifikatzaileak"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "karaktere-klasearen amaierako ] falta da"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "karaktere-klasean baliogabeko ihes sekuentzia"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "karaktere-klaseko barrutia barrutitik kanpo"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "ezer ez errepikatzeko"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "karaktere ezezaguna (? edo (?- karaktereen atzetik"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX izeneko klaseak soilik onartzen dira klase baten barruan"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "Tartekatutako POSIX elementuak ez daude onartuta"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "amaierako ) falta da"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "existitzen ez den azpieredu baten erreferentzia"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "iruzkinaren ondoren ) falta da"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "adierazpen erregularra luzeegia da"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "gaizki osatutako zenbakia edo izena (?(-ren atzetik"
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "'lookbehind' baieztapenak ez du luzera finkorik"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "baldintza taldeak bi adar baino gehiago ditu"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "baieztapena espero zen (?)-ren atzetik"
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "zenbatutako erreferentzia bat ezin du zero izan"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "POSIX klasearen izen ezezaguna"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "\\x{…} sekuentziako karaktere-balioa luzeegia da"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C ez dago baimenduta 'lookbehind' baieztapenean"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "amaierako karakterea falta da azpiereduko izenean"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "bi azpiereduk izen berdina dute"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "gaizki osatutako \\P edo \\p sekuentzia"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "propietate-izen ezezaguna \\P edo \\p atzetik"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "azpiereduaren izena luzeegia (32 karaktere gehienez)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "izendun azpieredu gehiegi (10.000 gehienez)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "balio zortzitarra \\377 baino handiagoa"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "DEFINE taldeak adar bat baino gehiago ditu"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "NEWLINE aukera inkoherentea"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
msgstr "\\g ez da parentesi, kortxete edo aipu motako izena edo zenbaki, edo zenbaki soil batekin jarraitzen"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "argumentu bat ez dago onartuta (*ACCEPT), (*FAIL), edo (*COMMIT)-entzako"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) ez da ezagutzen"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "zenbakia handiegia da"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "azpiereduaren izena falta da (?& ondoren"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "zenbaki berdinaren azpiereduen izen desberdinak ez daude onartuta"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) argumentu bat eduki behar du"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c ondoren ASCII karaktere bat behar da"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr "\\k ondoren ez dago parentesi, kortxete edo aipatutako izen bat"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N ez dago klase batean onartuta"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "izena luzeegia da (*MARK), (*PRUNE), (*SKIP), edo (*THEN)-en"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "kodea gainezkatua"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "karaktere ezezaguna (?P karaktereen atzetik"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "konpilazioaren laneko area gainezkatua"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "ez da aurrez egiaztatutako erreferentziatutako azpieredua aurkitu"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Errorea %s adierazpen erregularra bilatzean: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "PCRE liburutegia UTF8 euskarri gabe konpilatua"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "PCRE liburutegia aukera bateragarririk gabe konpilatua"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Errorea ‘%s’adierazpen erregularra %s karakterean konpilatzean: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "digitu hamaseitarra edo “}“ espero zen"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "digitu hamaseitarra espero zen"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "“<“ falta da erreferentzia sinbolikoan"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "amaitu gabeko erreferentzia sinbolikoa"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "zero luzerako erreferentzia sinbolikoa"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "digitua espero zen"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "erreferentzia sinboliko ilegala"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "“\\“ katearen amaieran"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "ihes-sekuentzi ezezaguna"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Errorea ordezko “%s” testua analizatzean %lu karakterean: %s"
@@ -5596,373 +5607,379 @@ msgstr "Bat ez datozen komatxoak daude komando-lerroan edo shell-ak aipatutako b
#: glib/gshell.c:594
#, c-format
msgid "Text ended just after a “\\” character. (The text was “%s”)"
-msgstr "Testua “\\“ karakterearen atzetik amaitu da (testua “%s” zen)"
+msgstr "Testua “\\“ karakterearen atzetik amaitu da. (Testua “%s” zen)"
#: glib/gshell.c:601
#, c-format
msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
-msgstr "Testua %c(r)en komatxoak aurkitu baino lehen amaitu da (testua “%s” zen)"
+msgstr "Testua %c(r)en komatxoak aurkitu baino lehen amaitu da. (Testua “%s” zen)"
#: glib/gshell.c:613
msgid "Text was empty (or contained only whitespace)"
msgstr "Testua hutsik dago (edo zuriuneak bakarrik ditu)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Ezin izan da daturik irakurri prozesu umetik (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Ustekabeko errorea datuak prozesu umetik irakurtzean (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Ustekabeko errorea waitpid()-en (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Prozesu haurra amaitu da %ld kodearekin"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Prozesu haurra %ld seinaleak hilda"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Prozesu haurra %ld seinaleak geldituta"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Prozesu haurra ustekabean amaituta"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Ezin izan da kanalizazio umetik irakurri (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Ezin izan da “%s” prozesu haurra abiarazi (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Ezin da sardetu (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Ezin izan da “%s” direktoriora aldatu (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Ezin izan da “%s” prozesu haurra exekutatu (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Huts egin du fitxategia irekitzeak fitxategi-deskribatzailea birmapatzeko (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Huts egin du prozesu umerako fitxategi-deskribatzailea bikoizteak (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Ezin izan da prozesu haurra sardetu (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Huts egin du prozesu umerako fitxategi-deskribatzailea ixteak (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Errore ezezaguna “%s” prozesu haurra exekutatzean"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "Ezin izan da nahikoa datu irakurri pid kanalizazio umetik (%s)"
-#: glib/gspawn-win32.c:337
+#
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Iturburuko FD argumentu baliogabea"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Ezin izan da daturik irakurri prozesu umetik"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Ezin izan da prozesu haurra exekutatu (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Huts egin du dup() komandoak prozesu haurrean (%s)"
#
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Programaren izen baliogabea: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Kate baliogabea %d(e)ko bektorearen argumentuan: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Kate baliogabea ingurunean: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Laneko direktorio baliogabea: %s"
#
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Ezin izan da laguntza-programa exekutatu (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
msgstr "Ustekabeko errorea gertatu da 'g_io_channel_win32_poll()'-en prozesu umetik datuak irakurtzean"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Kate hutsa ez da zenbaki bat"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "“%s” ez da zeinudun zenbaki bat"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "“%s” zenbakia barrutitik kanpo [%s, %s]"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "“%s” ez da zeinurik gabeko zenbaki bat"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "Baliogabeko %-kodeketa URIan"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Legez kanpoko karakterea URIan"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "UTF-8 ez diren karaktereak URIan"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Baliogabeko IPv6 helbidea ‘%.*s’ URIan"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Legez kanpoko IP helbide kodea ‘%.*s’ URIan"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Internazionalizatutako ostalari-izen baliogabea (‘%.*s’) URIan"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Ezin izan da ‘%.*s’ ataka analizatu URIan"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "URIko ‘%.*s’ ataka barrutitik kanpo dago"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "‘%s’ URIa ez da URI absolutua"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "‘%s’ URIak ez du ostalari-osagairik"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "URIa ez da absolutua eta ez da oinarrizko URIrik eman"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "‘=’ eta parametro-balioa falta dira"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Huts egin du memoria esleitzeak"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Karakterea UTF-8 barrutitik kanpo"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Sekuentzia baliogabea bihurketa-sarreran"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Karakterea UTF-16 barrutitik kanpo"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "byte"
msgstr[1] "byte"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bit"
@@ -5970,7 +5987,7 @@ msgstr[1] "bit"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -5978,7 +5995,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -5986,7 +6003,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -5995,14 +6012,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6010,14 +6027,14 @@ msgstr[0] "byte %s"
msgstr[1] "%s byte"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "bit %s"
msgstr[1] "%s byte"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6029,39 +6046,45 @@ msgstr[1] "%u byte"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
+#~ msgid "backtracking limit reached"
+#~ msgstr "atzera-jotzearen mugara gainditua"
+
+#~ msgid "GApplication options"
+#~ msgstr "GApplication aplikazioaren aukerak"
+
#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "editatu izena: %s\n"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "Baliteke “%s” URI fitxategi lokalak “#“ ez edukitzea"
#~ msgid "internal error or corrupted object"
#~ msgstr "barneko errorea edo hondatutako objektua"
diff --git a/po/fa.po b/po/fa.po
index cee417a51..3ba701fe3 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -4,58 +4,58 @@
# Hamed Malek <hamed@farsiweb.info>, 2005.
# Meelad Zakaria <meelad@farsiweb.info>, 2006.
# Arash Mousavi <mousavi.arash@gmail.com>, 2011.
-# Danial Behzadi <dani.behzi@ubuntu.com>, 2022.
+# Danial Behzadi <dani.behzi@ubuntu.com>, 2022-2023.
#
msgid ""
msgstr ""
"Project-Id-Version: glib HEAD\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-09-12 05:47+0000\n"
-"PO-Revision-Date: 2022-09-12 13:55+0430\n"
+"POT-Creation-Date: 2023-09-02 13:39+0000\n"
+"PO-Revision-Date: 2023-09-03 00:18+0330\n"
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"Language-Team: Persian <>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-"X-Generator: Poedit 3.1.1\n"
+"Plural-Forms: nplurals=2; plural=(n==0 || n==1);\n"
+"X-Generator: Poedit 3.3.2\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "تنظیم برنامهٔ پیش‌گزیده هنوز پشتیبانی نمی‌شود"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr "تنظیم برنامه به عنوان آخرین استفاده برای گونه هنوز پشتیبانی نمی‌شود"
-#: gio/gappinfo.c:810
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "شکست در یافتن برنامهٔ پیش‌گزیده برای گونهٔ محتوای «%s»"
-#: gio/gappinfo.c:870
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "شکست در یافتن برنامهٔ پیش‌گزیده برای شمای نشانی %s"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "گزینه‌های GApplication"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "گزینه‌های GApplication:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "نمایش گزینه‌های GApplication"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr "ورود به حالت خدمت GApplication (استفاده از پرونده‌های خدمت D-Bus)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "پایمالی شناسهٔ برنامه"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "جایگزینی نمونهٔ در حال اجرا"
@@ -134,7 +134,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "شناسهٔ برنامه در قالب دی‌باس (مثل: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FILE"
@@ -229,11 +229,11 @@ msgstr "ناتوان در وصل شدن به D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "خطای فرستادن %s پیام به برنامه: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "نام کنش باید پس از شناسهٔ برنامه داده شود\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -242,27 +242,27 @@ msgstr ""
"نام کنش نامعتبر: «%s»\n"
"نام‌های کنش‌ها باید فقط شامل حرف‌رقم، «-» و «.»‌ باشند\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr ""
"خطا در تجزیه پارامتر کنش: %s\n"
"\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "کنش بیشینه یک پارامتر می‌پذیرد\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "دستور کنش‌های سیاهه فقط شناسهٔ برنامه را می‌گیرند"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "ناتوان در یافتن پروندهٔ میزکار برای برنامهٔ %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -272,9 +272,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "مقدار شمارش بسیار بزرگی به %s ارسال شده است"
@@ -288,8 +288,8 @@ msgstr "جویش روی جریان پایه پشتیبانی نمی‌شود"
msgid "Cannot truncate GBufferedInputStream"
msgstr "نمی تواند GbufferedInputStream را کوتاه کند"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "جریان از قبل بسته شده است"
@@ -297,7 +297,7 @@ msgstr "جریان از قبل بسته شده است"
msgid "Truncate not supported on base stream"
msgstr "هرس روی جریان پایه پشتیبانی نمی‌شود"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -316,28 +316,28 @@ msgid "Not enough space in destination"
msgstr "فضا کافی در مقصد وجود ندارد"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "دنبالهٔ بایتی نامعتبر در ورودی تبدیل"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "خطا در حین تبدیل: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "مقداردهی‌های اولیهٔ قابل لغو پشتیبانی نمی‌شود"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "تبدیل از مجموعهٔ نویسهٔ «%s» به «%s» پشتیبانی نمی‌شود"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "نمی‌توان تبدیلگر «%s» به «%s» را گشود"
@@ -380,17 +380,17 @@ msgstr "جعل گواهی روی این سیستم‌عامل ممکن نیست"
msgid "Unexpected early end-of-stream"
msgstr "پایان جریان زودهنگام نامنتظره"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "کلید پشتیبانی نشدهٔ «%s» در ورودی نشانی «%s»"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "ترکیب جفت کلید و مقدار بی‌معنی در ورودی نشانی «%s»"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract keys)"
@@ -398,7 +398,7 @@ msgstr ""
"نشانی «%s» نامعتبر است (فقط یکی از کلیدهای path، dir، tmpdir یا abstract را نیاز "
"دارد)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -512,7 +512,7 @@ msgstr "خطا در ایجاد خط فرمان «%s»: "
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr "نمی‌توان نشانی گذرگاه نشست را تشخیص داد (برای این سیستم‌عامل پیاده نشده)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable — "
@@ -521,7 +521,7 @@ msgstr ""
"نمی‌توان نشانی گذرگاه را از متغیّر محیطی DBUS_STARTER_BUS_TYPE تشخیص داد — مقدار "
"ناشناختهٔ «%s»"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -529,7 +529,7 @@ msgstr ""
"نمی‌توان نشانی گذرگاه را تشخیص داد؛ چون متغیّر محیطی DBUS_STARTER_BUS_TYPE تنظیم "
"نشده"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "گونهٔ گذرگاه ناشناخته %d"
@@ -548,209 +548,217 @@ msgid ""
"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
msgstr "تمامی سازوکارهای تأیید هویت موجود آزموده شد (آزموده: %s) (موجود: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "کمبود محتوای نامنتظره هنگام خواندن یک بایت"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "شناسه‌های کاربری باید برای نمونه و کارساز یکی باشد"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "لغو شده به دست GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "خطا هنگام گرفتن اطّلاعات برای شاخهٔ «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid "Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr "اجازه‌های روی «%s» مستقیم بدریختند. انتظار حالت ۰۷۰۰ می‌رفت؛ ۰%Io گرفته شد"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "خطا در ایجاد شاخهٔ «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "عملیات پشتیبانی نمی‌شود"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "خطا در گشودن دسته‌کلید «%s» برای خواندن: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "خط %Id دسته‌کلید در «%s» با محتوای «%s» بدریخت است"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "ژتون نخست خط %Id دسته‌کلید در «%s» با محتوای «%s» بدریخت است"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "ژتون دوم خط %Id دسته‌کلید در «%s» با محتوای «%s» بدریخت است"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "کوکی با شناسهٔ %Id در دسته کلید موجود در «%s» پیدا نشد"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "خطا در ایجاد پرونده قفل «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "خطا در حذف پروندهٔ قفل کهنهٔ «‎%s»‏: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "خطا در بستن پروندهٔ قفل (پیوند نشده) «‎%s»‏: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "خطا در پیوند نکردن پروندهٔ قفل «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "خطا در گشودن دسته‌کلید «%s» برای نوشتن: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(به علاوه، آزاد سازی قفل برا ی «%s» هم شکست خورد: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "اتصال بسته شده است"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "زمان به پایان رسید"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid "Unsupported flags encountered when constructing a client-side connection"
msgstr "مواجهه با پرچم‌های پشتیبانی نشده هنگام ساخت یک اتّصال سمت کارخواه"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid "No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr "واسطی چون org.freedesktop.DBus.Properties روی شی در مسیر %s وجود ندارد"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "ویژگی «%s» وجود ندارد"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "ویژگی «%s» خواندنی نیست"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "ویژگی «%s» نوشتنی نیست"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr "خطای تنظیم مولّفهٔ «%s»: انتظار گونهٔ «%s» می‌رفت؛ ولی «%s» گرفته شد"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764 gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785 gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "واسطی چون «%s» وجود ندارد"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "واسطی چون «%s» روی شی در مسیر %s وجود ندارد"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "روش «%s» وجود ندارد"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "گونهٔ پیام، «%s»، با گونهٔ مورد انتظار «%s» مطابق نیست"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "یک شیء از قبل برای واسط %s در %s صادر شده است"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "ناتوان در دریافت ویژگی %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "ناتوان در تنظیم ویژگی %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "روش «%s» گونهٔ «%s» را برگرداند؛ ولی انتظار «%s» می‌رفت"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "روش «%s» روی واسط «%s» با امضای «%s» وجود ندارد"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "زیردرختی از پیش برای %s برون‌ریزی شده"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "شی در مسیر «%s» وجود ندارد"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "نوع INVALID است"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "پیام METHOD_CALL: زمینهٔ سرایند PATH یا MEMBER وجود ندارد"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr "پیام METHOD_CALL: زمینهٔ سرایند PATH یا MEMBER وجود نداشته یا نامعتبر است"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "پیام METHOD_RETURN: زمینهٔ سرایند REPLY_SERIAL وجود ندارد"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr "پیام METHOD_RETURN: زمینهٔ سرایند REPLY_SERIAL وجود نداشته یا نامعتبر است"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "پیام خطا: زمینهٔ سرایند REPLY_SERIAL یا ERROR_NAME ناموجود"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"پیام خطا: زمینهٔ سرایند REPLY_SERIAL یا ERROR_NAME وجود نداشته یا نامعتبر است"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "پیام سیگنال: زمینهٔ سرایند PATH، INTERFACE یا MEMBER ناموجود"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"پیام سیگنال: زمینهٔ سرایند PATH، INTERFACE یا MEMBER وجود نداشته یا نامعتبر است"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -758,7 +766,7 @@ msgstr ""
"پیام سیگنال: زمینهٔ سرایند PATH دارد از مقدار رزرو شدهٔ ‪/org/freedesktop/DBus/"
"Local‬ استفاده می‌کند"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -766,19 +774,19 @@ msgstr ""
"پیام سیگنال: زمینهٔ سرایند INTERFACE دارد از مقدار رزرو شدهٔ ‪org.freedesktop.DBus."
"Local‬ استفاده می‌کند"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "می‌خواست %lu بایت بخواند؛ ولی فقط %lu بایت گرفت"
msgstr[1] "می‌خواست %lu بایت بخواند؛ ولی فقط %lu بایت گرفت"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "پس از رشتهٔ «%s» انتظار بایت NUL می‌رفت؛ ولی بایت %Id پیدا شد"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d (length of "
@@ -787,21 +795,21 @@ msgstr ""
"انتظار رشتهٔ UTF-8 معتبر می‌رفت؛ ولی بایت‌های نامعتبر در عرض از مبدأ بایت %Id پیدا "
"شد (طول رشته %Id است). رشتهٔ معتبر UTF-8 تا آن نقطه «%s» بود"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "مقدار بیش از حد تودرتو شده"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "مقدار تجزیه شدهٔ «%s» مسیر شی D-Bus معتبری نیست"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "مقدار تجزیه شدهٔ «%s» امضای D-Bus معتبری نیست"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -810,161 +818,161 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
"bytes, but found to be %u bytes in length"
msgstr ""
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr ""
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr ""
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr ""
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
"0x%02x"
msgstr ""
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr ""
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr ""
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr ""
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
msgstr[0] ""
msgstr[1] ""
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr ""
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid "Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr ""
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid "Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr ""
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is “%s”"
msgstr ""
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "خطای بازگشت با بدنهٔ گونهٔ «%s»"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr ""
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
-msgstr ""
+msgstr "(یک نویسه وارد کنید تا این پنجره بسته شود)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr ""
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "ناتوان در گرفتن نمایهٔ سخت‌افزار: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "ناتوان در بار کردن %s یا %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr ""
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr ""
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, and "
"proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
msgstr ""
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "فضانام انتزاعی پشتیبانی نمی‌شود"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr ""
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "خطا در خواندن پروندهٔ فعلی «‎%s»‏: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr ""
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr ""
@@ -983,14 +991,14 @@ msgid ""
"Use “%s COMMAND --help” to get help on each command.\n"
msgstr ""
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "خطا: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "خطا در تجزیهٔ XML درون‌نگری %s\n"
@@ -1000,279 +1008,284 @@ msgstr "خطا در تجزیهٔ XML درون‌نگری %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "خطا: %s نام معتبری نیست\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "خطا: %s یک مسیر شیء معتبر نیست\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "وصل شدن به گذرگاه سامانه"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "وصل شدن به گذرگاه نشست"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "وصل‌شدن به نشانی دی‌باس داده شده"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "گزینه‌های نقطهٔ پایانی اتّصال:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "گزینه‌های مشخّص‌کنندهٔ نقطهٔ پایانی اتّصال"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "هیچ نقطهٔ پایانی اتّصالی مشخّص نشده"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "چندین نقطهٔ پایانی اتّصال مشخّص شده"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid "Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "هشدار: با توجه به داده‌های درون‌نگری، واسط «%s» وجود ندارد\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
"interface “%s”\n"
msgstr "هشدار: با توجه به داده‌های درون‌نگری، روش «%s» روی واسط «%s» وجود ندارد\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "مقصد اختیاری برای سیگنال (نام یکتا)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr ""
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr ""
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr ""
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "خطا در هنگام اتصال: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "خطا: %s نام گذرگاه یکتای معتبری نیست\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "خطا: مسیر شیء مشخص نشده است\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "خطا: نام سیگنال مشخص نشده است\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "خطا: نام سیگنال «%s» نامعتبر است\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "خطا: %s نام واسط معتبری نیست\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "خطا: %s یک نام عضو معتبر نیست\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "خطا در تجزیه پارامتر %Id: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "خطا در بستن اتّصال: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr ""
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr ""
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "نام متد و واسط"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr ""
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr ""
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr ""
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "خطا: مقصد مشخص نشده است\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "خطا: %s نام گذرگاه معتبری نیست\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "خطا: نام متد مشخص نشده است\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "خطا: نام روش «%s» نامعتبر است\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "خطا در تجزیهٔ پارامتر %Id از گونهٔ «%s»: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "خطا در افزودن دستهٔ %Id‏: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr ""
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr ""
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "چاپ XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr ""
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "تنها ترجیحات را چاپ کن"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr ""
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "نام مقصد جهت پایش"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "مسیر شیء جهت پایش"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "پایش یک شیء دوردست."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr ""
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr ""
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
msgstr ""
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPTION…] BUS-NAME"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "انتظار برای ظهور یک نام گذرگاه."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "خطا: باید خدمتی برای فعّال کردنش مشخّص شده باشد.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "خطا: باید خدمتی برای منتظرش شدن مشخّص شده باشد.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "خطا: آرگومان‌های بیش از حد.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "خطا: %s نام گذرگاه شناخته شدهٔ معتبری نیست\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "برای تغییر تنظیمات اشکال‌زدایی مجاز نیست"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5119
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "بدون‌نام"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "پروندهٔ میزکار زمینهٔ Exec را مشخّص نکرده"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "نمی‌توان پایانهٔ لازم برای این برنامه را پیدا کرد"
-#: gio/gdesktopappinfo.c:3637
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr ""
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "نمی‌توان شاخهٔ پیکربندی برنامهٔ کاربر %s را ایجاد کرد: %s"
-#: gio/gdesktopappinfo.c:3641
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "نمی‌توان شاخهٔ پیکربندی MIME کاربر %s را ایجاد کرد: %s"
-#: gio/gdesktopappinfo.c:3883 gio/gdesktopappinfo.c:3907
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "اطّلاعات برنامه یک شناسه کم دارد"
-#: gio/gdesktopappinfo.c:4143
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "نمی‌توان پروندهٔ میزکار کاربر %s را ایجاد کرد"
-#: gio/gdesktopappinfo.c:4279
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "تعریف شخصی برای %s"
@@ -1340,78 +1353,83 @@ msgstr "برای GEmblemedIcon انتظار GEmblem می‌رفت"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr ""
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "نمی‌توان روی شاخه رونوشت کرد"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "نمی‌توان شاخه را روی شاخه رونوشت کرد"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "پرونده مقصد وجود دارد"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "نمی‌توان شاخه را بازگشتی رونوشت کرد"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "اتصال پشتیبانی نمی‌شود"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "رونوشت از بازهٔ پرونده پشتیبانی نمی‌شود"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "خطا در هنگام اتصال پرونده: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "اتصال پشتیبانی نمی‌شود"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr ""
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr ""
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr ""
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "نمی‌توان پروندهٔ خاص را رونوشت کرد"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "مقدار نامعتبر پیوند نمادین داده شده"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "پیوندهای نمادی پشتیبانی نمی‌شوند"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "زباله پشتیبانی نمی‌شود"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "نام‌های پرونده نمی‌توانند شامل «%c» باشند"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "شکست در ایجاد شاخه‌ای موقَّتی برای قالب «%s»: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "حجم mount را پیاده نساخته"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "هیچ برنامه‌ای برای مار با این پرونده ثبت نشده است"
@@ -1419,12 +1437,12 @@ msgstr "هیچ برنامه‌ای برای مار با این پرونده ثب
msgid "Enumerator is closed"
msgstr "عددساز بسته شده"
-#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280 gio/gfileenumerator.c:379
-#: gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280 gio/gfileenumerator.c:425
+#: gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "عددساز پرونده عملیاتی خارق‌العاده"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "عددساز بسته از پیش شده"
@@ -1437,24 +1455,24 @@ msgstr "نمی‌توان نگارش %Id رمزنگاری GFileIcon را مدی
msgid "Malformed input data for GFileIcon"
msgstr "دادهٔ ورودی بدشکل برای GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396 gio/gfileiostream.c:169
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397 gio/gfileiostream.c:169
#: gio/gfileoutputstream.c:166 gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "جریان از query_info پشتیبانی نمی‌کند"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381 gio/gfileoutputstream.c:373
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382 gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "جویش روی جریان پشتیبانی نمی‌شود"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "هرس روی جریان ورودی پشتیبانی نمی‌شود"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "هرس روی جریان پشتیبانی نمی‌شود"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613 glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688 glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "نام میزبان نامعتبر"
@@ -1487,37 +1505,37 @@ msgstr "پاسخ بیش از حد بزرگ پیشکار HTTP"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "کارساز پیشکار HTTP اتّصال را به طور غیرمنتظره‌ای بست."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "تعداد ژتون‌های اشتباه (%Id)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "گونه‌ای برای نام کلاس %s وجود ندارد"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "گونهٔ %s واسط GIcon را پیاده نساخته"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr ""
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "شمارهٔ نگارش بدریخت: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "گونهٔ %s from_tokens() را روی واسط GIcon پیاده نساخته"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "نمی‌توان نگارش فراهم شدهٔ رمزنگاری نقشک را مدیریت کرد"
@@ -1558,7 +1576,7 @@ msgstr "جریان ورودی read را پیاده نساخته"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "سامانه عملیاتی خارق‌العاده دارد"
@@ -1572,7 +1590,7 @@ msgstr ""
#: gio/gio-tool.c:207
msgid "“version” takes no arguments"
-msgstr ""
+msgstr "«version» آرگومانی نمی‌گیرد"
#: gio/gio-tool.c:209 gio/gio-tool.c:225 glib/goption.c:871
msgid "Usage:"
@@ -1580,7 +1598,7 @@ msgstr "روش استفاده:"
#: gio/gio-tool.c:212
msgid "Print version information and exit."
-msgstr ""
+msgstr "چاپ اطّلاعات نگارش و خروج."
#: gio/gio-tool.c:228
msgid "Commands:"
@@ -1664,12 +1682,12 @@ msgid "Error writing to stdout"
msgstr "خطا در نوشتن روی خروجی استاندارد"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45 gio/gio-tool-monitor.c:206
-#: gio/gio-tool-mount.c:1210 gio/gio-tool-open.c:72 gio/gio-tool-remove.c:50
+#: gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72 gio/gio-tool-remove.c:50
#: gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95 gio/gio-tool-trash.c:222
-#: gio/gio-tool-tree.c:241
+#: gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "LOCATION"
@@ -1684,8 +1702,8 @@ msgid ""
"like smb://server/resource/file.txt as location."
msgstr ""
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1261 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "مکانی داده نشده"
@@ -1778,57 +1796,64 @@ msgstr ""
msgid "attributes:\n"
msgstr "مشخصه‌ها:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "نام نمایشی: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "ویرایش نام: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "نام: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "گونه: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "اندازه: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "مخفی\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "نشانی: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr ""
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr ""
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr ""
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr ""
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr ""
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1885,13 +1910,13 @@ msgstr ""
#: gio/gio-tool-list.c:42
msgid "Print full URIs"
-msgstr ""
+msgstr "چاپ نشانی‌های کامل"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
-msgstr ""
+msgstr "سیاهه کردن محتوای مکان‌ها."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2053,7 +2078,7 @@ msgstr "سیاهه"
#: gio/gio-tool-mount.c:75
msgid "Monitor events"
-msgstr ""
+msgstr "پایش رویدادها"
#: gio/gio-tool-mount.c:76
msgid "Show extra information"
@@ -2079,15 +2104,15 @@ msgstr ""
msgid "Anonymous access denied"
msgstr ""
-#: gio/gio-tool-mount.c:533
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr ""
-#: gio/gio-tool-mount.c:1025
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr ""
-#: gio/gio-tool-mount.c:1214
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr ""
@@ -2131,7 +2156,7 @@ msgstr "NAME"
#: gio/gio-tool-rename.c:52
msgid "Rename a file."
-msgstr ""
+msgstr "تغییر نام یک پرونده."
#: gio/gio-tool-rename.c:72
msgid "Missing argument"
@@ -2139,7 +2164,7 @@ msgstr "آرگومان غایب"
#: gio/gio-tool-rename.c:78 gio/gio-tool-save.c:192 gio/gio-tool-set.c:150
msgid "Too many arguments"
-msgstr ""
+msgstr "آرگومان‌های بیش از حد"
#: gio/gio-tool-rename.c:97
#, c-format
@@ -2148,11 +2173,11 @@ msgstr ""
#: gio/gio-tool-save.c:52
msgid "Only create if not existing"
-msgstr ""
+msgstr "ایجاد تنها در صورت موجود نبودن"
#: gio/gio-tool-save.c:53
msgid "Append to end of file"
-msgstr ""
+msgstr "الحاق به پایان پرونده"
#: gio/gio-tool-save.c:54
msgid "When creating, restrict access to the current user"
@@ -2170,7 +2195,7 @@ msgstr ""
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
#: gio/gio-tool-save.c:59
msgid "The etag of the file being overwritten"
-msgstr ""
+msgstr "برچسب الکترونیکی پرونده‌ای که پایمال خواهد شد"
#: gio/gio-tool-save.c:59
msgid "ETAG"
@@ -2183,19 +2208,19 @@ msgstr "خطا در خواندن از ورودی استاندارد"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
#: gio/gio-tool-save.c:141
msgid "Etag not available\n"
-msgstr ""
+msgstr "برچسب الکترونیکی موجود نیست\n"
#: gio/gio-tool-save.c:165
msgid "Read from standard input and save to DEST."
-msgstr ""
+msgstr "خواندن از ورودی استاندارد و ذخیره به DEST."
#: gio/gio-tool-save.c:185
msgid "No destination given"
-msgstr ""
+msgstr "مقصدی داده نشده"
#: gio/gio-tool-set.c:36
msgid "Type of the attribute"
-msgstr ""
+msgstr "گونهٔ ویژگی"
#: gio/gio-tool-set.c:36
msgid "TYPE"
@@ -2215,7 +2240,7 @@ msgstr "VALUE"
#: gio/gio-tool-set.c:99
msgid "Set a file attribute of LOCATION."
-msgstr ""
+msgstr "تنظیم یک ویژگی پرونده از LOCATION."
#: gio/gio-tool-set.c:119
msgid "Location not specified"
@@ -2223,7 +2248,7 @@ msgstr "مکان مشخّص نشده"
#: gio/gio-tool-set.c:126
msgid "Attribute not specified"
-msgstr ""
+msgstr "ویژگی مشخّص نشده"
#: gio/gio-tool-set.c:143
msgid "Value not specified"
@@ -2236,7 +2261,7 @@ msgstr "گونهٔ صفت نامعتبر «%s»"
#: gio/gio-tool-trash.c:36
msgid "Empty the trash"
-msgstr ""
+msgstr "خالی کردن زباله‌دان"
#: gio/gio-tool-trash.c:37
msgid "List files in the trash with their original locations"
@@ -2276,21 +2301,21 @@ msgstr ""
#: gio/gio-tool-tree.c:35
msgid "Follow symbolic links, mounts and shortcuts"
-msgstr ""
+msgstr "پیگیری پیوندهای نمادین، سوار شدن‌ها و میان‌برها"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr ""
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
-msgstr ""
+msgstr "عنصر <%s> درون <%s> مجاز نیست"
#: gio/glib-compile-resources.c:146
#, c-format
msgid "Element <%s> not allowed at toplevel"
-msgstr ""
+msgstr "عنصر <%s> به عنوان سطح بالا (toplevel) مجاز نیست"
#: gio/glib-compile-resources.c:236
#, c-format
@@ -2335,11 +2360,11 @@ msgstr "خطا در هنگام فشرده‌سازی پرونده %s"
#: gio/glib-compile-resources.c:543
#, c-format
msgid "text may not appear inside <%s>"
-msgstr ""
+msgstr "ممکن است متن درون «%s» نمایان نشود"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
-msgstr ""
+msgstr "نمایش نگارش برنامه و خروج"
#: gio/glib-compile-resources.c:822
msgid "Name of the output file"
@@ -2351,8 +2376,8 @@ msgid ""
"directory)"
msgstr ""
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "DIRECTORY"
@@ -2362,7 +2387,7 @@ msgstr ""
#: gio/glib-compile-resources.c:825
msgid "Generate source header"
-msgstr ""
+msgstr "ایجاد سرایند منبع"
#: gio/glib-compile-resources.c:826
msgid "Generate source code used to link in the resource file into your code"
@@ -2370,11 +2395,11 @@ msgstr ""
#: gio/glib-compile-resources.c:827
msgid "Generate dependency list"
-msgstr ""
+msgstr "ایجاد سیاههٔ وابستگی"
#: gio/glib-compile-resources.c:828
msgid "Name of the dependency file to generate"
-msgstr ""
+msgstr "نام پروندهٔ وابستگی برای ایجاد"
#: gio/glib-compile-resources.c:829
msgid "Include phony targets in the generated dependency file"
@@ -2401,453 +2426,453 @@ msgstr ""
msgid "The target C compiler (default: the CC environment variable)"
msgstr ""
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
"and the resource file have the extension called .gresource."
msgstr ""
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
-msgstr ""
+msgstr "باید دقیقأ یک نام پرونده بدهید\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
-msgstr ""
+msgstr "نام مستعار باید کمینه ۲ نویسه باشد"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "مقدار عددی نامعتبر"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> از پیش مشخّص شده"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "مقدار=«%s» از پیش مشخّص شده"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr ""
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
-msgstr ""
+msgstr "«%s» کمینه باید یک <value> داشته باشد"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
-msgstr ""
+msgstr "«%s» در بازهٔ مشخّص شده موجود نیست"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr ""
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
-msgstr ""
+msgstr "«%s» رشته‌ای دارد که در <choices> نیست"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
-msgstr ""
+msgstr "<range/> از پیش برای این کلید مشخّص شده"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr ""
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
-msgstr ""
+msgstr "دستهٔ l10n پشتیبانی نشده: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr ""
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr ""
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
-msgstr ""
+msgstr "شکست در تجزیهٔ مقدار <default>گونهٔ «%s»: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid "<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> از پیش برای این کلید مشخّص شده"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
-msgstr ""
+msgstr "<choice value='%s'/> از پیش داده شده"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr ""
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> از پیش برای این کلید مشخّص شده"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or after "
"<choices>"
msgstr ""
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> از پیش مشخّص شده"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
-msgstr ""
+msgstr "مقصد جایگزینی «%s» در <choices> نیست"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr ""
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "نام‌های خالی مجاز نیستند"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr ""
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers and "
"hyphen (“-”) are permitted"
msgstr ""
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr ""
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr ""
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr ""
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
-msgstr ""
+msgstr "<child name='%s'> از پیش مشخص شده است"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
-msgstr ""
+msgstr "نمی‌توان به یک طرحوارهٔ list-of کلید افزود"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
-msgstr ""
+msgstr "<key name='%s'> از پیش مشخّص شده"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> to "
"modify value"
msgstr ""
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute to "
"<key>"
msgstr ""
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
-msgstr ""
+msgstr "<%s id='%s'> (هنوز) تعریف نشده."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "رشتهٔ گونهٔ GVariant نامعتبر «%s»"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr ""
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr ""
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
-msgstr ""
+msgstr "<override name='%s'> از پیش مشخّص شده"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
-msgstr ""
+msgstr "<schema id='%s'> از پیش مشخّص شده"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "نمی‌تواند سیاهه‌ای از یک شما با یک مسیر باشد"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "نمی‌تواند شمایی را با یک مسیر گستراند"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid "<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
"does not extend “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "یک مسیر، اگر داده شود، باید با یک اسلش آغاز و پایان یابد"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "مسیر یک سیاهه باید با «‪:/‬» خاتمه پیدا کند"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/desktop/” "
"or “/system/” are deprecated."
msgstr ""
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> از قبل مشخص شده است"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
-msgstr ""
+msgstr "تنها یک عنصر «%s» درون «%s» مجاز است"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
-msgstr ""
+msgstr "عنصر «<%s» در سطح بالا مجاز نیست"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
-msgstr ""
+msgstr "عنصر <default> در <key> لازم است"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
-msgstr ""
+msgstr "متن ممکن است درون «%s» نمایان نشود"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr ""
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
-msgstr ""
+msgstr "‪--strict‬ مشخّص شده بود. در حال خروج."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "تمامی این پرونده چشم پوشی شده."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "چشم پوشی از این پرونده."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
"override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --strict "
"was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
"“%s” (override file “%s”); ignoring override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
"“%s” (override file “%s”) and --strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: %s. "
"Ignoring override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: %s. --"
"strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the range "
"given in the schema; ignoring override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the range "
"given in the schema and --strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the list of "
"valid choices; ignoring override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the list of "
"valid choices and --strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "مکان ذخیرهٔ پروندهٔ gschemas.compiled"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "قطع کردن با رخدادِ هر نوع خطا در شِماها"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "بر روی پروندهٔ gschema.compiled ننویس"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr ""
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
"and the cache file is called gschemas.compiled."
msgstr ""
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "باید دقیقأ یک نام شاخه بدهید"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "هیچ پرونده شمایی پیدا نشد: کاری نمی‌شود."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "هیچ پرونده شمایی پیدا نشد: پروندهٔ خروجی موجود برداشته شد."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "نام پرونده نامعتبر: %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "خطا در گرفتن اطّلاعات سامانه‌پرونده‌ برای %s: %s"
@@ -2856,253 +2881,253 @@ msgstr "خطا در گرفتن اطّلاعات سامانه‌پرونده‌
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr ""
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "نمی‌توان نام شاخهٔ ریشه را عوض کرد"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "خطا در تغییر نام پرونده %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "نمی‌توان نام پرونده را عوض کرد. نام پرونده از پیش وجود دارد"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "نام پرونده نامعتبر"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "خطا در گشودن پروندهٔ %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "خطا در برداشتن پروندهٔ %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "خطا در دور ریختن پروندهٔ %s: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "ناتوان در ایجاد شاخهٔ زباله‌دان %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "ناتوان در یافتن شاخهٔ سطح بالا برای دور ریختن %s"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "ناتوان در یافتن یا ایجاد شاخهٔ زباله‌دان %s برای دور ریختن %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "ناتوان در ایجاد پروندهٔ اطّلاعات دور ریختن برای %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "ناتوان در دور ریختن پروندهٔ %s از فرار محدوده‌های سامانه‌پرونده"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "ناتوان در دور ریختن پروندهٔ %s: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "ناتوان در دور ریختن پروندهٔ %s"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "خطا در ایجاد شاخهٔ %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "سیستم‌پرونده از پیوندهای نمادین پشتیبانی نمی‌کند"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "خطا در ساختن پیوند نمادین %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "خطا در جابجایی پروندهٔ %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "نمی‌توان شاخه را روی شاخه جابه‌جا کرد"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "ساخت پرونده پشتیبان شکست خورد"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "خطا در هنگام حذف پرونده هدف: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr ""
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "نتوانست استفادهٔ دیسک %s را تشخیص دهد: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "مقدار صفت باید غیر تهی باشد"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "گونهٔ صفت نامعتبر (انتظار رشته یا نامعتبر)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "نام صفت گستردهٔ نامعتبر"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "خطا در تنظیم کردن صفت گستردهٔ «‎%s»‏: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (کدگذاری نامعتبر)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "خطا هنگام گرفتن اطّلاعات برای پروندهٔ «%s»: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "خطا هنگام گرفتن اطّلاعات برای توصیفگر پرونده: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "نوع مشخصه نامعتبر (uint32 مورد انتظار بود)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "نوع مشخصه نامعتبر بود (uint64 مورد انتظار بود)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "نوع مشخصه نامعتبر (رشته بایتی مورد انتظار بود)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "نمی‌توان اجازه‌های روی پیوند نمادین را تنظیم کرد"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "خطا در هنگام تنظیم اجازه‌ها: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "خطا در هنگام تنظیم مالک: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
-msgstr ""
+msgstr "پیوند نمادین باید ناتهی باشد"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430 gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517 gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "خطا در تنظیم پیوند نمادین: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
-msgstr ""
+msgstr "خطا در تنظیم پیوند نمادین: پرونده یک پیوند نمادین نیست"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr ""
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr ""
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr ""
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "خطا در تنظیم کردن زمان دسترسی یا تغییر برای پروندهٔ «%s»: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "خطا در هنگام تنظیم کردن زمان دسترسی یا تغییر: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
-msgstr ""
+msgstr "بافتار SELinux باید ناتهی باشد"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "سیستم SELinux بر روی این سیستم فعال نشده است"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "خطا در تنظیم مفاد SELinux: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "تنظیم کردن مشخصه %s پشتیبانی نمی‌شود"
@@ -3149,13 +3174,13 @@ msgstr "خطا در هنگام رونشت از پشتیبان: %s"
msgid "Error renaming temporary file: %s"
msgstr "خطا خطا در تغییر نام پرونده موقت: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "خطا در هنگام کوتاه کردن پرونده: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "خطا در گشودن پروندهٔ «%s»: %s"
@@ -3172,7 +3197,7 @@ msgstr "پرونده هدف یک پرونده معمولی نیست"
msgid "The file was externally modified"
msgstr "پرونده از خارج تغییر کرده است"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "خطا در هنگام حذف پرونده قدیمی: %s"
@@ -3301,41 +3326,41 @@ msgstr ""
msgid "Output stream doesn’t implement write"
msgstr "جریان خروجی write را پیاده نساخته"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr ""
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "جریان منبع از قبل بسته شده است"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr ""
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "خطا در حل «%s»: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr ""
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "دامنهٔ نامعتبر"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985 gio/gresource.c:1109
#: gio/gresource.c:1181 gio/gresource.c:1255 gio/gresource.c:1336
-#: gio/gresourcefile.c:478 gio/gresourcefile.c:601 gio/gresourcefile.c:752
+#: gio/gresourcefile.c:482 gio/gresourcefile.c:606 gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr ""
@@ -3345,16 +3370,16 @@ msgstr ""
msgid "The resource at “%s” failed to decompress"
msgstr ""
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr ""
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr ""
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "جریان ورودی seek را پیاده نساخته"
@@ -3602,6 +3627,28 @@ msgid ""
"Use “gsettings help COMMAND” to get detailed help.\n"
"\n"
msgstr ""
+"استفاده:\n"
+" gsettings --version\n"
+" gsettings [--schemadir SCHEMADIR] COMMAND [ARGS…]\n"
+"\n"
+"دستورها:\n"
+" help نمایش این راهنما\n"
+" list-schemas سیاهه‌کردن طرحواره‌های نصب شده\n"
+" list-relocatable-schemas سیاهه‌کردن طرحواره‌های جابه‌جایی پذیر\n"
+" list-keys سیاهه‌کردن کلیدهای یک طرحواره\n"
+" list-children سیاهه‌کردن فرزندان یک طرحواره\n"
+" list-recursively سیاهه‌کردن بازگشتی کلیدها و مقدارها\n"
+" range پرس‌وجوی دامنهٔ یک کلید\n"
+" describe پرس‌وجوی شرح یک کلید\n"
+" get گرفتن مقدار یک کلید\n"
+" set تنظیم مقدار یک کلید\n"
+" reset بازنشانی مقدار یک کلید\n"
+" reset-recursively بازنشانی تمامی مقدارها در طرحوارهٔ داده شده\n"
+" writable بررسی قابل نوشتن بودن یک کلید\n"
+" monitor پایش تفییرات\n"
+"\n"
+"برای گرفتن راهنمای تفصیلی از «gsettings help COMMAND» استفاده کنید\n"
+"\n"
#: gio/gsettings-tool.c:710
#, c-format
@@ -3612,6 +3659,11 @@ msgid ""
"%s\n"
"\n"
msgstr ""
+"استفاده:\n"
+" gsettings [--schemadir SCHEMADIR] %s %s\n"
+"\n"
+"%s\n"
+"\n"
#: gio/gsettings-tool.c:716
msgid " SCHEMADIR A directory to search for additional schemas\n"
@@ -3666,168 +3718,169 @@ msgstr ""
msgid "Socket is already closed"
msgstr "سوکت از قبل بسته شده است"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
-msgstr ""
+msgstr "مهلت سوکت ورودی و خروجی به سر رسید"
#: gio/gsocket.c:586
#, c-format
msgid "creating GSocket from fd: %s"
msgstr "درحال ساخت GSocket از طریق fd: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "نمی‌توان سوکت را ساخت: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "خانوادهٔ ناشناخته مشخّص شده"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "پروتکل ناشناسی مشخص شده است"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr ""
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "نمی‌توان آدرس محلی را دریافت کرد: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "نمی‌توان آدرس دوردست را دریافت کرد: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
-msgstr ""
+msgstr "نتوانست شنود کند: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "خطا در چسبیدن به نشانی ‎%s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "خطا در پیوستن به گروه چندپخشی: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "خطا در ترک گروه چندپخشی: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr ""
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr ""
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr ""
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr ""
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
-msgstr ""
+msgstr "میانا پیدا نشد: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr ""
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr ""
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "خطا در هنگام پذیرفتن اتصال: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "اتصال در حال پیشروی است"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "ناتوان در دریافت خطای درانتظار: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "خطا در دریافت داده: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "خطا در ارسال داده: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "نمی‌توان سوکت را خاموش کرد: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "خط در هنگام بستن سوکت: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "در حال انتظار برای وضعیت سوکت: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "ناتوان در فرستادن پیام: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "بردارهای پیام بیش از حد بلند"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "خطا در هنگام ارسال پیام: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "روی ویندوز از GSocketControlMessage پشتیبانی نمی‌شود"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "خطا در هنگام دریافت پیام: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "ناتوان در خواندن گواهی‌های سوکت: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr ""
@@ -3843,7 +3896,7 @@ msgstr "نمی‌توان به %s متصل شد: "
#: gio/gsocketclient.c:209
msgid "Could not connect: "
-msgstr ""
+msgstr "نتوانست وصل شود: "
#: gio/gsocketclient.c:1204 gio/gsocketclient.c:1807
msgid "Proxying over a non-TCP connection is not supported."
@@ -3882,11 +3935,11 @@ msgstr "این کارگزار، یک کارگزار پیشکار SOCKSv4 نیس
#: gio/gsocks4aproxy.c:188
msgid "Connection through SOCKSv4 server was rejected"
-msgstr ""
+msgstr "اتّصال از طریق کارساز ساکس۴ رد شد"
#: gio/gsocks5proxy.c:155 gio/gsocks5proxy.c:340 gio/gsocks5proxy.c:350
msgid "The server is not a SOCKSv5 proxy server."
-msgstr ""
+msgstr "یک کارساز پیشکار ساکس ۵ نیست."
#: gio/gsocks5proxy.c:169 gio/gsocks5proxy.c:186
msgid "The SOCKSv5 proxy requires authentication."
@@ -3921,7 +3974,7 @@ msgstr "خطای داخلی کارگزار پیشکار SOCKSv5."
#: gio/gsocks5proxy.c:377
msgid "SOCKSv5 connection not allowed by ruleset."
-msgstr ""
+msgstr "اتّصال ساکس۵ از سوی مجموعه قواعد مجاز نیست."
#: gio/gsocks5proxy.c:384
msgid "Host unreachable through SOCKSv5 server."
@@ -3947,7 +4000,7 @@ msgstr "پیشکار SOCKSv5 از نوع آدرس ارائه شده پشتیبا
msgid "Unknown SOCKSv5 proxy error."
msgstr "خطا ناشناس پیشکار نسخه ۵ SOCKS."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "ایجاد لوله برای ارتباط با فرایند فرزند شکست خورد (%s)"
@@ -3962,46 +4015,46 @@ msgstr "روی این بن‌سازه ار لوله‌ها پشتیبانی نم
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "نمی‌توان نگارش %Id رمزنگاری GThemedIcon را مدیریت کرد"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
-msgstr ""
+msgstr "هیجچ نشانی معتبری پیدا نشد"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "خطا در حل معکوس «%s»: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
-msgstr ""
+msgstr "طا در تجزیهٔ رکورد %s ساناد: بستهٔ ساناد بدریخت"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
-msgstr ""
+msgstr "هیچ رکورد سانادی از گونهٔ درخواستی برای «%s» وجود ندارد"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
-msgstr ""
+msgstr "ناتوانی موقتی در تحلیل «%s»"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "خطا در حل «%s»"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
-msgstr ""
+msgstr "بستهٔ ساناد بدریخت"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "شکست در تجزیهٔ پاسخ ساناد برای «%s»: "
@@ -4059,57 +4112,57 @@ msgstr "گذرواژه وارد شده نادرست است."
msgid "Sending FD is not supported"
msgstr "فرستادن FD پشتیبانی نمی‌شود"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "انتظار ۱ پیام واپایشی می‌رفت، %Id مورد دریافت شد"
msgstr[1] "انتظار ۱ پیام واپایشی می‌رفت، %Id مورد دریافت شد"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "نوع داده کمکی غیرمنتظره"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "انتظار یک fd می‌رفت، ولی %Id مورد دریافت شد\n"
msgstr[1] "انتظار یک fd می‌رفت، ولی %Id مورد دریافت شد\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "یک fd نامعتبر دریافت شد"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "گرفتن FD پشتیبانی نمی‌شود"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "خطا در زمان ارسال گواهینامه: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "خطا در هنگام بررسی اینکه آیا SO_PASSCRED f برای سوکت فعال است یا خیر: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "خطا در هنگام فعال کردن SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr "انتظار خواندن یک بایت برای دریافت گواهینامه می‌رفت اما صفر بایت خوانده شد"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "انتظار پیام کنترلی نمی‌رفت، اما %Id دریافت شد"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "خطا در هنگام غیرفعال‌سازی SO_PASSCRED: %s"
@@ -4125,7 +4178,7 @@ msgstr "خطا در خواندن از توصیف‌گر پرونده: %s"
msgid "Error closing file descriptor: %s"
msgstr "خطا در بستن توصیف‌گر پرونده: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "ریشه سیستم‌پرونده‌ها"
@@ -4185,7 +4238,7 @@ msgstr "داده فشرده شده نامعتبر"
#: gio/tests/gdbus-daemon.c:18
msgid "Address to listen on"
-msgstr ""
+msgstr "نشانی برای شنود"
#: gio/tests/gdbus-daemon.c:19
msgid "Ignored, for compat with GTestDbus"
@@ -4197,136 +4250,131 @@ msgstr "چاپ آدرس"
#: gio/tests/gdbus-daemon.c:21
msgid "Print address in shell mode"
-msgstr ""
+msgstr "نشانی چاپ در حالت پوسته"
#: gio/tests/gdbus-daemon.c:28
msgid "Run a dbus service"
-msgstr ""
+msgstr "اجرای یک خدمت دی‌باس"
#: gio/tests/gdbus-daemon.c:42
msgid "Wrong args\n"
-msgstr ""
+msgstr "آرکومان‌های اشتباه\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "صفت نامنتظرهٔ «%s» برای عنصر «%s»"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "صفت «%s» برای عنصر «%s» پیدا نشد"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267 glib/gbookmarkfile.c:1331
-#: glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349 glib/gbookmarkfile.c:1413
+#: glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "برچسب نامنتظرهٔ «%s»، انتظار برچسب «%s» می‌رفت"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241 glib/gbookmarkfile.c:1309
-#: glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323 glib/gbookmarkfile.c:1391
+#: glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "برچسب نامنتظرهٔ «%s» داخل «%s»"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
-msgstr ""
+msgstr "تاریخ یا زمان اشتباه «%s» در پروندهٔ نشانم"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "پروندهٔ چوب‌الف معتبری در شاخه‌های داده پیدا نمی‌شود"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "نشانکی برای نشانی «‎%s» از پیش موجود است"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246 glib/gbookmarkfile.c:2331
-#: glib/gbookmarkfile.c:2411 glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898 glib/gbookmarkfile.c:2940
-#: glib/gbookmarkfile.c:3037 glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712 glib/gbookmarkfile.c:3801
-#: glib/gbookmarkfile.c:3890 glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364 glib/gbookmarkfile.c:2449
+#: glib/gbookmarkfile.c:2529 glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016 glib/gbookmarkfile.c:3058
+#: glib/gbookmarkfile.c:3155 glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830 glib/gbookmarkfile.c:3919
+#: glib/gbookmarkfile.c:4008 glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "نشانکی برای نشانی «‎%s» پیدا نشد"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "هیچ گونهٔ MIMEای در نشانک برای نشانی «‎%s» تعریف نشده"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "هیچ پرچم خصوصی‌ای در نشانک برای نشانی «%s» تعریف نشده"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "هیچ گروهی در نشانک برای نشانی «‎%s» تعیین نشده"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "هیچ برنامه‌ای با نام «%s» نشانکی برای «‎%s» ثبت نکرده"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "شکست در گستراندن خط «‎%s» با نشانی «%s»"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "نویسهٔ غیرقابل نمایش در ورودی تبدیل"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "دنباله نویسهٔ ناتمام در انتهای ورودی"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "نمی‌توان عقب‌نشینی «%s» را به مجموعه کد «%s» تبدیل کرد"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "بایت تهی تعبیه شده در ورودی تبدیل"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "بایت تهی تعبیه شده در خروجی تبدیل"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "نشانی «‎%s» یک نشانی اینترنتی مطلق با شِمای «پرونده» نیست"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "نشانی پروندهٔ محلی «‎%s» نمی‌تواند «#» داشته باشد"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "نشانی اینترنتی «%s» نامعتبر است"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "نام میزبان نشانی اینترنتی «‎%s» نامعتبر است"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "نشانی اینترنتی «‎%s» نویسه‌های گریختهٔ نامعتبر دارد"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "نام مسیر «‎%s» یک مسیر مطلق نیست"
@@ -4753,79 +4801,79 @@ msgstr "ب‌ظ"
msgid "Error opening directory “%s”: %s"
msgstr "خطا در گشودن شاخهٔ «‎%s»‏: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "نتوانست %Ilu بایت برای خواندن پروندهٔ «‎%s» تخصیص دهد"
msgstr[1] "نتوانست %Ilu بایت برای خواندن پروندهٔ «‎%s» تخصیص دهد"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "خطا در خواندن پروندهٔ «%s»: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "پروندهٔ «%s» بسیار بزرگ است"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "شکست در خواندن از پروندهٔ «‎%s»: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "شکست در گشودن پروندهٔ «‎%s»: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "شکست در گرفتن مشخصه‌های پروندهٔ «‎%s»: fstat()‎ شکست خورد: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "شکست در گشودن پروندهٔ «‎%s»: fdopen()‎ شکست خورد: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "شکست در تغییر نام پروندهٔ «‎%s» به «‎%s»: g_rename()‎ شکست خورد: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "شکست در نوشتن پروندهٔ «‎%s»: fdwrite()‎ شکست خورد: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "شکست در نوشتن پروندهٔ «‎%s»: fsync()‎ شکست خورد: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "شکست در ایجاد پروندهٔ «‎%s»: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "پروندهٔ موجود «‎%s» نتوانست برداشته شود: g_unlink() شکست خورد: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "قالب «%s» نامعتبر است، نباید «%s» داشته باشد"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "قالب «%s» شامل XXXXXX نیست"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "شکست در خواندن پیوند نمادین «‎%s»: %s"
@@ -4851,143 +4899,143 @@ msgstr "کانال با یک نویسهٔ ناتمام پایان می‌یاب
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "نمی‌توان در g_io_channel_read_to_end خوانش خام انجام داد"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "پروندهٔ کلید معتبر در شاخه‌های جست‌وجو یافت نمی‌شود"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "پرونده متعارف نیست"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
msgstr "پرونده کلید حاوی خط «%s» است که جفت کلید‐مقدار، گروه یا توضیح نیست"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "نام گروه نامعتبر: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "پروندهٔ کلید با یک گروه آغاز نمی‌شود"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "نام کلید نامعتبر: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "پروندهٔ کلید حاوی کدگذاری پشتیبانی نشدهٔ «%s» است"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "پروندهٔ کلید گروه «%s» را ندارد"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "پروندهٔ کلید، کلید «%s» در گروه «%s» را ندارد"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "پروندهٔ کلید دارای کلید «%s» با مقدار «%s» است که UTF-8 نیست"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid "Key file contains key “%s” which has a value that cannot be interpreted."
msgstr "پروندهٔ کلید دارای کلید «%s» است که دارای مقداری است که قابل تفسیر نیست."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
"interpreted."
msgstr "پروندهٔ کلید دارای کلید «%s» در گروه «%s» است که مقداری غیرقابل تفسیر دارد."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "کلید «%s» در گروه «%s» دارای مقدار «%s» است؛ در حالی مه انتظار %s می رفت"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "پرونده کلید شامل نویسهٔ گریز در انتهای خط است"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4378
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "پروندهٔ کلید حاوی دنبالهٔ گریز نامعتبر «%s» است"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4530
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "مقدار «%s» را نمی‌توان به عدد تفسیر کرد."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4544
#, c-format
msgid "Integer value “%s” out of range"
msgstr "مقدار صحیح «%s» خارج از محدوده است"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "مقدار «%s» را نمی‌توان به عدد اعشاری تفسیر کرد."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4616
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "مقدار «%s» را نمی‌توان به مقدار بولی تفسیر کرد."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr "شکست در گرفتن مشخصه‌های پروندهٔ «%s%s%s‎%s»: fstat()‎ شکست خورد: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "شکست در نگاشت %s%s%s%s: mmap()‎ شکست خورد: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "شکست در گشودن «%s»: ‪open()‬ شکست خورد: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "خطا در سطر %Id نویسهٔ %Id:‏ "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "متن کدگذاری‌شدهٔ UTF-8 نامعتبر در نام - «%s» معتبر نیست"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "نام «%s» معتبر نیست"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "نام «%s» معتبر نیست: «%c»"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "خطا در سطر %Id:‏ %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -4996,7 +5044,7 @@ msgstr ""
"شکست در تجزیهٔ «‎%-.*s»، که باید رقمی داخل یک ارجاع نویسه‌ای (مثل ‎&#234;‎) باشد - "
"شاید رقم خیلی بزرگ است"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand as "
@@ -5006,23 +5054,23 @@ msgstr ""
"موجودیتی را بیاغازید از نویسهٔ & استفاده کرده‌اید - برای نوشتن علامت & از ‎&amp;‎ "
"استفاده کنید;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "ارجاع نویسه‌ای «‎%-.*s» به نویسهٔ مجاز اشاره نمی‌کند"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid "Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"موجودیت خالی «‎&;‎» مشاهده شد؛ موجودیت‌های معتبر عبارتند از: ‎&amp; &quot; &lt; &gt; "
"&apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "نام موجودیت «%-.*s» شناخته شده نیست"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand character "
"without intending to start an entity — escape ampersand as &amp;"
@@ -5031,18 +5079,18 @@ msgstr ""
"موجودیتی را بیاغازید از نویسهٔ & استفاده کرده‌اید - برای نوشتن علامت & از ‎&amp;‎ "
"استفاده کنید;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "نوشتار باید با یک عنصر (مثلاً <book>) شروع شود"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
"element name"
msgstr "«%s» پس از یک نویسهٔ '‎<‎' نویسهٔ مجازی نیست؛ نمی‌شود ابتدای نام یک عنصر باشد"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag “%s”"
@@ -5050,19 +5098,19 @@ msgstr ""
"نویسهٔ غیرعادی «%s»، برای پایان دادن به برچسب عنصر خالی «%s» انتظار یک نویسهٔ «‎>‎» "
"می‌رفت"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
-msgstr ""
+msgstr "ویژگی‌های بیش از حد در عنصر «%s»"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
msgstr ""
"نویسهٔ غیرعادی «%s»، بعد از نام مشخصهٔ «%s» عنصر «%s» انتظار یک نویسهٔ «=» می‌رفت"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5073,7 +5121,7 @@ msgstr ""
"انتظار یک نویسهٔ «‎>‎» یا «/» می‌رفت؛ شاید از یک نویسهٔ نامعتبر در نام مشخصه‌ای "
"استفاده کرده باشید"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5082,7 +5130,7 @@ msgstr ""
"نویسهٔ غیرعادی «%s»، هنگام مقدار دادن به مشخصهٔ «%s» از عنصر «%s» پس از علامت "
"تساوی انتظار یک علامت نقل قول باز می‌رفت"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not begin "
@@ -5091,32 +5139,32 @@ msgstr ""
"«%s» بعد از نویسه‌های «‎</‎» نویسهٔ معتبری نیست؛ «%s» نمی‌تواند ابتدای نام عناصر قرار "
"بگیرد"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the allowed "
"character is “>”"
msgstr "«%s» نویسهٔ معتبری برای بستن نام عنصر «%s» نیست؛ نویسهٔ مجاز «‎<» است"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "عنصر «%s» بسته بود، در حال حاضر هیچ عنصری باز نیست"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "عنصر «%s» بسته بود، ولی عنصری که در حال حاضر باز است «%s» است"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "نوشتار خالی است یا فقط فاصلهٔ خالی دارد"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "نوشتار به‌طور غیرمنتظره‌ای درست بعد از یک علامت کوچکتر '‎<‎' پایان یافت"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last element "
@@ -5125,7 +5173,7 @@ msgstr ""
"نوشتار وقتی که هنوز عناصری باز بودند به‌طور غیرمنتظره‌ای پایان یافت — آخرین عنصر "
"باز شده «%s» بود"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending the "
@@ -5134,19 +5182,19 @@ msgstr ""
"نوشتار به‌طور غیرمنتظره‌ای پایان یافت، یک علامت بزرگتر برای بستن برچسب ‎<%s/>‎ "
"انتظار می‌رفت"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "نوشتار به‌طور غیرمنتظره‌ای داخل نام یک عنصر به‌پایان رسید"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "نوشتار به‌طور غیرمنتظره‌ای داخل نام یک مشخصه به‌پایان رسید"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "نوشتار به‌طور غیرمنتظره‌ای داخل یک برچسب عنصربازکن پایان یافت."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute name; "
"no attribute value"
@@ -5154,20 +5202,20 @@ msgstr ""
"نوشتار به‌طور غیرمنتظره‌ای بعد از علامت تساوی‌ای که پس از نام مشخصه‌ای آمده بود تمام "
"شد؛ بدون مقدار برای مشخصه"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "نوشتار به‌طور غیرمنتظره‌ای داخل مقدار یک مشخصه به‌پایان رسید"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "نوشتار به‌طور غیرمنتظره‌ای داخل برچسب بستن عنصر «%s» پایان یافت"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid "Document ended unexpectedly inside the close tag for an unopened element"
msgstr "نوشتار به‌طور غیرمنتظره‌ای داخل برچسب بستن عنصر «%s» پایان یافت"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr "نوشتار به‌طور غیرمنتظره‌ای داخل یک توضیح یا دستورالعمل پردازشی پایان یافت"
@@ -5230,300 +5278,296 @@ msgstr "‏%s یک آرگومان کم دارد"
msgid "Unknown option %s"
msgstr "گزینهٔ نامعلوم %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "شیء ناقص"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "حافظه کم است"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "محدودیت backtracking فرارسید"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "خطا داخلی"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "الگو حاوی مواردی است که برای مطابقت جزئی مناسب نیست"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr ""
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "محدودیت تکرار فرارسید"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "جابه‌جایی نادرست"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
-msgstr ""
+msgstr "حلقهٔ بازگشتی"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
-msgstr ""
+msgstr "حالت تطبیقی درخواست می‌شود که برای JIT ترجمه نشده بود"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "خطا نادرست"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ در پایان الگو"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c در پایان الگو"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "نویسهٔ ناشناخته پس از \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "اعداد بدون ترتیل در کمیت‌سنج {}"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "اعداد در کمیت‌سنج {} بسیار بزرگ هستند"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "بدون [ پایان‌دهنده برای کلاس نویسه"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "دنبالهٔ گریز نامعتبر در کلاس نویسه"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "محدوده در کلاس نویسه بدون ترتیب است"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "چیزی برای تکرار نیست"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "نویسهٔ ناشناس پس از ‪(?‬ یا ‪(?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
-msgstr ""
+msgstr "کلاس‌های نام‌دار پازیکس تنها درون کلاس‌ها پشتیبانی می‌شوند"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "عنصرهای تطبیق با POSIX پشتیبانی نمی‌شوند"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
-msgstr ""
+msgstr "پرانتز بستهٔ پایانی ناموجود"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
-msgstr ""
+msgstr "ارجاع به زیرالگوی ناموجود"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
-msgstr ""
+msgstr "پرانتز بستهٔ ناموجود پس از نظر"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "عبارت باقاعده بیش از حد بلند است"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
-msgstr ""
+msgstr "عدد یا نام بدریخت پس از ‪(?("
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr ""
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr ""
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr ""
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
-msgstr ""
+msgstr "ارجاع عددی نباید صفر باشد"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "نام کلاس POSIX ناشناخته"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
-msgstr ""
+msgstr "مقدار نویسه در دنبالهٔ ‪\\x{...}‬ بیش از حد طولانی است"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr ""
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
-msgstr ""
+msgstr "در نام زیرالگو پایان دهنده وجود ندارد"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
-msgstr ""
+msgstr "نام دو زیرالگوی نام‌دار یکی است"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
-msgstr ""
+msgstr "دنبالهٔ ‪\\P‬ یا ‪\\p‬ بدریخت"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "خصیصهٔ ناشناس پس از \\P یا \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
-msgstr ""
+msgstr "نام زیرالگو بیش از حد طولانی است (بیشینه ۳۲ نویسه)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
-msgstr ""
+msgstr "زیرالگوهای نام‌دار بیش از حد (بیشینه ۱۰٫۰۰۰)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
-msgstr ""
+msgstr "مقدار هشت‌هشتی بزرگ‌تر از \\377 است"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr ""
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
-msgstr ""
+msgstr "گزینه‌های NEWLINE متناقض"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, or "
"by a plain number"
msgstr ""
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr ""
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr ""
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
-msgstr ""
+msgstr "عدد بیش از حد بزرگ است"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr ""
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr ""
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr ""
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr ""
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "از ‪/N‬ در یک کلاس پشتیبانی نمی‌شود"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "نام در (*MARK)، (*PRUNE)، (*SKIP) یا (*THEN) بیش از حد طولانی است."
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "سرریز کد"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "نویسه ناشناس بعد از (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "فضای کاری ترجمهٔ پایمال شده"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "زیرالگوی ارجاع شدهٔ پیش‌تر بررسی شده پیدا نشد"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "خطا در هنگام منطبق کردن عبارت باقاعده %s: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "کتابخانه PCRE بدون پشتیبانی از UTF8 کامپایل شده است"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "کتابخانهٔ PCRE با گزینه‌هایی ناسازگار ترجمه شده"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "خطا هنگام ترجمهٔ عبارت با قاعدهٔ «%s» در نویسهٔ %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "انتظار رقم شانزده‌شانزدهی یا «}» می‌رفت"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "رقم هگزادسیمال مورد انتظار بود"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "بدون «>» در ارجاع نمادین"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "ارجاع نمادین ناتمام"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "مرجع نمادین با طول صفر"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "انتظار رقم می‌رفت"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "ارجاع نمادین غیرقانونی"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "«\\» پایانی سرگردان"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "دنبالهٔ گریز ناشناخته"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "خطا هنگام تجزیه کردن متن جایگزین «%s» در نویسهٔ %lu: %s"
@@ -5552,361 +5596,366 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "متن خالی بود (یا فقط فاصلهٔ خالی داشت)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "خواندن داده‌ها از فرایند فرزند شکست خورد (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "خطای غیرمنتظره در خواندن داده‌ها از یک فرایند فرزند (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "خطای غیرمنتظره در waitpid()‎ ‏(%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "فرایند فرزند با رمز %ld خارج شد"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "فرایند فرزند به دست سیگنال %ld کشته شد"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "فرایند فرزند به دست سیگنال %ld متوقّف شد"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "فرایند فرزند به طور غیر معمول خارج شد"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "خواندن از لولهٔ فرزند شکست خورد (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "انشعاب فرایند فرزند «%s» شکست خورد (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "انشعاب شکست خورد (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "تغییر به شاخهٔ «%s» شکست خورد: (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "اجرای فرایند فرزند «%s» شکست خورد (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "شکست در گشودن شرح‌دهندهٔ پروندهٔ بازنگاشت (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "شکست در تکرار شرح‌دهندهٔ پرونده برای فرایند فرزند (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "انشعاب فرایند فرزند شکست خورد (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "شکست در بستن شرح‌دهندهٔ پرونده برای فرایند فرزند (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "خطای ناشناخته در اجرای فرایند فرزند «%s»"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "خواندن دادهٔ کافی از لولهٔ pid فرزند شکست خورد (%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "آرگومان FDs منبع نامعتبر"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "خواندن داده‌ها از فرایند فرزند شکست خورد"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "اجرای فرایند فرزند شکست خورد (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "شکست در ‪dup()‬ در فرایند فرزند (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "نام برنامهٔ نامعتبر: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "رشتهٔ نامعتبر در بردار آرگومان درآیهٔ %Id: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "رشتهٔ نامعتبر در محیط: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "شاخهٔ کاری نامعتبر‏: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "اجرای برنامهٔ راهنما (‎%s) شکست خورد"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child process"
msgstr ""
"خطای غیرمنتظره در g_io_channel_win32_poll()‎ هنگام خواندن داده‌ها از یک فرایند "
"فرزند"
-#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3474
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "رشتهٔ خالی یک شماره نیست"
-#: glib/gstrfuncs.c:3396
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "«%s» عددی علامت‌دار نیست"
-#: glib/gstrfuncs.c:3406 glib/gstrfuncs.c:3510
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "شمارهٔ «%s» خارج از محدودهٔ [%s, %s] است"
-#: glib/gstrfuncs.c:3500
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "«%s» عددی بدون علامت نیست"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "کدگذاری % نامعتبر در نشانی"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "نویسه‌های غیرقانونی در نشانی"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "نویشه‌های غیر UTF-8 در نشانی"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "نشانی آی‌پی۶ «%.*s» در نشانی"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "نشانی آی‌پی رمزشدهٔ غیرقانونی «%.*s» در نشانی"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "نام دامنهٔ غیرقانونی بین‌المللی‌سازی «%.*s» در نشانی"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "نتوانست درگاه «%.*s» در نشانی را تجزیه کند"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "درگاه «%.*s» در نشانی حارج از محدوده است"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "نشانی «‎%s» یک نشانی مطلق نیست"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "نشانی «%s» هیچ مولّفهٔ میزبانی ندارد"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "نشانی مطلق نیست و هیج نشانی پایه‌ای فراهم نشده"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "بدون «=»‌و مقدار پرامتر"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "شکست در تخصیص حافظه"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "نویسهٔ خارج از محدوده برای UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "دنبالهٔ نامعتبر در ورودی تبدیل"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "نویسهٔ خارج از محدوده برای UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "ک‌ب"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "م‌ب"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "گ‌ب"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "ت‌ب"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "پ‌ب"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "اِب"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "کی‌ب"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "می‌ب"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "گی‌ب"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "تی‌ب"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "پی‌ب"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "ای‌ب"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "ک‌بی"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "م‌بی"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "گ‌بی"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "ت‌بی"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "پ‌بی"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "اِبی"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "کی‌بی"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "می‌بی"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "گی‌بی"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "تی‌بی"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "پی‌بی"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "ای‌بی"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "بایت"
msgstr[1] "بایت"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "بیت"
@@ -5914,7 +5963,7 @@ msgstr[1] "بیت"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -5922,7 +5971,7 @@ msgstr "%Iu"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -5930,7 +5979,7 @@ msgstr "%Iu %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -5939,14 +5988,14 @@ msgstr "%I.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%I.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -5954,14 +6003,14 @@ msgstr[0] "%s بایت"
msgstr[1] "%s بایت"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s بیت"
msgstr[1] "%s بیت"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -5973,39 +6022,45 @@ msgstr[1] "%Iu بایت"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%I.1f کیلوبایت"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%I.1f مگابایت"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%I.1f گیگابایت"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%I.1f ترابایت"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%I.1f پتابایت"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%I.1f اگزابایت"
-#, fuzzy, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "نام ویرایش: %s\n"
+#~ msgid "backtracking limit reached"
+#~ msgstr "محدودیت backtracking فرارسید"
+
+#~ msgid "GApplication options"
+#~ msgstr "گزینه‌های GApplication"
+
+#, c-format
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "نشانی پروندهٔ محلی «‎%s» نمی‌تواند «#» داشته باشد"
#~ msgid "internal error or corrupted object"
#~ msgstr "خطا داخلی یا شیء ناقص"
diff --git a/po/fr.po b/po/fr.po
index a26a7d8fc..d849b2aba 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -19,8 +19,8 @@ msgid ""
msgstr ""
"Project-Id-Version: glib master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-09-10 09:05+0000\n"
-"PO-Revision-Date: 2022-09-10 15:17+0200\n"
+"POT-Creation-Date: 2023-09-12 10:26+0000\n"
+"PO-Revision-Date: 2023-09-05 16:35+0200\n"
"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
"Language: fr\n"
@@ -28,50 +28,50 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Gtranslator 40.0\n"
+"X-Generator: Poedit 3.2.2\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr ""
"La définition des applications par défaut n’est pas encore prise en charge"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"La définition de l’application comme étant la dernière utilisée pour le type "
"n’est pas encore prise en charge"
-#: gio/gappinfo.c:810
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr ""
"Impossible de trouver l’application par défaut pour le type de contenu « %s »"
-#: gio/gappinfo.c:870
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr ""
"Impossible de trouver l’application par défaut pour le protocole d’URI « %s »"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "Options GApplication"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "Options GApplication :"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Afficher les options GApplication"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
"Entrer dans le mode de service GApplication (utiliser à partir des fichiers "
"de service D-Bus)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Remplacer l’identifiant d’application"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Remplacer l’instance en cours"
@@ -154,7 +154,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Identifiant d’application au format D-Bus (ex. : org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FICHIER"
@@ -251,11 +251,11 @@ msgstr "impossible de se connecter à D-Bus : %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "erreur d’envoi du message %s à l’application : %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "un nom d’action doit être indiqué après l’identifiant d’application\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -265,25 +265,25 @@ msgstr ""
"les noms d’actions ne peuvent contenir que des caractères alphanumériques, "
"« - » et « . »\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "erreur d’analyse du paramètre d’action : %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "les actions n’acceptent pas plus d’un paramètre\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "la commande list-actions n’accepte que l’identifiant de l’application"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "impossible de trouver le fichier desktop pour l’application %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -293,9 +293,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "La valeur de comptage fournie à %s est trop grande"
@@ -309,8 +309,8 @@ msgstr "Le positionnement n’est pas pris en charge sur le flux de base"
msgid "Cannot truncate GBufferedInputStream"
msgstr "Impossible de tronquer GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Le flux est déjà fermé"
@@ -318,7 +318,7 @@ msgstr "Le flux est déjà fermé"
msgid "Truncate not supported on base stream"
msgstr "La troncature n’est pas prise en charge sur le flux de base"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -337,30 +337,30 @@ msgid "Not enough space in destination"
msgstr "Espace insuffisant dans la destination"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Séquence d’octets incorrecte en entrée du convertisseur"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Erreur lors de la conversion : %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Initialisation annulable non prise en charge"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr ""
"La conversion du jeu de caractères « %s » vers « %s » n’est pas prise en "
"charge"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Impossible d’ouvrir le convertisseur de « %s » vers « %s »"
@@ -406,18 +406,18 @@ msgstr ""
msgid "Unexpected early end-of-stream"
msgstr "Fin précoce de flux inattendue"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Clé « %s » non prise en charge dans l’élément d’adresse « %s »"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr ""
"Combinaison clé/valeur sans signification dans l’élément d’adresse « %s »"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -426,7 +426,7 @@ msgstr ""
"L’adresse « %s » n’est pas valide (nécessite exactement une des clés de "
"« path », « dir », « tmpdir » ou « abstract »)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -566,7 +566,7 @@ msgstr ""
"Impossible de déterminer l’adresse du bus de session (non pris en charge "
"pour ce système d’exploitation)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -575,7 +575,7 @@ msgstr ""
"Impossible de déterminer l’adresse du bus à partir de la variable "
"d’environnement DBUS_STARTER_BUS_TYPE — valeur inconnue « %s »"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -583,7 +583,7 @@ msgstr ""
"Impossible de déterminer l’adresse du bus étant donné que la variable "
"d’environnement DBUS_STARTER_BUS_TYPE n’est pas définie"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Type de bus %d inconnu"
@@ -606,23 +606,27 @@ msgstr ""
"Tous les mécanismes d’authentification disponibles ont été épuisés (tentés : "
"%s) (disponibles : %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Manque de contenu imprévu lors de la tentative de lecture d’un octet"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr ""
"Les identifiants des utilisateurs doivent être identiques pour le pair et le "
"serveur"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Annulé via GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr ""
"Erreur lors de la récupération d’information sur le répertoire « %s » : %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -630,34 +634,34 @@ msgstr ""
"Les droits d’accès au répertoire « %s » sont mal formés. Mode 0700 attendu, "
"0%o obtenu"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Erreur lors de la création du répertoire « %s » : %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Opération non prise en charge"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Erreur lors de l’ouverture du trousseau de clés « %s » en lecture : "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
"La ligne %d du trousseau de clés de « %s » avec le contenu « %s » est mal "
"formée"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -665,7 +669,7 @@ msgstr ""
"Le premier jeton de la ligne %d du trousseau de clés de « %s » avec le "
"contenu « %s » est mal formé"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -673,60 +677,60 @@ msgstr ""
"Le deuxième jeton de la ligne %d du trousseau de clés de « %s » avec le "
"contenu « %s » est mal formé"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr ""
"Impossible de trouver un cookie avec l’identifiant %d dans le trousseau de "
"clés de « %s »"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Erreur lors de la création du fichier verrou « %s » : %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Erreur lors de la destruction de l’ancien fichier verrou « %s » : %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Erreur lors de la fermeture du fichier verrou (non lié) « %s » : %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr ""
"Erreur lors de la suppression du lien avec le fichier verrou « %s » : %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Erreur lors de l’ouverture du trousseau de clés « %s » en écriture : "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(en outre, le relèvement du verrou pour « %s » a aussi échoué : %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "La connexion est fermée"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Le délai d’attente est dépassé"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Marqueurs non pris en charge rencontrés lors de la construction d’une "
"connexion côté client"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -734,107 +738,117 @@ msgstr ""
"Pas d’interface « org.freedesktop.DBus.Properties » pour l’objet à "
"l’emplacement %s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "La propriété « %s » n’existe pas"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "La propriété « %s » ne peut pas être lue"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "La propriété « %s » ne peut pas être écrite"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Erreur lors de la définition de la propriété « %s » : type attendu « %s », "
"« %s » obtenu"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "L’interface « %s » n’existe pas"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "L’interface « %s » n’existe pas pour l’objet à l’emplacement %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "La méthode « %s » n’existe pas"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Le type du message, « %s », ne correspond pas au type attendu « %s »"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Un objet est déjà exporté pour l’interface « %s » en « %s »"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Impossible d’obtenir la propriété %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Impossible de définir la propriété %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "La méthode « %s » a renvoyé le type « %s », mais « %s » était attendu"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr ""
"La méthode « %s » sur l’interface « %s » avec la signature « %s » n’existe "
"pas"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Une sous-arborescence est déjà exportée pour « %s »"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "L’objet n’existe pas à l’emplacement « %s »"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "le type est « INVALID »"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "Message de METHOD_CALL : champ d’en-tête PATH ou MEMBER manquant"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"Message de METHOD_CALL : champ d’en-tête PATH ou MEMBER manquant ou non "
+"valide"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "Message de METHOD_RETURN : champ d’en-tête REPLY_SERIAL manquant"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"Message de METHOD_RETURN : champ d’en-tête REPLY_SERIAL manquant ou non "
+"valide"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "Message d’ERREUR : champ d’en-tête REPLY_SERIAL ou ERROR_NAME manquant"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"Message d’ERREUR : champ d’en-tête REPLY_SERIAL ou ERROR_NAME manquant ou "
+"non valide"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "Message de SIGNAL : champ d’en-tête PATH, INTERFACE ou MEMBER manquant"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"Message de SIGNAL : champ d’en-tête PATH, INTERFACE ou MEMBER manquant ou "
+"non valide"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -842,7 +856,7 @@ msgstr ""
"Message de SIGNAL : le champ d’en-tête PATH utilise la valeur réservée /org/"
"freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -850,21 +864,21 @@ msgstr ""
"Message de SIGNAL : le champ d’en-tête INTERFACE utilise la valeur réservée "
"org.freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "Lecture de %lu octet demandée, mais seulement %lu reçu(s)"
msgstr[1] "Lecture de %lu octets demandée, mais seulement %lu reçu(s)"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr ""
"Octet 00 (NUL) attendu à la fin de la chaîne « %s » mais un octet %d a été "
"trouvé"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -874,23 +888,23 @@ msgstr ""
"rencontrés à la position %d (longueur de la chaîne : %d octets). La chaîne "
"UTF-8 valide jusqu’à cet endroit est « %s »"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Valeur imbriquée trop profondément"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr ""
"La valeur analysée « %s » n’est pas un chemin vers un objet D-Bus valide"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "La valeur analysée « %s » n’est pas une signature D-Bus valide"
# 2<<26 donne 128 Mo, 2^26 donne 64 Mo, 1<<26 donne 64 Mo
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -903,7 +917,7 @@ msgstr[1] ""
"Un tableau de %u octets de long a été trouvé. La longueur maximale est de "
"2<<26 octets (64 Mo)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -912,18 +926,18 @@ msgstr ""
"Un tableau de type « a%c » a été trouvé, avec une longueur attendue multiple "
"de %u octets, mais la longueur réelle est de %u octets"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Les structures vides (tuples) ne sont pas autorisées dans D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr ""
"La valeur « %s » analysée en tant que variant n’est pas une signature valide "
"de D-Bus"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -931,7 +945,7 @@ msgstr ""
"Erreur en désérialisant le GVariant en chaîne de type « %s » à partir du "
"format de transmission D-Bus"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -940,30 +954,30 @@ msgstr ""
"Valeur de boutisme non valide. 0x6c (« l ») ou 0x42 (« B ») attendus, mais "
"0x%02x trouvé"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Version majeure du protocole non valide. 1 attendu, %d trouvé"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "En-tête de signature trouvé mais n’est pas de type signature"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"En-tête de signature trouvé avec la signature « %s », mais le corps du "
"message est vide"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr ""
"La valeur analysée « %s » n’est pas une signature valide de D-Bus (pour le "
"corps)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -974,11 +988,11 @@ msgstr[1] ""
"Pas de signature d’en-tête dans le message, mais le corps du message est de "
"%u octets"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Impossible de désérialiser le message : "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -986,7 +1000,7 @@ msgstr ""
"Erreur en sérialisant le GVariant en chaîne de type « %s » dans le format de "
"transmission D-Bus"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
@@ -994,18 +1008,18 @@ msgstr ""
"Le nombre de descripteurs de fichiers dans le message (%d) diffère de celui "
"du champ d’en-tête (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Impossible de sérialiser le message : "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
"Le corps du message a la signature « %s », mais il n’y a pas d’en-tête de "
"signature"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -1014,57 +1028,57 @@ msgstr ""
"Le corps du message a une signature de type « %s », mais celle dans le champ "
"d’en-tête est « %s »"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
"Le corps du message est vide mais sa signature dans le champ d’en-tête est "
"« (%s) »"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Retour d’erreur avec un corps de type « %s »"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Retour d’erreur avec un corps vide"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(saisissez n’importe quel caractère pour fermer cette fenêtre)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr ""
"La session dbus n’est pas lancée et autolaunch (le lancement automatique) a "
"échoué"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Impossible d’obtenir le profil matériel : %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Impossible de charger %s ou %s : "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Erreur lors de l’appel de StartServiceByName pour %s : "
# Guillemets anglais laissés volontairement
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Réponse %d inattendue de la méthode StartServiceByName(\"%s\")"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1074,28 +1088,28 @@ msgstr ""
"%s sans propriétaire alors que le proxy a été construit avec le marqueur "
"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "L’espace de noms abstrait n’est pas pris en charge"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr ""
"Impossible de définir un fichier à dénomination unique lors de la création "
"d’un serveur"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr ""
"Erreur lors de l’écriture du fichier à dénomination unique à « %s » : %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "La chaîne « %s » n’est pas un GUID valide de D-Bus"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Impossible d’écouter sur le transport « %s » non pris en charge"
@@ -1123,14 +1137,14 @@ msgstr ""
"\n"
"Utiliser « %s COMMANDE --help » pour obtenir une aide sur chaque commande.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Erreur : %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Erreur lors de l’analyse du XML d’introspection : %s\n"
@@ -1140,43 +1154,43 @@ msgstr "Erreur lors de l’analyse du XML d’introspection : %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Erreur : %s n’est pas un nom valide\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Erreur : « %s » n’est pas un chemin d’objet valide\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Connexion au bus système"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Connexion au bus de session"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Connexion à l’adresse D-Bus donnée"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Options de connexion au point terminal :"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Options définissant la connexion au point terminal"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Aucun point terminal de connexion défini"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Plusieurs points terminaux de connexion définis"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
@@ -1184,7 +1198,7 @@ msgstr ""
"Avertissement : selon les données de l’examen interne, l’interface « %s » "
"n’existe pas\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1193,167 +1207,167 @@ msgstr ""
"Avertissement : selon les données de l’examen interne, la méthode « %s » "
"n’existe pas sur l’interface « %s »\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Destination facultative pour le signal (nom unique)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Chemin de l’objet sur lequel émettre le signal"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Noms de signal et d’interface"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Émet un signal."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Erreur de connexion : %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Erreur : %s n’est pas un nom unique de bus valide.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Erreur : le chemin pour l’objet n’est pas précisé\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Erreur : le nom du signal n’est pas défini\n"
# c-format
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Erreur : le nom de signal « %s » n’est pas valide\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Erreur : %s n’est pas un nom d’interface valide\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Erreur : %s n’est pas un nom de membre valide\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Erreur lors de l’analyse du paramètre %d : %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Erreur de purge de la connexion : %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Nom de la destination sur laquelle appeler une méthode"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Chemin de l’objet sur lequel appeler une méthode"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Noms de méthode et d’interface"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Délai d’attente en secondes"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Permettre l’autorisation interactive"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Appeler une méthode sur un objet distant."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Erreur : la destination n’est pas précisée\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Erreur : %s n’est pas un nom de bus valide\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Erreur : le nom de la méthode n’est pas défini\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Erreur : le nom de méthode « %s » n’est pas valide\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Erreur d’analyse du paramètre %d de type « %s » : %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Erreur d’ajout de l’identificateur %d : %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Nom de la destination à examiner en interne"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Chemin de l’objet à examiner en interne"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Imprimer le XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Examiner en interne les enfants"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "N’afficher que les propriétés"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Examiner en interne un objet distant."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Nom de la destination à surveiller"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Chemin de l’objet à surveiller"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Surveiller un objet distant."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr ""
"Erreur : impossible de surveiller une connexion qui n’est pas un bus de "
"messages\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Service à activer avant d’attendre l’autre (nom bien connu)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1361,72 +1375,77 @@ msgstr ""
"Délai d’attente avant de quitter avec une erreur (secondes) ; 0 pour aucun "
"délai (par défaut)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPTION…] NOM-DE-BUS"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Attend l’apparition d’un nom de bus."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Erreur : un service à activer doit être indiqué.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Erreur : un service à attendre doit être indiqué.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Erreur : trop de paramètres.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Erreur : %s n’est pas un nom de bus bien connu valide\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Non autorisé à modifier les paramètres de débogage"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5119
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Sans nom"
# Un fichier Desktop n’est pas forcément sur le bureau...
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Le fichier .desktop n’a pas précisé son champ Exec"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Impossible de trouver le terminal requis par l’application"
-#: gio/gdesktopappinfo.c:3637
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Programme « %s » non trouvé dans $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
"Impossible de créer le dossier de configuration utilisateur d’application "
"%s : %s"
-#: gio/gdesktopappinfo.c:3641
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr ""
"Impossible de créer le dossier de configuration utilisateur MIME %s : %s"
-#: gio/gdesktopappinfo.c:3883 gio/gdesktopappinfo.c:3907
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Les informations de l’application ne comportent pas d’identifiant"
-#: gio/gdesktopappinfo.c:4143
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Impossible de créer le fichier .desktop utilisateur %s"
-#: gio/gdesktopappinfo.c:4279
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Définition personnalisée pour %s"
@@ -1499,82 +1518,87 @@ msgstr "Un GEmblem est attendu pour le GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Le point de montage conteneur n’existe pas"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Impossible d’écraser un répertoire"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Impossible d’écraser un répertoire par un autre répertoire"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Le fichier cible existe"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Impossible de copier récursivement un répertoire"
-# http://en.wikipedia.org/wiki/Splice_(system_call)
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "L’opération « splice » n’est pas prise en charge"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Copie d’une plage de fichiers non prise en charge"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Erreur lors de l’opération de « splicing » sur le fichier : %s"
-#: gio/gfile.c:3185
+# http://en.wikipedia.org/wiki/Splice_(system_call)
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "L’opération « splice » n’est pas prise en charge"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr ""
"La copie (reflink/clone) entre points de montage n’est pas prise en charge"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "La copie (reflink/clone) n’est pas prise en charge ou n’est pas valide"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr ""
"La copie (reflink/clone) n’est pas prise en charge ou n’a pas fonctionné"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Impossible de copier le fichier spécial"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Valeur de lien symbolique donnée non valide"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Liens symboliques non pris en charge"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "La corbeille n’est pas prise en charge"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Les noms de fichiers ne peuvent comporter de « %c »"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr ""
"La création d’un répertoire temporaire pour le modèle « %s » a échoué : %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "le volume n’implémente pas le montage"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Aucune application n’est enregistrée pour gérer ce fichier"
@@ -1583,11 +1607,11 @@ msgid "Enumerator is closed"
msgstr "L’énumérateur est fermé"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "L’énumérateur de fichiers est en cours d’opération"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "L’énumérateur de fichiers est déjà fermé"
@@ -1600,27 +1624,27 @@ msgstr "Impossible de gérer la version %d du codage de GFileIcon"
msgid "Malformed input data for GFileIcon"
msgstr "Données d’entrée incorrectes pour GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Le flux ne prend pas en charge query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Le positionnement n’est pas pris en charge sur le flux"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "La troncature n’est pas autorisée sur un flux d’entrée"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "La troncature n’est pas prise en charge sur le flux"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Nom d’hôte non valide"
@@ -1654,38 +1678,38 @@ msgid "HTTP proxy server closed connection unexpectedly."
msgstr ""
"Le serveur mandataire HTTP a terminé la connexion de manière inattendue."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Nombre de jetons incorrect (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Aucun type pour le nom de classe %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Le type %s n’implémente pas l’interface GIcon"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Le type %s n’est pas classé"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Numéro de version incorrect : %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr ""
"Le type %s n’implémente pas la fonction from_tokens() de l’interface GIcon"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Impossible de gérer la version fournie du codage de l’icône"
@@ -1726,7 +1750,7 @@ msgstr "Le flux en entrée n’implémente pas « read »"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Le flux a une opération en cours"
@@ -1832,12 +1856,12 @@ msgid "Error writing to stdout"
msgstr "Erreur lors de l’écriture vers stdout"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1210 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "EMPLACEMENT"
@@ -1855,8 +1879,8 @@ msgstr ""
"utilisant des emplacements GIO au lieu de fichiers locaux : par exemple,\n"
"on peut indiquer un emplacement comme smb://serveur/ressource/fichier.txt."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1261 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Aucun emplacement indiqué"
@@ -1952,57 +1976,64 @@ msgstr "Ne pas suivre les liens symboliques"
msgid "attributes:\n"
msgstr "attributs :\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "nom d’affichage : %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "nom d’édition : %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "nom : %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "type : %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "taille : "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "caché\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri : %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "chemin local : %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "montage unix : %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Attributs pouvant être définis :\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Espaces de noms des attributs en écriture :\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Afficher des informations à propos des emplacements."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2071,11 +2102,11 @@ msgstr "Afficher les noms d’affichage"
msgid "Print full URIs"
msgstr "Afficher les URI complètes"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Énumérer le contenu des emplacements."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2282,15 +2313,15 @@ msgstr "Monter un volume système TCRYPT"
msgid "Anonymous access denied"
msgstr "Accès anonyme refusé"
-#: gio/gio-tool-mount.c:533
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Aucun disque correspondant au fichier de périphérique"
-#: gio/gio-tool-mount.c:1025
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Aucun volume pour l’identifiant donné"
-#: gio/gio-tool-mount.c:1214
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Monter ou démonter les emplacements."
@@ -2494,12 +2525,12 @@ msgstr "Le chemin indiqué ne commence pas par trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Suivre les liens symboliques, les montages et les raccourcis"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr ""
"Afficher la liste du contenu de répertoires dans un format arborescent."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Élément <%s> interdit dans <%s>"
@@ -2556,7 +2587,7 @@ msgstr "Erreur à la compression du fichier %s"
msgid "text may not appear inside <%s>"
msgstr "<%s> ne peut pas contenir du texte"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Affiche la version du programme et quitte"
@@ -2572,8 +2603,8 @@ msgstr ""
"Les répertoires à partir desquels charger les fichiers référencés dans "
"FICHIER (par défaut le répertoire actuel)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "RÉPERTOIRE"
@@ -2630,7 +2661,7 @@ msgstr "Nom d’identifiant C utilisé pour le code source généré"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "Le compilateur C cible (par défaut : la variable d’environnement CC)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2641,123 +2672,123 @@ msgstr ""
"xml\n"
"et le fichier de ressource possède l’extension .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Vous devez indiquer un et un seul nom de fichier\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "le pseudo doit contenir au minimum 2 caractères"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Valeur numérique non valide"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> est déjà défini"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' a déjà été défini"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "les valeurs de drapeaux doivent avoir au moins un bit défini"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> doit contenir au moins une <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> n’est pas contenu dans l’intervalle défini"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> n’est pas un membre valide du type énuméré défini"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> contient une chaîne absente du type drapeau défini"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> contient une chaîne absente de <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> a déjà été défini pour cette clé"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> non autorisé pour les clés de type « %s »"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "le minimum de <range> est plus grand que son maximum"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "catégorie l10n non prise en charge : %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n demandée, mais aucun domaine gettext indiqué"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "contexte de traduction donné pour une valeur sans activation de l10n"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "L’analyse de la valeur <default> de type « %s » a échoué : "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> ne peut pas être défini pour des clés marquées comme étant du type "
"énuméré"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> a déjà été défini pour cette clé"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> non autorisés pour des clés du type « %s »"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> a déjà été défini"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> doit contenir au moins un <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> a déjà été défini pour cette clé"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2765,7 +2796,7 @@ msgstr ""
"<aliases> ne peut être défini que pour des clés de type énuméré ou drapeau, "
"ou après <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2774,44 +2805,44 @@ msgstr ""
"<alias value='%s'/> a été donné alors que « %s » est déjà un membre du type "
"énuméré"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"<alias value='%s'/> a été donné alors que <choice value='%s'/> est déjà "
"présent"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> est déjà défini"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "la cible d’alias « %s » n’est pas dans le type énuméré"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "la cible d’alias « %s » n’est pas dans <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> doit contenir au moins un <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Les noms vides ne sont pas autorisés"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr ""
"Nom « %s » non valide : les noms doivent commencer par une lettre minuscule"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2820,39 +2851,39 @@ msgstr ""
"Nom « %s » non valide : caractère « %c » non valide ; seuls les minuscules, "
"les nombres et le tiret (« - ») sont autorisés"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr ""
"Nom « %s » non valide : deux tirets successifs (« -- ») ne sont pas autorisés"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr ""
"Nom « %s » non valide : le dernier caractère ne peut pas être un tiret (« -"
" »)"
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Nom « %s » non valide : la longueur maximale est 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> a déjà été défini"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Impossible d’ajouter des clés à un schéma « list-of »"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> a déjà été défini"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2861,7 +2892,7 @@ msgstr ""
"<key name='%s'> masque <key name='%s'> dans <schema id='%s'> ; utilisez "
"<override> pour modifier la valeur"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2870,57 +2901,57 @@ msgstr ""
"<key> ne peut recevoir qu’un et un seul attribut parmi « type », « enum » ou "
"« flags »"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> pas (encore) défini."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Chaîne de type GVariant « %s » non valide"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "un <override> est donné mais son schéma n’étend rien du tout"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Aucune <key name='%s'> à redéfinir"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> déjà défini"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> déjà défini"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> étend le schéma « %s » qui n’existe pas encore"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr ""
"<schema id='%s'> est une liste du schéma « %s » qui n’existe pas encore"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Un schéma avec un chemin ne peut contenir de liste"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Impossible d’étendre un schéma avec un chemin"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2928,7 +2959,7 @@ msgstr ""
"<schema id='%s'> est une liste ; elle étend <schema id='%s'> qui n’est pas "
"une liste"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2937,18 +2968,18 @@ msgstr ""
"<schema id='%s' list-of='%s'> étend <schema id='%s' list-of='%s'> mais "
"« %s » n’étend pas « %s »"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr ""
"Si un chemin est indiqué, il doit commencer et finir par une barre oblique"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Le chemin d’une liste doit finir par « :/ »"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2957,49 +2988,49 @@ msgstr ""
"Attention : le schéma « %s » comporte le chemin « %s ». Les chemins "
"commençant par « /apps/ », « /desktop/ » ou « /system/ » sont obsolètes."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> est déjà défini"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Un seul élément <%s> est autorisé dans <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Élément <%s> interdit au premier niveau"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Élément <default> obligatoire dans <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "<%s> ne peut pas contenir du texte"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Attention : référence indéfinie vers <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "--strict a été spécifié ; sortie en cours."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Le fichier complet a été ignoré."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Ce fichier est ignoré."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -3008,7 +3039,7 @@ msgstr ""
"Aucune clé nommée « %s » dans le schéma « %s » comme défini dans le fichier "
"« %s » de redéfinition ; aucune redéfinition pour cette clé."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -3017,7 +3048,7 @@ msgstr ""
"Aucune clé nommée « %s » dans le schéma « %s » comme défini dans le fichier "
"« %s » de redéfinition et --strict a été spécifié ; sortie en cours."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -3027,7 +3058,7 @@ msgstr ""
"« %s » dans le schéma « %s » (fichier de redéfinition « %s ») ; aucune "
"redéfinition pour cette clé."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -3037,7 +3068,7 @@ msgstr ""
"« %s » dans le schéma « %s » (fichier de redéfinition « %s ») et --strict a "
"été spécifié ; sortie en cours."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -3046,7 +3077,7 @@ msgstr ""
"Erreur d’analyse de la clé « %s » dans le schéma « %s » comme défini dans le "
"fichier « %s » de redéfinition : %s. Aucune redéfinition pour cette clé."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -3056,7 +3087,7 @@ msgstr ""
"fichier « %s » de redéfinition : %s. --strict a été spécifié ; sortie en "
"cours."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3066,7 +3097,7 @@ msgstr ""
"redéfinition « %s » n’est pas dans la plage indiquée par le schéma ; aucune "
"redéfinition pour cette clé."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3076,7 +3107,7 @@ msgstr ""
"redéfinition « %s » n’est pas dans la plage indiquée par le schéma et --"
"strict a été spécifié ; sortie en cours."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3086,7 +3117,7 @@ msgstr ""
"redéfinition « %s » n’est pas dans la liste des choix valides ; aucune "
"redéfinition pour cette clé."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3096,23 +3127,23 @@ msgstr ""
"redéfinition « %s » n’est pas dans la liste des choix valides et --strict a "
"été spécifié ; sortie en cours."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Endroit où enregistrer le fichier gschemas.compiled"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Annulation en cas d’erreurs dans des schémas"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Ne pas écrire de fichier gschema.compiled"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Ne pas appliquer les limitations de nom de clé"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3122,24 +3153,24 @@ msgstr ""
"L’extension .gschema.xml est requise pour les fichiers schémas,\n"
"et le fichier cache est nommé gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Vous devez indiquer un et un seul nom de répertoire"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Aucun fichier schéma trouvé : aucune action effectuée."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "Aucun fichier schéma trouvé : fichier de sortie existant supprimé."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Nom de fichier non valide : %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr ""
@@ -3149,275 +3180,275 @@ msgstr ""
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Le point de montage conteneur pour le fichier %s est introuvable"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Impossible de renommer le répertoire racine"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Erreur de renommage du fichier %s : %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Impossible de renommer le fichier car ce nom est déjà utilisé"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Nom de fichier non valide"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Erreur lors de l’ouverture du fichier %s : %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Erreur lors de la suppression du fichier %s : %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Erreur lors de la mise à la corbeille du fichier %s : %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Impossible de créer le répertoire de la corbeille %s : %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr ""
"Impossible de trouver le répertoire racine pour mettre %s à la corbeille"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
"La mise à la corbeille sur des montages systèmes internes n’est pas prise en "
"charge"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr ""
"Impossible de trouver ou créer le répertoire de la corbeille %s pour mettre "
"%s à la corbeille"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr ""
"Impossible de créer le fichier d’informations de mise à la corbeille pour "
"%s : %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr ""
"Impossible de mettre à la corbeille le fichier %s au-delà des limites du "
"système de fichiers"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Impossible de mettre à la corbeille le fichier %s : %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Impossible de mettre à la corbeille le fichier %s"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Erreur lors de la création du répertoire %s : %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Le système de fichiers ne gère pas les liens symboliques"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Erreur lors de la création du lien symbolique %s : %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Erreur lors du déplacement du fichier %s : %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Impossible de déplacer un répertoire par dessus un autre"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "La création du fichier de sauvegarde a échoué"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Erreur lors de la suppression du fichier cible : %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Le déplacement entre points de montage n’est pas pris en charge"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Impossible de déterminer l’utilisation disque de %s : %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "La valeur d’attribut ne doit pas être « NULL »"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr ""
"Type d’attribut non valide (une chaîne ou valeur invalide est attendue)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Nom d’attribut étendu non valide"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Erreur lors de la définition de l’attribut étendu « %s » : %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (codage non valide)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Erreur lors de l’obtention des informations du fichier « %s » : %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr ""
"Erreur lors de l’obtention des informations du descripteur de fichier : %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Type d’attribut non valide (uint32 attendu)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Type d’attribut non valide (uint64 attendu)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Type d’attribut non valide (chaîne d’octets attendue)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Impossible de définir des permissions sur les liens symboliques"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Erreur lors de la définition des permissions : %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Erreur lors de la définition du propriétaire : %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "un lien symbolique ne doit pas être « NULL »"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Erreur lors de la définition du lien symbolique : %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"Erreur lors de la définition du lien symbolique : le fichier n’est pas un "
"lien symbolique"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
"Les nanosecondes supplémentaires %d pour l’horodatage UNIX %lld sont "
"négatives"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"Les nanosecondes supplémentaires %d pour l’horodatage UNIX %lld atteignent 1 "
"seconde"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "L’horodatage UNIX %lld ne tient pas sur 64 bits"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"L’horodatage UNIX %lld est hors de la plage prise en charge par Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Le nom de fichier « %s » ne peut être converti en UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Le fichier « %s » ne peut être ouvert : erreur Windows %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
"Erreur lors de la définition de l’heure de modification ou d’accès pour le "
"fichier « %s » : %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr ""
"Erreur lors de la définition de l’heure de modification ou d’accès : %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "Le contexte SELinux ne doit pas être « NULL »"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux n’est pas activé sur ce système"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Erreur lors de la définition du contexte SELinux : %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "La définition de l’attribut %s n’est pas prise en charge"
@@ -3464,13 +3495,13 @@ msgstr "Erreur lors de la création de la copie de sauvegarde : %s"
msgid "Error renaming temporary file: %s"
msgstr "Erreur lors du renommage du fichier temporaire : %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Erreur lors de la troncature du fichier : %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Erreur lors de l’ouverture du fichier « %s » : %s"
@@ -3487,7 +3518,7 @@ msgstr "Le fichier cible n’est pas un fichier standard"
msgid "The file was externally modified"
msgstr "Le fichier a été modifié extérieurement"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Erreur à la suppression de l’ancien fichier : %s"
@@ -3621,42 +3652,42 @@ msgstr "La version de NetworkManager est trop ancienne"
msgid "Output stream doesn’t implement write"
msgstr "Le flux de sortie n’implémente pas « write »"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Somme des vecteurs passés à %s trop grande"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Le flux source est déjà fermé"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Échec non défini de requête de serveur mandataire"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Erreur de résolution de « %s » : %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s non implémentée"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Domaine non valide"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "La ressource dans « %s » n’existe pas"
@@ -3666,16 +3697,16 @@ msgstr "La ressource dans « %s » n’existe pas"
msgid "The resource at “%s” failed to decompress"
msgstr "La décompression de la ressource dans « %s » n’a pas réussi"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Les fichiers ressources ne peuvent pas être renommés"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "La ressource dans « %s » n’est pas un répertoire"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Le flux en entrée n’implémente pas « seek » (le positionnement)"
@@ -4046,7 +4077,8 @@ msgstr "Connecteur non valide, l’initialisation a échoué en raison de : %s"
msgid "Socket is already closed"
msgstr "Le connecteur est déjà fermé"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1445
msgid "Socket I/O timed out"
msgstr "Entrées/sorties hors délai sur le connecteur"
@@ -4055,163 +4087,163 @@ msgstr "Entrées/sorties hors délai sur le connecteur"
msgid "creating GSocket from fd: %s"
msgstr "création de GSocket à partir du descripteur de fichier : %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Impossible de créer le connecteur : %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Indication d’une famille inconnue"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Indication d’un protocole inconnu"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr ""
"Impossible d’utiliser des opérations datagramme sur un connecteur non "
"datagramme."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Impossible d’utiliser des opérations datagramme sur un connecteur doté d’un "
"délai d’expiration."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "impossible d’obtenir l’adresse locale : %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "impossible d’obtenir l’adresse distante : %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "impossible d’écouter : %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Erreur lors de la liaison à l’adresse %s : %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Erreur lors de la connexion au groupe multicast : %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Erreur lors de la déconnexion du groupe multicast : %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Aucune prise en charge pour le multicast spécifique à la source"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Famille de connecteur réseau non prise en charge"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "source-specific n’est pas une adresse IPv4"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Nom d’interface trop long"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Interface introuvable : %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Aucune prise en charge pour le multicast IPv4 spécifique à la source"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Aucune prise en charge pour le multicast IPv6 spécifique à la source"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Erreur d’acceptation de la connexion : %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Connexion en cours"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Impossible d’obtenir l’erreur actuelle : "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Erreur lors de la réception des données : %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Erreur lors de l’envoi des données : %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Impossible de fermer le connecteur : %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Erreur lors de la fermeture du connecteur : %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "En attente de l’état du connecteur : %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Impossible d’envoyer le message : %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Vecteurs de messages trop grands"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Erreur d’envoi de message : %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage n’est pas pris en charge par Windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Erreur lors de la réception du message : %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Impossible de lire les données d’authentification du connecteur : %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr ""
"g_socket_get_credentials n’est pas implémenté sur ce système d’exploitation"
@@ -4342,7 +4374,7 @@ msgstr ""
msgid "Unknown SOCKSv5 proxy error."
msgstr "Erreur inconnue du serveur mandataire SOCKSv5."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr ""
@@ -4358,47 +4390,47 @@ msgstr "Les tubes ne sont pas pris en charge sur cette plate-forme"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Impossible de gérer la version %d du codage GThemedIcon"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Aucune adresse valide n’a été trouvée"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Erreur de résolution inverse de « %s » : %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr ""
"Erreur lors de l’analyse de l’enregistrement DNS %s : paquet DNS non conforme"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Aucun enregistrement DNS du type demandé pour « %s »"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Impossible temporairement de résoudre « %s »"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Erreur de résolution de « %s »"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Paquet DNS non conforme"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Impossible d’analyser la réponse DNS pour « %s » : "
@@ -4458,61 +4490,61 @@ msgstr "Le mot de passe saisi est incorrect."
msgid "Sending FD is not supported"
msgstr "L’envoi de descripteur de fichier n’est pas pris en charge"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "1 message de contrôle attendu, %d reçu"
msgstr[1] "1 message de contrôle attendu, %d reçus"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Type de données auxiliaires inattendu"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "Un descripteur de fichier attendu, %d obtenu\n"
msgstr[1] "Un descripteur de fichier attendu, %d obtenus\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Le descripteur de fichier reçu n’est pas valide"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "La réception de descripteur de fichier n’est pas prise en charge"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Erreur lors de l’envoi de l’identification : "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr ""
"Erreur lors de la vérification de l’activation de SO_PASSCRED pour le "
"connecteur : %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Erreur lors de l’activation de SO_PASSCRED : %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Lecture d’un unique octet attendue à la réception de l’identification, mais "
"aucun octet lu"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Pas de message de contrôle attendu, %d reçu(s)"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Erreur lors de la désactivation de SO_PASSCRED : %s"
@@ -4528,7 +4560,7 @@ msgstr "Erreur de lecture à partir du descripteur de fichier : %s"
msgid "Error closing file descriptor: %s"
msgstr "Erreur de fermeture du descripteur de fichier : %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Racine du système de fichiers"
@@ -4613,134 +4645,129 @@ msgstr "Exécuter un service dbus"
msgid "Wrong args\n"
msgstr "Paramètres incorrects\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Attribut « %s » inattendu pour l’élément « %s »"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "L’attribut « %s » de l’élément « %s » est introuvable"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Balise « %s » inattendue. La balise « %s » était attendue"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Balise « %s » inattendue à l’intérieur de « %s »"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Date et heure « %s » non valide dans le fichier de signets"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr ""
"Impossible de trouver un fichier de signets valide dans les répertoires de "
"données"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Un signet pour l’URI « %s » existe déjà"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Aucun signet trouvé pour l’URI « %s »"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Aucun type MIME défini dans le signet pour l’URI « %s »"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Aucun indicateur privé n’est défini dans le signet pour l’URI « %s »"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "Aucun groupe n’est défini dans le signet pour l’URI « %s »"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Aucune application nommée « %s » n’a enregistré un signet pour « %s »"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr ""
"Échec du développement de la ligne de commande « %s » pour l’URI « %s »"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Caractère non affichable dans l’entrée du convertisseur"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Séquence de caractères incomplète en fin d’entrée"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr ""
"Impossible de convertir le caractère de repli « %s » dans le jeu de codes "
"« %s »"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Octet nul imbriqué dans l’entrée du convertisseur"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Octet nul imbriqué dans la sortie du convertisseur"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "L’URI « %s » n’est pas une URI absolue utilisant le protocole « file »"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "L’URI de fichier local « %s » ne peut pas inclure un caractère « # »"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "L’URI « %s » n’est pas valide"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Le nom d’hôte de l’URI « %s » n’est pas valide"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "L’URI « %s » contient des caractères d’échappement incorrects"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Le nom de chemin « %s » n’est pas un chemin absolu"
@@ -5163,85 +5190,85 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "Erreur à l’ouverture du répertoire « %s » : %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "Impossible d’allouer %lu octet pour lire le fichier « %s »"
msgstr[1] "Impossible d’allouer %lu octets pour lire le fichier « %s »"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Erreur de lecture du fichier « %s » : %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Le fichier « %s » est trop grand"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "La lecture depuis le fichier « %s » a échoué : %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "L’ouverture du fichier « %s » a échoué : %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr ""
"L’obtention des attributs du fichier « %s » a échoué : échec de fstat() : %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "L’ouverture du fichier « %s » a échoué : échec de fdopen() : %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr ""
"Le renommage du fichier « %s » vers « %s » a échoué : échec de g_rename() : "
"%s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "L’écriture dans le fichier « %s » a échoué : échec de write() : %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "L’écriture dans le fichier « %s » a échoué : échec de fsync() : %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "La création du fichier « %s » a échoué : %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr ""
"Le fichier existant « %s » ne peut pas être supprimé : échec de g_unlink() : "
"%s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr ""
"Le modèle « %s » n’est pas valide, il ne devrait pas contenir un « %s »"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Le modèle « %s » ne contient pas XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "La lecture du lien symbolique « %s » a échoué : %s"
@@ -5268,17 +5295,17 @@ msgstr "La canal se termine avec un caractère partiel"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Lecture de données brutes impossible dans g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr ""
"Impossible de trouver un fichier de clés valide dans les répertoires de "
"recherche"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "N’est pas un fichier standard"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5286,46 +5313,46 @@ msgstr ""
"Le fichier de clés contient la ligne « %s » qui n’est ni une paire de "
"valeurs de clé, ni un groupe, ni un commentaire"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Nom de groupe non valide : %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Le fichier de clés ne débute pas par un groupe"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Nom de clé non valide : %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr ""
"Le fichier de clés contient un codage de caractères non pris en charge « %s »"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Le fichier de clés n’a pas de groupe « %s »"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Le fichier de clés ne contient pas de clé « %s » dans le groupe « %s »"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
"Le fichier de clés contient la clé « %s » avec la valeur « %s » qui n’est "
"pas codé en UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
@@ -5333,7 +5360,7 @@ msgstr ""
"Le fichier de clés contient la clé « %s » dont une valeur est impossible à "
"interpréter."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5342,88 +5369,88 @@ msgstr ""
"Le fichier de clés contient la clé « %s » dans le groupe « %s » qui a une "
"valeur impossible à interpréter."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr ""
"La clé « %s » dans le groupe « %s » a une valeur « %s » alors que %s était "
"attendu"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4357
msgid "Key file contains escape character at end of line"
msgstr "Le fichier de clés contient un caractère d’échappement en fin de ligne"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4394
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr ""
"Le fichier de clés contient une séquence d’échappement non valide « %s »"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4545
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "La valeur « %s » ne peut pas être interprétée comme un nombre."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4559
#, c-format
msgid "Integer value “%s” out of range"
msgstr "La valeur entière « %s » est hors plage"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4592
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr ""
"La valeur « %s » ne peut pas être interprétée comme un nombre à virgule "
"flottante."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4631
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "La valeur « %s » ne peut pas être interprétée comme un booléen."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"L’obtention des attributs du fichier « %s%s%s%s » a échoué : échec de "
"fstat() : %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Le mappage %s%s%s%s a échoué : échec de mmap() : %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "L’ouverture du fichier « %s » a échoué : échec de open() : %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Erreur à la ligne %d, caractère %d : "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Codage UTF-8 non valide dans le nom — « %s » n’est pas valide"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "« %s » n’est pas un nom valide"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "« %s » n’est pas un nom valide : « %c »"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Erreur à la ligne %d : %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5433,7 +5460,7 @@ msgstr ""
"référence des caractères (&#234; par exemple) — peut-être que le nombre est "
"trop grand"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5443,24 +5470,24 @@ msgstr ""
"vraisemblablement utilisé une esperluette sans intention d’écrire une entité "
"— échappez l’esperluette avec &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "La référence au caractère « %-.*s » ne code pas un caractère autorisé"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Entité vide « &; » rencontrée ; les entités valides sont : &amp; &quot; &lt; "
"&gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "L’entité nommée « %-.*s » est inconnue"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5469,11 +5496,11 @@ msgstr ""
"utilisé une esperluette sans intention d’écrire une entité — échappez "
"l’esperluette avec &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Le document doit commencer avec un élément (par ex. <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5482,7 +5509,7 @@ msgstr ""
"« %s » n’est pas un caractère valide à la suite du caractère « < » ; il ne "
"semble pas commencer un nom d’élément"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5491,12 +5518,12 @@ msgstr ""
"Caractère anormal « %s », un caractère « > » est requis pour terminer la "
"balise d’élément vide « %s »"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Trop d’attributs dans l’élément « %s »"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5504,7 +5531,7 @@ msgstr ""
"Caractère anormal « %s », un caractère « = » est requis après le nom de "
"l’attribut « %s » de l’élément « %s »"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5516,7 +5543,7 @@ msgstr ""
"« %s » ; peut-être avez-vous utilisé un caractère non valide dans un nom "
"d’attribut"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5525,7 +5552,7 @@ msgstr ""
"Caractère anormal « %s », un guillemet d’ouverture après le signe égal est "
"requis quand on affecte une valeur à l’attribut « %s » de l’élément « %s »"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5534,7 +5561,7 @@ msgstr ""
"« %s » n’est pas un caractère valide à la suite des caractères « </ » ; "
"« %s » ne peut pas commencer un nom d’élément"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5543,28 +5570,28 @@ msgstr ""
"« %s » n’est pas un caractère valide à la suite du nom d’élément « %s » à "
"fermer ; le caractère autorisé est « > »"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "L’élément « %s » a été fermé, aucun élément n’est actuellement ouvert"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr ""
"L’élément « %s » a été fermé, mais l’élément actuellement ouvert est « %s »"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Le document était vide ou ne contenait que des espaces"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr ""
"Le document s’est terminé de manière inattendue juste après un crochet "
"ouvrant « < »"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5573,7 +5600,7 @@ msgstr ""
"Le document s’est terminé de manière inattendue avec des éléments encore "
"ouverts — « %s » était le dernier élément ouvert"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5582,25 +5609,25 @@ msgstr ""
"Le document s’est terminé de manière inattendue, un crochet fermant pour la "
"balise <%s/> est requis"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr ""
"Le document s’est terminé de manière inattendue à l’intérieur d’un nom "
"d’élément"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr ""
"Le document s’est terminé de manière inattendue à l’intérieur d’un nom "
"d’attribut"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr ""
"Le document s’est terminé de manière inattendue à l’intérieur d’une balise "
"d’ouverture d’élément."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5608,27 +5635,27 @@ msgstr ""
"Le document s’est terminé de manière inattendue après le signe égal suivant "
"un nom d’attribut ; aucune valeur d’attribut"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr ""
"Le document s’est terminé de manière inattendue alors qu’il était à "
"l’intérieur d’une valeur d’attribut"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr ""
"Le document s’est terminé de manière inattendue à l’intérieur de la balise "
"de fermeture pour l’élément « %s »"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Le document s’est terminé de manière inattendue à l’intérieur de la balise "
"de fermeture pour un élément non ouvert"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"Le document s’est terminé de manière inattendue à l’intérieur d’un "
@@ -5693,190 +5720,186 @@ msgstr "Paramètre manquant pour %s"
msgid "Unknown option %s"
msgstr "Option inconnue %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "objet endommagé"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "mémoire insuffisante"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "limite de suivi arrière atteinte"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "erreur interne"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr ""
"le motif contient des éléments non pris en charge pour une correspondance "
"partielle"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"les références inverses utilisées comme conditions ne sont pas prises en "
"charge pour une correspondance partielle"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "limite de récursivité atteinte"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "mauvais décalage"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "boucle récursive"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "le mode de correspondance demandé n’a pas été compilé pour JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "erreur inconnue"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ à la fin du motif"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c à la fin du motif"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "un caractère non reconnu suit \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "nombres en désordre dans le quantificateur {}"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "nombre trop grand dans le quantificateur {}"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "caractère terminaison ] manquant pour la classe de caractère"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "séquence d’échappement non valide dans la classe de caractère"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "plage déclassée dans la classe de caractère"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "rien à répéter"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "caractère non reconnu après (? ou (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr ""
"Les classes nommées selon la norme POSIX sont uniquement prises en charge "
"dans une classe"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "les éléments d’interclassement POSIX ne sont pas pris en charge"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr ") de terminaison manquante"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "référence à un sous-motif inexistant"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "« ) » manquante après un commentaire"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "l’expression régulière est trop grande"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "nom ou nombre non conforme après (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "l’assertion « lookbehind » n’a pas de longueur fixe"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "un groupe conditionnel contient plus de deux branches"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "une assertion est attendue après (?("
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "une référence numérotée ne doit pas être zéro"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "nom de classe POSIX inconnu"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "la valeur du caractère dans la séquence \\x{…} est trop grande"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C n’est pas autorisé dans l’assertion « lookbehind »"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "terminaison manquante dans le nom du sous-motif"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "deux sous-motifs nommés possèdent le même nom"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "séquence \\P ou \\p mal formée"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "nom de propriété inconnu après \\P ou \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "le nom du sous-motif est trop long (32 caractères maximum)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "trop de sous-motifs nommés (10 000 maximum)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "la valeur octale est plus grande que \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "le groupe DEFINE contient plus d’une branche"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "options NEWLINE inconsistantes"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5884,121 +5907,121 @@ msgstr ""
"\\g n’est pas suivi d’un nom ou nombre entre accolades, chevrons, guillemets "
"simples ou d’un nombre simple"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "un paramètre n’est pas permis pour (*ACCEPT), (*FAIL) ou (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) non reconnu"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "le nombre est trop grand"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "nom de sous-motif manquant après (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr ""
"il n’est pas permis d’avoir des noms différents pour des sous-motifs du même "
"nombre"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) doit avoir un paramètre"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c doit être suivi d’un caractère ASCII"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"\\k n’est pas suivi d’un nom entre accolades, chevrons ou guillemets simples"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N n’est pas pris en charge dans une classe"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "le nom est trop long dans (*MARK), (*PRUNE), (*SKIP) ou (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "dépassement de code"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "caractère non reconnu après (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "dépassement de capacité en compilant l’espace de travail"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "un sous-motif référencé et précédemment vérifié n’a pas été trouvé"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Erreur lors de la correspondance de l’expression régulière %s : %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "La bibliothèque PCRE est compilée sans la prise en charge UTF-8"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "La bibliothèque PCRE est compilée avec des options incompatibles"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr ""
"Erreur à la compilation de l’expression régulière « %s » au caractère %s : %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "chiffre hexadécimal ou « } » attendu"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "chiffre hexadécimal attendu"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "« < » manquant dans la référence symbolique"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "référence symbolique non terminée"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "référence symbolique de longueur nulle"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "chiffre attendu"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "référence symbolique illégale"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "terminaison parasite « \\ »"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "séquence d’échappement inconnue"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr ""
@@ -6033,142 +6056,147 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Le texte était vide (ou ne contenait que des espaces)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "La lecture des données depuis le processus fils a échoué (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr ""
"Erreur inattendue lors de la lecture de données depuis un processus fils (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Erreur inattendue dans waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Le processus fils s’est terminé avec le code %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Le processus fils a été tué par le signal %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Le processus fils a été arrêté par le signal %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Le processus fils s’est terminé anormalement"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "La lecture depuis un tube fils a échoué (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "L’exécution du processus fils « %s » a échoué (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Le clonage a échoué (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Le changement de répertoire « %s » a échoué (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "L’exécution du processus fils « %s » a échoué (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr ""
"L’ouverture du fichier pour réallouer le descripteur de fichier a échoué (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr ""
"La duplication du descripteur de fichier pour le processus fils a échoué (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Le clonage du processus fils a échoué (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr ""
"La fermeture du descripteur de fichier pour le processus fils a échoué (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Erreur inconnue à l’exécution du processus fils « %s »"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
"Impossible de lire suffisamment de données depuis le tube du processus fils "
"de pid (%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Argument de descripteurs de fichiers source non valide"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "La lecture des données depuis le processus fils a échoué"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "L’exécution du processus fils a échoué (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "L’appel à dup() dans le processus fils a échoué (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Nom de programme non valide : %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Chaîne non valide dans le vecteur de paramètre à %d : %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Chaîne non valide dans l’environnement : %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Répertoire de travail non valide : %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "L’exécution du programme d’aide a échoué (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6176,225 +6204,225 @@ msgstr ""
"Erreur inattendue dans g_io_channel_win32_poll() lors de la lecture des "
"données depuis un processus fils"
-#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3474
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Une chaîne vide n’est pas un nombre"
-#: glib/gstrfuncs.c:3396
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "« %s » n’est pas un nom valide"
-#: glib/gstrfuncs.c:3406 glib/gstrfuncs.c:3510
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Le nombre « %s » est hors limites [%s, %s]"
-#: glib/gstrfuncs.c:3500
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "« %s » n’est pas un nombre non signé"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "%-encoding non valide dans l’URI"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Caractère interdit dans l’URI"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Caractère non-UTF-8 dans l’URI"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Adresse IPv6 invalide « %.*s » dans l’URI"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Adresse IP encodée interdite « %.*s » dans l’URI"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Nom d’hôte internationalisé interdit « %.*s » dans l’URI"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Impossible d’analyser le port « %.*s » dans l’URI"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Le port « %.*s » de l’URI est en dehors de la plage"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "L’URI « %s » n’est pas une URI absolue"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "l’URI « %s » n’a pas de partie hôte"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "L’URI n’est pas absolue, et aucune URI de base n’a été fournie"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Caractère « = » et paramètre manquants"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Impossible d’allouer de la mémoire"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Caractère hors plage pour UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Séquence non valide dans l’entrée du convertisseur"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Caractère hors plage pour UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "Ko"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "Mo"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "Go"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "To"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "Po"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "Eo"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "Kio"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "Mio"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "Gio"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "Tio"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "Pio"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "Eio"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "octet"
msgstr[1] "octets"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bit"
@@ -6402,7 +6430,7 @@ msgstr[1] "bits"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6410,7 +6438,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6418,7 +6446,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6427,14 +6455,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6442,14 +6470,14 @@ msgstr[0] "%s octet"
msgstr[1] "%s octets"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s bit"
msgstr[1] "%s bits"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6461,39 +6489,46 @@ msgstr[1] "%u octets"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f Ko"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f Mo"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f Go"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f To"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f Po"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f Eo"
+#~ msgid "GApplication options"
+#~ msgstr "Options GApplication"
+
#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "nom d’édition : %s\n"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr ""
+#~ "L’URI de fichier local « %s » ne peut pas inclure un caractère « # »"
+
+#~ msgid "backtracking limit reached"
+#~ msgstr "limite de suivi arrière atteinte"
#~ msgid "internal error or corrupted object"
#~ msgstr "erreur interne ou objet endommagé"
diff --git a/po/gl.po b/po/gl.po
index 71b6919c1..e528fda0a 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -12,72 +12,70 @@
# Antón Méixome <meixome@mancomun.org>, 2009.
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2012.
# Fran Diéguez <frandieguez@gnome.org>, 2009-2022.
-# Fran Dieguez <frandieguez@gnome.org>, 2012-2022.
+# Fran Dieguez <frandieguez@gnome.org>, 2012-2023.
#
msgid ""
msgstr ""
"Project-Id-Version: glib.master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-15 20:23+0000\n"
-"PO-Revision-Date: 2022-08-21 17:14+0200\n"
+"POT-Creation-Date: 2023-08-31 20:16+0000\n"
+"PO-Revision-Date: 2023-09-01 12:28+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
"Language-Team: Galician <proxecto@trasno.gal>\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"X-Generator: Gtranslator 40.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 3.3.2\n"
"X-Project-Style: gnome\n"
"X-DL-Team: gl\n"
"X-DL-Module: glib\n"
"X-DL-Branch: main\n"
"X-DL-Domain: po\n"
-"X-DL-State: Translating\n"
+"X-DL-State: None\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Estabelecer as aplicacións predeterminadas non se soporta aínda"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Establecer aplicación como última usada para o tipo non se soporta aínda"
-#: gio/gappinfo.c:808
+#: gio/gappinfo.c:814
#, c-format
-#| msgid "No default applications for “%s”\n"
msgid "Failed to find default application for content type ‘%s’"
msgstr ""
"Non se atopou ningunha aplicación predeterminado para o tipo de contido «%s»"
-#: gio/gappinfo.c:868
+#: gio/gappinfo.c:874
#, c-format
-#| msgid "No default applications for “%s”\n"
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr ""
"Produciuse un fallo ao buscar a aplicación predeterminada para o esquema de "
"URI «%s»"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "Opcións de GApplication"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "Opcións da GApplication:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Mostrar as opcións de GApplication"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
"Escriba o modo de servizo de GApplication (usar desde os ficheiros de "
"servizo D-Bus)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Omitir o ID da aplicación"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Substituír a instancia en execución"
@@ -159,7 +157,7 @@ msgstr ""
"Identificador de aplicacións en formato D-Bus (p.ex.: org.exemplo.visor)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FICHEIRO"
@@ -256,11 +254,11 @@ msgstr "non foi posíbel conectar ao D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "produciuse un erro ao enviar a mensaxe %s á aplicación: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "o nome da acción debe fornecerse logo do id de aplicación\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -269,25 +267,25 @@ msgstr ""
"nome da acción non válido: «%s»\n"
"os nomes de acción deben consistir só de alfanuméricos, «-» e «.»\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "produciuse un erro ao analizar o parámetro da acción: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "as accións aceptan un máximo dun parámetro\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "a orde list-actions recolle só o id de aplicación"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "non é posíbel atopar o ficheiro desktop para a aplicación %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -297,9 +295,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "O valor de conta pasado a %s é demasiado longo"
@@ -313,8 +311,8 @@ msgstr "Non se permite buscar no fluxo base"
msgid "Cannot truncate GBufferedInputStream"
msgstr "Non é posíbel truncar GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "O fluxo xa se pechou"
@@ -322,7 +320,7 @@ msgstr "O fluxo xa se pechou"
msgid "Truncate not supported on base stream"
msgstr "Non se permite truncar no fluxo base"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -341,28 +339,28 @@ msgid "Not enough space in destination"
msgstr "Non hai espazo abondo para o enderezo do socket"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "A secuencia de bytes non é válida na entrada da conversión"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Produciuse un erro durante a conversión: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Non se permite a inicialización cancelábel"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Non se admite a conversión do conxunto de caracteres «%s» a «%s»"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Non foi posíbel abrir o conversor de «%s» a «%s»"
@@ -405,17 +403,17 @@ msgstr "Non é posíbel burlar as credenciais neste SO"
msgid "Unexpected early end-of-stream"
msgstr "Final de fluxo inesperadamente prematuro"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Clave «%s» non admitida na entrada do enderezo «%s»"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Combinación de par clave/valor sen sentido na entrada do enderezo «%s»"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -424,7 +422,7 @@ msgstr ""
"O enderezo «%s» non é válido (necesítase exactamente unha ruta, directorio, "
"directorio temporal ou claves abstractas)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -559,7 +557,7 @@ msgstr ""
"Non é posíbel determinar o enderezo do bus de sesión (non está implementado "
"para este SO)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -568,7 +566,7 @@ msgstr ""
"Non é posíbel determinar o enderezo do bus desde a variábel de ambiente "
"DBUS_STARTER_BUS_TYPE - valor descoñecido «%s»"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -576,7 +574,7 @@ msgstr ""
"Non é posíbel determinar o enderezo do bus xa que a variábel de ambiente "
"DBUS_STARTER_BUS_TYPE non está estabelecida"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Tipo de bus %d descoñecido"
@@ -597,20 +595,24 @@ msgstr ""
"Esgotáronse todos os mecanismos de autenticación dispoñíbel (tentáronse: %s) "
"(dispoñíbeis: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Falta de contido inesperada ao tentar ler un byte"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Os IDs de usuario deben ser os mesmos para o par e o servidor"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Cancelando mediante GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Produciuse un erro ao obter a información do directorio «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -618,32 +620,32 @@ msgstr ""
"Os permisos no directorio «%s» están malformados. Esperábase o modo 0700 e "
"obtívose 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Produciuse un erro ao crear o directorio %s: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Operación non permitida"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Produciuse un erro ao abrir o anel de chaves «%s» para a súa lectura: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "A liña %d do anel de chaves en «%s» con contido «%s» está malformada"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -651,7 +653,7 @@ msgstr ""
"O primeiro token da liña %d no anel de chaves en «%s» co contido «%s» está "
"malformado"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -659,56 +661,56 @@ msgstr ""
"O segundo token da liña %d no anel de chaves en «%s» co contido «%s» está "
"malformado"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Non foi posíbel atopar a cookie co id %d no anel de chave en «%s»"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Produciuse un erro ao crear o ficheiro de bloqueo «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Produciuse un erro ao eliminar o ficheiro de bloqueo antigo «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Produciuse un erro ao pechar o ficheiro de bloqueo «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Produciuse un erro ao abrir o ficheiro de bloqueo «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Produciuse un erro ao abrir o anel de chaves «%s» para escribir: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Ademais, a liberación do bloqueo para «%s» tamén fallou: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "A conexión está pechado"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Tempo de espera máximo alcanzado"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Atopáronse opcións non compatíbeis ao construír a conexión da parte cliente"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -716,105 +718,115 @@ msgstr ""
"Non existe a interface «org.freedesktop.DBus.Properties» no obxecto coa ruta "
"%s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Non existe a propiedade «%s»"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Non é posíbel escribir a propiedade «%s»"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Non é posíbel escribir a propiedade «%s»"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Produciuse un erro ao estabelecer a propiedade «%s»: Esperábase o tipo «%s» "
"pero obtívose «%s»"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Non existe a interface «%s»"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Non existe a interface «%s» no obxecto coa ruta %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Non existe a clave «%s»"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "O tipo da mensaxe, «%s», non coincide co tipo «%s» esperado"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Xa hai un obxecto exportado para a interface %s en %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Non é posíbel obter a propiedade %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Non é posíbel estabelecer a propiedade %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "O método «%s» devolveu un tipo «%s» máis esperábase «%s»"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "O método «%s» na interface «%s» coa sinatura «%s» non existe"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Xa se exportou un subárbore para %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "O obxecto non existe na ruta «%s»"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "o tipo é INVALID"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "Mensaxe METHOD_CALL: falta o campo da cabeceira PATH ou MEMBER"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"Mensaxe METHOD_CALL: falta o campo da cabeceira PATH ou MEMBER ou non é "
+"válido"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "Mensaxe METHOD_RETURN: falta o campo da cabeceira REPLY_SERIAL"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"Mensaxe METHOD_RETURN: falta o campo da cabeceira REPLY_SERIAL ou non é "
+"válido"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "Mensaxe ERROR: falta o campo da cabeceira REPLY_SERIAL ou ERROR_NAME"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"Mensaxe ERROR: falta o campo da cabeceira REPLY_SERIAL ou ERROR_NAME ou non "
+"é válido"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "Mensaxe SIGNAL: falta o campo da cabeceira PATH, INTERFACE ou MEMBER"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"Mensaxe SIGNAL: falta o campo da cabeceira PATH, INTERFACE ou MEMBER ou non "
+"é válido"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -822,7 +834,7 @@ msgstr ""
"Mensaxe SIGNAL: o campo da cabeceira PATH está usando un valor reservado /"
"org/freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -830,19 +842,19 @@ msgstr ""
"Mensaxe SIGNAL: O campo da cabeceira INTERFACE está usando un valor "
"reservado org.freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "Quíxose ler %lu byte pero obtívose un %lu"
msgstr[1] "Quixéronse ler %lu bytes pero obtívose un %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Esperábase un byte NUL despois da cadea «%s» pero atopouse o byte %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -852,21 +864,21 @@ msgstr ""
"byte desvío %d (a lonxitude da cadea é %d). A cadea UTF-8 correcta até ese "
"punto foi «%s»"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Valor aniñado demasiado profundo"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "O valor analizado «%s» non é unha ruta de obxecto D-Bus correcta"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "O valor analizado «%s» non é unha sinatura D-Bus correcta"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -879,7 +891,7 @@ msgstr[1] ""
"Atopouse unha matriz cunha lonxitude de %u bytes. A lonxitude máxima é 2<<26 "
"bytes (64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -888,17 +900,17 @@ msgstr ""
"Atopouse unha matriz de tipo «a%c», agardábase ter unha de lonxitude de "
"varios %u bytes, aínda que se atopou unha de %u bytes"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Non se permiten as estruturas baleiras (tuplas) en D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr ""
"O valor «%s» analizado para a variante non é unha sinatura de D-Bus correcta"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -906,7 +918,7 @@ msgstr ""
"Produciuse un erro ao deserializar o GVariant co tipo cadea «%s» desde o "
"formato ligado D-Bus"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -915,30 +927,30 @@ msgstr ""
"Valor de «endianness» non válido. Esperábase 0x6c («|») ou 0x42 («B») pero "
"atopouse 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr ""
"A versión maior do protocolo non é válida. Esperábase 1 pero atopouse a %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Atopouse a cabeceira da sinatura pero non é do tipo sinatura"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Atopouse a cabeceira de sinatura coa sinatura «%s» máis o corpo da mensaxe "
"está baleiro"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr ""
"O valor analizado «%s» non é unha sinatura D-Bus correcta (para o corpo)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -949,11 +961,11 @@ msgstr[1] ""
"Non hai unha cabeceira da sinatura na mensaxe pero o corpo da mensaxe ten %u "
"bytes"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Non foi posíbel deserializar a mensaxe: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -961,7 +973,7 @@ msgstr ""
"Produciuse un erro ao serializar o GVariant co tipo cadea «%s» desde o "
"formato ligado D-Bus"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
@@ -969,18 +981,18 @@ msgstr ""
"O número de descritores de ficheiro no mensaxe (%d) difire do campo "
"cabeceira (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Non foi posíbel serializar a mensaxe: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
"O corpo da mensaxe ten a sinatura «%s» máis non está presente a cabeceira de "
"sinatura"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -989,54 +1001,54 @@ msgstr ""
"O corpo da mensaxe ten a sinatura de tipo «%s» pero a sinatura no campo da "
"cabeceira é «%s»"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
"O corpo da mensaxe está baleiro máis a sinatura do campo da cabeceira é "
"«(%s)»"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Produciuse un erro ao devolver co corpo de tipo «%s»"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Produciuse un erro ao devolver co corpo baleiro"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Prema calquera carácter para pechar esta xanela)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "O DBus de sesión non está executándose e o autoiniciado fallou"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Non é posíbel obter o perfil de hardware: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Non foi posíbel cargar %s ou %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Produciuse un erro ao chamar a StartServiceByName para %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Resposta %d non esperada desde o método StartServiceByName(«%s»)"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1045,27 +1057,27 @@ msgstr ""
"Non é posíbel invocar ao método; o proxy non ten dono para un nome coñecido "
"%s e o proxy construíuse coa opción G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Non se admite un espazo de nomes abstracto"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr ""
"Non é posíbel especificar o ficheiro de uso de unha vez ao crear un servidor"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr ""
"Produciuse un erro ao escribir no ficheiro de uso de unha vez en «%s»: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "A cadea «%s» non é un GUID de D-BUS correcta"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Non é posíbel escoitar nun transporte «%s» non admitido"
@@ -1093,14 +1105,14 @@ msgstr ""
"\n"
"Use '%s ORDE --help' para obter axuda sobre cada orde.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Erro: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Produciuse un erro ao analizar o XML de introspección: %s\n"
@@ -1110,49 +1122,49 @@ msgstr "Produciuse un erro ao analizar o XML de introspección: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Erro: %s non é un nome válido\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Erro: %s non é unha ruta a un obxecto correcta\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Conectar ao bus do sistema"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Conectar ao bus de sesión"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Conectar a un enderezo D-Bus fornecido"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Opcións da conexión do extremo:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Opción para especificar a conexión do extremo"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Non se especificou o punto final da conexión"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Especificáronse varios puntos finais da conexión"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "Aviso: segundo os datos de introspección a interface «%s» non existe\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1161,164 +1173,164 @@ msgstr ""
"Aviso: segundo os datos de introspección o método «%s» non existe na "
"interface «%s»\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Destino opcional para o sinal (nome único)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Ruta do obxecto sobre o que emitir o sinal"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Nomes da interface e sinal"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Emitir un sinal."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Produciuse un erro ao conectar: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Erro: %s non é un nome de bus único correcto.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Erro: non se especificou unha ruta de obxecto\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Erro: non se especificou o nome do sinal\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Erro: o nome do sinal «%s» non é válido\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Erro: %s non é un nome de interface correcto\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Erro: %s non é un nome de membro correcto\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Produciuse un erro ao analizar a opción %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Produciuse un erro ao limpar a conexión: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Nome do destino onde invocar o método"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Ruta ao obxecto onde invocar o método"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Método e nome da interface"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Tempo de expiración en segundos"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Permitir autorización interactiva"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Invocar un método nun obxecto remoto."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Erro: non se especificou un destino\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Erro: %s non é un nome de bus válido\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Erro: non se especificou o nome do método\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Erro: o nome do método «%s» non é válido\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Produciuse un erro ao analizar o parámetro %d do tipo «%s»: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Produciuse un erro ao engadir o manexador %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Nome de destino a introspeccionar"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Ruta do obxecto a introspeccionar"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Imprimir XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Introspeccionar fillo"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Só mostrar propiedades"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Introspecciona un obxecto remoto."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Nome de destino a monitorizar"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Ruta do obxecto a monitorizar"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Monitoriza un obxecto remoto."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Erro: non é posíbel monitorizar unha conexión non-message-bus\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Servizo a activar antes de agardar polo outro (nome coñecido)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1326,71 +1338,76 @@ msgstr ""
"Tempo de espera máximo a agardar antes de saír con un erro (segundos); 0 "
"para non ter tempo de espera (valor por omisión)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPCIÓN…] NOME-BUS"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Agardar que apareza un nome de bus."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Erro: Debe especificar un servizo a activar.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Erro: Debe especificar un servizo a agardar.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Erro: Demasiados argumentos.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Erro: %s non é un nome de bus válido e coñecido.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Non está autorizado para cambiar as preferencias de depuración"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5113
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Sen nome"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "O ficheiro de escritorio non especificou o campo Exec"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Non é posíbel atopar o terminal requirido pola aplicación"
-#: gio/gdesktopappinfo.c:3631
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Non se puido atopar o programa «%s» no $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
"Non é posíbel crear o directorio de configuración da aplicación de usuario "
"%s: %s"
-#: gio/gdesktopappinfo.c:3635
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr ""
"Non é posíbel crear o directorio de configuración MIME %s do usuario: %s"
-#: gio/gdesktopappinfo.c:3877 gio/gdesktopappinfo.c:3901
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "A información da aplicación carece dun identificador"
-#: gio/gdesktopappinfo.c:4137
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Non é posíbel crear o ficheiro de escritorio %s do usuario"
-#: gio/gdesktopappinfo.c:4273
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Definición personalizada para %s"
@@ -1462,80 +1479,84 @@ msgstr "Esperábase un GEmblem para o GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "O punto de montaxe contido non existe"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Non é posíbel copiar sobre o directorio"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Non é posíbel copiar un directorio sobre o directorio"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "O ficheiro de destino xa existe"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Non é posíbel copiar o directorio recursivamente"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "Non se admite a unión"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Copiar rango de ficheiro non é compatíbel"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Produciuse un erro ao empalmar o ficheiro: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Non se admite a unión"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Copiar (reflink/clonar) entre montaxes non é compatíbel"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Copiar (reflink/clone) non é compatíbel ou non é válido"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Copiar (reflink/clone) non é compatíbel ou non funciona"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Non é posíbel copiar o ficheiro especial"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "O valor da ligazón simbólica dada non é válido"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "As ligazóns simbólicas non se admiten"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "O Lixo non é compatíbel"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Os nomes de ficheiro non poden conter «%c»"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
-#| msgid "Failed to change to directory “%s” (%s)"
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr ""
"Produciuse un erro ao crear o directorio temporal para o modelo «%s»: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "o volume non implementa o montado"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Non hai ningunha aplicación rexistrado para manexar este ficheiro"
@@ -1544,11 +1565,11 @@ msgid "Enumerator is closed"
msgstr "O enumerador está pechado"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "O enumerador do ficheiro ten unha operación excepcional"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "O enumerador do ficheiro xa está pechado"
@@ -1561,27 +1582,27 @@ msgstr "Non é posíbel manipular a versión %d da codificación de GFileIcon"
msgid "Malformed input data for GFileIcon"
msgstr "Datos de entrada formados incorrectamente para o GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "O fluxo non permite query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Non se permite buscar no fluxo"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Non se permite truncar no fluxo de entrada"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Non se permite truncar no fluxo"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "O nome do host non é válido"
@@ -1614,37 +1635,37 @@ msgstr "A resposta do proxy HTTP é demasiado grande"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "A conexión co servidor proxy HTTP pechouse de forma non esperada."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Número incorrecto de tokens (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Non hai un tipo para o nome de clase %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "O tipo %s non implementa unha interface GIcon"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "O tipo %s non ten unha clase"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Número de versión formado incorrectamente: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "O tipo %s non implementa from_tokens() na interface do GIcon"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Non é posíbel manipular a versión fornecida da codificación da icona"
@@ -1685,7 +1706,7 @@ msgstr "O fluxo de entrada non implementa a lectura"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "O fluxo ten unha operación excepcional"
@@ -1791,12 +1812,12 @@ msgid "Error writing to stdout"
msgstr "Produciuse un erro ao escribir ao stdout"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "LOCALIZACIÓN"
@@ -1815,8 +1836,8 @@ msgstr ""
"GIO no lugar de ficheiros locais: por exemplo, pode usar algo así como \n"
"smb:////server/resource/file.txt como localización."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Non se forneceron localizacións"
@@ -1912,57 +1933,64 @@ msgstr "Non seguir as ligazóns simbólicas"
msgid "attributes:\n"
msgstr "atributos:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "nome en pantalla: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "nome de edición: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "nome: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "tipo: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "tamaño: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "oculto\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "ruta local: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "montaxe unix: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Atributos estabelecíbeis:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Espazos de nomes de atributo escribíbeis:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Mostrar información sobre as localizacións."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2029,11 +2057,11 @@ msgstr "Imprimir nomes que mostrar"
msgid "Print full URIs"
msgstr "Mostrar os URIs completos"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Lista os contidos das localizacións."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2235,19 +2263,19 @@ msgstr "Montar un volume TCRYPT oculto"
msgid "Mount a TCRYPT system volume"
msgstr "Montar un volume de sistema TCRYPT"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Acceso anónimo denegado"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Non hai unha unidade para o ficheiro de dispositivo"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Non hai un volume para o ID fornecido"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Montar ou desmontar as localizacións."
@@ -2368,7 +2396,6 @@ msgid "TYPE"
msgstr "TIPO"
#: gio/gio-tool-set.c:38
-#| msgid "Set a file attribute"
msgid "Unset given attribute"
msgstr "Desestabelecer o atributo fornecido"
@@ -2407,7 +2434,7 @@ msgstr "Baleirar o lixo"
#: gio/gio-tool-trash.c:37
msgid "List files in the trash with their original locations"
-msgstr "Lista os ficheiros no lixo coas súas localizacións orixinais."
+msgstr "Lista os ficheiros no lixo coas súas localizacións orixinais"
#: gio/gio-tool-trash.c:38
msgid ""
@@ -2427,7 +2454,7 @@ msgstr "Non é posíbel recrear a localización orixinal: "
#: gio/gio-tool-trash.c:138
msgid "Unable to move file to its original location: "
-msgstr "non é posíbel mover o ficheiro á súa localización orixinal:"
+msgstr "Non é posíbel mover o ficheiro á súa localización orixinal: "
#: gio/gio-tool-trash.c:227
msgid "Move/Restore files or directories to the trash."
@@ -2449,11 +2476,11 @@ msgstr "A localización fornecida non comeza por trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Seguir as ligazóns simbólicas, montaxes e atallos"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Lista os contidos dos directorios nun formato árbore."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Non se permite o elemento <%s> dentro de <%s>"
@@ -2510,7 +2537,7 @@ msgstr "Produciuse un erro ao comprimir o ficheiro: %s"
msgid "text may not appear inside <%s>"
msgstr "o texto non debe aparecer dentro de <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Mostrar a versión do programa e saír"
@@ -2526,8 +2553,8 @@ msgstr ""
"Os directorios dos que ler ficheiros referenciados en FILE (por omisión: o "
"directorio actual)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "DIRECTORIO"
@@ -2584,7 +2611,7 @@ msgid "The target C compiler (default: the CC environment variable)"
msgstr ""
"O compilador de C obxectivo (predetermiando: a variábel de ambiente CC)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2595,123 +2622,123 @@ msgstr ""
"xml,\n"
"e o ficheiro do recurso ten a extensión .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Debería fornecer exactamente un nome de ficheiro\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "o alcume debe ter cando menos 2 caracteres"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Valor numérico non válido"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> xa especificado"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' xa especificado"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "os balores das bandeiras deben ter cando menos un bit estabelecido"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> debe conter cando menos un <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> non está no rango especificado"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> non é un membro válido do enumerado especificado"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> contén unha cadea que non está especificada no tipo das bandeiras"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> contén unha cadea que non está en <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> xa está especificado para esta chave"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> non permitido para as chaves do tipo «%s»"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "o <range> mínimo especificado é maior que o máximo"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "categoría l10n no admitida: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n solicitado, pero non existe o dominio gettext"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "contexto de tradución fornecido para o valor sen ter l10n activado"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Produciuse un erro ao analizar o valor <default> do tipo «%s»: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> non pode especificarse para as chaves etiquetadas como un tipo "
"enumerado"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> xa especificadas para esta chave"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> non permitidas para as chaves do tipo “%s”"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> xa fornecido"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> debe conter cando menos unha <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> xa especificado para esta chave"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2719,7 +2746,7 @@ msgstr ""
"<aliases> só pode ser especificado para as chaves con enumerados ou "
"bandeiras de tipos ou despois de <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2727,42 +2754,42 @@ msgid ""
msgstr ""
"<alias value='%s'/> fornecido cando «%s» xa é un membro do tipo enumerado"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"<alias value='%s'/> fornecido cando <choice value='%s'/> xa foi fornecido"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> xa especificado"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "o alias do obxectivo «%s» non é un tipo enumerado"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "o alias do obxectivo «%s» non está en <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> debe conter cando menos un <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Non se permiten nomes baleiros"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Nome «%s» non válido: os nomes deben comezar por unha letra minúscula"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2771,36 +2798,36 @@ msgstr ""
"Nome «%s» non válido: o carácter «%c» non é válido; só se permiten letras en "
"minúsculas, números e guións («-»)"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "Nome «%s» non válido: non se permiten dous guións seguidos («--»)"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Nome «%s» non válido: o último carácter non pode ser un guión («-»)."
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Nome «%s» non válido: a lonxitude máxima é 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> xa especificado"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Non é posíbel engadir claves a un esquema «lista-de»"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> xa especificada"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2809,7 +2836,7 @@ msgstr ""
"<key name='%s'> enmascara a <key name='%s'> en <schema id='%s'>; use "
"<override> para modificar o valor"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2818,56 +2845,56 @@ msgstr ""
"Debe especificar exactamente un de «type», «enum» ou «flags» como un "
"atributo de <key>"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> aínda non especificado."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Tipo de cadea GVarian «%s» non válida"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> fornecido pero o esquema non estende nada"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Non existe <key name='%s'> para sobrescribir"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> xa foi especificada"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> xa especificado"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> estende ao aínda esquema inexistente «%s»"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> é unha lista de esquemas aínda non existentes «%s»"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Non é posíbel que sexa unha lista de esquemas con unha ruta"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Non é posíbel estender un esquema con unha ruta"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2875,7 +2902,7 @@ msgstr ""
"<schema id='%s'> é unha lista, estase estendendo <schema id='%s'> que non é "
"unha lista"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2884,17 +2911,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> estende <schema id='%s' list-of='%s'> pero "
"«%s» non estende a «%s»"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "Unha ruta, se se especifica, debe comezar e rematar con unha barra"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "A ruta dunha lista debe rematar con «:/»"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2903,49 +2930,49 @@ msgstr ""
"Aviso: O esquema «%s» ten unha ruta «%s». As rutas que comezan con «/"
"apps/», «/desktop/» ou «/system/» están obsoletas."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> xa especificado"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Non se permite un elemento <%s> dentro de <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Non se permite o elemento <%s> no nivel superior"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Requírense os elementos <default> en <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "O texto non debe aparecer dentro de <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Aviso: referencia non definida a <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "--strict foi especificado; saíndo."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Ignorouse este ficheiro completamente."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Ignorando este ficheiro."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2954,7 +2981,7 @@ msgstr ""
"Non existe a clave «%s» no esquema «%s» como se especificou no ficheiro de "
"sobrescrita «%s»; ignorando a sobrescrita para esta chave."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2963,7 +2990,7 @@ msgstr ""
"Non existe a clave «%s» no esquema «%s» como se especificou no ficheiro de "
"sobrescrita «%s» e --strict foi especificado; saíndo."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2973,7 +3000,7 @@ msgstr ""
"«%s» no esquema «%s» (ficheiro de sobrescrita «%s»); ignorando a sobrescrita "
"para esta chave."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2983,7 +3010,7 @@ msgstr ""
"«%s» no esquema «%s» (ficheiro de sobrescrita «%s») e --strict foi "
"especificado; saíndo."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2993,7 +3020,7 @@ msgstr ""
"especificou no ficheiro de sobrescrita «%s»: %s. Ignorando a sobrescrita "
"para esta chave."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -3003,7 +3030,7 @@ msgstr ""
"especificou no ficheiro de sobrescrita «%s»: %s. --strict foi especificado; "
"saíndo."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3013,7 +3040,7 @@ msgstr ""
"está fora do intervalo indicado no esquema; ignorando a sobrescrita para "
"esta chave."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3023,7 +3050,7 @@ msgstr ""
"está fora do intervalo indicado no esquema e --strict foi especificado; "
"saíndo."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3033,7 +3060,7 @@ msgstr ""
"non está na lista de opcións válidas; ignorando a sobrescrita para esta "
"chave."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3042,23 +3069,23 @@ msgstr ""
"A clave de sobrescrita «%s» no esquema «%s» no ficheiro de sobrescrita «%s» "
"non está na lista de opcións válidas e --strict foi especificado; saíndo."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Onde almacenar o ficheiro gschemas.compiled"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Interromper ao atopar calquera erro nos esquemas"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Non escribir o ficheiro compilado de gschema"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Non respectar as restricións de nome de clave"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3068,26 +3095,26 @@ msgstr ""
"de esquemas. Os ficheiros de esquema deben ter a extensión\n"
".gschema.xml e o ficheiro de caché chámase gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Debería fornecer exactamente un nome de cartafol"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Non se atoparon ficheiros de esquema: non se fai nada."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr ""
"Non se atopou ningún ficheiro de esquemas: eliminouse o ficheiro de saída "
"existente."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "O nome do ficheiro non é válido %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr ""
@@ -3097,265 +3124,264 @@ msgstr ""
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Non se atopa o punto de montaxe que contén o ficheiro %s"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Non é posíbel renomear o directorio raíz"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Produciuse un erro ao renomear o ficheiro %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Non é posíbel renomear o ficheiro, o ficheiro xa existe"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "O nome do ficheiro non é válido"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Produciuse un erro ao abrir o ficheiro %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Produciuse un erro ao eliminar o ficheiro %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Produciuse un erro ao mover ao lixo o ficheiro %s: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Non é posíbel crear o directorio do lixo %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr ""
"Non é posíbel atopar o directorio de nivel superior para mover ao lixo %s"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Enviar ao lixo en montaxes internos do sistema non se admite"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Non é posíbel atopar ou crear o directorio do lixo para %s ao lixo %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Non é posíbel crear a información de lixo para o ficheiro %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr ""
"Non é posíbel mover ao lixo o ficheiro %s a través dos límites do sistema de "
"ficheiros"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Non é posíbel mover ao lixo o ficheiro %s: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Non é posíbel mover ao lixo o ficheiro %s"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Produciuse un erro ao crear o directorio %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "O sistema de ficheiros non é compatíbel coas ligazóns simbólicas"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Produciuse un erro ao crear a ligazón simbólica %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Produciuse un erro ao mover o ficheiro %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Non é posíbel mover o directorio sobre un directorio"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Fallou a creación do ficheiro de seguranza"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Produciuse un erro ao retirar o ficheiro obxectivo: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Non se permite mover entre puntos de montaxe"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Non foi posíbel determinar o uso de disco de %s: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "O valor do atributo debe ser non nulo"
-#: gio/glocalfileinfo.c:782
-#| msgid "Invalid attribute type (string expected)"
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Tipo de atributo non válido (agardábase unha cadea ou non válido)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Nome estendido do atributo non válido"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Produciuse un erro ao estabelecer o atributo estendido «%s»: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (codificación non válida)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Produciuse un erro ao obter a información do ficheiro «%s»: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Produciuse un erro ao obter información do descritor do ficheiro: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "O tipo de atributo non é válido (esperábase uint32)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "O tipo de atributo non é válido (esperábase uint64)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "O tipo de atributo non é válido (esperábase unha cadea de bytes)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Non foi posíbel estabelecer os permisos nas ligazóns simbólicas"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Produciuse un erro ao estabelecer os permisos: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Produciuse un erro ao estabelecer o propietario: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "a ligazón simbólica debe ser non nula"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Produciuse un erro ao estabelecer a ligazón simbólica: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"Produciuse un erro ao estabelecer a ligazón simbólica: o ficheiro non é unha "
"ligazón"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
"Os nanosegundos %d adicionais en marcas de tempo UNIX %lld son negativas"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"Os nanosegundos %d adicionais en marcas de tempo UNIX %lld alcanzan 1 segundo"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "A marca de tempo UNIX %lld non colle nos 64 bits"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "A marca de tempo %lld está fóra do rango admitido por Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
-msgstr "Non é posíbel converter o nome de ficheiro «%s» a UTF-16."
+msgstr "Non é posíbel converter o nome de ficheiro «%s» a UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Non é posíbel abrir o ficheiro «%s»: Erro de Windows %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
"Produciuse un erro ao estabelecer a data de modificación ou acceso para o "
"ficheiro «%s»: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr ""
"Produciuse un erro ao modificar a configuración ou o tempo de acceso: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "O contexto SELinux debe ser non-NULL"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux non está activado neste sistema"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Produciuse un erro ao estabelecer o contexto SELinux: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Non se permite estabelecer o atributo %s"
@@ -3405,13 +3431,13 @@ msgstr "Produciuse un erro ao crear a copia de seguranza: %s"
msgid "Error renaming temporary file: %s"
msgstr "Produciuse un erro ao renomear o ficheiro temporal: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Produciuse un erro ao truncar o ficheiro: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Produciuse un erro ao abrir o ficheiro %s: %s"
@@ -3428,7 +3454,7 @@ msgstr "O ficheiro destino non é un ficheiro normal"
msgid "The file was externally modified"
msgstr "O ficheiro foi modificado externamente"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Produciuse un erro ao retirar o ficheiro antigo: %s"
@@ -3559,42 +3585,42 @@ msgstr "A versión NetworkManager é demasiado antiga"
msgid "Output stream doesn’t implement write"
msgstr "O fluxo de saída non implementa a escritura"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "A suma de vectores pasados a %s é demasiado longa"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "O fluxo de orixe xa está pechado"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Fallor por proxi de busca non especificado"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Produciuse un erro ao resolver «%s»: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s non implementado"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Dominio non válido"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Non existe o recurso en «%s»"
@@ -3604,16 +3630,16 @@ msgstr "Non existe o recurso en «%s»"
msgid "The resource at “%s” failed to decompress"
msgstr "Produciuse un erro ao descomprimir o recurso en «%s»"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Os ficheiros de recurso non se poden renomear"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "O recurso en «%s» non é un cartafol"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "O fluxo de entrada non implementa seek"
@@ -3981,7 +4007,8 @@ msgstr "O socket non é válido, a inicialización fallou debido a: %s"
msgid "Socket is already closed"
msgstr "O fluxo de orixe xa está pechado"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "Tempo de espera do Socket de E/S superado"
@@ -3990,163 +4017,163 @@ msgstr "Tempo de espera do Socket de E/S superado"
msgid "creating GSocket from fd: %s"
msgstr "creando o GSocket a partir de fd: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Non é posíbel crear o socket: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Especificouse unha familia descoñecida"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Especificouse un protocolo descoñecido"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr ""
"Non é posíbel usar as operacións de datagramas nun socket que non é de "
"datagramas."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Non é posíbel usar operacións de datagramas nun socket con un tempo de "
"espera máximo estabelecido."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "non foi posíbel obter un enderezo local: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "non foi posíbel obter un enderezo remoto: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "non foi posíbel escoitar: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Produciuse un erro ao ligar co enderezo %s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Produciuse un erro ao unirse ao grupo multicast: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Produciuse un erro ao deixar o grupo multicast: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Non se admite o multicast específico da fonte"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Familia de socket non admitida"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "o source-specific non é un enderezo IPv4"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Nome da interface demasiado larga"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Interface non atopada: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Non se admite o multicast IPv4 específico da fonte"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Non se admite o multicast IPv6 específico da fonte"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Produciuse un erro ao aceptar a conexión: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Conexión en marcha"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Non é posíbel obter o erro pendente: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Produciuse un erro ao recibir datos: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Produciuse un erro ao enviar datos: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Non é posíbel desconectar o socket: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Produciuse un erro ao pechar o socket: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Agardando pola situación do socket: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Non foi posíbel enviar a mensaxe: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Os vectores de mensaxes son moi largos"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Produciuse un erro ao enviar a mensaxe: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "O GSocketControlMessage non está permitido en Windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Produciuse un erro ao recibir a mensaxe: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Non é posíbel ler as credenciais do socket: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr ""
"g_socket_get_credentials non está implementado para este sistema operativo"
@@ -4273,7 +4300,7 @@ msgstr "O proxy SOCKSv5 non é compatíbel co tipo de enderezo fornecido."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Erro no proxy SOCKSv5 descoñecido."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr ""
@@ -4290,47 +4317,47 @@ msgstr "As tuberías non están soportadas nesta plataforma"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Non é posíbel manipular a versión %d da codificación de GThemedIcon"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Non se atopou ningún enderezo válido"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Produciuse un erro ao resolver inversamente «%s»: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr ""
"Produciuse un erro ao analizar o rexistro de DNS %s: paquete DNS mal formado"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Non hai un rexistro de DNS do tipo solicitado para «%s»"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Non é posíbel resolver temporalmente «%s»"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Produciuse un erro ao resolver «%s»"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Paquete DNS mal formado"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Produciuse un erro ao analizar a resposta DNS para «%s»: "
@@ -4389,60 +4416,60 @@ msgstr "O contrasinal introducido é incorrecto."
msgid "Sending FD is not supported"
msgstr "Non se permite enviar o FD"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "Esperando 1 mensaxe de control, obtívose %d"
msgstr[1] "Esperando 1 mensaxe de control, obtivéronse %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Tipo de datos subsidiarios inesperados"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "Esperando un descritor de ficheiro (fd), pero obtívose %d\n"
msgstr[1] "Esperando un descritor de ficheiro (fd), pero obtivéronse %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Recibiuse un descritor de ficheiro (fd) incorrecto"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Non se permite a recepción de FD"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Produciuse un erro ao enviar as credenciais: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr ""
"Produciuse un erro ao comprobar se SO_PASSCRED está activado para o socket: "
"%s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Produciuse un erro ao activar SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Esperábase ler un só byte para recibir as credenciais pero léronse creo bytes"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Non se esperaba unha mensaxe de control, pero obtívose %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Produciuse un erro ao desactivar SO_PASSCRED: %s"
@@ -4458,7 +4485,7 @@ msgstr "Produciuse un erro ao ler do descritor do ficheiro: %s"
msgid "Error closing file descriptor: %s"
msgstr "Produciuse un erro ao pechar o descritor do ficheiro: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Raíz do sistema de ficheiros"
@@ -4541,133 +4568,128 @@ msgstr "Executar servizo dbus"
msgid "Wrong args\n"
msgstr "Argumentos incorrectos\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Atributo «%s» inesperado para o elemento «%s»"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Non se atopou o atributo «%s» do elemento «%s»"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Etiqueta «%s» inesperada, esperábase a etiqueta «%s»"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Etiqueta «%s» inesperada dentro de «%s»"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Data/Hora «%s» non válida no ficheiro de marcador"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr ""
"Non foi posíbel atopar un ficheiro de marcadores válido nos directorios de "
"datos"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Xa existe un marcador para o URI «%s»"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Non se atopou ningún marcador para o URI «%s»"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Non hai ningún tipo MIME definido no marcador para o URI «%s»"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Non se definiu ningún parámetro privado no marcador para o URI «%s»"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "Non existe ningún grupo definido no marcador para o URI «%s»"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Ningunha aplicación denominada «%s» rexistrou un marcador para «%s»"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Produciuse un erro ao expandir a liña executábel «%s» co URI «%s»"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Carácter non representábel na entrada da conversión"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Hai unha secuencia de carácter parcial ao final da entrada"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr ""
"Non é posíbel converter o modo de emerxencia «%s» na codificación de "
"caracteres «%s»"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Byte NUL incrustado na entrada de conversión"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Byte NUL incrustado na saída de conversión"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "O URI «%s» non é un URI absoluto usando o esquema «file»"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "O URI do ficheiro local «%s» non pode incluír un «#»"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "O URI «%s» non é válido"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "O nome de host do URI «%s» non é válido"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "O URI «%s» contén caracteres de escape non válidos"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "O nome da ruta «%s» non é un camiño absoluto"
@@ -5090,83 +5112,83 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "Produciuse un erro ao abrir o directorio «%s»: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "Non foi posíbel asignar %lu byte para ler o ficheiro «%s»"
msgstr[1] "Non foi posíbel asignar %lu bytes para ler o ficheiro «%s»"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Produciuse un erro ao ler o ficheiro «%s»: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "O ficheiro «%s» é demasiado grande"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Produciuse un erro ao ler desde o ficheiro «%s»: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Produciuse un erro ao abrir o ficheiro «%s»: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr ""
"Produciuse un erro ao obter os atributos do ficheiro «%s»: fstat() fallou: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Produciuse un erro ao abrir o ficheiro «%s»: fdopen() fallou: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr ""
"Produciuse un erro ao renomear o ficheiro «%s» como «%s»: g_rename() fallou: "
"%s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Produciuse un erro ao escribir o ficheiro «%s»: write() fallou: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Produciuse un erro ao escribir o ficheiro «%s»: fsync() fallou: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Produciuse un erro ao crear o ficheiro «%s»: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr ""
"Non foi posíbel retirar o ficheiro existente «%s»: g_unlink() fallou: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "O modelo «%s» non é válido, non debería conter «%s»"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "O modelo «%s» non contén XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Produciuse un erro ao ler a ligazón simbólica «%s»: %s"
@@ -5193,16 +5215,16 @@ msgstr "O canal termina nun carácter parcial"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Non é posíbel facer unha lectura en bruto en g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr ""
"Non é posíbel atopar un ficheiro de clave correcto nos directorios de busca"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Non é un ficheiro normal"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5210,43 +5232,43 @@ msgstr ""
"O ficheiro clave contén a liña «%s» que non é un par valor-clave, grupo ou "
"comentario"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Nome de grupo non válido: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "O ficheiro clave non comeza cun grupo"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Nome de chave non válido: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "O ficheiro clave contén unha codificación non permitida «%s»"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "O ficheiro clave non ten un grupo «%s»"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "O ficheiro clave non ten a clave «%s» no grupo «%s»"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "O ficheiro clave contén a clave «%s» co valor «%s» que non é UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
@@ -5254,7 +5276,7 @@ msgstr ""
"O ficheiro clave contén a clave «%s» que ten un valor que non é posíbel "
"interpretar."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5263,83 +5285,83 @@ msgstr ""
"O ficheiro clave contén a clave «%s» no grupo «%s» que ten un valor que non "
"é posíbel interpretar."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "A clave «%s» do grupo «%s» ten o valor «%s», pero agardábase %s"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "O ficheiro clave contén un carácter de escape ao final da liña"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4378
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "O ficheiro clave contén a secuencia de escape non válida «%s»"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4530
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Non é posíbel interpretar o valor «%s» como un número."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4544
#, c-format
msgid "Integer value “%s” out of range"
msgstr "O valor enteiro «%s» está fóra do intervalo"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Non é posíbel interpretar o valor «%s» como un número flotante."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4616
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Non é posíbel interpretar o valor «%s» como un booleano."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"Produciuse un erro ao obter os atributos do ficheiro «%s%s%s%s»: fstat() "
"fallou: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Produciuse un erro ao mapear «%s%s%s%s»: mmap() fallou: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Produciuse un erro ao abrir o ficheiro «%s»: open() fallou: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Erro na liña %d carácter %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "O texto do nome codificado en UTF-8 non é válido - «%s» non válido"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "«%s» non é un nome válido"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "«%s» non é un nome válido: '%c'"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Erro na liña %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5349,7 +5371,7 @@ msgstr ""
"dunha referencia de carácter (por exemplo &#234;) - pode que o díxito sexa "
"grande de máis"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5359,24 +5381,24 @@ msgstr ""
"utilizou un carácter & sen intención de comezar unha entidade - escape o & "
"como &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "A referencia de carácter «%-.*s» non codifica un carácter permitido"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Detectada unha entidade baleira «&;»; as entidades válidas son: &amp; &quot; "
"&lt; &gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Non se coñece o nome de entidade «%-.*s»"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5384,11 +5406,11 @@ msgstr ""
"A entidade non remata cun punto e coma, probabelmente usou o carácter & sen "
"a intención de comezar unha entidade, escriba o & como &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "O documento debe comezar cun elemento (por exemplo <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5397,7 +5419,7 @@ msgstr ""
"«%s» non é un carácter válido despois dun carácter «<»; non pode iniciar un "
"nome de elemento"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5406,12 +5428,12 @@ msgstr ""
"Carácter estraño «%s», esperábase un carácter «>» para pechar a etiqueta de "
"elemento baleiro «%s»"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Hai demasiados atributos no elemento «%s»"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5419,7 +5441,7 @@ msgstr ""
"Carácter estraño «%s», esperábase un «=» despois do nome do atributo «%s» do "
"elemento «%s»"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5430,7 +5452,7 @@ msgstr ""
"etiqueta de comezo do elemento «%s» ou opcionalmente un atributo; quizais "
"usou un carácter non válido no nome dun atributo"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5439,7 +5461,7 @@ msgstr ""
"Carácter estraño «%s», esperábase unhas comiñas de apertura despois do signo "
"igual para dar un valor ao atributo «%s» do elemento «%s»"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5448,7 +5470,7 @@ msgstr ""
"«%s» non é un carácter válido despois dos caracteres «</»; «%s» non pode "
"comezar o nome dun elemento"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5457,25 +5479,25 @@ msgstr ""
"«%s» non é un carácter válido despois do nome de elemento de peche «%s»; o "
"carácter permitido é «>»"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Pechouse o elemento «%s», actualmente non hai ningún elemento aberto"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "Pechouse o elemento «%s», mais o elemento aberto actualmente é «%s»"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "O documento estaba baleiro ou só contiña espazos en branco"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "O documento rematou inesperadamente despois dun símbolo menor que «<»"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5484,7 +5506,7 @@ msgstr ""
"O documento rematou inesperadamente con elementos aínda abertos - «%s» foi o "
"último elemento aberto"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5493,21 +5515,21 @@ msgstr ""
"O documento rematou inesperadamente, esperábase ver un símbolo maior que '>' "
"que pechase a etiqueta <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "O documento rematou inesperadamente dentro dun nome de elemento"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "O documento rematou inesperadamente dentro dun nome de atributo"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr ""
"O documento rematou inesperadamente dentro dunha etiqueta de comezo de "
"elemento."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5515,25 +5537,25 @@ msgstr ""
"O documento rematou inesperadamente despois do signo igual que segue a un "
"nome de atributo; non hai valor de atributo"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "O documento rematou inesperadamente dentro dun valor de atributo"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr ""
"O documento rematou inesperadamente dentro da etiqueta que pechaba o "
"elemento «%s»"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"O documento rematou inesperadamente dentro da etiqueta que pechaba o "
"elemento «%s»"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"O documento rematou inesperadamente dentro dun comentario ou instrución de "
@@ -5598,186 +5620,182 @@ msgstr "Argumento que falta para %s"
msgid "Unknown option %s"
msgstr "Opción %s descoñecida"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "obxecto danado"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "sen memoria"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "alcanzouse o límite de \"backtracking\""
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "erro interno"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "o patrón contén elementos non permitidos na coincidencia parcial"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"as referencias anteriores como condicións non se permiten na coincidencia "
"parcial"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "atinxiuse o límite de recursividade"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "desprazamento erróneo"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "bucle de repetición"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "o modo coincidente solicítase como se non fora compilado por JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "erro descoñecido"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ ao final do patrón"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c ao final do patrón"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "carácter non recoñecido despois de \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "números fóra do intervalo no cuantificador {}"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "número demasiado grande no cuantificador {}"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "falta a terminación ] para a clase de carácter"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "secuencia de escape non válida na clase de carácter"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "intervalo fóra de orde na clase de carácter"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "nada que repetir"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "carácter non recoñecido despois de (? ou (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "As clases de nomes POSIX só se permiten dentro dunha clase"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "Os elementos de colación POSIX non se admiten"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "falta o ) de terminación"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "referencia a un subpatrón non existente"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "falta un ) despois do comentario"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "a expresión regular é demasiado longa"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "número ou nome formado incorrectamente despois de (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "a aserción lockbehind non ten unha lonxitude fixa"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "o grupo condicional contén máis de dúas ramas"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "esperábase unha aserción despois de (?("
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "unha referencia co número non pode ser cero"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "nome de clase POSIX descoñecida"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
-msgstr "o valor do carácter na secuencia \\x{…} é demasiado longo"
+msgstr "o valor do carácter na secuencia \\x{...} é demasiado longo"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "non se permite \\C en asercións lookbehind"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "falta a terminación no nome do subpatrón"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "dous subpatróns teñen o mesmo nome"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "secuencia \\P ou \\p formada incorrectamente"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "nome de propiedade descoñecido despois de \\P ou \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "o nome do subpatrón é demasiado longo (máximo 32 caracteres)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "demasiados subpatróns con nome (máximo 10.000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "o valor octal é maior que \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "O grupo DEFINE contén máis dunha rama"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "opcións NEWLINE inconsistentes"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5785,122 +5803,121 @@ msgstr ""
"\\g non está seguido por un nome entre chaves, corchetes angulares ou un "
"número entre comiñas, ou por un número simple"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "non se permite un argumento para (*ACCEPT), (*FAIL), ou (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) no recoñecido"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "o número é demasiado grande"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "falta o nome do subpatrón despois de (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "non se permiten diferentes nomes para subpatróns do mesmo número"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) debe ter un argumento"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c debe estar seguido dun carácter ASCII"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"\\k non está seguido por un nome entre chaves, corchetes angulares ou entre "
"comiñas"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "non se permite \\N nunha clase"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "o nome é demasiado longo en (*MARK), (*PRUNE), (*SKIP), ou (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "desbordamento de código"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "carácter non recoñecido despois de (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "desbordouse o espazo de traballo de compilación"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "non se atopou o subpatrón referenciado comprobado previamente"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr ""
"Produciuse un erro ao estabelecer a equivalencia da expresión regular %s: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "A biblioteca PCRE está compilada sen compatibilidade con UTF8"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "A biblioteca PCRE está compilada con opcións non compatíbeis"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
-#| msgid "Error while compiling regular expression %s at char %d: %s"
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr ""
"Produciuse un erro ao compilar a expresión regular «%s» no carácter %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "esperábase un díxito hexadecimal ou '}'"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "esperábase un díxito hexadecimal"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "falta «<» na referencia simbólica"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "referencia simbólica sen finalizar"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "referencia simbólica de lonxitude cero"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "esperábase un díxito"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "referencia simbólica ilegal"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "«\\» final perdido"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "secuencia de escape descoñecida"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr ""
@@ -5932,143 +5949,148 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "O texto estaba baleiro (ou só contiña espazos en branco)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Produciuse un erro ao ler datos desde un proceso fillo (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Produciuse un erro ao ler os datos dun proceso fillo (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Erro inesperado en waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "O proceso fillo rematou co código %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "O proceso fillo rematou polo sinal %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "O proceso fillo detívose polo sinal %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "O proceso fillo rematou de forma anormal"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Produciuse un erro ao ler desde a canalización filla (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Produciuse un erro ao executar o proceso fillo «%s» (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Produciuse un erro ao facer fork (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Produciuse un erro ao cambiar ao directorio «%s» (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Produciuse un erro ao executar o proceso fillo «%s» (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr ""
"Produciuse un erro ao abrir o ficheiro para remapear o descritor de ficheiro "
"(%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr ""
"Produciuse un erro ao duplicar o descritor de ficheiro para o proceso fillo "
"(%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Produciuse un erro ao facer fork ao proceso fillo (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr ""
"Produciuse un erro ao pechar o descritor de ficheiro para o proceso fillo "
"(%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Produciuse un erro descoñecido ao executar o proceso fillo «%s»"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
"Fallo de lectura de suficientes datos desde a canalización filla co PID (%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Argumento de FDs de orixe non válido"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Produciuse un erro ao ler datos desde un proceso fillo"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Produciuse un erro ao executar o proceso fillo (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Produciuse un erro ao facer dup() no proceso fillo (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Nome de programa non válido: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Cadea non válida no vector de argumento en %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Cadea non válida no ambiente: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Directorio de traballo non válido: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Produciuse un erro ao executar o programa asistente (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6076,225 +6098,225 @@ msgstr ""
"Erro inesperado en g_io_channel_win32_poll() ao ler datos desde un proceso "
"fillo"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "A cadea baleira non é un número"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "«%s» non é un número con signo"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "O número «%s» está fóra de rango [%s, %s]"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "«%s» non é un número sen signo"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "%-encoding non válida na URI"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Carácter ilegal na URI"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Caracteres non UTF-8 na URI"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Enderezo IPv6 non válido «%.*s» na URI"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Enderezo IP codificado ilegal «%.*s» na URI"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Nome de equipo internacionalizado ilegal «%.*s» na URI"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Non foi posíbel analizar «%.*s» como unha URI"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "O porto «%.*s» na URI está fóra do intervalo"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "A URI «%s» non é unha URI absoluta"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "A URI «%s» non ten o compoñente de equipo"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "A URI non é absoluta, e non se forneceu unha URI base"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Falta «=» e o valor de parámetro"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Produciuse un erro ao reservar memoria"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Carácter fóra do intervalo para UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Secuencia non válida na entrada da conversión"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Carácter fóra de intervalo para UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
-msgstr " "
+msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "byte"
-msgstr[1] "%u bytes"
+msgstr[1] "bytes"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bit"
@@ -6302,7 +6324,7 @@ msgstr[1] "%u bit"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6310,7 +6332,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6318,7 +6340,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6327,14 +6349,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6342,14 +6364,14 @@ msgstr[0] "%s byte"
msgstr[1] "%s bytes"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s bit"
msgstr[1] "%s bit"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6361,190 +6383,35 @@ msgstr[1] "%u bytes"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
-#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "nome de edición: %s\n"
-
-#~ msgid "internal error or corrupted object"
-#~ msgstr "erro interno ou obxecto danado"
-
-#~ msgid "invalid combination of newline flags"
-#~ msgstr "combinación non válida de marcas de liña nova"
-
-#~ msgid "short utf8"
-#~ msgstr "UTF8 curto"
-
-#~ msgid "unexpected repeat"
-#~ msgstr "repetición inesperada"
-
-#~ msgid "failed to get memory"
-#~ msgstr "produciuse un erro ao obter a memoria"
-
-#~ msgid ") without opening ("
-#~ msgstr ") sen ( que o abra"
-
-#~ msgid "unrecognized character after (?<"
-#~ msgstr "carácter non recoñecido despois de (?<"
-
-#~ msgid "(?R or (?[+-]digits must be followed by )"
-#~ msgstr "(?R ou os díxitos (?[+-] deben estar seguidos por )"
-
-#~ msgid "invalid condition (?(0)"
-#~ msgstr "condición non válida (?(0)"
-
-#~ msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
-#~ msgstr ""
-#~ "as secuencias de escape \\L, \\l, \\N{nome}, \\U, e \\u non se admiten"
-
-#~ msgid "recursive call could loop indefinitely"
-#~ msgstr "unha chamada recursiva pode crear un bucle infinito"
-
-#~ msgid "digit expected after (?+"
-#~ msgstr "agardábase un díxito despois de (?+"
-
-#~ msgid "] is an invalid data character in JavaScript compatibility mode"
-#~ msgstr ""
-#~ "] é un carácter de datos non válido no modo de compatibilidade de "
-#~ "JavaScript"
-
-#~ msgid "too many forward references"
-#~ msgstr "demasiadas referencias cara adiante"
-
-#~ msgid "character value in \\u.... sequence is too large"
-#~ msgstr "o valor do carácter na secuencia \\u.... é demasiado longo"
-
-#~ msgid "PCRE library is compiled without UTF8 properties support"
-#~ msgstr ""
-#~ "A biblioteca PCRE está compilada sen compatibilidade con propiedades UTF8"
-
-#, c-format
-#~ msgid "Error while optimizing regular expression %s: %s"
-#~ msgstr "Produciuse un erro ao optimizar a expresión regular %s: %s"
-
-#, c-format
-#~ msgid "%.1f MB"
-#~ msgstr "%.1f MB"
-
-#, c-format
-#~ msgid "%.1f GB"
-#~ msgstr "%.1f GB"
-
-#, c-format
-#~ msgid "%.1f TB"
-#~ msgstr "%.1f TB"
-
-#, c-format
-#~ msgid "%.1f PB"
-#~ msgstr "%.1f PB"
-
-#, c-format
-#~ msgid "%.1f EB"
-#~ msgstr "%.1f EB"
-
-#, c-format
-#~ msgid "%.1f KiB"
-#~ msgstr "%.1f KiB"
-
-#, c-format
-#~ msgid "%.1f MiB"
-#~ msgstr "%.1f MiB"
-
-#, c-format
-#~ msgid "%.1f GiB"
-#~ msgstr "%.1f GiB"
-
-#, c-format
-#~ msgid "%.1f TiB"
-#~ msgstr "%.1f TiB"
-
-#, c-format
-#~ msgid "%.1f PiB"
-#~ msgstr "%.1f PiB"
-
-#, c-format
-#~ msgid "%.1f EiB"
-#~ msgstr "%.1f EiB"
-
-#, c-format
-#~ msgid "%.1f kb"
-#~ msgstr "%.1f kb"
-
-#, c-format
-#~ msgid "%.1f Mb"
-#~ msgstr "%.1f Mb"
-
-#, c-format
-#~ msgid "%.1f Gb"
-#~ msgstr "%.1f Gb"
-
-#, c-format
-#~ msgid "%.1f Tb"
-#~ msgstr "%.1f Tb"
-
-#, c-format
-#~ msgid "%.1f Pb"
-#~ msgstr "%.1f Pb"
-
-#, c-format
-#~ msgid "%.1f Eb"
-#~ msgstr "%.1f Eb"
-
-#, c-format
-#~ msgid "%.1f Kib"
-#~ msgstr "%.1f Kib"
-
-#, c-format
-#~ msgid "%.1f Mib"
-#~ msgstr "%.1f Mib"
-
-#, c-format
-#~ msgid "%.1f Gib"
-#~ msgstr "%.1f Gib"
-
-#, c-format
-#~ msgid "%.1f Tib"
-#~ msgstr "%.1f Tib"
-
-#, c-format
-#~ msgid "%.1f Pib"
-#~ msgstr "%.1f Pib"
-
-#, c-format
-#~ msgid "%.1f Eib"
-#~ msgstr "%.1f Eib"
-
-#~ msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
-#~ msgstr "Non é posíbel ler /var/lib/dbus/machine-id ou /etc/machine-id: "
-
-#~ msgid "Unknown error on connect"
-#~ msgstr "Erro descoñecido ao conectar"
+#~ msgid "backtracking limit reached"
+#~ msgstr "alcanzouse o límite de \"backtracking\""
diff --git a/po/he.po b/po/he.po
index 86d4ef8c3..37c0d5d46 100644
--- a/po/he.po
+++ b/po/he.po
@@ -8,59 +8,59 @@
# Gil 'Dolfin' Osher <dolfin@rpg.org.il>, 2002.
# Gil Osher <dolfin@rpg.org.il>, 2004.
# Yaron Shahrabani <sh.yaron@gmail.com>, 2010.
-# Yosef Or Boczko <yoseforb@gmail.com>, 2014-2022.
+# Yosef Or Boczko <yoseforb@gmail.com>, 2014-2023.
#
msgid ""
msgstr ""
"Project-Id-Version: glib.HEAD.he\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-10-04 17:40+0000\n"
-"PO-Revision-Date: 2022-10-06 16:22+0300\n"
-"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
-"Language-Team: Hebrew <>\n"
+"POT-Creation-Date: 2023-09-02 13:39+0000\n"
+"PO-Revision-Date: 2023-09-02 21:02+0300\n"
+"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
+"Language-Team: Hebrew <yoseforb@gmail.com>\n"
"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? "
-"2 : 3);\n"
-"X-Generator: Poedit 3.1.1\n"
+"2 : 3)\n"
+"X-Generator: Gtranslator 42.0\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Setting default applications not supported yet"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr "Setting application as last used for type not supported yet"
-#: gio/gappinfo.c:810
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "Failed to find default application for content type ‘%s’"
-#: gio/gappinfo.c:870
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Failed to find default application for URI Scheme ‘%s’"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "אפשרויות GApplication"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "GApplication Options:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "הצגת אפשרויות GApplication"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr "Enter GApplication service mode (use from D-Bus service files)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Override the application’s ID"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "החלפת העותק הפעיל"
@@ -139,7 +139,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Application identifier in D-Bus format (eg: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FILE"
@@ -236,11 +236,11 @@ msgstr "unable to connect to D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "error sending %s message to application: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "action name must be given after application id\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -249,25 +249,25 @@ msgstr ""
"invalid action name: “%s”\n"
"action names must consist of only alphanumerics, “-” and “.”\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "error parsing action parameter: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "actions accept a maximum of one parameter\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "list-actions command takes only the application id"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "unable to find desktop file for application %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -277,9 +277,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Too large count value passed to %s"
@@ -293,8 +293,8 @@ msgstr "Seek not supported on base stream"
msgid "Cannot truncate GBufferedInputStream"
msgstr "Cannot truncate GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Stream is already closed"
@@ -302,7 +302,7 @@ msgstr "Stream is already closed"
msgid "Truncate not supported on base stream"
msgstr "Truncate not supported on base stream"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -321,30 +321,30 @@ msgid "Not enough space in destination"
msgstr "Not enough space in destination"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Invalid byte sequence in conversion input"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Error during conversion: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Cancellable initialization not supported"
# *** This file should not be translated to hebrew, please only copy the english text ***
# *** Old hebrew ranslation is commented for backup sake ***
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Conversion from character set “%s” to “%s” is not supported"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Could not open converter from “%s” to “%s”"
@@ -387,17 +387,17 @@ msgstr "Credentials spoofing is not possible on this OS"
msgid "Unexpected early end-of-stream"
msgstr "Unexpected early end-of-stream"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Unsupported key “%s” in address entry “%s”"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Meaningless key/value pair combination in address entry “%s”"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -406,7 +406,7 @@ msgstr ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
"keys)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -529,7 +529,7 @@ msgstr "Error spawning command line “%s”: "
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr "Cannot determine session bus address (not implemented for this OS)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -538,7 +538,7 @@ msgstr ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
"— unknown value “%s”"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -546,10 +546,10 @@ msgstr ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
-msgstr "Unknown bus type %d"
+msgstr "סוג אפיק לא ידוע %d"
#: gio/gdbusauth.c:294
msgid "Unexpected lack of content trying to read a line"
@@ -566,218 +566,226 @@ msgid ""
msgstr ""
"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "העדר הקשר בלתי צפוי בניסיון לקרוא בית"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
-msgstr "User IDs must be the same for peer and server"
+msgstr "מזהי המשתמשים חייבים להיות זהים לעמית ולשרת"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Error when getting information for directory “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Error creating directory “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Operation not supported"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Error opening keyring “%s” for reading: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "Line %d of the keyring at “%s” with content “%s” is malformed"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Didn’t find cookie with id %d in the keyring at “%s”"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Error creating lock file “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Error deleting stale lock file “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Error closing (unlinked) lock file “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Error unlinking lock file “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Error opening keyring “%s” for writing: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Additionally, releasing the lock for “%s” also failed: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "The connection is closed"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Timeout was reached"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Unsupported flags encountered when constructing a client-side connection"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "No such property “%s”"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Property “%s” is not readable"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Property “%s” is not writable"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr "Error setting property “%s”: Expected type “%s” but got “%s”"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "No such interface “%s”"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "No such interface “%s” on object at path %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "No such method “%s”"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Type of message, “%s”, does not match expected type “%s”"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "An object is already exported for the interface %s at %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Unable to retrieve property %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Unable to set property %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Method “%s” returned type “%s”, but expected “%s”"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Method “%s” on interface “%s” with signature “%s” does not exist"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "A subtree is already exported for %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Object does not exist at path “%s”"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
-msgstr "type is INVALID"
+msgstr "הסוג שגוי"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "METHOD_CALL message: PATH or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "METHOD_RETURN message: REPLY_SERIAL header field is missing"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -785,7 +793,7 @@ msgstr ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -793,7 +801,7 @@ msgstr ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
@@ -802,12 +810,12 @@ msgstr[1] "‫Wanted to read %lu bytes but only got %lu"
msgstr[2] "‫Wanted to read %lu bytes but only got %lu"
msgstr[3] "‫Wanted to read %lu bytes but only got %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Expected NUL byte after the string “%s” but found byte %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -816,21 +824,21 @@ msgstr ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
"(length of string is %d). The valid UTF-8 string up until that point was “%s”"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Value nested too deeply"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Parsed value “%s” is not a valid D-Bus object path"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Parsed value “%s” is not a valid D-Bus signature"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -845,7 +853,7 @@ msgstr[2] ""
msgstr[3] ""
"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -854,23 +862,23 @@ msgstr ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
"bytes, but found to be %u bytes in length"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Empty structures (tuples) are not allowed in D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Parsed value “%s” for variant is not a valid D-Bus signature"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -879,26 +887,26 @@ msgstr ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
"0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Invalid major protocol version. Expected 1 but found %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Signature header found but is not of type signature"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr "Signature header with signature “%s” found but message body is empty"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Parsed value “%s” is not a valid D-Bus signature (for body)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -907,34 +915,34 @@ msgstr[1] "‫No signature header in message but the message body is %u bytes"
msgstr[2] "‫No signature header in message but the message body is %u byte"
msgstr[3] "‫No signature header in message but the message body is %u byte"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Cannot deserialize message: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
"Number of file descriptors in message (%d) differs from header field (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Cannot serialize message: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "Message body has signature “%s” but there is no signature header"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -943,52 +951,52 @@ msgstr ""
"Message body has type signature “%s” but signature in the header field is "
"“%s”"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Message body is empty but signature in the header field is “(%s)”"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Error return with body of type “%s”"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Error return with empty body"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Type any character to close this window)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "Session dbus not running, and autolaunch failed"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Unable to get Hardware profile: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Unable to load %s or %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Error calling StartServiceByName for %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Unexpected reply %d from StartServiceByName(\"%s\") method"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -997,25 +1005,25 @@ msgstr ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
"and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Abstract namespace not supported"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Cannot specify nonce file when creating a server"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Error writing nonce file at “%s”: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "The string “%s” is not a valid D-Bus GUID"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Cannot listen on unsupported transport “%s”"
@@ -1043,14 +1051,14 @@ msgstr ""
"\n"
"Use “%s COMMAND --help” to get help on each command.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
-msgstr "Error: %s\n"
+msgstr "שגיאה: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Error parsing introspection XML: %s\n"
@@ -1060,50 +1068,50 @@ msgstr "Error parsing introspection XML: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Error: %s is not a valid name\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Error: %s is not a valid object path\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Connect to the system bus"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Connect to the session bus"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Connect to given D-Bus address"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Connection Endpoint Options:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Options specifying the connection endpoint"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "No connection endpoint specified"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Multiple connection endpoints specified"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr ""
"Warning: According to introspection data, interface “%s” does not exist\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1112,164 +1120,164 @@ msgstr ""
"Warning: According to introspection data, method “%s” does not exist on "
"interface “%s”\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Optional destination for signal (unique name)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Object path to emit signal on"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Signal and interface name"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Emit a signal."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
-msgstr "Error connecting: %s\n"
+msgstr "שגיאת התחברות: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Error: %s is not a valid unique bus name.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Error: Object path is not specified\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Error: Signal name is not specified\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Error: Signal name “%s” is invalid\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Error: %s is not a valid interface name\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Error: %s is not a valid member name\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Error parsing parameter %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Error flushing connection: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Destination name to invoke method on"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Object path to invoke method on"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Method and interface name"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Timeout in seconds"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Allow interactive authorization"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Invoke a method on a remote object."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Error: Destination is not specified\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Error: %s is not a valid bus name\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Error: Method name is not specified\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Error: Method name “%s” is invalid\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Error parsing parameter %d of type “%s”: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Error adding handle %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Destination name to introspect"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Object path to introspect"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
-msgstr "Print XML"
+msgstr "הצגת XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Introspect children"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Only print properties"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Introspect a remote object."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Destination name to monitor"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Object path to monitor"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Monitor a remote object."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Error: can’t monitor a non-message-bus connection\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Service to activate before waiting for the other one (well-known name)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1277,68 +1285,73 @@ msgstr ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPTION…] BUS-NAME"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Wait for a bus name to appear."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Error: A service to activate for must be specified.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Error: A service to wait for must be specified.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Error: Too many arguments.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Error: %s is not a valid well-known bus name.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Not authorized to change debug settings"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5119
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
-msgstr "Unnamed"
+msgstr "ללא שם"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Desktop file didn’t specify Exec field"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Unable to find terminal required for application"
-#: gio/gdesktopappinfo.c:3637
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Program ‘%s’ not found in $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Can’t create user application configuration folder %s: %s"
-#: gio/gdesktopappinfo.c:3641
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Can’t create user MIME configuration folder %s: %s"
-#: gio/gdesktopappinfo.c:3883 gio/gdesktopappinfo.c:3907
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Application information lacks an identifier"
-#: gio/gdesktopappinfo.c:4143
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Can’t create user desktop file %s"
-#: gio/gdesktopappinfo.c:4279
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Custom definition for %s"
@@ -1407,78 +1420,83 @@ msgstr "Expected a GEmblem for GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Containing mount does not exist"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Can’t copy over directory"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Can’t copy directory over directory"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
-msgstr "Target file exists"
+msgstr "קובץ יעד קיים"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Can’t recursively copy directory"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "Symbolic links not supported"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Copy file range not supported"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Error opening file: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Symbolic links not supported"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Copy (reflink/clone) between mounts is not supported"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Copy (reflink/clone) is not supported or invalid"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Copy (reflink/clone) is not supported or didn’t work"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Can’t copy special file"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Invalid symlink value given"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Symbolic links not supported"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Trash not supported"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "File names cannot contain “%c”"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Failed to create a temporary directory for template “%s”: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "volume doesn’t implement mount"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "No application is registered as handling this file"
@@ -1487,11 +1505,11 @@ msgid "Enumerator is closed"
msgstr "Enumerator is closed"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "File enumerator has outstanding operation"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "File enumerator is already closed"
@@ -1504,29 +1522,29 @@ msgstr "Can’t handle version %d of GFileIcon encoding"
msgid "Malformed input data for GFileIcon"
msgstr "Malformed input data for GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Stream doesn’t support query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Seek not supported on stream"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Truncate not allowed on input stream"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Truncate not supported on stream"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
-msgstr "Invalid hostname"
+msgstr "שם מארח שגוי"
#: gio/ghttpproxy.c:145
msgid "Bad HTTP proxy reply"
@@ -1557,37 +1575,37 @@ msgstr "HTTP proxy response too big"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "HTTP proxy server closed connection unexpectedly."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Wrong number of tokens (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "No type for class name %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Type %s does not implement the GIcon interface"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Type %s is not classed"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Malformed version number: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Type %s does not implement from_tokens() on the GIcon interface"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Can’t handle the supplied version of the icon encoding"
@@ -1628,7 +1646,7 @@ msgstr "Input stream doesn’t implement read"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Stream has outstanding operation"
@@ -1734,12 +1752,12 @@ msgid "Error writing to stdout"
msgstr "Error writing to stdout"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1210 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "LOCATION"
@@ -1757,8 +1775,8 @@ msgstr ""
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1261 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "No locations given"
@@ -1854,57 +1872,64 @@ msgstr "Don’t follow symbolic links"
msgid "attributes:\n"
msgstr "attributes:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "display name: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "edit name: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "name: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "type: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "size: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "hidden\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "local path: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "unix mount: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Settable attributes:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Writable attribute namespaces:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Show information about locations."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1970,11 +1995,11 @@ msgstr "Print display names"
msgid "Print full URIs"
msgstr "Print full URIs"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "List the contents of the locations."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2172,15 +2197,15 @@ msgstr "Mount a TCRYPT system volume"
msgid "Anonymous access denied"
msgstr "Anonymous access denied"
-#: gio/gio-tool-mount.c:533
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "No drive for device file"
-#: gio/gio-tool-mount.c:1025
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "No volume for given ID"
-#: gio/gio-tool-mount.c:1214
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Mount or unmount the locations."
@@ -2380,11 +2405,11 @@ msgstr "Location given doesn't start with trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Follow symbolic links, mounts and shortcuts"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "List contents of directories in a tree-like format."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Element <%s> not allowed inside <%s>"
@@ -2439,7 +2464,7 @@ msgstr "Error compressing file %s"
msgid "text may not appear inside <%s>"
msgstr "text may not appear inside <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Show program version and exit"
@@ -2455,8 +2480,8 @@ msgstr ""
"The directories to load files referenced in FILE from (default: current "
"directory)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "DIRECTORY"
@@ -2510,7 +2535,7 @@ msgstr "C identifier name used for the generated source code"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "The target C compiler (default: the CC environment variable)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2520,122 +2545,122 @@ msgstr ""
"Resource specification files have the extension .gresource.xml,\n"
"and the resource file have the extension called .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "You should give exactly one file name\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "nick must be a minimum of 2 characters"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Invalid numeric value"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> already specified"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' already specified"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "flags values must have at most 1 bit set"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> must contain at least one <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> is not contained in the specified range"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> is not a valid member of the specified enumerated type"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> contains string not in the specified flags type"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> contains a string not in <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> already specified for this key"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> not allowed for keys of type “%s”"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "<range> specified minimum is greater than maximum"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "unsupported l10n category: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n requested, but no gettext domain given"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "translation context given for value without l10n enabled"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Failed to parse <default> value of type “%s”: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> already specified for this key"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> not allowed for keys of type “%s”"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> already given"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> must contain at least one <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> already specified for this key"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2643,7 +2668,7 @@ msgstr ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2652,41 +2677,41 @@ msgstr ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
"type"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr "<alias value='%s'/> given when <choice value='%s'/> was already given"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> already specified"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "alias target “%s” is not in enumerated type"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "alias target “%s” is not in <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> must contain at least one <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Empty names are not permitted"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Invalid name “%s”: names must begin with a lowercase letter"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2695,36 +2720,36 @@ msgstr ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
"and hyphen (“-”) are permitted"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Invalid name “%s”: the last character may not be a hyphen (“-”)"
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Invalid name “%s”: maximum length is 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> already specified"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Cannot add keys to a “list-of” schema"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> already specified"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2733,7 +2758,7 @@ msgstr ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
"to modify value"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2742,63 +2767,63 @@ msgstr ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
"to <key>"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> not (yet) defined."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Invalid GVariant type string “%s”"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> given but schema isn’t extending anything"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "No <key name='%s'> to override"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> already specified"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> already specified"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> extends not yet existing schema “%s”"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> is list of not yet existing schema “%s”"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Cannot be a list of a schema with a path"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Cannot extend a schema with a path"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2807,17 +2832,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
"does not extend “%s”"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "A path, if given, must begin and end with a slash"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "The path of a list must end with “:/”"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2826,49 +2851,49 @@ msgstr ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
"desktop/” or “/system/” are deprecated."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> already specified"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Only one <%s> element allowed inside <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Element <%s> not allowed at the top level"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Element <default> is required in <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Text may not appear inside <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Warning: undefined reference to <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "--strict was specified; exiting."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "This entire file has been ignored."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Ignoring this file."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2877,7 +2902,7 @@ msgstr ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
"override for this key."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2886,7 +2911,7 @@ msgstr ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
"strict was specified; exiting."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2895,7 +2920,7 @@ msgstr ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
"“%s” (override file “%s”); ignoring override for this key."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2904,7 +2929,7 @@ msgstr ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
"“%s” (override file “%s”) and --strict was specified; exiting."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2913,7 +2938,7 @@ msgstr ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
"%s. Ignoring override for this key."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2922,7 +2947,7 @@ msgstr ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
"%s. --strict was specified; exiting."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2931,7 +2956,7 @@ msgstr ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
"range given in the schema; ignoring override for this key."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2940,7 +2965,7 @@ msgstr ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
"range given in the schema and --strict was specified; exiting."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2949,7 +2974,7 @@ msgstr ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
"list of valid choices; ignoring override for this key."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2958,23 +2983,23 @@ msgstr ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
"list of valid choices and --strict was specified; exiting."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Where to store the gschemas.compiled file"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Abort on any errors in schemas"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Do not write the gschema.compiled file"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Do not enforce key name restrictions"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -2984,24 +3009,24 @@ msgstr ""
"Schema files are required to have the extension .gschema.xml,\n"
"and the cache file is called gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "You should give exactly one directory name"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "No schema files found: doing nothing."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "No schema files found: removed existing output file."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Invalid filename %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Error getting filesystem info for %s: %s"
@@ -3010,255 +3035,255 @@ msgstr "Error getting filesystem info for %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Containing mount for file %s not found"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Can’t rename root directory"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Error renaming file %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Can’t rename file, filename already exists"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Invalid filename"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Error opening file %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Error removing file %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Error trashing file %s: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Unable to create trash directory %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Unable to find toplevel directory to trash %s"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Trashing on system internal mounts is not supported"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Unable to find or create trash directory %s to trash %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Unable to create trashing info file for %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Unable to trash file %s across filesystem boundaries"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Unable to trash file %s: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Unable to trash file %s"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Error creating directory %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Filesystem does not support symbolic links"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Error making symbolic link %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Error moving file %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Can’t move directory over directory"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Backup file creation failed"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Error removing target file: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Move between mounts not supported"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Could not determine the disk usage of %s: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Attribute value must be non-NULL"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "סוג המאפיין שגוי (אמור להיות מחרוזת או שגוי)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Invalid extended attribute name"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Error setting extended attribute “%s”: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (invalid encoding)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Error when getting information for file “%s”: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Error when getting information for file descriptor: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Invalid attribute type (uint32 expected)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Invalid attribute type (uint64 expected)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Invalid attribute type (byte string expected)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Cannot set permissions on symlinks"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Error setting permissions: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Error setting owner: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "symlink must be non-NULL"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Error setting symlink: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "Error setting symlink: file is not a symlink"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Extra nanoseconds %d for UNIX timestamp %lld are negative"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "UNIX timestamp %lld does not fit into 64 bits"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "UNIX timestamp %lld is outside of the range supported by Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "File name “%s” cannot be converted to UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "File “%s” cannot be opened: Windows Error %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "Error setting modification or access time for file “%s”: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Error setting modification or access time: %s"
# c-format
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "SELinux context must be non-NULL"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux is not enabled on this system"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Error setting SELinux context: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Setting attribute %s not supported"
@@ -3459,42 +3484,42 @@ msgstr "NetworkManager version too old"
msgid "Output stream doesn’t implement write"
msgstr "Output stream doesn’t implement write"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Sum of vectors passed to %s too large"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Source stream is already closed"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Unspecified proxy lookup failure"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Error resolving “%s”: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s not implemented"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Invalid domain"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "The resource at “%s” does not exist"
@@ -3504,16 +3529,16 @@ msgstr "The resource at “%s” does not exist"
msgid "The resource at “%s” failed to decompress"
msgstr "The resource at “%s” failed to decompress"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "לא ניתן לשנות את שמות קובצי המשאבים"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "The resource at “%s” is not a directory"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Input stream doesn’t implement seek"
@@ -3878,7 +3903,8 @@ msgstr "Invalid socket, initialization failed due to: %s"
msgid "Socket is already closed"
msgstr "Socket is already closed"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "Socket I/O timed out"
@@ -3887,159 +3913,159 @@ msgstr "Socket I/O timed out"
msgid "creating GSocket from fd: %s"
msgstr "creating GSocket from fd: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Unable to create socket: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Unknown family was specified"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Unknown protocol was specified"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "Cannot use datagram operations on a non-datagram socket."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr "Cannot use datagram operations on a socket with a timeout set."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "could not get local address: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "could not get remote address: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "could not listen: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Error binding to address %s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Error joining multicast group: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Error leaving multicast group: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "No support for source-specific multicast"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Unsupported socket family"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "source-specific not an IPv4 address"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Interface name too long"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Interface not found: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "No support for IPv4 source-specific multicast"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "No support for IPv6 source-specific multicast"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Error accepting connection: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Connection in progress"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Unable to get pending error: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Error receiving data: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Error sending data: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Unable to shutdown socket: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Error closing socket: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Waiting for socket condition: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Unable to send message: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Message vectors too large"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Error sending message: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage not supported on Windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Error receiving message: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Unable to read socket credentials: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials not implemented for this OS"
@@ -4161,7 +4187,7 @@ msgstr "SOCKSv5 proxy does not support provided address type."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Unknown SOCKSv5 proxy error."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "Failed to create pipe for communicating with child process (%s)"
@@ -4176,46 +4202,46 @@ msgstr "Pipes are not supported in this platform"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Can’t handle version %d of GThemedIcon encoding"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "No valid addresses were found"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Error reverse-resolving “%s”: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Error parsing DNS %s record: malformed DNS packet"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "No DNS record of the requested type for “%s”"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Temporarily unable to resolve “%s”"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Error resolving “%s”"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Malformed DNS packet"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Failed to parse DNS response for “%s”: "
@@ -4274,7 +4300,7 @@ msgstr "The password entered is incorrect."
msgid "Sending FD is not supported"
msgstr "Sending FD is not supported"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
@@ -4283,11 +4309,11 @@ msgstr[1] "‫Expecting 1 control message, got %d"
msgstr[2] "‫Expecting 1 control message, got %d"
msgstr[3] "‫Expecting 1 control message, got %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Unexpected type of ancillary data"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
@@ -4304,40 +4330,40 @@ msgstr[3] ""
"‫Expecting one fd, but got %d\n"
"‬\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Received invalid fd"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Receiving FD is not supported"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Error sending credentials: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Error checking if SO_PASSCRED is enabled for socket: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Error enabling SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Not expecting control message, but got %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Error while disabling SO_PASSCRED: %s"
@@ -4353,7 +4379,7 @@ msgstr "Error reading from file descriptor: %s"
msgid "Error closing file descriptor: %s"
msgstr "Error closing file descriptor: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Filesystem root"
@@ -4435,129 +4461,124 @@ msgstr "Run a dbus service"
msgid "Wrong args\n"
msgstr "Wrong args\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Unexpected attribute “%s” for element “%s”"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Attribute “%s” of element “%s” not found"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Unexpected tag “%s”, tag “%s” expected"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Unexpected tag “%s” inside “%s”"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Invalid date/time ‘%s’ in bookmark file"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "No valid bookmark file found in data dirs"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "A bookmark for URI “%s” already exists"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "No bookmark found for URI “%s”"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "No MIME type defined in the bookmark for URI “%s”"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "No private flag has been defined in bookmark for URI “%s”"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "No groups set in bookmark for URI “%s”"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "No application with name “%s” registered a bookmark for “%s”"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Failed to expand exec line “%s” with URI “%s”"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Unrepresentable character in conversion input"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Partial character sequence at end of input"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Cannot convert fallback “%s” to codeset “%s”"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Embedded NUL byte in conversion input"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Embedded NUL byte in conversion output"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "The URI “%s” is not an absolute URI using the “file” scheme"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "The local file URI “%s” may not include a “#”"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "The URI “%s” is invalid"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "The hostname of the URI “%s” is invalid"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "The URI “%s” contains invalidly escaped characters"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "The pathname “%s” is not an absolute path"
@@ -4980,7 +5001,7 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "Error opening directory “%s”: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
@@ -4989,72 +5010,72 @@ msgstr[1] "‫Could not allocate %lu bytes to read file “%s”"
msgstr[2] "‫Could not allocate %lu bytes to read file “%s”"
msgstr[3] "‫Could not allocate %lu bytes to read file “%s”"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Error reading file “%s”: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "File “%s” is too large"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Failed to read from file “%s”: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Failed to open file “%s”: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Failed to get attributes of file “%s”: fstat() failed: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Failed to open file “%s”: fdopen() failed: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Failed to write file “%s”: write() failed: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Failed to write file “%s”: fsync() failed: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Failed to create file “%s”: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "Existing file “%s” could not be removed: g_unlink() failed: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Template “%s” invalid, should not contain a “%s”"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Template “%s” doesn’t contain XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Failed to read the symbolic link “%s”: %s"
@@ -5080,65 +5101,65 @@ msgstr "Channel terminates in a partial character"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Can’t do a raw read in g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Valid key file could not be found in search dirs"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Not a regular file"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
msgstr ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Invalid group name: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Key file does not start with a group"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "שם המפתח שגוי: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Key file contains unsupported encoding “%s”"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Key file does not have group “%s”"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Key file does not have key “%s” in group “%s”"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "Key file contains key “%s” with value “%s” which is not UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr ""
"Key file contains key “%s” which has a value that cannot be interpreted."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5147,81 +5168,81 @@ msgstr ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
"interpreted."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Key “%s” in group “%s” has value “%s” where %s was expected"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "Key file contains escape character at end of line"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4378
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Key file contains invalid escape sequence “%s”"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4530
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Value “%s” cannot be interpreted as a number."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4544
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Integer value “%s” out of range"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Value “%s” cannot be interpreted as a float number."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4616
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Value “%s” cannot be interpreted as a boolean."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Failed to map %s%s%s%s: mmap() failed: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Failed to open file “%s”: open() failed: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Error on line %d char %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Invalid UTF-8 encoded text in name — not valid “%s”"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "“%s” is not a valid name"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "“%s” is not a valid name: “%c”"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Error on line %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5230,7 +5251,7 @@ msgstr ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
"reference (&#234; for example) — perhaps the digit is too large"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5240,23 +5261,23 @@ msgstr ""
"ampersand character without intending to start an entity — escape ampersand "
"as &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Character reference “%-.*s” does not encode a permitted character"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Entity name “%-.*s” is not known"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5264,11 +5285,11 @@ msgstr ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Document must begin with an element (e.g. <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5278,7 +5299,7 @@ msgstr ""
"element name"
# c-format
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5287,19 +5308,19 @@ msgstr ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
"“%s”"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Too many attributes in element “%s”"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
msgstr ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5310,7 +5331,7 @@ msgstr ""
"element “%s”, or optionally an attribute; perhaps you used an invalid "
"character in an attribute name"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5319,7 +5340,7 @@ msgstr ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
"giving value for attribute “%s” of element “%s”"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5328,7 +5349,7 @@ msgstr ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
"begin an element name"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5337,25 +5358,25 @@ msgstr ""
"“%s” is not a valid character following the close element name “%s”; the "
"allowed character is “>”"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Element “%s” was closed, no element is currently open"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "Element “%s” was closed, but the currently open element is “%s”"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Document was empty or contained only whitespace"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "Document ended unexpectedly just after an open angle bracket “<”"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5364,7 +5385,7 @@ msgstr ""
"Document ended unexpectedly with elements still open — “%s” was the last "
"element opened"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5373,19 +5394,19 @@ msgstr ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
"the tag <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Document ended unexpectedly inside an element name"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Document ended unexpectedly inside an attribute name"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Document ended unexpectedly inside an element-opening tag."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5393,22 +5414,22 @@ msgstr ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Document ended unexpectedly while inside an attribute value"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "Document ended unexpectedly inside the close tag for element “%s”"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Document ended unexpectedly inside the close tag for an unopened element"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr "Document ended unexpectedly inside a comment or processing instruction"
@@ -5471,184 +5492,180 @@ msgstr "Missing·argument·for·%s"
msgid "Unknown option %s"
msgstr "Unknown option %s"
-#: glib/gregex.c:462
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "corrupted object"
-#: glib/gregex.c:464
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "out of memory"
-#: glib/gregex.c:470
-msgid "backtracking limit reached"
-msgstr "backtracking limit reached"
-
-#: glib/gregex.c:481 glib/gregex.c:734 glib/gregex.c:763
+#: glib/gregex.c:497
msgid "internal error"
msgstr "internal error"
-#: glib/gregex.c:483
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "the pattern contains items not supported for partial matching"
-#: glib/gregex.c:485
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr "back references as conditions are not supported for partial matching"
-#: glib/gregex.c:491
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "recursion limit reached"
-#: glib/gregex.c:493
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "bad offset"
-#: glib/gregex.c:495
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "recursion loop"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:498
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "התבקש מצב התאמה שלא הודר עבור JIT (הרצה ללא הידור)"
-#: glib/gregex.c:502
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "unknown error"
-#: glib/gregex.c:523
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ at end of pattern"
-#: glib/gregex.c:527
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c at end of pattern"
-#: glib/gregex.c:532
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "unrecognized character following \\"
-#: glib/gregex.c:536
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "numbers out of order in {} quantifier"
-#: glib/gregex.c:540
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "number too big in {} quantifier"
-#: glib/gregex.c:544
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "missing terminating ] for character class"
-#: glib/gregex.c:548
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "invalid escape sequence in character class"
-#: glib/gregex.c:552
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "range out of order in character class"
-#: glib/gregex.c:557
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "nothing to repeat"
-#: glib/gregex.c:561
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "unrecognized character after (? or (?-"
-#: glib/gregex.c:565
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX named classes are supported only within a class"
-#: glib/gregex.c:569
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "POSIX collating elements are not supported"
-#: glib/gregex.c:575
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "missing terminating )"
-#: glib/gregex.c:579
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "reference to non-existent subpattern"
-#: glib/gregex.c:583
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "missing ) after comment"
-#: glib/gregex.c:587
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "regular expression is too large"
-#: glib/gregex.c:591
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "malformed number or name after (?("
-#: glib/gregex.c:595
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "lookbehind assertion is not fixed length"
-#: glib/gregex.c:599
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "conditional group contains more than two branches"
-#: glib/gregex.c:603
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "assertion expected after (?("
-#: glib/gregex.c:607
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "a numbered reference must not be zero"
-#: glib/gregex.c:611
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "unknown POSIX class name"
-#: glib/gregex.c:616
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "character value in \\x{...} sequence is too large"
-#: glib/gregex.c:620
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C not allowed in lookbehind assertion"
-#: glib/gregex.c:624
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "missing terminator in subpattern name"
-#: glib/gregex.c:628
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "two named subpatterns have the same name"
-#: glib/gregex.c:632
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "malformed \\P or \\p sequence"
-#: glib/gregex.c:636
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "unknown property name after \\P or \\p"
-#: glib/gregex.c:640
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "subpattern name is too long (maximum 32 characters)"
-#: glib/gregex.c:644
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "too many named subpatterns (maximum 10,000)"
-#: glib/gregex.c:648
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "octal value is greater than \\377"
-#: glib/gregex.c:652
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "DEFINE group contains more than one branch"
-#: glib/gregex.c:656
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "inconsistent NEWLINE options"
-#: glib/gregex.c:660
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5656,117 +5673,117 @@ msgstr ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
-#: glib/gregex.c:665
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
-#: glib/gregex.c:669
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) not recognized"
-#: glib/gregex.c:673
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "number is too big"
-#: glib/gregex.c:677
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "missing subpattern name after (?&"
-#: glib/gregex.c:681
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "different names for subpatterns of the same number are not allowed"
-#: glib/gregex.c:685
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) must have an argument"
-#: glib/gregex.c:689
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c must be followed by an ASCII character"
-#: glib/gregex.c:693
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr "\\k is not followed by a braced, angle-bracketed, or quoted name"
-#: glib/gregex.c:697
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N is not supported in a class"
-#: glib/gregex.c:701
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
-#: glib/gregex.c:705 glib/gregex.c:844
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "code overflow"
-#: glib/gregex.c:709
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "unrecognized character after (?P"
-#: glib/gregex.c:713
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "overran compiling workspace"
-#: glib/gregex.c:717
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "previously-checked referenced subpattern not found"
-#: glib/gregex.c:843 glib/gregex.c:1088 glib/gregex.c:2397
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Error while matching regular expression %s: %s"
-#: glib/gregex.c:1687
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "PCRE library is compiled without UTF8 support"
-#: glib/gregex.c:1695
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "PCRE library is compiled with incompatible options"
-#: glib/gregex.c:1804
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "שגיאה בהידור הביטוי הרגולרי ‚%s’ בתו %s:‏ %s"
-#: glib/gregex.c:2839
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "hexadecimal digit or “}” expected"
-#: glib/gregex.c:2855
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "hexadecimal digit expected"
-#: glib/gregex.c:2895
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "missing “<” in symbolic reference"
-#: glib/gregex.c:2904
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "unfinished symbolic reference"
-#: glib/gregex.c:2911
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "zero-length symbolic reference"
-#: glib/gregex.c:2922
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "digit expected"
-#: glib/gregex.c:2940
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "illegal symbolic reference"
-#: glib/gregex.c:3003
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "stray final “\\”"
-#: glib/gregex.c:3007
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "unknown escape sequence"
-#: glib/gregex.c:3017
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Error while parsing replacement text “%s” at char %lu: %s"
@@ -5793,136 +5810,141 @@ msgstr "Text ended before matching quote was found for %c. (The text was “%s
msgid "Text was empty (or contained only whitespace)"
msgstr "Text was empty (or contained only whitespace)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Failed to read data from child process (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Unexpected error in reading data from a child process (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Unexpected error in waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Child process exited with code %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Child process killed by signal %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Child process stopped by signal %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Child process exited abnormally"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Failed to read from child pipe (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Failed to spawn child process “%s” (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Failed to fork (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Failed to change to directory “%s” (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Failed to execute child process “%s” (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Failed to open file to remap file descriptor (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Failed to duplicate file descriptor for child process (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Failed to fork child process (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Failed to close file descriptor for child process (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Unknown error executing child process “%s”"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "Failed to read enough data from child pid pipe (%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "ארגומנט שגוי למקור מתארי קבצים (FDs)"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Failed to read data from child process"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Failed to execute child process (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Failed to dup() in child process (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Invalid program name: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Invalid string in argument vector at %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Invalid string in environment: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Invalid working directory: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Failed to execute helper program (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -5930,219 +5952,219 @@ msgstr ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
-#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3474
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Empty string is not a number"
-#: glib/gstrfuncs.c:3396
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "“%s” is not a signed number"
-#: glib/gstrfuncs.c:3406 glib/gstrfuncs.c:3510
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Number “%s” is out of bounds [%s, %s]"
-#: glib/gstrfuncs.c:3500
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "“%s” is not an unsigned number"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "Invalid %-encoding in URI"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Illegal character in URI"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Non-UTF-8 characters in URI"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Invalid IPv6 address ‘%.*s’ in URI"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Illegal encoded IP address ‘%.*s’ in URI"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Illegal internationalized hostname ‘%.*s’ in URI"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Could not parse port ‘%.*s’ in URI"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Port ‘%.*s’ in URI is out of range"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "URI ‘%s’ is not an absolute URI"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "URI ‘%s’ has no host component"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "URI is not absolute, and no base URI was provided"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "חסרים ‚=’ וערך משתנה"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "הקצאת זיכרון נכשלה"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "התו מחוץ לטווח עבור UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "רצף שגוי בקלט ההמרה"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "התו מחוץ לטווח עבור UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "ק״ב"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "מ״ב"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "ג״ב"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "ט״ב"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "פ\"ב"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "א״ב"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "קי״ב"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "מבי״ב"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "גיב״ב"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "טבי״ב"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "פבי״ב"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "אק״ב"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "ק״ס"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "מ״ס"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "ג״ס"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "ט״ס"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "פ״ס"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "א״ס"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "קי״ס"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "מבי״ס"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "גיב״ס"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "אבי״ס"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "פבי״ס"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "אק״ס"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "בית"
@@ -6150,7 +6172,7 @@ msgstr[1] "בתים"
msgstr[2] "בתים"
msgstr[3] "בתים"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "סיבית"
@@ -6160,7 +6182,7 @@ msgstr[3] "סיביות"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6168,7 +6190,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6176,7 +6198,7 @@ msgstr "‏‎‏%u ‏%s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6185,14 +6207,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "‏%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6202,7 +6224,7 @@ msgstr[2] "‫%s בתים"
msgstr[3] "‫%s בתים"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
@@ -6211,7 +6233,7 @@ msgstr[1] "שתי סיביות"
msgstr[2] "‫%s סיביות"
msgstr[3] "‫%s סיביות"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6225,39 +6247,45 @@ msgstr[3] "‫%u בתים"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f ק״ב"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f מ״ב"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f ג״ב"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f ט״ב"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f פ״ב"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f א״ב"
#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "edit name: %s\n"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "The local file URI “%s” may not include a “#”"
+
+#~ msgid "backtracking limit reached"
+#~ msgstr "backtracking limit reached"
+
+#~ msgid "GApplication options"
+#~ msgstr "אפשרויות GApplication"
#~ msgid "internal error or corrupted object"
#~ msgstr "internal error or corrupted object"
diff --git a/po/hu.po b/po/hu.po
index d21d76be5..efb94d2b4 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -1,68 +1,66 @@
# Hungarian translation for glib.
-# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022. Free Software Foundation, Inc.
+# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Free Software Foundation, Inc.
# This file is distributed under the same license as the glib package.
#
# Szabolcs Varga <shirokuma at shirokuma dot hu>, 2005.
# Gabor Kelemen <kelemeng at gnome dot hu>, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017.
-# Balázs Úr <ur.balazs at fsf dot hu>, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021, 2022.
+# Balázs Úr <ur.balazs at fsf dot hu>, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021, 2022, 2023.
# Balázs Meskó <mesko.balazs at fsf dot hu>, 2017, 2018, 2020, 2021.
msgid ""
msgstr ""
"Project-Id-Version: glib master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-29 08:50+0000\n"
-"PO-Revision-Date: 2022-09-01 01:43+0200\n"
+"POT-Creation-Date: 2023-09-02 13:39+0000\n"
+"PO-Revision-Date: 2023-09-05 20:34+0200\n"
"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n"
-"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
+"Language-Team: Hungarian <openscope at fsf dot hu>\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 19.12.3\n"
+"X-Generator: Lokalize 23.04.3\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Az alapértelmezett alkalmazások beállítása még nem támogatott"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Az alkalmazás legutóbb használtként beállítása egy adott típushoz még nem "
"támogatott"
-#: gio/gappinfo.c:810
+#: gio/gappinfo.c:814
#, c-format
-#| msgid "No default applications for “%s”\n"
msgid "Failed to find default application for content type ‘%s’"
msgstr ""
"Nem sikerült alapértelmezett alkalmazást találni a(z) „%s” tartalomtípushoz"
-#: gio/gappinfo.c:870
+#: gio/gappinfo.c:874
#, c-format
-#| msgid "No default applications for “%s”\n"
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Nem sikerült alapértelmezett alkalmazást találni a(z) „%s” URI-sémához"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "GApplication kapcsolói"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "GApplication kapcsolói:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "A GApplication kapcsolóinak megjelenítése"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
"Belépés GApplication szolgáltatásmódba (használja D-Bus "
"szolgáltatásfájlokból)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Alkalmazások azonosítójának felülbírálása"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "A futó példány cseréje"
@@ -143,7 +141,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Alkalmazásazonosító D-Bus formátumban (például: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FÁJL"
@@ -240,11 +238,11 @@ msgstr "nem sikerült kapcsolódni a D-Bushoz: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "hiba %s üzenet küldésekor az alkalmazásnak: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "a műveletnevet meg kell adni az alkalmazásazonosító után\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -254,25 +252,25 @@ msgstr ""
"a műveletnevek csak betűket, számokat, „-” és „.” karaktereket "
"tartalmazhatnak\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "hiba a műveletparaméter feldolgozásakor: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "a műveletek legfeljebb egy paramétert várnak\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "a list-actions parancs csak az alkalmazásazonosítót várja"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "nem található desktop fájl a(z) %s alkalmazáshoz\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -282,9 +280,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Túl nagy számérték került átadásra ennek: %s"
@@ -298,8 +296,8 @@ msgstr "Az alap adatfolyam nem támogatja a pozicionálást"
msgid "Cannot truncate GBufferedInputStream"
msgstr "A GBufferedInputStream nem csonkítható"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Az adatfolyam már le van zárva"
@@ -307,7 +305,7 @@ msgstr "Az adatfolyam már le van zárva"
msgid "Truncate not supported on base stream"
msgstr "Az alap adatfolyam csonkítása nem engedélyezett"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -326,28 +324,28 @@ msgid "Not enough space in destination"
msgstr "Nincs elég hely a célon"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Érvénytelen bájtsorrend az átalakítás bemenetében"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Hiba az átalakításkor: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "A megszakítható előkészítés nem támogatott"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "A(z) „%s” és „%s” karakterkészletek közötti átalakítás nem támogatott"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr ""
@@ -392,17 +390,17 @@ msgstr "A hitelesítési adatok hamisítása nincs megvalósítva ezen a rendsze
msgid "Unexpected early end-of-stream"
msgstr "Váratlan korai adatfolyam vége"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Nem támogatott „%s” kulcs a(z) „%s” címbejegyzésben"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Értelmetlen kulcs-érték pár kombináció a(z) „%s” címbejegyzésben"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -411,7 +409,7 @@ msgstr ""
"A(z) „%s” cím érvénytelen (csak az útvonal, könyvtár, tmp könyvtár vagy "
"absztrakt kulcsok egyike lehet)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -539,7 +537,7 @@ msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
"Nem határozható meg a munkamenetbusz címe (nincs megvalósítva erre az OS-re)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -548,7 +546,7 @@ msgstr ""
"Nem határozható meg a busz címe a DBUS_STARTER_BUS_TYPE környezeti "
"változóból – ismeretlen „%s” érték"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -556,18 +554,19 @@ msgstr ""
"Nem határozható meg a busz címe, mivel a DBUS_STARTER_BUS_TYPE környezeti "
"változó nincs beállítva"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Ismeretlen busztípus: %d"
#: gio/gdbusauth.c:294
msgid "Unexpected lack of content trying to read a line"
-msgstr "A tartalom váratlanul hiányzik a sor olvasásakor"
+msgstr "A tartalom váratlanul hiányzik egy sor olvasásának kísérletekor"
#: gio/gdbusauth.c:338
msgid "Unexpected lack of content trying to (safely) read a line"
-msgstr "A tartalom váratlanul hiányzik a sor (biztonságos) olvasásakor"
+msgstr ""
+"A tartalom váratlanul hiányzik egy sor (biztonságos) olvasásának kísérletekor"
#: gio/gdbusauth.c:482
#, c-format
@@ -577,23 +576,27 @@ msgstr ""
"Minden elérhető hitelesítési mechanizmus kimerítve (próbálva: %s, elérhető: "
"%s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "A tartalom váratlanul hiányzik egy bájt olvasásának kísérletekor"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr ""
"A felhasználói azonosítóknak ugyanannak kell lenniük a partnernél és a "
"kiszolgálónál"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr ""
"Megszakítva a GDBusAuthObserver::authorize-authenticated-peer használatával"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Hiba a(z) „%s” könyvtár információinak lekérésekor: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -601,32 +604,32 @@ msgstr ""
"A(z) „%s” könyvtár jogosultságai rosszul formázottak. A várt 0700 mód "
"helyett 0%o érkezett."
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Hiba a(z) %s könyvtár létrehozásakor: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "A művelet nem támogatott"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Hiba a(z) „%s” kulcstartó megnyitásakor olvasásra: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "A(z) „%2$s” kulcstartó „%3$s” tartalmú „%1$d”. sora rosszul formázott"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -634,7 +637,7 @@ msgstr ""
"A(z) „%2$s” kulcstartó „%3$s” tartalmú „%1$d”. sorának első egysége rosszul "
"formázott"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -642,56 +645,56 @@ msgstr ""
"A(z) „%2$s” kulcstartó „%3$s” tartalmú „%1$d”. sorának második egysége "
"rosszul formázott"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Nem található %d azonosítójú süti a kulcstartóban itt: „%s ”"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Hiba a(z) „%s” zárolási fájl létrehozásakor: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Hiba az elavult „%s” zárolásfájl törlésekor: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Hiba a (törölt) „%s” zárolási fájl lezárásakor: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Hiba a(z) „%s” zárolási fájl törlésekor: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Hiba a(z) „%s” kulcstartó írásra való megnyitásakor: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Ezen kívül a(z) „%s” zárolásának feloldása is meghiúsult: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "A kapcsolat le van zárva"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Az időkorlát elérve"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Nem támogatott jelzők találhatók a kliensoldali kapcsolat létrehozásakor"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -699,105 +702,117 @@ msgstr ""
"Nincs „org.freedesktop.DBus.Properties” interfész a(z) %s útvonalon lévő "
"objektumon"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Nincs „%s” tulajdonság"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "A(z) „%s” tulajdonság nem olvasható"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "A(z) „%s” tulajdonság nem írható"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Hiba a(z) „%s” tulajdonság beállításakor: a várt „%s” típus helyett „%s” "
"érkezett"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Nincs ilyen interfész: „%s”"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Nincs „%s” interfész a(z) %s útvonalon lévő objektumon"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Nincs „%s” metódus"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Az üzenet „%s” típusa nem felel meg a várt „%s” típusnak"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Már exportálva van egy objektum a(z) %s interfészhez itt: %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Nem sikerült lekérni a tulajdonságot: %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Nem sikerült beállítani a tulajdonságot: %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "A(z) „%s” metódus a(z) „%s” típust adta vissza a várt „%s” helyett"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "A(z) „%s” metódus nem létezik a(z) „%s” interfészen „%s” aláírással"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Egy részfa már exportálva van a következőhöz: %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Az objektum nem létezik a(z) „%s” útvonalon"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "a típus érvénytelen"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "METHOD_CALL üzenet: a PATH vagy MEMBER fejlécmező hiányzik"
+#: gio/gdbusmessage.c:1324
+#| msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"METHOD_CALL üzenet: a PATH vagy MEMBER fejlécmező hiányzik vagy érvénytelen"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "METHOD_RETURN üzenet: a REPLY_SERIAL fejlécmező hiányzik"
+#: gio/gdbusmessage.c:1340
+#| msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"METHOD_RETURN üzenet: a REPLY_SERIAL fejlécmező hiányzik vagy érvénytelen"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "ERROR üzenet: a REPLY_SERIAL vagy ERROR_NAME fejlécmező hiányzik"
+#: gio/gdbusmessage.c:1360
+#| msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"ERROR üzenet: a REPLY_SERIAL vagy ERROR_NAME fejlécmező hiányzik vagy"
+" érvénytelen"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "SIGNAL üzenet: a PATH, INTERFACE vagy MEMBER fejlécmező hiányzik"
+#: gio/gdbusmessage.c:1384
+#| msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"SIGNAL üzenet: a PATH, INTERFACE vagy MEMBER fejlécmező hiányzik vagy"
+" érvénytelen"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -805,7 +820,7 @@ msgstr ""
"SIGNAL üzenet: a PATH fejlécmező a fenntartott /org/freedesktop/DBus/Local "
"értéket használja"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -813,19 +828,19 @@ msgstr ""
"SIGNAL üzenet: az INTERFACE fejlécmező a fenntartott value org.freedesktop."
"DBus.Local értéket használja"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "Az olvasandó %lu bájt helyett csak %lu érkezett"
msgstr[1] "Az olvasandó %lu bájt helyett csak %lu érkezett"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "A(z) „%s” karakterlánc után várt NULL bájt helyett %d bájt található"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -835,21 +850,21 @@ msgstr ""
"a(z) %d bájteltolásnál (a karakterlánc hossza: %d). Az érvényes UTF-8 "
"karakterlánc az adott pontig: „%s”"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Az érték túl mélyen van egymásba ágyazva"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "A feldolgozott „%s” érték nem érvényes D-Bus objektumútvonal"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "A feldolgozott „%s” érték nem érvényes D-Bus aláírás"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -860,7 +875,7 @@ msgstr[0] ""
msgstr[1] ""
"%u bájt hosszú tömb található. A maximális hossz 2<<26 bájt (64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -869,85 +884,85 @@ msgstr ""
"Egy „a%c” típusú tömb található, az elvárt hossz a(z) %u bájt többszöröse, "
"de %u bájt hosszú található"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Üres szerkezetek (rekordok) nem engedélyezettek a D-Buson"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "A változat feldolgozott „%s” értéke nem érvényes D-Bus aláírás"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr ""
"Hiba a(z) „%s” típusú GVariant visszafejtésekor a D-Bus átviteli formátumból"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
"0x%02x"
msgstr ""
-"Érvénytelen bájtsorrend-érték. A várt 0x6c („l”) vagy 0x42 („B”) helyett 0x"
-"%02x érték található"
+"Érvénytelen bájtsorrend-érték. A várt 0x6c („l”) vagy 0x42 („B”) helyett "
+"0x%02x érték található"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Érvénytelen fő protokollverzió. A várt 1 helyett %d található"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Aláírásfejléc található, de nem aláírás típusú"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr "Aláírásfejléc található „%s” aláírással, de az üzenettörzs üres"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "A feldolgozott „%s” érték nem érvényes D-Bus aláírás (a törzshöz)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
msgstr[0] "Nincs aláírásfejléc az üzenetben, de az üzenettörzs %u bájt"
msgstr[1] "Nincs aláírásfejléc az üzenetben, de az üzenettörzs %u bájt"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Nem fejthető sorba az üzenet: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr ""
"Hiba a(z) „%s” típusú GVariant sorbafejtésekor a D-Bus átviteli formátumba"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
"Az üzenetben található fájlleírók száma (%d) eltér a fejléc mezőtől (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Az üzenet nem fejthető sorba: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "Az üzenettörzs „%s” aláírással rendelkezik, de nincs aláírásfejléc"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -956,52 +971,52 @@ msgstr ""
"Az üzenettörzs „%s” típusaláírással rendelkezik, de az aláírásfejlécben lévő "
"aláírás: „%s”"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Az üzenettörzs üres, de az aláírásfejlécben lévő aláírás: „%s”"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Hiba került visszaadásra a(z) „%s” típusú törzzsel"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Hiba került visszaadásra az üres törzzsel"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Az ablak bezárásához nyomjon le egy gombot)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "A munkamenet D-Bus nem fut, és az automatikus indítás sikertelen"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Nem kérhető le hardverprofil: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "A(z) %s vagy a(z) %s nem tölthető be: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Hiba a StartServiceByName hívásakor ehhez: %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Váratlan válasz (%d) a StartServiceByName(\"%s\") metódustól"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1010,25 +1025,25 @@ msgstr ""
"A metódus nem hívható; a proxy a jól ismert %s névhez tartozik tulajdonos "
"nélkül, és a proxy a G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START jelzővel készült"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Az absztrakt névtér nem támogatott"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Kiszolgáló létrehozásakor nem adható meg az ideiglenes fájl"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Hiba az ideiglenes fájl („%s”) írásakor: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "A(z) „%s” karakterlánc nem érvényes D-Bus GUID"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Nem figyelhető a nem támogatott „%s” szállítás"
@@ -1055,14 +1070,14 @@ msgstr ""
"\n"
"Az egyes parancsok súgója a „%s PARANCS --help” kiadásával érhető el.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Hiba: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Hiba a betekintési XML feldolgozásakor: %s\n"
@@ -1072,43 +1087,43 @@ msgstr "Hiba a betekintési XML feldolgozásakor: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Hiba: a(z) %s nem érvényes név\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Hiba: a(z) %s nem érvényes objektumútvonal\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Csatlakozás a rendszerbuszhoz"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Csatlakozás a munkamenetbuszhoz"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Csatlakozás a megadott D-Bus címhez"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Kapcsolatvégpont beállításai:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "A kapcsolat végpontját megadó beállítások"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Nincs megadva kapcsolatvégpont"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Több kapcsolatvégpontot adott meg"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
@@ -1116,7 +1131,7 @@ msgstr ""
"Figyelmeztetés: a betekintési adatok szerint a(z) „%s” interfész nem "
"létezik\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1125,164 +1140,164 @@ msgstr ""
"Figyelmeztetés: a betekintési adatok szerint a(z) „%2$s” interfészen nem "
"létezik „%1$s” metódus\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "A szignál elhagyható célja (egyedi név)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Szignál kibocsátása ezen az objektumútvonalon"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Szignál és interfész neve"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Szignál kibocsátása."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Hiba a csatlakozáskor: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Hiba: a(z) %s nem érvényes egyedi busznév.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Hiba: az objektumútvonal nincs megadva\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Hiba: a szignálnév nincs megadva\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Hiba: a szignálnév („%s”) érvénytelen\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Hiba: a(z) %s nem érvényes interfésznév\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Hiba: a(z) %s nem érvényes tagnév\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Hiba a(z) %d. paraméter feldolgozásakor: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Hiba a kapcsolat kiürítésekor: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "A cél neve a metódushíváshoz"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Objektum útvonala a metódushíváshoz"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Metódus és interfész neve"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Időkorlát másodpercben"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Interaktív engedélyezés bekapcsolása"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Metódus hívása távoli objektumon."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Hiba: a cél nincs megadva\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Hiba: a(z) %s nem érvényes busznév\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Hiba: a metódusnév nincs megadva\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Hiba: a metódusnév („%s”) érvénytelen\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Hiba a(z) „%2$s” típusú %1$d. paraméter feldolgozásakor: %3$s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Hiba a(z) „%d” leíró hozzáadásakor: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "A cél neve a betekintéshez"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Az objektumútvonal a betekintéshez"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "XML kiírása"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Betekintés gyermekekbe"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Csak a tulajdonságok kiírása"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Betekintés távoli objektumba."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Megfigyelendő cél neve"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Megfigyelendő objektumútvonal"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Távoli objektum megfigyelése."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Hiba: nem figyelhető meg a nem üzenetbusz kapcsolat\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Az aktiválandó szolgáltatás, mielőtt a másikra várna (ismert név)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1290,69 +1305,74 @@ msgstr ""
"Az időtúllépés, mielőtt hibával kilépne (másodpercben); 0, ha nincs "
"időtúllépés (alapértelmezett)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[KAPCSOLÓ…] BUSZNÉV"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Várakozás egy busznévre."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Hiba: az objektumútvonal nincs megadva.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Hiba: az objektumútvonal nincs megadva.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Hiba: Túl sok argumentum.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Hiba: a(z) %s nem érvényes busznév\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Nincs felhatalmazva a hibakeresési beállítások megváltoztatására"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5112
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Névtelen"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "A desktop fájl nem adta meg az Exec mezőt"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Nem található az alkalmazáshoz szükséges terminál"
-#: gio/gdesktopappinfo.c:3630
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "A(z) „%s” program nem található a $PATH értékében"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
"Nem hozható létre a(z) %s felhasználói alkalmazáskonfigurációs mappa: %s"
-#: gio/gdesktopappinfo.c:3634
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Nem hozható létre a(z) %s felhasználói MIME konfigurációs mappa: %s"
-#: gio/gdesktopappinfo.c:3876 gio/gdesktopappinfo.c:3900
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Az alkalmazásinformációkból hiányzik az azonosító"
-#: gio/gdesktopappinfo.c:4136
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Nem hozható létre a felhasználói desktop fájl (%s)"
-#: gio/gdesktopappinfo.c:4272
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "%s egyéni meghatározása"
@@ -1422,79 +1442,83 @@ msgstr "Egy GEmblem kellene a GEmblemedIconhoz"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "A tartalmazó csatolás nem létezik"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Nem lehet a könyvtárra másolni"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "A könyvtár nem másolható könyvtárba"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "A célfájl létezik"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "A könyvtár nem másolható rekurzívan"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "A fájlillesztés nem támogatott"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Fájltartomány másolása nem támogatott"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Hiba a fájl illesztésekor: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "A fájlillesztés nem támogatott"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "A csatolások közti másolás (reflink/clone) nem támogatott"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "A másolás (reflink/clone) nem támogatott vagy érvénytelen"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "A másolás (reflink/clone) nem támogatott vagy nem működött"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "A speciális fájl nem másolható"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Érvénytelen szimbolikus link érték került megadásra"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "A szimbolikus linkek használata nem támogatott"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "A Kuka nem támogatott"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "A fájlnevek nem tartalmazhatnak „%c” karaktert"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
-#| msgid "Failed to change to directory “%s” (%s)"
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Nem sikerült átmeneti könyvtárat létrehozni a(z) „%s” sablonhoz: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "a kötet nem valósítja meg a csatolást"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Nincs alkalmazás regisztrálva a fájl kezeléséhez"
@@ -1503,11 +1527,11 @@ msgid "Enumerator is closed"
msgstr "Az enumerátor le van zárva"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "A fájlenumerátor hátralévő művelettel rendelkezik"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "A fájlenumerátor már le van zárva"
@@ -1520,27 +1544,27 @@ msgstr "A GFileIcon kódolás %d. verziója nem kezelhető"
msgid "Malformed input data for GFileIcon"
msgstr "A GFileIcon bemeneti adatai rosszul formáltak"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Az adatfolyam nem támogatja a query_info-t"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Az adatfolyam nem támogatja a pozicionálást"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "A bemeneti adatfolyam csonkítása nem engedélyezett"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Az adatfolyam csonkítása nem engedélyezett"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Érvénytelen gépnév"
@@ -1573,38 +1597,38 @@ msgstr "A HTTP proxy válasza túl nagy"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "A HTTP proxykiszolgáló váratlanul lezárta a kapcsolatot."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "A jelsorok száma hibás (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Nincs típus az osztálynévhez: %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "A(z) %s típus nem valósítja meg a GIcon interfészt"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "A típus (%s) nem tartalmaz osztályokat"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Rosszul formált verziószám: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr ""
"A(z) %s típus nem valósítja meg a from_tokens() függvényt a GIcon interfészen"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Az ikonkódolás megadott verziója nem kezelhető"
@@ -1645,7 +1669,7 @@ msgstr "A bemeneti adatfolyam nem valósítja meg az olvasást"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Az adatfolyam hátralévő művelettel rendelkezik"
@@ -1751,12 +1775,12 @@ msgid "Error writing to stdout"
msgstr "Hiba a szabványos kimenetre íráskor"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "HELY"
@@ -1774,8 +1798,8 @@ msgstr ""
"fájlok helyett GIO helyeket használ: megadható például helyként az\n"
"smb://kiszolgáló/erőforrás/fájl.txt."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Nincsenek megadva helyek"
@@ -1871,57 +1895,64 @@ msgstr "Ne kövesse a szimbolikus linkeket"
msgid "attributes:\n"
msgstr "attribútumok:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "megjelenített név: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "szerkeszthető név: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "név: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "típus: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "méret: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "rejtett\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "URI: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "helyi útvonal: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "unix csatolás: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Beállítható attribútumok:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Írható attribútumnévterek:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Információk megjelenítése helyekről."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1987,11 +2018,11 @@ msgstr "Megjelenített nevek kiírása"
msgid "Print full URIs"
msgstr "Teljes URI-k kiírása"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "A helyek tartalmának felsorolása."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2190,19 +2221,19 @@ msgstr "TCRYPT rejtett kötet csatolása"
msgid "Mount a TCRYPT system volume"
msgstr "TCRYPT rendszerkötet csatolása"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Névtelen hozzáférés megtagadva"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Nincs meghajtó az eszközfájlhoz"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Nincs kötet a megadott azonosítóhoz"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "A helyek csatolása vagy leválasztása."
@@ -2322,7 +2353,6 @@ msgid "TYPE"
msgstr "Típus"
#: gio/gio-tool-set.c:38
-#| msgid "Set a file attribute"
msgid "Unset given attribute"
msgstr "A megadott attribútum beállításának törlése"
@@ -2404,11 +2434,11 @@ msgstr "A megadott hely nem ezzel kezdődik: trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Szimbolikus linkek, csatolások és indítóikonok követése"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Könyvtárak tartalmának felsorolása fa-szerű formátumban."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "<%s> elem nem engedélyezett ezen belül: <%s>"
@@ -2465,7 +2495,7 @@ msgstr "Hiba a fájl tömörítésekor: %s"
msgid "text may not appear inside <%s>"
msgstr "nem jelenhet meg szöveg ezen belül: <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "A programverzió megjelenítése és kilépés"
@@ -2481,8 +2511,8 @@ msgstr ""
"A FILE-ban megadott fájlok olvasása ebből a könyvtárból (alapértelmezett: "
"aktuális könyvtár)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "KÖNYVTÁR"
@@ -2536,7 +2566,7 @@ msgstr "Az előállított forráskódhoz használt C azonosító neve"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "A cél C fordító (alapértelmezett: a CC környezeti változó)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2546,121 +2576,121 @@ msgstr ""
"Az erőforrás-specifikációs fájlok kiterjesztése .gresource.xml,\n"
"az erőforrásfájl kiterjesztése pedig .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Pontosan egy fájlnevet kell megadnia\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "az álnévnek legalább 2 karakternek kell lennie"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Érvénytelen számérték"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> már meg van adva"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' már meg van adva"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "a jelzők értékeinek legfeljebb 1 bitje lehet beállítva"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> legalább egy <value> címkét kell tartalmazzon"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> nincs a megadott tartományon belül"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> nem a megadott felsorolt típus érvényes tagja"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> nem a megadott jelző típusú karakterláncot tartalmaz"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> nem a <choices> közti karakterláncot tartalmaz"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> már meg van adva ehhez a kulcshoz"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> nem engedélyezett ezen típusú kulcshoz: „%s”"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "<range> megadott minimuma nagyobb a maximumánál"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "nem támogatott lokalizációs kategória: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n kérve, de nincs megadva gettext tartomány"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "fordítási kontextus megadva egy lokalizáció nélküli értékhez"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Nem sikerült feldolgozni a(z) „%s” típusú <default> értéket: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr "a <choices> nem adható meg felsorolás típusúként megjelölt kulcsokhoz"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> már meg van adva ehhez a kulcshoz"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> nem engedélyezett ezen típusú kulcshoz: „%s”"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> már meg van adva"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> legalább egy <choice> címkét kell tartalmazzon"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> már meg van adva ehhez a kulcshoz"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2668,7 +2698,7 @@ msgstr ""
"<aliases> csak felsorolás vagy jelző típusú kulcsokhoz, vagy <choices> után "
"adható meg"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2676,43 +2706,43 @@ msgid ""
msgstr ""
"<alias value='%s'/> van megadva, miközben „%s” már a felsorolás típus tagja"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"<alias value='%s'/> van megadva, miközben már meg van adva <choice "
"value='%s'/>"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> már meg van adva"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "„%s” álnév célja nem felsorolás típusban van"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "„%s” álnév célja nem <choices> címkében van"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> legalább egy <alias> címkét kell tartalmazzon"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Az üres nevek nem engedélyezettek"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Érvénytelen név („%s”): a neveknek kisbetűvel kell kezdődniük"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2721,37 +2751,37 @@ msgstr ""
"Érvénytelen név („%s”): érvénytelen karakter: „%c”. Csak kisbetűk, számok és "
"kötőjel („-”) engedélyezettek"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr ""
"Érvénytelen név („%s”): két egymást követő kötőjel („--”) nem engedélyezett"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Érvénytelen név („%s”): az utolsó karakter nem lehet kötőjel („-”)"
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Érvénytelen név („%s”): a maximális hossz 1024 karakter"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> már meg van adva"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Nem adhatók kulcsok „list-of” sémához"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> már meg van adva"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2760,7 +2790,7 @@ msgstr ""
"<key name='%s'> leárnyékolja ezt: <key name='%s'> ebben: <schema id='%s'>; "
"az érték módosításához használja az <override> címkét"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2768,63 +2798,63 @@ msgid ""
msgstr ""
"A <key> attribútumaként csak a „type”, „enum” vagy „flags” egyike adható meg"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> (még) nincs megadva."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Érvénytelen GVariant típuskarakterlánc: „%s”"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "Az <override> megadva, de a séma nem terjeszt ki semmit"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Nincs felülírandó <key name='%s'>"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> már megadva"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> már megadva"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "A <schema id='%s'> a még nem létező „%s” sémát terjeszti ki"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "A <schema id='%s'> a még nem létező „%s” séma listája"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Nem lehet séma listája útvonallal"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Nem terjeszthet ki sémát útvonallal"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
"a <schema id='%s'> lista a nem lista <schema id='%s'> sémát terjeszti ki"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2833,18 +2863,18 @@ msgstr ""
"A <schema id='%s' list-of='%s'> kiterjeszti ezt: <schema id='%s' list-"
"of='%s'>, de „%s” nem terjeszti ki ezt: „%s”"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr ""
"Ha meg van adva útvonal, akkor osztásjellel kell kezdődnie és végződnie"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "A lista útvonalának „:/” karakterekkel kell végződnie"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2853,49 +2883,49 @@ msgstr ""
"Figyelmeztetés: „%s” sémához „%s” útvonal tartozik. Az „/apps/”, \"/"
"desktop/” vagy „/system/” kezdetű útvonalak elavultak."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> már meg van adva"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Csak egy <%s> elem engedélyezett ezen belül: <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "<%s> elem nem engedélyezett a felső szinten"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "A <default> elem kötelező a <key>-ben"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Nem jelenhet meg szöveg ezen belül: <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Figyelmeztetés: nem definiált hivatkozás erre: <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "a --strict meg lett adva, kilépés."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Ez az egész fájl figyelmen kívül marad."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Fájl figyelmen kívül hagyása."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2904,7 +2934,7 @@ msgstr ""
"Nincs „%s” kulcs a(z) „%s” sémában a(z) „%s” felülbírálási fájlban megadott "
"módon. Felülbírálás figyelmen kívül hagyása ennél a kulcsnál."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2913,7 +2943,7 @@ msgstr ""
"Nincs „%s” kulcs a(z) „%s” sémában a(z) „%s” felülbírálási fájlban megadott "
"módon és --strict lett megadva. Kilépés."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2923,7 +2953,7 @@ msgstr ""
"esetén a(z) „%s” sémában („%s” fájl felülírás). Felülbírálás figyelmen kívül "
"hagyása ennél a kulcsnál."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2933,7 +2963,7 @@ msgstr ""
"esetén a(z) „%s” sémában („%s” fájl felülírás) és --strict lett megadva. "
"Kilépés."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2943,7 +2973,7 @@ msgstr ""
"felülbírálási fájlban megadott módon: %s. Felülbírálás figyelmen kívül "
"hagyása ennél a kulcsnál."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2952,7 +2982,7 @@ msgstr ""
"Hiba a(z) „%s” kulcs feldolgozásakor a(z) „%s” sémában a(z) „%s” "
"felülbírálási fájlban megadott módon: %s. A --strict meg lett adva. Kilépés."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2962,7 +2992,7 @@ msgstr ""
"fájlban a sémában megadott tartományon kívül esik. Felülbírálás figyelmen "
"kívül hagyása ennél a kulcsnál."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2972,7 +3002,7 @@ msgstr ""
"fájlban a sémában megadott tartományon kívül esik és a --strict lett "
"megadva. Kilépés."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2982,7 +3012,7 @@ msgstr ""
"fájlban nincs az érvényes lehetőségek listájában. Felülbírálás figyelmen "
"kívül hagyása ennél a kulcsnál."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2992,23 +3022,23 @@ msgstr ""
"fájlban nincs az érvényes lehetőségek listájában és a --strict lett megadva. "
"Kilépés."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "A gschemas.compiled fájl tárolási helye"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Megszakítás a sémák bármely hibája esetén"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Ne írja ki a gschema.compiled fájlt"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Ne kényszerítse ki a kulcsnévmegszorításokat"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3018,24 +3048,24 @@ msgstr ""
"A sémafájloknak .gschema.xml kiterjesztéssel kell rendelkezniük,\n"
"és a gyorsítótárfájl neve gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Pontosan egy könyvtárnevet kell megadnia"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Nem találhatók sémafájlok: nincs mit tenni."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "Nem találhatók sémafájlok: meglévő kimeneti fájl eltávolítva."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Érvénytelen fájlnév: %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Hiba a(z) %s fájlrendszer-információinak lekérésekor: %s"
@@ -3044,263 +3074,262 @@ msgstr "Hiba a(z) %s fájlrendszer-információinak lekérésekor: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "A(z) %s fájlt tartalmazó csatolás nem található"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Nem nevezhető át a gyökérkönyvtár"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Hiba a(z) %s fájl átnevezésekor: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "A fájl nem nevezhető át, a fájlnév már létezik"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Érvénytelen fájlnév"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Hiba a(z) %s fájl megnyitásakor: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Hiba a(z) %s fájl eltávolításakor: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Hiba a(z) %s fájl Kukába dobásakor: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Nem sikerült létrehozni a(z) %s Kuka könyvtárat: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Nem található a felső szintű könyvtár a(z) %s kidobásához"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "A rendszer belső csatolásain a Kukába dobás nem támogatott"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr ""
"Nem található vagy nem hozható létre a(z) %s Kuka könyvtár a(z) %s "
"kidobásához"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Nem sikerült létrehozni a(z) %s kukainformációs fájlját: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Nem lehet fájlrendszer-határokon át Kukába dobni a(z) %s fájlt"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Nem lehet a Kukába dobni a(z) %s fájlt: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Nem lehet a Kukába dobni a(z) %s fájlt"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Hiba a(z) %s könyvtár létrehozásakor: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "A fájlrendszer nem támogatja a szimbolikus linkeket"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Hiba a(z) %s szimbolikus link létrehozásakor: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Hiba a(z) %s fájl áthelyezésekor: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "A könyvtár nem helyezhető át könyvtárba"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "A mentési fájl létrehozása meghiúsult"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Hiba a célfájl eltávolításakor: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "A csatolások közti áthelyezés nem támogatott"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Nem lehet meghatározni %s lemezhasználatát: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Az attribútum értéke nem lehet NULL"
-#: gio/glocalfileinfo.c:782
-#| msgid "Invalid attribute type (string expected)"
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr ""
"Érvénytelen attribútumtípus (a várt karakterlánc vagy érvénytelen helyett)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Érvénytelen kiterjesztett attribútumnév"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Hiba a(z) „%s” kiterjesztett attribútum beállításakor: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (érvénytelen kódolás)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Hiba a(z) „%s” fájl információinak lekérésekor: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Hiba a fájlleíró információinak lekérésekor: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Érvénytelen attribútumtípus (a várt uint32 helyett)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Érvénytelen attribútumtípus (a várt uint64 helyett)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Érvénytelen attribútumtípus (a várt bájtkarakterlánc helyett)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Nem állíthatók be a szimbolikus linkek jogosultságai"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Hiba a jogosultságok beállításakor: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Hiba a tulajdonos beállításakor: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "a szimbolikus link nem lehet NULL"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Hiba a szimbolikus link beállításakor: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "Hiba a szimbolikus link beállításakor: a fájl nem szimbolikus link"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
"A(z) %2$lld UNIX időbélyeghez tartozó további %1$d nanoszekundum negatív"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"A(z) %2$lld UNIX időbélyeghez tartozó további %1$d nanoszekundum eléri az 1 "
"másodpercet"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "A(z) %lld UNIX időbélyeg nem fér el 64 biten"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"A(z) %lld UNIX időbélyeg kívül esik a Windows által támogatott tartományon"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "A(z) „%s” fájlnév nem alakítható át UTF-16-as kódolásúra"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "A(z) „%s” fájl nem nyitható meg: Windows hiba %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
"Hiba a(z) „%s” fájl módosítási vagy hozzáférési idejének beállításakor: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Hiba a módosítási vagy hozzáférési idő beállításakor: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "A SELinux környezet nem lehet NULL"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "A SELinux nem engedélyezett ezen rendszeren"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Hiba a SELinux környezet beállításakor: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "A(z) %s attribútum beállítása nem támogatott"
@@ -3347,13 +3376,13 @@ msgstr "Hiba a mentés létrehozásakor: %s"
msgid "Error renaming temporary file: %s"
msgstr "Hiba az ideiglenes fájl átnézésekor: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Hiba a fájl csonkításakor: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Hiba a(z) %s fájl megnyitásakor: %s"
@@ -3370,7 +3399,7 @@ msgstr "A célfájl nem szabályos fájl"
msgid "The file was externally modified"
msgstr "A fájlt külső program módosította"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Hiba a régi fájl eltávolításakor: %s"
@@ -3505,42 +3534,42 @@ msgstr "A Hálózatkezelő verziója túl régi"
msgid "Output stream doesn’t implement write"
msgstr "A kimeneti adatfolyam nem valósítja meg az írást"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "A(z) %s részére átadott vektorok összege túl nagy"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "A forrás adatfolyam már le van zárva"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Meghatározatlan proxykeresési hiba"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Hiba a(z) „%s” feloldásakor: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "A(z) %s nincs megvalósítva"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Érvénytelen tartomány"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Az erőforrás nem létezik itt: „%s”"
@@ -3550,16 +3579,16 @@ msgstr "Az erőforrás nem létezik itt: „%s”"
msgid "The resource at “%s” failed to decompress"
msgstr "Az erőforrás kicsomagolása meghiúsult itt: „%s”"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Az erőforrásfájlokat nem lehet átnevezni"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "Az erőforrás nem könyvtár itt: „%s”"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "A bemeneti adatfolyam nem valósítja meg a pozicionálást"
@@ -3929,7 +3958,8 @@ msgstr "Érvénytelen foglalat, az előkészítés meghiúsulásának oka: %s"
msgid "Socket is already closed"
msgstr "A foglalat már le van zárva"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "A foglalat I/O túllépte az időkorlátot"
@@ -3938,161 +3968,161 @@ msgstr "A foglalat I/O túllépte az időkorlátot"
msgid "creating GSocket from fd: %s"
msgstr "GSocket létrehozása fájlleíróból: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Nem sikerült létrehozni foglalatot: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Ismeretlen családot adtak meg"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Ismeretlen protokollt adtak meg"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "A datagram műveletek nem használhatóak nem-datagram foglalaton."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"A datagram műveletek nem használhatóak olyan foglalaton, amelyre időtúllépés "
"van beállítva."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "nem kérhető le a helyi cím: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "nem kérhető le a távoli cím: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "nem lehet figyelni: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Hiba a(z) %s címhez csatlakozáskor: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Hiba a multicast csoporthoz csatlakozáskor: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Hiba a multicast csoport elhagyásakor: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "A forrásspecifikus multicast nem támogatott"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Nem támogatott foglalatcsalád"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "A forrásspecifikus nem egy IPv4-cím"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Az interfésznév túl hosszú"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Interfész nem található: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Az IPv4 forrásspecifikus multicast nem támogatott"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Az IPv6 forrásspecifikus multicast nem támogatott"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Hiba a kapcsolat elfogadásakor: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Csatlakozás folyamatban"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Nem lehet lekérni a függőben lévő hibát: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Hiba az adatok fogadásakor: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Hiba az adatok küldésekor: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Nem sikerült leállítani a foglalatot: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Hiba a foglalat lezárásakor: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Várakozás a foglalat állapotára: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Nem sikerült elküldeni az üzenetet: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Az üzenetvektorok túl nagyok"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Hiba az üzenet küldésekor: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "A GSocketControlMessage nem támogatott Windowson"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Hiba az üzenet fájl eltávolítása fogadásakor: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Nem sikerült olvasni a foglalat hitelesítési adatait: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "a g_socket_get_credentials nincs megvalósítva erre az OS-re"
@@ -4213,7 +4243,7 @@ msgstr "A SOCKSv5 proxy nem támogatja a megadott címtípust."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Ismeretlen SOCKSv5 proxy hiba."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr ""
@@ -4230,47 +4260,47 @@ msgstr "A csővezetékek nem támogatottak ezen a platformon"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "A GThemedIcon kódolás %d. verziója nem kezelhető"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Nem találhatók érvényes címek"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Hiba a(z) „%s” fájl fordított feloldásakor: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr ""
"Hiba a(z) %s DNS-rekord feldolgozásakor: helytelenül formázott DNS-csomag"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Nincs kért típusú DNS-rekord ehhez: „%s”"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Ideiglenesen nem oldható fel: „%s”"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Hiba a(z) „%s” feloldásakor"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Helytelenül formázott DNS-csomag"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Nem sikerült feldolgozni a(z) „%s” DNS válaszát: "
@@ -4329,60 +4359,60 @@ msgstr "A megadott jelszó helytelen."
msgid "Sending FD is not supported"
msgstr "Az FL küldése nem támogatott"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "A várt 1 vezérlőüzenet helyett %d érkezett"
msgstr[1] "A várt 1 vezérlőüzenet helyett %d érkezett"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Váratlan típusú kiegészítő adatok"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "A várt egy fájlleíró helyett %d érkezett\n"
msgstr[1] "A várt egy fájlleíró helyett %d érkezett\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Érvénytelen fájlleíró érkezett"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Az FL fogadása nem támogatott"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Hiba a hitelesítési adatok küldésekor: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr ""
"Hiba a SO_PASSCRED engedélyezettségének ellenőrzésekor a foglalathoz: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Hiba a SO_PASSCRED engedélyezésekor: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"A hitelesítési adatok fogadásához várt egyetlen bájt helyett nulla bájt lett "
"beolvasva"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "A program nem várt vezérlőüzenetet, de %d érkezett"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Hiba a SO_PASSCRED letiltásakor: %s"
@@ -4398,7 +4428,7 @@ msgstr "Hiba a fájlleíróból olvasáskor: %s"
msgid "Error closing file descriptor: %s"
msgstr "Hiba a fájlleíró lezárásakor: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Fájlrendszer gyökere"
@@ -4482,133 +4512,128 @@ msgstr "D-Bus szolgáltatás futtatása"
msgid "Wrong args\n"
msgstr "Hibás argumentumok\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Váratlan attribútum („%s”) a(z) „%s” elemhez"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "A(z) „%2$s” elem „%1$s” attribútuma nem található"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Váratlan címke: „%s” a várt „%s” helyett"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Váratlan címke: „%s” a következőn belül: „%s”"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Érvénytelen „%s” dátum vagy idő a könyvjelzőfájlban"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Az adatkönyvtárakban nem található érvényes könyvjelzőfájl"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Már létezik könyvjelző a következő URI címhez: „%s”"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Nem található könyvjelző a következő URI címhez: „%s”"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Nincs MIME típus meghatározva a következő URI könyvjelzőjéhez: „%s”"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Nincs magán jelző meghatározva a következő URI könyvjelzőjéhez: „%s”"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "Nincsenek csoportok beállítva a következő URI könyvjelzőjéhez: „%s”"
# FIXME: hol jön ez elő?
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr ""
"Nincs „%s” nevű alkalmazás regisztrálva a következő könyvjelzőjéhez: „%s”"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr ""
"Nem sikerült kiterjeszteni a(z) „%s” végrehajtási sort a(z) „%s” URL címmel"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Nem ábrázolható karakter az átalakítási bemenetben"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Részleges karaktersorozat a bemenet végén"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Nem alakítható át a tartalék „%s” a(z) „%s” kódkészletre"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Beágyazott NUL bájt az átalakítás bemenetében"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Beágyazott NUL bájt az átalakítás kimenetében"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "A(z) „%s” URI nem abszolút, a „file” sémát használó URI"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "A(z) „%s” helyi fájl URI nem tartalmazhat „#” karaktert"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "A(z) „%s” URI érvénytelen"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "A(z) „%s” gépneve érvénytelen"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr ""
"A(z) „%s” URI érvénytelen, escape sorozatként megadott karaktereket tartalmaz"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "A(z) „%s” elérési út neve nem abszolút útvonal"
@@ -5031,82 +5056,82 @@ msgstr "DU"
msgid "Error opening directory “%s”: %s"
msgstr "Hiba a(z) „%s” könyvtár megnyitásakor: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "Nem sikerült %lu bájtot lefoglalni a(z) „%s” fájl olvasásához"
msgstr[1] "Nem sikerült %lu bájtot lefoglalni a(z) „%s” fájl olvasásához"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Hiba a(z) „%s” fájl olvasásakor: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "A fájl („%s”) túl nagy"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Nem sikerült olvasni a(z) „%s” fájlból: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Nem sikerült megnyitni a(z) „%s” fájlt: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr ""
"Nem sikerült lekérni a(z) „%s” fájl attribútumait. Az fstat() sikertelen: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Nem sikerült megnyitni a(z) „%s” fájlt. Az fdopen() sikertelen: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr ""
"Nem sikerült átnevezni a(z) „%s” fájlt erre: „%s”. A g_rename() sikertelen: "
"%s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Nem sikerült írni a(z) „%s” fájlt: a write() sikertelen: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Nem sikerült írni a(z) „%s” fájlt: az fsync() sikertelen: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Nem sikerült létrehozni a(z) „%s” fájlt: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "A létező „%s” fájl nem távolítható el: a g_unlink() sikertelen: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "A(z) „%s” sablon érvénytelen, „%s” nem lehet benne"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "A(z) „%s” sablon nem tartalmaz XXXXXX karaktersorozatot"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Nem sikerült kiolvasni a(z) „%s” szimbolikus linket: %s"
@@ -5133,15 +5158,15 @@ msgstr "A csatorna töredék karakterrel ér véget"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Nem lehet nyers (raw) olvasást végezni a g_io_channel_read_to_end-ben"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "A keresési könyvtárakban nem található érvényes kulcsfájl"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Nem szabályos fájl"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5149,52 +5174,52 @@ msgstr ""
"A kulcsfájl tartalmazza a(z) „%s” sort, amelyik nem egy kulcs-érték pár, "
"csoport, vagy megjegyzés"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Érvénytelen csoportnév: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "A kulcsfájl nem csoporttal kezdődik"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Érvénytelen kulcsnév: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "A kulcsfájl a nem támogatott „%s” kódolást tartalmazza"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "A kulcsfájlból hiányzik a(z) „%s” csoport"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "A kulcsfájl nem tartalmazza a(z) „%s” kulcsot a(z) „%s” csoportban."
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
"A kulcsfájl tartalmazza a(z) „%s” kulcsot „%s” értékkel, amelyik azonban nem "
"UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr ""
"A kulcsfájl tartalmazza a(z) „%s” kulcsot, amelynek értéke nem értelmezhető."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5203,85 +5228,85 @@ msgstr ""
"A kulcsfájl tartalmazza a(z) „%s” kulcsot a(z) „%s” csoportban, amelynek "
"értéke nem értelmezhető."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr ""
"A(z) „%s” kulcs a(z) „%s” csoportban „%s” értékkel rendelkezik a várt %s "
"helyett"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "A kulcsfájl escape sorozattal megadott karaktert tartalmaz a sor végén"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4378
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "A kulcsfájl érvénytelen escape sorozatot tartalmaz („%s”)"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4530
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "A(z) „%s” érték nem értelmezhető számként."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4544
#, c-format
msgid "Integer value “%s” out of range"
msgstr "A(z) „%s” egész érték a tartományon kívülre esik"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "A(z) „%s” érték nem értelmezhető lebegőpontos számként."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4616
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "A(z) „%s” érték nem értelmezhető logikai értékként."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"Nem sikerült lekérni a(z) „%s%s%s%s” fájl attribútumait. Az fstat() "
"sikertelen: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Nem sikerült leképezni a(z) %s%s%s%s fájlt: Az mmap() sikertelen: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Nem sikerült megnyitni a(z) „%s” fájlt: az open() sikertelen: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Hiba a(z) %d. sor %d. karakterénél: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Érvénytelen UTF-8 kódolású szöveg a névben - nem érvényes „%s”"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "A(z) „%s” nem érvényes név"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "A(z) „%s” nem érvényes név: „%c”"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Hiba a(z) %d. sorban: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5290,7 +5315,7 @@ msgstr ""
"Nem sikerült feldolgozni ezt: „%-.*s”. Valószínűleg számjegy lett volna egy "
"karakterhivatkozáson (mint az &#234) belül - lehet, hogy túl nagy a számjegy"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5299,23 +5324,23 @@ msgstr ""
"A karakterhivatkozás nem pontosvesszővel ért véget; valószínűleg egy &-jelet "
"használt anélkül, hogy entitást akart volna kezdeni - írja &amp; formában."
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "A(z) „%-.*s” karakterhivatkozás nem engedélyezett karaktert kódol"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Üres „&;” entitás; az érvényes entitások: &amp; &quot; &lt; &gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "A(z) „%-.*s” entitásnév ismeretlen"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5323,11 +5348,11 @@ msgstr ""
"Az entitás neve nem pontosvesszővel ért véget; valószínűleg egy &-jelet "
"használt anélkül, hogy entitást akart volna kezdeni - írja &amp; formában."
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "A dokumentumnak egy elemmel kell kezdődnie (például: <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5336,7 +5361,7 @@ msgstr ""
"A(z) „%s” nem érvényes karakter a „<” karakter után; elem neve nem kezdődhet "
"vele"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5345,12 +5370,12 @@ msgstr ""
"Furcsa karakter („%s”), „>” karakternek kellett volna jönnie, hogy lezárja "
"a(z) „%s” üres elemcímkét"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Túl sok attribútum a(z) „%s” elemben"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5358,7 +5383,7 @@ msgstr ""
"Furcsa karakter („%s”), „=” karakternek kellett volna jönnie a(z) „%s” elem "
"„%s” attribútumneve után"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5369,7 +5394,7 @@ msgstr ""
"„%s” elem kezdő címkéje után, esetleg egy attribútumnak; lehet, hogy "
"érvénytelen karaktert használt az attribútum nevében"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5378,7 +5403,7 @@ msgstr ""
"Furcsa karakter („%s”), egy nyitó idézőjelnek kellene jönnie az "
"egyenlőségjel után, ha értéket ad a(z) „%s” attribútumnak „%s” elemben"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5387,7 +5412,7 @@ msgstr ""
"A(z) „%s” nem érvényes karakter a „</” karakterek után; „%s” karakterrel nem "
"kezdődhet egy elem neve"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5396,26 +5421,26 @@ msgstr ""
"A(z) „%s” nem érvényes karakter a(z) „%s” lezáró elemnév után; az "
"engedélyezett karakter egyedül a „>”."
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "A(z) „%s” elem le lett lezárva, jelenleg egy elem sincs nyitva"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "A(z) „%s” elem le lett lezárva, de a jelenleg nyitott elem a(z) „%s”"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "A dokumentum üres volt, vagy csak üres hely karaktereket tartalmazott"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr ""
"A dokumentum váratlanul véget ért egy nyitott hegyes zárójel („<”) után"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5424,7 +5449,7 @@ msgstr ""
"A dokumentum váratlanul véget ért, pedig még nyitva vannak elemek - „%s” az "
"utoljára megnyitott elem"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5433,19 +5458,19 @@ msgstr ""
"A dokumentum váratlanul véget ért; a(z) <%s/> elemet lezáró hegyes "
"zárójelnek kellett volna következnie"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "A dokumentum váratlanul véget ért egy elemnéven belül"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "A dokumentum váratlanul véget ért egy attribútumnéven belül"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "A dokumentum váratlanul véget ért egy elemnyitó címkén belül"
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5453,22 +5478,22 @@ msgstr ""
"A dokumentum váratlanul véget ért egy az attribútumnevet követő "
"egyenlőségjel után; az attribútum értéke nem lett megadva"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "A dokumentum váratlanul véget ért egy attribútumértéken belül"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "A dokumentum váratlanul véget ért a(z) „%s” elem lezáró címkéjén belül"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"A dokumentum váratlanul véget ért egy nem nyitott elem lezáró címkéjén belül"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"A dokumentum váratlanul véget ért egy megjegyzésen vagy feldolgozási "
@@ -5535,187 +5560,183 @@ msgstr "Hiányzó paraméter a következőhöz: %s"
msgid "Unknown option %s"
msgstr "Ismeretlen kapcsoló: %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "sérült objektum"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "elfogyott a memória"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "a visszakövetési korlát elérve"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "belső hiba"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr ""
"a minta a részleges mintaillesztés esetén nem támogatott elemeket tartalmaz"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"a visszahivatkozások használata feltételekként nem támogatott a részleges "
"mintaillesztéshez"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "az ismétlési korlát elérve"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "hibás eltolás"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "rekurzív ciklus"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "illesztési mód lett kérve, amely nem lett lefordítva a JIT-hez"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "ismeretlen hiba"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ a minta végén"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c a minta végén"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "ismeretlen karakter következik a \\ után"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "a számok nincsenek sorrendben a {} kvantálóban"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "a szám túl nagy a a {} kvantálóban"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "a karakterosztály befejező ] jele hiányzik"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "érvénytelen escape-sorozat a karakterosztályban"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "a tartomány kívül esik a karakterosztály nagyságán"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "nincs mit ismételni"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "ismeretlen karakter a (? vagy (?- után"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "a POSIX elnevezett osztályok csak osztályon belül támogatottak"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "a POSIX leválogató elemek nem támogatottak"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "hiányzó befejező )"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "hivatkozás nem létező almintára"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "a megjegyzés utáni ) hiányzik"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "a reguláris kifejezés túl nagy"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "hibásan formázott szám vagy név a (?( után"
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "a lookbehind kijelentés nem rögzített hosszúságú"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "a feltételes csoport kettőnél több ágat tartalmaz"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "a (?( után kijelentésnek kellene állnia"
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "számozott hivatkozás nem lehet nulla"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "ismeretlen POSIX osztálynév"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "a \\x{...} sorozaton belüli karakterérték túl nagy"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "A \\C nem engedélyezett a lookbehind kijelentésben"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "hiányzó befejező az alminta nevében"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "két elnevezett alminta neve azonos"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "rosszul formázott \\P vagy \\p sorozat"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "ismeretlen tulajdonságnév a \\P vagy \\p után"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "az alminta neve túl hosszú (legfeljebb 32 karakter)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "túl sok elnevezett alminta (legfeljebb 10 000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "az oktális érték nagyobb, mint \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "a DEFINE csoport több ágat tartalmaz"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "inkonzisztens NEWLINE beállítások"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5723,121 +5744,120 @@ msgstr ""
"a \\g után nem egy (szögletes) zárójelezett név, idézőjelezett név vagy szám "
"vagy egyszerű szám áll"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr ""
"nem engedélyezett argumentum a (*ACCEPT), (*FAIL) vagy (*COMMIT) egyikéhez "
"sem"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) ismeretlen"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "a szám túl nagy"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "hiányzó almintanév a (?& után"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "ugyanazon szám almintáihoz nem engedélyezettek különböző nevek"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "a (*MARK) után argumentumnak kell állnia"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "a \\c után ASCII karakternek kell állnia"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr "a \\k után nem egy (szögletes) zárójelezett vagy idézőjelezett név áll"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "a \\N nem támogatott osztályban"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "a név túl hosszú a (*MARK), (*PRUNE), (*SKIP) vagy (*THEN) egyikében"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "kódtúlcsordulás"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "ismeretlen karakter a (?P után"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "a fordítási munkaterület túlcsordult"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "a korábban ellenőrzött hivatkozott alminta nem található"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Hiba a(z) %s reguláris kifejezés illesztésekor: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "A PRCE programkönyvtár UTF-8 támogatás nélkül lett fordítva"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "A PRCE programkönyvtár inkompatibilis beállításokkal lett fordítva"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
-#| msgid "Error while compiling regular expression %s at char %d: %s"
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr ""
"Hiba a(z) „%s” reguláris kifejezés fordításakor a(z) %s karakternél: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "a program hexadecimális számjegyet vagy „}” jelet várt"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "a program hexadecimális számjegyet várt"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "hiányzó „<” jel a szimbolikus hivatkozásban"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "befejezetlen szimbolikus hivatkozás"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "nulla hosszúságú szimbolikus hivatkozás"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "re rendszer számjegyet várt"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "illegális szimbolikus hivatkozás"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "a záró „\\” helye nem megfelelő"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "ismeretlen escape sorozat"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr ""
@@ -5869,136 +5889,141 @@ msgid "Text was empty (or contained only whitespace)"
msgstr ""
"A szöveg üres volt (vagy legfeljebb üres hely karaktereket tartalmazott)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Nem sikerült adatokat olvasni a gyermekfolyamatból (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Váratlan hiba egy gyermekfolyamatból történő adatolvasás közben (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Váratlan hiba a waitpid()-ben (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "A gyermekfolyamat a következő kóddal lépett ki: %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "A gyermekfolyamat kilőve %ld szignállal"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "A gyermekfolyamat megállítva %ld szignállal"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "A gyermekfolyamat abnormálisan lépett ki"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Nem sikerült olvasni a gyermek csővezetékből (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Nem sikerült a(z) „%s” gyermekfolyamat végrehajtása (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Nem sikerült folyamatot indítani (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Nem sikerült átváltani a(z) „%s” könyvtárra (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Nem sikerült a gyermekfolyamat („%s”) végrehajtása (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Nem sikerült megnyitni a fájlt a fájlleíró ismételt leképezéséhez (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Nem sikerült kettőzni a gyermekfolyamat fájlleíróját (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Nem sikerült a gyermekfolyamat elindítása (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Nem sikerült lezárni a gyermekfolyamat fájlleíróját (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Ismeretlen hiba a gyermekfolyamat („%s”) végrehajtásakor"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "Nem sikerült elég adatot kiolvasni a gyermek pid csővezetékből (%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Érvénytelen forrás-fájlleírók argumentum"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Nem sikerült adatokat kiolvasni a gyermekfolyamatból"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Nem sikerült végrehajtani a gyermekfolyamatot (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Nem sikerült a dup() hívás a gyermekfolyamatban (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Érvénytelen programnév: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Érvénytelen karaktersorozat a paraméterben a következő helyen: %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Érvénytelen karaktersorozat a környezetben: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Érvénytelen munkakönyvtár: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Nem sikerült végrehajtani a segítő programot (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6006,229 +6031,225 @@ msgstr ""
"Váratlan hiba, miközben a g_io_channel_win32_poll() adatokat olvasott egy "
"gyermekfolyamatból"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Az üres karakterlánc nem szám"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "„%s” nem érvényes név"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "A(z) „%s” a(z) [%s, %s] intervallumon kívül esik."
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "„%s” nem érvényes név"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "Érvénytelen %-kódolás az URI-ban"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Nem megengedett karakter az URI-ban"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Nem UTF-8 karakterek az URI-ban"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Érvénytelen „%.*s” IPv6-cím az URI-ban"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Nem megengedett „%.*s” kódolt IP-cím az URI-ban"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Nem megengedett „%.*s” nemzetköziesített gépnév az URI-ban"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "A(z) „%.*s” port nem dolgozható fel az URI-ban"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Az URI-ban lévő „%.*s” port a tartományon kívülre esik"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "A(z) „%s” URI nem abszolút URI"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "A(z) „%s” URI-ban nincs gép összetevő"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "Az URI nem abszolút, és alap URI nem lett megadva"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Hiányzó „=” és paraméterérték"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Nem sikerült memóriát lefoglalni"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "A karakter az UTF-8 tartományon kívülre esik"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Érvénytelen sorozat az átalakítási bemenetben"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "A karakter az UTF-16 tartományon kívülre esik"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
-#| msgid "%u byte"
-#| msgid_plural "%u bytes"
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "bájt"
msgstr[1] "bájt"
-#: glib/gutils.c:2951
-#| msgid "%u bit"
-#| msgid_plural "%u bits"
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bit"
@@ -6236,7 +6257,7 @@ msgstr[1] "bit"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6244,7 +6265,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6252,9 +6273,8 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
-#| msgid "%.1f KB"
msgctxt "format-size"
msgid "%.1f"
msgstr "%.1f"
@@ -6262,15 +6282,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
-#| msgid "%.1f kB"
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6278,14 +6297,14 @@ msgstr[0] "%s bájt"
msgstr[1] "%s bájt"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s bit"
msgstr[1] "%s bit"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6297,32 +6316,32 @@ msgstr[1] "%u bájt"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
diff --git a/po/id.po b/po/id.po
index 04c8e33d7..6ba3ff67d 100644
--- a/po/id.po
+++ b/po/id.po
@@ -4,59 +4,59 @@
#
# Mohammad DAMT <mdamt@bisnisweb.com>, 2005.
# Dirgita <dirgitadevina@yahoo.co.id>, 2010, 2012.
-# Andika Triwidada <andika@gmail.com>, 2010-2013, 2015, 2018, 2022.
-# Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2017-2022.
+# Andika Triwidada <andika@gmail.com>, 2010-2013, 2015, 2018, 2022, 2023.
+# Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2017-2023.
msgid ""
msgstr ""
"Project-Id-Version: glib main\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-15 20:23+0000\n"
-"PO-Revision-Date: 2022-08-26 09:12+0700\n"
-"Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
+"POT-Creation-Date: 2023-09-06 04:18+0000\n"
+"PO-Revision-Date: 2023-09-06 13:33+0700\n"
+"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"Language-Team: Indonesian <gnome@i15n.org>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 3.1.1\n"
+"X-Generator: Poedit 3.3.2\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Menata aplikasi baku belum didukung"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Menata aplikasi sebagai yang terakhir digunakan untuk tipe belum didukung"
-#: gio/gappinfo.c:808
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "Gagal menemukan aplikasi bawaan untuk jenis konten '%s'"
-#: gio/gappinfo.c:868
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Gagal menemukan aplikasi bawaan untuk Skema URI '%s'"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "Opsi GApplication"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "Opsi GAplikasi:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Tunjukkan opsi GApplication"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr "Masuk mode layanan GApplication (pakai dari berkas layanan D-Bus)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Timpa ID aplikasi"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Ganti instance yang berjalan"
@@ -137,7 +137,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Identifier aplikasi dalam format D-Bus (mis: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "BERKAS"
@@ -234,11 +234,11 @@ msgstr "tak bisa menyambung ke D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "galat saat mengirim pesan %s ke aplikasi: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "nama aksi mesti diberikan setelah id aplikasi\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -247,25 +247,25 @@ msgstr ""
"nama aksi tak valid: \"%s\"\n"
"nama mesti hanya terdiri dari alfanumerik, \"-\", dan \".\"\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "galat saat mengurai parameter aksi: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "aksi menerima maksimum satu parameter\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "perintah list-actions hanya menerima id aplikasi"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "tak bisa temukan berkas desktop bagi aplikasi %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -275,9 +275,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Nilai cacah yang dilewatkan ke %s terlalu besar"
@@ -291,8 +291,8 @@ msgstr "Seek tak didukung pada stream basis"
msgid "Cannot truncate GBufferedInputStream"
msgstr "Tak bisa memenggal GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Stream telah ditutup"
@@ -300,7 +300,7 @@ msgstr "Stream telah ditutup"
msgid "Truncate not supported on base stream"
msgstr "Pemenggalan tak didukung pada stream basis"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -319,28 +319,28 @@ msgid "Not enough space in destination"
msgstr "Tak cukup ruang di tujuan"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Rangkaian bita dalam input konversi tidak benar"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Galat ketika konversi: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Inisialisasi yang dapat dibatalkan tak didukung"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Konversi dari gugus karakter \"%s\" ke \"%s\" tak didukung"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Tak bisa membuka pengubah dari \"%s\" ke \"%s\""
@@ -383,17 +383,17 @@ msgstr "Pemalsuan kredensial tak diimplementasikan di OS ini"
msgid "Unexpected early end-of-stream"
msgstr "Akhir stream terlalu dini, tak diharapkan"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Kunci \"%s\" tak didukung pada entri alamat \"%s\""
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Kombinasi pasangan kunci/nilai tanpa arti di entri alamat \"%s\""
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -402,7 +402,7 @@ msgstr ""
"Alamat \"%s\" tak valid (perlu hanya salah satu dari path, dir, tmpdir, atau "
"kunci abstrak)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -525,7 +525,7 @@ msgstr "Galat saat spawn baris perintah \"%s\": "
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr "Tak bisa menentukan alamat bus sesi (tidak diimplementasi bagi OS ini)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -534,7 +534,7 @@ msgstr ""
"Tak bisa menentukan alamat bus dari variabel lingkungan "
"DBUS_STARTER_BUS_TYPE — nilai tak dikenal \"%s\""
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -542,7 +542,7 @@ msgstr ""
"Tak bisa menentukan alamat bus karena variabel lingkungan "
"DBUS_STARTER_BUS_TYPE tak diisi"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Tipe bus %d tak dikenal"
@@ -564,52 +564,56 @@ msgstr ""
"Menghabiskan semua mekanisme autentikasi yang tersedia (dicoba: %s) "
"(tersedia: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Ketiadaan isi yang tak diharapkan ketika membaca suatu bita"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "ID Pengguna harus sama untuk rakan (peer) dan peladen"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Dibatalkan melalui GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Galat ketika mengambil informasi untuk direktori \"%s\": %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr ""
"Izin pada direktori \"%s\" salah bentuk. Diharapkan mode 0700, diperoleh 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Galat saat membuat direktori \"%s\": %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Operasi tak didukung"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Galat saat membuka ring kunci \"%s\" untuk dibaca: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "Baris %d dari ring kunci pada \"%s\" dengan isi \"%s\" salah bentuk"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -617,7 +621,7 @@ msgstr ""
"Token pertama dari baris %d dari ring kunci pada \"%s\" dengan isi \"%s\" "
"salah bentuk"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -625,56 +629,56 @@ msgstr ""
"Token kedua dari baris %d dari ring kunci pada \"%s\" dengan isi \"%s\" "
"salah bentuk"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Tak menemukan cookie dengan id %d dalam gantungan kunci pada \"%s\""
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Galat saat membuat berkas kunci \"%s\": %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Galat saat menghapus berkas kunci yang basi \"%s\": %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Galat saat menutup berkas kunci (tak terkait) \"%s\": %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Galat saat membuka kait berkas kunci \"%s\": %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Galat saat membuka gantungan kunci \"%s\" untuk ditulisi: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Selain itu, melepas kunci bagi \"%s\" juga gagal: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "Sambungan tertutup"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Kehabisan waktu"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Ditemui tanda yang tak didukung ketika membangun sambungan di sisi klien"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -682,106 +686,113 @@ msgstr ""
"Tidak ada antarmuka \"org.freedesktop.DBus.Properties\" pada objek pada path "
"%s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Tak ada properti \"%s\""
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Properti \"%s\" tidak dapat dibaca"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Properti \"%s\" tidak dapat ditulisi"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
-"Galat menata properti \"%s\": Tipe yang diharapkan \"%s\" tapi diperoleh \"%s"
-"\""
+"Galat menata properti \"%s\": Tipe yang diharapkan \"%s\" tapi diperoleh "
+"\"%s\""
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Tak ada antarmuka \"%s\""
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Tak ada antarmuka \"%s\" pada objek di lokasi %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Tidak ada metode seperti \"%s\""
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Tipe pesan \"%s\" tak cocok dengan tipe yang diharapkan \"%s\""
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Suatu objek telah diekspor bagi antar muka %s pada %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Tak bisa mengambil properti %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Tak bisa menata properti %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Metode \"%s\" mengembalikan tipe \"%s\", tapi yang diharapkan \"%s\""
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr ""
"Metode \"%s\" pada antar muka \"%s\" dengan tanda tangan \"%s\"' tak ada"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Subtree telah diekspor bagi %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Objek tidak ada di path \"%s\""
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "jenisnya INVALID"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "Pesan METHOD_CALL: ruas header PATH atau MEMBER hilang"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"Pesan METHOD_CALL: ruas header PATH atau MEMBER kurang atau tidak valid"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "Pesan METHOD_RETURN: ruas header REPLY_SERIAL hilang"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr "Pesan METHOD_RETURN: ruas header REPLY_SERIAL kurang atau tidak valid"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "Pesan ERROR: ruas header REPLY_SERIAL atau ERRORN_NAME hilang"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"Pesan ERROR: ruas header REPLY_SERIAL atau ERRORN_NAME kurang atau tidak "
+"valid"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "Pesan SIGNAL: ruas header PATH, INTERFACE, atau MEMBER hilang"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"Pesan SIGNAL: ruas header PATH, INTERFACE, atau MEMBER kurang atau tidak "
+"valid"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -789,7 +800,7 @@ msgstr ""
"Pesan SIGNAL: ruas header PATH memakai nilai khusus /org/freedesktop/DBus/"
"Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -797,18 +808,18 @@ msgstr ""
"Pesan SIGNAL: ruas header INTERFACE memakai nilai khusus org.freedesktop."
"DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "Ingin membaca %lu bita tapi hanya memperoleh %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Mengharapkan bita NUL setelah string \"%s\" tapi menemui bita %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -818,21 +829,21 @@ msgstr ""
"%d (panjang string adalah %d). String UTF-8 yang valid sampai titik itu "
"adalah \"%s\""
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Nilai bersarang terlalu dalam"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Nilai terurai \"%s\" bukan lokasi objek D-Bus yang valid"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Nilai terurai \"%s\" bukan tanda tangan D-Bus yang valid"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -842,7 +853,7 @@ msgstr[0] ""
"Menjumpai larik dengan panjang %u bita. Panjang maksimal adalah 2<<26 bita "
"(64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -851,16 +862,16 @@ msgstr ""
"Menemui larik bertipe \"a%c\", mengharapkan punya panjang kelipatan %u bita, "
"tapi menemui panjang %u bita"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Struktur kosong (tuple) tidak diperbolehkan di D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Nilai terurai \"%s\" bagi varian bukan tanda tangan D-Bus yang valid"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -868,7 +879,7 @@ msgstr ""
"Galat saat deserialisasi GVariant dengan type string \"%s\" dari format "
"kabel D-Bus"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -877,28 +888,28 @@ msgstr ""
"Nilai ke-endian-an tak valid. Berharap 0x6c (\"l\") atau (0x42) \"B\" tapi "
"menemui 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Versi protokol mayor tak valid. Berharap 1 tapi menemui %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Tajuk tanda tangan ditemukan tetapi bukan tipe tanda tangan"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Header tanda tangan dengan tanda tangan \"%s\" ditemukan tapi body pesan "
"kosong"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Nilai terurai \"%s\" bukan tanda tangan D-Bus yang valid (bagi body)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -906,11 +917,11 @@ msgstr[0] ""
"Tidak terdapat tajuk tanda tangan pada pesan, tetapi panjang badan pesan "
"adalah %u bita"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Tak bisa men-deserialisasi pesan: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -918,23 +929,23 @@ msgstr ""
"Kesalahan serialisasi GVariant dengan type string \"%s\" ke format kabel D-"
"Bus"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
"Jumlah deskriptor berkas dalam pesan (%d) berbeda dari field header (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Tak bisa men-serialisasi pesan: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "Body pesan punya tanda tangan \"%s\" tapi tak ada header tanda tangan"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -943,52 +954,52 @@ msgstr ""
"Tubuh pesan memiliki tanda tangan tipe \"%s\" tapi tanda tangan di ruas "
"header adalah \"(%s)\""
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Tubuh pesan kosong tapi tanda tangan pada ruas header adalah \"(%s)\""
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Galat balikan dengan tubuh bertipe \"%s\""
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Galat balikan dengan body kosong"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Ketikkan karakter apapun untuk menutup jendela ini)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "dbus sesi tidak sedang berjalan, dan peluncuran otomatis gagal"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Tak bisa mendapat profil perangkat keras: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Tak bisa memuat %s or %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Galat sewaktu memanggil StartServiceByName untuk %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Balasan tak diharapkan %d dari metode StartServiceByName(\"%s\")"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -997,25 +1008,25 @@ msgstr ""
"Tak bisa menjalankan metode; proksi adalah nama terkenal %s tanpa pemilik "
"dan proksi dibangun dengan tanda G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Ruang nama abstrak tak didukung"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Tak bisa menyatakan berkas nonce ketika membuat suatu peladen"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Galat saat menulis berkas nonce pada \"%s\": %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "String \"%s\" bukan suatu GUID D-Bus yang valid"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Tak bisa mendengarkan pada transport yang tak didukung \"%s\""
@@ -1044,14 +1055,14 @@ msgstr ""
"Gunakan \"%s PERINTAH --help\" untuk memperoleh bantuan pada setiap "
"perintah.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Galat: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Galat saat mengurai XML introspeksi: %s\n"
@@ -1061,49 +1072,49 @@ msgstr "Galat saat mengurai XML introspeksi: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Galat: %s bukan nama yang valid\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Galat: '%s' bukan suatu lokasi objek yang valid\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Menyambung ke bus sistem"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Menyambung ke bus sesi"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Menyambung ke alamat D-Bus yang diberikan"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Opsi Titik Ujung Sambungan:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Opsi yang menyatakan titik ujung sambungan"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Titik ujung sambungan tak dinyatakan"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Telah dinyatakan titik ujung sambungan berganda"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "Peringatan: Menurut data introspeksi, antar muka \"%s\" tak ada\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1112,166 +1123,166 @@ msgstr ""
"Peringatan: Menurut data introspeksi, metode \"%s\" tak ada pada antar muka "
"\"%s\"\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Tujuan opsional bagi sinyal (nama unik)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Path objek untuk dipancari sinyal"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Nama antar muka dan sinyal"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Pancarkan sinyal."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Galat saat menyambung: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Galat: '%s' bukan nama bus unik yang valid\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Galat: Lokasi objek tak dinyatakan\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Galat: Nama sinyal tak dinyatakan\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Galat: Nama sinyal \"%s\" tak valid\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Galat: '%s' bukan nama antar muka yang valid\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Galat: '%s' bukan nama anggota yang valid\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Galat saat mengurai parameter %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Galat saat menggelontor sambungan: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Nama tujuan tempat menjalankan metode"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Lokasi objek tempat menjalankan metode"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Nama metode dan antar muka"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Tenggat waktu dalam detik"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Perbolehkan otorisasi interaktif"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Jalankan suatu metode pada suatu objek jauh."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Galat: Tujuan tak dinyatakan\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Galat: %s bukan nama bus yang valid\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Galat: Nama metode tak dinyatakan\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Galat: Nama metode \"%s\" tak valid\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Galat ketika mengurai parameter ke-%d bertipe \"%s\": %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Galat saat menambahkan %d handle: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Nama tujuan untuk introspeksi"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Lokasi objek untuk introspeksi"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Cetak XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Introspeksi anak"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Hanya cetak properti"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Introspeksi suatu objek jauh."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Nama tujuan untuk dipantau"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Lokasi objek untuk dipantau"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Memantau suatu objek jauh."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Galat: tidak dapat memonitor koneksi non bus pesan\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr ""
"Layanan yang akan diaktifkan sebelum menunggu yang lain (nama yang dikenal "
"baik)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1279,69 +1290,74 @@ msgstr ""
"Tenggat waktu menunggu sebelum keluar dengan suatu kesalahan (detik); 0 "
"untuk tanpa tenggat (baku)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPSI…] NAMA-BUS"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Tunggu suatu nama bus muncul."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Galat: Suatu layanan yang akan diaktifkan mesti dinyatakan\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Galat: Suatu layanan yang mesti ditunggu harus dinyatakan\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Galat: Terlalu banyak argumen.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Galat: %s bukan nama bus yang dikenal baik dan valid\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Tidak berwenang untuk mengubah pengaturan awakutu"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5113
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Tanpa nama"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Berkas desktop tak menyatakan ruas Exec"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Tak bisa temukan terminal yang diperlukan bagi aplikasi"
-#: gio/gdesktopappinfo.c:3631
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Program '%s' tidak ditemukan di $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
"Tak bisa membuat folder %s untuk konfigurasi aplikasi bagi pengguna: %s"
-#: gio/gdesktopappinfo.c:3635
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Tak bisa membuat folder %s untuk konfigurasi MIME bagi pengguna: %s"
-#: gio/gdesktopappinfo.c:3877 gio/gdesktopappinfo.c:3901
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Informasi aplikasi tak punya identifier"
-#: gio/gdesktopappinfo.c:4137
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Tak bisa membuat berkas desktop pengguna %s"
-#: gio/gdesktopappinfo.c:4273
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Definisi gubahan bagi %s"
@@ -1410,78 +1426,83 @@ msgstr "Berharap suatu GEmblem bagi GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Kait yang memuat tak ada"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Tak bisa menyalin direktori atas direktori"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Tak bisa menyalin direktori atas direktori"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Berkas tujuan telah ada"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Tak bisa menyalin direktori secara rekursif"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "Splice tidak didukung"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Rentang berkas salin tak didukung"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Galat saat men-splice berkas: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Splice tidak didukung"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Menyalin (reflink/clone) antar kait tak didukung"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Menyalin (reflink/clone) tak didukung atau tak valid"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Menyalin (reflink/clone) tak didukung atau tak bekerja"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Tak bisa menyalin berkas spesial"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Diberikan nilai link simbolik yang tak valid"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Taut simbolik tidak didukung"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Tong sampah tak didukung"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Nama berkas tak boleh mengandung \"%c\""
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Gagal membuat direktori sementara untuk templat \"%s\": %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "volume tak mengimplementasi pengaitan"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Tak ada aplikasi terdaftar yang menangani berkas ini"
@@ -1490,11 +1511,11 @@ msgid "Enumerator is closed"
msgstr "Enumerator ditutup"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Enumerator berkas memiliki operasi tertunda"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Enumerator berkas telah ditutup"
@@ -1507,27 +1528,27 @@ msgstr "Tak bisa menangani pengkodean versi %d dari GFileIcon"
msgid "Malformed input data for GFileIcon"
msgstr "Data masukan salah bentuk bagi GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Stream tak mendukung query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Seek tak didukung pada stream"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Pemenggalan tak diijinkan pada stream masukan"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Pemenggalan tak didukung pada stream"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Nama host salah"
@@ -1560,37 +1581,37 @@ msgstr "Respons proksi HTTP terlalu besar"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "Peladen proksi HTTP menutup koneksi secara tak terduga."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Cacah token yang salah (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Tak ada tipe bagi nama kelas %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Tipe %s tak mengimplementasi antar muka GIcon"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Tipe %s tak dikelaskan"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Nomor versi salah bentuk: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Tipe %s tak mengimplementasi from_tokens() pada antar muka GIcon"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Tak bisa menangani versi pengkodean ikon yang diberikan"
@@ -1631,7 +1652,7 @@ msgstr "Stream masukan tak mengimplementasi pembacaan"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Stream memiliki operasi tertunda"
@@ -1737,12 +1758,12 @@ msgid "Error writing to stdout"
msgstr "Galat saat menulis ke stdout"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "LOKASI"
@@ -1760,8 +1781,8 @@ msgstr ""
"sebagai ganti berkas lokal: sebagai contoh Anda dapat memakai\n"
"seperti smb://peladen/sumberdaya/berkas.txt sebagai lokasi."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Tidak ada lokasi yang diberikan"
@@ -1857,57 +1878,64 @@ msgstr "Jangan ikuti taut simbolik"
msgid "attributes:\n"
msgstr "atribut:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "nama tampilan: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "sunting nama: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "nama: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "tipe: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "ukuran: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "tersembunyi\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "path lokal: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "kait unix: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Atribut yang dapat ditata:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Namespace atribut yang dapat ditulis:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Tunjukkan informasi tentang lokasi."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1974,11 +2002,11 @@ msgstr "Cetak nama tampilan"
msgid "Print full URIs"
msgstr "Cetak URI lengkap"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Tampilkan daftar isi lokasi."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2178,19 +2206,19 @@ msgstr "Kaitkan volume tersembunyi TCRYPT"
msgid "Mount a TCRYPT system volume"
msgstr "Kaitkan volume sistem TCRYPT"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Akses anonim ditolak"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Tidak ada kandar bagi berkas perangkat"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Tidak ada volume untuk ID yang diberikan"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Kait atau lepas kait lokasi."
@@ -2390,11 +2418,11 @@ msgstr "Lokasi yang diberikan tidak dimulai dengan trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Ikuti taut simbolik, kait, dan pintasan"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Tampilkan daftar isi direktori dalam format mirip pohon."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Elemen <%s> tidak diijinkan di dalam <%s>"
@@ -2449,7 +2477,7 @@ msgstr "Galat saat memampatkan berkas %s"
msgid "text may not appear inside <%s>"
msgstr "teks tidak boleh muncul di dalam <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Tampilkan versi program dan keluar"
@@ -2465,8 +2493,8 @@ msgstr ""
"Direktori untuk memuat berkas yang direferensikan dalam FILE darinya "
"(bawaan: direktori saat ini)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "DIREKTORI"
@@ -2522,7 +2550,7 @@ msgstr "Nama identifier C yang dipakai bagi kode sumber yang dibuat"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "Kompiler target C (bawaan: variabel lingkungan CC)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2532,123 +2560,123 @@ msgstr ""
"Berkas spesifikasi sumber daya memiliki ekstensi .gresource.xml,\n"
"dan berkas sumber daya memiliki ekstensi bernama .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Anda mesti memberikan hanya satu nama berkas\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "nick minimal harus 2 karakter"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Nilai numerik tidak valid"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> sudah ditentukan"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' sudah ditentukan"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "nilai tanda harus paling banyak diset 1 bit"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> harus berisi setidaknya satu <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> tidak terdapat dalam jangkauan yang ditentukan"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> bukan anggota yang valid dari tipe enumerasi yang ditentukan"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> berisi string tidak dalam jenis tanda yang ditentukan"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> berisi string yang tidak ada dalam <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> sudah ditentukan untuk kunci ini"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> tidak diizinkan untuk kunci tipe \"%s\""
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "<range> minimum yang ditentukan lebih besar dari maksimum"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "kategori l10n tidak didukung: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n diminta, tapi tidak ada domain gettext yang diberikan"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "konteks terjemahan diberikan untuk nilai tanpa l10n diaktifkan"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Gagal mengurai <default> nilai jenis \"%s\": "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> tidak dapat ditentukan untuk kunci yang ditandai sebagai memiliki "
"tipe enumerasi"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> sudah ditentukan untuk kunci ini"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> tidak diizinkan untuk kunci tipe \"%s\""
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> sudah ditentukan"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> harus mengandung setidaknya satu <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> sudah ditentukan untuk kunci ini"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2656,7 +2684,7 @@ msgstr ""
"<aliases> hanya bisa ditentukan untuk kunci dengan tipe enumerasi atau tanda "
"atau setelah <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2665,42 +2693,42 @@ msgstr ""
"<alias value='%s'/> diberikan saat \"%s\" sudah menjadi anggota tipe "
"enumerasi"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"<alias value='%s'/> diberikan ketika <choice value='%s'/> sudah diberikan"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> sudah ditentukan"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "target alias \"%s\" bukan bilangan bertanda"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "alias target \"%s\" tidak ada di <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> harus berisi setidaknya satu <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Nama yang kosong tidak diperbolehkan"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Nama \"%s\" tak valid: nama mesti diawali dengan huruf kecil"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2709,38 +2737,38 @@ msgstr ""
"Nama \"%s\" tak valid: karakter \"%c\" tak valid; hanya huruf kecil, angka, "
"dan tanda hubung (\"-\") yang diijinkan"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr ""
"Nama \"%s\" tak valid: dua tanda hubung berturutan (\"--\") tak diijinkan"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr ""
"Nama \"%s\" tak valid: karakter terakhir tak boleh tanda hubung (\"-\")."
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Nama \"%s\" tak valid: panjang maksimum 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> telah dinyatakan"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Tak bisa menambah kunci ke skema \"list-of\""
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> telah dinyatakan"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2749,7 +2777,7 @@ msgstr ""
"<key name='%s'> membayangi <key name='%s'> di <schema id='%s'>; gunakan "
"<override> untuk mengubah nilai"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2758,63 +2786,63 @@ msgstr ""
"Persis satu dari 'type', 'enum', atau 'flags' mesti dinyatakan sebagai "
"atribut dari <key>"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> belum didefinisikan."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "String jenis GVariant \"%s\" tidak sah"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> diberikan tapi skema tak memperluas apapun"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Tak ada <key name='%s'> untuk ditimpa"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> telah dinyatakan"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> sudah ditentukan"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> memperluas skema \"%s\" yang belum ada"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> adalah daftar dari skema \"%s\"' yang belum ada"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Tak mungkin berupa suatu daftar skema dengan path"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Tak bisa memperluas suatu skema dengan path"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
"<schema id='%s'> adalah daftar, memperluas <schema id='%s'> yang bukan daftar"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2823,18 +2851,18 @@ msgstr ""
"<schema id='%s' list-of='%s'> memperluas <schema id='%s' list-of='%s'> tapi "
"\"%s\" tak memperluas \"%s\""
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr ""
"Suatu path, bila diberikan, harus dimulai dan diakhiri dengan garis miring"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Path dari suatu daftar mesti diakhiri dengan “:/”"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2843,49 +2871,49 @@ msgstr ""
"Peringatan: Skema \"%s\" memiliki path \"%s\". Path yang dimulai dengan \"/"
"apps/\", \"/desktop/\" atau \"/system/\" tidak digunakan lagi."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> sudah ditentukan"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Hanya satu elemen <%s> diizinkan di dalam <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Elemen <%s> tidak diijinkan pada aras puncak"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Elemen <default> diperlukan di <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Teks tidak boleh muncul di dalam <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Peringatan: referensi terdefinisi ke <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "--strict dinyatakan; keluar."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Seluruh berkas telah diabaikan."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Mengabaikan berkas ini."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2894,7 +2922,7 @@ msgstr ""
"Tak ada kunci “%s” dalam skema “%s” sebagaimana dinyatakan di berkas penimpa "
"“%s”; mengabaikan penimpa untuk kunci ini."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2903,7 +2931,7 @@ msgstr ""
"Tak ada kunci “%s” dalam skema “%s” sebagaimana dinyatakan di berkas penimpa "
"“%s” dan --strict dinyatakan; keluar."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2913,7 +2941,7 @@ msgstr ""
"dalam skema \"%s\" (menimpa berkas \"%s\"); mengabaikan penimpa untuk kunci "
"ini."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2922,7 +2950,7 @@ msgstr ""
"Tak bisa menyediakan penimpa per-destop untuk kunci \"%s\" yang dilokalkan "
"dalam skema \"%s\" (menimpa berkas \"%s\") dan --strict dinyatakan; keluar."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2931,7 +2959,7 @@ msgstr ""
"Galat saat mengurai kunci “%s” dalam skema “%s” sebagaimana dinyatakan di "
"berkas penimpa “%s”: %s. Mengabaikan penimpa untuk kunci ini."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2940,7 +2968,7 @@ msgstr ""
"Galat saat mengurai kunci “%s” dalam skema “%s” sebagaimana dinyatakan di "
"berkas penimpa “%s”: %s. dan --strict dinyatakan; keluar."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2949,7 +2977,7 @@ msgstr ""
"Penimpa bagi kunci “%s” dalam skema “%s” di berkas penimpa “%s” di luar "
"jangkauan yang diberikan di dalam skema; mengabaikan penimpa untuk kunci ini."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2958,7 +2986,7 @@ msgstr ""
"Penimpa bagi kunci “%s” dalam skema “%s” di berkas penimpa “%s” di luar "
"jangkauan yang diberikan di dalam skema dan --strict dinyatakan; keluar."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2967,7 +2995,7 @@ msgstr ""
"Penimpa bagi kunci “%s” dalam skema “%s” di berkas penimpa “%s” tak ada di "
"dalam daftar pilihan yang valid; mengabaikan penimpa untuk kunci ini."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2976,23 +3004,23 @@ msgstr ""
"Penimpa bagi kunci “%s” dalam skema “%s” di berkas penimpa “%s” tak ada di "
"dalam daftar pilihan yang valid dan --strict dinyatakan; keluar."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Dimana menyimpan berkas gschemas.compiled"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Gugurkan pada sebarang galat dalam skema"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Jangan menulis berkas gschema.compiled"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Jangan paksakan pembatasan nama kunci"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3002,26 +3030,26 @@ msgstr ""
"Berkas skema diharuskan memiliki ekstensi .gschema.xml,\n"
"dan berkas singgahan dinamai gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Anda mesti memberikan hanya satu nama direktori"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Tidak ada berkas skema yang ditemukan: tidak melakukan apa pun."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr ""
"Tidak ada berkas skema yang ditemukan: menghapus berkas keluaran yang telah "
"ada."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Nama berkas tak valid: %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Galat saat mengambil info sistem berkas bagi %s: %s"
@@ -3030,257 +3058,257 @@ msgstr "Galat saat mengambil info sistem berkas bagi %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Kait wadah bagi berkas %s tak ditemukan"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Tak bisa mengubah nama direktori root"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Galat saat mengubah nama berkas %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Tak bisa mengubah nama berkas, nama telah dipakai"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Nama berkas tak valid"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Galat saat membuka berkas %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Galat saat menghapus berkas %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Galat saat memindah berkas %s ke tempat sampah: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Tak bisa membuat direktori tempat sampah %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr ""
"Tak bisa menemukan direktori puncak %s yang akan dibuang ke tempat sampah"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Penyampahan pada kandar internal sistem tidak didukung"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Tak bisa menemukan atau membuat direktori %s ke tempat %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Tak bisa membuat berkas info pembuangan ke tempat sampah bagi %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr ""
"Tak bisa membuang berkas %s ke tempat sampah menyeberang batas sistem berkas"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Tak bisa membuang berkas %s ke tempat sampah: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Tak bisa membuang berkas ke tempat sampah %s"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Galat saat membuat direktori %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Sistem berkas tak mendukung taut simbolik"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Galat saat membuat taut simbolis %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Galat saat memindah berkas %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Tak bisa memindah direktori atas direktori"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Pembuatan berkas cadangan gagal"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Galat saat menghapus berkas tujuan: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Perpindahan antar kait tak didukung"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Tak bisa menentukan penggunaan diska dari %s: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Nilai atribut tak boleh NULL"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Tipe atribut tak valid (diharapkan string atau tidak valid)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Nama atribut tambahan yang tak valid"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Galat saat menata atribut yang diperluas \"%s\": %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (pengkodean tak valid)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Galat saat mengambil informasi bagi berkas \"%s\": %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Galat saat mengambil informasi bagi descriptor berkas: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Tipe atribut tak valid (diharapkan uint32)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Tipe atribut tak valid (diharapkan uint64)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Jenis atribut tidak sah (diharapkan bita berjenis string)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Tak bisa menata ijin pada taut simbolik"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Galat saat menata ijin: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Galat saat menata pemilik: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "symlink tak boleh NULL"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Galat saat menata taut simbolis: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "Galat saat menata symlink: berkas bukan suatu link simbolik"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Nanodetik ekstra %d untuk stempel waktu UNIX %lld negatif"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr "Nanodetik ekstra %d untuk stempel waktu UNIX %lld mencapai 1 detik"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "Stempel waktu UNIX %lld tidak muat ke dalam 64 bit"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"Stempel waktu UNIX %lld berada di luar rentang yang didukung oleh Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Nama berkas \"%s\" tidak dapat dikonversi ke UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Berkas “%s” tidak dapat dibuka: Galat Windows %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "Galat saat menata waktu modifikasi atau akses untuk berkas “%s”: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Galat saat menata waktu modifikasi atau akses: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "Konteks SELinux tak boleh NULL"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux tak diaktifkan di sistem ini"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Galat saat menata konteks SELinux: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Penataan atribut %s tak didukung"
@@ -3327,13 +3355,13 @@ msgstr "Galat saat membuat salinan cadangan: %s"
msgid "Error renaming temporary file: %s"
msgstr "Galat saat mengubah nama berkas sementara: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Galat saat memenggal berkas: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Galat saat membuka berkas \"%s\": %s"
@@ -3350,7 +3378,7 @@ msgstr "Berkas tujuan bukan berkas biasa"
msgid "The file was externally modified"
msgstr "Berkas telah diubah secara eksternal"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Galat saat menghapus berkas lama: %s"
@@ -3481,42 +3509,42 @@ msgstr "Versi NetworkManager terlalu tua"
msgid "Output stream doesn’t implement write"
msgstr "Stream keluaran tidak mengimplementasikan penulisan"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Jumlah vektor yang dilewatkan ke %s terlalu besar"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Stream sumber telah ditutup"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Kegagalan pencarian proksi yang tidak ditentukan"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Galat saat mengurai \"%s\": %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s tidak diterapkan"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Domain tidak valid"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Sumber daya pada \"%s\" tidak ada"
@@ -3526,16 +3554,16 @@ msgstr "Sumber daya pada \"%s\" tidak ada"
msgid "The resource at “%s” failed to decompress"
msgstr "Sumber daya di \"%s\" gagal didekompresi"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Berkas sumber daya tidak dapat diganti namanya"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "Sumber daya pada \"%s\" bukan suatu direktori"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Stream masukan tidak mengimplementasikan seek"
@@ -3900,7 +3928,8 @@ msgstr "Soket tak valid, inisialisasi gagal karena: %s"
msgid "Socket is already closed"
msgstr "Soket telah ditutup"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "I/O soket kehabisan waktu"
@@ -3909,161 +3938,161 @@ msgstr "I/O soket kehabisan waktu"
msgid "creating GSocket from fd: %s"
msgstr "membuat GSocket dari fd: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Tak bisa membuat soket: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Famili tak dikenal dinyatakan"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Protokol tak dikenal dinyatakan"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "Tak bisa memakai operasi datagram pada suatu soket bukan datagram."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Tak bisa memakai operasi datagram pada suatu soket yang tenggang waktunya "
"ditata."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "tak bisa mendapat alamat lokal: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "tak bisa mendapat alamat jauh: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "tak bisa mendengarkan: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Galat saat mengikat ke alamat %s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Galat saat bergabung dengan grup multicast: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Galat saat meninggalkan grup multicast: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Tak ada dukungan bagi multicast spesifik sumber"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Keluarga soket tak didukung"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "spesifik sumber bukan alamat IPv4"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Nama antarmuka terlalu panjang"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Antarmuka tidak ditemukan: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Tak ada dukungan bagi multicast spesifik sumber IPV4"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Tak ada dukungan bagi multicast spesifik sumber IPV6"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Galat saat menerima sambungan: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Penyambungan tengah berlangsung"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Tak bisa mendapat kesalahan yang tertunda: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Galat saat menerima data: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Galat saat mengirim data: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Tak bisa mematikan soket: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Galat saat menutup soket: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Menunggu kondisi soket: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Tak bisa mengirim pesan: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Vektor pesan terlalu besar"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Galat saat menerima pesan: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage tak didukung pada Windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Galat saat menerima pesan: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Tak bisa membaca kredensial soket: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials tidak diimplementasikan untuk OS ini"
@@ -4183,7 +4212,7 @@ msgstr "Proksi SOCSKv5 tidak mendukung jenis alamat yang diberikan."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Galat tak dikenal pada proksi SOCKSv5."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr ""
@@ -4199,46 +4228,46 @@ msgstr "Pipa tak didukung pada platform ini"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Tak bisa menangani pengkodean versi %d dari GThemedIcon"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Tak ada alamat valid yang ditemukan"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Galat saat mengurai balik \"%s\": %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Galat saat mengurai record %s DNS: paket DNS salah bentuk"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Tidak ada record DNS dengan tipe yang diminta bagi \"%s\""
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Sementara tidak dapat mengurai \"%s\""
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Galat saat mengurai \"%s\""
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Paket DNS salah bentuk"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Gagal mengurai respon DNS untuk \"%s\": "
@@ -4297,57 +4326,57 @@ msgstr "Sandi yang dimasukkan salah."
msgid "Sending FD is not supported"
msgstr "Mengirim FD tidak didukung"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "Mengharapkan 1 pesan kendali, memperoleh %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Tipe yang tak diharapkan dari data ancillary"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "Mengharapkan satu fd, tapi mendapat %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Menerima fd yang tak valid"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Menerima FD tidak didukung"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Galat saat mengirim kredensial: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Galat ketika memeriksa apakah SO_PASSCRED diaktifkan bagi soket: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Galat saat mengaktifkan SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Berharap membaca bita tunggal untuk penerimaan kredensial tapi membaca nol "
"bita"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Tak mengharapkan pesan kendali, tapi memperoleh %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Galat ketika mematikan SO_PASSCRED: %s"
@@ -4363,7 +4392,7 @@ msgstr "Galat saat membaca dari descriptor berkas: %s"
msgid "Error closing file descriptor: %s"
msgstr "Galat saat menutup descriptor berkas: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Akar sistem berkas"
@@ -4445,129 +4474,124 @@ msgstr "Jalankan layanan dbus"
msgid "Wrong args\n"
msgstr "Arg salah\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Atribut \"%s\" yang tidak diharapkan untuk elemen \"%s\""
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Atribut \"%s\" dari elemen \"%s\" tak ditemukan"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Tag \"%s\" yang tak diharapkan, diharapkan tag \"%s\""
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Tag \"%s\" yang tak diharapkan di dalam \"%s\""
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Tanggal/waktu ‘%s’ tidak valid dalam berkas markah"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Tak ditemukan markah yang valid di direktori data"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Markah untuk URI \"%s\" telah ada"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Tak ditemukan markah untuk URI \"%s\""
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Tidak ada jenis MIME yang didefinisikan pada markah untuk URI \"%s\""
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Tidak ada tanda privat yang ditetapkan dalam markah untuk URI \"%s\""
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "Tidak ada grup yang ditetapkan dalam markah untuk URI \"%s\""
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Tak ditemukan aplikasi terdaftar dengan nama \"%s\" bagi markah \"%s\""
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Gagal mengembangkan baris eksekusi \"%s\" dengan URI \"%s\""
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Karakter yang tidak dapat diterima dalam masukan konversi"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Rangkaian karakter sebagian pada akhir input"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Tak bisa mengonversi fallback \"%s\" menjadi codeset \"%s\""
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "NUL bita tertanam dalam masukan konversi"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "NUL bita tertanam dalam keluaran konversi"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "URI \"%s\" bukanlah URI absolut dengan menggunakan skema \"file\""
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "URI berkas lokal \"%s\" tak boleh mengandung \"#\""
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "URI \"%s\" tidak valid"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Nama host dari URI \"%s\" tidak valid"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "URI \"%s\" mengandung karakter yang di-escape secara tidak valid"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Nama path \"%s\" bukan lokasi absolut"
@@ -4990,78 +5014,78 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "Galat saat membuka direktori \"%s\": %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "Tak bisa mengalokasikan %lu bita untuk membaca berkas \"%s\""
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Galat saat membaca berkas \"%s\": %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Berkas \"%s\" terlalu besar"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Gagal membaca dari berkas \"%s\": %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Gagal membuka berkas \"%s\": %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Gagal mendapat atribut berkas \"%s\": fstat() gagal: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Gagal membuka berkas \"%s\": fdopen() gagal: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "Gagal mengubah nama berkas \"%s\" menjadi \"%s\": g_rename() gagal: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Gagal menulis berkas \"%s\": write() gagal: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Gagal menulis berkas \"%s\": fsync() gagal: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Gagal membuat berkas \"%s\": %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "Berkas \"%s\" yang ada tidak dapat dibuang: g_unlink() gagal: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Templat \"%s\" tidak valid, tidak boleh mengandung \"%s\""
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Templat \"%s\" tidak memuat XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Gagal membaca taut simbolik \"%s\": %s"
@@ -5088,15 +5112,15 @@ msgstr "Kanal terputus pada karakter sebagian"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Tak bisa melakukan pembacaan mentah dalam g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Berkas kunci yang valid tak ditemukan pada direktori yang dicari"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Bukan berkas biasa"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5104,51 +5128,51 @@ msgstr ""
"Berkas kunci mengandung baris \"%s\" yang bukan suatu pasangan kunci-nilai, "
"kelompok, atau komentar"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Nama grup tak valid: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Berkas kunci tidak mulai dengan sebuah kelompok"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Nama kunci tak valid: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Berkas kunci mengandung enkoding \"%s\" yang tidak didukung"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Berkas kunci tidak memiliki grup \"%s\""
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Berkas kunci tidak memiliki kunci \"%s\" dalam kelompok \"%s\""
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
"Berkas kunci mengandung kunci \"%s\" dengan nilai \"%s\" yang bukan UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr ""
"Berkas kunci mengandung kunci \"%s\" yang nilainya tidak dapat diterjemahkan."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5157,81 +5181,81 @@ msgstr ""
"Berkas kunci mengandung kunci \"%s\" dalam grup \"%s\" yang nilainya tidak "
"dapat diterjemahkan."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Kunci \"%s\" dalam grup \"%s\" bernilai \"%s\" padahal diharapkan %s"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "Berkas kunci mengandung karakter escape pada akhir baris"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4378
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Berkas kunci memuat urutan escape \"%s\" yang tidak valid"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4530
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Nilai \"%s\" tidak bisa diterjemahkan sebagai sebuah bilangan."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4544
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Nilai bilangan bulat \"%s\" di luar jangkauan"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Nilai \"%s\" tidak dapat diterjemahkan sebagai sebuah bilangan float."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4616
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Nilai \"%s\" tidak dapat diterjemahkan sebagai sebuah boolean."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr "Gagal mengambil atribut berkas \"%s%s%s%s\": fstat() gagal: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Gagal memetakan %s%s%s%s: mmap() gagal: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Gagal membuka berkas \"%s\": open() gagal: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Galat pada baris %d karakter ke-%d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Teks UTF-8 dalam nama tak valid — bukan “%s” yang valid"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "“%s” bukan suatu nama yang valid"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "“%s” bukan suatu nama yang valid: \"%c\""
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Galat pada baris ke-%d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5240,7 +5264,7 @@ msgstr ""
"Gagal saat mengurai \"%-.*s\", yang seharusnya sebuah digit dalam referensi "
"karakter (misalnya &#234;) — mungkin digitnya terlalu besar"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5250,25 +5274,25 @@ msgstr ""
"menggunakan karakter ampersand tanpa bermaksud menjadikannya sebagai entitas "
"— escape ampersand sebagai &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr ""
"Referensi karakter \"%-.*s\" tidak mengenkode karakter yang diperbolehkan"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Ada entitas \"&;\" yang kosong; entitas yang benar antara lain adalah: &amp; "
"&quot; &lt; &gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Nama entitas \"%-.*s\" tak dikenal"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5277,11 +5301,11 @@ msgstr ""
"ampersand tanpa bermaksud menjadikannya sebagai entitas — escape ampersand "
"sebagai &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Dokumen harus dimulai dengan elemen (misalnya <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5290,7 +5314,7 @@ msgstr ""
"“%s” bukanlah karakter yang benar bila diikuti dengan karakter \"<\". Ini "
"tidak boleh menjadi nama elemen"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5299,12 +5323,12 @@ msgstr ""
"Ada karakter aneh “%s”, seharusnya ada \">\" untuk mengakhiri tag elemen "
"kosong “%s”"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Terlalu banyak atribut dalam elemen \"%s\""
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5312,7 +5336,7 @@ msgstr ""
"Ada karakter aneh “%s”. Seharusnya ada karakter '=' setelah nama atribut "
"“%s” pada elemen “%s”"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5323,7 +5347,7 @@ msgstr ""
"padaelemen “%s”, atau bisa juga ada atribut lain. Mungkin Anda menggunakan "
"karakter yang tidak diperbolehkan pada nama atribut"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5332,7 +5356,7 @@ msgstr ""
"Ada karakter aneh “%s”. Seharusnya ada tanda kutip buka setelah tanda sama "
"dengan saat memberikan nilai atribut “%s” pada elemen “%s”"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5341,7 +5365,7 @@ msgstr ""
"“%s” bukan karakter yang benar bila diikuti dengan karakter \"</\". Karena "
"itu “%s” tidak boleh dijadikan awal nama elemen"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5350,26 +5374,26 @@ msgstr ""
"“%s” bukan karakter yang benar bila diikuti elemen penutup “%s”. Karakter "
"yang diperbolehkan adalah \">\""
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Elemen “%s” sudah ditutup, tidak ada elemen yang masih terbuka"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "Elemen “%s” sudah ditutup, tapi elemen yang masih terbuka adalah “%s”"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Dokumen kosong atau berisi whitespace saja"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr ""
"Dokumen terpotong tidak sempurna sesaat setelah membuka kurung siku \"<\""
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5378,7 +5402,7 @@ msgstr ""
"Dokumen terpotong tidak sempurna dengan elemen yang masih terbuka — “%s” "
"adalah elemen terakhir yang dibuka"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5387,19 +5411,19 @@ msgstr ""
"Dokumen terpotong tidak sempurna, seharusnya ada kurung siku penutup untuk "
"mengakhiri tag <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Dokumen terpotong tidak sempurna pada dalam nama elemen"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Dokumen terpotong tidak sempurna di dalam nama atribut"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Dokumen terpotong tidak sempurna di dalam tag pembukaan elemen."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5407,23 +5431,23 @@ msgstr ""
"Dokumen terpotong tidak sempurna setelah tanda sama dengan mengikuti nama "
"atribut. Tidak ada nilai atribut yang diperoleh"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Dokumen tidak sempura saat ada dalam nilai atribut"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "Dokumen terpotong tidak sempurna di dalam tag penutup elemen “%s”"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Dokumen terpotong tidak sempurna di dalam tag penutup untuk elemen yang "
"belum dibuka"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"Dokumen terpotong tidak sempurna di dalam keterangan atau instruksi "
@@ -5488,184 +5512,180 @@ msgstr "Argumen untuk %s tidak lengkap"
msgid "Unknown option %s"
msgstr "Pilihan tidak diketahui %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "objek rusak"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "kehabisan memori"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "batas pelacakan balik tercapai"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "kesalahan internal"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "pola memuat butir yang tak didukung bagi pencocokan sebagian"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr "acuan balik sebagai persyaratan tak didukung bagi pencocokan sebagian"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "batas rekursi dicapai"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "nilai offset salah"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "pengulangan rekursi"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "mode pencocokan diminta yang tidak dikompilasi untuk JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "galat tak dikenal"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ di akhir pola"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c di akhir pola"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "karakter tak dikenal setelah \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "angka tak urut di quantifier {}"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "angka terlalu besar di quantifier {}"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "pengakhiran ] hilang bagi kelas karakter"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "rangkaian escape tak valid dalam kelas karakter"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "jangkauan tak terurut dalam kelas karakter"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "tak ada yang dapat diulang"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "karakter tak dikenal setelah (? atau (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "kelas POSIX bernama hanya didukung di dalam suatu kelas"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "elemen kolasi POSIX tak didukung"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "pengakhiran ) hilang"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "acuan ke sub pola yang tak ada"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "tak ada ) setelah komentar"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "ekspresi reguler terlalu besar"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "angka atau nama salah bentuk setelah (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "panjang asersi lookbehind tak tetap"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "grup bersyarat mengandung lebih dari dua cabang"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "berharap asersi setelah (?("
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "acuan bernomor tak boleh nol"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "nama kelas POSIX tak dikenal"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "nilai karakter dalam urutan \\x{...} terlalu besar"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C tak diijinkan di asersi lookbehind"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "terminator di nama sub pola hilang"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "dua sub pola yang bernama memiliki nama sama"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "urutan \\P atau \\p salah bentuk"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "nama properti tak dikenal setelah \\P atau \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "nama sub pola terlalu panjang (maksimum 32 karakter)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "terlalu banyak sub pola yang dinamai (maksimum 10.000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "nilai oktal lebih dari \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "grup DEFINE mengandung lebih dari satu cabang"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "opsi NEWLINE tak konsisten"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5673,119 +5693,119 @@ msgstr ""
"\\g tak diikuti oleh bilangan atau nama dalam tanda kutip, kurung siku, atau "
"kurung kurawal, atau bilangan polos"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "argumen tak diijinkan bagi (*ACCEPT), (*FAIL), atau (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) tak dikenal"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "angka terlalu besar"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "kurang nama sub pola setelah (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "nama-nama berbeda bagi sub pola dari bilangan yang sama tak diijinkan"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) mesti punya argumen"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c mesti diikuti oleh sebuah karakter ASCII"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"\\k tak diikuti oleh nama yang diapit tanda kutip, kurung siku, atau kurung "
"kurawal"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N tak didukung dalam suatu kelas"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "nama terlalu panjang dalam (*MARK), (*PRUNE), (*SKIP), atau (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "kode tumpah (overflow)"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "karakter tak dikenal setelah (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "menimpa ruang kerja kompilasi"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "sub pola yang diacu yang sebelumnya diperiksa tak ditemukan"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Galat saat mencocokkan ekspresi reguler %s: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "Pustaka PCRE dikompail tanpa dukungan UTF-8"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "Pustaka PCRE dikompail dengan opsi yang tak kompatibel"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Galat saat mengkompail ekspresi reguler ‘%s’ pada karakter %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "digit heksadesimal atau \"}\" diharapkan"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "digit heksadesimal diharapkan"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "kurang \"<\" dalam acuan simbolis"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "acuan simbolis yang belum selesai"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "acuan simbolis dengan panjang nol"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "diharapkan digit"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "acuan simbolis yang tak legal"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "\"\\\" akhir yang tersesat"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "urutan escape tak dikenal"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Galat saat mengurai teks pengganti \"%s\" pada karakter %lu: %s"
@@ -5816,136 +5836,141 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Teksnya kosong (atau hanya berisi whitespace)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Gagal saat membaca data dari proses anak (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Galat tak terduga dalam membaca data dari proses anak (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Terjadi galat pada fungsi waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Proses anak keluar dengan kode %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Proses anak dimatikan oleh sinyal %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Proses anak dihentikan oleh sinyal %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Proses anak keluar secara tak normal"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Gagal saat membaca dari pipe anak (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Gagal menelurkan proses anak \"%s\" (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Gagal saat fork (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Gagal pindah ke direktori \"%s\" (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Gagal menjalankan proses anak \"%s\" (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Gagal membuka berkas untuk memetakan ulang deskriptor berkas (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Gagal menduplikasi deskriptor berkas untuk proses anak (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Gagal saat fork proses anak (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Gagal menutup deskriptor berkas untuk proses anak (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Galat tak dikenal ketika menjalankan proses anak \"%s\""
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "Gagal saat membaca data yang dibutuhkan dai pipe pid anak (%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Argumen FDs sumber tidak valid"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Gagal untuk membaca data dari proses anak"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Gagal saat menjalankan proses anak (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Gagal dup() dalam proses anak (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Nama program salah: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "String tidak benar pada vektor argumen pada %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "String tidak benar pada variabel lingkungan: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Direktori aktif salah: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Gagal saat menjalankan program bantuan (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -5953,231 +5978,231 @@ msgstr ""
"Terjadi galat pada g_io_channel_win32_poll() ketika membaca data dari anak "
"proses"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "String kosong bukan angka"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "\"%s\" bukan bilangan bertanda"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Nomor \"%s\" berada di luar batas [%s, %s]"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "\"%s\" bukan bilangan tak bertanda"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "%-encode dalam URI tidak valid"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Karakter ilegal dalam URI"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Karakter non-UTF-8 dalam URI"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Alamat IPv6 tidak valid ‘%.*s’ dalam URI"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Alamat IP dikodekan ilegal ‘%.*s’ dalam URI"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Nama host internasional ilegal '%.*s' di URI"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Tak bisa menguraikan port ‘%.*s’ dalam URI"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Port ‘%.*s’ dalam URI di luar jangkauan"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "URI ‘%s’ bukan URI absolut"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "URI ‘%s’ tidak memiliki komponen host"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "URI tidak absolut, dan tidak ada dasar URI yang disediakan"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "'=' dan nilai parameter tidak ada"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Gagal mengalokasikan memori"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Karakter di luar jangkauan UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Rangkaian input konversi salah"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Karakter di luar jangkauan UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "bita"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bita"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6185,7 +6210,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6193,7 +6218,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6202,27 +6227,27 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
msgstr[0] "%s bita"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s bita"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6233,156 +6258,32 @@ msgstr[0] "%u bita"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
-
-#~ msgid "edit name: %s\n"
-#~ msgstr "sunting nama: %s\n"
-
-#~ msgid "internal error or corrupted object"
-#~ msgstr "kesalahan internal atau objek rusak"
-
-#~ msgid "invalid combination of newline flags"
-#~ msgstr "kombinasi tanda baris baru yang tak valid"
-
-#~ msgid "short utf8"
-#~ msgstr "utf8 pendek"
-
-#~ msgid "unexpected repeat"
-#~ msgstr "pengulangan yang tak diharapkan"
-
-#~ msgid "failed to get memory"
-#~ msgstr "gagal memperoleh memori"
-
-#~ msgid ") without opening ("
-#~ msgstr ") tanpa pembuka ("
-
-#~ msgid "unrecognized character after (?<"
-#~ msgstr "karakter tak dikenal setelah (?<"
-
-#~ msgid "(?R or (?[+-]digits must be followed by )"
-#~ msgstr "(?R atau (?[+-]digit mesti diikuti oleh )"
-
-#~ msgid "invalid condition (?(0)"
-#~ msgstr "kondisi tak valid (?(0)"
-
-#~ msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
-#~ msgstr "escape \\L, \\l, \\N{name}, \\U, dan \\u tak didukung"
-
-#~ msgid "recursive call could loop indefinitely"
-#~ msgstr "pemanggilan rekursif bisa berulang tak terhingga"
-
-#~ msgid "digit expected after (?+"
-#~ msgstr "diharapkan digit setelah (?+"
-
-#~ msgid "] is an invalid data character in JavaScript compatibility mode"
-#~ msgstr ""
-#~ "] adalah karakter data tak valid dalam mode kompatibilitas JavaScript"
-
-#~ msgid "too many forward references"
-#~ msgstr "terlalu banyak acuan maju"
-
-#~ msgid "character value in \\u.... sequence is too large"
-#~ msgstr "nilai karakter dalam urutan \\u.... terlalu besar"
-
-#~ msgid "PCRE library is compiled without UTF8 properties support"
-#~ msgstr "Pustaka PCRE dikompail tanpa dukungan properti UTF-8"
-
-#~ msgid "Error while optimizing regular expression %s: %s"
-#~ msgstr "Galat saat mengoptimasi ekspresi reguler %s: %s"
-
-#~ msgid "%.1f MB"
-#~ msgstr "%.1f MB"
-
-#~ msgid "%.1f GB"
-#~ msgstr "%.1f GB"
-
-#~ msgid "%.1f TB"
-#~ msgstr "%.1f TB"
-
-#~ msgid "%.1f PB"
-#~ msgstr "%.1f PB"
-
-#~ msgid "%.1f EB"
-#~ msgstr "%.1f EB"
-
-#~ msgid "%.1f KiB"
-#~ msgstr "%.1f KiB"
-
-#~ msgid "%.1f MiB"
-#~ msgstr "%.1f MiB"
-
-#~ msgid "%.1f GiB"
-#~ msgstr "%.1f GiB"
-
-#~ msgid "%.1f TiB"
-#~ msgstr "%.1f TiB"
-
-#~ msgid "%.1f PiB"
-#~ msgstr "%.1f PiB"
-
-#~ msgid "%.1f EiB"
-#~ msgstr "%.1f EiB"
-
-#~ msgid "%.1f kb"
-#~ msgstr "%.1f kb"
-
-#~ msgid "%.1f Mb"
-#~ msgstr "%.1f Mb"
-
-#~ msgid "%.1f Gb"
-#~ msgstr "%.1f Gb"
-
-#~ msgid "%.1f Tb"
-#~ msgstr "%.1f Tb"
-
-#~ msgid "%.1f Pb"
-#~ msgstr "%.1f Pb"
-
-#~ msgid "%.1f Eb"
-#~ msgstr "%.1f Eb"
-
-#~ msgid "%.1f Kib"
-#~ msgstr "%.1f Kib"
-
-#~ msgid "%.1f Mib"
-#~ msgstr "%.1f Mib"
-
-#~ msgid "%.1f Gib"
-#~ msgstr "%.1f Gib"
-
-#~ msgid "%.1f Tib"
-#~ msgstr "%.1f Tib"
-
-#~ msgid "%.1f Pib"
-#~ msgstr "%.1f Pib"
-
-#~ msgid "%.1f Eib"
-#~ msgstr "%.1f Eib"
diff --git a/po/it.po b/po/it.po
index ec582fcd5..beefc851f 100644
--- a/po/it.po
+++ b/po/it.po
@@ -1,7 +1,7 @@
# Italian translation for glib.
# This file is distributed under the same license as glib package
# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc.
-# Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022 Free Software Foundation, Inc.
+# Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Free Software Foundation, Inc.
# Christopher R. Gabriel <cgabriel@pluto.linux.it> 2002.
#
# Nota sull'uso delle virgolette:
@@ -12,14 +12,14 @@
# Seek è tradotto posizionare
# Polling - proviamo con controllo sistematico (MS lo lascia non tradotto)
# Luca Ferretti <lferrett@gnome.org>, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012.
-# Milo Casagrande <milo@milo.name>, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022.
+# Milo Casagrande <milo@milo.name>, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-03-22 15:19+0000\n"
-"PO-Revision-Date: 2022-03-22 17:13+0100\n"
+"POT-Creation-Date: 2023-09-12 10:26+0000\n"
+"PO-Revision-Date: 2023-09-13 09:25+0200\n"
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
"Language: it\n"
@@ -27,142 +27,153 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-"X-Generator: Poedit 3.0.1\n"
+"X-Generator: Poedit 3.1.1\n"
-#: gio/gappinfo.c:333
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "L'impostazione di applicazioni predefinite non è ancora supportata"
# %s è l'attributo
-#: gio/gappinfo.c:366
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"L'impostazione dell'applicazione come ultima utilizzata per tipo non è "
"ancora supportata"
-#: gio/gapplication.c:500
-msgid "GApplication options"
-msgstr "Opzioni GApplication"
+#: gio/gappinfo.c:814
+#, c-format
+msgid "Failed to find default application for content type ‘%s’"
+msgstr "Nessuna applicazione predefinita trovata per il tipo di contenuto «%s»"
+
+#: gio/gappinfo.c:874
+#, c-format
+msgid "Failed to find default application for URI Scheme ‘%s’"
+msgstr "Nessuna applicazione predefinita trovata per lo schema URI «%s»"
+
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "Opzioni GApplication:"
-#: gio/gapplication.c:500
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Mostra opzioni GApplication"
-#: gio/gapplication.c:545
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr "Avvia modalità di servizio GApplication (da file di servizio D-Bus)"
-#: gio/gapplication.c:557
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Soprascrive l'ID dell'applicazione"
-#: gio/gapplication.c:569
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Sostituisce l'istanza in esecuzione"
-#: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:494 gio/gsettings-tool.c:584
+#: gio/gapplication-tool.c:47 gio/gapplication-tool.c:48 gio/gio-tool.c:229
+#: gio/gresource-tool.c:496 gio/gsettings-tool.c:586
msgid "Print help"
msgstr "Stampa l'aiuto"
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:495 gio/gresource-tool.c:563
+#: gio/gapplication-tool.c:49 gio/gresource-tool.c:497 gio/gresource-tool.c:565
msgid "[COMMAND]"
msgstr "[COMANDO]"
-#: gio/gapplication-tool.c:49 gio/gio-tool.c:228
+#: gio/gapplication-tool.c:51 gio/gio-tool.c:230
msgid "Print version"
msgstr "Stampa la versione"
-#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:590
+#: gio/gapplication-tool.c:52 gio/gsettings-tool.c:592
msgid "Print version information and exit"
msgstr "Stampa informazioni di versione ed esce"
-#: gio/gapplication-tool.c:53
+#: gio/gapplication-tool.c:55
msgid "List applications"
msgstr "Elenca le applicazioni"
-#: gio/gapplication-tool.c:54
+#: gio/gapplication-tool.c:56
msgid "List the installed D-Bus activatable applications (by .desktop files)"
msgstr ""
"Elenca le applicazioni installate attivabili da D-Bus (per file .desktop)"
-#: gio/gapplication-tool.c:57
+#: gio/gapplication-tool.c:59
msgid "Launch an application"
msgstr "Lancia un'applicazione"
-#: gio/gapplication-tool.c:58
+#: gio/gapplication-tool.c:60
msgid "Launch the application (with optional files to open)"
msgstr "Lancia l'applicazione (con gli opzionali file da aprire)"
-#: gio/gapplication-tool.c:59
+#: gio/gapplication-tool.c:61
msgid "APPID [FILE…]"
msgstr "IDAPP [FILE…]"
-#: gio/gapplication-tool.c:61
+#: gio/gapplication-tool.c:63
msgid "Activate an action"
msgstr "Attiva un'azione"
-#: gio/gapplication-tool.c:62
+#: gio/gapplication-tool.c:64
msgid "Invoke an action on the application"
msgstr "Invoca un'azione sull'applicazione"
-#: gio/gapplication-tool.c:63
+#: gio/gapplication-tool.c:65
msgid "APPID ACTION [PARAMETER]"
msgstr "IDAPP AZIONE [PARAMETRO]"
-#: gio/gapplication-tool.c:65
+#: gio/gapplication-tool.c:67
msgid "List available actions"
msgstr "Elenca le azioni disponibili"
-#: gio/gapplication-tool.c:66
+#: gio/gapplication-tool.c:68
msgid "List static actions for an application (from .desktop file)"
msgstr "Elenca le azioni statiche di un'applicazione (dal file .desktop)"
-#: gio/gapplication-tool.c:67 gio/gapplication-tool.c:73
+#: gio/gapplication-tool.c:69 gio/gapplication-tool.c:75
msgid "APPID"
msgstr "IDAPP"
-#: gio/gapplication-tool.c:72 gio/gapplication-tool.c:135 gio/gdbus-tool.c:106
-#: gio/gio-tool.c:224
+#: gio/gapplication-tool.c:74 gio/gapplication-tool.c:137 gio/gdbus-tool.c:108
+#: gio/gio-tool.c:226
msgid "COMMAND"
msgstr "COMANDO"
-#: gio/gapplication-tool.c:72
+#: gio/gapplication-tool.c:74
msgid "The command to print detailed help for"
msgstr "Il comando di cui stampare istruzioni dettagliate"
-#: gio/gapplication-tool.c:73
+#: gio/gapplication-tool.c:75
msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Identificatore dell'applicazione in formato D-Bus (org.example.viewer)"
-#: gio/gapplication-tool.c:74 gio/glib-compile-resources.c:820
-#: gio/glib-compile-resources.c:826 gio/glib-compile-resources.c:855
-#: gio/gresource-tool.c:501 gio/gresource-tool.c:567
+#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
+#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FILE"
-#: gio/gapplication-tool.c:74
+#: gio/gapplication-tool.c:76
msgid "Optional relative or absolute filenames, or URIs to open"
msgstr "Nomi di file relativi o assoluti oppure URI da aprire"
-#: gio/gapplication-tool.c:75
+#: gio/gapplication-tool.c:77
msgid "ACTION"
msgstr "AZIONE"
# predicato > sostantivo per introspezione, direi che funziona
-#: gio/gapplication-tool.c:75
+#: gio/gapplication-tool.c:77
msgid "The action name to invoke"
msgstr "Il nome dell'azione da invocare"
-#: gio/gapplication-tool.c:76
+#: gio/gapplication-tool.c:78
msgid "PARAMETER"
msgstr "PARAMETERO"
-#: gio/gapplication-tool.c:76
+#: gio/gapplication-tool.c:78
msgid "Optional parameter to the action invocation, in GVariant format"
msgstr "Parametro opzioni per l'azione da invocare, in formato GVariant"
-#: gio/gapplication-tool.c:98 gio/gresource-tool.c:532 gio/gsettings-tool.c:676
+#: gio/gapplication-tool.c:100 gio/gresource-tool.c:534
+#: gio/gsettings-tool.c:678
#, c-format
msgid ""
"Unknown command %s\n"
@@ -171,26 +182,26 @@ msgstr ""
"Comando «%s» sconosciuto\n"
"\n"
-#: gio/gapplication-tool.c:103
+#: gio/gapplication-tool.c:105
msgid "Usage:\n"
msgstr "Uso:\n"
-#: gio/gapplication-tool.c:116 gio/gresource-tool.c:557
-#: gio/gsettings-tool.c:711
+#: gio/gapplication-tool.c:118 gio/gresource-tool.c:559
+#: gio/gsettings-tool.c:713
msgid "Arguments:\n"
msgstr "Argomenti:\n"
-#: gio/gapplication-tool.c:135 gio/gio-tool.c:224
+#: gio/gapplication-tool.c:137 gio/gio-tool.c:226
msgid "[ARGS…]"
msgstr "[ARG…]"
-#: gio/gapplication-tool.c:136
+#: gio/gapplication-tool.c:138
#, c-format
msgid "Commands:\n"
msgstr "Comandi:\n"
#. Translators: do not translate 'help', but please translate 'COMMAND'.
-#: gio/gapplication-tool.c:148
+#: gio/gapplication-tool.c:150
#, c-format
msgid ""
"Use “%s help COMMAND” to get detailed help.\n"
@@ -199,7 +210,7 @@ msgstr ""
"Per maggiori informazioni, usare «%s help COMANDO».\n"
"\n"
-#: gio/gapplication-tool.c:167
+#: gio/gapplication-tool.c:169
#, c-format
msgid ""
"%s command requires an application id to directly follow\n"
@@ -208,13 +219,13 @@ msgstr ""
"il comando %s richiede l'id di un'applicazione\n"
"\n"
-#: gio/gapplication-tool.c:173
+#: gio/gapplication-tool.c:175
#, c-format
msgid "invalid application id: “%s”\n"
msgstr "id dell'applicazione non valido: «%s»\n"
#. Translators: %s is replaced with a command name like 'list-actions'
-#: gio/gapplication-tool.c:184
+#: gio/gapplication-tool.c:186
#, c-format
msgid ""
"“%s” takes no arguments\n"
@@ -223,22 +234,22 @@ msgstr ""
"«%s» non accetta alcun argomento\n"
"\n"
-#: gio/gapplication-tool.c:268
+#: gio/gapplication-tool.c:270
#, c-format
msgid "unable to connect to D-Bus: %s\n"
msgstr "impossibile connettersi a D-Bus: %s\n"
-#: gio/gapplication-tool.c:288
+#: gio/gapplication-tool.c:290
#, c-format
msgid "error sending %s message to application: %s\n"
msgstr "errore nell'inviare il messaggio %s all'applicazione: %s\n"
-#: gio/gapplication-tool.c:319
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr ""
"è necessario fornire il nome di un'azione dopo l'id dell'applicazione\n"
-#: gio/gapplication-tool.c:327
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -247,25 +258,25 @@ msgstr ""
"nome dell'azione non valido: «%s»\n"
"i nomi delle azioni devo essere composti da lettere, cifre, «-» e «.»\n"
-#: gio/gapplication-tool.c:346
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "errore nell'analizzare il parametro dell'azione: %s\n"
-#: gio/gapplication-tool.c:358
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "le azioni accettano al massimo un parametro\n"
-#: gio/gapplication-tool.c:413
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "il comando list-action accetta solo l'id dell'applicazione"
-#: gio/gapplication-tool.c:423
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "impossibile trovare il file desktop per l'applicazione %s\n"
-#: gio/gapplication-tool.c:468
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -275,129 +286,129 @@ msgstr ""
"\n"
# count (gssize) è un parametro delle funzione
-#: gio/gbufferedinputstream.c:420 gio/gbufferedinputstream.c:498
-#: gio/ginputstream.c:179 gio/ginputstream.c:379 gio/ginputstream.c:648
-#: gio/ginputstream.c:1050 gio/goutputstream.c:223 gio/goutputstream.c:1049
-#: gio/gpollableinputstream.c:205 gio/gpollableoutputstream.c:277
+#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Valore count troppo grande passato a %s"
-#: gio/gbufferedinputstream.c:891 gio/gbufferedoutputstream.c:575
-#: gio/gdataoutputstream.c:562
+#: gio/gbufferedinputstream.c:893 gio/gbufferedoutputstream.c:577
+#: gio/gdataoutputstream.c:564
msgid "Seek not supported on base stream"
msgstr "Posizionamento non supportato sullo stream di base"
-#: gio/gbufferedinputstream.c:938
+#: gio/gbufferedinputstream.c:940
msgid "Cannot truncate GBufferedInputStream"
msgstr "Impossibile troncare GBufferedInputStream"
-#: gio/gbufferedinputstream.c:983 gio/ginputstream.c:1239 gio/giostream.c:300
-#: gio/goutputstream.c:2198
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Lo stream è già chiuso"
-#: gio/gbufferedoutputstream.c:612 gio/gdataoutputstream.c:592
+#: gio/gbufferedoutputstream.c:614 gio/gdataoutputstream.c:594
msgid "Truncate not supported on base stream"
msgstr "Troncamento non supportato sullo stream di base"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1857 gio/gdbusprivate.c:1418
-#: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
+#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
msgstr "L'operazione è stata annullata"
-#: gio/gcharsetconverter.c:260
+#: gio/gcharsetconverter.c:262
msgid "Invalid object, not initialized"
msgstr "Oggetto non valido, non inizializzato"
-#: gio/gcharsetconverter.c:281 gio/gcharsetconverter.c:309
+#: gio/gcharsetconverter.c:283 gio/gcharsetconverter.c:311
msgid "Incomplete multibyte sequence in input"
msgstr "Sequenza multi-byte non valida in ingresso"
-#: gio/gcharsetconverter.c:315 gio/gcharsetconverter.c:324
+#: gio/gcharsetconverter.c:317 gio/gcharsetconverter.c:326
msgid "Not enough space in destination"
msgstr "Spazio non sufficiente nella destinazione"
-#: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1266 glib/gconvert.c:449 glib/gconvert.c:879
-#: glib/giochannel.c:1573 glib/giochannel.c:1615 glib/giochannel.c:2470
-#: glib/gutf8.c:890 glib/gutf8.c:1344
+#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Sequenza di byte non valida nell'ingresso per la conversione"
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:457 glib/gconvert.c:793
-#: glib/giochannel.c:1580 glib/giochannel.c:2482
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Errore durante la conversione: %s"
-#: gio/gcharsetconverter.c:445 gio/gsocket.c:1147
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Inizializzazione annullabile non supportata"
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:322 glib/giochannel.c:1401
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "La conversione del set di caratteri da «%s» a «%s» non è supportata"
-#: gio/gcharsetconverter.c:460 glib/gconvert.c:326
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Impossibile aprire il convertitore da «%s» a «%s»"
-#: gio/gcontenttype.c:470
+#: gio/gcontenttype.c:472
#, c-format
msgid "%s type"
msgstr "Tipo %s"
-#: gio/gcontenttype-win32.c:196
+#: gio/gcontenttype-win32.c:198
msgid "Unknown type"
msgstr "Tipo sconosciuto"
-#: gio/gcontenttype-win32.c:198
+#: gio/gcontenttype-win32.c:200
#, c-format
msgid "%s filetype"
msgstr "Tipo di file %s"
-#: gio/gcredentials.c:335
+#: gio/gcredentials.c:337
msgid "GCredentials contains invalid data"
msgstr "GCredentials contiene data non validi"
-#: gio/gcredentials.c:395 gio/gcredentials.c:686
+#: gio/gcredentials.c:397 gio/gcredentials.c:688
msgid "GCredentials is not implemented on this OS"
msgstr "GCredentials non è implementato su questo SO"
-#: gio/gcredentials.c:550 gio/gcredentials.c:568
+#: gio/gcredentials.c:552 gio/gcredentials.c:570
msgid "There is no GCredentials support for your platform"
msgstr "Non c'è alcun supporto a GCredentials per la piattaforma in uso"
-#: gio/gcredentials.c:626
+#: gio/gcredentials.c:628
msgid "GCredentials does not contain a process ID on this OS"
msgstr "GCredentials non contiene un ID di processo su questo SO"
-#: gio/gcredentials.c:680
+#: gio/gcredentials.c:682
msgid "Credentials spoofing is not possible on this OS"
msgstr ""
"La falsificazione delle identità non è consentita su questo sistema operativo"
-#: gio/gdatainputstream.c:304
+#: gio/gdatainputstream.c:306
msgid "Unexpected early end-of-stream"
msgstr "End-of-stream prematuro inatteso"
-#: gio/gdbusaddress.c:162 gio/gdbusaddress.c:236 gio/gdbusaddress.c:325
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "La chiave «%s» non è valida nella voce indirizzo «%s»"
-#: gio/gdbusaddress.c:175
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr ""
"Combinazione coppia chiave/valore senza significato nella voce indirizzo «%s»"
# Come chiarito in un messaggio seguente, path, tmpdir e abstract sono nomi chi chiavi (NdT)
-#: gio/gdbusaddress.c:184
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -406,29 +417,29 @@ msgstr ""
"L'indirizzo «%s» non è valido (necessario esattamente una tra le chiavi "
"path, tmpdir o abstract)"
-#: gio/gdbusaddress.c:251 gio/gdbusaddress.c:262 gio/gdbusaddress.c:277
-#: gio/gdbusaddress.c:340 gio/gdbusaddress.c:351
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
+#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
msgstr "Errore nell'indirizzo «%s» — l'attributo «%s» non è valido"
-#: gio/gdbusaddress.c:421 gio/gdbusaddress.c:680
+#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:682
#, c-format
msgid "Unknown or unsupported transport “%s” for address “%s”"
msgstr "Trasporto «%s» sconosciuto o non supportato per l'indirizzo «%s»"
-#: gio/gdbusaddress.c:465
+#: gio/gdbusaddress.c:467
#, c-format
msgid "Address element “%s” does not contain a colon (:)"
msgstr "L'elemento indirizzo «%s» non contiene due punti (:)"
-#: gio/gdbusaddress.c:474
+#: gio/gdbusaddress.c:476
#, c-format
msgid "Transport name in address element “%s” must not be empty"
msgstr ""
"Il nome del trasporto nell'elemento indirizzo «%s» non deve essere vuoto"
-#: gio/gdbusaddress.c:495
+#: gio/gdbusaddress.c:497
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
@@ -437,7 +448,7 @@ msgstr ""
"La coppia chiave/valore %d, «%s», nell'elemento indirizzo «%s», non contiene "
"un segno di uguale"
-#: gio/gdbusaddress.c:506
+#: gio/gdbusaddress.c:508
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
@@ -445,7 +456,7 @@ msgstr ""
"La coppia chiave/valore %d, «%s», nell'elemento indirizzo «%s», non deve "
"avere una chiave vuota"
-#: gio/gdbusaddress.c:520
+#: gio/gdbusaddress.c:522
#, c-format
msgid ""
"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
@@ -454,7 +465,7 @@ msgstr ""
"Errore nell'eseguire l'unescaping sulla chiave o sul valore nella coppia "
"chiave/valore %d, «%s», nell'elemento di indirizzo «%s»"
-#: gio/gdbusaddress.c:588
+#: gio/gdbusaddress.c:590
#, c-format
msgid ""
"Error in address “%s” — the unix transport requires exactly one of the keys "
@@ -463,83 +474,83 @@ msgstr ""
"Errore nell'indirizzo «%s» — il trasporto unix richiede espressamente "
"l'impostazione di una tra le chiavi «path» o «abstract»"
-#: gio/gdbusaddress.c:623
+#: gio/gdbusaddress.c:625
#, c-format
msgid "Error in address “%s” — the host attribute is missing or malformed"
msgstr ""
"Errore nell'indirizzo «%s» — manca l'attributo «host» oppure non è valido"
-#: gio/gdbusaddress.c:637
+#: gio/gdbusaddress.c:639
#, c-format
msgid "Error in address “%s” — the port attribute is missing or malformed"
msgstr ""
"Errore nell'indirizzo «%s» — manca l'attributo «port» oppure non è valido"
-#: gio/gdbusaddress.c:651
+#: gio/gdbusaddress.c:653
#, c-format
msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
msgstr ""
"Errore nell'indirizzo «%s» — manca l'attributo «noncefile» oppure non è "
"valido"
-#: gio/gdbusaddress.c:672
+#: gio/gdbusaddress.c:674
msgid "Error auto-launching: "
msgstr "Errore nell'avvio automatico: "
-#: gio/gdbusaddress.c:725
+#: gio/gdbusaddress.c:727
#, c-format
msgid "Error opening nonce file “%s”: %s"
msgstr "Errore nell'aprire il file nonce «%s»: %s"
-#: gio/gdbusaddress.c:744
+#: gio/gdbusaddress.c:746
#, c-format
msgid "Error reading from nonce file “%s”: %s"
msgstr "Errore nel leggere dal file nonce «%s»: %s"
-#: gio/gdbusaddress.c:753
+#: gio/gdbusaddress.c:755
#, c-format
msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
msgstr "Errore nel leggere dal file nonce «%s»: attesi 16 byte, ottenuti %d"
-#: gio/gdbusaddress.c:771
+#: gio/gdbusaddress.c:773
#, c-format
msgid "Error writing contents of nonce file “%s” to stream:"
msgstr "Errore nello scrivere i contenuti del file nonce «%s» sullo stream:"
-#: gio/gdbusaddress.c:986
+#: gio/gdbusaddress.c:988
msgid "The given address is empty"
msgstr "L'indirizzo fornito è vuoto"
-#: gio/gdbusaddress.c:1099
+#: gio/gdbusaddress.c:1101
#, c-format
msgid "Cannot spawn a message bus when AT_SECURE is set"
msgstr ""
"Impossibile eseguire lo spawn di un bus di messaggi quando AT_SECURE è "
"impostato"
-#: gio/gdbusaddress.c:1106
+#: gio/gdbusaddress.c:1108
msgid "Cannot spawn a message bus without a machine-id: "
msgstr ""
"Impossibile eseguire lo spawn di un bus di messaggi senza un machine-id: "
-#: gio/gdbusaddress.c:1113
+#: gio/gdbusaddress.c:1115
#, c-format
msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
msgstr "Impossibile lanciare automaticamente D-Bus senza $DISPLAY X11"
-#: gio/gdbusaddress.c:1155
+#: gio/gdbusaddress.c:1157
#, c-format
msgid "Error spawning command line “%s”: "
msgstr "Errore nell'eseguire lo spawn della riga di comando «%s»: "
-#: gio/gdbusaddress.c:1224
+#: gio/gdbusaddress.c:1226
#, c-format
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
"Impossibile determinare l'indirizzo del bus di sessione (non implementato "
"per questo S.O.)"
-#: gio/gdbusaddress.c:1373 gio/gdbusconnection.c:7318
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -548,7 +559,7 @@ msgstr ""
"Impossibile determinare l'indirizzo del bus dalla variabile d'ambiente "
"DBUS_STARTER_BUS_TYPE — valore «%s» sconosciuto"
-#: gio/gdbusaddress.c:1382 gio/gdbusconnection.c:7327
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -556,7 +567,7 @@ msgstr ""
"Impossibile determinare l'indirizzo del bus poiché la variabile d'ambiente "
"DBUS_STARTER_BUS_TYPE non è impostata"
-#: gio/gdbusaddress.c:1392
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Tipo di bus %d sconosciuto"
@@ -579,20 +590,24 @@ msgstr ""
"Esauriti tutti i meccanismi di autenticazione disponibili (provati: %s) "
"(disponibili: %s)"
-#: gio/gdbusauth.c:1171
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Assenza di contenuto inattesa nel tentativo di leggere un byte"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Gli ID utente devono essere gli stessi per nodo e server"
-#: gio/gdbusauth.c:1183
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Annullato attraverso GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:300
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Errore nell'ottenere informazioni per la directory «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:315
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -600,32 +615,32 @@ msgstr ""
"I permessi sulla directory «%s» non sono validi: attesa la modalità 0700, "
"ottenuta 0%o"
-#: gio/gdbusauthmechanismsha1.c:348 gio/gdbusauthmechanismsha1.c:359
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Errore nel creare la directory «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:361 gio/gfile.c:1080 gio/gfile.c:1318
-#: gio/gfile.c:1456 gio/gfile.c:1694 gio/gfile.c:1749 gio/gfile.c:1807
-#: gio/gfile.c:1891 gio/gfile.c:1948 gio/gfile.c:2012 gio/gfile.c:2067
-#: gio/gfile.c:3772 gio/gfile.c:3912 gio/gfile.c:4205 gio/gfile.c:4675
-#: gio/gfile.c:5086 gio/gfile.c:5171 gio/gfile.c:5261 gio/gfile.c:5358
-#: gio/gfile.c:5445 gio/gfile.c:5546 gio/gfile.c:8375 gio/gfile.c:8465
-#: gio/gfile.c:8549 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Operazione non supportata"
-#: gio/gdbusauthmechanismsha1.c:404
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Errore nell'aprire il portachiavi «%s» in lettura: "
-#: gio/gdbusauthmechanismsha1.c:427 gio/gdbusauthmechanismsha1.c:769
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "La riga %d del portachiavi su «%s» con contenuto «%s» non è corretta"
-#: gio/gdbusauthmechanismsha1.c:441 gio/gdbusauthmechanismsha1.c:783
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -633,7 +648,7 @@ msgstr ""
"Il primo token della riga %d del portachiavi su «%s» con contenuto «%s» non "
"è corretto"
-#: gio/gdbusauthmechanismsha1.c:455 gio/gdbusauthmechanismsha1.c:797
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -641,60 +656,60 @@ msgstr ""
"Il secondo token della riga %d del portachiavi su «%s» con contenuto «%s» "
"non è corretto"
-#: gio/gdbusauthmechanismsha1.c:479
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Non è stato trovato il cookie con ID %d nel portachiavi su «%s»"
-#: gio/gdbusauthmechanismsha1.c:536
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Errore nel creare il file di blocco «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:609
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Errore nell'eliminare il vecchio file di blocco «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:648
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Errore nel chiudere il file di blocco «%s» (unlinked): %s"
-#: gio/gdbusauthmechanismsha1.c:659
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Errore nell'eseguire l'unlink del file di blocco «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:736
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Errore nell'aprire il portachiavi «%s» in scrittura: "
-#: gio/gdbusauthmechanismsha1.c:930
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(inoltre non è riuscito il rilascio del blocco per «%s»: %s) "
-#: gio/gdbusconnection.c:588 gio/gdbusconnection.c:2402
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "La connessione è chiusa"
# Sarebbe anche "il tempo è scaduto", ma non so
# se la forma in cui l'hanno messo ha un particolare
# senso, per cui la mantengo assieme a timeout
-#: gio/gdbusconnection.c:1887
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "È stato raggiunto il timeout"
-#: gio/gdbusconnection.c:2525
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Incontrate flag non supportate durante la costruzione di una connessione "
"client-side"
-#: gio/gdbusconnection.c:4253 gio/gdbusconnection.c:4607
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -702,105 +717,111 @@ msgstr ""
"Interfaccia «org.freedesktop.DBus.Properties» inesistente sull'oggetto nel "
"percorso %s"
-#: gio/gdbusconnection.c:4398
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Proprietà «%s» inesistente"
-#: gio/gdbusconnection.c:4410
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "La proprietà «%s» non è leggibile"
-#: gio/gdbusconnection.c:4421
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "La proprietà «%s» non è scrivibile"
-#: gio/gdbusconnection.c:4441
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Errore nell'impostare la proprietà «%s»: atteso il tipo «%s», ottenuto «%s»"
-#: gio/gdbusconnection.c:4546 gio/gdbusconnection.c:4761
-#: gio/gdbusconnection.c:6744
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Interfaccia «%s» inesistente"
-#: gio/gdbusconnection.c:4983 gio/gdbusconnection.c:7258
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Interfaccia «%s» inesistente sull'oggetto nel percorso %s"
-#: gio/gdbusconnection.c:5084
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Metodo «%s» inesistente"
-#: gio/gdbusconnection.c:5115
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Il tipo di messaggio «%s» non corrisponde al tipo atteso «%s»"
-#: gio/gdbusconnection.c:5318
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Risulta già esportato un oggetto per l'interfaccia %s su %s"
-#: gio/gdbusconnection.c:5545
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Impossibile recuperare la proprietà %s.%s"
-#: gio/gdbusconnection.c:5601
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Impossibile impostare la proprietà %s.%s"
-#: gio/gdbusconnection.c:5780
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Il metodo «%s» ha restituito il tipo «%s», ma era atteso «%s»"
-#: gio/gdbusconnection.c:6856
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Il metodo «%s» sull'interfaccia «%s» con firma «%s» non esiste"
-#: gio/gdbusconnection.c:6977
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Un sottoalbero per %s è già esportato"
-#: gio/gdbusconnection.c:7266
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "L'oggetto non esiste nel percorso «%s»"
# suppongo INVALID sia parola chiave
-#: gio/gdbusmessage.c:1301
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "il tipo è INVALID"
-#: gio/gdbusmessage.c:1312
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "messaggio METHOD_CALL: manca il campo header PATH o MEMBER"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"messaggio METHOD_CALL: campo header PATH o MEMBER non valido o mancante"
-#: gio/gdbusmessage.c:1323
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "messaggio METHOD_RETURN: manca il campo header REPLY_SERIAL"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"messaggio METHOD_RETURN: campo header REPLY_SERIAL non valido o mancante"
-#: gio/gdbusmessage.c:1335
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "messaggio ERROR: manca il campo header REPLY_SERIAL o ERROR_NAME"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"messaggio ERROR: campo header REPLY_SERIAL o ERROR_NAME non valido o mancante"
-#: gio/gdbusmessage.c:1348
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "messaggio SIGNAL: manca il campo header PATH, INTERFACE o MEMBER"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"messaggio SIGNAL: campo header PATH, INTERFACE o MEMBER non valido o mancante"
-#: gio/gdbusmessage.c:1356
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -808,7 +829,7 @@ msgstr ""
"messaggio SIGNAL: il campo header PATH sta usando il valore riservato /org/"
"freedestkop/DBus/Local"
-#: gio/gdbusmessage.c:1364
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -816,7 +837,7 @@ msgstr ""
"messaggio SIGNAL: il campo header INTERFACE sta usando il valore riservato "
"org.freedestkop.DBus.Local"
-#: gio/gdbusmessage.c:1412 gio/gdbusmessage.c:1472
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
@@ -824,12 +845,12 @@ msgstr[0] "Si voleva leggere %lu byte, ma ne sono stati ottenuti %lu"
msgstr[1] "Si volevano leggere %lu byte, ma ne sono stati ottenuti %lu"
# FIXME? plurale?
-#: gio/gdbusmessage.c:1426
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Atteso byte NUL dopo la stringa «%s», ma trovato %d byte"
-#: gio/gdbusmessage.c:1445
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -839,21 +860,21 @@ msgstr ""
"(la lunghezza della stringa è %d). La stringa UTF-8 valida fino a quel punto "
"era «%s»"
-#: gio/gdbusmessage.c:1509 gio/gdbusmessage.c:1785 gio/gdbusmessage.c:1996
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Valori troppo annidati"
-#: gio/gdbusmessage.c:1677
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Il valore «%s» analizzato non è un percorso oggetto D-Bus valido"
-#: gio/gdbusmessage.c:1701
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Il valore «%s» analizzato non è una firma D-Bus valida"
-#: gio/gdbusmessage.c:1752
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -866,7 +887,7 @@ msgstr[1] ""
"Incontrato un array lungo %u byte. La lunghezza massima è 2<<26 byte (64 "
"MiB)."
-#: gio/gdbusmessage.c:1772
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -875,19 +896,19 @@ msgstr ""
"Incontrato un array di tipo «a%c» la cui lunghezza attesa era di %u byte, ma "
"la lunghezza reale era di %u byte"
-#: gio/gdbusmessage.c:1926 gio/gdbusmessage.c:2645
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Le strutture vuote (tuple) non sono ammesse in D-Bus"
# VARIANT è uno dei container type di D-Bus
# anche signature sono cose specifiche del protocollo
-#: gio/gdbusmessage.c:1980
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Il valore «%s» analizzato per il variant non è una firma D-Bus valida"
# eeeehh?????
-#: gio/gdbusmessage.c:2021
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -895,7 +916,7 @@ msgstr ""
"Errore nel deserializzare il GVariant con la stringa di tipo «%s» dal "
"formato wire D-Bus"
-#: gio/gdbusmessage.c:2206
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -904,26 +925,26 @@ msgstr ""
"Valore endianness non valido. Atteso 0x6c («l») o 0x42 («B»), trovato invece "
"il valore 0x%02x"
-#: gio/gdbusmessage.c:2225
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Versione major del protocollo non valida. Atteso 1, ma trovato %d"
-#: gio/gdbusmessage.c:2283 gio/gdbusmessage.c:2881
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Trovato header firma, ma non è di tipo firma"
-#: gio/gdbusmessage.c:2295
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr "Trovato header firma con firma «%s», ma il corpo del messaggio è vuoto"
-#: gio/gdbusmessage.c:2310
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Il valore «%s» analizzato non è una firma D-Bus valida (per il corpo)"
-#: gio/gdbusmessage.c:2342
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -932,11 +953,11 @@ msgstr[0] ""
msgstr[1] ""
"Nessun signature header nel messaggio, ma il corpo del messaggio è di %u byte"
-#: gio/gdbusmessage.c:2352
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Impossibile deserializzare il messaggio: "
-#: gio/gdbusmessage.c:2698
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -944,7 +965,7 @@ msgstr ""
"Errore nel serializzare il GVariant con la stringa di tipo «%s» al formato "
"wire D-Bus"
-#: gio/gdbusmessage.c:2835
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
@@ -952,17 +973,17 @@ msgstr ""
"Il numero di descrittori file nel messaggio (%d) è diverso da quello del "
"campo header (%d)"
-#: gio/gdbusmessage.c:2843
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Impossibile serializzare il messaggio: "
-#: gio/gdbusmessage.c:2896
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
"Il corpo del messaggio presenta la firma «%s», ma non c'è alcun header firma"
-#: gio/gdbusmessage.c:2906
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -971,55 +992,55 @@ msgstr ""
"Il corpo del messaggio presenta la firma «%s», ma la firma nel campo header "
"è «%s»"
-#: gio/gdbusmessage.c:2922
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Il corpo del messaggio è vuoto, ma la firma nel campo header è «(%s)»"
# non mi convincono "di ritorno" e "corpo"
# ma altrove corpo non ci stava male
-#: gio/gdbusmessage.c:3477
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Errore di ritorno con corpo di tipo «%s»"
# come sopra
-#: gio/gdbusmessage.c:3485
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Errore di ritorno con corpo vuoto"
-#: gio/gdbusprivate.c:2185
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(digitare un carattere qualsiasi per chiudere questa finestra)\n"
-#: gio/gdbusprivate.c:2371
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "dbus di sessione non in esecuzione e autolaunch non riuscito"
-#: gio/gdbusprivate.c:2394
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Impossibile ottenere profilo hardware: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2445
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "impossibile caricare %s o %s: "
-#: gio/gdbusproxy.c:1573
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Errore nel chiamare StartServiceByName per %s: "
-#: gio/gdbusproxy.c:1596
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Risposta %d inattesa dal metodo StartServiceByName(\"%s\")"
-#: gio/gdbusproxy.c:2707 gio/gdbusproxy.c:2842
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1029,31 +1050,31 @@ msgstr ""
"un proprietario e il proxy è stato costruito con il flag "
"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:767
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Spazio nome astratto non supportato"
-#: gio/gdbusserver.c:860
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Impossibile specificare il file nonce quando si crea un server"
-#: gio/gdbusserver.c:942
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Errore nello scrivere il file nonce su «%s»: %s"
-#: gio/gdbusserver.c:1117
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "La stringa «%s» non è un GUID D-Bus valido"
# anche transport sono cose specifiche di D-Bus
-#: gio/gdbusserver.c:1157
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Impossibile ascoltare sul transport «%s» non supportato"
-#: gio/gdbus-tool.c:111
+#: gio/gdbus-tool.c:113
#, c-format
msgid ""
"Commands:\n"
@@ -1076,67 +1097,67 @@ msgstr ""
"\n"
"Usare «%s COMANDO --help» per informazioni su ciascun comando.\n"
-#: gio/gdbus-tool.c:202 gio/gdbus-tool.c:274 gio/gdbus-tool.c:346
-#: gio/gdbus-tool.c:370 gio/gdbus-tool.c:860 gio/gdbus-tool.c:1245
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Errore: %s\n"
-#: gio/gdbus-tool.c:213 gio/gdbus-tool.c:287 gio/gdbus-tool.c:1749
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Errore nell'analizzare XML introspection: %s\n"
-#: gio/gdbus-tool.c:251
+#: gio/gdbus-tool.c:253
#, c-format
msgid "Error: %s is not a valid name\n"
msgstr "Errore: «%s» non è un nome valido\n"
-#: gio/gdbus-tool.c:256 gio/gdbus-tool.c:746 gio/gdbus-tool.c:1064
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Errore: «%s» non è un percorso di oggetto valido\n"
-#: gio/gdbus-tool.c:404
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Connette al bus di sistema"
-#: gio/gdbus-tool.c:405
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Connette al bus di sessione"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Connette all'indirizzo D-Bus fornito"
-#: gio/gdbus-tool.c:416
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Opzioni endpoint connessione:"
-#: gio/gdbus-tool.c:417
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Opzioni per specificare gli endpoint di connessione"
-#: gio/gdbus-tool.c:440
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Nessun endpoint di connessione specificato"
-#: gio/gdbus-tool.c:450
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Specificati endpoint di connessione multipli"
-#: gio/gdbus-tool.c:523
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr ""
"Attenzione: secondo dati di introspezione, l'interfaccia «%s» non esiste\n"
-#: gio/gdbus-tool.c:532
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1145,116 +1166,116 @@ msgstr ""
"Attenzione: secondi dati di introspezione, il metodo «%s» non esiste "
"sull'interfaccia «%s»\n"
-#: gio/gdbus-tool.c:594
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Destinazione opzionale per il segnale (nome univoco)"
-#: gio/gdbus-tool.c:595
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Percorso oggetto su cui emettere il segnale"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Segnale e nome dell'interfaccia"
-#: gio/gdbus-tool.c:629
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Emette un segnale."
-#: gio/gdbus-tool.c:684 gio/gdbus-tool.c:1001 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Errore nel connettersi: %s\n"
-#: gio/gdbus-tool.c:704
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Errore: «%s» non è un nome di bus univoco valido.\n"
-#: gio/gdbus-tool.c:723 gio/gdbus-tool.c:1044 gio/gdbus-tool.c:1879
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Errore: non è specificato il percorso dell'oggetto\n"
-#: gio/gdbus-tool.c:766
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Errore: non è specificato il nome del segnale\n"
-#: gio/gdbus-tool.c:780
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Errore: il nome del segnale «%s» non è valido\n"
-#: gio/gdbus-tool.c:792
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Errore: «%s» non è un nome di interfaccia valido\n"
-#: gio/gdbus-tool.c:798
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Errore: «%s» non è un nome di membro valido\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:835 gio/gdbus-tool.c:1176
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Errore nell'analizzare il parametro %d: %s\n"
-#: gio/gdbus-tool.c:867
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Errore nell'eseguire il flush della connessione: %s\n"
-#: gio/gdbus-tool.c:895
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Nome della destinazione su cui invocare il metodo"
-#: gio/gdbus-tool.c:896
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Percorso dell'oggetto su cui invocare il metodo"
# oppure "Nome del metodo e dell'interfaccia" ???
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Metodo e nome dell'interfaccia"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Timeout in secondi"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Consenti autorizzazione interattiva"
-#: gio/gdbus-tool.c:946
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Invoca un metodo su un oggetto remoto."
-#: gio/gdbus-tool.c:1018 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Errore: non è specificata la destinazione\n"
-#: gio/gdbus-tool.c:1029 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Errore: «%s» non è un nome di bus valido\n"
-#: gio/gdbus-tool.c:1079
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Errore: non è specificato il nome del metodo\n"
-#: gio/gdbus-tool.c:1090
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Errore: il nome di metodo «%s» non è valido\n"
-#: gio/gdbus-tool.c:1168
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Errore nell'analizzare il parametro %d di tipo «%s»: %s\n"
-#: gio/gdbus-tool.c:1194
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Errore nell'aggiungere l'handle %d: %s\n"
@@ -1340,27 +1361,32 @@ msgstr "Errore: troppi argomenti\n"
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Errore: %s non è un nome di bus well-known.\n"
-#: gio/gdebugcontrollerdbus.c:358
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Non autorizzato a modificare le impostazioni di debug"
# NdT: nome di applicazione (quando manca)
-#: gio/gdesktopappinfo.c:2178 gio/gdesktopappinfo.c:5105
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Senza nome"
-#: gio/gdesktopappinfo.c:2588
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Il file .desktop non specifica il campo Exec"
-#: gio/gdesktopappinfo.c:2896
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Impossibile trovare il terminale richiesto per l'applicazione"
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Programma «%s» non trovato in $PATH"
+
# NdT il primo %s è il percorso alla cartella .local/share/application
# messo tra parentesi per scelta stilistica...
-#: gio/gdesktopappinfo.c:3625
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
@@ -1368,82 +1394,82 @@ msgstr ""
# NdT il primo %s è il percorso alla cartella .local/share/application
# messo tra parentesi per scelta stilistica...
-#: gio/gdesktopappinfo.c:3629
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Impossibile creare la cartella utente di configurazione MIME (%s): %s"
-#: gio/gdesktopappinfo.c:3871 gio/gdesktopappinfo.c:3895
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Manca un identificatore nelle informazioni dell'applicazione"
-#: gio/gdesktopappinfo.c:4131
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Impossibile creare il file .desktop utente %s"
-#: gio/gdesktopappinfo.c:4267
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Definizione personalizzata per %s"
-#: gio/gdrive.c:417
+#: gio/gdrive.c:419
msgid "drive doesn’t implement eject"
msgstr "l'unità non implementa l'azione eject"
#. Translators: This is an error
#. * message for drive objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gdrive.c:495
+#: gio/gdrive.c:497
msgid "drive doesn’t implement eject or eject_with_operation"
msgstr "l'unità non implementa l'azione eject o eject_with_operation"
-#: gio/gdrive.c:571
+#: gio/gdrive.c:573
msgid "drive doesn’t implement polling for media"
msgstr "l'unità non implementa il controllo sistematico dei supporti"
-#: gio/gdrive.c:778
+#: gio/gdrive.c:780
msgid "drive doesn’t implement start"
msgstr "l'unità non implementa l'azione start"
-#: gio/gdrive.c:880
+#: gio/gdrive.c:882
msgid "drive doesn’t implement stop"
msgstr "l'unità non implementa l'azione stop"
-#: gio/gdtlsconnection.c:1186 gio/gtlsconnection.c:955
+#: gio/gdtlsconnection.c:1188 gio/gtlsconnection.c:957
msgid "TLS backend does not implement TLS binding retrieval"
msgstr "il backend TLS non implementa il recupero del binding TLS"
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
-#: gio/gdummytlsbackend.c:513
+#: gio/gdummytlsbackend.c:197 gio/gdummytlsbackend.c:323
+#: gio/gdummytlsbackend.c:515
msgid "TLS support is not available"
msgstr "Non è disponibile il supporto a TLS"
-#: gio/gdummytlsbackend.c:423
+#: gio/gdummytlsbackend.c:425
msgid "DTLS support is not available"
msgstr "Non è disponibile il supporto a DTLS"
-#: gio/gemblem.c:323
+#: gio/gemblem.c:325
#, c-format
msgid "Can’t handle version %d of GEmblem encoding"
msgstr "Impossibile gestire la versione %d della codifica GEmblem"
-#: gio/gemblem.c:333
+#: gio/gemblem.c:335
#, c-format
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr "Numero di token non valido (%d) nella codifica GEmblem"
-#: gio/gemblemedicon.c:362
+#: gio/gemblemedicon.c:364
#, c-format
msgid "Can’t handle version %d of GEmblemedIcon encoding"
msgstr "Impossibile gestire la versione %d della codifica GEmblemedIcon"
-#: gio/gemblemedicon.c:372
+#: gio/gemblemedicon.c:374
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr "Numero di token non valido (%d) nella codifica GEmblemedIcon"
-#: gio/gemblemedicon.c:395
+#: gio/gemblemedicon.c:397
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "Atteso un GEmblem per GEmblemedIcon"
@@ -1451,217 +1477,229 @@ msgstr "Atteso un GEmblem per GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1579
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "L'oggetto mount contenuto non esiste"
-#: gio/gfile.c:2626 gio/glocalfile.c:2486
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Impossibile copiare sopra la directory"
-#: gio/gfile.c:2686
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Impossibile copiare la directory sopra la directory"
-#: gio/gfile.c:2694
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Il file destinazione esiste"
-#: gio/gfile.c:2713
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Impossibile copiare la directory ricorsivamente"
-# see man splice(2) :)
-#: gio/gfile.c:3014
-msgid "Splice not supported"
-msgstr "Splice non supportato"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Copia intervallo file non supportata"
-#: gio/gfile.c:3018
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Errore nell'eseguire lo splice del file: %s"
-#: gio/gfile.c:3170
+# see man splice(2) :)
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Splice non supportato"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Copia (reflink/clone) tra oggetti mount non supportata"
-#: gio/gfile.c:3174
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Copia (reflink/clone) non supportata o non valida"
-#: gio/gfile.c:3179
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Copia (reflink/clone) non supportata o non ha funzionato"
-#: gio/gfile.c:3244
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Impossibile copiare il file speciale"
-#: gio/gfile.c:4138
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Fornito valore di collegamento simbolico non valido"
-#: gio/gfile.c:4148 glib/gfileutils.c:2333
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Collegamenti simbolici non supportati"
-#: gio/gfile.c:4316
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Cestino non supportato"
-#: gio/gfile.c:4428
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "I nomi di file non possono contenere «%c»"
-#: gio/gfile.c:7028 gio/gvolume.c:364
+# (%s) è in fondo perché risolto in g_strerror (gint)
+#: gio/gfile.c:7155 gio/gfile.c:7281
+#, c-format
+msgid "Failed to create a temporary directory for template “%s”: %s"
+msgstr ""
+"Creazione di una directory temporanea per il modello «%s» non riuscita: %s"
+
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "il volume non implementa l'azione mount"
-#: gio/gfile.c:7142 gio/gfile.c:7190
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Non risulta registrata alcuna applicazione per gestire questo file"
-#: gio/gfileenumerator.c:212
+#: gio/gfileenumerator.c:214
msgid "Enumerator is closed"
msgstr "L'enumeratore è chiuso"
# una sola ????
-#: gio/gfileenumerator.c:219 gio/gfileenumerator.c:278
-#: gio/gfileenumerator.c:377 gio/gfileenumerator.c:476
+#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "L'enumeratore di file presenta un'operazione in sospeso"
-#: gio/gfileenumerator.c:368 gio/gfileenumerator.c:467
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "L'enumeratore di file è già chiuso"
-#: gio/gfileicon.c:250
+#: gio/gfileicon.c:252
#, c-format
msgid "Can’t handle version %d of GFileIcon encoding"
msgstr "Impossibile gestire la versione %d della codifica GFileIcon"
-#: gio/gfileicon.c:260
+#: gio/gfileicon.c:262
msgid "Malformed input data for GFileIcon"
msgstr "Dati di input malformati per GFileIcon"
-#: gio/gfileinputstream.c:149 gio/gfileinputstream.c:394
-#: gio/gfileiostream.c:167 gio/gfileoutputstream.c:164
-#: gio/gfileoutputstream.c:497
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
+#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
+#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Lo stream non supporta query_info"
-#: gio/gfileinputstream.c:325 gio/gfileiostream.c:379
-#: gio/gfileoutputstream.c:371
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
+#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Posizionamento non supportato sullo stream"
-#: gio/gfileinputstream.c:369
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Troncamento non consentito sullo stream di input"
-#: gio/gfileiostream.c:455 gio/gfileoutputstream.c:447
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Troncamento non supportato sullo stream"
-#: gio/ghttpproxy.c:91 gio/gresolver.c:458 gio/gresolver.c:611
-#: glib/gconvert.c:1825
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Nome host non valido"
-#: gio/ghttpproxy.c:143
+#: gio/ghttpproxy.c:145
msgid "Bad HTTP proxy reply"
msgstr "Risposta proxy HTTP errata"
-#: gio/ghttpproxy.c:159
+#: gio/ghttpproxy.c:161
msgid "HTTP proxy connection not allowed"
msgstr "Connessione proxy HTTP non consentita"
-#: gio/ghttpproxy.c:164
+#: gio/ghttpproxy.c:166
msgid "HTTP proxy authentication failed"
msgstr "Autenticazione proxy HTTP non riuscita"
-#: gio/ghttpproxy.c:167
+#: gio/ghttpproxy.c:169
msgid "HTTP proxy authentication required"
msgstr "Richiesta autenticazione proxy HTTP"
-#: gio/ghttpproxy.c:171
+#: gio/ghttpproxy.c:173
#, c-format
msgid "HTTP proxy connection failed: %i"
msgstr "Connessione proxy HTTP non riuscita: %i"
-#: gio/ghttpproxy.c:266
+#: gio/ghttpproxy.c:268
msgid "HTTP proxy response too big"
msgstr "Risposta proxy HTTP troppo grande"
-#: gio/ghttpproxy.c:283
+#: gio/ghttpproxy.c:285
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "Il server proxy HTTP ha chiuso la connessione in modo inatteso."
-#: gio/gicon.c:298
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Numero di token errato (%d)"
-#: gio/gicon.c:318
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Nessun tipo per il nome di classe %s"
-#: gio/gicon.c:328
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Il tipo %s non implementa l'interfaccia GIcon"
# o non è classificato ?? ma credo classificato abbia una diversa valenza...
-#: gio/gicon.c:339
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Il tipo %s non presenta una classe"
-#: gio/gicon.c:353
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Numero di versione malformato: %s"
-#: gio/gicon.c:367
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Il tipo %s non implementa from_tokens() sull'interfaccia GIcon"
-#: gio/gicon.c:469
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Impossibile gestire la versione fornita della codifica di icona"
-#: gio/ginetaddressmask.c:182
+#: gio/ginetaddressmask.c:184
msgid "No address specified"
msgstr "Nessun indirizzo specificato"
# eh... miglorabile?
-#: gio/ginetaddressmask.c:190
+#: gio/ginetaddressmask.c:192
#, c-format
msgid "Length %u is too long for address"
msgstr "La lunghezza %u è troppo lunga per l'indirizzo"
-#: gio/ginetaddressmask.c:223
+#: gio/ginetaddressmask.c:225
msgid "Address has bits set beyond prefix length"
msgstr "L'indirizzo presenta bit impostati oltre la lunghezza del prefisso"
-#: gio/ginetaddressmask.c:300
+#: gio/ginetaddressmask.c:302
#, c-format
msgid "Could not parse “%s” as IP address mask"
msgstr "Impossibile analizzare «%s» come maschera di indirizzo IP"
-#: gio/ginetsocketaddress.c:203 gio/ginetsocketaddress.c:220
-#: gio/gnativesocketaddress.c:109 gio/gunixsocketaddress.c:228
+#: gio/ginetsocketaddress.c:205 gio/ginetsocketaddress.c:222
+#: gio/gnativesocketaddress.c:111 gio/gunixsocketaddress.c:230
msgid "Not enough space for socket address"
msgstr "Spazio non sufficiente per l'indirizzo del socket"
-#: gio/ginetsocketaddress.c:235
+#: gio/ginetsocketaddress.c:237
msgid "Unsupported socket address"
msgstr "Indirizzo del socket non supportato"
-#: gio/ginputstream.c:188
+#: gio/ginputstream.c:190
msgid "Input stream doesn’t implement read"
msgstr "Lo stream di input non implementa la lettura"
@@ -1672,128 +1710,128 @@ msgstr "Lo stream di input non implementa la lettura"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1249 gio/giostream.c:310 gio/goutputstream.c:2208
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Lo stream presenta un'operazione in sospeso"
-#: gio/gio-tool.c:160
+#: gio/gio-tool.c:162
msgid "Copy with file"
msgstr "Copia con il file"
-#: gio/gio-tool.c:164
+#: gio/gio-tool.c:166
msgid "Keep with file when moved"
msgstr "Tieni assieme al file quando spostato"
-#: gio/gio-tool.c:205
+#: gio/gio-tool.c:207
msgid "“version” takes no arguments"
msgstr "«version» non accetta alcun argomento"
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:869
+#: gio/gio-tool.c:209 gio/gio-tool.c:225 glib/goption.c:871
msgid "Usage:"
msgstr "Uso:"
-#: gio/gio-tool.c:210
+#: gio/gio-tool.c:212
msgid "Print version information and exit."
msgstr "Stampa informazioni di versione ed esce"
-#: gio/gio-tool.c:226
+#: gio/gio-tool.c:228
msgid "Commands:"
msgstr "Comandi:"
-#: gio/gio-tool.c:229
+#: gio/gio-tool.c:231
msgid "Concatenate files to standard output"
msgstr "Concatena i file sullo standard output"
-#: gio/gio-tool.c:230
+#: gio/gio-tool.c:232
msgid "Copy one or more files"
msgstr "Copia uno o più file"
-#: gio/gio-tool.c:231
+#: gio/gio-tool.c:233
msgid "Show information about locations"
msgstr "Mostra informazioni riguardo alle posizioni"
-#: gio/gio-tool.c:232
+#: gio/gio-tool.c:234
msgid "Launch an application from a desktop file"
msgstr "Avvia un'applicazione da un file desktop"
-#: gio/gio-tool.c:233
+#: gio/gio-tool.c:235
msgid "List the contents of locations"
msgstr "Elenca il contenuto delle posizioni"
-#: gio/gio-tool.c:234
+#: gio/gio-tool.c:236
msgid "Get or set the handler for a mimetype"
msgstr "Ottiene o imposta il gestore per un tipo mime"
-#: gio/gio-tool.c:235
+#: gio/gio-tool.c:237
msgid "Create directories"
msgstr "Crea directory"
-#: gio/gio-tool.c:236
+#: gio/gio-tool.c:238
msgid "Monitor files and directories for changes"
msgstr "Monitora le modifiche a file e directory"
-#: gio/gio-tool.c:237
+#: gio/gio-tool.c:239
msgid "Mount or unmount the locations"
msgstr "Monta o smonta le posizioni"
-#: gio/gio-tool.c:238
+#: gio/gio-tool.c:240
msgid "Move one or more files"
msgstr "Sposta uno o più file"
-#: gio/gio-tool.c:239
+#: gio/gio-tool.c:241
msgid "Open files with the default application"
msgstr "Apre i file con l'applicazione predefinita"
-#: gio/gio-tool.c:240
+#: gio/gio-tool.c:242
msgid "Rename a file"
msgstr "Rinomina un file"
-#: gio/gio-tool.c:241
+#: gio/gio-tool.c:243
msgid "Delete one or more files"
msgstr "Elimina uno o più file"
-#: gio/gio-tool.c:242
+#: gio/gio-tool.c:244
msgid "Read from standard input and save"
msgstr "Legge dallo standard input e salva"
-#: gio/gio-tool.c:243
+#: gio/gio-tool.c:245
msgid "Set a file attribute"
msgstr "Imposta l'attributo di un file"
-#: gio/gio-tool.c:244
+#: gio/gio-tool.c:246
msgid "Move files or directories to the trash"
msgstr "Sposta file o directory nel cestino"
-#: gio/gio-tool.c:245
+#: gio/gio-tool.c:247
msgid "Lists the contents of locations in a tree"
msgstr "Elenca il contenuto delle posizioni in un formato ad albero"
-#: gio/gio-tool.c:247
+#: gio/gio-tool.c:249
#, c-format
msgid "Use %s to get detailed help.\n"
msgstr ""
"Usare %s per maggiori informazioni d'aiuto.\n"
"\n"
-#: gio/gio-tool-cat.c:87
+#: gio/gio-tool-cat.c:89
msgid "Error writing to stdout"
msgstr "Errore nello scrivere sullo stdout"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:133 gio/gio-tool-info.c:340 gio/gio-tool-list.c:172
-#: gio/gio-tool-mkdir.c:48 gio/gio-tool-monitor.c:37 gio/gio-tool-monitor.c:39
-#: gio/gio-tool-monitor.c:41 gio/gio-tool-monitor.c:43
-#: gio/gio-tool-monitor.c:204 gio/gio-tool-mount.c:1199 gio/gio-tool-open.c:70
-#: gio/gio-tool-remove.c:48 gio/gio-tool-rename.c:45 gio/gio-tool-set.c:89
-#: gio/gio-tool-trash.c:220 gio/gio-tool-tree.c:239
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
+#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
+#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "POSIZIONE"
-#: gio/gio-tool-cat.c:138
+#: gio/gio-tool-cat.c:140
msgid "Concatenate files and print to standard output."
msgstr "Concatena i file e stampa sullo standard output"
-#: gio/gio-tool-cat.c:140
+#: gio/gio-tool-cat.c:142
msgid ""
"gio cat works just like the traditional cat utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1803,60 +1841,60 @@ msgstr ""
"posizioni GIO al posto di file locali. È possibile, per esempio, usare\n"
"smb://server/risorsa/file.txt come posizione."
-#: gio/gio-tool-cat.c:162 gio/gio-tool-info.c:371 gio/gio-tool-mkdir.c:76
-#: gio/gio-tool-monitor.c:229 gio/gio-tool-mount.c:1250 gio/gio-tool-open.c:96
-#: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:303
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
+#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Nessuna posizione fornita"
-#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:38
+#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
msgid "No target directory"
msgstr "Nessuna directory destinazione"
-#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:39
+#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41
msgid "Show progress"
msgstr "Mostra avanzamento"
-#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
+#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:42
msgid "Prompt before overwrite"
msgstr "Chiede prima di sovrascrivere"
-#: gio/gio-tool-copy.c:46
+#: gio/gio-tool-copy.c:48
msgid "Preserve all attributes"
msgstr "Preserva tutti gli attributi"
-#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
+#: gio/gio-tool-copy.c:49 gio/gio-tool-move.c:43 gio/gio-tool-save.c:51
msgid "Backup existing destination files"
msgstr "Backup dei file destinazione esistenti"
-#: gio/gio-tool-copy.c:48
+#: gio/gio-tool-copy.c:50
msgid "Never follow symbolic links"
msgstr "Non segue mai i collegamenti simbolici"
-#: gio/gio-tool-copy.c:49
+#: gio/gio-tool-copy.c:51
msgid "Use default permissions for the destination"
msgstr "Usa permessi predefiniti per la destinazione"
-#: gio/gio-tool-copy.c:74 gio/gio-tool-move.c:67
+#: gio/gio-tool-copy.c:76 gio/gio-tool-move.c:69
#, c-format
msgid "Transferred %s out of %s (%s/s)"
msgstr "Trasferiti %s di %s (%s/s)"
#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96
msgid "SOURCE"
msgstr "SORGENTE"
#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94 gio/gio-tool-save.c:160
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96 gio/gio-tool-save.c:162
msgid "DESTINATION"
msgstr "DESTINAZIONE"
-#: gio/gio-tool-copy.c:105
+#: gio/gio-tool-copy.c:107
msgid "Copy one or more files from SOURCE to DESTINATION."
msgstr "Copia uno o più file da SORGENTE a DESTINAZIONE"
-#: gio/gio-tool-copy.c:107
+#: gio/gio-tool-copy.c:109
msgid ""
"gio copy is similar to the traditional cp utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1866,98 +1904,98 @@ msgstr ""
"posizioni GIO al posto di file locali. È possibile, per esempio, usare\n"
"smb://server/risorsa/file.txt come posizione."
-#: gio/gio-tool-copy.c:149
+#: gio/gio-tool-copy.c:151
#, c-format
msgid "Destination %s is not a directory"
msgstr "La destinazione %s non è una directory"
-#: gio/gio-tool-copy.c:196 gio/gio-tool-move.c:186
+#: gio/gio-tool-copy.c:198 gio/gio-tool-move.c:188
#, c-format
msgid "%s: overwrite “%s”? "
msgstr "%s: sovrascrivere «%s»? "
-#: gio/gio-tool-info.c:37
+#: gio/gio-tool-info.c:39
msgid "List writable attributes"
msgstr "Elenca gli attributi scrivibili"
-#: gio/gio-tool-info.c:38
+#: gio/gio-tool-info.c:40
msgid "Get file system info"
msgstr "Ottiene informazioni sul file system"
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
msgid "The attributes to get"
msgstr "Gli attributi da ottenere"
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
msgid "ATTRIBUTES"
msgstr "ATTRIBUTI"
-#: gio/gio-tool-info.c:40 gio/gio-tool-list.c:39 gio/gio-tool-set.c:34
+#: gio/gio-tool-info.c:42 gio/gio-tool-list.c:40 gio/gio-tool-set.c:37
msgid "Don’t follow symbolic links"
msgstr "Non segue i collegamenti simbolici"
-#: gio/gio-tool-info.c:78
+#: gio/gio-tool-info.c:105
msgid "attributes:\n"
msgstr "attributi:\n"
#. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:134
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "nome visibile: %s\n"
#. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:139
+#: gio/gio-tool-info.c:176
#, c-format
msgid "edit name: %s\n"
msgstr "nome modificabile: %s\n"
-#: gio/gio-tool-info.c:145
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "nome: %s\n"
-#: gio/gio-tool-info.c:152
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "tipo: %s\n"
-#: gio/gio-tool-info.c:158
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "dimensione: "
-#: gio/gio-tool-info.c:163
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "nascosto\n"
-#: gio/gio-tool-info.c:166
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:172
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "percorso locale: %s\n"
-#: gio/gio-tool-info.c:205
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "mount unix: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:286
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Attributi impostabili:\n"
-#: gio/gio-tool-info.c:310
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Namespace attributi scrivibili:\n"
-#: gio/gio-tool-info.c:345
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Mostra informazioni riguardo alle posizioni"
-#: gio/gio-tool-info.c:347
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1973,11 +2011,11 @@ msgstr ""
"attributi"
#. Translators: commandline placeholder
-#: gio/gio-tool-launch.c:54
+#: gio/gio-tool-launch.c:56
msgid "DESKTOP-FILE [FILE-ARG …]"
msgstr "FILE-DESKTOP [ARG-FILE …]"
-#: gio/gio-tool-launch.c:57
+#: gio/gio-tool-launch.c:59
msgid ""
"Launch an application from a desktop file, passing optional filename "
"arguments to it."
@@ -1985,50 +2023,50 @@ msgstr ""
"Avvia un'applicazione da un file desktop, passando argomenti facoltativi "
"relativi ai nomi di file"
-#: gio/gio-tool-launch.c:77
+#: gio/gio-tool-launch.c:79
msgid "No desktop file given"
msgstr "Nessun file desktop specificato"
-#: gio/gio-tool-launch.c:85
+#: gio/gio-tool-launch.c:87
msgid "The launch command is not currently supported on this platform"
msgstr "Il comando di avvio non è attualmente supportato su questa piattaforma"
-#: gio/gio-tool-launch.c:98
+#: gio/gio-tool-launch.c:100
#, c-format
msgid "Unable to load ‘%s‘: %s"
msgstr "impossibile caricare «%s»: %s"
-#: gio/gio-tool-launch.c:107
+#: gio/gio-tool-launch.c:109
#, c-format
msgid "Unable to load application information for ‘%s‘"
msgstr "Impossibile caricare le informazioni sull'applicazione per «%s»"
-#: gio/gio-tool-launch.c:119
+#: gio/gio-tool-launch.c:121
#, c-format
msgid "Unable to launch application ‘%s’: %s"
msgstr "Impossibile avviare l'applicazione «%s»: %s"
-#: gio/gio-tool-list.c:37 gio/gio-tool-tree.c:32
+#: gio/gio-tool-list.c:38 gio/gio-tool-tree.c:34
msgid "Show hidden files"
msgstr "Mostra file nascosti"
-#: gio/gio-tool-list.c:38
+#: gio/gio-tool-list.c:39
msgid "Use a long listing format"
msgstr "Usa un formato di elenco prolisso"
-#: gio/gio-tool-list.c:40
+#: gio/gio-tool-list.c:41
msgid "Print display names"
msgstr "Stampa i nomi"
-#: gio/gio-tool-list.c:41
+#: gio/gio-tool-list.c:42
msgid "Print full URIs"
msgstr "Stampa URI completi"
-#: gio/gio-tool-list.c:177
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Elenca il contenuto delle posizioni"
-#: gio/gio-tool-list.c:179
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2041,19 +2079,19 @@ msgstr ""
"possono essere specificati attraverso il loro nome GIO (standard:icon)."
#. Translators: commandline placeholder
-#: gio/gio-tool-mime.c:71
+#: gio/gio-tool-mime.c:73
msgid "MIMETYPE"
msgstr "TIPOMIME"
-#: gio/gio-tool-mime.c:71
+#: gio/gio-tool-mime.c:73
msgid "HANDLER"
msgstr "GESTORE"
-#: gio/gio-tool-mime.c:76
+#: gio/gio-tool-mime.c:78
msgid "Get or set the handler for a mimetype."
msgstr "Ottiene o imposta il gestore per un tipo mime"
-#: gio/gio-tool-mime.c:78
+#: gio/gio-tool-mime.c:80
msgid ""
"If no handler is given, lists registered and recommended applications\n"
"for the mimetype. If a handler is given, it is set as the default\n"
@@ -2064,56 +2102,56 @@ msgstr ""
"gestore, questo è impostato come gestore predefinito per quel\n"
"tipo mime."
-#: gio/gio-tool-mime.c:100
+#: gio/gio-tool-mime.c:102
msgid "Must specify a single mimetype, and maybe a handler"
msgstr "Necessario specificare un solo tipo mime e possibilmente un gestore"
-#: gio/gio-tool-mime.c:116
+#: gio/gio-tool-mime.c:118
#, c-format
msgid "No default applications for “%s”\n"
msgstr "Nessuna applicazione predefinita per «%s»\n"
-#: gio/gio-tool-mime.c:122
+#: gio/gio-tool-mime.c:124
#, c-format
msgid "Default application for “%s”: %s\n"
msgstr "Applicazione predefinita per «%s»: %s\n"
-#: gio/gio-tool-mime.c:127
+#: gio/gio-tool-mime.c:129
msgid "Registered applications:\n"
msgstr "Applicazioni registrate:\n"
-#: gio/gio-tool-mime.c:129
+#: gio/gio-tool-mime.c:131
msgid "No registered applications\n"
msgstr "Nessuna applicazione registrata\n"
-#: gio/gio-tool-mime.c:140
+#: gio/gio-tool-mime.c:142
msgid "Recommended applications:\n"
msgstr "Applicazioni consigliate:\n"
-#: gio/gio-tool-mime.c:142
+#: gio/gio-tool-mime.c:144
msgid "No recommended applications\n"
msgstr "Nessuna applicazione consigliata\n"
-#: gio/gio-tool-mime.c:162
+#: gio/gio-tool-mime.c:164
#, c-format
msgid "Failed to load info for handler “%s”"
msgstr "Caricamento delle informazioni per il gestore «%s» non riuscito"
-#: gio/gio-tool-mime.c:168
+#: gio/gio-tool-mime.c:170
#, c-format
msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
msgstr ""
"Impostazione di «%s» come gestore predefinito per «%s» non riuscita: %s\n"
-#: gio/gio-tool-mkdir.c:31
+#: gio/gio-tool-mkdir.c:33
msgid "Create parent directories"
msgstr "Crea le directory genitore"
-#: gio/gio-tool-mkdir.c:52
+#: gio/gio-tool-mkdir.c:54
msgid "Create directories."
msgstr "Crea directory"
-#: gio/gio-tool-mkdir.c:54
+#: gio/gio-tool-mkdir.c:56
msgid ""
"gio mkdir is similar to the traditional mkdir utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2123,135 +2161,135 @@ msgstr ""
"posizioni GIO al posto di file locali. È possibile, per esempio, usare\n"
"smb://server/risorsa/directory come posizione."
-#: gio/gio-tool-monitor.c:37
+#: gio/gio-tool-monitor.c:39
msgid "Monitor a directory (default: depends on type)"
msgstr "Monitora una directory (predefinito: dipende dal tipo)"
-#: gio/gio-tool-monitor.c:39
+#: gio/gio-tool-monitor.c:41
msgid "Monitor a file (default: depends on type)"
msgstr "Monitora un file (predefinito: dipende dal tipo)"
-#: gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43
msgid "Monitor a file directly (notices changes made via hardlinks)"
msgstr ""
"Monitora un file direttamente (rileva modifiche fatte con collegamenti "
"permanenti)"
-#: gio/gio-tool-monitor.c:43
+#: gio/gio-tool-monitor.c:45
msgid "Monitors a file directly, but doesn’t report changes"
msgstr "Monitora un file direttamente, ma non riporta le modifiche"
-#: gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:47
msgid "Report moves and renames as simple deleted/created events"
msgstr ""
"Segnala spostamenti e azioni di rinomina come eventi di rimozione/creazione"
-#: gio/gio-tool-monitor.c:47
+#: gio/gio-tool-monitor.c:49
msgid "Watch for mount events"
msgstr "Resta in ascolto di eventi mount"
-#: gio/gio-tool-monitor.c:209
+#: gio/gio-tool-monitor.c:211
msgid "Monitor files or directories for changes."
msgstr "Monitora le modifiche a file e directory"
-#: gio/gio-tool-mount.c:63
+#: gio/gio-tool-mount.c:65
msgid "Mount as mountable"
msgstr "Monta come oggetto montabile"
-#: gio/gio-tool-mount.c:64
+#: gio/gio-tool-mount.c:66
msgid "Mount volume with device file, or other identifier"
msgstr "Monta il volume con file device o con altro identificatore"
-#: gio/gio-tool-mount.c:64
+#: gio/gio-tool-mount.c:66
msgid "ID"
msgstr "ID"
-#: gio/gio-tool-mount.c:65
+#: gio/gio-tool-mount.c:67
msgid "Unmount"
msgstr "Smonta"
-#: gio/gio-tool-mount.c:66
+#: gio/gio-tool-mount.c:68
msgid "Eject"
msgstr "Espelli"
-#: gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:69
msgid "Stop drive with device file"
msgstr "Ferma l'unità con file device"
-#: gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:69
msgid "DEVICE"
msgstr "DEVICE"
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:70
msgid "Unmount all mounts with the given scheme"
msgstr "Smonta tutti i mount con lo schema fornito"
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:70
msgid "SCHEME"
msgstr "SCHEMA"
-#: gio/gio-tool-mount.c:69
+#: gio/gio-tool-mount.c:71
msgid "Ignore outstanding file operations when unmounting or ejecting"
msgstr "Ignora le rimanenti operazioni sui file quando smonta o espelle"
-#: gio/gio-tool-mount.c:70
+#: gio/gio-tool-mount.c:72
msgid "Use an anonymous user when authenticating"
msgstr "Usa un utente anonimo durante l'autenticazione"
#. Translator: List here is a verb as in 'List all mounts'
-#: gio/gio-tool-mount.c:72
+#: gio/gio-tool-mount.c:74
msgid "List"
msgstr "Elenca"
-#: gio/gio-tool-mount.c:73
+#: gio/gio-tool-mount.c:75
msgid "Monitor events"
msgstr "Monitoraggio degli eventi"
-#: gio/gio-tool-mount.c:74
+#: gio/gio-tool-mount.c:76
msgid "Show extra information"
msgstr "Mostra informazioni aggiuntive"
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:77
msgid "The numeric PIM when unlocking a VeraCrypt volume"
msgstr "Il PIM numerico quando viene sbloccato un volume VeraCrypt"
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:77
msgid "PIM"
msgstr "PIM"
-#: gio/gio-tool-mount.c:76
+#: gio/gio-tool-mount.c:78
msgid "Mount a TCRYPT hidden volume"
msgstr "Monta un volume nascosto TCRYPT"
-#: gio/gio-tool-mount.c:77
+#: gio/gio-tool-mount.c:79
msgid "Mount a TCRYPT system volume"
msgstr "Monta un volume TCRYPT di sistema"
-#: gio/gio-tool-mount.c:265 gio/gio-tool-mount.c:297
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Accesso anonimo non consentito"
-#: gio/gio-tool-mount.c:522
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Nessuna unità per il file device"
-#: gio/gio-tool-mount.c:1014
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Nessun volume per l'ID fornito"
-#: gio/gio-tool-mount.c:1203
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Monta o smonta le posizioni"
-#: gio/gio-tool-move.c:42
+#: gio/gio-tool-move.c:44
msgid "Don’t use copy and delete fallback"
msgstr "Non usa i ripieghi di copia ed elimina"
-#: gio/gio-tool-move.c:99
+#: gio/gio-tool-move.c:101
msgid "Move one or more files from SOURCE to DEST."
msgstr "Sposta uno o più file da SORGENTE a DESTINAZIONE"
-#: gio/gio-tool-move.c:101
+#: gio/gio-tool-move.c:103
msgid ""
"gio move is similar to the traditional mv utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2261,12 +2299,12 @@ msgstr ""
"posizioni GIO al posto di file locali. È possibile, per esempio, usare\n"
"smb://server/risorsa/file.txt come posizione."
-#: gio/gio-tool-move.c:143
+#: gio/gio-tool-move.c:145
#, c-format
msgid "Target %s is not a directory"
msgstr "La destinazione %s non è una directory"
-#: gio/gio-tool-open.c:75
+#: gio/gio-tool-open.c:77
msgid ""
"Open files with the default application that\n"
"is registered to handle files of this type."
@@ -2274,129 +2312,133 @@ msgstr ""
"Apre i file con l'applicazione predefinita\n"
"registrata per gestire questo tipo di file."
-#: gio/gio-tool-remove.c:31 gio/gio-tool-trash.c:33
+#: gio/gio-tool-remove.c:33 gio/gio-tool-trash.c:35
msgid "Ignore nonexistent files, never prompt"
msgstr "Ignora i file non esistenti, senza chiedere"
-#: gio/gio-tool-remove.c:52
+#: gio/gio-tool-remove.c:54
msgid "Delete the given files."
msgstr "Elimina i file dati"
-#: gio/gio-tool-rename.c:45
+#: gio/gio-tool-rename.c:47
msgid "NAME"
msgstr "NOME"
-#: gio/gio-tool-rename.c:50
+#: gio/gio-tool-rename.c:52
msgid "Rename a file."
msgstr "Rinomina un file"
-#: gio/gio-tool-rename.c:70
+#: gio/gio-tool-rename.c:72
msgid "Missing argument"
msgstr "Argomento mancante"
-#: gio/gio-tool-rename.c:76 gio/gio-tool-save.c:190 gio/gio-tool-set.c:137
+#: gio/gio-tool-rename.c:78 gio/gio-tool-save.c:192 gio/gio-tool-set.c:150
msgid "Too many arguments"
msgstr "Troppi argomenti"
-#: gio/gio-tool-rename.c:95
+#: gio/gio-tool-rename.c:97
#, c-format
msgid "Rename successful. New uri: %s\n"
msgstr "Cambio di nome riuscito. Nuovo URI: %s\n"
-#: gio/gio-tool-save.c:50
+#: gio/gio-tool-save.c:52
msgid "Only create if not existing"
msgstr "Crea solo se non esistente"
-#: gio/gio-tool-save.c:51
+#: gio/gio-tool-save.c:53
msgid "Append to end of file"
msgstr "Accoda alla fine del file"
-#: gio/gio-tool-save.c:52
+#: gio/gio-tool-save.c:54
msgid "When creating, restrict access to the current user"
msgstr "Quando si crea un file, limita l'accesso al solo utente corrente"
-#: gio/gio-tool-save.c:53
+#: gio/gio-tool-save.c:55
msgid "When replacing, replace as if the destination did not exist"
msgstr ""
"Quando si sostituisce, sostituisce come se la destinazione non esistesse"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:55
+#: gio/gio-tool-save.c:57
msgid "Print new etag at end"
msgstr "Al termine stampa il nuovo etag"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:59
msgid "The etag of the file being overwritten"
msgstr "L'etag del file che sta per essere sovrascritto"
-#: gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:59
msgid "ETAG"
msgstr "ETAG"
-#: gio/gio-tool-save.c:113
+#: gio/gio-tool-save.c:115
msgid "Error reading from standard input"
msgstr "Errore nel leggere dallo stdin"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:139
+#: gio/gio-tool-save.c:141
msgid "Etag not available\n"
msgstr "Etag non disponibile\n"
-#: gio/gio-tool-save.c:163
+#: gio/gio-tool-save.c:165
msgid "Read from standard input and save to DEST."
msgstr "Legge dallo standard input e salva su DESTINAZIONE"
-#: gio/gio-tool-save.c:183
+#: gio/gio-tool-save.c:185
msgid "No destination given"
msgstr "Nessuna destinazione fornita"
-#: gio/gio-tool-set.c:33
+#: gio/gio-tool-set.c:36
msgid "Type of the attribute"
msgstr "Tipologia dell'attributo"
-#: gio/gio-tool-set.c:33
+#: gio/gio-tool-set.c:36
msgid "TYPE"
msgstr "TIPO"
-#: gio/gio-tool-set.c:89
+#: gio/gio-tool-set.c:38
+msgid "Unset given attribute"
+msgstr "Ripristina l'attributo dato"
+
+#: gio/gio-tool-set.c:95
msgid "ATTRIBUTE"
msgstr "ATTRIBUTO"
-#: gio/gio-tool-set.c:89
+#: gio/gio-tool-set.c:95
msgid "VALUE"
msgstr "VALORE"
-#: gio/gio-tool-set.c:93
+#: gio/gio-tool-set.c:99
msgid "Set a file attribute of LOCATION."
msgstr "Imposta l'attributo di un file di POSIZIONE"
-#: gio/gio-tool-set.c:113
+#: gio/gio-tool-set.c:119
msgid "Location not specified"
msgstr "Posizione non specificata"
-#: gio/gio-tool-set.c:120
+#: gio/gio-tool-set.c:126
msgid "Attribute not specified"
msgstr "Attributo non specificato"
-#: gio/gio-tool-set.c:130
+#: gio/gio-tool-set.c:143
msgid "Value not specified"
msgstr "Valore non specificato"
-#: gio/gio-tool-set.c:180
+#: gio/gio-tool-set.c:193
#, c-format
msgid "Invalid attribute type “%s”"
msgstr "Tipo di attributo «%s» non valido"
-#: gio/gio-tool-trash.c:34
+#: gio/gio-tool-trash.c:36
msgid "Empty the trash"
msgstr "Svuota il cestino"
-#: gio/gio-tool-trash.c:35
+#: gio/gio-tool-trash.c:37
msgid "List files in the trash with their original locations"
msgstr "Elenca i file nel cestino con le loro posizioni originali"
-#: gio/gio-tool-trash.c:36
+#: gio/gio-tool-trash.c:38
msgid ""
"Restore a file from trash to its original location (possibly recreating the "
"directory)"
@@ -2404,23 +2446,23 @@ msgstr ""
"Ripristinare un file dal cestino al percorso originale (eventualmente "
"ricreando la directory)"
-#: gio/gio-tool-trash.c:106
+#: gio/gio-tool-trash.c:108
msgid "Unable to find original path"
msgstr "Impossibile trovare il percorso originale"
-#: gio/gio-tool-trash.c:123
+#: gio/gio-tool-trash.c:125
msgid "Unable to recreate original location: "
msgstr "Impossibile ricreare la posizione originale: "
-#: gio/gio-tool-trash.c:136
+#: gio/gio-tool-trash.c:138
msgid "Unable to move file to its original location: "
msgstr "Impossibile spostare il file nella posizione originale: "
-#: gio/gio-tool-trash.c:225
+#: gio/gio-tool-trash.c:227
msgid "Move/Restore files or directories to the trash."
msgstr "Sposta/Ripristina file o directory nel cestino"
-#: gio/gio-tool-trash.c:227
+#: gio/gio-tool-trash.c:229
msgid ""
"Note: for --restore switch, if the original location of the trashed file \n"
"already exists, it will not be overwritten unless --force is set."
@@ -2428,44 +2470,44 @@ msgstr ""
"Nota: per l'opzione --restore, se il percorso originale del file rimosso \n"
"esiste già, non verrà sovrascritto a meno che --force non sia impostato."
-#: gio/gio-tool-trash.c:258
+#: gio/gio-tool-trash.c:260
msgid "Location given doesn't start with trash:///"
msgstr "Location given doesn't start with trash:///"
-#: gio/gio-tool-tree.c:33
+#: gio/gio-tool-tree.c:35
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Segue i collegamenti simbolici, i mount e le scorciatoie"
-#: gio/gio-tool-tree.c:244
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Elenca il contenuto delle directory in un formato ad albero"
-#: gio/glib-compile-resources.c:140 gio/glib-compile-schemas.c:1514
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Elemento <%s> non ammesso dentro <%s>"
-#: gio/glib-compile-resources.c:144
+#: gio/glib-compile-resources.c:146
#, c-format
msgid "Element <%s> not allowed at toplevel"
msgstr "Elemento <%s> non ammesso come primo livello"
-#: gio/glib-compile-resources.c:234
+#: gio/glib-compile-resources.c:236
#, c-format
msgid "File %s appears multiple times in the resource"
msgstr "Il file %s appare diverse volte nella risorsa"
-#: gio/glib-compile-resources.c:245
+#: gio/glib-compile-resources.c:247
#, c-format
msgid "Failed to locate “%s” in any source directory"
msgstr "Localizzazione di «%s» non riuscita in alcuna directory sorgente"
-#: gio/glib-compile-resources.c:256
+#: gio/glib-compile-resources.c:258
#, c-format
msgid "Failed to locate “%s” in current directory"
msgstr "Localizzazione di «%s» non riuscita nella directory corrente"
-#: gio/glib-compile-resources.c:290
+#: gio/glib-compile-resources.c:292
#, c-format
msgid "Unknown processing option “%s”"
msgstr "Opzione di elaborazione «%s» sconosciuta"
@@ -2474,38 +2516,38 @@ msgstr "Opzione di elaborazione «%s» sconosciuta"
#. * the second %s is an environment variable, and the third
#. * %s is a command line tool
#.
-#: gio/glib-compile-resources.c:310 gio/glib-compile-resources.c:367
-#: gio/glib-compile-resources.c:424
+#: gio/glib-compile-resources.c:312 gio/glib-compile-resources.c:369
+#: gio/glib-compile-resources.c:426
#, c-format
msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
msgstr ""
"Richiesta pre-elaborazione di %s, ma %s non è impostata e %s non si trova "
"nel PATH"
-#: gio/glib-compile-resources.c:457
+#: gio/glib-compile-resources.c:459
#, c-format
msgid "Error reading file %s: %s"
msgstr "Errore nel leggere il file %s: %s"
-#: gio/glib-compile-resources.c:477
+#: gio/glib-compile-resources.c:479
#, c-format
msgid "Error compressing file %s"
msgstr "Errore nel comprimere il file %s"
-#: gio/glib-compile-resources.c:541
+#: gio/glib-compile-resources.c:543
#, c-format
msgid "text may not appear inside <%s>"
msgstr "il testo non può apparire all'interno di <%s>"
-#: gio/glib-compile-resources.c:819 gio/glib-compile-schemas.c:2172
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Mostra la versione del programma ed esce"
-#: gio/glib-compile-resources.c:820
+#: gio/glib-compile-resources.c:822
msgid "Name of the output file"
msgstr "Nome del file di output"
-#: gio/glib-compile-resources.c:821
+#: gio/glib-compile-resources.c:823
msgid ""
"The directories to load files referenced in FILE from (default: current "
"directory)"
@@ -2513,49 +2555,49 @@ msgstr ""
"Le directory da cui caricare i file indicati in FILE (predefinito: directory "
"corrente)"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2173
-#: gio/glib-compile-schemas.c:2202
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "DIRECTORY"
-#: gio/glib-compile-resources.c:822
+#: gio/glib-compile-resources.c:824
msgid ""
"Generate output in the format selected for by the target filename extension"
msgstr ""
"Genera l'output nel formato selezionato in base all'estensione del nome di "
"file della destinazione"
-#: gio/glib-compile-resources.c:823
+#: gio/glib-compile-resources.c:825
msgid "Generate source header"
msgstr "Genera header sorgente"
-#: gio/glib-compile-resources.c:824
+#: gio/glib-compile-resources.c:826
msgid "Generate source code used to link in the resource file into your code"
msgstr ""
"Genera codice sorgente usato per collegare il file risorsa all'interno del "
"codice"
-#: gio/glib-compile-resources.c:825
+#: gio/glib-compile-resources.c:827
msgid "Generate dependency list"
msgstr "Genera elenco delle dipendenze"
-#: gio/glib-compile-resources.c:826
+#: gio/glib-compile-resources.c:828
msgid "Name of the dependency file to generate"
msgstr "Nome del file dipendenza da generare"
-#: gio/glib-compile-resources.c:827
+#: gio/glib-compile-resources.c:829
msgid "Include phony targets in the generated dependency file"
msgstr "Include le destinazioni phony nel file delle dipendenze"
-#: gio/glib-compile-resources.c:828
+#: gio/glib-compile-resources.c:830
msgid "Don’t automatically create and register resource"
msgstr "Non crea e registra automaticamente la risorsa"
-#: gio/glib-compile-resources.c:829
+#: gio/glib-compile-resources.c:831
msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
msgstr "Non esporta le funzioni, le dichiara G_GNUC_INTERNAL"
-#: gio/glib-compile-resources.c:830
+#: gio/glib-compile-resources.c:832
msgid ""
"Don’t embed resource data in the C file; assume it's linked externally "
"instead"
@@ -2563,17 +2605,17 @@ msgstr ""
"Non incorpora i dati delle risorse nel file C, assume sia collegato "
"esternamente"
-#: gio/glib-compile-resources.c:831
+#: gio/glib-compile-resources.c:833
msgid "C identifier name used for the generated source code"
msgstr "Nome identificatore C usato per il codice sorgente generato"
-#: gio/glib-compile-resources.c:832
+#: gio/glib-compile-resources.c:834
msgid "The target C compiler (default: the CC environment variable)"
msgstr ""
"Il compilatore C da usare (impostazione predefinita: la variabile di "
"ambiente CC)"
-#: gio/glib-compile-resources.c:858
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2583,125 +2625,125 @@ msgstr ""
"I file di specifica di risorsa hanno estensione .gresource.xml\n"
"e i file risorsa hanno estensione .gresource."
-#: gio/glib-compile-resources.c:880
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "È necessario indicare esattamente un nome di file\n"
-#: gio/glib-compile-schemas.c:92
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "nick deve essere lungo almeno 2 caratteri"
-#: gio/glib-compile-schemas.c:103
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Valore numerico non valido"
-#: gio/glib-compile-schemas.c:111
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> già specificato"
-#: gio/glib-compile-schemas.c:119
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' già specificato"
-#: gio/glib-compile-schemas.c:133
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "valori flag devono avere almeno 1 bit impostato"
-#: gio/glib-compile-schemas.c:158
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> deve contenere almeno un <value>"
-#: gio/glib-compile-schemas.c:314
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> non è contenuto nell'intervallo specificato"
-#: gio/glib-compile-schemas.c:326
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> non è un membro valido del tipo enumerazione specificato"
-#: gio/glib-compile-schemas.c:332
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> contiene una stringa non presente nei tipi di flag specificati"
-#: gio/glib-compile-schemas.c:338
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> contiene una stringa non in <choices>"
# maschile, inteso come elemento
-#: gio/glib-compile-schemas.c:372
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> già specificato per questa chiave"
-#: gio/glib-compile-schemas.c:390
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> non consentito per chiavi di tipo «%s»"
-#: gio/glib-compile-schemas.c:407
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "il valore minimo specificato da <range> è maggiore del valore massimo"
-#: gio/glib-compile-schemas.c:432
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "categoria l10n non supportata: %s"
-#: gio/glib-compile-schemas.c:440
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "richiesto l10n, ma dominio gettext non fornito"
-#: gio/glib-compile-schemas.c:452
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr ""
"fornito un contesto di traduzione per il valore, ma l10n non è abilitato"
-#: gio/glib-compile-schemas.c:474
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Analisi del valore <default> di tipo «%s» non riuscita: "
-#: gio/glib-compile-schemas.c:491
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> non può essere specificato per chiavi marcate come tipo "
"enumerazione"
-#: gio/glib-compile-schemas.c:500
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> già specificato per questa chiave"
-#: gio/glib-compile-schemas.c:512
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> non consentito per chiavi di tipo «%s»"
-#: gio/glib-compile-schemas.c:528
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> già fornito"
-#: gio/glib-compile-schemas.c:543
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> deve contenere almeno una <choice>"
-#: gio/glib-compile-schemas.c:557
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> già specificato per questa chiave"
-#: gio/glib-compile-schemas.c:561
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2709,7 +2751,7 @@ msgstr ""
"<aliases> può essere specificato solo per chiavi di tipo enumerazione o flag "
"oppure dopo un <choices>"
-#: gio/glib-compile-schemas.c:580
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2717,27 +2759,27 @@ msgid ""
msgstr ""
"<alias value='%s'/> fornito quando «%s» è già un membro del tipo enumerazione"
-#: gio/glib-compile-schemas.c:586
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr "<alias value='%s'/> fornito quando <choice value='%s'/> è già presente"
-#: gio/glib-compile-schemas.c:594
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> già specificato"
-#: gio/glib-compile-schemas.c:604
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "obiettivo alias «%s» non è in un tipo enumerazione"
-#: gio/glib-compile-schemas.c:605
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "obiettivo alias «%s» non presente in <choices>"
-#: gio/glib-compile-schemas.c:620
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> deve contenere almeno un <alias>"
@@ -3054,7 +3096,7 @@ msgstr "Non scrive il file gschema.compiled"
msgid "Do not enforce key name restrictions"
msgstr "Non forza le limitazioni sui nomi di chiave"
-#: gio/glib-compile-schemas.c:2205
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3064,24 +3106,24 @@ msgstr ""
"I file schema devo avere estensione .gschema.xml,\n"
"e il file cache è chiamato gschemas.compiled."
-#: gio/glib-compile-schemas.c:2226
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "È necessario indicare esattamente un nome di directory"
-#: gio/glib-compile-schemas.c:2269
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Nessun file schema trovato: nessuna azione eseguita."
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "Nessun file schema trovato: rimosso il file di output preesistente."
-#: gio/glocalfile.c:549 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Nome di file %s non valido"
-#: gio/glocalfile.c:982
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Errore nell'ottenere informazioni sul file system per %s: %s"
@@ -3090,61 +3132,61 @@ msgstr "Errore nell'ottenere informazioni sul file system per %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1123
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "L'oggetto mount contenuto per il file %s non esiste"
-#: gio/glocalfile.c:1146
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Impossibile rinominare la directory root"
-#: gio/glocalfile.c:1164 gio/glocalfile.c:1187
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Errore nel rinominare il file %s: %s"
-#: gio/glocalfile.c:1171
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Impossibile rinominare il file, il nome di file esiste già"
-#: gio/glocalfile.c:1184 gio/glocalfile.c:2380 gio/glocalfile.c:2408
-#: gio/glocalfile.c:2547 gio/glocalfileoutputstream.c:656
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Nome di file non valido"
-#: gio/glocalfile.c:1352 gio/glocalfile.c:1363
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Errore nell'aprire il file %s: %s"
-#: gio/glocalfile.c:1488
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Errore nel rimuovere il file %s: %s"
-#: gio/glocalfile.c:1982 gio/glocalfile.c:1993 gio/glocalfile.c:2020
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Errore nel cestinare il file %s: %s"
-#: gio/glocalfile.c:2040
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Impossibile creare la directory cestino %s: %s"
-#: gio/glocalfile.c:2061
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Impossibile trovare la directory di livello superiore per cestinare %s"
-#: gio/glocalfile.c:2069
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
"Lo spostamento nel cestino sui montaggi interni di sistema non è supportato"
-#: gio/glocalfile.c:2155 gio/glocalfile.c:2183
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Impossibile trovare o creare la directory cestino %s per rimuovere %s"
@@ -3152,304 +3194,304 @@ msgstr "Impossibile trovare o creare la directory cestino %s per rimuovere %s"
# consultare la specifica del cestino di freedesktop.org
# (in breve per ogni file cestinato viene creata una copia
# del file e un file di informazioni - data, posizione originaria...)
-#: gio/glocalfile.c:2229
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Impossibile creare il file informazioni cestinamento per %s: %s"
-#: gio/glocalfile.c:2291
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Impossibile cestinare il file %s tra livelli di file system"
-#: gio/glocalfile.c:2295 gio/glocalfile.c:2351
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Impossibile cestinare il file %s: %s"
-#: gio/glocalfile.c:2357
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Impossibile cestinare il file %s"
-#: gio/glocalfile.c:2383
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Errore nel creare la directory %s: %s"
-#: gio/glocalfile.c:2412
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Il file system non supporta i collegamenti simbolici"
# FIXME: all other occurrences are "symlink"
-#: gio/glocalfile.c:2415
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Errore nel creare il collegamento simbolico %s: %s"
-#: gio/glocalfile.c:2458 gio/glocalfile.c:2493 gio/glocalfile.c:2550
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Errore nello spostare il file %s: %s"
# ma che senso ha???
-#: gio/glocalfile.c:2481
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Impossibile spostare la directory sopra la directory"
-#: gio/glocalfile.c:2507 gio/glocalfileoutputstream.c:1108
-#: gio/glocalfileoutputstream.c:1122 gio/glocalfileoutputstream.c:1137
-#: gio/glocalfileoutputstream.c:1154 gio/glocalfileoutputstream.c:1168
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
+#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Creazione del file backup non riuscita"
-#: gio/glocalfile.c:2526
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Errore nel rimuovere il file destinazione: %s"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Spostamento tra oggetti mount non supportato"
-#: gio/glocalfile.c:2714
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Impossibile determinare l'utilizzo del disco di %s: %s"
-#: gio/glocalfileinfo.c:767
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Il valore dell'attributo deve essere non-NULL"
-#: gio/glocalfileinfo.c:774
-msgid "Invalid attribute type (string expected)"
-msgstr "Tipo di attributo non valido (attesa stringa)"
+#: gio/glocalfileinfo.c:772
+msgid "Invalid attribute type (string or invalid expected)"
+msgstr "Tipo di attributo non valido (attesa stringa o invalido)"
-#: gio/glocalfileinfo.c:781
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Nome di attributo esteso non valido"
-#: gio/glocalfileinfo.c:821
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Errore nell'impostare l'attributo esteso «%s»: %s"
-#: gio/glocalfileinfo.c:1709 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (codifica non valida)"
-#: gio/glocalfileinfo.c:1868 gio/glocalfileoutputstream.c:943
-#: gio/glocalfileoutputstream.c:995
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Errore nel recuperare informazioni per il file «%s»: %s"
-#: gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Errore nel recuperare informazioni per il descrittore di file: %s"
-#: gio/glocalfileinfo.c:2179
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Tipo di attributo non valido (atteso unit32)"
-#: gio/glocalfileinfo.c:2197
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Tipo di attributo non valido (atteso uint64)"
-#: gio/glocalfileinfo.c:2216 gio/glocalfileinfo.c:2235
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Tipo di attributo non valido (attesa stringa di byte)"
-#: gio/glocalfileinfo.c:2282
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Impossibile impostare i permessi sui collegamenti simbolici"
-#: gio/glocalfileinfo.c:2298
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Errore nell'impostare i permessi: %s"
-#: gio/glocalfileinfo.c:2349
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Errore nell'impostare il proprietario: %s"
-#: gio/glocalfileinfo.c:2372
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "il collegamento simbolico deve essere non-NULL"
-#: gio/glocalfileinfo.c:2382 gio/glocalfileinfo.c:2401
-#: gio/glocalfileinfo.c:2412
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Errore nell'impostare il collegamento simbolico: %s"
-#: gio/glocalfileinfo.c:2391
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"Errore nell'impostare il collegamento simbolico: il file non è un "
"collegamento"
-#: gio/glocalfileinfo.c:2463
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
"%d nanosecondi aggiuntivi per la marcatura temporale UNIX %lld sono negativi"
-#: gio/glocalfileinfo.c:2472
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"%d nanosecondi aggiuntivi per la marcatura temporale UNIX %lld raggiungono 1 "
"secondo"
-#: gio/glocalfileinfo.c:2482
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "La marcatura temporale UNIX %lld non può essere contenuta in 64-bit"
-#: gio/glocalfileinfo.c:2493
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"La marcatura temporale %lld è al di fuori dell'intervallo supportato da "
"Windows"
-#: gio/glocalfileinfo.c:2570
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Impossibile convertire il nome file «%s» a UTF-16"
-#: gio/glocalfileinfo.c:2589
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Impossibile aprire il file «%s»: Errore Windows %lu"
-#: gio/glocalfileinfo.c:2602
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "Errore nell'impostare l'ora di modifica o accesso del file «%s»: %lu"
-#: gio/glocalfileinfo.c:2703
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Errore nell'impostare l'ora di modifica o accesso: %s"
# lasciata minuscola come per precedente messaggio
# "symlink must be non-NULL"
-#: gio/glocalfileinfo.c:2726
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "il contesto SELinux deve essere non-NULL"
-#: gio/glocalfileinfo.c:2733
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux non è abilitato su questo sistema"
-#: gio/glocalfileinfo.c:2743
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Errore nell'impostare il contesto SELinux: %s"
# %s è l'attributo
-#: gio/glocalfileinfo.c:2836
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Impostazione dell'attributo %s non supportata"
-#: gio/glocalfileinputstream.c:163 gio/glocalfileoutputstream.c:801
+#: gio/glocalfileinputstream.c:165 gio/glocalfileoutputstream.c:803
#, c-format
msgid "Error reading from file: %s"
msgstr "Errore nel leggere dal file: %s"
-#: gio/glocalfileinputstream.c:194 gio/glocalfileoutputstream.c:353
-#: gio/glocalfileoutputstream.c:447
+#: gio/glocalfileinputstream.c:196 gio/glocalfileoutputstream.c:355
+#: gio/glocalfileoutputstream.c:449
#, c-format
msgid "Error closing file: %s"
msgstr "Errore nel chiudere il file: %s"
-#: gio/glocalfileinputstream.c:272 gio/glocalfileoutputstream.c:563
-#: gio/glocalfileoutputstream.c:1186
+#: gio/glocalfileinputstream.c:274 gio/glocalfileoutputstream.c:565
+#: gio/glocalfileoutputstream.c:1188
#, c-format
msgid "Error seeking in file: %s"
msgstr "Errore nel posizionarsi all'interno del file: %s"
-#: gio/glocalfilemonitor.c:866
+#: gio/glocalfilemonitor.c:882
msgid "Unable to find default local file monitor type"
msgstr "Impossibile trovare il tipo di monitor predefinito per file locali"
-#: gio/glocalfileoutputstream.c:220 gio/glocalfileoutputstream.c:298
-#: gio/glocalfileoutputstream.c:334 gio/glocalfileoutputstream.c:822
+#: gio/glocalfileoutputstream.c:222 gio/glocalfileoutputstream.c:300
+#: gio/glocalfileoutputstream.c:336 gio/glocalfileoutputstream.c:824
#, c-format
msgid "Error writing to file: %s"
msgstr "Errore nello scrivere sul file: %s"
-#: gio/glocalfileoutputstream.c:380
+#: gio/glocalfileoutputstream.c:382
#, c-format
msgid "Error removing old backup link: %s"
msgstr "Errore nel rimuovere il vecchio collegamento di backup: %s"
-#: gio/glocalfileoutputstream.c:394 gio/glocalfileoutputstream.c:407
+#: gio/glocalfileoutputstream.c:396 gio/glocalfileoutputstream.c:409
#, c-format
msgid "Error creating backup copy: %s"
msgstr "Errore nel creare la copia di backup: %s"
-#: gio/glocalfileoutputstream.c:425
+#: gio/glocalfileoutputstream.c:427
#, c-format
msgid "Error renaming temporary file: %s"
msgstr "Errore nel rinominare il file temporaneo: %s"
-#: gio/glocalfileoutputstream.c:609 gio/glocalfileoutputstream.c:1239
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Errore nel troncare il file: %s"
-#: gio/glocalfileoutputstream.c:662 gio/glocalfileoutputstream.c:907
-#: gio/glocalfileoutputstream.c:1220 gio/gsubprocess.c:229
+#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Errore nell'aprire il file «%s»: %s"
-#: gio/glocalfileoutputstream.c:957
+#: gio/glocalfileoutputstream.c:959
msgid "Target file is a directory"
msgstr "Il file destinazione è una directory"
-#: gio/glocalfileoutputstream.c:971
+#: gio/glocalfileoutputstream.c:973
msgid "Target file is not a regular file"
msgstr "Il file destinazione non è un file normale"
-#: gio/glocalfileoutputstream.c:1013
+#: gio/glocalfileoutputstream.c:1015
msgid "The file was externally modified"
msgstr "Il file è stato modificato dall'esterno"
-#: gio/glocalfileoutputstream.c:1202
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Errore nel rimuovere il vecchio file: %s"
-#: gio/gmemoryinputstream.c:474 gio/gmemoryoutputstream.c:762
+#: gio/gmemoryinputstream.c:476 gio/gmemoryoutputstream.c:764
msgid "Invalid GSeekType supplied"
msgstr "Fornito GSeekType non valido"
-#: gio/gmemoryinputstream.c:484
+#: gio/gmemoryinputstream.c:486
msgid "Invalid seek request"
msgstr "Richiesta di posizionamento non valida"
-#: gio/gmemoryinputstream.c:508
+#: gio/gmemoryinputstream.c:510
msgid "Cannot truncate GMemoryInputStream"
msgstr "Impossibile troncare GMemoryInputStream"
-#: gio/gmemoryoutputstream.c:568
+#: gio/gmemoryoutputstream.c:570
msgid "Memory output stream not resizable"
msgstr "Stream di output di memoria non ridimensionabile"
-#: gio/gmemoryoutputstream.c:584
+#: gio/gmemoryoutputstream.c:586
msgid "Failed to resize memory output stream"
msgstr "Ridimensionamento dello stream di output di memoria non riuscito"
# spero sia write -> scrittura e non write -> write
-#: gio/gmemoryoutputstream.c:663
+#: gio/gmemoryoutputstream.c:665
msgid ""
"Amount of memory required to process the write is larger than available "
"address space"
@@ -3457,32 +3499,32 @@ msgstr ""
"La quantità di memoria necessaria per elaborare la scrittura è più grande "
"dello spazio di indirizzamento disponibile"
-#: gio/gmemoryoutputstream.c:772
+#: gio/gmemoryoutputstream.c:774
msgid "Requested seek before the beginning of the stream"
msgstr "Richiesto posizionamento prima dell'inizio dello stream"
-#: gio/gmemoryoutputstream.c:787
+#: gio/gmemoryoutputstream.c:789
msgid "Requested seek beyond the end of the stream"
msgstr "Richiesto posizionamento oltre la fine dello stream"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement unmount.
-#: gio/gmount.c:399
+#: gio/gmount.c:401
msgid "mount doesn’t implement “unmount”"
msgstr "l'oggetto mount non implementa l'azione «unmount»"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement eject.
-#: gio/gmount.c:475
+#: gio/gmount.c:477
msgid "mount doesn’t implement “eject”"
msgstr "l'oggetto mount non implementa l'azione «eject»"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of unmount or unmount_with_operation.
-#: gio/gmount.c:553
+#: gio/gmount.c:555
msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
msgstr ""
"l'oggetto mount non implementa l'azione «unmount» o «unmount_with_operation»"
@@ -3490,7 +3532,7 @@ msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gmount.c:638
+#: gio/gmount.c:640
msgid "mount doesn’t implement “eject” or “eject_with_operation”"
msgstr ""
"l'oggetto mount non implementa l'azione «eject» o «eject_with_operation»"
@@ -3498,7 +3540,7 @@ msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement remount.
-#: gio/gmount.c:726
+#: gio/gmount.c:728
msgid "mount doesn’t implement “remount”"
msgstr "l'oggetto mount non implementa l'azione «remount»"
@@ -3506,7 +3548,7 @@ msgstr "l'oggetto mount non implementa l'azione «remount»"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:808
+#: gio/gmount.c:810
msgid "mount doesn’t implement content type guessing"
msgstr "l'oggetto mount non implementa la supposizione del tipo di contenuto"
@@ -3514,107 +3556,115 @@ msgstr "l'oggetto mount non implementa la supposizione del tipo di contenuto"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:895
+#: gio/gmount.c:897
msgid "mount doesn’t implement synchronous content type guessing"
msgstr ""
"l'oggetto mount non implementa la supposizione sincrona del tipo di contenuto"
-#: gio/gnetworkaddress.c:415
+#: gio/gnetworkaddress.c:417
#, c-format
msgid "Hostname “%s” contains “[” but not “]”"
msgstr "Il nome host «%s» contiene «[» ma non «]»"
-#: gio/gnetworkmonitorbase.c:219 gio/gnetworkmonitorbase.c:323
+#: gio/gnetworkmonitorbase.c:221 gio/gnetworkmonitorbase.c:325
msgid "Network unreachable"
msgstr "Rete irraggiungibile"
-#: gio/gnetworkmonitorbase.c:257 gio/gnetworkmonitorbase.c:287
+#: gio/gnetworkmonitorbase.c:259 gio/gnetworkmonitorbase.c:289
msgid "Host unreachable"
msgstr "Host irraggiungibile"
-#: gio/gnetworkmonitornetlink.c:99 gio/gnetworkmonitornetlink.c:111
-#: gio/gnetworkmonitornetlink.c:130
+#: gio/gnetworkmonitornetlink.c:101 gio/gnetworkmonitornetlink.c:113
+#: gio/gnetworkmonitornetlink.c:132
#, c-format
msgid "Could not create network monitor: %s"
msgstr "Impossibile creare il monitor di rete: %s"
-#: gio/gnetworkmonitornetlink.c:120
+#: gio/gnetworkmonitornetlink.c:122
msgid "Could not create network monitor: "
msgstr "Impossibile creare il monitor di rete: "
-#: gio/gnetworkmonitornetlink.c:183
+#: gio/gnetworkmonitornetlink.c:185
msgid "Could not get network status: "
msgstr "impossibile ottenere lo stato della rete: "
-#: gio/gnetworkmonitornm.c:311
+#: gio/gnetworkmonitornm.c:313
#, c-format
msgid "NetworkManager not running"
msgstr "NetworkManager non è in esecuzione"
-#: gio/gnetworkmonitornm.c:322
+#: gio/gnetworkmonitornm.c:324
#, c-format
msgid "NetworkManager version too old"
msgstr "Version di NetworkManager troppo datata"
-#: gio/goutputstream.c:232 gio/goutputstream.c:775
+#: gio/goutputstream.c:234 gio/goutputstream.c:777
msgid "Output stream doesn’t implement write"
msgstr "Lo stream di output non implementa la scrittura"
-#: gio/goutputstream.c:472 gio/goutputstream.c:1533
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Somma dei vettori troppo grande passata a %s"
-#: gio/goutputstream.c:736 gio/goutputstream.c:1761
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Lo stream sorgente è già chiuso"
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
+msgid "Unspecified proxy lookup failure"
+msgstr "Errore inattesa nella ricerca proxy"
+
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:401 gio/gthreadedresolver.c:150 gio/gthreadedresolver.c:168
-#: gio/gthreadedresolver.c:780 gio/gthreadedresolver.c:804
-#: gio/gthreadedresolver.c:829 gio/gthreadedresolver.c:844
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Errore nel risolvere «%s»: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:470 gio/gresolver.c:630
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s non è implementata"
-#: gio/gresolver.c:999 gio/gresolver.c:1051
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Dominio non valido"
-#: gio/gresource.c:681 gio/gresource.c:943 gio/gresource.c:983
-#: gio/gresource.c:1107 gio/gresource.c:1179 gio/gresource.c:1253
-#: gio/gresource.c:1334 gio/gresourcefile.c:476 gio/gresourcefile.c:599
-#: gio/gresourcefile.c:736
+#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
+#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "La risorsa presso «%s» non esiste"
-#: gio/gresource.c:848
+#: gio/gresource.c:850
#, c-format
msgid "The resource at “%s” failed to decompress"
msgstr "Decompressione della risorsa presso «%s» non riuscita"
-#: gio/gresourcefile.c:732
+#: gio/gresourcefile.c:663
+msgid "Resource files cannot be renamed"
+msgstr "I file di risorsa non possono essere rinominati"
+
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "La risorsa presso «%s» non è una directory"
-#: gio/gresourcefile.c:940
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Lo stream di input non implementa il posizionamento"
-#: gio/gresource-tool.c:500
+#: gio/gresource-tool.c:502
msgid "List sections containing resources in an elf FILE"
msgstr "Elenca le sezioni che contengono risorse in un FILE elf"
-#: gio/gresource-tool.c:506
+#: gio/gresource-tool.c:508
msgid ""
"List resources\n"
"If SECTION is given, only list resources in this section\n"
@@ -3624,15 +3674,15 @@ msgstr ""
"Se è indicato SEZIONE, elenca solo le risorse in quella sezione\n"
"Se è indicato PERCORSO, elenca solo le risorse che corrispondono"
-#: gio/gresource-tool.c:509 gio/gresource-tool.c:519
+#: gio/gresource-tool.c:511 gio/gresource-tool.c:521
msgid "FILE [PATH]"
msgstr "FILE [PERCORSO]"
-#: gio/gresource-tool.c:510 gio/gresource-tool.c:520 gio/gresource-tool.c:527
+#: gio/gresource-tool.c:512 gio/gresource-tool.c:522 gio/gresource-tool.c:529
msgid "SECTION"
msgstr "SEZIONE"
-#: gio/gresource-tool.c:515
+#: gio/gresource-tool.c:517
msgid ""
"List resources with details\n"
"If SECTION is given, only list resources in this section\n"
@@ -3644,15 +3694,15 @@ msgstr ""
"Se è indicato PERCORSO, elenca solo le risorse che corrispondono\n"
"I dettagli includono la sezione, la dimensione e la compressione"
-#: gio/gresource-tool.c:525
+#: gio/gresource-tool.c:527
msgid "Extract a resource file to stdout"
msgstr "Estrare un file risorsa su stdout"
-#: gio/gresource-tool.c:526
+#: gio/gresource-tool.c:528
msgid "FILE PATH"
msgstr "FILE PERCORSO"
-#: gio/gresource-tool.c:540
+#: gio/gresource-tool.c:542
msgid ""
"Usage:\n"
" gresource [--section SECTION] COMMAND [ARGS…]\n"
@@ -3680,7 +3730,7 @@ msgstr ""
"Usare «gresource help COMANDO» per ottenere un aiuto dettagliato.\n"
"\n"
-#: gio/gresource-tool.c:554
+#: gio/gresource-tool.c:556
#, c-format
msgid ""
"Usage:\n"
@@ -3695,21 +3745,21 @@ msgstr ""
"%s\n"
"\n"
-#: gio/gresource-tool.c:561
+#: gio/gresource-tool.c:563
msgid " SECTION An (optional) elf section name\n"
msgstr " SEZIONE Un nome sezione elf (opzionale)\n"
-#: gio/gresource-tool.c:565 gio/gsettings-tool.c:718
+#: gio/gresource-tool.c:567 gio/gsettings-tool.c:720
msgid " COMMAND The (optional) command to explain\n"
msgstr ""
" COMANDO Il comando (opzionale) da spiegare\n"
"\n"
-#: gio/gresource-tool.c:571
+#: gio/gresource-tool.c:573
msgid " FILE An elf file (a binary or a shared library)\n"
msgstr " FILE Un file elf (un binario o una libreria condivisa)\n"
-#: gio/gresource-tool.c:574
+#: gio/gresource-tool.c:576
msgid ""
" FILE An elf file (a binary or a shared library)\n"
" or a compiled resource file\n"
@@ -3717,83 +3767,83 @@ msgstr ""
" FILE Un file elf (un binario o una libreria condivisa)\n"
" o un file risorsa compilato\n"
-#: gio/gresource-tool.c:578
+#: gio/gresource-tool.c:580
msgid "[PATH]"
msgstr "[PERCORSO]"
-#: gio/gresource-tool.c:580
+#: gio/gresource-tool.c:582
msgid " PATH An (optional) resource path (may be partial)\n"
msgstr " PERCORSO Un (opzionale) percorso risorsa (può essere parziale)\n"
-#: gio/gresource-tool.c:581
+#: gio/gresource-tool.c:583
msgid "PATH"
msgstr "PERCORSO"
-#: gio/gresource-tool.c:583
+#: gio/gresource-tool.c:585
msgid " PATH A resource path\n"
msgstr " PERCORSO Un percorso risorsa\n"
-#: gio/gsettings-tool.c:49 gio/gsettings-tool.c:70 gio/gsettings-tool.c:923
+#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:925
#, c-format
msgid "No such schema “%s”\n"
msgstr "Schema «%s» inesistente\n"
-#: gio/gsettings-tool.c:55
+#: gio/gsettings-tool.c:57
#, c-format
msgid "Schema “%s” is not relocatable (path must not be specified)\n"
msgstr ""
"Lo schema «%s» non è rilocabile (non deve essere specificato il percorso)\n"
-#: gio/gsettings-tool.c:76
+#: gio/gsettings-tool.c:78
#, c-format
msgid "Schema “%s” is relocatable (path must be specified)\n"
msgstr "Lo schema «%s» è rilocabile (deve essere specificato il percorso)\n"
-#: gio/gsettings-tool.c:90
+#: gio/gsettings-tool.c:92
msgid "Empty path given.\n"
msgstr "Indicato percorso vuoto.\n"
-#: gio/gsettings-tool.c:96
+#: gio/gsettings-tool.c:98
msgid "Path must begin with a slash (/)\n"
msgstr "Il percorso deve cominciare con uno slash (/)\n"
-#: gio/gsettings-tool.c:102
+#: gio/gsettings-tool.c:104
msgid "Path must end with a slash (/)\n"
msgstr "Il percorso deve terminare con uno slash (/)\n"
-#: gio/gsettings-tool.c:108
+#: gio/gsettings-tool.c:110
msgid "Path must not contain two adjacent slashes (//)\n"
msgstr "Il percorso non deve contenere due slash adiacenti (//)\n"
-#: gio/gsettings-tool.c:553
+#: gio/gsettings-tool.c:555
msgid "The provided value is outside of the valid range\n"
msgstr "Il valore fornito è fuori dell'intervallo valido\n"
-#: gio/gsettings-tool.c:560
+#: gio/gsettings-tool.c:562
msgid "The key is not writable\n"
msgstr "La chiave non è scrivibile\n"
-#: gio/gsettings-tool.c:596
+#: gio/gsettings-tool.c:598
msgid "List the installed (non-relocatable) schemas"
msgstr "Elenca gli schemi (non rilocabili) installati"
-#: gio/gsettings-tool.c:602
+#: gio/gsettings-tool.c:604
msgid "List the installed relocatable schemas"
msgstr "Elenca gli schemi rilocabili installati"
-#: gio/gsettings-tool.c:608
+#: gio/gsettings-tool.c:610
msgid "List the keys in SCHEMA"
msgstr "Elenca le chiavi in SCHEMA"
-#: gio/gsettings-tool.c:609 gio/gsettings-tool.c:615 gio/gsettings-tool.c:658
+#: gio/gsettings-tool.c:611 gio/gsettings-tool.c:617 gio/gsettings-tool.c:660
msgid "SCHEMA[:PATH]"
msgstr "SCHEMA[:PERCORSO]"
-#: gio/gsettings-tool.c:614
+#: gio/gsettings-tool.c:616
msgid "List the children of SCHEMA"
msgstr "Elenca i figli di SCHEMA"
-#: gio/gsettings-tool.c:620
+#: gio/gsettings-tool.c:622
msgid ""
"List keys and values, recursively\n"
"If no SCHEMA is given, list all keys\n"
@@ -3801,48 +3851,48 @@ msgstr ""
"Elenca chiavi e valori, ricorsivamente\n"
"Se non è fornito alcuno SCHEMA elenca tutte le chiavi\n"
-#: gio/gsettings-tool.c:622
+#: gio/gsettings-tool.c:624
msgid "[SCHEMA[:PATH]]"
msgstr "[SCHEMA[:PERCORSO]]"
-#: gio/gsettings-tool.c:627
+#: gio/gsettings-tool.c:629
msgid "Get the value of KEY"
msgstr "Ottiene il valore di CHIAVE"
-#: gio/gsettings-tool.c:628 gio/gsettings-tool.c:634 gio/gsettings-tool.c:640
-#: gio/gsettings-tool.c:652 gio/gsettings-tool.c:664
+#: gio/gsettings-tool.c:630 gio/gsettings-tool.c:636 gio/gsettings-tool.c:642
+#: gio/gsettings-tool.c:654 gio/gsettings-tool.c:666
msgid "SCHEMA[:PATH] KEY"
msgstr "SCHEMA[:PERCORSO] CHIAVE"
-#: gio/gsettings-tool.c:633
+#: gio/gsettings-tool.c:635
msgid "Query the range of valid values for KEY"
msgstr "Interroga l'intervallo di valori ammessi per CHIAVE"
-#: gio/gsettings-tool.c:639
+#: gio/gsettings-tool.c:641
msgid "Query the description for KEY"
msgstr "Interroga la descrizione per CHIAVE"
-#: gio/gsettings-tool.c:645
+#: gio/gsettings-tool.c:647
msgid "Set the value of KEY to VALUE"
msgstr "Imposta il valore di CHIAVE a VALORE"
-#: gio/gsettings-tool.c:646
+#: gio/gsettings-tool.c:648
msgid "SCHEMA[:PATH] KEY VALUE"
msgstr "SCHEMA[:PERCORSO] CHIAVE VALORE"
-#: gio/gsettings-tool.c:651
+#: gio/gsettings-tool.c:653
msgid "Reset KEY to its default value"
msgstr "Azzera CHIAVE al suo valore predefinito"
-#: gio/gsettings-tool.c:657
+#: gio/gsettings-tool.c:659
msgid "Reset all keys in SCHEMA to their defaults"
msgstr "Azzera tutte le chiavi in SCHEMA ai rispettivi valori predefiniti"
-#: gio/gsettings-tool.c:663
+#: gio/gsettings-tool.c:665
msgid "Check if KEY is writable"
msgstr "Verifica se CHIAVE è scrivibile"
-#: gio/gsettings-tool.c:669
+#: gio/gsettings-tool.c:671
msgid ""
"Monitor KEY for changes.\n"
"If no KEY is specified, monitor all keys in SCHEMA.\n"
@@ -3852,11 +3902,11 @@ msgstr ""
"Se CHIAVE non è specificato, monitorizza tutte le chiavi in SCHEMA.\n"
"Usare ^C per fermare il monitoraggio.\n"
-#: gio/gsettings-tool.c:672
+#: gio/gsettings-tool.c:674
msgid "SCHEMA[:PATH] [KEY]"
msgstr "SCHEMA[:PERCORSO] [CHIAVE]"
-#: gio/gsettings-tool.c:684
+#: gio/gsettings-tool.c:686
msgid ""
"Usage:\n"
" gsettings --version\n"
@@ -3903,7 +3953,7 @@ msgstr ""
"\n"
"Usare «gsettings help COMANDO» per ottenere un aiuto dettagliato.\n"
-#: gio/gsettings-tool.c:708
+#: gio/gsettings-tool.c:710
#, c-format
msgid ""
"Usage:\n"
@@ -3918,11 +3968,11 @@ msgstr ""
"%s\n"
"\n"
-#: gio/gsettings-tool.c:714
+#: gio/gsettings-tool.c:716
msgid " SCHEMADIR A directory to search for additional schemas\n"
msgstr " DIR_SCHEMA Una directory in cui cercare schemi aggiuntivi\n"
-#: gio/gsettings-tool.c:722
+#: gio/gsettings-tool.c:724
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
@@ -3930,280 +3980,281 @@ msgstr ""
" SCHEMA Il nome dello schema\n"
" PERCORSO Il percorso, per gli schemi rilocabili\n"
-#: gio/gsettings-tool.c:727
+#: gio/gsettings-tool.c:729
msgid " KEY The (optional) key within the schema\n"
msgstr " CHIAVE La chiave (opzionale) all'interno dello schema\n"
-#: gio/gsettings-tool.c:731
+#: gio/gsettings-tool.c:733
msgid " KEY The key within the schema\n"
msgstr " CHIAVE La chiave all'interno dello schema\n"
-#: gio/gsettings-tool.c:735
+#: gio/gsettings-tool.c:737
msgid " VALUE The value to set\n"
msgstr " VALORE Il valore da impostare\n"
-#: gio/gsettings-tool.c:790
+#: gio/gsettings-tool.c:792
#, c-format
msgid "Could not load schemas from %s: %s\n"
msgstr "Impossibile aprire i file schema da %s: %s\n"
-#: gio/gsettings-tool.c:802
+#: gio/gsettings-tool.c:804
msgid "No schemas installed\n"
msgstr "Nessun file schema installato\n"
-#: gio/gsettings-tool.c:881
+#: gio/gsettings-tool.c:883
msgid "Empty schema name given\n"
msgstr "Fornito un nome di schema vuoto\n"
-#: gio/gsettings-tool.c:936
+#: gio/gsettings-tool.c:938
#, c-format
msgid "No such key “%s”\n"
msgstr "Chiave «%s» inesistente\n"
-#: gio/gsocket.c:417
+#: gio/gsocket.c:419
msgid "Invalid socket, not initialized"
msgstr "Socket non valido, non inizializzato"
-#: gio/gsocket.c:424
+#: gio/gsocket.c:426
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
msgstr "Socket non valido, inizializzazione non riuscita a causa di: %s"
-#: gio/gsocket.c:432
+#: gio/gsocket.c:434
msgid "Socket is already closed"
msgstr "Il socket è già chiuso"
-#: gio/gsocket.c:447 gio/gsocket.c:3194 gio/gsocket.c:4427 gio/gsocket.c:4485
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1445
msgid "Socket I/O timed out"
msgstr "I/O sul socket scaduto"
-#: gio/gsocket.c:582
+#: gio/gsocket.c:586
#, c-format
msgid "creating GSocket from fd: %s"
msgstr "creazione di GSocket da FD: %s"
-#: gio/gsocket.c:611 gio/gsocket.c:675 gio/gsocket.c:682
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Impossibile creare il socket: %s"
-#: gio/gsocket.c:675
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "È stata specificata una famiglia sconosciuta"
-#: gio/gsocket.c:682
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "È stato specificato un protocollo sconosciuto"
-#: gio/gsocket.c:1173
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "Impossibile utilizzare operazioni datagram su un socket non-datagram."
-#: gio/gsocket.c:1190
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Impossibile utilizzare operazioni datagram su un socket con impostato un "
"timeout."
-#: gio/gsocket.c:1997
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "impossibile ottenere l'indirizzo locale: %s"
-#: gio/gsocket.c:2043
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "impossibile ottenere l'indirizzo remoto: %s"
-#: gio/gsocket.c:2109
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "impossibile restare in ascolto: %s"
# oppure "nell'eseguire il binding" ??
-#: gio/gsocket.c:2213
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Errore nell'eseguire il bind all'indirizzo %s: %s"
-#: gio/gsocket.c:2389 gio/gsocket.c:2426 gio/gsocket.c:2536 gio/gsocket.c:2561
-#: gio/gsocket.c:2624 gio/gsocket.c:2682 gio/gsocket.c:2700
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Errore nel fare il join al gruppo multicast: %s"
-#: gio/gsocket.c:2390 gio/gsocket.c:2427 gio/gsocket.c:2537 gio/gsocket.c:2562
-#: gio/gsocket.c:2625 gio/gsocket.c:2683 gio/gsocket.c:2701
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Errore nel lasciare il gruppo multicast: %s"
-#: gio/gsocket.c:2391
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Nessun supporto per multicast source-specific"
-#: gio/gsocket.c:2538
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Famiglia socket non supportato"
-#: gio/gsocket.c:2563
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "source-specific non è un indirizzo IPv4"
-#: gio/gsocket.c:2587
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Nome interfaccia troppo lungo"
-#: gio/gsocket.c:2600 gio/gsocket.c:2650
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Interfaccia non trovata: %s"
-#: gio/gsocket.c:2626
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Nessun supporto per multicast IPv4 source-specific"
-#: gio/gsocket.c:2684
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Nessun supporto per multicast IPv6 source-specific"
-#: gio/gsocket.c:2893
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Errore nell'accettare la connessione: %s"
-#: gio/gsocket.c:3019
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Connessione in corso"
-#: gio/gsocket.c:3070
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Impossibile ottenere l'errore in sospeso: "
-#: gio/gsocket.c:3259
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Errore nel ricevere i dati: %s"
-#: gio/gsocket.c:3456
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Errore nell'inviare i dati: %s"
-#: gio/gsocket.c:3643
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Impossibile arrestare il socket: %s"
-#: gio/gsocket.c:3724
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Errore nel chiudere il socket: %s"
-#: gio/gsocket.c:4420
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "In attesa della condizione del socket: %s"
-#: gio/gsocket.c:4810 gio/gsocket.c:4826 gio/gsocket.c:4839
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Impossibile inviare un messaggio: %s"
-#: gio/gsocket.c:4811 gio/gsocket.c:4827 gio/gsocket.c:4840
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Vettori di messaggi troppo grandi"
-#: gio/gsocket.c:4856 gio/gsocket.c:4858 gio/gsocket.c:5005 gio/gsocket.c:5090
-#: gio/gsocket.c:5268 gio/gsocket.c:5308 gio/gsocket.c:5310
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Errore nell'inviare il messaggio: %s"
-#: gio/gsocket.c:5032
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage non supportato su Windows"
-#: gio/gsocket.c:5505 gio/gsocket.c:5581 gio/gsocket.c:5807
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Errore nel ricevere il messaggio: %s"
-#: gio/gsocket.c:6090 gio/gsocket.c:6101 gio/gsocket.c:6164
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Impossibile reggere le credenziali del socket: %s"
-#: gio/gsocket.c:6173
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials non implementata per questo SO"
-#: gio/gsocketclient.c:191
+#: gio/gsocketclient.c:193
#, c-format
msgid "Could not connect to proxy server %s: "
msgstr "Impossibile connettersi al server proxy %s: "
-#: gio/gsocketclient.c:205
+#: gio/gsocketclient.c:207
#, c-format
msgid "Could not connect to %s: "
msgstr "Impossibile connettersi a %s: "
-#: gio/gsocketclient.c:207
+#: gio/gsocketclient.c:209
msgid "Could not connect: "
msgstr "Impossibile connettersi: "
# FIXME: il tentativo o la connessione?
-#: gio/gsocketclient.c:1202 gio/gsocketclient.c:1793
+#: gio/gsocketclient.c:1204 gio/gsocketclient.c:1807
msgid "Proxying over a non-TCP connection is not supported."
msgstr "L'esecuzione del proxy su una connessione non-TCP non è supportato."
-#: gio/gsocketclient.c:1234 gio/gsocketclient.c:1822
+#: gio/gsocketclient.c:1236 gio/gsocketclient.c:1836
#, c-format
msgid "Proxy protocol “%s” is not supported."
msgstr "Il protocollo proxy «%s» non è supportato."
-#: gio/gsocketlistener.c:230
+#: gio/gsocketlistener.c:232
msgid "Listener is already closed"
msgstr "Il listener è già chiuso"
-#: gio/gsocketlistener.c:276
+#: gio/gsocketlistener.c:278
msgid "Added socket is closed"
msgstr "Il socket aggiunto è chiuso"
-#: gio/gsocks4aproxy.c:118
+#: gio/gsocks4aproxy.c:120
#, c-format
msgid "SOCKSv4 does not support IPv6 address “%s”"
msgstr "SOCKSv4 non supporta l'indirizzo IPv6 «%s»"
-#: gio/gsocks4aproxy.c:136
+#: gio/gsocks4aproxy.c:138
msgid "Username is too long for SOCKSv4 protocol"
msgstr "Il nome utente è troppo lungo per il protocollo SOCKSv4"
-#: gio/gsocks4aproxy.c:153
+#: gio/gsocks4aproxy.c:155
#, c-format
msgid "Hostname “%s” is too long for SOCKSv4 protocol"
msgstr "Il nome host «%s» è troppo lungo per il protocollo SOCKSv4"
-#: gio/gsocks4aproxy.c:179
+#: gio/gsocks4aproxy.c:181
msgid "The server is not a SOCKSv4 proxy server."
msgstr "Il server non è un server proxy SOCKSv4."
-#: gio/gsocks4aproxy.c:186
+#: gio/gsocks4aproxy.c:188
msgid "Connection through SOCKSv4 server was rejected"
msgstr "La connessione attraverso il server SOCKSv3 è stata rifiutata"
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:338 gio/gsocks5proxy.c:348
+#: gio/gsocks5proxy.c:155 gio/gsocks5proxy.c:340 gio/gsocks5proxy.c:350
msgid "The server is not a SOCKSv5 proxy server."
msgstr "Il server non è un server proxy SOCKSv5."
-#: gio/gsocks5proxy.c:167 gio/gsocks5proxy.c:184
+#: gio/gsocks5proxy.c:169 gio/gsocks5proxy.c:186
msgid "The SOCKSv5 proxy requires authentication."
msgstr "Il proxy SOCKSv5 richiede l'autenticazione."
-#: gio/gsocks5proxy.c:191
+#: gio/gsocks5proxy.c:193
msgid ""
"The SOCKSv5 proxy requires an authentication method that is not supported by "
"GLib."
@@ -4211,148 +4262,148 @@ msgstr ""
"Il proxy SOCKSv5 richiede un metodo di autenticazione che non è supportato "
"da GLib."
-#: gio/gsocks5proxy.c:220
+#: gio/gsocks5proxy.c:222
msgid "Username or password is too long for SOCKSv5 protocol."
msgstr ""
"Il nome utente o la password sono troppo lunghi per il protocollo SOCKSv5."
-#: gio/gsocks5proxy.c:250
+#: gio/gsocks5proxy.c:252
msgid "SOCKSv5 authentication failed due to wrong username or password."
msgstr ""
"L'autenticazione SOCKSv5 non è riuscita a causa di un nome utente o password "
"errati."
-#: gio/gsocks5proxy.c:300
+#: gio/gsocks5proxy.c:302
#, c-format
msgid "Hostname “%s” is too long for SOCKSv5 protocol"
msgstr "Il nome host «%s» è troppo lungo per il protocollo SOCKSv5"
-#: gio/gsocks5proxy.c:362
+#: gio/gsocks5proxy.c:364
msgid "The SOCKSv5 proxy server uses unknown address type."
msgstr "Il proxy server SOCKSv5 utilizza un tipo di indirizzo sconosciuto."
-#: gio/gsocks5proxy.c:369
+#: gio/gsocks5proxy.c:371
msgid "Internal SOCKSv5 proxy server error."
msgstr "Errore interno del server proxy SOCKSv5."
-#: gio/gsocks5proxy.c:375
+#: gio/gsocks5proxy.c:377
msgid "SOCKSv5 connection not allowed by ruleset."
msgstr "La connessione SOCKSv5 non è consentita dal ruleset."
-#: gio/gsocks5proxy.c:382
+#: gio/gsocks5proxy.c:384
msgid "Host unreachable through SOCKSv5 server."
msgstr "Host irraggiungibile attraverso il server SOCKSv5."
-#: gio/gsocks5proxy.c:388
+#: gio/gsocks5proxy.c:390
msgid "Network unreachable through SOCKSv5 proxy."
msgstr "Rete irraggiungibile attraverso il proxy SOCKSv5."
-#: gio/gsocks5proxy.c:394
+#: gio/gsocks5proxy.c:396
msgid "Connection refused through SOCKSv5 proxy."
msgstr "Connessione rifiutata attraverso il proxy SOCKSv5."
-#: gio/gsocks5proxy.c:400
+#: gio/gsocks5proxy.c:402
msgid "SOCKSv5 proxy does not support “connect” command."
msgstr "Il proxy SOCKSv5 non supporta il comando «connect»."
-#: gio/gsocks5proxy.c:406
+#: gio/gsocks5proxy.c:408
msgid "SOCKSv5 proxy does not support provided address type."
msgstr "Il proxy SOCKSv5 non supporta il tipo di indirizzo fornito."
-#: gio/gsocks5proxy.c:412
+#: gio/gsocks5proxy.c:414
msgid "Unknown SOCKSv5 proxy error."
msgstr "Errore sconosciuto del proxy SOCKSv5."
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: gio/gtestdbus.c:612 glib/gspawn-win32.c:314
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr ""
"Creazione della pipe per comunicare con il processo figlio non riuscita (%s)"
-#: gio/gtestdbus.c:619
+#: gio/gtestdbus.c:621
#, c-format
msgid "Pipes are not supported in this platform"
msgstr "Le pipe non sono supportate su questa piattaforma"
-#: gio/gthemedicon.c:595
+#: gio/gthemedicon.c:597
#, c-format
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Impossibile gestire la versione %d della codifica GThemedIcon"
-#: gio/gthreadedresolver.c:152
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Non è stato trovato alcun indirizzo valido"
-#: gio/gthreadedresolver.c:337
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Errore nella risoluzione inversa di «%s»: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:550 gio/gthreadedresolver.c:572
-#: gio/gthreadedresolver.c:610 gio/gthreadedresolver.c:657
-#: gio/gthreadedresolver.c:686 gio/gthreadedresolver.c:698
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Errore nell'analizzare il record DNS %s: pacchetto DNS non valido"
-#: gio/gthreadedresolver.c:756 gio/gthreadedresolver.c:893
-#: gio/gthreadedresolver.c:991 gio/gthreadedresolver.c:1041
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Nessun record DNS del tipo richiesto per «%s»"
-#: gio/gthreadedresolver.c:761 gio/gthreadedresolver.c:996
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Momentaneamente impossibile risolvere «%s»"
-#: gio/gthreadedresolver.c:766 gio/gthreadedresolver.c:1001
-#: gio/gthreadedresolver.c:1111
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Errore nel risolvere «%s»"
-#: gio/gthreadedresolver.c:780 gio/gthreadedresolver.c:804
-#: gio/gthreadedresolver.c:829 gio/gthreadedresolver.c:844
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Pacchetto DNS non valido"
-#: gio/gthreadedresolver.c:886
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Analisi della risposta DNS per «%s» non riuscita: "
-#: gio/gtlscertificate.c:478
+#: gio/gtlscertificate.c:480
msgid "No PEM-encoded private key found"
msgstr "Non è stato trovata alcuna chiave privata codificata con PEM"
-#: gio/gtlscertificate.c:488
+#: gio/gtlscertificate.c:490
msgid "Cannot decrypt PEM-encoded private key"
msgstr "Impossibile decifrare la chiave privata codificata con PEM"
-#: gio/gtlscertificate.c:499
+#: gio/gtlscertificate.c:501
msgid "Could not parse PEM-encoded private key"
msgstr "Impossibile analizzare la chiave privata codificata con PEM"
-#: gio/gtlscertificate.c:526
+#: gio/gtlscertificate.c:528
msgid "No PEM-encoded certificate found"
msgstr "Non è stato trovato alcun certificato codificato con PEM"
-#: gio/gtlscertificate.c:535
+#: gio/gtlscertificate.c:537
msgid "Could not parse PEM-encoded certificate"
msgstr "Impossibile analizzare il certificato codificato con PEM"
-#: gio/gtlscertificate.c:796
+#: gio/gtlscertificate.c:800
msgid "The current TLS backend does not support PKCS #12"
msgstr "L'attuale sistema TLS non supporta PKCS #12"
-#: gio/gtlscertificate.c:1013
+#: gio/gtlscertificate.c:1017
msgid "This GTlsBackend does not support creating PKCS #11 certificates"
msgstr "Questo GTlsBackend non supporta la creazione di certificati PKCS #11"
-#: gio/gtlspassword.c:111
+#: gio/gtlspassword.c:113
msgid ""
"This is the last chance to enter the password correctly before your access "
"is locked out."
@@ -4362,7 +4413,7 @@ msgstr ""
#. Translators: This is not the 'This is the last chance' string. It is
#. * displayed when more than one attempt is allowed.
-#: gio/gtlspassword.c:115
+#: gio/gtlspassword.c:117
msgid ""
"Several passwords entered have been incorrect, and your access will be "
"locked out after further failures."
@@ -4370,141 +4421,141 @@ msgstr ""
"Sono state inserite diverse password non corrette: altri errori e l'accesso "
"verrà bloccato."
-#: gio/gtlspassword.c:117
+#: gio/gtlspassword.c:119
msgid "The password entered is incorrect."
msgstr "La password inserita non è corretta."
-#: gio/gunixconnection.c:125
+#: gio/gunixconnection.c:127
msgid "Sending FD is not supported"
msgstr "L'invio di FD non è supportato"
-#: gio/gunixconnection.c:178 gio/gunixconnection.c:596
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "Atteso 1 messaggio di controllo, ottenuto %d"
msgstr[1] "Atteso 1 messaggio di controllo, ottenuti %d"
-#: gio/gunixconnection.c:194 gio/gunixconnection.c:608
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Tipo di dati ausiliari inatteso"
# tolto il "but" per omogeneità con l'altro simile
-#: gio/gunixconnection.c:212
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "Atteso un FD, ottenuto %d\n"
msgstr[1] "Atteso un FD, ottenuti %d\n"
-#: gio/gunixconnection.c:231
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Ricevuto FD non valido"
-#: gio/gunixconnection.c:238
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "La ricezione di FD non è supportata"
-#: gio/gunixconnection.c:380
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Errore nell'inviare le credenziali: "
-#: gio/gunixconnection.c:537
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Errore nel verificare se SO_PASSCRED è abilitato per il socket: %s"
-#: gio/gunixconnection.c:553
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Errore nell'abilitare SO_PASSCRED: %s"
-#: gio/gunixconnection.c:582
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Attesa la lettura di un singolo byte per la ricezione delle credenziali, ma "
"sono stati letti zero byte"
-#: gio/gunixconnection.c:622
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Messaggio di controllo inatteso, ottenuti %d"
-#: gio/gunixconnection.c:647
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Errore durante la disabilitazione di SO_PASSCRED: %s"
-#: gio/gunixinputstream.c:357 gio/gunixinputstream.c:378
+#: gio/gunixinputstream.c:359 gio/gunixinputstream.c:380
#, c-format
msgid "Error reading from file descriptor: %s"
msgstr "Errore nel leggere dal descrittore di file: %s"
-#: gio/gunixinputstream.c:411 gio/gunixoutputstream.c:520
-#: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
+#: gio/gunixinputstream.c:413 gio/gunixoutputstream.c:522
+#: gio/gwin32inputstream.c:219 gio/gwin32outputstream.c:206
#, c-format
msgid "Error closing file descriptor: %s"
msgstr "Errore nel chiudere il descrittore di file: %s"
-#: gio/gunixmounts.c:2809 gio/gunixmounts.c:2862
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "File system radice"
-#: gio/gunixoutputstream.c:357 gio/gunixoutputstream.c:377
-#: gio/gunixoutputstream.c:464 gio/gunixoutputstream.c:484
-#: gio/gunixoutputstream.c:630
+#: gio/gunixoutputstream.c:359 gio/gunixoutputstream.c:379
+#: gio/gunixoutputstream.c:466 gio/gunixoutputstream.c:486
+#: gio/gunixoutputstream.c:632
#, c-format
msgid "Error writing to file descriptor: %s"
msgstr "Errore nello scrivere sul descrittore di file: %s"
# a chi è riferito abstract??
# a addresses o a domain?
-#: gio/gunixsocketaddress.c:251
+#: gio/gunixsocketaddress.c:253
msgid "Abstract UNIX domain socket addresses not supported on this system"
msgstr ""
"Indirizzi di socket di dominio UNIX astratto non supportati su questo sistema"
-#: gio/gvolume.c:438
+#: gio/gvolume.c:440
msgid "volume doesn’t implement eject"
msgstr "il volume non implementa l'azione eject"
#. Translators: This is an error
#. * message for volume objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gvolume.c:515
+#: gio/gvolume.c:517
msgid "volume doesn’t implement eject or eject_with_operation"
msgstr "il volume non implementa l'azione eject o eject_with_operation"
-#: gio/gwin32inputstream.c:185
+#: gio/gwin32inputstream.c:187
#, c-format
msgid "Error reading from handle: %s"
msgstr "Errore nel leggere dall'handle: %s"
-#: gio/gwin32inputstream.c:232 gio/gwin32outputstream.c:219
+#: gio/gwin32inputstream.c:234 gio/gwin32outputstream.c:221
#, c-format
msgid "Error closing handle: %s"
msgstr "Errore nel chiudere l'handle: %s"
-#: gio/gwin32outputstream.c:172
+#: gio/gwin32outputstream.c:174
#, c-format
msgid "Error writing to handle: %s"
msgstr "Errore nello scrivere sull'handle: %s"
-#: gio/gzlibcompressor.c:394 gio/gzlibdecompressor.c:347
+#: gio/gzlibcompressor.c:396 gio/gzlibdecompressor.c:349
msgid "Not enough memory"
msgstr "Memoria non sufficiente"
-#: gio/gzlibcompressor.c:401 gio/gzlibdecompressor.c:354
+#: gio/gzlibcompressor.c:403 gio/gzlibdecompressor.c:356
#, c-format
msgid "Internal error: %s"
msgstr "Errore interno: %s"
-#: gio/gzlibcompressor.c:414 gio/gzlibdecompressor.c:368
+#: gio/gzlibcompressor.c:416 gio/gzlibdecompressor.c:370
msgid "Need more input"
msgstr "Necessario ulteriore input"
-#: gio/gzlibdecompressor.c:340
+#: gio/gzlibdecompressor.c:342
msgid "Invalid compressed data"
msgstr "Dati compressi non validi"
@@ -4532,62 +4583,62 @@ msgstr "Esegue un servizio dbus"
msgid "Wrong args\n"
msgstr "Argomenti errati\n"
-#: glib/gbookmarkfile.c:777
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Attributo «%s» inatteso per l'elemento «%s»"
-#: glib/gbookmarkfile.c:788 glib/gbookmarkfile.c:868 glib/gbookmarkfile.c:878
-#: glib/gbookmarkfile.c:991
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Attributo «%s» dell'elemento «%s» non trovato"
-#: glib/gbookmarkfile.c:1200 glib/gbookmarkfile.c:1265
-#: glib/gbookmarkfile.c:1329 glib/gbookmarkfile.c:1339
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Tag «%s» inatteso, atteso il tag «%s»"
-#: glib/gbookmarkfile.c:1225 glib/gbookmarkfile.c:1239
-#: glib/gbookmarkfile.c:1307 glib/gbookmarkfile.c:1353
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Tag «%s» inatteso all'interno di «%s»"
-#: glib/gbookmarkfile.c:1633
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Data/Ora «%s» non valida nel file di segnalibro"
-#: glib/gbookmarkfile.c:1836
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr ""
"Non è stato trovato alcun file di segnalibri valido nelle directory dei dati"
# usate le «» perché forse questa compare nella UI
#
-#: glib/gbookmarkfile.c:2037
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Esiste già un segnalibro per l'URI «%s»"
# vedi sopra per «»
#
-#: glib/gbookmarkfile.c:2086 glib/gbookmarkfile.c:2244
-#: glib/gbookmarkfile.c:2329 glib/gbookmarkfile.c:2409
-#: glib/gbookmarkfile.c:2494 glib/gbookmarkfile.c:2628
-#: glib/gbookmarkfile.c:2761 glib/gbookmarkfile.c:2896
-#: glib/gbookmarkfile.c:2938 glib/gbookmarkfile.c:3035
-#: glib/gbookmarkfile.c:3156 glib/gbookmarkfile.c:3350
-#: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3710
-#: glib/gbookmarkfile.c:3799 glib/gbookmarkfile.c:3888
-#: glib/gbookmarkfile.c:4007
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Non è stato trovato alcun segnalibro per l'URI «%s»"
-#: glib/gbookmarkfile.c:2418
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Non risulta definito alcun tipo MIME nel segnalibro per l'URI «%s»"
@@ -4595,99 +4646,94 @@ msgstr "Non risulta definito alcun tipo MIME nel segnalibro per l'URI «%s»"
# o private è il nome della flag (che quindi diventa opzione)?
# cercare nel codice... -Luca
#
-#: glib/gbookmarkfile.c:2503
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Non è stata definita alcuna flag privata nel segnalibro per l'URI «%s»"
-#: glib/gbookmarkfile.c:3044
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "Non risulta impostato alcun gruppo nel segnalibro per l'URI «%s»"
-#: glib/gbookmarkfile.c:3512 glib/gbookmarkfile.c:3720
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Nessuna applicazione di nome «%s» ha registrato un segnalibro per «%s»"
-#: glib/gbookmarkfile.c:3743
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Espansione della riga exec «%s» con l'URI «%s» non riuscita"
-#: glib/gconvert.c:468
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Carattere non rappresentabile nell'ingresso per la conversione"
-#: glib/gconvert.c:495 glib/gutf8.c:886 glib/gutf8.c:1099 glib/gutf8.c:1236
-#: glib/gutf8.c:1340
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Sequenza di caratteri parziale al termine dei dati in ingresso"
# il primo %s è una 'fallback string' come recita il commento nel codice
-#: glib/gconvert.c:764
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Impossibile convertire «%s» nel set di caratteri «%s»"
-#: glib/gconvert.c:936
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Byte NUL integrato nell'ingresso per la conversione"
-#: glib/gconvert.c:957
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Byte NUL integrato nell'uscita per la conversione"
-#: glib/gconvert.c:1688
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "L'URI «%s» non è un URI assoluto che utilizza lo schema «file»"
-#: glib/gconvert.c:1698
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "L'URI per il file locale «%s» non può includere un «#»"
-
-#: glib/gconvert.c:1715
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "L'URI «%s» non è valido"
-#: glib/gconvert.c:1727
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Il nome dell'host nell'URI «%s» non è valido"
-#: glib/gconvert.c:1743
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "L'URI «%s» contiene sequenze di escape non valide"
-#: glib/gconvert.c:1815
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Il nome di percorso «%s» non è un percorso assoluto"
#. Translators: this is the preferred format for expressing the date and the time
-#: glib/gdatetime.c:226
+#: glib/gdatetime.c:228
msgctxt "GDateTime"
msgid "%a %b %e %H:%M:%S %Y"
msgstr "%a %e %b %Y %H:%M:%S"
#. Translators: this is the preferred format for expressing the date
-#: glib/gdatetime.c:229
+#: glib/gdatetime.c:231
msgctxt "GDateTime"
msgid "%m/%d/%y"
msgstr "%d/%m/%y"
#. Translators: this is the preferred format for expressing the time
-#: glib/gdatetime.c:232
+#: glib/gdatetime.c:234
msgctxt "GDateTime"
msgid "%H:%M:%S"
msgstr "%H:%M:%S"
#. Translators: this is the preferred format for expressing 12 hour time
-#: glib/gdatetime.c:235
+#: glib/gdatetime.c:237
msgctxt "GDateTime"
msgid "%I:%M:%S %p"
msgstr "%I:%M:%S %P"
@@ -4708,62 +4754,62 @@ msgstr "%I:%M:%S %P"
#. * non-European) there is no difference between the standalone and
#. * complete date form.
#.
-#: glib/gdatetime.c:274
+#: glib/gdatetime.c:276
msgctxt "full month name"
msgid "January"
msgstr "Gennaio"
-#: glib/gdatetime.c:276
+#: glib/gdatetime.c:278
msgctxt "full month name"
msgid "February"
msgstr "Febbraio"
-#: glib/gdatetime.c:278
+#: glib/gdatetime.c:280
msgctxt "full month name"
msgid "March"
msgstr "Marzo"
-#: glib/gdatetime.c:280
+#: glib/gdatetime.c:282
msgctxt "full month name"
msgid "April"
msgstr "Aprile"
-#: glib/gdatetime.c:282
+#: glib/gdatetime.c:284
msgctxt "full month name"
msgid "May"
msgstr "Maggio"
-#: glib/gdatetime.c:284
+#: glib/gdatetime.c:286
msgctxt "full month name"
msgid "June"
msgstr "Giugno"
-#: glib/gdatetime.c:286
+#: glib/gdatetime.c:288
msgctxt "full month name"
msgid "July"
msgstr "Luglio"
-#: glib/gdatetime.c:288
+#: glib/gdatetime.c:290
msgctxt "full month name"
msgid "August"
msgstr "Agosto"
-#: glib/gdatetime.c:290
+#: glib/gdatetime.c:292
msgctxt "full month name"
msgid "September"
msgstr "Settembre"
-#: glib/gdatetime.c:292
+#: glib/gdatetime.c:294
msgctxt "full month name"
msgid "October"
msgstr "Ottobre"
-#: glib/gdatetime.c:294
+#: glib/gdatetime.c:296
msgctxt "full month name"
msgid "November"
msgstr "Novembre"
-#: glib/gdatetime.c:296
+#: glib/gdatetime.c:298
msgctxt "full month name"
msgid "December"
msgstr "Dicembre"
@@ -4785,132 +4831,132 @@ msgstr "Dicembre"
#. * other platform. Here are abbreviated month names in a form
#. * appropriate when they are used standalone.
#.
-#: glib/gdatetime.c:328
+#: glib/gdatetime.c:330
msgctxt "abbreviated month name"
msgid "Jan"
msgstr "Gen"
-#: glib/gdatetime.c:330
+#: glib/gdatetime.c:332
msgctxt "abbreviated month name"
msgid "Feb"
msgstr "Feb"
-#: glib/gdatetime.c:332
+#: glib/gdatetime.c:334
msgctxt "abbreviated month name"
msgid "Mar"
msgstr "Mar"
-#: glib/gdatetime.c:334
+#: glib/gdatetime.c:336
msgctxt "abbreviated month name"
msgid "Apr"
msgstr "Apr"
-#: glib/gdatetime.c:336
+#: glib/gdatetime.c:338
msgctxt "abbreviated month name"
msgid "May"
msgstr "Mag"
-#: glib/gdatetime.c:338
+#: glib/gdatetime.c:340
msgctxt "abbreviated month name"
msgid "Jun"
msgstr "Giu"
-#: glib/gdatetime.c:340
+#: glib/gdatetime.c:342
msgctxt "abbreviated month name"
msgid "Jul"
msgstr "Lug"
-#: glib/gdatetime.c:342
+#: glib/gdatetime.c:344
msgctxt "abbreviated month name"
msgid "Aug"
msgstr "Ago"
-#: glib/gdatetime.c:344
+#: glib/gdatetime.c:346
msgctxt "abbreviated month name"
msgid "Sep"
msgstr "Set"
-#: glib/gdatetime.c:346
+#: glib/gdatetime.c:348
msgctxt "abbreviated month name"
msgid "Oct"
msgstr "Ott"
-#: glib/gdatetime.c:348
+#: glib/gdatetime.c:350
msgctxt "abbreviated month name"
msgid "Nov"
msgstr "Nov"
-#: glib/gdatetime.c:350
+#: glib/gdatetime.c:352
msgctxt "abbreviated month name"
msgid "Dec"
msgstr "Dic"
-#: glib/gdatetime.c:365
+#: glib/gdatetime.c:367
msgctxt "full weekday name"
msgid "Monday"
msgstr "Lunedì"
-#: glib/gdatetime.c:367
+#: glib/gdatetime.c:369
msgctxt "full weekday name"
msgid "Tuesday"
msgstr "Martedì"
-#: glib/gdatetime.c:369
+#: glib/gdatetime.c:371
msgctxt "full weekday name"
msgid "Wednesday"
msgstr "Mercoledì"
-#: glib/gdatetime.c:371
+#: glib/gdatetime.c:373
msgctxt "full weekday name"
msgid "Thursday"
msgstr "Giovedì"
-#: glib/gdatetime.c:373
+#: glib/gdatetime.c:375
msgctxt "full weekday name"
msgid "Friday"
msgstr "Venerdì"
-#: glib/gdatetime.c:375
+#: glib/gdatetime.c:377
msgctxt "full weekday name"
msgid "Saturday"
msgstr "Sabato"
-#: glib/gdatetime.c:377
+#: glib/gdatetime.c:379
msgctxt "full weekday name"
msgid "Sunday"
msgstr "Domenica"
-#: glib/gdatetime.c:392
+#: glib/gdatetime.c:394
msgctxt "abbreviated weekday name"
msgid "Mon"
msgstr "Lun"
-#: glib/gdatetime.c:394
+#: glib/gdatetime.c:396
msgctxt "abbreviated weekday name"
msgid "Tue"
msgstr "Mar"
-#: glib/gdatetime.c:396
+#: glib/gdatetime.c:398
msgctxt "abbreviated weekday name"
msgid "Wed"
msgstr "Mer"
-#: glib/gdatetime.c:398
+#: glib/gdatetime.c:400
msgctxt "abbreviated weekday name"
msgid "Thu"
msgstr "Gio"
-#: glib/gdatetime.c:400
+#: glib/gdatetime.c:402
msgctxt "abbreviated weekday name"
msgid "Fri"
msgstr "Ven"
-#: glib/gdatetime.c:402
+#: glib/gdatetime.c:404
msgctxt "abbreviated weekday name"
msgid "Sat"
msgstr "Sab"
-#: glib/gdatetime.c:404
+#: glib/gdatetime.c:406
msgctxt "abbreviated weekday name"
msgid "Sun"
msgstr "Dom"
@@ -4932,62 +4978,62 @@ msgstr "Dom"
#. * (western European, non-European) there is no difference between the
#. * standalone and complete date form.
#.
-#: glib/gdatetime.c:468
+#: glib/gdatetime.c:470
msgctxt "full month name with day"
msgid "January"
msgstr "gennaio"
-#: glib/gdatetime.c:470
+#: glib/gdatetime.c:472
msgctxt "full month name with day"
msgid "February"
msgstr "febbraio"
-#: glib/gdatetime.c:472
+#: glib/gdatetime.c:474
msgctxt "full month name with day"
msgid "March"
msgstr "marzo"
-#: glib/gdatetime.c:474
+#: glib/gdatetime.c:476
msgctxt "full month name with day"
msgid "April"
msgstr "aprile"
-#: glib/gdatetime.c:476
+#: glib/gdatetime.c:478
msgctxt "full month name with day"
msgid "May"
msgstr "maggio"
-#: glib/gdatetime.c:478
+#: glib/gdatetime.c:480
msgctxt "full month name with day"
msgid "June"
msgstr "giugno"
-#: glib/gdatetime.c:480
+#: glib/gdatetime.c:482
msgctxt "full month name with day"
msgid "July"
msgstr "luglio"
-#: glib/gdatetime.c:482
+#: glib/gdatetime.c:484
msgctxt "full month name with day"
msgid "August"
msgstr "agosto"
-#: glib/gdatetime.c:484
+#: glib/gdatetime.c:486
msgctxt "full month name with day"
msgid "September"
msgstr "settembre"
-#: glib/gdatetime.c:486
+#: glib/gdatetime.c:488
msgctxt "full month name with day"
msgid "October"
msgstr "ottobre"
-#: glib/gdatetime.c:488
+#: glib/gdatetime.c:490
msgctxt "full month name with day"
msgid "November"
msgstr "novembre"
-#: glib/gdatetime.c:490
+#: glib/gdatetime.c:492
msgctxt "full month name with day"
msgid "December"
msgstr "dicembre"
@@ -5009,144 +5055,144 @@ msgstr "dicembre"
#. * month names almost ready to copy and paste here. In other systems
#. * due to a bug the result is incorrect in some languages.
#.
-#: glib/gdatetime.c:555
+#: glib/gdatetime.c:557
msgctxt "abbreviated month name with day"
msgid "Jan"
msgstr "gen"
-#: glib/gdatetime.c:557
+#: glib/gdatetime.c:559
msgctxt "abbreviated month name with day"
msgid "Feb"
msgstr "feb"
-#: glib/gdatetime.c:559
+#: glib/gdatetime.c:561
msgctxt "abbreviated month name with day"
msgid "Mar"
msgstr "mar"
-#: glib/gdatetime.c:561
+#: glib/gdatetime.c:563
msgctxt "abbreviated month name with day"
msgid "Apr"
msgstr "apr"
-#: glib/gdatetime.c:563
+#: glib/gdatetime.c:565
msgctxt "abbreviated month name with day"
msgid "May"
msgstr "mag"
-#: glib/gdatetime.c:565
+#: glib/gdatetime.c:567
msgctxt "abbreviated month name with day"
msgid "Jun"
msgstr "giu"
-#: glib/gdatetime.c:567
+#: glib/gdatetime.c:569
msgctxt "abbreviated month name with day"
msgid "Jul"
msgstr "lug"
-#: glib/gdatetime.c:569
+#: glib/gdatetime.c:571
msgctxt "abbreviated month name with day"
msgid "Aug"
msgstr "ago"
-#: glib/gdatetime.c:571
+#: glib/gdatetime.c:573
msgctxt "abbreviated month name with day"
msgid "Sep"
msgstr "set"
-#: glib/gdatetime.c:573
+#: glib/gdatetime.c:575
msgctxt "abbreviated month name with day"
msgid "Oct"
msgstr "ott"
-#: glib/gdatetime.c:575
+#: glib/gdatetime.c:577
msgctxt "abbreviated month name with day"
msgid "Nov"
msgstr "nov"
-#: glib/gdatetime.c:577
+#: glib/gdatetime.c:579
msgctxt "abbreviated month name with day"
msgid "Dec"
msgstr "dic"
#. Translators: 'before midday' indicator
-#: glib/gdatetime.c:594
+#: glib/gdatetime.c:596
msgctxt "GDateTime"
msgid "AM"
msgstr "am"
#. Translators: 'after midday' indicator
-#: glib/gdatetime.c:597
+#: glib/gdatetime.c:599
msgctxt "GDateTime"
msgid "PM"
msgstr "pm"
-#: glib/gdir.c:156
+#: glib/gdir.c:158
#, c-format
msgid "Error opening directory “%s”: %s"
msgstr "Errore nell'aprire la directory «%s»: %s"
-#: glib/gfileutils.c:733 glib/gfileutils.c:825
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "Impossibile allocare %lu byte per leggere il file «%s»"
msgstr[1] "Impossibile allocare %lu byte per leggere il file «%s»"
-#: glib/gfileutils.c:750
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Errore nel leggere il file «%s»: %s"
-#: glib/gfileutils.c:786
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Il file «%s» è troppo grande"
-#: glib/gfileutils.c:850
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Lettura dal file «%s» non riuscita: %s"
-#: glib/gfileutils.c:900 glib/gfileutils.c:975 glib/gfileutils.c:1447
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Apertura del file «%s» non riuscita: %s"
-#: glib/gfileutils.c:913
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr ""
"Lettura degli attributi del file «%s» non riuscita: fstat() non riuscita: %s"
-#: glib/gfileutils.c:944
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Apertura del file «%s» non riuscita: fdopen() non riuscita: %s"
-#: glib/gfileutils.c:1045
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr ""
"Cambio di nome del file «%s» in «%s» non riuscito: g_rename() non riuscita: "
"%s"
-#: glib/gfileutils.c:1154
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Scrittura del file «%s» non riuscita: write() non riuscita: %s"
-#: glib/gfileutils.c:1175
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Scrittura del file «%s» non riuscita: fsync() non riuscita: %s"
-#: glib/gfileutils.c:1336 glib/gfileutils.c:1751
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Creazione del file «%s» non riuscita: %s"
-#: glib/gfileutils.c:1381
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr ""
@@ -5159,54 +5205,54 @@ msgstr ""
# c[1] = dir_separator;
# c[2] = '\0';
#
-#: glib/gfileutils.c:1716
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Il modello «%s» non è valido, non dovrebbe contenere un «%s»"
-#: glib/gfileutils.c:1729
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Il modello «%s» non contiene XXXXXX"
-#: glib/gfileutils.c:2289 glib/gfileutils.c:2318
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Lettura del collegamento simbolico «%s» non riuscita: %s"
-#: glib/giochannel.c:1405
+#: glib/giochannel.c:1408
#, c-format
msgid "Could not open converter from “%s” to “%s”: %s"
msgstr "Impossibile aprire il convertitore da «%s» a «%s»: %s"
-#: glib/giochannel.c:1758
+#: glib/giochannel.c:1761
msgid "Can’t do a raw read in g_io_channel_read_line_string"
msgstr "Impossibile leggere i dati grezzi in g_io_channel_read_line_string"
-#: glib/giochannel.c:1805 glib/giochannel.c:2063 glib/giochannel.c:2150
+#: glib/giochannel.c:1808 glib/giochannel.c:2066 glib/giochannel.c:2153
msgid "Leftover unconverted data in read buffer"
msgstr "Sono rimasti dei dati non convertiti nel buffer di lettura"
-#: glib/giochannel.c:1886 glib/giochannel.c:1963
+#: glib/giochannel.c:1889 glib/giochannel.c:1966
msgid "Channel terminates in a partial character"
msgstr "Il canale termina in un carattere parziale"
-#: glib/giochannel.c:1949
+#: glib/giochannel.c:1952
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Impossibile eseguire una lettura grezza in g_io_channel_read_to_end"
# key files sono, per glib, file di impostazioni in stile Windows INI
#
# Ad esempio i file .themes per i temi del desktop e delle icone.
-#: glib/gkeyfile.c:794
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Impossibile trovare un file chiavi valido nelle directory di ricerca"
-#: glib/gkeyfile.c:831
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Non è un file normale"
-#: glib/gkeyfile.c:1289
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5214,44 +5260,44 @@ msgstr ""
"Il file chiavi contiene la riga «%s» che non è una coppia chiave/valore, un "
"gruppo o un commento valido"
-#: glib/gkeyfile.c:1346
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Nome gruppo non valido: %s"
-#: glib/gkeyfile.c:1370
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Il file chiavi non inizia con un gruppo"
-#: glib/gkeyfile.c:1394
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Nome chiave non valido: %.*s"
-#: glib/gkeyfile.c:1422
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Il file chiavi contiene la codifica non supportata «%s»"
-#: glib/gkeyfile.c:1677 glib/gkeyfile.c:1850 glib/gkeyfile.c:3297
-#: glib/gkeyfile.c:3361 glib/gkeyfile.c:3491 glib/gkeyfile.c:3623
-#: glib/gkeyfile.c:3769 glib/gkeyfile.c:4004 glib/gkeyfile.c:4071
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Il file chiavi non presenta il gruppo «%s»"
-#: glib/gkeyfile.c:1805
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Il file chiavi non presenta alcuna chiave «%s» nel gruppo «%s»"
-#: glib/gkeyfile.c:1967 glib/gkeyfile.c:2083
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
"Il file chiavi contiene la chiave «%s» con il valore «%s» che non è UTF-8"
-#: glib/gkeyfile.c:1987 glib/gkeyfile.c:2103 glib/gkeyfile.c:2542
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
@@ -5259,7 +5305,7 @@ msgstr ""
"Il file chiavi contiene la chiave «%s» che presenta un valore che non può "
"essere interpretato."
-#: glib/gkeyfile.c:2757 glib/gkeyfile.c:3126
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5268,54 +5314,54 @@ msgstr ""
"Il file chiavi contiene la chiave «%s» nel gruppo «%s» che presenta un "
"valore che non può essere interpretato."
-#: glib/gkeyfile.c:2835 glib/gkeyfile.c:2912
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr ""
"La chiave «%s» nel gruppo «%s» presenta il valore «%s» mentre era atteso %s"
-#: glib/gkeyfile.c:4324
+#: glib/gkeyfile.c:4357
msgid "Key file contains escape character at end of line"
msgstr "Il file chiavi contiene un carattere di escape alla fine della riga"
-#: glib/gkeyfile.c:4346
+#: glib/gkeyfile.c:4394
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Il file chiavi contiene la sequenza di escape non valida «%s»"
-#: glib/gkeyfile.c:4491
+#: glib/gkeyfile.c:4545
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Impossibile interpretare il valore «%s» come un numero."
-#: glib/gkeyfile.c:4505
+#: glib/gkeyfile.c:4559
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Il valore intero «%s» è fuori dall'intervallo"
-#: glib/gkeyfile.c:4538
+#: glib/gkeyfile.c:4592
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Impossibile interpretare il valore «%s» come un numero float."
-#: glib/gkeyfile.c:4577
+#: glib/gkeyfile.c:4631
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Impossibile interpretare il valore «%s» come un booleano."
-#: glib/gmappedfile.c:129
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"Recupero degli attributi del file «%s%s%s%s» non riuscito: fstat() non "
"riuscita: %s"
-#: glib/gmappedfile.c:195
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Mappatura del file «%s%s%s%s» non riuscita: mmap() non riuscita: %s"
-#: glib/gmappedfile.c:262
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Apertura del file «%s» non riuscita: open() non riuscita: %s"
@@ -5555,310 +5601,249 @@ msgstr ""
"Il documento è terminato in modo inatteso all'interno di un commento o "
"istruzione di elaborazione"
-#: glib/goption.c:873
+#: glib/goption.c:875
msgid "[OPTION…]"
msgstr "[OPZIONE…]"
-#: glib/goption.c:989
+#: glib/goption.c:991
msgid "Help Options:"
msgstr "Opzioni di aiuto:"
-#: glib/goption.c:990
+#: glib/goption.c:992
msgid "Show help options"
msgstr "Mostra le opzioni di aiuto"
-#: glib/goption.c:996
+#: glib/goption.c:998
msgid "Show all help options"
msgstr "Mostra tutte le opzioni di aiuto"
-#: glib/goption.c:1059
+#: glib/goption.c:1061
msgid "Application Options:"
msgstr "Opzioni dell'applicazione:"
-#: glib/goption.c:1061
+#: glib/goption.c:1063
msgid "Options:"
msgstr "Opzioni:"
-#: glib/goption.c:1125 glib/goption.c:1195
+#: glib/goption.c:1127 glib/goption.c:1197
#, c-format
msgid "Cannot parse integer value “%s” for %s"
msgstr "Impossibile analizzare il valore intero «%s» per %s"
-#: glib/goption.c:1135 glib/goption.c:1203
+#: glib/goption.c:1137 glib/goption.c:1205
#, c-format
msgid "Integer value “%s” for %s out of range"
msgstr "Il valore intero «%s» per %s è fuori dall'intervallo"
-#: glib/goption.c:1160
+#: glib/goption.c:1162
#, c-format
msgid "Cannot parse double value “%s” for %s"
msgstr "Impossibile analizzare il valore double «%s» per %s"
-#: glib/goption.c:1168
+#: glib/goption.c:1170
#, c-format
msgid "Double value “%s” for %s out of range"
msgstr "Il valore double «%s» per %s è fuori dall'intervallo"
-#: glib/goption.c:1460 glib/goption.c:1539
+#: glib/goption.c:1462 glib/goption.c:1541
#, c-format
msgid "Error parsing option %s"
msgstr "Errore nell'analizzare l'opzione %s"
-#: glib/goption.c:1561 glib/goption.c:1674
+#: glib/goption.c:1563 glib/goption.c:1676
#, c-format
msgid "Missing argument for %s"
msgstr "Argomento mancante per %s"
-#: glib/goption.c:2184
+#: glib/goption.c:2186
#, c-format
msgid "Unknown option %s"
msgstr "Opzione %s sconosciuta"
# corrotto sembrava brutto, cfr revisione su TP
-#: glib/gregex.c:255
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "oggetto non attendibile"
-#: glib/gregex.c:257
-msgid "internal error or corrupted object"
-msgstr "errore interno oppure oggetto non attendibile"
-
-#: glib/gregex.c:259
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "memoria esaurita"
-#: glib/gregex.c:264
-msgid "backtracking limit reached"
-msgstr "raggiunto limite di backtracking"
+#: glib/gregex.c:497
+msgid "internal error"
+msgstr "errore interno"
-#: glib/gregex.c:276 glib/gregex.c:284
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr ""
"il modello contiene elementi non supportati per la corrispondenza parziale"
-#: glib/gregex.c:278
-msgid "internal error"
-msgstr "errore interno"
-
-#: glib/gregex.c:286
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"per la corrispondenza parziale non sono supportati i riferimenti "
"all'indietro come condizioni"
-#: glib/gregex.c:295
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "raggiunto limite di ricorsione"
-#: glib/gregex.c:297
-msgid "invalid combination of newline flags"
-msgstr "combinazione non valida di flag di fine riga"
-
-#: glib/gregex.c:299
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "offset errato"
-#: glib/gregex.c:301
-msgid "short utf8"
-msgstr "utf8 corto"
-
-#: glib/gregex.c:303
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "ciclo ricorsivo"
-#: glib/gregex.c:307
+#. should not happen in GRegex since we check modes before each match
+#: glib/gregex.c:514
+msgid "matching mode is requested that was not compiled for JIT"
+msgstr "richiesta modalità corrispondente che non è compilata per JIT"
+
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "errore sconosciuto"
-#: glib/gregex.c:327
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ alla fine del modello"
-#: glib/gregex.c:330
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c alla fine del modello"
# che differenza c'è tra "follows" e gli "after" qualche messaggio dopo?
-#: glib/gregex.c:333
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "carattere non riconosciuto dopo \\"
# quantificatore: esiste come termine per log. mat. e gramm.
-#: glib/gregex.c:336
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "numeri fuori ordine nel quantificatore {}"
-#: glib/gregex.c:339
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "numero troppo grande nel quantificatore {}"
-#: glib/gregex.c:342
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "] terminante mancante per classe di caratteri"
-#: glib/gregex.c:345
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "sequenza di escape non valida nella classe di caratteri"
# to put out of order --> guastare, mettere in disordine
-#: glib/gregex.c:348
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "intervallo disordinato nella classe di caratteri"
-#: glib/gregex.c:351
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "nulla da ripetere"
-#: glib/gregex.c:355
-msgid "unexpected repeat"
-msgstr "ripetizione inattesa"
-
-#: glib/gregex.c:358
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "carattere non riconosciuto dopo (? o (?-"
# classi nominate??
-#: glib/gregex.c:361
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr ""
"le classi POSIX nominate sono supportate solo all'interno di una classe"
-#: glib/gregex.c:364
+#: glib/gregex.c:602
+msgid "POSIX collating elements are not supported"
+msgstr "gli elementi di collazione POSIX non sono supportati"
+
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr ") terminante mancante"
-#: glib/gregex.c:367
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "riferimento a sotto-modello non esistente"
-#: glib/gregex.c:370
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr ") mancante dopo il commento"
-#: glib/gregex.c:373
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "l'espressione regolare è troppo grande"
-#: glib/gregex.c:376
-msgid "failed to get memory"
-msgstr "recupero della memoria non riuscito"
-
-#: glib/gregex.c:380
-msgid ") without opening ("
-msgstr ") senza ( di apertura"
-
-# secondo garzantilinguistica.it eccedenza (di dati) è la
-# traduzione di overflow secondo IBM. La traduzione generica
-# per ambito infomatico è superamento di capacità
-#: glib/gregex.c:384
-msgid "code overflow"
-msgstr "eccedenza di codice"
-
-#: glib/gregex.c:388
-msgid "unrecognized character after (?<"
-msgstr "carattere non riconosciuto dopo (?<"
-
-#: glib/gregex.c:391
-msgid "lookbehind assertion is not fixed length"
-msgstr "l'asserzione lookbehind non ha lunghezza fissata"
-
# malformato si riferisce a entrambi????
-#: glib/gregex.c:394
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "numero o nome malformato dopo (?("
-#: glib/gregex.c:397
+#: glib/gregex.c:628
+msgid "lookbehind assertion is not fixed length"
+msgstr "l'asserzione lookbehind non ha lunghezza fissata"
+
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "il gruppo condizionale contiene più di due diramazioni"
-#: glib/gregex.c:400
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "asserzione attesa dopo (?("
-#. translators: '(?R' and '(?[+-]digits' are both meant as (groups of)
-#. * sequences here, '(?-54' would be an example for the second group.
-#.
-#: glib/gregex.c:407
-msgid "(?R or (?[+-]digits must be followed by )"
-msgstr "(?R o (?[+-]cifre deve essere seguito da )"
+#: glib/gregex.c:640
+msgid "a numbered reference must not be zero"
+msgstr "un riferimento numerato deve essere diverso da zero"
-#: glib/gregex.c:410
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "nome di classe POSIX sconosciuto"
-#: glib/gregex.c:413
-msgid "POSIX collating elements are not supported"
-msgstr "gli elementi di collazione POSIX non sono supportati"
-
-#: glib/gregex.c:416
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "il valore del carattere nella sequenza \\x{...} è troppo grande"
-#: glib/gregex.c:419
-msgid "invalid condition (?(0)"
-msgstr "condizione (?(0) non valida"
-
-#: glib/gregex.c:422
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C non consentito in asserzione lookbehind"
-#: glib/gregex.c:429
-msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
-msgstr "gli escape \\L, \\l \\N{name}, \\U, e \\u non sono supportati"
-
-#: glib/gregex.c:432
-msgid "recursive call could loop indefinitely"
-msgstr "la chiamata ricorsiva potrebbe entrare in ciclo infinito"
-
-#: glib/gregex.c:436
-msgid "unrecognized character after (?P"
-msgstr "carattere non riconosciuto dopo (?P"
-
-#: glib/gregex.c:439
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "terminatore mancante nel nome di sotto-modello"
-#: glib/gregex.c:442
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "due sotto-modelli nominati presentano lo stesso nome"
-#: glib/gregex.c:445
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "sequenza \\P o \\p malformata"
-#: glib/gregex.c:448
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "nome di proprietà sconosciuto dopo \\P o \\p"
-#: glib/gregex.c:451
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "il nome di sotto-modello è troppo lungo (massimo 32 caratteri)"
-#: glib/gregex.c:454
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "troppi sotto-modelli nominati (massimo 10.000)"
-#: glib/gregex.c:457
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "il valore ottale è maggiore di \\377"
-#: glib/gregex.c:461
-msgid "overran compiling workspace"
-msgstr "sconfinamento compilando l'area di lavoro"
-
-#: glib/gregex.c:465
-msgid "previously-checked referenced subpattern not found"
-msgstr "sotto-modello referenziato precedentemente controllato non trovato"
-
-#: glib/gregex.c:468
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "il gruppo DEFINE contiene più di una diramazione"
-#: glib/gregex.c:471
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "opzioni NEWLINE incoerenti"
-#: glib/gregex.c:474
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5866,122 +5851,112 @@ msgstr ""
"\\g non è seguito da un nome o un numero tra parentesi, parentesi angolari, "
"tra virgolette o da un numero semplice"
-#: glib/gregex.c:478
-msgid "a numbered reference must not be zero"
-msgstr "un riferimento numerato deve essere diverso da zero"
-
-#: glib/gregex.c:481
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "non è consentito un argomento per (*ACCEPT), (*FAIL) o (*COMMIT)"
-#: glib/gregex.c:484
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) non riconosciuto"
-#: glib/gregex.c:487
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "il numero è troppo grande"
-#: glib/gregex.c:490
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "nome di sotto-modello mancante dopo (?&"
-#: glib/gregex.c:493
-msgid "digit expected after (?+"
-msgstr "attesa cifra dopo (?+"
-
-#: glib/gregex.c:496
-msgid "] is an invalid data character in JavaScript compatibility mode"
-msgstr "] è un caratteri dati non valido in modalità compatibilità JavaScript"
-
-#: glib/gregex.c:499
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "non sono ammessi diversi nomi per sotto-modelli dello stesso numero"
-#: glib/gregex.c:502
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) deve avere un argomento"
-#: glib/gregex.c:505
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c deve essere seguito da un carattere ASCII"
-#: glib/gregex.c:508
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"\\g non è seguito da un nome tra parentesi, parentesi angolari o virgolette"
-#: glib/gregex.c:511
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N non è supportato in una classe"
-#: glib/gregex.c:514
-msgid "too many forward references"
-msgstr "troppi riferimenti anteriori"
-
-#: glib/gregex.c:517
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "nome troppo lungo in (*MARK), (*PRUNE), (*SKIP) o (*THEN)"
-#: glib/gregex.c:520
-msgid "character value in \\u.... sequence is too large"
-msgstr "il valore del carattere nella sequenza \\u.... è troppo grande"
+# secondo garzantilinguistica.it eccedenza (di dati) è la
+# traduzione di overflow secondo IBM. La traduzione generica
+# per ambito infomatico è superamento di capacità
+#: glib/gregex.c:738 glib/gregex.c:874
+msgid "code overflow"
+msgstr "eccedenza di codice"
-#: glib/gregex.c:743 glib/gregex.c:1988
+#: glib/gregex.c:742
+msgid "unrecognized character after (?P"
+msgstr "carattere non riconosciuto dopo (?P"
+
+#: glib/gregex.c:746
+msgid "overran compiling workspace"
+msgstr "sconfinamento compilando l'area di lavoro"
+
+#: glib/gregex.c:750
+msgid "previously-checked referenced subpattern not found"
+msgstr "sotto-modello referenziato precedentemente controllato non trovato"
+
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr ""
"Errore durante la ricerca di corrispondenza per l'espressione regolare %s: %s"
-#: glib/gregex.c:1321
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "La libreria PCRE è compilata senza supporto per UTF-8"
-#: glib/gregex.c:1325
-msgid "PCRE library is compiled without UTF8 properties support"
-msgstr "La libreria PCRE è compilata senza supporto per le proprietà UTF-8"
-
-#: glib/gregex.c:1333
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "La libreria PCRE è compilata con opzioni incompatibili"
-#: glib/gregex.c:1362
-#, c-format
-msgid "Error while optimizing regular expression %s: %s"
-msgstr "Errore durante l'ottimizzazione dell'espressione regolare %s: %s"
-
-#: glib/gregex.c:1442
+#: glib/gregex.c:1860
#, c-format
-msgid "Error while compiling regular expression %s at char %d: %s"
+msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr ""
-"Errore durante la compilazione dell'espressione regolare %s al carattere %d: "
-"%s"
+"Errore durante la compilazione dell'espressione regolare «%s» al carattere "
+"%s: %s"
-#: glib/gregex.c:2427
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "attesa cifra esadecimale o «}»"
-#: glib/gregex.c:2443
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "attesa cifra esadecimale"
-#: glib/gregex.c:2483
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "«<» mancante nel riferimento simbolico"
-#: glib/gregex.c:2492
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "riferimento simbolico non terminato"
-#: glib/gregex.c:2499
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "riferimento simbolico di lunghezza zero"
-#: glib/gregex.c:2510
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "attesa cifra"
-#: glib/gregex.c:2528
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "riferimento simbolico non lecito"
@@ -5989,194 +5964,199 @@ msgstr "riferimento simbolico non lecito"
# carattere successivo che manca
#
# Quindi "isolato" o "staccato" o al limite "accindetale", "casuale"
-#: glib/gregex.c:2591
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "«\\» finale isolato"
-#: glib/gregex.c:2595
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "sequenza di escape sconosciuta"
# da sostituire crea confusione...
-#: glib/gregex.c:2605
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr ""
"Errore durante l'analisi del testo di sostituzione «%s» al carattere %lu: %s"
-#: glib/gshell.c:96
+#: glib/gshell.c:98
msgid "Quoted text doesn’t begin with a quotation mark"
msgstr "Il testo citato non inizia con un carattere di citazione"
-#: glib/gshell.c:186
+#: glib/gshell.c:188
msgid "Unmatched quotation mark in command line or other shell-quoted text"
msgstr ""
"Carattere di quoting non accoppiato nella riga di comando o nel testo con "
"quoting di shell"
-#: glib/gshell.c:592
+#: glib/gshell.c:594
#, c-format
msgid "Text ended just after a “\\” character. (The text was “%s”)"
msgstr "Il testo è finito subito dopo un carattere «\\» (il testo era «%s»)."
-#: glib/gshell.c:599
+#: glib/gshell.c:601
#, c-format
msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
msgstr ""
"Il testo è finito prima di trovare il carattere di citazione corrispondente "
"per %c (il testo era «%s»)."
-#: glib/gshell.c:611
+#: glib/gshell.c:613
msgid "Text was empty (or contained only whitespace)"
msgstr "Il testo era vuoto (oppure conteneva unicamente spazi bianchi)"
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn.c:310
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Lettura dei dati dal processo figlio non riuscita (%s)"
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn.c:462
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Errore inatteso nel leggere i dati da un processo figlio (%s)"
-#: glib/gspawn.c:547
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Errore inatteso in waitpid() (%s)"
-#: glib/gspawn.c:1175 glib/gspawn-win32.c:1438
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Processo figlio uscito con codice %ld"
-#: glib/gspawn.c:1183
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Processo figlio ucciso dal segnale %ld"
-#: glib/gspawn.c:1190
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Processo figlio fermato dal segnale %ld"
-#: glib/gspawn.c:1197
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Il processo figlio è uscito in modo anomalo"
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn.c:1890 glib/gspawn-win32.c:353 glib/gspawn-win32.c:361
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Lettura dalla pipe figlia non riuscita (%s)"
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn.c:2253
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Esecuzione del processo figlio «%s» non riuscita (%s)"
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn.c:2370
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Esecuzione di fork non riuscita (%s)"
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn.c:2530 glib/gspawn-win32.c:384
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Cambio della directory in «%s» non riuscito (%s)"
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn.c:2540
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Esecuzione del processo figlio «%s» non riuscita (%s)"
-#: glib/gspawn.c:2550
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Apertura del file per rimappare il descrittore file non riuscita (%s)"
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn.c:2558
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr ""
"Duplicazione del descrittore file per il processo figlio non riuscita (%s)"
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn.c:2567
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Esecuzione del fork per processo figlio non riuscita (%s)"
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn.c:2575
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Chiusura del descrittore file per il processo figlio non riuscita (%s)"
-#: glib/gspawn.c:2583
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Errore sconosciuto nell'eseguire il processo figlio «%s»"
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn.c:2607
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
"Lettura di una quantità di dati sufficiente dalla pipe del processo figlio "
"non riuscita (%s)"
-#: glib/gspawn-win32.c:297
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Argomento FD sorgente non valido"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Lettura di dati dal processo figlio non riuscita"
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn-win32.c:390 glib/gspawn-win32.c:395 glib/gspawn-win32.c:521
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Esecuzione del processo figlio non riuscita (%s)"
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn-win32.c:400
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Esecuzione di dup() nel processo figlio non riuscita (%s)"
-#: glib/gspawn-win32.c:471
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Nome programma non valido: %s"
-#: glib/gspawn-win32.c:481 glib/gspawn-win32.c:807
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Stringa non valida nel vettore di argomenti alla posizione %d: %s"
-#: glib/gspawn-win32.c:492 glib/gspawn-win32.c:823
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Stringa non valida nell'ambiente: %s"
-#: glib/gspawn-win32.c:803
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Directory di lavoro non valida: %s"
# (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn-win32.c:868
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Esecuzione del programma helper non riuscita (%s)"
-#: glib/gspawn-win32.c:1096
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6184,258 +6164,265 @@ msgstr ""
"Errore inatteso in g_io_channel_win32_poll() nel leggere i dati da un "
"processo figlio"
-#: glib/gstrfuncs.c:3351 glib/gstrfuncs.c:3453
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "La stringa vuota non è un numero"
-#: glib/gstrfuncs.c:3375
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "«%s» non è un numero con segno"
-#: glib/gstrfuncs.c:3385 glib/gstrfuncs.c:3489
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Numero «%s» oltre i limiti [%s, %s]"
-#: glib/gstrfuncs.c:3479
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "«%s» non è un numero senza segno"
-#: glib/guri.c:315
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "%-encoding non valido nell'URI"
-#: glib/guri.c:332
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Carattere non valido nell'URI"
-#: glib/guri.c:366
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Caratteri non UTF-8 nell'URI"
-#: glib/guri.c:546
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Indirizzo IPv6 «%.*s» non valido nell'URI"
-#: glib/guri.c:601
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Codifica indirizzo IP «%.*s» non valida nell'URI"
-#: glib/guri.c:613
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Nome host internazionalizzato non valido «%.*s» nell'URI"
-#: glib/guri.c:645 glib/guri.c:657
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Impossibile analizzare la porta «%.*s» nell'URI"
-#: glib/guri.c:664
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "La porta «%.*s» nell'URI fuori dall'intervallo"
-#: glib/guri.c:1224 glib/guri.c:1288
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "L'URI «%s» non è un URI assoluto"
-#: glib/guri.c:1230
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "L'URI «%s» non ha un componente host"
-#: glib/guri.c:1460
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "L'URI non è assoluto e non è stato fornito un URI di base"
-#: glib/guri.c:2238
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Manca il simbolo «=» e il valore"
-#: glib/gutf8.c:832
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Allocazione della memoria non riuscita"
-#: glib/gutf8.c:965
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Carattere fuori dall'intervallo per UTF-8"
-#: glib/gutf8.c:1067 glib/gutf8.c:1076 glib/gutf8.c:1206 glib/gutf8.c:1215
-#: glib/gutf8.c:1354 glib/gutf8.c:1451
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Sequenza non valida in ingresso per la conversione"
-#: glib/gutf8.c:1365 glib/gutf8.c:1462
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Carattere fuori dall'intervallo per UTF-16"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2849
-#, c-format
-msgid "%.1f kB"
-msgstr "%.1f kB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2851
-#, c-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2853
-#, c-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2855
-#, c-format
-msgid "%.1f TB"
-msgstr "%.1f TB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2857
-#, c-format
-msgid "%.1f PB"
-msgstr "%.1f PB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2859
-#, c-format
-msgid "%.1f EB"
-msgstr "%.1f EB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2863
-#, c-format
-msgid "%.1f KiB"
-msgstr "%.1f KiB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2865
-#, c-format
-msgid "%.1f MiB"
-msgstr "%.1f MiB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2867
-#, c-format
-msgid "%.1f GiB"
-msgstr "%.1f GiB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2869
-#, c-format
-msgid "%.1f TiB"
-msgstr "%.1f TiB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2871
-#, c-format
-msgid "%.1f PiB"
-msgstr "%.1f PiB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2873
-#, c-format
-msgid "%.1f EiB"
-msgstr "%.1f EiB"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2877
-#, c-format
-msgid "%.1f kb"
-msgstr "%.1f kb"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2879
-#, c-format
-msgid "%.1f Mb"
-msgstr "%.1f Mb"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2881
-#, c-format
-msgid "%.1f Gb"
-msgstr "%.1f Gb"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2883
-#, c-format
-msgid "%.1f Tb"
-msgstr "%.1f Tb"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2885
-#, c-format
-msgid "%.1f Pb"
-msgstr "%.1f Pb"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2887
-#, c-format
-msgid "%.1f Eb"
-msgstr "%.1f Eb"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2891
-#, c-format
-msgid "%.1f Kib"
-msgstr "%.1f Kib"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2893
-#, c-format
-msgid "%.1f Mib"
-msgstr "%.1f Mib"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2895
-#, c-format
-msgid "%.1f Gib"
-msgstr "%.1f Gib"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2897
-#, c-format
-msgid "%.1f Tib"
-msgstr "%.1f Tib"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2899
-#, c-format
-msgid "%.1f Pib"
-msgstr "%.1f Pib"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2901
-#, c-format
-msgid "%.1f Eib"
-msgstr "%.1f Eib"
-
-#: glib/gutils.c:2935 glib/gutils.c:3052
-#, c-format
-msgid "%u byte"
-msgid_plural "%u bytes"
-msgstr[0] "%u byte"
-msgstr[1] "%u byte"
-
-#: glib/gutils.c:2939
-#, c-format
-msgid "%u bit"
-msgid_plural "%u bits"
-msgstr[0] "%u bit"
-msgstr[1] "%u bit"
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
+#: glib/gutils.c:2966
+msgid "kB"
+msgstr "kB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
+#: glib/gutils.c:2968
+msgid "MB"
+msgstr "MB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
+#: glib/gutils.c:2970
+msgid "GB"
+msgstr "GB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
+#: glib/gutils.c:2972
+msgid "TB"
+msgstr "TB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
+#: glib/gutils.c:2974
+msgid "PB"
+msgstr "PB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
+#: glib/gutils.c:2976
+msgid "EB"
+msgstr "EB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
+#: glib/gutils.c:2980
+msgid "KiB"
+msgstr "KiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
+#: glib/gutils.c:2982
+msgid "MiB"
+msgstr "MiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
+#: glib/gutils.c:2984
+msgid "GiB"
+msgstr "GiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
+#: glib/gutils.c:2986
+msgid "TiB"
+msgstr "TiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
+#: glib/gutils.c:2988
+msgid "PiB"
+msgstr "PiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
+#: glib/gutils.c:2990
+msgid "EiB"
+msgstr "EiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
+#: glib/gutils.c:2994
+msgid "kb"
+msgstr "kb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
+#: glib/gutils.c:2996
+msgid "Mb"
+msgstr "Mb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
+#: glib/gutils.c:2998
+msgid "Gb"
+msgstr "Gb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
+#: glib/gutils.c:3000
+msgid "Tb"
+msgstr "Tb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
+#: glib/gutils.c:3002
+msgid "Pb"
+msgstr "Pb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
+#: glib/gutils.c:3004
+msgid "Eb"
+msgstr "Eb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
+#: glib/gutils.c:3008
+msgid "Kib"
+msgstr "Kib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
+#: glib/gutils.c:3010
+msgid "Mib"
+msgstr "Mib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
+#: glib/gutils.c:3012
+msgid "Gib"
+msgstr "Gib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
+#: glib/gutils.c:3014
+msgid "Tib"
+msgstr "Tib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
+#: glib/gutils.c:3016
+msgid "Pib"
+msgstr "Pib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
+#: glib/gutils.c:3018
+msgid "Eib"
+msgstr "Eib"
+
+#: glib/gutils.c:3056
+msgid "byte"
+msgid_plural "bytes"
+msgstr[0] "byte"
+msgstr[1] "byte"
+
+#: glib/gutils.c:3060
+msgid "bit"
+msgid_plural "bits"
+msgstr[0] "bit"
+msgstr[1] "bit"
+
+#. Translators: The "%u" is replaced with the size value, like "13"; it could
+#. * be part of "13 bytes", but only the number is requested this time.
+#: glib/gutils.c:3068
+#, c-format
+msgctxt "format-size"
+msgid "%u"
+msgstr "%u"
+
+#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
+#: glib/gutils.c:3073
+#, c-format
+msgctxt "format-size"
+msgid "%u %s"
+msgstr "%u %s"
+
+#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
+#. * be part of "13.0 MB", but only the number is requested this time.
+#: glib/gutils.c:3109
+#, c-format
+msgctxt "format-size"
+msgid "%.1f"
+msgstr "%.1f"
+
+#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
+#. * the unit symbol. An example: "13.0 MB"
+#: glib/gutils.c:3115
+#, c-format
+msgctxt "format-size"
+msgid "%.1f %s"
+msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3006
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6443,44 +6430,51 @@ msgstr[0] "%s byte"
msgstr[1] "%s byte"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3011
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s bit"
msgstr[1] "%s bit"
+#: glib/gutils.c:3201
+#, c-format
+msgid "%u byte"
+msgid_plural "%u bytes"
+msgstr[0] "%u byte"
+msgstr[1] "%u byte"
+
#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3065
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f kB"
-#: glib/gutils.c:3070
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3075
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3080
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3085
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3090
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
diff --git a/po/ka.po b/po/ka.po
index 2db6380e9..0e64f524e 100644
--- a/po/ka.po
+++ b/po/ka.po
@@ -1,152 +1,170 @@
-# Georgian transaltion for glib
-# Copyright (C) 2022, glib authors
-# This file is distributed under the same license as the glib package.
-# Ekaterine Papava <papava.e@gtu.ge>, 2022
+# Georgian translation for glib
+# Copyright (C) 2023 glib's authors.
+# This file is distributed under the same license as the PACKAGE package.
+# Ekaterine Papava <papava.e@gtu.ge>, 2023.
#
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-08 10:41+0000\n"
-"PO-Revision-Date: 2022-12-13 07:04+0100\n"
+"POT-Creation-Date: 2023-10-07 15:03+0000\n"
+"PO-Revision-Date: 2023-10-20 07:49+0200\n"
"Last-Translator: Ekaterine Papava <papava.e@gtu.ge>\n"
-"Language-Team: \n"
+"Language-Team: Georgian <(nothing)>\n"
"Language: ka\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.2.2\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 3.4\n"
-#: gio/gappinfo.c:333
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
-msgstr ""
+msgstr "ნაგულისხმევი აპლიკაციების დაყენება ჯერ მხარდაჭერილი არაა"
-#: gio/gappinfo.c:366
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
+"აპლიკაციის, როგორც ტიპისთვის ბოლოს გამოყენებულის დაყენება ჯერ მხარდაჭერილი "
+"არაა"
+
+#: gio/gappinfo.c:814
+#, c-format
+msgid "Failed to find default application for content type ‘%s’"
+msgstr ""
+"ჩავარდა ნაგულისხმევი აპლიკაციის პოვნის მცდელობა შემცველობის ტიპისთვის '%s'"
-#: gio/gapplication.c:500
-msgid "GApplication options"
-msgstr "GApplication-ის მორგება"
+#: gio/gappinfo.c:874
+#, c-format
+msgid "Failed to find default application for URI Scheme ‘%s’"
+msgstr "ჩავარდა ნაგულისხმევი აპლიკაციის პოვნის მცდელობა URI-ის სქემისთვის '%s'"
+
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "GApplication-ის მორგება:"
-#: gio/gapplication.c:500
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "GApplication პარამეტრების ჩვენება"
-#: gio/gapplication.c:545
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
+"Gapplication-ის სერვისის რეჟიმში შესვლა (გამოიყენება D-Bus-ის სერვისის "
+"ფაილებიდან)"
-#: gio/gapplication.c:557
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "აპლიკაციის ID-ის გადაფარვა"
-#: gio/gapplication.c:569
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "გაშვებული ინტერფეისის შეცვლა"
-#: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:494 gio/gsettings-tool.c:584
+#: gio/gapplication-tool.c:47 gio/gapplication-tool.c:48 gio/gio-tool.c:229
+#: gio/gresource-tool.c:496 gio/gsettings-tool.c:586
msgid "Print help"
msgstr "დახმარების ჩვენება"
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:495 gio/gresource-tool.c:563
+#: gio/gapplication-tool.c:49 gio/gresource-tool.c:497 gio/gresource-tool.c:565
msgid "[COMMAND]"
msgstr "[ბრძანება]"
-#: gio/gapplication-tool.c:49 gio/gio-tool.c:228
+#: gio/gapplication-tool.c:51 gio/gio-tool.c:230
msgid "Print version"
msgstr "მიმდინარე ვერსიის დაბეჭდვა"
-#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:590
+#: gio/gapplication-tool.c:52 gio/gsettings-tool.c:592
msgid "Print version information and exit"
msgstr "ვერსიის ჩვენება და გასვლა"
-#: gio/gapplication-tool.c:53
+#: gio/gapplication-tool.c:55
msgid "List applications"
msgstr "აპლიკაციების სია"
-#: gio/gapplication-tool.c:54
+#: gio/gapplication-tool.c:56
msgid "List the installed D-Bus activatable applications (by .desktop files)"
-msgstr ""
+msgstr "D-Bus-ით გააქტიურებადი აპლიკაციების სია (.desktop ფაილების მიხედვით)"
-#: gio/gapplication-tool.c:57
+#: gio/gapplication-tool.c:59
msgid "Launch an application"
msgstr "აპლიკაციის გაშვება"
-#: gio/gapplication-tool.c:58
+#: gio/gapplication-tool.c:60
msgid "Launch the application (with optional files to open)"
-msgstr ""
+msgstr "აპლიკაციის გაშვება (არასავალდებულო, გასახსნელი ფაილებით)"
-#: gio/gapplication-tool.c:59
+#: gio/gapplication-tool.c:61
msgid "APPID [FILE…]"
-msgstr ""
+msgstr "აპისID [ფაილი...]"
-#: gio/gapplication-tool.c:61
+#: gio/gapplication-tool.c:63
msgid "Activate an action"
msgstr "ქმედების აქტივაცია"
-#: gio/gapplication-tool.c:62
+#: gio/gapplication-tool.c:64
msgid "Invoke an action on the application"
-msgstr ""
+msgstr "აპლიკაციაზე ქმედების ჩაწოდება"
-#: gio/gapplication-tool.c:63
+#: gio/gapplication-tool.c:65
msgid "APPID ACTION [PARAMETER]"
-msgstr ""
+msgstr "აპისID ქმედება [პარამეტრი]"
-#: gio/gapplication-tool.c:65
+#: gio/gapplication-tool.c:67
msgid "List available actions"
-msgstr ""
+msgstr "ხელმისაწვდომი ქმედებების ჩამონათვალი"
-#: gio/gapplication-tool.c:66
+#: gio/gapplication-tool.c:68
msgid "List static actions for an application (from .desktop file)"
-msgstr ""
+msgstr "აპლიკაციისთვის სტატიკური ქმედებების სია (.desktop ფაილიდან)"
-#: gio/gapplication-tool.c:67 gio/gapplication-tool.c:73
+#: gio/gapplication-tool.c:69 gio/gapplication-tool.c:75
msgid "APPID"
msgstr "აპისID"
-#: gio/gapplication-tool.c:72 gio/gapplication-tool.c:135 gio/gdbus-tool.c:106
-#: gio/gio-tool.c:224
+#: gio/gapplication-tool.c:74 gio/gapplication-tool.c:137 gio/gdbus-tool.c:108
+#: gio/gio-tool.c:226
msgid "COMMAND"
msgstr "ბრძანება"
-#: gio/gapplication-tool.c:72
+#: gio/gapplication-tool.c:74
msgid "The command to print detailed help for"
-msgstr ""
+msgstr "ბრძანება დეტალური დახმარების გამოსატანად ბრძანებისთვის"
-#: gio/gapplication-tool.c:73
+#: gio/gapplication-tool.c:75
msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
-msgstr ""
+msgstr "აპლიკაციის იდენტიფიკატორი D-Bus-ის ფორმატში (მაგ: org.example.viewer)"
-#: gio/gapplication-tool.c:74 gio/glib-compile-resources.c:820
-#: gio/glib-compile-resources.c:826 gio/glib-compile-resources.c:855
-#: gio/gresource-tool.c:501 gio/gresource-tool.c:567
+#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
+#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
-msgstr "ფაილი"
+msgstr "PROFILEID"
-#: gio/gapplication-tool.c:74
+#: gio/gapplication-tool.c:76
msgid "Optional relative or absolute filenames, or URIs to open"
msgstr ""
+"არასავალდებულო შედარებითი ან აბსოლუტური ფაილის სახელები ან ბმულები "
+"გასახსნელად"
-#: gio/gapplication-tool.c:75
+#: gio/gapplication-tool.c:77
msgid "ACTION"
msgstr "[ქმედება]"
-#: gio/gapplication-tool.c:75
+#: gio/gapplication-tool.c:77
msgid "The action name to invoke"
-msgstr ""
+msgstr "ჩასაწოდებელი ქმედების სახელი"
-#: gio/gapplication-tool.c:76
+#: gio/gapplication-tool.c:78
msgid "PARAMETER"
msgstr "პარამეტრი"
-#: gio/gapplication-tool.c:76
+#: gio/gapplication-tool.c:78
msgid "Optional parameter to the action invocation, in GVariant format"
-msgstr ""
+msgstr "ქმედების ჩაწოდების არასავალდებული პარამეტრი ფორმატში GVariant"
-#: gio/gapplication-tool.c:98 gio/gresource-tool.c:532 gio/gsettings-tool.c:676
+#: gio/gapplication-tool.c:100 gio/gresource-tool.c:534
+#: gio/gsettings-tool.c:678
#, c-format
msgid ""
"Unknown command %s\n"
@@ -155,46 +173,48 @@ msgstr ""
"უცნობი ბრძანება: %s\n"
"\n"
-#: gio/gapplication-tool.c:103
+#: gio/gapplication-tool.c:105
msgid "Usage:\n"
msgstr "გამოყენება:\n"
-#: gio/gapplication-tool.c:116 gio/gresource-tool.c:557
-#: gio/gsettings-tool.c:711
+#: gio/gapplication-tool.c:118 gio/gresource-tool.c:559
+#: gio/gsettings-tool.c:713
msgid "Arguments:\n"
msgstr "არგუმენტები:\n"
-#: gio/gapplication-tool.c:135 gio/gio-tool.c:224
+#: gio/gapplication-tool.c:137 gio/gio-tool.c:226
msgid "[ARGS…]"
msgstr "[არგუმენტები…]"
-#: gio/gapplication-tool.c:136
+#: gio/gapplication-tool.c:138
#, c-format
msgid "Commands:\n"
msgstr "ბრძანებები:\n"
#. Translators: do not translate 'help', but please translate 'COMMAND'.
-#: gio/gapplication-tool.c:148
+#: gio/gapplication-tool.c:150
#, c-format
msgid ""
"Use “%s help COMMAND” to get detailed help.\n"
"\n"
msgstr ""
+"დეტალური დახმარების მისაღებად გამოიყენეთ \"%s help ბრძანება\".\n"
+"\n"
-#: gio/gapplication-tool.c:167
+#: gio/gapplication-tool.c:169
#, c-format
msgid ""
"%s command requires an application id to directly follow\n"
"\n"
-msgstr ""
+msgstr "ბრძანებას %s აპლიკაციის id პირდაპირ უნდა მოსდევდეს\n"
-#: gio/gapplication-tool.c:173
+#: gio/gapplication-tool.c:175
#, c-format
msgid "invalid application id: “%s”\n"
msgstr "არასწორი აპლიკაციის id: \"%s\"\n"
#. Translators: %s is replaced with a command name like 'list-actions'
-#: gio/gapplication-tool.c:184
+#: gio/gapplication-tool.c:186
#, c-format
msgid ""
"“%s” takes no arguments\n"
@@ -203,46 +223,49 @@ msgstr ""
"“%s” -ს არგუმენტები არ მიეთითება\n"
"\n"
-#: gio/gapplication-tool.c:268
+#: gio/gapplication-tool.c:270
#, c-format
msgid "unable to connect to D-Bus: %s\n"
msgstr "d-bus-თან მიერთების შეცდომა: %s\n"
-#: gio/gapplication-tool.c:288
+#: gio/gapplication-tool.c:290
#, c-format
msgid "error sending %s message to application: %s\n"
-msgstr ""
+msgstr "შეცდომა %s შეტყობინების გაგზავნისას აპლიკაციისთვის: %s\n"
-#: gio/gapplication-tool.c:319
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
-msgstr ""
+msgstr "აპლიკაციის id-ის შემდეგ ქმედების სახელის მითითება აუცილებელია\n"
-#: gio/gapplication-tool.c:327
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
"action names must consist of only alphanumerics, “-” and “.”\n"
msgstr ""
+"არასწორი ქმედების სახელი: \"%s\"\n"
+"ქმედების სახელები უნდა შედგებოდეს მხოლოდ ალფარიცხვითი, \"-\" და \".\" "
+"სიმბოლოებისგან\n"
-#: gio/gapplication-tool.c:346
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
-msgstr ""
+msgstr "შეცდომა ქმედების პარამეტრის დამუშავებისას: %s\n"
-#: gio/gapplication-tool.c:358
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
-msgstr ""
+msgstr "ქმედება მაქსიმუმ ერთ პარამეტრს იღებს\n"
-#: gio/gapplication-tool.c:413
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
-msgstr ""
+msgstr "ბრძანება list-actions მხოლოდ აპლიკაციის id-ს იღებს"
-#: gio/gapplication-tool.c:423
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
-msgstr ""
+msgstr "აპლიკაციისთვის %s .desktop ფაილი ვერ ვიპოვე\n"
-#: gio/gapplication-tool.c:468
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -251,702 +274,780 @@ msgstr ""
"უცნობი ბრძანება: %s\n"
"\n"
-#: gio/gbufferedinputstream.c:420 gio/gbufferedinputstream.c:498
-#: gio/ginputstream.c:179 gio/ginputstream.c:379 gio/ginputstream.c:648
-#: gio/ginputstream.c:1050 gio/goutputstream.c:223 gio/goutputstream.c:1049
-#: gio/gpollableinputstream.c:205 gio/gpollableoutputstream.c:277
+#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
-msgstr ""
+msgstr "%s-სთვის გადაცემული რაოდენობის მნიშვნელობა მეტიმეტად დიდია"
-#: gio/gbufferedinputstream.c:891 gio/gbufferedoutputstream.c:575
-#: gio/gdataoutputstream.c:562
+#: gio/gbufferedinputstream.c:893 gio/gbufferedoutputstream.c:577
+#: gio/gdataoutputstream.c:564
msgid "Seek not supported on base stream"
-msgstr ""
+msgstr "საბაზისო ნაკადში გადახვევა მხარდაუჭერელია"
-#: gio/gbufferedinputstream.c:938
+#: gio/gbufferedinputstream.c:940
msgid "Cannot truncate GBufferedInputStream"
-msgstr ""
+msgstr "GBufferedInputStream-ის წაკვეთა შეუძლებელია"
-#: gio/gbufferedinputstream.c:983 gio/ginputstream.c:1239 gio/giostream.c:300
-#: gio/goutputstream.c:2198
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "ნაკადი უკვე დახურულია"
-#: gio/gbufferedoutputstream.c:612 gio/gdataoutputstream.c:592
+#: gio/gbufferedoutputstream.c:614 gio/gdataoutputstream.c:594
msgid "Truncate not supported on base stream"
-msgstr ""
+msgstr "საბაზისო ნაკადის წაკვეთა შეუძლებელია"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1857 gio/gdbusprivate.c:1418
-#: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
+#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
msgstr "ოპერაცია გაუქმდა"
-#: gio/gcharsetconverter.c:260
+#: gio/gcharsetconverter.c:262
msgid "Invalid object, not initialized"
msgstr "ობიექტი არასწორია. ინიციალიზებული არაა"
-#: gio/gcharsetconverter.c:281 gio/gcharsetconverter.c:309
+#: gio/gcharsetconverter.c:283 gio/gcharsetconverter.c:311
msgid "Incomplete multibyte sequence in input"
msgstr "შეტანილ ტექსტში ბაიტების მიმდევრობა მცდარია"
-#: gio/gcharsetconverter.c:315 gio/gcharsetconverter.c:324
+#: gio/gcharsetconverter.c:317 gio/gcharsetconverter.c:326
msgid "Not enough space in destination"
msgstr "დანიშნულების წერტილში საკმარისი ადგილი არაა"
-#: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1266 glib/gconvert.c:449 glib/gconvert.c:879
-#: glib/giochannel.c:1573 glib/giochannel.c:1615 glib/giochannel.c:2470
-#: glib/gutf8.c:890 glib/gutf8.c:1344
+#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "შეტანილ ტექსტში ბაიტების მიმდევრობა მცდარია"
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:457 glib/gconvert.c:793
-#: glib/giochannel.c:1580 glib/giochannel.c:2482
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "გარდაქმნის შეცდომა: %s"
-#: gio/gcharsetconverter.c:445 gio/gsocket.c:1147
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "გაუქმებადი ინიციალიზაცია მხარდაჭერილი არაა"
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:322 glib/giochannel.c:1401
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "კოდური გვერდის \"%s\" გარდაქმნა \"%s\" კოდირებაში მხარდაუჭერელია"
-#: gio/gcharsetconverter.c:460 glib/gconvert.c:326
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "ვერ ხერხდება \"%s\" - \"%s\" გარდამქმნელის გახსნა"
-#: gio/gcontenttype.c:470
+#: gio/gcontenttype.c:472
#, c-format
msgid "%s type"
msgstr "ტიპი %s"
-#: gio/gcontenttype-win32.c:196
+#: gio/gcontenttype-win32.c:198
msgid "Unknown type"
msgstr "უცნობი ტიპი"
-#: gio/gcontenttype-win32.c:198
+#: gio/gcontenttype-win32.c:200
#, c-format
msgid "%s filetype"
msgstr "ფაილის ტიპი %s"
-#: gio/gcredentials.c:335
+#: gio/gcredentials.c:337
msgid "GCredentials contains invalid data"
-msgstr ""
+msgstr "GCredentials არასწორ მონაცემებს შეიცავს"
-#: gio/gcredentials.c:395 gio/gcredentials.c:686
+#: gio/gcredentials.c:397 gio/gcredentials.c:688
msgid "GCredentials is not implemented on this OS"
-msgstr ""
+msgstr "GCredentials ამ OS-თვის განხორციელებული არაა"
-#: gio/gcredentials.c:550 gio/gcredentials.c:568
+#: gio/gcredentials.c:552 gio/gcredentials.c:570
msgid "There is no GCredentials support for your platform"
-msgstr ""
+msgstr "თვენი პლატფორმისთვის GCredentials მხარდაჭერილი არაა"
-#: gio/gcredentials.c:626
+#: gio/gcredentials.c:628
msgid "GCredentials does not contain a process ID on this OS"
-msgstr ""
+msgstr "GCredentials ამ OS-ზე პროცესის ID-ს არ შეიცავს"
-#: gio/gcredentials.c:680
+#: gio/gcredentials.c:682
msgid "Credentials spoofing is not possible on this OS"
-msgstr ""
+msgstr "ამ OS-ზე ავტორიზაციის დეტალების ჩანაცვლება შეუძლებელია"
-#: gio/gdatainputstream.c:304
+#: gio/gdatainputstream.c:306
msgid "Unexpected early end-of-stream"
-msgstr ""
+msgstr "მოულოდნელი ნაადრევი ნაკადის დასასრული"
-#: gio/gdbusaddress.c:162 gio/gdbusaddress.c:236 gio/gdbusaddress.c:325
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
-msgstr ""
+msgstr "მხარდაუჭერელი გასაღები \"%s\" მისამართის ჩანაწერში \"%s\""
-#: gio/gdbusaddress.c:175
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr ""
+"უაზრო გასაღები/მნიშვნელობის წყვილის კომბინაცია მისამართის ჩანაწერში \"%s\""
-#: gio/gdbusaddress.c:184
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
"keys)"
msgstr ""
+"მისამართ \"%s\" არასწორია (საჭიროა ზუსტად 1 ბილიკი, დროებითი საქაღალდე ან "
+"აბსტრაქტული გასაღებები)"
-#: gio/gdbusaddress.c:251 gio/gdbusaddress.c:262 gio/gdbusaddress.c:277
-#: gio/gdbusaddress.c:340 gio/gdbusaddress.c:351
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
+#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
-msgstr ""
+msgstr "შეცდომა მისამართში \"%s\"- ატრიბუტი \"%s\" არასწორადაა ჩამოყალიბებული"
-#: gio/gdbusaddress.c:421 gio/gdbusaddress.c:680
+#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:682
#, c-format
msgid "Unknown or unsupported transport “%s” for address “%s”"
-msgstr ""
+msgstr "უცნობი ან მხარდაუჭერელი ტრანსპორტი \"%s\" მისამართისთვის \"%s\""
-#: gio/gdbusaddress.c:465
+#: gio/gdbusaddress.c:467
#, c-format
msgid "Address element “%s” does not contain a colon (:)"
-msgstr ""
+msgstr "მისამართის ელემენტი \"%s\" ორწერტილს (:) არ შეიცავს"
-#: gio/gdbusaddress.c:474
+#: gio/gdbusaddress.c:476
#, c-format
msgid "Transport name in address element “%s” must not be empty"
msgstr ""
+"ტრანსპორტის სახელი მისამართის ელემენტში \"%s\" ცარიელი არ შეიძლება იყოს"
-#: gio/gdbusaddress.c:495
+#: gio/gdbusaddress.c:497
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
"sign"
msgstr ""
+"გასაღები/მნიშვნელობის წყვილი %d, \"%s\" მისამართის ელემენტში \"%s\" ტოლობის "
+"ნიშანს არ შეიცავს"
-#: gio/gdbusaddress.c:506
+#: gio/gdbusaddress.c:508
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
msgstr ""
+"გასაღები/მნიშვნელობის წყვილი %d, \"%s\" მისამართის ელემენტში \"%s\" არ "
+"შეიძლება, ცარიელ გასაღებს შეიცავდეს"
-#: gio/gdbusaddress.c:520
+#: gio/gdbusaddress.c:522
#, c-format
msgid ""
"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
"“%s”"
msgstr ""
+"შეცდომა გასაღები/მნიშვნელობის წყვილი %d, \"%s\" მისამართის ელემენტში \"%s\" "
+"სპეციალური სიმბოლოების მოცილებისას"
-#: gio/gdbusaddress.c:588
+#: gio/gdbusaddress.c:590
#, c-format
msgid ""
"Error in address “%s” — the unix transport requires exactly one of the keys "
"“path” or “abstract” to be set"
msgstr ""
+"შეცდომა მისამართში \"%s\" — unix ტრანსპორტზე აუცილებელია \"path\" ან "
+"\"abstract\"-დან მხოლოდ ერთის დაყენება"
-#: gio/gdbusaddress.c:623
+#: gio/gdbusaddress.c:625
#, c-format
msgid "Error in address “%s” — the host attribute is missing or malformed"
msgstr ""
+"შეცდომა მისამართში \"%s\" — ჰოსტის ატრიბუტი აკლია ან არასწორადაა "
+"ჩამოყალიბებული"
-#: gio/gdbusaddress.c:637
+#: gio/gdbusaddress.c:639
#, c-format
msgid "Error in address “%s” — the port attribute is missing or malformed"
msgstr ""
+"შეცდომა მისამართში \"%s\" — პორტის ატრიბუტი აკლია ან არასწორადაა "
+"ჩამოყალიბებული"
-#: gio/gdbusaddress.c:651
+#: gio/gdbusaddress.c:653
#, c-format
msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
msgstr ""
+"შეცდომა მისამართში \"%s\" — ატრიბუტი noncefile აკლია ან არასწორადაა "
+"ჩამოყალიბებული"
-#: gio/gdbusaddress.c:672
+#: gio/gdbusaddress.c:674
msgid "Error auto-launching: "
msgstr "ავტომატურად გაშვების შეცდომა: "
-#: gio/gdbusaddress.c:725
+#: gio/gdbusaddress.c:727
#, c-format
msgid "Error opening nonce file “%s”: %s"
msgstr "ერთჯერადი ფაილის (%s) გახსნის შეცდომა: %s"
-#: gio/gdbusaddress.c:744
+#: gio/gdbusaddress.c:746
#, c-format
msgid "Error reading from nonce file “%s”: %s"
msgstr "ერთჯერადი ფაილიდან (%s) წაკითხვის შეცდომა: %s"
-#: gio/gdbusaddress.c:753
+#: gio/gdbusaddress.c:755
#, c-format
msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
msgstr ""
+"შეცდომა nonce ფაილიდან \"%s\" წაკითხვისას. მოველოდი 16 ბაიტს. მივიღე %d"
-#: gio/gdbusaddress.c:771
+#: gio/gdbusaddress.c:773
#, c-format
msgid "Error writing contents of nonce file “%s” to stream:"
-msgstr ""
+msgstr "შეცდომა nonce ფაილის, \"%s\", შემცველობის ჩაწერისას ნაკადში:"
-#: gio/gdbusaddress.c:986
+#: gio/gdbusaddress.c:988
msgid "The given address is empty"
msgstr "მითითებული მისამართი ცარიელია"
-#: gio/gdbusaddress.c:1099
+#: gio/gdbusaddress.c:1101
#, c-format
msgid "Cannot spawn a message bus when AT_SECURE is set"
msgstr ""
+"შეტყობინებების მატარებლის შექმნა შეუძლებელია, როცა AT_SECURE დაყენებულია"
-#: gio/gdbusaddress.c:1106
+#: gio/gdbusaddress.c:1108
msgid "Cannot spawn a message bus without a machine-id: "
-msgstr ""
+msgstr "შეტყობინების მატარებლის შექმნა machine-id-ის გარეშე შეუძლებელია: "
-#: gio/gdbusaddress.c:1113
+#: gio/gdbusaddress.c:1115
#, c-format
msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
-msgstr ""
+msgstr "D-Bus-ის ავტომატური გაშვება X11 $DISPLAY-ის გარეშე შეუძლებელია"
-#: gio/gdbusaddress.c:1155
+#: gio/gdbusaddress.c:1157
#, c-format
msgid "Error spawning command line “%s”: "
-msgstr ""
+msgstr "ბრძანების სტრიქონის \"%s\" შექმნის შეცდომა: "
-#: gio/gdbusaddress.c:1224
+#: gio/gdbusaddress.c:1226
#, c-format
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
+"სესიის მატარებლის მისამართის დადგენა შეუძლებელია (ამ ოს-სთვის "
+"განხორციელებული არაა)"
-#: gio/gdbusaddress.c:1373 gio/gdbusconnection.c:7318
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
"— unknown value “%s”"
msgstr ""
+"გარემოს ცვლადიდან DBUS_STARTER_BUS_TYPE მატარებლის მისამართის დადგენა "
+"შეუძლებელია - უცნობი მნიშვნელობა \"%s\""
-#: gio/gdbusaddress.c:1382 gio/gdbusconnection.c:7327
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
msgstr ""
+"მატარებლის მისამართის დადგენა შეუძლებელია, რადგან გარემოს ცვლადი "
+"DBUS_STARTER_BUS_TYPE დაყენებული არაა"
-#: gio/gdbusaddress.c:1392
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "მატარებლის უცნობი ტიპი %d"
#: gio/gdbusauth.c:294
msgid "Unexpected lack of content trying to read a line"
-msgstr ""
+msgstr "შემცველობის მოულოდნელი უქონლობა ხაზის წაკითხვის მცდელობისას"
#: gio/gdbusauth.c:338
msgid "Unexpected lack of content trying to (safely) read a line"
msgstr ""
+"შემცველობის მოულოდნელი უქონლობა ხაზის (უსაფრთხოდ) წაკითხვის მცდელობისას"
#: gio/gdbusauth.c:482
#, c-format
msgid ""
"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
msgstr ""
+"დახარჯულია ყველა ხელმისაწვდომი ავთენტიკაციის მექანიზმი (ვცადე: %s) "
+"(ხელმისაწვდომია: %s)"
+
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "შემცველობის მოულოდნელი უქონლობა ბაიტის წაკითხვის მცდელობისას"
-#: gio/gdbusauth.c:1171
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
-msgstr ""
+msgstr "მომხმარებლის ID-ები პარტნიორისთვის და სერვერისთვის ტოლი უნდა იყოს"
-#: gio/gdbusauth.c:1183
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
-msgstr ""
+msgstr "გაუქმებულია GDBusAuthObserver::authorize-authenticated-peer-ით"
-#: gio/gdbusauthmechanismsha1.c:300
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
-msgstr ""
+msgstr "შეცდომა საქაღალდისთვის \"%s\" ინფორმაციის მიღებისას: %s"
-#: gio/gdbusauthmechanismsha1.c:315
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr ""
+"წვდომები საქაღალდეზე \"%s\" არასწორია. მოველოდი რეჟიმს 0700, მივიღე 0%o"
-#: gio/gdbusauthmechanismsha1.c:348 gio/gdbusauthmechanismsha1.c:359
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
-msgstr ""
-
-#: gio/gdbusauthmechanismsha1.c:361 gio/gfile.c:1080 gio/gfile.c:1318
-#: gio/gfile.c:1456 gio/gfile.c:1694 gio/gfile.c:1749 gio/gfile.c:1807
-#: gio/gfile.c:1891 gio/gfile.c:1948 gio/gfile.c:2012 gio/gfile.c:2067
-#: gio/gfile.c:3772 gio/gfile.c:3912 gio/gfile.c:4205 gio/gfile.c:4675
-#: gio/gfile.c:5086 gio/gfile.c:5171 gio/gfile.c:5261 gio/gfile.c:5358
-#: gio/gfile.c:5445 gio/gfile.c:5546 gio/gfile.c:8375 gio/gfile.c:8465
-#: gio/gfile.c:8549 gio/win32/gwinhttpfile.c:453
+msgstr "საქაღალდის (\"%s\") შექმნის შეცდომა: %s"
+
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "ოპერაცია მხარდაუჭერელია"
-#: gio/gdbusauthmechanismsha1.c:404
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
-msgstr ""
+msgstr "ბრელოკის \"%s\" წასაკითხად გახსნის შეცდომა: "
-#: gio/gdbusauthmechanismsha1.c:427 gio/gdbusauthmechanismsha1.c:769
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
-msgstr ""
+msgstr "ბრელოკის ხაზი %d მისამართზე \"%s\" შემცველობით \"%s\" არასწორია"
-#: gio/gdbusauthmechanismsha1.c:441 gio/gdbusauthmechanismsha1.c:783
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
-msgstr ""
+msgstr "პირველი კოდი ხაზზე %d ბრელოკისთვის \"%s\" შემცველობით \"%s\" არასწორია"
-#: gio/gdbusauthmechanismsha1.c:455 gio/gdbusauthmechanismsha1.c:797
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
-msgstr ""
+msgstr "მეორე კოდი ხაზზე %d ბრელოკისთვის \"%s\" შემცველობით \"%s\" არასწორია"
-#: gio/gdbusauthmechanismsha1.c:479
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
-msgstr ""
+msgstr "ქუქი ID-ით %d ბრელოკში მისამართზე \"%s\" ვერ ვიპოვე"
-#: gio/gdbusauthmechanismsha1.c:536
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
-msgstr ""
+msgstr "შეცდომა ბლოკის ფაილის (\"%s\") შექმნისას: %s"
-#: gio/gdbusauthmechanismsha1.c:609
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
-msgstr ""
+msgstr "ბლოკის ძველი ფაილის (\"%s\") წაშლის შეცდომა: %s"
-#: gio/gdbusauthmechanismsha1.c:648
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
-msgstr ""
+msgstr "ბლოკის ძველი (მოხსნილი) ფაილის (\"%s\") წაშლის შეცდომა: %s"
-#: gio/gdbusauthmechanismsha1.c:659
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
-msgstr ""
+msgstr "ბლოკის ფაილის (\"%s\") ბმულის მოხსნის შეცდომა: %s"
-#: gio/gdbusauthmechanismsha1.c:736
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
-msgstr ""
+msgstr "ბრელოკის \"%s\" ჩასაწერად გახსნის შეცდომა: "
-#: gio/gdbusauthmechanismsha1.c:930
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
-msgstr ""
+msgstr "(დამატებით, \"%s\"-ის ბლოკის მოხსნაც ჩავარდა: %s) "
-#: gio/gdbusconnection.c:588 gio/gdbusconnection.c:2402
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "შეერთება არ დახურულა"
-#: gio/gdbusconnection.c:1887
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
-msgstr ""
+msgstr "მოლოდინის ვადა ამიწურა"
-#: gio/gdbusconnection.c:2525
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
-msgstr ""
+msgstr "კლიენტის მხრის მიერთების აწყობისას შემჩნეული ალმები მხარდაუჭერელა"
-#: gio/gdbusconnection.c:4253 gio/gdbusconnection.c:4607
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
+"ვერ ვიპოვე ინტერფეისი \"org.freedesktop.DBus.Properties\" ობიექტზე ბილიკით %s"
-#: gio/gdbusconnection.c:4398
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
-msgstr ""
+msgstr "თვისება \"%s\" ვერ მოიძებნა"
-#: gio/gdbusconnection.c:4410
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
-msgstr ""
+msgstr "თვისება \"%s\" წაკითხვადი არაა"
-#: gio/gdbusconnection.c:4421
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
-msgstr ""
+msgstr "თვისება \"%s\" ჩაწერადი არაა"
-#: gio/gdbusconnection.c:4441
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
+"თვისების (\"%s\") დაყენების შეცდომა. მოველოდი ტიპს \"%s\", მაგრამ მივიღე "
+"\"%s\""
-#: gio/gdbusconnection.c:4546 gio/gdbusconnection.c:4761
-#: gio/gdbusconnection.c:6744
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
-msgstr ""
+msgstr "ვერ ვიპოვე ინტერფეისი \"%s\""
-#: gio/gdbusconnection.c:4983 gio/gdbusconnection.c:7258
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
-msgstr ""
+msgstr "ვერ ვიპოვე ინტერფეისი \"%s\" ობიექტზე ბილიკით %s"
-#: gio/gdbusconnection.c:5084
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
-msgstr ""
+msgstr "ვერ ვიპოვე მეთოდი \"%s\""
-#: gio/gdbusconnection.c:5115
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
-msgstr ""
+msgstr "შეტყობინების ტიპი \"%s\" მოსალოდნელ ტიპს \"%s\" არ ემთხვევა"
-#: gio/gdbusconnection.c:5318
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
-msgstr ""
+msgstr "ინტერფეისისთვის %s მისამართზე %s ობიექტი უკვე გატანილია"
-#: gio/gdbusconnection.c:5545
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "თვისების შექმნის შეცდომა: %s.%s"
-#: gio/gdbusconnection.c:5601
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "თვისების დაყენების შეცდომა: %s.%s"
-#: gio/gdbusconnection.c:5780
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
-msgstr ""
+msgstr "მეთოდმა \"%s\" დააბრუნა ტიპი \"%s\", მაგრამ მოველოდი \"%s\"-ს"
-#: gio/gdbusconnection.c:6856
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
-msgstr ""
+msgstr "მეთოდი \"%s\" ინტერფეისზე \"%s\" ხელმოწერით \"%s\" არ არსებობს"
-#: gio/gdbusconnection.c:6977
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
-msgstr ""
+msgstr "%s-სთვის ქვეხე უკვე გატანილია"
-#: gio/gdbusconnection.c:7266
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
-msgstr ""
+msgstr "ობიექტი არ არსებობს ბილიკზე \"%s\""
-#: gio/gdbusmessage.c:1301
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "ტიპი არასწორია"
-#: gio/gdbusmessage.c:1312
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
msgstr ""
+"METHOD_CALL შეტყობინება: PATH ან MEMBER თავსართის ველი აკლია ან არასწორია"
-#: gio/gdbusmessage.c:1323
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
msgstr ""
+"METHOD_RETURN შეტყობინება: REPLY_SERIAL თავსართის ველი აკლია ან არასწორია"
-#: gio/gdbusmessage.c:1335
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
msgstr ""
+"ERROR შეტყობინება: REPLY_SERIAL ან ERROR_NAME თავსართის ველი აკლია ან "
+"არასწორია"
-#: gio/gdbusmessage.c:1348
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
msgstr ""
+"SIGNAL შეტყობინება: PATH, INTERFACE ან MEMBER თავსართის ველი აკლია ან "
+"არასწორია"
-#: gio/gdbusmessage.c:1356
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
msgstr ""
+"SIGNAL შეტყობინება: PATH თავსართის ველი იყენებს დაცულ მნიშვნელობას /org/"
+"freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1364
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
msgstr ""
+"SIGNAL შეტყობინება: INTERFACE თავსართის ველი იყენებს დაცულ მნიშვნელობას org."
+"freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1412 gio/gdbusmessage.c:1472
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "მინდოდა წამეკითხა %lu ბაიტი, მაგრამ მივიღე მხოლოდ %lu"
-#: gio/gdbusmessage.c:1426
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr ""
+"სტრიქონის \"%s\" შემდეგ მოველოდი ბაიტს NUL, მაგრამ აღმოჩენილია ბაიტი %d"
-#: gio/gdbusmessage.c:1445
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
"(length of string is %d). The valid UTF-8 string up until that point was “%s”"
msgstr ""
+"მოველოდი სწორ UTF-8 სტრიქონს, მაგრამ ბაიტის წანაცვლებაზე %d (სტრიქონის "
+"სიგრძეა %d) აღმოჩენილია არასწორი ბაიტები. სწორი UTF-8 ამ დრომდე იყო \"%s\""
-#: gio/gdbusmessage.c:1509 gio/gdbusmessage.c:1785 gio/gdbusmessage.c:1996
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
-msgstr ""
+msgstr "მნიშვნელობა მეტისმეტად ღრმადაა ჩადგმული"
-#: gio/gdbusmessage.c:1677
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr ""
+"დამუშავებული მნიშვნელობა \"%s\" სწორ D-Bus-ის ობიექტის ბილიკს არ წარმოადგენს"
-#: gio/gdbusmessage.c:1701
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr ""
+"დამუშავებული მნიშვნელობა \"%s\" სწორ D-Bus-ის ხელმოწერას არ წარმოადგენს"
-#: gio/gdbusmessage.c:1752
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
msgid_plural ""
"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
msgstr[0] ""
-msgstr[1] ""
+"შემხვდა მასივი სიგრძით %u ბაიტი. მაქსიმალური სიგრძეა 2<<26 ბაიტი (64 მიბ)."
-#: gio/gdbusmessage.c:1772
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
"bytes, but found to be %u bytes in length"
msgstr ""
+"შემხვდა მასივი ტიპით \"a%c\". მოველოდი, რომ %u ბაიტის ნამრავლის სიგრძე "
+"ექნებოდა, მაგრამ ის %u ბაიტის სიგრძისაა"
-#: gio/gdbusmessage.c:1926 gio/gdbusmessage.c:2645
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
-msgstr ""
+msgstr "D-Bus-ში ცარიელი სტრუქტურები (კორტეჟები) მხარდაჭერილი არაა"
-#: gio/gdbusmessage.c:1980
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr ""
+"ვარიანტისთვის დამუშავებული მნიშვნელობა \"%s\" სწორ D-Bus-ის ხელმოწერას არ "
+"წარმოადგენს"
-#: gio/gdbusmessage.c:2021
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr ""
+"D-Bus-ის მავთულის ფორმატიდან GVariant-ის სტრიქონის ტიპით \"%s\" "
+"დესერიალიზაციის შეცდომა"
-#: gio/gdbusmessage.c:2206
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
"0x%02x"
msgstr ""
+"არასწორი ბოლოიანობის მნიშვნელობა. მოველოდი 0x6c (“l”) ან 0x42 (“B”) მაგრამ "
+"მიღებულია მნიშვნელობა: 0x%02x"
-#: gio/gdbusmessage.c:2225
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
-msgstr ""
+msgstr "არასწორი პროტოკოლის ძირითადი ვერსია. მოველოდი 1, აღმოჩენილია %d"
-#: gio/gdbusmessage.c:2283 gio/gdbusmessage.c:2881
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
-msgstr ""
+msgstr "აღმოჩენილია ხელმოწერის თავსართი, მაგრამ ის ხელმოწერის ტიპი არაა"
-#: gio/gdbusmessage.c:2295
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
+"აღმოჩენილია ხელმოწერის თავსართი ხელმოწერით \"%s\", მაგრამ შეტყობინების "
+"სხეული ცარიელია"
-#: gio/gdbusmessage.c:2310
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr ""
+"დამუშავებული მნიშვნელობა \"%s\" სწორ D-Bus-ის ხელმოწერას არ წარმოადგენს "
+"(სხეულისთვის)"
-#: gio/gdbusmessage.c:2342
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
msgstr[0] ""
-msgstr[1] ""
+"შეტყობინებაში ხელმოწერის თავსართი აღმოჩენილი არაა, მაგრამ შეტყობინების "
+"სხეული %u ბაიტია"
-#: gio/gdbusmessage.c:2352
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
-msgstr ""
+msgstr "დესერიალიზაცია შეუძლებელია შეტყობინებისთვის: "
-#: gio/gdbusmessage.c:2698
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr ""
+"D-Bus-ის მავთულის ფორმატიდან GVariant-ის სტრიქონის ტიპით \"%s\" "
+"სერიალიზაციის შეცდომა"
-#: gio/gdbusmessage.c:2835
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
+"დესკრიპტორების რაოდენობა შეტყობინებაში (%d) განსხვავდება თავსართის ველისგან "
+"(%d)"
-#: gio/gdbusmessage.c:2843
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
-msgstr ""
+msgstr "სერიალიზაცია შეუძლებელია შეტყობინებისთვის: "
-#: gio/gdbusmessage.c:2896
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
+"შეტყობინების სხეულს გააჩნია ხელმოწერა \"%s\", მაგრამ ხელმოწერის თავსართი "
+"აღმოჩენილი არაა"
-#: gio/gdbusmessage.c:2906
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
"“%s”"
msgstr ""
+"შეტყობინების სხეულს გააჩნია ხელმოწერა \"%s\", მაგრამ ხელმოწერა, რომელიც "
+"თავსართის ველშია, \"%s\"-ია"
-#: gio/gdbusmessage.c:2922
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
+"შეტყობინების სხეული ცარელია, მაგრამ ხელმოწერა თავსართის ველში \"(%s)\"-ის "
+"ტოლია"
-#: gio/gdbusmessage.c:3477
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
-msgstr ""
+msgstr "\"%s\" ტიპის სხეულით დაბრუნების შეცდომა"
-#: gio/gdbusmessage.c:3485
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "შეცდომა ცარიელი სხეულით დაბრუნდა"
-#: gio/gdbusprivate.c:2185
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(ფანჯრის დასახურად დააჭირეთ ნებისმიერ კლავიშას)\n"
-#: gio/gdbusprivate.c:2371
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
-msgstr ""
+msgstr "სესიის dbus გაშვებული არაა და ავტომატური გაშვება ჩავარდა"
-#: gio/gdbusprivate.c:2394
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "აპარატურის პროფილის მიღების შეცდომა: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2445
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "%s-ის ან %s-ის ჩატვირთვის შეცდომა: "
-#: gio/gdbusproxy.c:1573
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
-msgstr ""
+msgstr "%s-თვის StartServiceByName-ის გამოძახების შეცდომა: "
-#: gio/gdbusproxy.c:1596
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
-msgstr ""
+msgstr "მოულოდნელი პასუხი %d StartServiceByName(\"%s\") მეთოდიდან"
-#: gio/gdbusproxy.c:2707 gio/gdbusproxy.c:2842
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
"and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
msgstr ""
+"მეტოდის ჩაწორება შეუძლებელია. პროქსი კარგად ცნობილი სახელისთვის %s მფლობლის "
+"გარეშეა და პროქსი G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START ალმით აიგო"
-#: gio/gdbusserver.c:767
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
-msgstr ""
+msgstr "აბსტრაქტული სახელების სივრცე მხარდაჭერილი არაა"
-#: gio/gdbusserver.c:860
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
-msgstr ""
+msgstr "სერვერის შექმნისას nonce ფაილს ვერ მიუთითებთ"
-#: gio/gdbusserver.c:942
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
-msgstr ""
+msgstr "შეცდომა nonce ფაილში ჩაწერისას მისამართზე \"%s\": %s"
-#: gio/gdbusserver.c:1117
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
-msgstr ""
+msgstr "სტრიქონი \"%s\" სწორ D-Bus-ის GUID-ს არ წარმოადგენს"
-#: gio/gdbusserver.c:1157
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
-msgstr ""
+msgstr "მხარდაუჭერელ ტრანსპორტზე \"%s\" ვერ მოვუსმენ"
-#: gio/gdbus-tool.c:111
+#: gio/gdbus-tool.c:113
#, c-format
msgid ""
"Commands:\n"
@@ -959,193 +1060,207 @@ msgid ""
"\n"
"Use “%s COMMAND --help” to get help on each command.\n"
msgstr ""
+"ბრძანებები:\n"
+" help ამ ინფორაციის გამოტანა\n"
+" introspect დაშორებული ობიექტის ინტროსპექცია\n"
+" monitor დაშორებული ობიექტის მონიტორინგი\n"
+" call დაშორებულ ობიექტზე მეთოდის ჩაწოდება\n"
+" emit სიგნალის გამოცემა\n"
+" wait მატარებლის სახელის გაჩენის დალოდება\n"
+"\n"
+"გამოიყენეთ “%s ბრძანება--help”, რათა დახმარება თითოეული ბრძანებისთვის "
+"მიიღოთ.\n"
-#: gio/gdbus-tool.c:202 gio/gdbus-tool.c:274 gio/gdbus-tool.c:346
-#: gio/gdbus-tool.c:370 gio/gdbus-tool.c:860 gio/gdbus-tool.c:1245
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "შეცდომა: %s\n"
-#: gio/gdbus-tool.c:213 gio/gdbus-tool.c:287 gio/gdbus-tool.c:1749
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
-msgstr ""
+msgstr "შეცდომა ინტროსპექციის XML-ის დამუშავებისას: %s\n"
-#: gio/gdbus-tool.c:251
+#: gio/gdbus-tool.c:253
#, c-format
msgid "Error: %s is not a valid name\n"
msgstr "შეცდომა: არასწორი სახელი: \"%s\"\n"
-#: gio/gdbus-tool.c:256 gio/gdbus-tool.c:746 gio/gdbus-tool.c:1064
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
-msgstr ""
+msgstr "შედომა: %s სწორი ობიექტის ბილიკი არაა\n"
-#: gio/gdbus-tool.c:404
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "სისტემურ მატარებელთან მიერთება"
-#: gio/gdbus-tool.c:405
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "სესიის მატარებელთან მიერთება"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "მითითებულ D-Bus-ს მისამართზე მიერთება"
-#: gio/gdbus-tool.c:416
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
-msgstr ""
+msgstr "მიერთების ბოლოწერტილის პარამეტრები:"
-#: gio/gdbus-tool.c:417
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
-msgstr ""
+msgstr "პარამეტრები, რომლებიც მიერთების ბოლოწერტილს აღწერენ"
-#: gio/gdbus-tool.c:440
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
-msgstr ""
+msgstr "მიერთების ბოლოწერტილი მითითებული არაა"
-#: gio/gdbus-tool.c:450
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
-msgstr ""
+msgstr "მითითებულია ერთზე მეტი მიერთების ბოლოწერტილი"
-#: gio/gdbus-tool.c:523
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr ""
+"გაფრთხილება: ინტროსპექციის მონაცემებზე დაყრდნობით ინტერფეისი \"%s\" არ "
+"არსებობს\n"
-#: gio/gdbus-tool.c:532
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
"interface “%s”\n"
msgstr ""
+"გაფრთხილება: ინტროსპექციის მონაცემებზე დაყრდნობით ინტერფეისი \"%s\" არ "
+"არსებობს ინტერფეისზე \"%s\"\n"
-#: gio/gdbus-tool.c:594
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
-msgstr ""
+msgstr "არასავალდებულო სამიზნე სიგნალისთვის (უნიკალური სახელი)"
-#: gio/gdbus-tool.c:595
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
-msgstr ""
+msgstr "ობიექტის ბილიკი, რომელზეც სიგნალი იქნება გამოცემული"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
-msgstr ""
+msgstr "სიგნალის და ინტერფეისის სახელი"
-#: gio/gdbus-tool.c:629
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "სიგნალის გამოცემა."
-#: gio/gdbus-tool.c:684 gio/gdbus-tool.c:1001 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "შეერთების შეცდომა: %s\n"
-#: gio/gdbus-tool.c:704
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "შეცდომა: %s მატარებლის უნიკალურ სახელს არ წარმოადგენს.\n"
-#: gio/gdbus-tool.c:723 gio/gdbus-tool.c:1044 gio/gdbus-tool.c:1879
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "შეცდომა: ობიექტის ბილიკი მითითებული არაა\n"
-#: gio/gdbus-tool.c:766
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "შეცდომა: სიგნალის სახელი მითითებული არაა\n"
-#: gio/gdbus-tool.c:780
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "შეცდომა: სიგნალის სახელი \"%s\" არასწორია\n"
-#: gio/gdbus-tool.c:792
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "შეცდომა: %s ინტერფეისის სწორ სახელს არ წარმოადგენს\n"
-#: gio/gdbus-tool.c:798
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "შეცდომა: %s წევრის არასწორი სახელია\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:835 gio/gdbus-tool.c:1176
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "შეცდომა %d პარამეტრის დამუშავებისას: %s\n"
-#: gio/gdbus-tool.c:867
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "შეერთების მოცილების შეცდომა: %s\n"
-#: gio/gdbus-tool.c:895
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
-msgstr ""
+msgstr "მეთოდის გამოსაყენებელი სამიზნის სახელი"
-#: gio/gdbus-tool.c:896
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
-msgstr ""
+msgstr "მეთოდის გამოსაყენებელი ობიექტის ბილიკი"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
-msgstr ""
+msgstr "მეთოდის და ინტერფეისის სახელი"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "ვადა წამებში"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
-msgstr ""
+msgstr "ინტერაქტიული ავტორიზაციის დაშვება"
-#: gio/gdbus-tool.c:946
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
-msgstr ""
+msgstr "მეთოდის გამოყენება დაშორებულ ობიექტზე."
-#: gio/gdbus-tool.c:1018 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
-msgstr ""
+msgstr "შეცდომა: სამიზნე მითითებული არაა\n"
-#: gio/gdbus-tool.c:1029 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "შეცდომა: %s მატარებლის სწორ სახელს არ წარმოადგენს.\n"
-#: gio/gdbus-tool.c:1079
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
-msgstr ""
+msgstr "შეცდომა: მეთოდის სახელი მითითებული არაა\n"
-#: gio/gdbus-tool.c:1090
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
-msgstr ""
+msgstr "შეცდომა: მეთოდის სახელი \"%s\" არასწორია\n"
-#: gio/gdbus-tool.c:1168
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
-msgstr ""
+msgstr "შეცდომა %d პარამეტრის დამუშავებისას ტიპით \"%s\": %s\n"
-#: gio/gdbus-tool.c:1194
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "ფაილის \"%d\" წაკითხვის შეცდომა: %s\n"
#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
-msgstr ""
+msgstr "სამიზნის სახელი ინტროსპექციისთვის"
#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
-msgstr ""
+msgstr "ობიექტის სახელი ინტროსპექციისთვის"
#: gio/gdbus-tool.c:1697
msgid "Print XML"
@@ -1153,23 +1268,23 @@ msgstr "XML-ის დაბეჭდვა"
#: gio/gdbus-tool.c:1698
msgid "Introspect children"
-msgstr ""
+msgstr "შვილების ინტროქსპექცია"
#: gio/gdbus-tool.c:1699
msgid "Only print properties"
-msgstr ""
+msgstr "მხოლოდ თვისებების გამოტნა"
#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
-msgstr ""
+msgstr "დაშორებული ობიექტის ინტროსპექცია."
#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
-msgstr ""
+msgstr "სამიზნის სახელი მონიტორინგისთვის"
#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
-msgstr ""
+msgstr "ობიექტის ბილიკი მონიტორინგისთვის"
#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
@@ -1177,357 +1292,375 @@ msgstr "დაშორებული ობიექტის მონიტ
#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
-msgstr ""
+msgstr "შეცდომა: არა-MessageBus-ის მიერთების მონიტორინგი არ შემიძლია\n"
#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr ""
+"სერვისი, რომელიც სხვის (კარგად-ცნობილი-სახელი) მოლოდინამდე გააქტიურდება"
#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
msgstr ""
+"ხანგრძლივობა დროისა, რომლის განმავლობაშიც მოვიცდით შეცდომით გასვლამდე "
+"(წამებში). 0 მოცდის გარეშე (ნაგულისხმევი)"
#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
-msgstr ""
+msgstr "[პარამეტრი…] მატარებლის სახელი"
#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
-msgstr ""
+msgstr "დაელოდეთ მატარებლის სახელს, გაჩნდეს."
#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
-msgstr ""
+msgstr "შეცდომა: გასააქტიურებელი სერვისის მითითება აუცილებელია.\n"
#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
-msgstr ""
+msgstr "შეცდომა: სერვისის, რომელსაც უნდა დაველოდოთ, მითითება აუცილებელია.\n"
#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
-msgstr ""
+msgstr "შეცდომა: მეტისმეტად ბევრი არგუმენტი.\n"
#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "შეცდომა: %s მატარებლის ცნობილ სახელს არ წარმოადგენს.\n"
-#: gio/gdebugcontrollerdbus.c:358
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
-msgstr ""
+msgstr "გამართვის პარამეტრების შესაცვლელად ავტორიზაცია არ გაგაჩნიათ"
-#: gio/gdesktopappinfo.c:2178 gio/gdesktopappinfo.c:5105
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "უსახელო"
-#: gio/gdesktopappinfo.c:2588
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
-msgstr ""
+msgstr ".desktop ფაილში Exec ველი მითითებული არაა"
-#: gio/gdesktopappinfo.c:2896
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
-msgstr ""
+msgstr "აპლიკაციისთვის აუცილებელი ტერმინალი ვერ ვიპოვე"
+
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "პროგრამა '%s' $PATH-ში აღმოჩენილი არაა"
-#: gio/gdesktopappinfo.c:3625
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
-msgstr ""
+msgstr "ვერ შევქმენი მომხმარებლის აპლიკაციის კონფიგურაციის საქაღალდე %s: %s"
-#: gio/gdesktopappinfo.c:3629
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
-msgstr ""
+msgstr "ვერ შევქმენი MIME-ის კონფიგურაციის საქაღალდე %s: %s"
-#: gio/gdesktopappinfo.c:3871 gio/gdesktopappinfo.c:3895
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
-msgstr ""
+msgstr "აპლიკაციის ინფორმაციას იდენტიფიკატორი აკლია"
-#: gio/gdesktopappinfo.c:4131
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
-msgstr ""
+msgstr "მომხმარებლის სამუშაო მაგიდის ფაილის '%s' შექმნა შეუძლებელია"
-#: gio/gdesktopappinfo.c:4267
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
-msgstr ""
+msgstr "ხელით მითითებული აღწერა %s-სთვის"
-#: gio/gdrive.c:417
+#: gio/gdrive.c:419
msgid "drive doesn’t implement eject"
-msgstr ""
+msgstr "ამძრავს გამოღების ფუნქცია არ გააჩნია"
#. Translators: This is an error
#. * message for drive objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gdrive.c:495
+#: gio/gdrive.c:497
msgid "drive doesn’t implement eject or eject_with_operation"
-msgstr ""
+msgstr "ამძრავს გამოღების ან eject_with_operations-ის ფუნქცია არ გააჩნია"
-#: gio/gdrive.c:571
+#: gio/gdrive.c:573
msgid "drive doesn’t implement polling for media"
-msgstr ""
+msgstr "ამძრავს მედიის გამოკითხვის ფუნქცია არ გააჩნია"
-#: gio/gdrive.c:778
+#: gio/gdrive.c:780
msgid "drive doesn’t implement start"
-msgstr ""
+msgstr "ამძრავს გაშვების ფუნქცია არ გააჩნია"
-#: gio/gdrive.c:880
+#: gio/gdrive.c:882
msgid "drive doesn’t implement stop"
-msgstr ""
+msgstr "ამძრავს გაჩერების ფუნქცია არ გააჩნია"
-#: gio/gdtlsconnection.c:1186 gio/gtlsconnection.c:955
+#: gio/gdtlsconnection.c:1188 gio/gtlsconnection.c:957
msgid "TLS backend does not implement TLS binding retrieval"
-msgstr ""
+msgstr "TLS უკანაბოლოს TLS მიბმის მიღების მხარდაჭერა არ გააჩნია"
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
-#: gio/gdummytlsbackend.c:513
+#: gio/gdummytlsbackend.c:197 gio/gdummytlsbackend.c:323
+#: gio/gdummytlsbackend.c:515
msgid "TLS support is not available"
-msgstr ""
+msgstr "TLS-ის მხარდაჭერა ხელმისაწვდომი არაა"
-#: gio/gdummytlsbackend.c:423
+#: gio/gdummytlsbackend.c:425
msgid "DTLS support is not available"
-msgstr ""
+msgstr "DTLS-ის მხარდაჭერა ხელმისაწვდომი არაა"
-#: gio/gemblem.c:323
+#: gio/gemblem.c:325
#, c-format
msgid "Can’t handle version %d of GEmblem encoding"
-msgstr ""
+msgstr "GEmblem-ის კოდირების %d ვერსია უცნობია"
-#: gio/gemblem.c:333
+#: gio/gemblem.c:335
#, c-format
msgid "Malformed number of tokens (%d) in GEmblem encoding"
-msgstr ""
+msgstr "კოდების არასწორი რაოდენობა(%d) GEmblem-ის დაშიფვრაში"
-#: gio/gemblemedicon.c:362
+#: gio/gemblemedicon.c:364
#, c-format
msgid "Can’t handle version %d of GEmblemedIcon encoding"
-msgstr ""
+msgstr "GEmblemedIcon-ის კოდირების %d ვერსია უცნობია"
-#: gio/gemblemedicon.c:372
+#: gio/gemblemedicon.c:374
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
-msgstr ""
+msgstr "კოდების არასწორი რაოდენობა(%d) GEmblemedIcon-ის დაშიფვრაში"
-#: gio/gemblemedicon.c:395
+#: gio/gemblemedicon.c:397
msgid "Expected a GEmblem for GEmblemedIcon"
-msgstr ""
+msgstr "GEmblemedIcon-სთვის GEmblem-ს ველოდებოდი"
#. Translators: This is an error message when
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1579
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
-msgstr ""
+msgstr "შეცველი მიმაგრება არ არსებობს"
-#: gio/gfile.c:2626 gio/glocalfile.c:2486
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
-msgstr ""
+msgstr "საქაღალდეზე ზემოდან კოპირება შეუძლებელია"
-#: gio/gfile.c:2686
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "საქაღალდის საქაღალდეზე კოპირება შეუძლებელია"
-#: gio/gfile.c:2694
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "სამიზნე ფაილი უკვე არსებობს"
-#: gio/gfile.c:2713
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "საქაღალდის რეკურსიულად კოპირება შეუძლებელია"
-#: gio/gfile.c:3014
-msgid "Splice not supported"
-msgstr ""
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "ფაილების დიაპაზონის კოპირება მხარდაჭერილი არაა"
-#: gio/gfile.c:3018
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
-msgstr ""
+msgstr "ფაილის შეერთების შეცდომა: %s"
+
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "შეერთება მხარდაჭერილი არაა"
-#: gio/gfile.c:3170
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr ""
-#: gio/gfile.c:3174
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr ""
-#: gio/gfile.c:3179
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr ""
-#: gio/gfile.c:3244
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "სპეციალური ფაილის კოპირება შეუძლებელია"
-#: gio/gfile.c:4138
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "სიმბმბულის მითითებული მნიშვნელობა არასწორია"
-#: gio/gfile.c:4148 glib/gfileutils.c:2333
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "სიმბოლური ბმების გამოყენება არაა რეალიზებული"
-#: gio/gfile.c:4316
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "ნაგავი მხარდაუჭერელია"
-#: gio/gfile.c:4428
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
-msgstr ""
+msgstr "ფაილის სახელი არ შეიძლება, \"%c\"-ს შეიცავდეს"
+
+#: gio/gfile.c:7155 gio/gfile.c:7281
+#, c-format
+msgid "Failed to create a temporary directory for template “%s”: %s"
+msgstr "შაბლონისთვის \"%s\" დროებითი საქაღალდის შექმნის შეცდომა: %s"
-#: gio/gfile.c:7028 gio/gvolume.c:364
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
-msgstr ""
+msgstr "ტომს მიმაგრების მხარდაჭერა არ გააჩნია"
-#: gio/gfile.c:7142 gio/gfile.c:7190
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "ამ ფაილის გასახსნელი პროგრამა დარეგისტრირებული არაა"
-#: gio/gfileenumerator.c:212
+#: gio/gfileenumerator.c:214
msgid "Enumerator is closed"
-msgstr ""
+msgstr "დამთვლელი დახურულია"
-#: gio/gfileenumerator.c:219 gio/gfileenumerator.c:278
-#: gio/gfileenumerator.c:377 gio/gfileenumerator.c:476
+#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
-msgstr ""
+msgstr "ფაილის დამთვლელი დაკავებულია"
-#: gio/gfileenumerator.c:368 gio/gfileenumerator.c:467
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
-msgstr ""
+msgstr "ფაილის დამთვლელი უკვე დახურულია"
-#: gio/gfileicon.c:250
+#: gio/gfileicon.c:252
#, c-format
msgid "Can’t handle version %d of GFileIcon encoding"
-msgstr ""
+msgstr "GFileIcon-ის კოდირების %d ვერსია უცნობია"
-#: gio/gfileicon.c:260
+#: gio/gfileicon.c:262
msgid "Malformed input data for GFileIcon"
-msgstr ""
+msgstr "GFileIcon-ს ის შეყვანილი მონაცემები არასწორია"
-#: gio/gfileinputstream.c:149 gio/gfileinputstream.c:394
-#: gio/gfileiostream.c:167 gio/gfileoutputstream.c:164
-#: gio/gfileoutputstream.c:497
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
+#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
+#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
-msgstr ""
+msgstr "ნაკადს query_info-ის მხარდაჭერა არ გააჩნია"
-#: gio/gfileinputstream.c:325 gio/gfileiostream.c:379
-#: gio/gfileoutputstream.c:371
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
+#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "ნაკადში გადახვევა მხარდაუჭერელია"
-#: gio/gfileinputstream.c:369
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
-msgstr ""
+msgstr "შეყვანის ნაკადზე წაკვეთა დაუშვებელია"
-#: gio/gfileiostream.c:455 gio/gfileoutputstream.c:447
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "ნაკადის მოკვეთა მხარდაუჭერელია"
-#: gio/ghttpproxy.c:91 gio/gresolver.c:458 gio/gresolver.c:611
-#: glib/gconvert.c:1825
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "ჰოსტის არასწორი სახელი"
-#: gio/ghttpproxy.c:143
+#: gio/ghttpproxy.c:145
msgid "Bad HTTP proxy reply"
-msgstr ""
+msgstr "არასწორი HTTP პროქსის პასუხი"
-#: gio/ghttpproxy.c:159
+#: gio/ghttpproxy.c:161
msgid "HTTP proxy connection not allowed"
-msgstr ""
+msgstr "HTTP პროქსისთან მიერთება დაშვებული არაა"
-#: gio/ghttpproxy.c:164
+#: gio/ghttpproxy.c:166
msgid "HTTP proxy authentication failed"
-msgstr ""
+msgstr "HTTP პროქსის ავთენტიკაცია ჩავარდა"
-#: gio/ghttpproxy.c:167
+#: gio/ghttpproxy.c:169
msgid "HTTP proxy authentication required"
-msgstr ""
+msgstr "აუცილებელია HTTP პროქსის ავთენტიკაცია"
-#: gio/ghttpproxy.c:171
+#: gio/ghttpproxy.c:173
#, c-format
msgid "HTTP proxy connection failed: %i"
-msgstr ""
+msgstr "HTTP პროქსისთან მიერთება ჩავარდა: %i"
-#: gio/ghttpproxy.c:266
+#: gio/ghttpproxy.c:268
msgid "HTTP proxy response too big"
-msgstr ""
+msgstr "HTTP პროქსის პასუხი მეტისმეტად დიდია"
-#: gio/ghttpproxy.c:283
+#: gio/ghttpproxy.c:285
msgid "HTTP proxy server closed connection unexpectedly."
-msgstr ""
+msgstr "HTTP პროქსისთან მიერთება მოულოდნელად დაიხურა."
-#: gio/gicon.c:298
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
-msgstr ""
+msgstr "კოდების არასწორი რაოდენობა (%d)"
-#: gio/gicon.c:318
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
-msgstr ""
+msgstr "ტიპი კლასის სახელისთვის %s მითითებული არაა"
-#: gio/gicon.c:328
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
-msgstr ""
+msgstr "ტიპი %s GIcon ინტერფეისის განხორციელებას არ ახდენს"
-#: gio/gicon.c:339
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
-msgstr ""
+msgstr "ტიპი %s klasSi araa"
-#: gio/gicon.c:353
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
-msgstr ""
+msgstr "არასწორი ვერსიის ნომერი: %s"
-#: gio/gicon.c:367
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
-msgstr ""
+msgstr "ტიპი %s GIcon ინტერფეისზე from_tokens()-ის განხორციელებას არ ახდენს"
-#: gio/gicon.c:469
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
-msgstr ""
+msgstr "ხატულის კოდირების მითითებული ვერსიის დამუშავება შეუძლებელია"
-#: gio/ginetaddressmask.c:182
+#: gio/ginetaddressmask.c:184
msgid "No address specified"
msgstr "მისამართი მითითებული არაა"
-#: gio/ginetaddressmask.c:190
+#: gio/ginetaddressmask.c:192
#, c-format
msgid "Length %u is too long for address"
-msgstr ""
+msgstr "სიგრძე %u მისამართისთვის მეტისმეტად გრძელია"
-#: gio/ginetaddressmask.c:223
+#: gio/ginetaddressmask.c:225
msgid "Address has bits set beyond prefix length"
-msgstr ""
+msgstr "მისამართს ბიტები პრეფიქსის სიგრძის მიღმა აქვს"
-#: gio/ginetaddressmask.c:300
+#: gio/ginetaddressmask.c:302
#, c-format
msgid "Could not parse “%s” as IP address mask"
-msgstr ""
+msgstr "\"%s\"-ის IP მისამართის ნიღბის სახით დამუშავება შეუძლებელია"
-#: gio/ginetsocketaddress.c:203 gio/ginetsocketaddress.c:220
-#: gio/gnativesocketaddress.c:109 gio/gunixsocketaddress.c:228
+#: gio/ginetsocketaddress.c:205 gio/ginetsocketaddress.c:222
+#: gio/gnativesocketaddress.c:111 gio/gunixsocketaddress.c:230
msgid "Not enough space for socket address"
-msgstr ""
+msgstr "სოკეტის მისამართისთვის ადგილი საკმარისი არაა"
-#: gio/ginetsocketaddress.c:235
+#: gio/ginetsocketaddress.c:237
msgid "Unsupported socket address"
-msgstr ""
+msgstr "სოკეტის მხარდაუჭერელი მისამართი"
-#: gio/ginputstream.c:188
+#: gio/ginputstream.c:190
msgid "Input stream doesn’t implement read"
-msgstr ""
+msgstr "შეყვანის ნაკადს წაკითხვის ფუნქცია განხორციელებული არ აქვს"
#. Translators: This is an error you get if there is already an
#. * operation running against this stream when you try to start
@@ -1535,284 +1668,284 @@ msgstr ""
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1249 gio/giostream.c:310 gio/goutputstream.c:2208
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
-msgstr ""
+msgstr "ნაკადი გადაუდებელ ოპერაციას ასრულებს"
-#: gio/gio-tool.c:160
+#: gio/gio-tool.c:162
msgid "Copy with file"
msgstr "ფაილით კოპირება"
-#: gio/gio-tool.c:164
+#: gio/gio-tool.c:166
msgid "Keep with file when moved"
-msgstr ""
+msgstr "გადაადგილების შემთხვევაში ფაილთან ერთად წაღება"
-#: gio/gio-tool.c:205
+#: gio/gio-tool.c:207
msgid "“version” takes no arguments"
msgstr "\"version\"-ს არგუმენტები არ აქვს"
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:869
+#: gio/gio-tool.c:209 gio/gio-tool.c:225 glib/goption.c:871
msgid "Usage:"
msgstr "გამოყენება:"
-#: gio/gio-tool.c:210
+#: gio/gio-tool.c:212
msgid "Print version information and exit."
msgstr "ვერსიის ინფორმაციის გამოტანა და გასვლა."
-#: gio/gio-tool.c:226
+#: gio/gio-tool.c:228
msgid "Commands:"
msgstr "ბრძანებები:"
-#: gio/gio-tool.c:229
+#: gio/gio-tool.c:231
msgid "Concatenate files to standard output"
-msgstr ""
+msgstr "სტანდარტულ შეტანაზე არსებული ფაილების შეერთება"
-#: gio/gio-tool.c:230
+#: gio/gio-tool.c:232
msgid "Copy one or more files"
msgstr "ერთი ან მეტი ფაილის კოპირება"
-#: gio/gio-tool.c:231
+#: gio/gio-tool.c:233
msgid "Show information about locations"
-msgstr ""
+msgstr "მდებარეობების შესახებ ინფორმაციის ჩვენება"
-#: gio/gio-tool.c:232
+#: gio/gio-tool.c:234
msgid "Launch an application from a desktop file"
-msgstr ""
+msgstr "აპლიკაციის გაშვება სამუშაო მაგიდის ფაილიდან"
-#: gio/gio-tool.c:233
+#: gio/gio-tool.c:235
msgid "List the contents of locations"
-msgstr ""
+msgstr "მდებარეობების შემცველობის სია"
-#: gio/gio-tool.c:234
+#: gio/gio-tool.c:236
msgid "Get or set the handler for a mimetype"
-msgstr ""
+msgstr "დამმუშავებლის დაყენება ან მიღება mimetype-სთვის"
-#: gio/gio-tool.c:235
+#: gio/gio-tool.c:237
msgid "Create directories"
msgstr "საქაღალდეების შექმნა"
-#: gio/gio-tool.c:236
+#: gio/gio-tool.c:238
msgid "Monitor files and directories for changes"
-msgstr ""
+msgstr "ფაილების და საქაღალდეების ცვლილებების მონიტორინგი"
-#: gio/gio-tool.c:237
+#: gio/gio-tool.c:239
msgid "Mount or unmount the locations"
-msgstr ""
+msgstr "მდებარეობების მიმაგრება ან მოხსნა"
-#: gio/gio-tool.c:238
+#: gio/gio-tool.c:240
msgid "Move one or more files"
msgstr "ერთი ან მეტი ფაილის გადატანა"
-#: gio/gio-tool.c:239
+#: gio/gio-tool.c:241
msgid "Open files with the default application"
-msgstr ""
+msgstr "ფაილების ნაგულისხმევი აპლიკაციით გახსნა"
-#: gio/gio-tool.c:240
+#: gio/gio-tool.c:242
msgid "Rename a file"
-msgstr ""
+msgstr "ფაილის სახელის გადარქმევა"
-#: gio/gio-tool.c:241
+#: gio/gio-tool.c:243
msgid "Delete one or more files"
-msgstr ""
+msgstr "ერთი ან მეტი ფაილის აშლა"
-#: gio/gio-tool.c:242
+#: gio/gio-tool.c:244
msgid "Read from standard input and save"
-msgstr ""
+msgstr "სტანდარტული შეტანიდან წაკითხვა და შენახვა"
-#: gio/gio-tool.c:243
+#: gio/gio-tool.c:245
msgid "Set a file attribute"
-msgstr ""
+msgstr "ფაილის ატრიბუტის დაყენება"
-#: gio/gio-tool.c:244
+#: gio/gio-tool.c:246
msgid "Move files or directories to the trash"
-msgstr ""
+msgstr "ფაილების ან საქაღალდეების ნაგვის ყუთში გადატანა"
-#: gio/gio-tool.c:245
+#: gio/gio-tool.c:247
msgid "Lists the contents of locations in a tree"
-msgstr ""
+msgstr "ხეში მდებარეობების შემცველობის ჩამონათვალი"
-#: gio/gio-tool.c:247
+#: gio/gio-tool.c:249
#, c-format
msgid "Use %s to get detailed help.\n"
-msgstr ""
+msgstr "დეტალური დახმარების მისაღებად გამოიყენეთ %s.\n"
-#: gio/gio-tool-cat.c:87
+#: gio/gio-tool-cat.c:89
msgid "Error writing to stdout"
-msgstr ""
+msgstr "შეცდომა stdout-ზე ჩაწერისას"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:133 gio/gio-tool-info.c:340 gio/gio-tool-list.c:172
-#: gio/gio-tool-mkdir.c:48 gio/gio-tool-monitor.c:37 gio/gio-tool-monitor.c:39
-#: gio/gio-tool-monitor.c:41 gio/gio-tool-monitor.c:43
-#: gio/gio-tool-monitor.c:204 gio/gio-tool-mount.c:1199 gio/gio-tool-open.c:70
-#: gio/gio-tool-remove.c:48 gio/gio-tool-rename.c:45 gio/gio-tool-set.c:91
-#: gio/gio-tool-trash.c:220 gio/gio-tool-tree.c:239
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
+#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
+#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "მდებარეობა"
-#: gio/gio-tool-cat.c:138
+#: gio/gio-tool-cat.c:140
msgid "Concatenate files and print to standard output."
-msgstr ""
+msgstr "ფაილების შეერთება და სტანდარტულ გამოტანაზე ჩვენება."
-#: gio/gio-tool-cat.c:140
+#: gio/gio-tool-cat.c:142
msgid ""
"gio cat works just like the traditional cat utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location."
msgstr ""
-#: gio/gio-tool-cat.c:162 gio/gio-tool-info.c:371 gio/gio-tool-mkdir.c:76
-#: gio/gio-tool-monitor.c:229 gio/gio-tool-mount.c:1250 gio/gio-tool-open.c:96
-#: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:303
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
+#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "მდებარეობები მითითებული არაა"
-#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:38
+#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
msgid "No target directory"
msgstr "სამიზნე საქაღალდის გარეშე"
-#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:39
+#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41
msgid "Show progress"
msgstr "მიმდინარეობის ჩვენება"
-#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
+#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:42
msgid "Prompt before overwrite"
msgstr "კითხვა თავზე გადაწერამდე"
-#: gio/gio-tool-copy.c:46
+#: gio/gio-tool-copy.c:48
msgid "Preserve all attributes"
msgstr "ყველა ატრიბუტის შენარჩუნება"
-#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
+#: gio/gio-tool-copy.c:49 gio/gio-tool-move.c:43 gio/gio-tool-save.c:51
msgid "Backup existing destination files"
-msgstr ""
+msgstr "არსებული სამიზნე ფაილების მარქაფი"
-#: gio/gio-tool-copy.c:48
+#: gio/gio-tool-copy.c:50
msgid "Never follow symbolic links"
-msgstr ""
+msgstr "არასდროს მიჰყვე სიმბმულებს"
-#: gio/gio-tool-copy.c:49
+#: gio/gio-tool-copy.c:51
msgid "Use default permissions for the destination"
-msgstr ""
+msgstr "სამიზნისთვის ნაგულისხმევი წვდომების გამოყენება"
-#: gio/gio-tool-copy.c:74 gio/gio-tool-move.c:67
+#: gio/gio-tool-copy.c:76 gio/gio-tool-move.c:69
#, c-format
msgid "Transferred %s out of %s (%s/s)"
-msgstr ""
+msgstr "გადაცემულია %s %s-დან (%s/წმ)"
#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96
msgid "SOURCE"
msgstr "წყარო"
#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94 gio/gio-tool-save.c:160
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96 gio/gio-tool-save.c:162
msgid "DESTINATION"
msgstr "დანიშნულება"
-#: gio/gio-tool-copy.c:105
+#: gio/gio-tool-copy.c:107
msgid "Copy one or more files from SOURCE to DESTINATION."
msgstr ""
-#: gio/gio-tool-copy.c:107
+#: gio/gio-tool-copy.c:109
msgid ""
"gio copy is similar to the traditional cp utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location."
msgstr ""
-#: gio/gio-tool-copy.c:149
+#: gio/gio-tool-copy.c:151
#, c-format
msgid "Destination %s is not a directory"
-msgstr ""
+msgstr "სამიზნე %s საქაღალდე არაა"
-#: gio/gio-tool-copy.c:196 gio/gio-tool-move.c:186
+#: gio/gio-tool-copy.c:198 gio/gio-tool-move.c:188
#, c-format
msgid "%s: overwrite “%s”? "
-msgstr ""
+msgstr "%s: გადავაწერო %s-ს? "
-#: gio/gio-tool-info.c:37
+#: gio/gio-tool-info.c:39
msgid "List writable attributes"
-msgstr ""
+msgstr "ჩაწერადი ატრიბუტების სია"
-#: gio/gio-tool-info.c:38
+#: gio/gio-tool-info.c:40
msgid "Get file system info"
msgstr "სისტემის ინფორმაციის მიღების შეცდომა"
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
msgid "The attributes to get"
-msgstr ""
+msgstr "მისაღები ატრიბუტები"
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
msgid "ATTRIBUTES"
msgstr "ატრიბუტები"
-#: gio/gio-tool-info.c:40 gio/gio-tool-list.c:39 gio/gio-tool-set.c:34
+#: gio/gio-tool-info.c:42 gio/gio-tool-list.c:40 gio/gio-tool-set.c:37
msgid "Don’t follow symbolic links"
msgstr "სიმბმულების არ-მიყოლა"
-#: gio/gio-tool-info.c:78
+#: gio/gio-tool-info.c:105
msgid "attributes:\n"
msgstr "ატრიბუტები:\n"
#. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:134
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "საჩვენებელი სახელი :%s\n"
#. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:139
+#: gio/gio-tool-info.c:176
#, c-format
msgid "edit name: %s\n"
msgstr "სახელის ჩასწორება: %s\n"
-#: gio/gio-tool-info.c:145
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "სახელი: %s\n"
-#: gio/gio-tool-info.c:152
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "ტიპი : %s\n"
-#: gio/gio-tool-info.c:158
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "ზომა: "
-#: gio/gio-tool-info.c:163
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "დამალული\n"
-#: gio/gio-tool-info.c:166
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:172
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "ლოკალური ბილიკი: %s\n"
-#: gio/gio-tool-info.c:205
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
-msgstr ""
+msgstr "unix მიმაგრება: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:286
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
-msgstr ""
+msgstr "დაყენებადი პარამეტრები:\n"
-#: gio/gio-tool-info.c:310
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
-msgstr ""
+msgstr "ჩაწერადი ატრიბუტი სახელის სივრცეები:\n"
-#: gio/gio-tool-info.c:345
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
-msgstr ""
+msgstr "მდებარეობების შესახებ ინფორმაციის ჩვენება."
-#: gio/gio-tool-info.c:347
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1822,60 +1955,60 @@ msgid ""
msgstr ""
#. Translators: commandline placeholder
-#: gio/gio-tool-launch.c:54
+#: gio/gio-tool-launch.c:56
msgid "DESKTOP-FILE [FILE-ARG …]"
-msgstr ""
+msgstr "DESKTOP-FILE [ფაილი-არგ …]"
-#: gio/gio-tool-launch.c:57
+#: gio/gio-tool-launch.c:59
msgid ""
"Launch an application from a desktop file, passing optional filename "
"arguments to it."
msgstr ""
-#: gio/gio-tool-launch.c:77
+#: gio/gio-tool-launch.c:79
msgid "No desktop file given"
-msgstr ""
+msgstr ".desktop ფაილი მითითებული არაა"
-#: gio/gio-tool-launch.c:85
+#: gio/gio-tool-launch.c:87
msgid "The launch command is not currently supported on this platform"
-msgstr ""
+msgstr "ამ პლატფორმაზე გაშვების ბრძანება მხარდაჭერილი არაა"
-#: gio/gio-tool-launch.c:98
+#: gio/gio-tool-launch.c:100
#, c-format
msgid "Unable to load ‘%s‘: %s"
msgstr "%s-ის ჩატვირთვის შეცდომა: %s"
-#: gio/gio-tool-launch.c:107
+#: gio/gio-tool-launch.c:109
#, c-format
msgid "Unable to load application information for ‘%s‘"
msgstr ""
-#: gio/gio-tool-launch.c:119
+#: gio/gio-tool-launch.c:121
#, c-format
msgid "Unable to launch application ‘%s’: %s"
-msgstr ""
+msgstr "ვერ გავუშვი აპლიკაცია ‘%s’: %s"
-#: gio/gio-tool-list.c:37 gio/gio-tool-tree.c:32
+#: gio/gio-tool-list.c:38 gio/gio-tool-tree.c:34
msgid "Show hidden files"
msgstr "დამალული ფაილების ჩვენება"
-#: gio/gio-tool-list.c:38
+#: gio/gio-tool-list.c:39
msgid "Use a long listing format"
-msgstr ""
+msgstr "გრძელი ჩამონათვლის ფორმატის გამოყენება"
-#: gio/gio-tool-list.c:40
+#: gio/gio-tool-list.c:41
msgid "Print display names"
-msgstr ""
+msgstr "საჩვენებელი სახელების გამოტანა"
-#: gio/gio-tool-list.c:41
+#: gio/gio-tool-list.c:42
msgid "Print full URIs"
-msgstr ""
+msgstr "სრული URI-ების გამოტანა"
-#: gio/gio-tool-list.c:177
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
-msgstr ""
+msgstr "მდებარეობების შემცველობის სია."
-#: gio/gio-tool-list.c:179
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1884,410 +2017,416 @@ msgid ""
msgstr ""
#. Translators: commandline placeholder
-#: gio/gio-tool-mime.c:71
+#: gio/gio-tool-mime.c:73
msgid "MIMETYPE"
-msgstr ""
+msgstr "MIMETYPE"
-#: gio/gio-tool-mime.c:71
+#: gio/gio-tool-mime.c:73
msgid "HANDLER"
-msgstr ""
+msgstr "დამმუშავებელი"
-#: gio/gio-tool-mime.c:76
+#: gio/gio-tool-mime.c:78
msgid "Get or set the handler for a mimetype."
-msgstr ""
+msgstr "ამ mimetype-თვის დამმუშავებელი ვერ მივიღე."
-#: gio/gio-tool-mime.c:78
+#: gio/gio-tool-mime.c:80
msgid ""
"If no handler is given, lists registered and recommended applications\n"
"for the mimetype. If a handler is given, it is set as the default\n"
"handler for the mimetype."
msgstr ""
-#: gio/gio-tool-mime.c:100
+#: gio/gio-tool-mime.c:102
msgid "Must specify a single mimetype, and maybe a handler"
msgstr ""
-#: gio/gio-tool-mime.c:116
+#: gio/gio-tool-mime.c:118
#, c-format
msgid "No default applications for “%s”\n"
-msgstr ""
+msgstr "\"%s\"-სთვის ნაგულისხმევი აპლიკაცია მითითებული არაა\n"
-#: gio/gio-tool-mime.c:122
+#: gio/gio-tool-mime.c:124
#, c-format
msgid "Default application for “%s”: %s\n"
-msgstr ""
+msgstr "ნაგულისხმევი აპლიკაცია ტიპისთვის \"%s\": %s\n"
-#: gio/gio-tool-mime.c:127
+#: gio/gio-tool-mime.c:129
msgid "Registered applications:\n"
-msgstr ""
+msgstr "რეგისტრირებული აპლიკაციები:\n"
-#: gio/gio-tool-mime.c:129
+#: gio/gio-tool-mime.c:131
msgid "No registered applications\n"
-msgstr ""
+msgstr "რეგისტრირებული აპლიკაციების გარეშე\n"
-#: gio/gio-tool-mime.c:140
+#: gio/gio-tool-mime.c:142
msgid "Recommended applications:\n"
-msgstr ""
+msgstr "რეკომენდებული აპლიკაციები:\n"
-#: gio/gio-tool-mime.c:142
+#: gio/gio-tool-mime.c:144
msgid "No recommended applications\n"
-msgstr ""
+msgstr "რეკომენდებული აპლიკაციების გარეშე\n"
-#: gio/gio-tool-mime.c:162
+#: gio/gio-tool-mime.c:164
#, c-format
msgid "Failed to load info for handler “%s”"
-msgstr ""
+msgstr "შეცდომა ინფორმაციის ჩატვირთვისას დამმუშავებლისთვის \"%s\""
-#: gio/gio-tool-mime.c:168
+#: gio/gio-tool-mime.c:170
#, c-format
msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
msgstr ""
-#: gio/gio-tool-mkdir.c:31
+#: gio/gio-tool-mkdir.c:33
msgid "Create parent directories"
-msgstr ""
+msgstr "მშობელი საქაღალდეების შექმნა"
-#: gio/gio-tool-mkdir.c:52
+#: gio/gio-tool-mkdir.c:54
msgid "Create directories."
-msgstr ""
+msgstr "საქაღალდეების შექმნა."
-#: gio/gio-tool-mkdir.c:54
+#: gio/gio-tool-mkdir.c:56
msgid ""
"gio mkdir is similar to the traditional mkdir utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/mydir as location."
msgstr ""
-#: gio/gio-tool-monitor.c:37
+#: gio/gio-tool-monitor.c:39
msgid "Monitor a directory (default: depends on type)"
msgstr ""
-#: gio/gio-tool-monitor.c:39
+#: gio/gio-tool-monitor.c:41
msgid "Monitor a file (default: depends on type)"
msgstr ""
-#: gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43
msgid "Monitor a file directly (notices changes made via hardlinks)"
msgstr ""
-#: gio/gio-tool-monitor.c:43
+#: gio/gio-tool-monitor.c:45
msgid "Monitors a file directly, but doesn’t report changes"
msgstr ""
-#: gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:47
msgid "Report moves and renames as simple deleted/created events"
msgstr ""
-#: gio/gio-tool-monitor.c:47
+#: gio/gio-tool-monitor.c:49
msgid "Watch for mount events"
-msgstr ""
+msgstr "მიმაგრების მოვლენების მეთვალყურეობა"
-#: gio/gio-tool-monitor.c:209
+#: gio/gio-tool-monitor.c:211
msgid "Monitor files or directories for changes."
-msgstr ""
+msgstr "ფაილების და საქაღალდეების ცვლილებების მონიტორინგი."
-#: gio/gio-tool-mount.c:63
+#: gio/gio-tool-mount.c:65
msgid "Mount as mountable"
-msgstr ""
+msgstr "მიმაგრება მიმაგრებადია"
-#: gio/gio-tool-mount.c:64
+#: gio/gio-tool-mount.c:66
msgid "Mount volume with device file, or other identifier"
-msgstr ""
+msgstr "ტომის მიმაგრება მოწყობილობის ფაილით ან სხვა იდენტიფიკატორით"
-#: gio/gio-tool-mount.c:64
+#: gio/gio-tool-mount.c:66
msgid "ID"
-msgstr "აიდი"
+msgstr "ID"
-#: gio/gio-tool-mount.c:65
+#: gio/gio-tool-mount.c:67
msgid "Unmount"
msgstr "მოხსნა"
-#: gio/gio-tool-mount.c:66
+#: gio/gio-tool-mount.c:68
msgid "Eject"
-msgstr "მოხსნა"
+msgstr "გამოღება"
-#: gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:69
msgid "Stop drive with device file"
-msgstr ""
+msgstr "დისკის შეჩერება მოწყობილობის ფაილით"
-#: gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:69
msgid "DEVICE"
msgstr "მოწყობილობა"
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:70
msgid "Unmount all mounts with the given scheme"
-msgstr ""
+msgstr "ყველა მიმაგრების მოხსნა მითითებული სქემით"
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:70
msgid "SCHEME"
msgstr "სქემა"
-#: gio/gio-tool-mount.c:69
+#: gio/gio-tool-mount.c:71
msgid "Ignore outstanding file operations when unmounting or ejecting"
msgstr ""
-#: gio/gio-tool-mount.c:70
+#: gio/gio-tool-mount.c:72
msgid "Use an anonymous user when authenticating"
-msgstr ""
+msgstr "ავთენტიკაციისას ანონიმური მომხმარებლის გამოყენება"
#. Translator: List here is a verb as in 'List all mounts'
-#: gio/gio-tool-mount.c:72
+#: gio/gio-tool-mount.c:74
msgid "List"
msgstr "სია"
-#: gio/gio-tool-mount.c:73
+#: gio/gio-tool-mount.c:75
msgid "Monitor events"
-msgstr ""
+msgstr "მოვლენების მონიტორინგი"
-#: gio/gio-tool-mount.c:74
+#: gio/gio-tool-mount.c:76
msgid "Show extra information"
msgstr "დამატებითი ინფორმაციის ჩვენება"
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:77
msgid "The numeric PIM when unlocking a VeraCrypt volume"
msgstr ""
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:77
msgid "PIM"
msgstr "PIM"
-#: gio/gio-tool-mount.c:76
+#: gio/gio-tool-mount.c:78
msgid "Mount a TCRYPT hidden volume"
-msgstr ""
+msgstr "TCRYPT დამალული ტომის მიმაგრება"
-#: gio/gio-tool-mount.c:77
+#: gio/gio-tool-mount.c:79
msgid "Mount a TCRYPT system volume"
-msgstr ""
+msgstr "TCRYPT სისტემური ტომის მიმაგრება"
-#: gio/gio-tool-mount.c:265 gio/gio-tool-mount.c:297
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
-msgstr ""
+msgstr "ანონიმური წვდომა აკრძალულია"
-#: gio/gio-tool-mount.c:522
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
-msgstr ""
+msgstr "მოწყობილობის ფაილისთვის დისკი არ არსებობს"
-#: gio/gio-tool-mount.c:1014
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
-msgstr ""
+msgstr "მითითებული ID-სთვის ტომი არ არსებობს"
-#: gio/gio-tool-mount.c:1203
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
-msgstr ""
+msgstr "მდებარეობების მიმაგრება ან მოხსნა."
-#: gio/gio-tool-move.c:42
+#: gio/gio-tool-move.c:44
msgid "Don’t use copy and delete fallback"
msgstr ""
-#: gio/gio-tool-move.c:99
+#: gio/gio-tool-move.c:101
msgid "Move one or more files from SOURCE to DEST."
msgstr ""
-#: gio/gio-tool-move.c:101
+#: gio/gio-tool-move.c:103
msgid ""
"gio move is similar to the traditional mv utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location"
msgstr ""
-#: gio/gio-tool-move.c:143
+#: gio/gio-tool-move.c:145
#, c-format
msgid "Target %s is not a directory"
msgstr "სამიზნე %s საქაღალდეს არ წარმოადგენს"
-#: gio/gio-tool-open.c:75
+#: gio/gio-tool-open.c:77
msgid ""
"Open files with the default application that\n"
"is registered to handle files of this type."
msgstr ""
-#: gio/gio-tool-remove.c:31 gio/gio-tool-trash.c:33
+#: gio/gio-tool-remove.c:33 gio/gio-tool-trash.c:35
msgid "Ignore nonexistent files, never prompt"
-msgstr ""
+msgstr "არარსებული ფაილების გამოტოვება. არასდროს მკითხო"
-#: gio/gio-tool-remove.c:52
+#: gio/gio-tool-remove.c:54
msgid "Delete the given files."
-msgstr ""
+msgstr "მითითებული ფაილების წაშლა."
-#: gio/gio-tool-rename.c:45
+#: gio/gio-tool-rename.c:47
msgid "NAME"
msgstr "სახელი"
-#: gio/gio-tool-rename.c:50
+#: gio/gio-tool-rename.c:52
msgid "Rename a file."
msgstr "ფაილის სახელის გადარქმევა."
-#: gio/gio-tool-rename.c:70
+#: gio/gio-tool-rename.c:72
msgid "Missing argument"
msgstr "ნაკლული არგუმენტი"
-#: gio/gio-tool-rename.c:76 gio/gio-tool-save.c:190 gio/gio-tool-set.c:139
+#: gio/gio-tool-rename.c:78 gio/gio-tool-save.c:192 gio/gio-tool-set.c:150
msgid "Too many arguments"
msgstr "მეტისმეტად ბევრი არგუმენტი"
-#: gio/gio-tool-rename.c:95
+#: gio/gio-tool-rename.c:97
#, c-format
msgid "Rename successful. New uri: %s\n"
msgstr "სახელის გადარქმევა წარმატებულია. ახალი URI: %s\n"
-#: gio/gio-tool-save.c:50
+#: gio/gio-tool-save.c:52
msgid "Only create if not existing"
-msgstr ""
+msgstr "შექმნა მხოლოდ მაშინ, თუ არსებობს"
-#: gio/gio-tool-save.c:51
+#: gio/gio-tool-save.c:53
msgid "Append to end of file"
-msgstr ""
+msgstr "ფაილის ბოლოშ მიწერა"
-#: gio/gio-tool-save.c:52
+#: gio/gio-tool-save.c:54
msgid "When creating, restrict access to the current user"
-msgstr ""
+msgstr "შექმნისას მიმდინარე მომხმარებელთან წვდომის შეზღუდვა"
-#: gio/gio-tool-save.c:53
+#: gio/gio-tool-save.c:55
msgid "When replacing, replace as if the destination did not exist"
-msgstr ""
+msgstr "ჩანაცვლებისას, ჩაანაცვლე, თითქოს სამიზნე ფაილი არც არსებობდა"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:55
+#: gio/gio-tool-save.c:57
msgid "Print new etag at end"
-msgstr ""
+msgstr "ბოლოში ახალი etag-ის გამოტანა"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:59
msgid "The etag of the file being overwritten"
-msgstr ""
+msgstr "მიმდინარეობს ფაილის etag-ის თავზე გადაწერა"
-#: gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:59
msgid "ETAG"
-msgstr ""
+msgstr "ETAG"
-#: gio/gio-tool-save.c:113
+#: gio/gio-tool-save.c:115
msgid "Error reading from standard input"
-msgstr ""
+msgstr "სტანდარტული შეყვანიდან წაკითხვის შეცდომა"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:139
+#: gio/gio-tool-save.c:141
msgid "Etag not available\n"
msgstr ""
+"Etag ხელმისაწვდომი არაა\n"
+"\n"
-#: gio/gio-tool-save.c:163
+#: gio/gio-tool-save.c:165
msgid "Read from standard input and save to DEST."
-msgstr ""
+msgstr "წაკითხვა სტანდარტული შეყვანიდან და მითითებულ სამიზნეზე ჩაწერა."
-#: gio/gio-tool-save.c:183
+#: gio/gio-tool-save.c:185
msgid "No destination given"
-msgstr ""
+msgstr "სამიზნე მითითებული არაა"
-#: gio/gio-tool-set.c:33
+#: gio/gio-tool-set.c:36
msgid "Type of the attribute"
-msgstr ""
+msgstr "ატრიბუტის ტიპი"
-#: gio/gio-tool-set.c:33
+#: gio/gio-tool-set.c:36
msgid "TYPE"
msgstr "ტიპი"
-#: gio/gio-tool-set.c:91
+#: gio/gio-tool-set.c:38
+msgid "Unset given attribute"
+msgstr "ყველა ატრიბუტის მოხსნა"
+
+#: gio/gio-tool-set.c:95
msgid "ATTRIBUTE"
-msgstr ""
+msgstr "ატრიბუტი"
-#: gio/gio-tool-set.c:91
+#: gio/gio-tool-set.c:95
msgid "VALUE"
msgstr "მნიშვნელობა"
-#: gio/gio-tool-set.c:95
+#: gio/gio-tool-set.c:99
msgid "Set a file attribute of LOCATION."
-msgstr ""
+msgstr "მითითებული მდებარეობის ფაილის ატრიბუტის დაყენება."
-#: gio/gio-tool-set.c:115
+#: gio/gio-tool-set.c:119
msgid "Location not specified"
msgstr "მდებარეობა მითითებული არაა"
-#: gio/gio-tool-set.c:122
+#: gio/gio-tool-set.c:126
msgid "Attribute not specified"
-msgstr ""
+msgstr "ატრიბუტი მითითებული არაა"
-#: gio/gio-tool-set.c:132
+#: gio/gio-tool-set.c:143
msgid "Value not specified"
-msgstr ""
+msgstr "მნიშვნელობა მითითებული არაა"
-#: gio/gio-tool-set.c:182
+#: gio/gio-tool-set.c:193
#, c-format
msgid "Invalid attribute type “%s”"
msgstr "ატრიბუტის არასწორი ტიპი: %s"
-#: gio/gio-tool-trash.c:34
+#: gio/gio-tool-trash.c:36
msgid "Empty the trash"
-msgstr ""
+msgstr "ნაგვის ყუთის გასუფთავება"
-#: gio/gio-tool-trash.c:35
+#: gio/gio-tool-trash.c:37
msgid "List files in the trash with their original locations"
-msgstr ""
+msgstr "ნაგვის ყუთში არსებული ფაილების სია მათი საწყისი მდებარეობებით"
-#: gio/gio-tool-trash.c:36
+#: gio/gio-tool-trash.c:38
msgid ""
"Restore a file from trash to its original location (possibly recreating the "
"directory)"
msgstr ""
-#: gio/gio-tool-trash.c:106
+#: gio/gio-tool-trash.c:108
msgid "Unable to find original path"
-msgstr ""
+msgstr "საწყისი ბილიკი ვერ ვიპოვე"
-#: gio/gio-tool-trash.c:123
+#: gio/gio-tool-trash.c:125
msgid "Unable to recreate original location: "
msgstr "საწყისი მდებარეობის თავიდან შექმნის შეცდომა: "
-#: gio/gio-tool-trash.c:136
+#: gio/gio-tool-trash.c:138
msgid "Unable to move file to its original location: "
-msgstr ""
+msgstr "შეუძლებელია ფაილების გადატანა საწყის მდებარეობაზე: "
-#: gio/gio-tool-trash.c:225
+#: gio/gio-tool-trash.c:227
msgid "Move/Restore files or directories to the trash."
-msgstr ""
+msgstr "ფაილების ან საქაღალდეების ნაგვის ყუთში გადატანა/აღდგენა."
-#: gio/gio-tool-trash.c:227
+#: gio/gio-tool-trash.c:229
msgid ""
"Note: for --restore switch, if the original location of the trashed file \n"
"already exists, it will not be overwritten unless --force is set."
msgstr ""
-#: gio/gio-tool-trash.c:258
+#: gio/gio-tool-trash.c:260
msgid "Location given doesn't start with trash:///"
-msgstr ""
+msgstr "მითითებული მდებარეობა არ იწყება სტრიქონით trash:///"
-#: gio/gio-tool-tree.c:33
+#: gio/gio-tool-tree.c:35
msgid "Follow symbolic links, mounts and shortcuts"
-msgstr ""
+msgstr "სიმბმულების, მიმაგრების წერტილებისა და მალსახმობების ჩვენება"
-#: gio/gio-tool-tree.c:244
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
-msgstr ""
+msgstr "საქაღალდეების სიის ხის მაგვარ ფორმატში ჩვენება."
-#: gio/glib-compile-resources.c:140 gio/glib-compile-schemas.c:1514
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "ელემენტი <%s> <%s>-ის შიგნით დაუშვებელია"
-#: gio/glib-compile-resources.c:144
+#: gio/glib-compile-resources.c:146
#, c-format
msgid "Element <%s> not allowed at toplevel"
msgstr "ელემენტი <%s> შეუძლებელია, სიის თავში იყოს"
-#: gio/glib-compile-resources.c:234
+#: gio/glib-compile-resources.c:236
#, c-format
msgid "File %s appears multiple times in the resource"
-msgstr ""
+msgstr "ფაილი %s რესურსში ერთზე მეტჯერ ჩნდება"
-#: gio/glib-compile-resources.c:245
+#: gio/glib-compile-resources.c:247
#, c-format
msgid "Failed to locate “%s” in any source directory"
-msgstr ""
+msgstr "\"%s\" არც ერთ წყაროს საქაღალდეში არ აღმოჩნდა"
-#: gio/glib-compile-resources.c:256
+#: gio/glib-compile-resources.c:258
#, c-format
msgid "Failed to locate “%s” in current directory"
-msgstr ""
+msgstr "\"%s\" მიმდინარე საქაღალდეში აღმოჩენილი არაა"
-#: gio/glib-compile-resources.c:290
+#: gio/glib-compile-resources.c:292
#, c-format
msgid "Unknown processing option “%s”"
msgstr "დამუშავების უცნობი პარამეტრი %s"
@@ -2296,248 +2435,249 @@ msgstr "დამუშავების უცნობი პარამე
#. * the second %s is an environment variable, and the third
#. * %s is a command line tool
#.
-#: gio/glib-compile-resources.c:310 gio/glib-compile-resources.c:367
-#: gio/glib-compile-resources.c:424
+#: gio/glib-compile-resources.c:312 gio/glib-compile-resources.c:369
+#: gio/glib-compile-resources.c:426
#, c-format
msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
msgstr ""
-#: gio/glib-compile-resources.c:457
+#: gio/glib-compile-resources.c:459
#, c-format
msgid "Error reading file %s: %s"
-msgstr ""
+msgstr "ფაილის \"%s\" წაკითხვის შეცდომა: %s"
-#: gio/glib-compile-resources.c:477
+#: gio/glib-compile-resources.c:479
#, c-format
msgid "Error compressing file %s"
-msgstr ""
+msgstr "ფაილის ('%s') შეკუმშვის შეცდომა"
-#: gio/glib-compile-resources.c:541
+#: gio/glib-compile-resources.c:543
#, c-format
msgid "text may not appear inside <%s>"
-msgstr ""
+msgstr "<%s>-ის შიგნით შეუძლებელია, ტექსტი გამოჩნდეს"
-#: gio/glib-compile-resources.c:819 gio/glib-compile-schemas.c:2172
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
-msgstr ""
+msgstr "პროგრამის ვერსიის ჩვენება და გასვლა"
-#: gio/glib-compile-resources.c:820
+#: gio/glib-compile-resources.c:822
msgid "Name of the output file"
-msgstr ""
+msgstr "გამოტანის ფაილის სახელი"
-#: gio/glib-compile-resources.c:821
+#: gio/glib-compile-resources.c:823
msgid ""
"The directories to load files referenced in FILE from (default: current "
"directory)"
msgstr ""
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2173
-#: gio/glib-compile-schemas.c:2202
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "DIRECTORY"
-#: gio/glib-compile-resources.c:822
+#: gio/glib-compile-resources.c:824
msgid ""
"Generate output in the format selected for by the target filename extension"
msgstr ""
-#: gio/glib-compile-resources.c:823
+#: gio/glib-compile-resources.c:825
msgid "Generate source header"
-msgstr ""
+msgstr "წყაროს თავსართის გენერაცია"
-#: gio/glib-compile-resources.c:824
+#: gio/glib-compile-resources.c:826
msgid "Generate source code used to link in the resource file into your code"
msgstr ""
-#: gio/glib-compile-resources.c:825
+#: gio/glib-compile-resources.c:827
msgid "Generate dependency list"
-msgstr ""
+msgstr "დამოკიდებულებების სიის გენერაცია"
-#: gio/glib-compile-resources.c:826
+#: gio/glib-compile-resources.c:828
msgid "Name of the dependency file to generate"
-msgstr ""
+msgstr "დასაგენერირებელი დამოკიდებულებების ფაილის სახელი"
-#: gio/glib-compile-resources.c:827
+#: gio/glib-compile-resources.c:829
msgid "Include phony targets in the generated dependency file"
msgstr ""
-#: gio/glib-compile-resources.c:828
+#: gio/glib-compile-resources.c:830
msgid "Don’t automatically create and register resource"
-msgstr ""
+msgstr "რესურსი ავტომატურად არ შეიქმნება და დარეგისტრირდება"
-#: gio/glib-compile-resources.c:829
+#: gio/glib-compile-resources.c:831
msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
-msgstr ""
+msgstr "ფუნქციების გატანა არ მოხდება. ისინი G_GNUC_INTERNAL-ით აღწერეთ"
-#: gio/glib-compile-resources.c:830
+#: gio/glib-compile-resources.c:832
msgid ""
"Don’t embed resource data in the C file; assume it's linked externally "
"instead"
msgstr ""
+"C ფაილებში რესურსის მონაცემებს ნუ ჩასვამთ. ჩათვალეთ, რომ ის გარედან მიებმება"
-#: gio/glib-compile-resources.c:831
+#: gio/glib-compile-resources.c:833
msgid "C identifier name used for the generated source code"
-msgstr ""
+msgstr "C იდენტიფიკატორი, რომელიც გენერირებული წყაროს კოდისთვის გამოიყენება"
-#: gio/glib-compile-resources.c:832
+#: gio/glib-compile-resources.c:834
msgid "The target C compiler (default: the CC environment variable)"
-msgstr ""
+msgstr "სამიზნე C კომპილატორი (ნაგულისხმევი: გარემოს ცვლადი CC)"
-#: gio/glib-compile-resources.c:858
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
"and the resource file have the extension called .gresource."
msgstr ""
-#: gio/glib-compile-resources.c:880
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
-msgstr ""
+msgstr "უნდა მიაწოდოთ ზუსტად ერთი ფაილის სახელი\n"
-#: gio/glib-compile-schemas.c:92
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
-msgstr ""
+msgstr "ფსევდონიმი, მიმიმუმ, 2 სიმბოლოს უნდა შეიცავდეს"
-#: gio/glib-compile-schemas.c:103
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "არასწორი რიცხვითი მნიშვნელობა"
-#: gio/glib-compile-schemas.c:111
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
-msgstr ""
+msgstr "<value nick='%s'/> უკვე მითითებულია"
-#: gio/glib-compile-schemas.c:119
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
-msgstr ""
+msgstr "მნიშვნელობა='%s' უკვე მითითებულია"
-#: gio/glib-compile-schemas.c:133
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
-msgstr ""
+msgstr "ალმებს მაქსიმუმ 1 ბიტი შეგიძლიათ, დაუყენოთ"
-#: gio/glib-compile-schemas.c:158
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
-msgstr ""
+msgstr "<%s> სულ ცოტა ერთ <value>-ს უნდა შეიცავდეს"
-#: gio/glib-compile-schemas.c:314
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
-msgstr ""
+msgstr "<%s> მითითებული შუალედიდან არაა"
-#: gio/glib-compile-schemas.c:326
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
-msgstr ""
+msgstr "<%s> მითითებული ჩამონათვალის ტიპის სწორი წევრი არაა"
-#: gio/glib-compile-schemas.c:332
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
-msgstr ""
+msgstr "<%s> შეიცავს სტრიქონს, რომელიც მითითებული ალმის ტიპში არაა"
-#: gio/glib-compile-schemas.c:338
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
-msgstr ""
+msgstr "<%s> შეიცავს სტრიქონს, რომელიც <choices>-ში არაა"
-#: gio/glib-compile-schemas.c:372
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
-msgstr ""
+msgstr "<range/> ამ გასაღებისთვის უკვე მითითებულია"
-#: gio/glib-compile-schemas.c:390
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
-msgstr ""
+msgstr "<range> დაუშვებელია გასაღებებისთვის ტიპით “%s”"
-#: gio/glib-compile-schemas.c:407
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
-msgstr ""
+msgstr "<range> მაქსიმალური მნიშვნელობა მინიმალურზე მეტი უნდა იყოს"
-#: gio/glib-compile-schemas.c:432
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
-msgstr ""
+msgstr "მხარდაუჭერელი l10n კატეგორია: %s"
-#: gio/glib-compile-schemas.c:440
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
-msgstr ""
+msgstr "l10n მოთხოვნილია, მაგრამ gettext-ის დომენი მითითებული არაა"
-#: gio/glib-compile-schemas.c:452
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr ""
-#: gio/glib-compile-schemas.c:474
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr ""
-#: gio/glib-compile-schemas.c:491
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:500
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
-msgstr ""
+msgstr "<choices> ამ გასაღებისთვის უკვე მითითებულია"
-#: gio/glib-compile-schemas.c:512
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:528
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
-msgstr ""
+msgstr "<choice value='%s'/> უკვე გადაცემულია"
-#: gio/glib-compile-schemas.c:543
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr ""
-#: gio/glib-compile-schemas.c:557
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
-msgstr ""
+msgstr "<aliases> ამ გასაღებისთვის უკვე მითითებულია"
-#: gio/glib-compile-schemas.c:561
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
msgstr ""
-#: gio/glib-compile-schemas.c:580
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
"type"
msgstr ""
-#: gio/glib-compile-schemas.c:586
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
-#: gio/glib-compile-schemas.c:594
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
-msgstr ""
+msgstr "<alias value='%s'/> უკვე მითითებულია"
-#: gio/glib-compile-schemas.c:604
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:605
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr ""
-#: gio/glib-compile-schemas.c:620
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr ""
@@ -2576,7 +2716,7 @@ msgstr ""
#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
-msgstr ""
+msgstr "<child name='%s'> უკვე მითითებულია"
#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
@@ -2585,7 +2725,7 @@ msgstr ""
#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
-msgstr ""
+msgstr "<key name='%s'> უკვე მითითებულია"
#: gio/glib-compile-schemas.c:972
#, c-format
@@ -2604,12 +2744,12 @@ msgstr ""
#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
-msgstr ""
+msgstr "<%s id='%s'> (ჯერ) აღწერილი არაა."
#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
-msgstr ""
+msgstr "არასწორი GVariant ტიპის სტრიქონი \"%s\""
#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
@@ -2623,38 +2763,39 @@ msgstr ""
#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
-msgstr ""
+msgstr "<override name='%s'> უკვე მითითებულია"
#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
-msgstr ""
+msgstr "<schema id='%s'> უკვე მითითებულია"
#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
-msgstr ""
+msgstr "<schema id='%s'> აფართოებს ჯერ არ არსებულ სქემას “%s”"
#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
-msgstr ""
+msgstr "<schema id='%s'> სიაა ჯერ არარებული სქემისთვის “%s”"
#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
-msgstr ""
+msgstr "ვერ იქნება სქემის სია ბილიკით"
#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
-msgstr ""
+msgstr "სქემას ბილიკით ვერ გააფართოვებთ"
#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
+"<schema id='%s'> სიაა, რომელიც აფართოებს <schema id='%s'>-ს, რომელიც სია არაა"
#: gio/glib-compile-schemas.c:1207
#, c-format
@@ -2683,7 +2824,7 @@ msgstr ""
#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
-msgstr ""
+msgstr "<%s id='%s'> უკვე მითითებულია"
#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
@@ -2712,15 +2853,15 @@ msgstr ""
#. Translators: Do not translate "--strict".
#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
-msgstr ""
+msgstr "მითითებულია --strict; გასვლა."
#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
-msgstr ""
+msgstr "ეს მთლიანი ფაილი გამოტოვებულია."
#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
-msgstr ""
+msgstr "ამ ფაილის გამოტოვება."
#: gio/glib-compile-schemas.c:1963
#, c-format
@@ -2794,569 +2935,587 @@ msgstr ""
#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
-msgstr ""
+msgstr "სად იქნება დამახსოვრებული ფაილი gschemas.compiled"
#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
-msgstr ""
+msgstr "მუშაობის დასრულება სქემაში ნებისმიერი შეცდომის აღმოჩებისას"
#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
-msgstr ""
+msgstr "ფაილი gschema.compiled არ ჩაიწერება"
#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
-msgstr ""
+msgstr "გასაღების სახელის შეზღუდვები არ დაწესდება"
-#: gio/glib-compile-schemas.c:2205
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
"and the cache file is called gschemas.compiled."
msgstr ""
-#: gio/glib-compile-schemas.c:2226
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
-msgstr ""
+msgstr "უნდა მიაწოდოთ ზუსტად ერთი საქაღალდის სახელი"
-#: gio/glib-compile-schemas.c:2269
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
-msgstr ""
+msgstr "სქემის ფაილები ვერ ვიპოვე: არაფერს ვაკეთებ."
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
-msgstr ""
+msgstr "სქემის ფაილების ვერ ვიპოვე: არსებული გამოტანის ფაილი წაშლილია."
-#: gio/glocalfile.c:549 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "ფაილის არასწორი სახელი: %s"
-#: gio/glocalfile.c:982
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
-msgstr ""
+msgstr "'%s'-სთვის ფაილური სისტემის ინფორმაციის მიღების შეცდომა: %s"
#. Translators: This is an error message when trying to find
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1123
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
-msgstr ""
+msgstr "შემცველი მიმაგრების წერტილი ფაილისთვის '%s' აღმოჩენილი არაა"
-#: gio/glocalfile.c:1146
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
-msgstr ""
+msgstr "საქაღალდის '/' სახელის გადარქმევა შეუძლებელია"
-#: gio/glocalfile.c:1164 gio/glocalfile.c:1187
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
-msgstr ""
+msgstr "შეცდომა სახელის გადარქმევისას ფაილისთვის %s: %s"
-#: gio/glocalfile.c:1171
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr ""
+"ფაილის სახელის გადარქმევა შეუძლებელია, რადგან ფაილის სახელი უკვე არსებობს"
-#: gio/glocalfile.c:1184 gio/glocalfile.c:2380 gio/glocalfile.c:2408
-#: gio/glocalfile.c:2547 gio/glocalfileoutputstream.c:656
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "ფაილის არასწორი სახელი"
-#: gio/glocalfile.c:1352 gio/glocalfile.c:1363
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
-msgstr ""
+msgstr "ფაილის (%s) გახსნის შეცდომა: %s"
-#: gio/glocalfile.c:1488
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
-msgstr ""
+msgstr "ფაილის (%s) წაშლის შეცდომა: %s"
-#: gio/glocalfile.c:1982 gio/glocalfile.c:1993 gio/glocalfile.c:2020
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
-msgstr ""
+msgstr "ფაილის (%s) ნაგვის ყუთში გადატანის შეცდომა: %s"
-#: gio/glocalfile.c:2040
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "სანაგვის საქაღალდის (%s) შექმნის შეცდომა: %s"
-#: gio/glocalfile.c:2061
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "%s-ის წასაშლელად ზედა საქაღალდის პოვნა შეუძლებელი იყო"
-#: gio/glocalfile.c:2069
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
+"სისტემურ შიდა მიმაგრების წერტილებზე ნაგვის ყუთის შექმნა მხარდაჭერილი არაა"
-#: gio/glocalfile.c:2155 gio/glocalfile.c:2183
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "სანაგვე საქაღალდის (%s) შექმნა შეუძლებელია %s-ის წასაშლელად"
-#: gio/glocalfile.c:2229
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "წაშლის ინფორმაციის ფაილის (%s) შექმნის შეცდომა: %s"
-#: gio/glocalfile.c:2291
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "ფაილის (%s) წაშლა ფაილური სისტემის საზღვრებს მიღმა შეუძლებელია"
-#: gio/glocalfile.c:2295 gio/glocalfile.c:2351
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "ფაილის (%s) წაშლა შეუძლებელია: %s"
-#: gio/glocalfile.c:2357
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "ფაილის (%s) წაშლა შეუძლებელია"
-#: gio/glocalfile.c:2383
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "საქაღალდის (%s) შექმნის შეცდომა: %s"
-#: gio/glocalfile.c:2412
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "ფაილურ სისტემას სიმბმულების მხარდაჭერა არ გააჩნია"
-#: gio/glocalfile.c:2415
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
-msgstr ""
+msgstr "სიმბოლური ბმულის ('%s') შექმნის შეცდომა:%s"
-#: gio/glocalfile.c:2458 gio/glocalfile.c:2493 gio/glocalfile.c:2550
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
-msgstr ""
+msgstr "ფაილის (%s) გადატანის შეცდომა: %s"
-#: gio/glocalfile.c:2481
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "საქაღალდის საქაღალდეზე გადატანა შეუძლებელია"
-#: gio/glocalfile.c:2507 gio/glocalfileoutputstream.c:1108
-#: gio/glocalfileoutputstream.c:1122 gio/glocalfileoutputstream.c:1137
-#: gio/glocalfileoutputstream.c:1154 gio/glocalfileoutputstream.c:1168
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
+#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "მარქაფის ფაილის შექმნის შეცდომა"
-#: gio/glocalfile.c:2526
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
-msgstr ""
+msgstr "სამიზნე ფაილის წაშლა შეუძლებელია: %s"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
-msgstr ""
+msgstr "მიმაგრების წერტილებს შორის გადატანა მხარდაჭერილი არაა"
-#: gio/glocalfile.c:2714
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "დისკზე %s-ის მიერ დაკავებული ადგილის გამოთვლის შეცდომა: %s"
-#: gio/glocalfileinfo.c:767
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
-msgstr ""
+msgstr "ატრიბუტის მნიშვნელობა ნულობანი არ უნდა იყოს"
-#: gio/glocalfileinfo.c:774
-msgid "Invalid attribute type (string expected)"
-msgstr ""
+#: gio/glocalfileinfo.c:772
+msgid "Invalid attribute type (string or invalid expected)"
+msgstr "ატრიბუტის არასწორი ტიპი (მოველოდი სტრიქონს ან არასწორს)"
-#: gio/glocalfileinfo.c:781
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "გაფართოებული ატრიბუტის არასწორი სახელი"
-#: gio/glocalfileinfo.c:821
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
-msgstr ""
+msgstr "გაფართოებული ატრიბუტის \"%s\" დაყენების შეცდომა: %s"
-#: gio/glocalfileinfo.c:1709 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (არასწორი კოდირება)"
-#: gio/glocalfileinfo.c:1868 gio/glocalfileoutputstream.c:943
-#: gio/glocalfileoutputstream.c:995
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
-msgstr ""
+msgstr "ფაილის \"%s\" შესახებ ინფორმაციის მიღების შეცდომა: %s"
-#: gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
-msgstr ""
+msgstr "შეცდომა ფაილის დესკრიპტორის შესახებ ინფორმაციის მიღებისას: %s"
-#: gio/glocalfileinfo.c:2179
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "ატრიბუტის არასწორი ტიპი (მოველოდი uint32-ს)"
-#: gio/glocalfileinfo.c:2197
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
-msgstr ""
+msgstr "ატრიბუტის არასწორი ტიპი (მოველოდი uint64-ს)"
-#: gio/glocalfileinfo.c:2216 gio/glocalfileinfo.c:2235
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
-msgstr ""
+msgstr "არასწორი ატრიბუტის ტიპი (მოველოდები ბაიტს ან სტრიქონს)"
-#: gio/glocalfileinfo.c:2282
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "სიმბმულებზე წვდომების დაყენების შეცდომა"
-#: gio/glocalfileinfo.c:2298
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "წვდომის დაყენების შეცდომა: %s"
-#: gio/glocalfileinfo.c:2349
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "მფლობლის დაყენების შეცდომა: %s"
-#: gio/glocalfileinfo.c:2372
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
-msgstr ""
+msgstr "სიმბმული არა-ნულოვანი უნდა იყოს"
-#: gio/glocalfileinfo.c:2382 gio/glocalfileinfo.c:2401
-#: gio/glocalfileinfo.c:2412
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "სიმბმულის დაყენების შეცდომა: %s"
-#: gio/glocalfileinfo.c:2391
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
-msgstr ""
+msgstr "სიმბმულის დაყენების შეცდომა: ფაილი სიმბმული არაა"
-#: gio/glocalfileinfo.c:2463
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
-#: gio/glocalfileinfo.c:2472
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
-#: gio/glocalfileinfo.c:2482
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr ""
-#: gio/glocalfileinfo.c:2493
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
-#: gio/glocalfileinfo.c:2570
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
-msgstr ""
+msgstr "ფაილის სახელის \"%s\" UTF-16-ში გადაყვანა შეუძლებელია"
-#: gio/glocalfileinfo.c:2589
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr ""
-#: gio/glocalfileinfo.c:2602
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "%s-ისთვის შეცვლის ან წვდომის დროის დაყენების შეცდომა: %lu"
-#: gio/glocalfileinfo.c:2703
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "ცვლილების ან წვდომის დროის დაყენების შეცდომა: %s"
-#: gio/glocalfileinfo.c:2726
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
-msgstr ""
+msgstr "SELinux-ის კონტექსტი ნულოვანი არ უნდა იყოს"
-#: gio/glocalfileinfo.c:2733
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
-msgstr ""
+msgstr "ამ სისტემაზე SELnux ჩართული არაა"
-#: gio/glocalfileinfo.c:2743
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "SELinux-ის კონტექსტის დაყენების შეცდომა: %s"
-#: gio/glocalfileinfo.c:2836
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "ატრიბუტის (%s) დაყენება მხარდაუჭერელია"
-#: gio/glocalfileinputstream.c:163 gio/glocalfileoutputstream.c:801
+#: gio/glocalfileinputstream.c:165 gio/glocalfileoutputstream.c:803
#, c-format
msgid "Error reading from file: %s"
-msgstr ""
+msgstr "ფაილიდან წაკითხვის შეცდომა: %s"
-#: gio/glocalfileinputstream.c:194 gio/glocalfileoutputstream.c:353
-#: gio/glocalfileoutputstream.c:447
+#: gio/glocalfileinputstream.c:196 gio/glocalfileoutputstream.c:355
+#: gio/glocalfileoutputstream.c:449
#, c-format
msgid "Error closing file: %s"
msgstr "ფაილის (%s) დახურვის შეცდომა"
-#: gio/glocalfileinputstream.c:272 gio/glocalfileoutputstream.c:563
-#: gio/glocalfileoutputstream.c:1186
+#: gio/glocalfileinputstream.c:274 gio/glocalfileoutputstream.c:565
+#: gio/glocalfileoutputstream.c:1188
#, c-format
msgid "Error seeking in file: %s"
-msgstr ""
+msgstr "ფაილის გადახვევის შეცდომა: %s"
-#: gio/glocalfilemonitor.c:879
+#: gio/glocalfilemonitor.c:882
msgid "Unable to find default local file monitor type"
-msgstr ""
+msgstr "ნაგულისხმევი ლოკალური ფაილის მონიტორის ტიპის აღმოჩენა შეუძლებელია"
-#: gio/glocalfileoutputstream.c:220 gio/glocalfileoutputstream.c:298
-#: gio/glocalfileoutputstream.c:334 gio/glocalfileoutputstream.c:822
+#: gio/glocalfileoutputstream.c:222 gio/glocalfileoutputstream.c:300
+#: gio/glocalfileoutputstream.c:336 gio/glocalfileoutputstream.c:824
#, c-format
msgid "Error writing to file: %s"
-msgstr ""
+msgstr "ფაილის ჩაწერის შეცდომა: %s"
-#: gio/glocalfileoutputstream.c:380
+#: gio/glocalfileoutputstream.c:382
#, c-format
msgid "Error removing old backup link: %s"
-msgstr ""
+msgstr "ძველი მარქაფის ბმულის წაშლის შეცდომა: %s"
-#: gio/glocalfileoutputstream.c:394 gio/glocalfileoutputstream.c:407
+#: gio/glocalfileoutputstream.c:396 gio/glocalfileoutputstream.c:409
#, c-format
msgid "Error creating backup copy: %s"
-msgstr ""
+msgstr "მარქაფის ასლის შექმნის შეცდომა: %s"
-#: gio/glocalfileoutputstream.c:425
+#: gio/glocalfileoutputstream.c:427
#, c-format
msgid "Error renaming temporary file: %s"
-msgstr ""
+msgstr "სახელის გადარქმევის შეცდომა დროებითი ფაილისთვის: %s"
-#: gio/glocalfileoutputstream.c:609 gio/glocalfileoutputstream.c:1239
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
-msgstr ""
+msgstr "ფაილის წაკვეთის შეცდომა: %s"
-#: gio/glocalfileoutputstream.c:662 gio/glocalfileoutputstream.c:907
-#: gio/glocalfileoutputstream.c:1220 gio/gsubprocess.c:229
+#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
-msgstr ""
+msgstr "ფაილის (\"%s\") გახსნის შეცდომა: %s"
-#: gio/glocalfileoutputstream.c:957
+#: gio/glocalfileoutputstream.c:959
msgid "Target file is a directory"
msgstr "სამიზნე ფაილი საქაღალდეა"
-#: gio/glocalfileoutputstream.c:971
+#: gio/glocalfileoutputstream.c:973
msgid "Target file is not a regular file"
msgstr "სამიზნე საქაღალდე ჩვეულებრივი არაა"
-#: gio/glocalfileoutputstream.c:1013
+#: gio/glocalfileoutputstream.c:1015
msgid "The file was externally modified"
msgstr "ფაილი გარედან შეიცვალა"
-#: gio/glocalfileoutputstream.c:1202
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
-msgstr ""
+msgstr "ძველი ფაილის წაშლის შეცდომა: %s"
-#: gio/gmemoryinputstream.c:474 gio/gmemoryoutputstream.c:762
+#: gio/gmemoryinputstream.c:476 gio/gmemoryoutputstream.c:764
msgid "Invalid GSeekType supplied"
-msgstr ""
+msgstr "მიწოდებული GSeekType არასწორია"
-#: gio/gmemoryinputstream.c:484
+#: gio/gmemoryinputstream.c:486
msgid "Invalid seek request"
msgstr "გადახვევის არასწორი მოთხოვნა"
-#: gio/gmemoryinputstream.c:508
+#: gio/gmemoryinputstream.c:510
msgid "Cannot truncate GMemoryInputStream"
-msgstr ""
+msgstr "GMemoryInputStream-ის წაკვეთა შეუძლებელია"
-#: gio/gmemoryoutputstream.c:568
+#: gio/gmemoryoutputstream.c:570
msgid "Memory output stream not resizable"
-msgstr ""
+msgstr "მეხსიერების გამოტანის ნაკადის ზომა შეცვლადი არაა"
-#: gio/gmemoryoutputstream.c:584
+#: gio/gmemoryoutputstream.c:586
msgid "Failed to resize memory output stream"
-msgstr ""
+msgstr "მეხსიერების გამოტანის ნაკადის ზომის შეცვლა ჩავარდა"
-#: gio/gmemoryoutputstream.c:663
+#: gio/gmemoryoutputstream.c:665
msgid ""
"Amount of memory required to process the write is larger than available "
"address space"
msgstr ""
-#: gio/gmemoryoutputstream.c:772
+#: gio/gmemoryoutputstream.c:774
msgid "Requested seek before the beginning of the stream"
msgstr ""
-#: gio/gmemoryoutputstream.c:787
+#: gio/gmemoryoutputstream.c:789
msgid "Requested seek beyond the end of the stream"
msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement unmount.
-#: gio/gmount.c:399
+#: gio/gmount.c:401
msgid "mount doesn’t implement “unmount”"
-msgstr ""
+msgstr "მიმაგრების წერტილს არ გააჩნია მხარდაჭერა ფუნქციის \"unmount\""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement eject.
-#: gio/gmount.c:475
+#: gio/gmount.c:477
msgid "mount doesn’t implement “eject”"
-msgstr ""
+msgstr "მიმაგრების წერტილს არ გააჩნია მხარდაჭერა ფუნქციის \"eject\""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of unmount or unmount_with_operation.
-#: gio/gmount.c:553
+#: gio/gmount.c:555
msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
msgstr ""
+"მიმაგრების წერტილს არ გააჩნია მხარდაჭერა ფუნქციის \"unmount\" ან "
+"\"unmount_with_operation\""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gmount.c:638
+#: gio/gmount.c:640
msgid "mount doesn’t implement “eject” or “eject_with_operation”"
msgstr ""
+"მიმაგრების წერტილს არ გააჩნია მხარდაჭერა ფუნქციის \"eject\" ან "
+"\"eject_with_operation\""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement remount.
-#: gio/gmount.c:726
+#: gio/gmount.c:728
msgid "mount doesn’t implement “remount”"
-msgstr ""
+msgstr "მიმაგრების წერტილს არ გააჩნია მხარდაჭერა ფუნქციის \"remount\""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:808
+#: gio/gmount.c:810
msgid "mount doesn’t implement content type guessing"
msgstr ""
+"მიმაგრების წერტილს შემცველობის ტიპის გამოცნობის ფუნქციის მხარდაჭერა არ "
+"გააჩნია"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:895
+#: gio/gmount.c:897
msgid "mount doesn’t implement synchronous content type guessing"
msgstr ""
+"მიმაგრების წერტილს სინქრონული შემცველობის ტიპის გამოცნობის ფუნქციის "
+"მხარდაჭერა არ გააჩნია"
-#: gio/gnetworkaddress.c:415
+#: gio/gnetworkaddress.c:417
#, c-format
msgid "Hostname “%s” contains “[” but not “]”"
-msgstr ""
+msgstr "ჰოსტის სახელი “%s” შეიცავს “[”-ს, მაგრამ არა “]”-ს"
-#: gio/gnetworkmonitorbase.c:219 gio/gnetworkmonitorbase.c:323
+#: gio/gnetworkmonitorbase.c:221 gio/gnetworkmonitorbase.c:325
msgid "Network unreachable"
msgstr "ქსელი მიუწვდომელია"
-#: gio/gnetworkmonitorbase.c:257 gio/gnetworkmonitorbase.c:287
+#: gio/gnetworkmonitorbase.c:259 gio/gnetworkmonitorbase.c:289
msgid "Host unreachable"
msgstr "ჰოსტი მიუწვდომელია"
-#: gio/gnetworkmonitornetlink.c:99 gio/gnetworkmonitornetlink.c:111
-#: gio/gnetworkmonitornetlink.c:130
+#: gio/gnetworkmonitornetlink.c:101 gio/gnetworkmonitornetlink.c:113
+#: gio/gnetworkmonitornetlink.c:132
#, c-format
msgid "Could not create network monitor: %s"
-msgstr ""
+msgstr "ქსელის მონიტორის შექმნა შეუძლებელია: %s"
-#: gio/gnetworkmonitornetlink.c:120
+#: gio/gnetworkmonitornetlink.c:122
msgid "Could not create network monitor: "
-msgstr ""
+msgstr "ქსელის მონიტორის შექმნა შეუძლებელია: "
-#: gio/gnetworkmonitornetlink.c:183
+#: gio/gnetworkmonitornetlink.c:185
msgid "Could not get network status: "
-msgstr ""
+msgstr "ქსელის მდგომარეობის მიღება შეუძლებელია: "
-#: gio/gnetworkmonitornm.c:311
+#: gio/gnetworkmonitornm.c:313
#, c-format
msgid "NetworkManager not running"
msgstr "NetworkManager-ი გაშვებული არაა"
-#: gio/gnetworkmonitornm.c:322
+#: gio/gnetworkmonitornm.c:324
#, c-format
msgid "NetworkManager version too old"
-msgstr ""
+msgstr "NetworkManager-ის ვერსია მეტისმეტად ძველია"
-#: gio/goutputstream.c:232 gio/goutputstream.c:775
+#: gio/goutputstream.c:234 gio/goutputstream.c:777
msgid "Output stream doesn’t implement write"
-msgstr ""
+msgstr "გამოტანის ნაკადს ჩაწერის ფუნქცია განხორციელებული არ აქვს"
-#: gio/goutputstream.c:472 gio/goutputstream.c:1533
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
-msgstr ""
+msgstr "%s-სთვის გადაცემული ვექტორების ჯამი მეტისმეტად დიდია"
-#: gio/goutputstream.c:736 gio/goutputstream.c:1761
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
-msgstr ""
+msgstr "შეყვანის ნაკადი უკვე დახურულია"
+
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
+msgid "Unspecified proxy lookup failure"
+msgstr "მიუთითებელი პროქსის მოძებნის შეცდომა"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:401 gio/gthreadedresolver.c:150 gio/gthreadedresolver.c:168
-#: gio/gthreadedresolver.c:780 gio/gthreadedresolver.c:804
-#: gio/gthreadedresolver.c:829 gio/gthreadedresolver.c:844
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
-msgstr ""
+msgstr "'%s'-ის ამოხსნის შეცდომა: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:470 gio/gresolver.c:630
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
-msgstr ""
+msgstr "%s განხორციელებული არაა"
-#: gio/gresolver.c:999 gio/gresolver.c:1051
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "დომენის არასწორი სახელი"
-#: gio/gresource.c:681 gio/gresource.c:943 gio/gresource.c:983
-#: gio/gresource.c:1107 gio/gresource.c:1179 gio/gresource.c:1253
-#: gio/gresource.c:1334 gio/gresourcefile.c:476 gio/gresourcefile.c:599
-#: gio/gresourcefile.c:736
+#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
+#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
-msgstr ""
+msgstr "რესურსი მისამართზე \"%s\" არ არსებობს"
-#: gio/gresource.c:848
+#: gio/gresource.c:850
#, c-format
msgid "The resource at “%s” failed to decompress"
-msgstr ""
+msgstr "რესურის, მისამართზე \"%s\", გაშლა ჩავარდა"
+
+#: gio/gresourcefile.c:663
+msgid "Resource files cannot be renamed"
+msgstr "რესურსის ფაილის სახელის გადარქმევა შეუძლებელია"
-#: gio/gresourcefile.c:732
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
-msgstr ""
+msgstr "რესურსი მისამართზე '%s' საქაღალდე არაა"
-#: gio/gresourcefile.c:940
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
-msgstr ""
+msgstr "შეყვანის ნაკადს გადახვევის ფუნქცია განხორციელებული არ აქვს"
-#: gio/gresource-tool.c:500
+#: gio/gresource-tool.c:502
msgid "List sections containing resources in an elf FILE"
msgstr ""
-#: gio/gresource-tool.c:506
+#: gio/gresource-tool.c:508
msgid ""
"List resources\n"
"If SECTION is given, only list resources in this section\n"
"If PATH is given, only list matching resources"
msgstr ""
-#: gio/gresource-tool.c:509 gio/gresource-tool.c:519
+#: gio/gresource-tool.c:511 gio/gresource-tool.c:521
msgid "FILE [PATH]"
-msgstr ""
+msgstr "ფაილი [ბილიკი]"
-#: gio/gresource-tool.c:510 gio/gresource-tool.c:520 gio/gresource-tool.c:527
+#: gio/gresource-tool.c:512 gio/gresource-tool.c:522 gio/gresource-tool.c:529
msgid "SECTION"
msgstr "სექცია"
-#: gio/gresource-tool.c:515
+#: gio/gresource-tool.c:517
msgid ""
"List resources with details\n"
"If SECTION is given, only list resources in this section\n"
@@ -3364,15 +3523,15 @@ msgid ""
"Details include the section, size and compression"
msgstr ""
-#: gio/gresource-tool.c:525
+#: gio/gresource-tool.c:527
msgid "Extract a resource file to stdout"
-msgstr ""
+msgstr "რესურსის ფაილის stdout-ზე გაშლა"
-#: gio/gresource-tool.c:526
+#: gio/gresource-tool.c:528
msgid "FILE PATH"
msgstr "ფაილის ბილიკი"
-#: gio/gresource-tool.c:540
+#: gio/gresource-tool.c:542
msgid ""
"Usage:\n"
" gresource [--section SECTION] COMMAND [ARGS…]\n"
@@ -3388,7 +3547,7 @@ msgid ""
"\n"
msgstr ""
-#: gio/gresource-tool.c:554
+#: gio/gresource-tool.c:556
#, c-format
msgid ""
"Usage:\n"
@@ -3397,159 +3556,166 @@ msgid ""
"%s\n"
"\n"
msgstr ""
+"გამოყენება:\n"
+" gresource %s%s%s %s\n"
+"\n"
+"%s\n"
+"\n"
-#: gio/gresource-tool.c:561
+#: gio/gresource-tool.c:563
msgid " SECTION An (optional) elf section name\n"
-msgstr ""
+msgstr " სექცია (არასავალდებულო) elf სექციის სახელი\n"
-#: gio/gresource-tool.c:565 gio/gsettings-tool.c:718
+#: gio/gresource-tool.c:567 gio/gsettings-tool.c:720
msgid " COMMAND The (optional) command to explain\n"
-msgstr ""
+msgstr " ბრძანება (არასავალდებულო) ასახსნელი ბრძანება\n"
-#: gio/gresource-tool.c:571
+#: gio/gresource-tool.c:573
msgid " FILE An elf file (a binary or a shared library)\n"
-msgstr ""
+msgstr " ფაილი elf ფაილი (გამშვები ან გაზიარებული ბიბლიოთეკა)\n"
-#: gio/gresource-tool.c:574
+#: gio/gresource-tool.c:576
msgid ""
" FILE An elf file (a binary or a shared library)\n"
" or a compiled resource file\n"
msgstr ""
+" ფაილი elf ფაილი (გამშვები ან გაზიარებული ბიბლიოთეკა)\n"
+" ან აგებული რესურსის ფაილი\n"
-#: gio/gresource-tool.c:578
+#: gio/gresource-tool.c:580
msgid "[PATH]"
msgstr "[ბილიკი]"
-#: gio/gresource-tool.c:580
+#: gio/gresource-tool.c:582
msgid " PATH An (optional) resource path (may be partial)\n"
msgstr ""
-#: gio/gresource-tool.c:581
+#: gio/gresource-tool.c:583
msgid "PATH"
msgstr "ბილიკი"
-#: gio/gresource-tool.c:583
+#: gio/gresource-tool.c:585
msgid " PATH A resource path\n"
-msgstr ""
+msgstr " ბილიკი რესურსის ბილიკი\n"
-#: gio/gsettings-tool.c:49 gio/gsettings-tool.c:70 gio/gsettings-tool.c:923
+#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:925
#, c-format
msgid "No such schema “%s”\n"
-msgstr ""
+msgstr "სქემა \"%s\" არ არსებობს\n"
-#: gio/gsettings-tool.c:55
+#: gio/gsettings-tool.c:57
#, c-format
msgid "Schema “%s” is not relocatable (path must not be specified)\n"
msgstr ""
-#: gio/gsettings-tool.c:76
+#: gio/gsettings-tool.c:78
#, c-format
msgid "Schema “%s” is relocatable (path must be specified)\n"
msgstr ""
-#: gio/gsettings-tool.c:90
+#: gio/gsettings-tool.c:92
msgid "Empty path given.\n"
-msgstr ""
+msgstr "მითითებული ბილიკი ცარიელია.\n"
-#: gio/gsettings-tool.c:96
+#: gio/gsettings-tool.c:98
msgid "Path must begin with a slash (/)\n"
-msgstr ""
+msgstr "ბილიკი დახრილი ხაზით (/) უნდა იწყებოდეს\n"
-#: gio/gsettings-tool.c:102
+#: gio/gsettings-tool.c:104
msgid "Path must end with a slash (/)\n"
-msgstr ""
+msgstr "ბილიკი დახრილი ხაზით (/) უნდა მთავრდებოდეს\n"
-#: gio/gsettings-tool.c:108
+#: gio/gsettings-tool.c:110
msgid "Path must not contain two adjacent slashes (//)\n"
-msgstr ""
+msgstr "ბილიკი ორ თანამიმდევრულ დახრილ ხაზს (//) უნდა შეიცავდეს\n"
-#: gio/gsettings-tool.c:553
+#: gio/gsettings-tool.c:555
msgid "The provided value is outside of the valid range\n"
-msgstr ""
+msgstr "მოწოდებული მნიშვნელობა სწორ დიაპაზონს გარეთაა\n"
-#: gio/gsettings-tool.c:560
+#: gio/gsettings-tool.c:562
msgid "The key is not writable\n"
-msgstr ""
+msgstr "გასაღები ჩაწერადი არაა\n"
-#: gio/gsettings-tool.c:596
+#: gio/gsettings-tool.c:598
msgid "List the installed (non-relocatable) schemas"
-msgstr ""
+msgstr "დაყენებული (არაგადაადგილებადი) სქემების სია"
-#: gio/gsettings-tool.c:602
+#: gio/gsettings-tool.c:604
msgid "List the installed relocatable schemas"
-msgstr ""
+msgstr "დაყენებული გადაადგილებადი სქემების სია"
-#: gio/gsettings-tool.c:608
+#: gio/gsettings-tool.c:610
msgid "List the keys in SCHEMA"
-msgstr ""
+msgstr "მითითებული სქემის გასაღებების სია"
-#: gio/gsettings-tool.c:609 gio/gsettings-tool.c:615 gio/gsettings-tool.c:658
+#: gio/gsettings-tool.c:611 gio/gsettings-tool.c:617 gio/gsettings-tool.c:660
msgid "SCHEMA[:PATH]"
-msgstr ""
+msgstr "სქემა[:ბილიკი]"
-#: gio/gsettings-tool.c:614
+#: gio/gsettings-tool.c:616
msgid "List the children of SCHEMA"
-msgstr ""
+msgstr "მითითებული სქემის შვილების სია"
-#: gio/gsettings-tool.c:620
+#: gio/gsettings-tool.c:622
msgid ""
"List keys and values, recursively\n"
"If no SCHEMA is given, list all keys\n"
msgstr ""
-#: gio/gsettings-tool.c:622
+#: gio/gsettings-tool.c:624
msgid "[SCHEMA[:PATH]]"
-msgstr ""
+msgstr "[სქემა[:ბილიკი]]"
-#: gio/gsettings-tool.c:627
+#: gio/gsettings-tool.c:629
msgid "Get the value of KEY"
-msgstr ""
+msgstr "მითითებული გასაღების მნიშვნელობის მიღება"
-#: gio/gsettings-tool.c:628 gio/gsettings-tool.c:634 gio/gsettings-tool.c:640
-#: gio/gsettings-tool.c:652 gio/gsettings-tool.c:664
+#: gio/gsettings-tool.c:630 gio/gsettings-tool.c:636 gio/gsettings-tool.c:642
+#: gio/gsettings-tool.c:654 gio/gsettings-tool.c:666
msgid "SCHEMA[:PATH] KEY"
-msgstr ""
+msgstr "სქემა[:ბილიკი] გასაღები"
-#: gio/gsettings-tool.c:633
+#: gio/gsettings-tool.c:635
msgid "Query the range of valid values for KEY"
msgstr ""
-#: gio/gsettings-tool.c:639
+#: gio/gsettings-tool.c:641
msgid "Query the description for KEY"
-msgstr ""
+msgstr "მითითებული გასაღების აღწერის გამოთხოვა"
-#: gio/gsettings-tool.c:645
+#: gio/gsettings-tool.c:647
msgid "Set the value of KEY to VALUE"
-msgstr ""
+msgstr "მითითებული გასაღების მნიშვნელობის მითითებულ მნიშვნელობაზე დაყენება"
-#: gio/gsettings-tool.c:646
+#: gio/gsettings-tool.c:648
msgid "SCHEMA[:PATH] KEY VALUE"
-msgstr ""
+msgstr "სქემა[:ბილიკი] გასაღები მნიშვნელობა"
-#: gio/gsettings-tool.c:651
+#: gio/gsettings-tool.c:653
msgid "Reset KEY to its default value"
-msgstr ""
+msgstr "მითითებული გასაღების ნაგულისხმევ მნიშვნელობაზე დაბრუნება"
-#: gio/gsettings-tool.c:657
+#: gio/gsettings-tool.c:659
msgid "Reset all keys in SCHEMA to their defaults"
-msgstr ""
+msgstr "მითითებული სქემის ყველა გასაღების ნაგულისხმევ მნიშვნელობაზე დაბრუნება"
-#: gio/gsettings-tool.c:663
+#: gio/gsettings-tool.c:665
msgid "Check if KEY is writable"
-msgstr ""
+msgstr "გასაღების ჩაწერადობის შემოწმება"
-#: gio/gsettings-tool.c:669
+#: gio/gsettings-tool.c:671
msgid ""
"Monitor KEY for changes.\n"
"If no KEY is specified, monitor all keys in SCHEMA.\n"
"Use ^C to stop monitoring.\n"
msgstr ""
-#: gio/gsettings-tool.c:672
+#: gio/gsettings-tool.c:674
msgid "SCHEMA[:PATH] [KEY]"
-msgstr ""
+msgstr "სქემა[:ბილიკი] [გასაღები]"
-#: gio/gsettings-tool.c:684
+#: gio/gsettings-tool.c:686
msgid ""
"Usage:\n"
" gsettings --version\n"
@@ -3575,7 +3741,7 @@ msgid ""
"\n"
msgstr ""
-#: gio/gsettings-tool.c:708
+#: gio/gsettings-tool.c:710
#, c-format
msgid ""
"Usage:\n"
@@ -3585,428 +3751,432 @@ msgid ""
"\n"
msgstr ""
-#: gio/gsettings-tool.c:714
+#: gio/gsettings-tool.c:716
msgid " SCHEMADIR A directory to search for additional schemas\n"
msgstr ""
-#: gio/gsettings-tool.c:722
+#: gio/gsettings-tool.c:724
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
msgstr ""
-#: gio/gsettings-tool.c:727
+#: gio/gsettings-tool.c:729
msgid " KEY The (optional) key within the schema\n"
msgstr ""
-#: gio/gsettings-tool.c:731
+#: gio/gsettings-tool.c:733
msgid " KEY The key within the schema\n"
-msgstr ""
+msgstr " გასაღები გასაღები სქემაშ\n"
-#: gio/gsettings-tool.c:735
+#: gio/gsettings-tool.c:737
msgid " VALUE The value to set\n"
-msgstr ""
+msgstr " მნისვნელობა დასაყენებელი მნიშვნელობა\n"
-#: gio/gsettings-tool.c:790
+#: gio/gsettings-tool.c:792
#, c-format
msgid "Could not load schemas from %s: %s\n"
msgstr "%s-დან სქემების ჩატვირთვის შეცდომა: %s\n"
-#: gio/gsettings-tool.c:802
+#: gio/gsettings-tool.c:804
msgid "No schemas installed\n"
-msgstr ""
+msgstr "სქემები დაყენებული არაა\n"
-#: gio/gsettings-tool.c:881
+#: gio/gsettings-tool.c:883
msgid "Empty schema name given\n"
-msgstr ""
+msgstr "მიწოდებული სქემის სახელი ცარიელია\n"
-#: gio/gsettings-tool.c:936
+#: gio/gsettings-tool.c:938
#, c-format
msgid "No such key “%s”\n"
-msgstr ""
+msgstr "ასეთი გასაღები \"%s\" არ არსებობს\n"
-#: gio/gsocket.c:417
+#: gio/gsocket.c:419
msgid "Invalid socket, not initialized"
-msgstr ""
+msgstr "სოკეტი არასწორია. ინიციალიზებული არაა"
-#: gio/gsocket.c:424
+#: gio/gsocket.c:426
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
-msgstr ""
+msgstr "სოკეტი არასწორია. ინიციალიზაცია ჩავარდა მიზეზით: %s"
-#: gio/gsocket.c:432
+#: gio/gsocket.c:434
msgid "Socket is already closed"
-msgstr ""
+msgstr "სოკეტი უკვე დახურულია"
-#: gio/gsocket.c:447 gio/gsocket.c:3194 gio/gsocket.c:4427 gio/gsocket.c:4485
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1445
msgid "Socket I/O timed out"
msgstr "სოკეტის I/O ვადა გავიდა"
-#: gio/gsocket.c:582
+#: gio/gsocket.c:586
#, c-format
msgid "creating GSocket from fd: %s"
-msgstr ""
+msgstr "იქმნება GSocket fd-დან: %s"
-#: gio/gsocket.c:611 gio/gsocket.c:675 gio/gsocket.c:682
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "სოკეტის შექმნის შეცდომა: %s"
-#: gio/gsocket.c:675
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
-msgstr ""
+msgstr "მითითებული ოჯახი უცნობია"
-#: gio/gsocket.c:682
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
-msgstr ""
+msgstr "მითითებული პროტოკოლი უცნობია"
-#: gio/gsocket.c:1173
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr ""
-#: gio/gsocket.c:1190
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
-#: gio/gsocket.c:1997
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
-msgstr ""
+msgstr "ლოკალური მისამართის მიღება შეუძლებელია: %s"
-#: gio/gsocket.c:2043
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
-msgstr ""
+msgstr "დაშორებული მისამართის მიღება შეუძლებელია: %s"
-#: gio/gsocket.c:2109
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
-msgstr ""
+msgstr "მოსმენა შეუძლებელია: %s"
-#: gio/gsocket.c:2213
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
-msgstr ""
+msgstr "მისამართზე '%s' მიბმის შეცდომა: %s"
-#: gio/gsocket.c:2389 gio/gsocket.c:2426 gio/gsocket.c:2536 gio/gsocket.c:2561
-#: gio/gsocket.c:2624 gio/gsocket.c:2682 gio/gsocket.c:2700
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
-msgstr ""
+msgstr "შეცდომა multicast ჯგუფში გაწევრებისას: %s"
-#: gio/gsocket.c:2390 gio/gsocket.c:2427 gio/gsocket.c:2537 gio/gsocket.c:2562
-#: gio/gsocket.c:2625 gio/gsocket.c:2683 gio/gsocket.c:2701
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
-msgstr ""
+msgstr "შეცდომა multicast ჯგუფის დატოვებისას: %s"
-#: gio/gsocket.c:2391
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
-msgstr ""
+msgstr "წყაროზე-დამოკიდებული multicast-ის მხარდაჭერა არ არსებბობს"
-#: gio/gsocket.c:2538
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
-msgstr ""
+msgstr "სოკეტის მხარდაუჭერელი ოჯახი"
-#: gio/gsocket.c:2563
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
-msgstr ""
+msgstr "წყაროზე-დამოკიდებული IPv4 მისამართი არაა"
-#: gio/gsocket.c:2587
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
-msgstr ""
+msgstr "ინტერფეისის სახელი მეტისმეტად გრძელია"
-#: gio/gsocket.c:2600 gio/gsocket.c:2650
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
-msgstr ""
+msgstr "ინტერფეისი ვერ ვიპოვე: %s"
-#: gio/gsocket.c:2626
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr ""
-#: gio/gsocket.c:2684
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr ""
-#: gio/gsocket.c:2893
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "შეერთების მიღების შეცდომა: %s"
-#: gio/gsocket.c:3019
+#: gio/gsocket.c:3063
msgid "Connection in progress"
-msgstr ""
+msgstr "მიმდინარეობს მიერთება"
-#: gio/gsocket.c:3070
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "დარჩენილი შეცდომის მიღება შეუძლებელია: "
-#: gio/gsocket.c:3259
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
-msgstr ""
+msgstr "მონაცემები მიღების შეცდომა: %s"
-#: gio/gsocket.c:3456
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
-msgstr ""
+msgstr "მონაცემების გაგზავნის შეცდომა: %s"
-#: gio/gsocket.c:3643
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "სოკეტის გამორთვის შეცდომა: %s"
-#: gio/gsocket.c:3724
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
-msgstr ""
+msgstr "სოკეტის დახურვის შეცდომა: %s"
-#: gio/gsocket.c:4420
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
-msgstr ""
+msgstr "ველოდები სოკეტის მდგომარეობას: %s"
-#: gio/gsocket.c:4810 gio/gsocket.c:4826 gio/gsocket.c:4839
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "შეუძლებელია შეტყობინების გაგზავნა: %s"
-#: gio/gsocket.c:4811 gio/gsocket.c:4827 gio/gsocket.c:4840
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
-msgstr ""
+msgstr "შეტყობინების ვექტორები მეტისმეტად დიდია"
-#: gio/gsocket.c:4856 gio/gsocket.c:4858 gio/gsocket.c:5005 gio/gsocket.c:5090
-#: gio/gsocket.c:5268 gio/gsocket.c:5308 gio/gsocket.c:5310
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
-msgstr ""
+msgstr "შეტყობინების გაგზავნის შეცდომა: %s"
-#: gio/gsocket.c:5032
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr ""
-#: gio/gsocket.c:5505 gio/gsocket.c:5581 gio/gsocket.c:5807
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
-msgstr ""
+msgstr "შეტყობინების მიღების შეცდომა: %s"
-#: gio/gsocket.c:6092 gio/gsocket.c:6103 gio/gsocket.c:6166
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "სოკეტის მომხმარებლის/პაროლის წაკითხვის შეცდომა: %s"
-#: gio/gsocket.c:6175
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr ""
-#: gio/gsocketclient.c:191
+#: gio/gsocketclient.c:193
#, c-format
msgid "Could not connect to proxy server %s: "
-msgstr ""
+msgstr "პროქსი სერვერთან (%s) დაკავშირების შეცდომა: "
-#: gio/gsocketclient.c:205
+#: gio/gsocketclient.c:207
#, c-format
msgid "Could not connect to %s: "
msgstr "%s-სთან მიერთების შეცდომა: "
-#: gio/gsocketclient.c:207
+#: gio/gsocketclient.c:209
msgid "Could not connect: "
-msgstr ""
+msgstr "მიერთების პრობლემა: "
-#: gio/gsocketclient.c:1202 gio/gsocketclient.c:1805
+#: gio/gsocketclient.c:1204 gio/gsocketclient.c:1807
msgid "Proxying over a non-TCP connection is not supported."
msgstr "არა-TCP შეერთების ზემოდან პროქსი მხარდაუჭერელია."
-#: gio/gsocketclient.c:1234 gio/gsocketclient.c:1834
+#: gio/gsocketclient.c:1236 gio/gsocketclient.c:1836
#, c-format
msgid "Proxy protocol “%s” is not supported."
msgstr "პროქსი პროტოკოლი \"%s\" მხარდაუჭერელია."
-#: gio/gsocketlistener.c:230
+#: gio/gsocketlistener.c:232
msgid "Listener is already closed"
-msgstr ""
+msgstr "მსმენელი უკვე დახურულია"
-#: gio/gsocketlistener.c:276
+#: gio/gsocketlistener.c:278
msgid "Added socket is closed"
-msgstr ""
+msgstr "დამატებული სოკეტი დახურულია"
-#: gio/gsocks4aproxy.c:118
+#: gio/gsocks4aproxy.c:120
#, c-format
msgid "SOCKSv4 does not support IPv6 address “%s”"
-msgstr ""
+msgstr "SOCKSv4-ს არ აქვს მხარდაჭერა IPv6 მისამართისთვის “%s”"
-#: gio/gsocks4aproxy.c:136
+#: gio/gsocks4aproxy.c:138
msgid "Username is too long for SOCKSv4 protocol"
-msgstr ""
+msgstr "SOCKSv4 პროტოკოლისთვის მომხმარებლის სახელი ძალიან გრძელია"
-#: gio/gsocks4aproxy.c:153
+#: gio/gsocks4aproxy.c:155
#, c-format
msgid "Hostname “%s” is too long for SOCKSv4 protocol"
-msgstr ""
+msgstr "SOCKSv4 პროტოკოლისთვის ჰოსტის სახელი '%s' მეტისმეტად გრძელია"
-#: gio/gsocks4aproxy.c:179
+#: gio/gsocks4aproxy.c:181
msgid "The server is not a SOCKSv4 proxy server."
-msgstr ""
+msgstr "სერვერი SOCKSv4 პროქსი სერვერი არაა."
-#: gio/gsocks4aproxy.c:186
+#: gio/gsocks4aproxy.c:188
msgid "Connection through SOCKSv4 server was rejected"
-msgstr ""
+msgstr "შეერთება SOCKSv4 სერვერის გავლით უარყოფილია"
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:338 gio/gsocks5proxy.c:348
+#: gio/gsocks5proxy.c:155 gio/gsocks5proxy.c:340 gio/gsocks5proxy.c:350
msgid "The server is not a SOCKSv5 proxy server."
-msgstr ""
+msgstr "სერვერი SOCKSv5 პროქსი სერვერი არაა."
-#: gio/gsocks5proxy.c:167 gio/gsocks5proxy.c:184
+#: gio/gsocks5proxy.c:169 gio/gsocks5proxy.c:186
msgid "The SOCKSv5 proxy requires authentication."
-msgstr ""
+msgstr "SOCKSv5 პროქსის ავთენტიკაციას მოითხოვს."
-#: gio/gsocks5proxy.c:191
+#: gio/gsocks5proxy.c:193
msgid ""
"The SOCKSv5 proxy requires an authentication method that is not supported by "
"GLib."
msgstr ""
+"SOCKSv5 პროქსი მოითხოვს ავთენტიკაციის მეთოდს, რომელიც GLib-ის მიერ "
+"მხარდაჭერილი არაა."
-#: gio/gsocks5proxy.c:220
+#: gio/gsocks5proxy.c:222
msgid "Username or password is too long for SOCKSv5 protocol."
-msgstr ""
+msgstr "SOCKSv5 პროტოკოლისთვის მომხმარებლის სახელი ან პაროლი ძალიან გრძელია."
-#: gio/gsocks5proxy.c:250
+#: gio/gsocks5proxy.c:252
msgid "SOCKSv5 authentication failed due to wrong username or password."
msgstr ""
+"SOCKSv5 ავთენტიკაცია ჩავარდა, რადგან მომხმარებლის სახელი ან პაროლი არასწორია."
-#: gio/gsocks5proxy.c:300
+#: gio/gsocks5proxy.c:302
#, c-format
msgid "Hostname “%s” is too long for SOCKSv5 protocol"
-msgstr ""
+msgstr "SOCKSv5 პროტოკოლისთვის ჰოსტის სახელი '%s' მეტისმეტად გრძელია"
-#: gio/gsocks5proxy.c:362
+#: gio/gsocks5proxy.c:364
msgid "The SOCKSv5 proxy server uses unknown address type."
-msgstr ""
+msgstr "SOCKSv5 პროქსი სერვერი უცნობი მისამართის ტიპს იყენებს."
-#: gio/gsocks5proxy.c:369
+#: gio/gsocks5proxy.c:371
msgid "Internal SOCKSv5 proxy server error."
-msgstr ""
+msgstr "შიდა SOCKSv5 პროქსის შეცდომა."
-#: gio/gsocks5proxy.c:375
+#: gio/gsocks5proxy.c:377
msgid "SOCKSv5 connection not allowed by ruleset."
-msgstr ""
+msgstr "SOCKSv5 მიერთება დაუშვებელია წესების მიერ."
-#: gio/gsocks5proxy.c:382
+#: gio/gsocks5proxy.c:384
msgid "Host unreachable through SOCKSv5 server."
-msgstr ""
+msgstr "SOCKSv5 სერვერის გავლით ჰოსტი მიუწვდომელია."
-#: gio/gsocks5proxy.c:388
+#: gio/gsocks5proxy.c:390
msgid "Network unreachable through SOCKSv5 proxy."
-msgstr ""
+msgstr "SOCKSv5 სერვერის გავლით ქსელი ხელმიუწვდომელია."
-#: gio/gsocks5proxy.c:394
+#: gio/gsocks5proxy.c:396
msgid "Connection refused through SOCKSv5 proxy."
-msgstr ""
+msgstr "SOCKSv5 პროქსის გავლით მიერთება უარყოფილია."
-#: gio/gsocks5proxy.c:400
+#: gio/gsocks5proxy.c:402
msgid "SOCKSv5 proxy does not support “connect” command."
-msgstr ""
+msgstr "SOCKSv5 პროქსის ბრძანება \"connect\"-ის მხარდაჭერა არ გააჩნია."
-#: gio/gsocks5proxy.c:406
+#: gio/gsocks5proxy.c:408
msgid "SOCKSv5 proxy does not support provided address type."
-msgstr ""
+msgstr "SOCKSv5 პროქსის მითითებული მისამართის ტიპის მხარდაჭერა არ გააჩნია."
-#: gio/gsocks5proxy.c:412
+#: gio/gsocks5proxy.c:414
msgid "Unknown SOCKSv5 proxy error."
-msgstr ""
+msgstr "უცნობი SOCKSv5 პროქსის შეცდომა."
-#: gio/gtestdbus.c:612 glib/gspawn-win32.c:314
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "არხის შექმნა ქვეპროცესთან დასაკავშირებლად ვერ მოხერხდა (%s)"
-#: gio/gtestdbus.c:619
+#: gio/gtestdbus.c:621
#, c-format
msgid "Pipes are not supported in this platform"
-msgstr ""
+msgstr "ამ პლატფორმაზე ფაიფები მხარდაჭერილი არაა"
-#: gio/gthemedicon.c:595
+#: gio/gthemedicon.c:597
#, c-format
msgid "Can’t handle version %d of GThemedIcon encoding"
-msgstr ""
+msgstr "GThemedIcon-ის კოდირების %d ვერსია უცნობია"
-#: gio/gthreadedresolver.c:152
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
-msgstr ""
+msgstr "სწორი მისამართები ვერ ვიპოვე"
-#: gio/gthreadedresolver.c:337
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
-msgstr ""
+msgstr "\"%s\"-ის უკუამოხსნის შეცდომა: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:550 gio/gthreadedresolver.c:572
-#: gio/gthreadedresolver.c:610 gio/gthreadedresolver.c:657
-#: gio/gthreadedresolver.c:686 gio/gthreadedresolver.c:698
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
-msgstr ""
+msgstr "DNS %s ჩანაწერის დამუშავება ჩავარდა: DNS პაკეტი შეცდომებს შეიცავს"
-#: gio/gthreadedresolver.c:756 gio/gthreadedresolver.c:893
-#: gio/gthreadedresolver.c:991 gio/gthreadedresolver.c:1041
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr ""
-#: gio/gthreadedresolver.c:761 gio/gthreadedresolver.c:996
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
-msgstr ""
+msgstr "დროებით \"%s\" ვერ ამოვხსენი"
-#: gio/gthreadedresolver.c:766 gio/gthreadedresolver.c:1001
-#: gio/gthreadedresolver.c:1111
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
-msgstr ""
+msgstr "'%s'-ის ამოხსნის შეცდომა"
-#: gio/gthreadedresolver.c:780 gio/gthreadedresolver.c:804
-#: gio/gthreadedresolver.c:829 gio/gthreadedresolver.c:844
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "არასწორი DNS პაკეტი"
-#: gio/gthreadedresolver.c:886
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
-msgstr ""
+msgstr "\"%s\"-სთვის DNS პასუხის დამუშავება ჩავარდა: "
-#: gio/gtlscertificate.c:478
+#: gio/gtlscertificate.c:480
msgid "No PEM-encoded private key found"
msgstr ""
-#: gio/gtlscertificate.c:488
+#: gio/gtlscertificate.c:490
msgid "Cannot decrypt PEM-encoded private key"
msgstr ""
-#: gio/gtlscertificate.c:499
+#: gio/gtlscertificate.c:501
msgid "Could not parse PEM-encoded private key"
msgstr ""
-#: gio/gtlscertificate.c:526
+#: gio/gtlscertificate.c:528
msgid "No PEM-encoded certificate found"
msgstr ""
-#: gio/gtlscertificate.c:535
+#: gio/gtlscertificate.c:537
msgid "Could not parse PEM-encoded certificate"
msgstr ""
-#: gio/gtlscertificate.c:796
+#: gio/gtlscertificate.c:800
msgid "The current TLS backend does not support PKCS #12"
msgstr ""
-#: gio/gtlscertificate.c:1013
+#: gio/gtlscertificate.c:1017
msgid "This GTlsBackend does not support creating PKCS #11 certificates"
msgstr ""
-#: gio/gtlspassword.c:111
+#: gio/gtlspassword.c:113
msgid ""
"This is the last chance to enter the password correctly before your access "
"is locked out."
@@ -4014,141 +4184,139 @@ msgstr ""
#. Translators: This is not the 'This is the last chance' string. It is
#. * displayed when more than one attempt is allowed.
-#: gio/gtlspassword.c:115
+#: gio/gtlspassword.c:117
msgid ""
"Several passwords entered have been incorrect, and your access will be "
"locked out after further failures."
msgstr ""
-#: gio/gtlspassword.c:117
+#: gio/gtlspassword.c:119
msgid "The password entered is incorrect."
-msgstr ""
+msgstr "შეყვანილი პაროლი არასწორია."
-#: gio/gunixconnection.c:125
+#: gio/gunixconnection.c:127
msgid "Sending FD is not supported"
msgstr "FD-ის გაგზავნა მხარდაუჭერელია"
-#: gio/gunixconnection.c:178 gio/gunixconnection.c:596
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] ""
-msgstr[1] ""
-#: gio/gunixconnection.c:194 gio/gunixconnection.c:608
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr ""
-#: gio/gunixconnection.c:212
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "მოველოდი ერთ fd-ს, მივიღე %d\n"
-#: gio/gunixconnection.c:231
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
-msgstr ""
+msgstr "მიღებულია არასწორი fd"
-#: gio/gunixconnection.c:238
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "FD-ის მიღება მხარდაუჭერელია"
-#: gio/gunixconnection.c:380
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
-msgstr ""
+msgstr "შეცდომა ავტორიზაციის დეტალების გაგზავნისას: "
-#: gio/gunixconnection.c:537
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr ""
-#: gio/gunixconnection.c:553
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr ""
-#: gio/gunixconnection.c:582
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
-#: gio/gunixconnection.c:622
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr ""
-#: gio/gunixconnection.c:647
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr ""
-#: gio/gunixinputstream.c:357 gio/gunixinputstream.c:378
+#: gio/gunixinputstream.c:359 gio/gunixinputstream.c:380
#, c-format
msgid "Error reading from file descriptor: %s"
-msgstr ""
+msgstr "შეცდომა ფაილის დესკრიპტორიდან კითხვისას: %s"
-#: gio/gunixinputstream.c:411 gio/gunixoutputstream.c:520
-#: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
+#: gio/gunixinputstream.c:413 gio/gunixoutputstream.c:522
+#: gio/gwin32inputstream.c:219 gio/gwin32outputstream.c:206
#, c-format
msgid "Error closing file descriptor: %s"
-msgstr ""
+msgstr "შეცდომა ფაილის დესკრიპტორის დახურვისას: %s"
-#: gio/gunixmounts.c:2809 gio/gunixmounts.c:2862
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "ფაილური სისტემის საწყისი საქაღალდე"
-#: gio/gunixoutputstream.c:357 gio/gunixoutputstream.c:377
-#: gio/gunixoutputstream.c:464 gio/gunixoutputstream.c:484
-#: gio/gunixoutputstream.c:630
+#: gio/gunixoutputstream.c:359 gio/gunixoutputstream.c:379
+#: gio/gunixoutputstream.c:466 gio/gunixoutputstream.c:486
+#: gio/gunixoutputstream.c:632
#, c-format
msgid "Error writing to file descriptor: %s"
-msgstr ""
+msgstr "შეცდომა ფაილის დესკრიპტორში ჩაწერისას: %s"
-#: gio/gunixsocketaddress.c:251
+#: gio/gunixsocketaddress.c:253
msgid "Abstract UNIX domain socket addresses not supported on this system"
msgstr ""
-#: gio/gvolume.c:438
+#: gio/gvolume.c:440
msgid "volume doesn’t implement eject"
-msgstr ""
+msgstr "ტომს გამოღების ფუნქცია არ გააჩნია"
#. Translators: This is an error
#. * message for volume objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gvolume.c:515
+#: gio/gvolume.c:517
msgid "volume doesn’t implement eject or eject_with_operation"
msgstr ""
-#: gio/gwin32inputstream.c:185
+#: gio/gwin32inputstream.c:187
#, c-format
msgid "Error reading from handle: %s"
-msgstr ""
+msgstr "დამმუშავებლიდან წაკითხვის შეცდომა: %s"
-#: gio/gwin32inputstream.c:232 gio/gwin32outputstream.c:219
+#: gio/gwin32inputstream.c:234 gio/gwin32outputstream.c:221
#, c-format
msgid "Error closing handle: %s"
-msgstr ""
+msgstr "დამმუშავებლის დახურვის შეცდომა: %s"
-#: gio/gwin32outputstream.c:172
+#: gio/gwin32outputstream.c:174
#, c-format
msgid "Error writing to handle: %s"
-msgstr ""
+msgstr "დამმუშავებელში ჩაწერის შეცდომა: %s"
-#: gio/gzlibcompressor.c:394 gio/gzlibdecompressor.c:347
+#: gio/gzlibcompressor.c:396 gio/gzlibdecompressor.c:349
msgid "Not enough memory"
msgstr "მეხსიერება საკმარისი არ არის"
-#: gio/gzlibcompressor.c:401 gio/gzlibdecompressor.c:354
+#: gio/gzlibcompressor.c:403 gio/gzlibdecompressor.c:356
#, c-format
msgid "Internal error: %s"
msgstr "შიდა შეცდომა: %s"
-#: gio/gzlibcompressor.c:414 gio/gzlibdecompressor.c:368
+#: gio/gzlibcompressor.c:416 gio/gzlibdecompressor.c:370
msgid "Need more input"
msgstr "საჭიროა მეტი შეტანა"
-#: gio/gzlibdecompressor.c:340
+#: gio/gzlibdecompressor.c:342
msgid "Invalid compressed data"
msgstr "არასწორი შეკუმშული მონაცემები"
@@ -4166,7 +4334,7 @@ msgstr "მისამართის დაბეჭდვა"
#: gio/tests/gdbus-daemon.c:21
msgid "Print address in shell mode"
-msgstr ""
+msgstr "მისამართის დაბეჭდვა გარსის რეჟიმში"
#: gio/tests/gdbus-daemon.c:28
msgid "Run a dbus service"
@@ -4176,156 +4344,149 @@ msgstr "D-Bus სერვისის გაშვება"
msgid "Wrong args\n"
msgstr "არასწორი არგუმენტები\n"
-#: glib/gbookmarkfile.c:777
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "მოულოდნელი ატრიბუტი '%s' ელემენტ '%s'-თვის"
-#: glib/gbookmarkfile.c:788 glib/gbookmarkfile.c:868 glib/gbookmarkfile.c:878
-#: glib/gbookmarkfile.c:991
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "ატრიბუტი'%s' ელემენტისთვის '%s' ვერ მოიძებნა"
-#: glib/gbookmarkfile.c:1200 glib/gbookmarkfile.c:1265
-#: glib/gbookmarkfile.c:1329 glib/gbookmarkfile.c:1339
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "უცნობი ჭდე '%s', მოსალოდნელი იყო '%s'"
-#: glib/gbookmarkfile.c:1225 glib/gbookmarkfile.c:1239
-#: glib/gbookmarkfile.c:1307 glib/gbookmarkfile.c:1353
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "უცნობი ჭდე '%s' - '%s'-ში"
-#: glib/gbookmarkfile.c:1633
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr ""
-#: glib/gbookmarkfile.c:1836
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "მონაცემთა დასტებში მართებული საკვანძო ფაილი ვერ მოიძებნა"
-#: glib/gbookmarkfile.c:2037
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "სანიშნე URI-სთვის '%s' უკვე არსებობს"
-#: glib/gbookmarkfile.c:2086 glib/gbookmarkfile.c:2244
-#: glib/gbookmarkfile.c:2329 glib/gbookmarkfile.c:2409
-#: glib/gbookmarkfile.c:2494 glib/gbookmarkfile.c:2628
-#: glib/gbookmarkfile.c:2761 glib/gbookmarkfile.c:2896
-#: glib/gbookmarkfile.c:2938 glib/gbookmarkfile.c:3035
-#: glib/gbookmarkfile.c:3156 glib/gbookmarkfile.c:3350
-#: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3710
-#: glib/gbookmarkfile.c:3799 glib/gbookmarkfile.c:3888
-#: glib/gbookmarkfile.c:4007
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "URI '%s'-თვის სანიშნე ვერ მოიძებნა"
-#: glib/gbookmarkfile.c:2418
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "URI '%s' სანიშნეში MIME ტიპი მითითებული არაა"
-#: glib/gbookmarkfile.c:2503
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "URI '%s' სანიშნეში პირადი ალამი არ მითითებულა"
-#: glib/gbookmarkfile.c:3044
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "URI '%s' სანიშნეში ჯგუფები დაყენებული არაა"
-#: glib/gbookmarkfile.c:3512 glib/gbookmarkfile.c:3720
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "პროგრამას სახელით \"%s\" სანიშნე \"%s\" არ დაურეგისტრირებია"
-#: glib/gbookmarkfile.c:3743
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr ""
-#: glib/gconvert.c:468
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr ""
-#: glib/gconvert.c:495 glib/gutf8.c:886 glib/gutf8.c:1099 glib/gutf8.c:1236
-#: glib/gutf8.c:1340
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "არასრული სიმბოლო შეტანის ტექსტის ბოლოს"
-#: glib/gconvert.c:764
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "ვერ ხერხდება \"%s\" სიმბოლოს გარდაქმნა კოდირებაში \"%s\""
-#: glib/gconvert.c:936
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "გადაყვანისას შეყვანაში ჩაშენებული NUL ბაიტი"
-#: glib/gconvert.c:957
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "გადაყვანისას გამოტანაში ჩაშენებული NUL ბაიტი"
-#: glib/gconvert.c:1688
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr ""
"URI \"%s\" არ გახლავთ აბსოლუტური იდენტიფიკატორი \"file\" სქემის გამოყენებისას"
-#: glib/gconvert.c:1698
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr ""
-"ლოკალური ფაილის URI იდენტიფიკატორი \"%s\" არ შეიძლება შეიცავდეს სიმბოლოს "
-"\"#\""
-
-#: glib/gconvert.c:1715
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "URI იდენტიფიკატორი \"%s\" მცდარია"
-#: glib/gconvert.c:1727
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "URI იდენტიფიკატორის \"%s\" ჰოსტის სახელი მცდარია"
-#: glib/gconvert.c:1743
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "URI იდენტიფიკატორი \"%s\" შეიცავ მცდარ საკონტროლო სიმბოლოებს"
-#: glib/gconvert.c:1815
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "ბილიკი \"%s\" აბსოლუტური არ გახლავთ"
#. Translators: this is the preferred format for expressing the date and the time
-#: glib/gdatetime.c:226
+#: glib/gdatetime.c:228
msgctxt "GDateTime"
msgid "%a %b %e %H:%M:%S %Y"
msgstr "%Y წლის %d %B, %T %Z"
#. Translators: this is the preferred format for expressing the date
-#: glib/gdatetime.c:229
+#: glib/gdatetime.c:231
msgctxt "GDateTime"
msgid "%m/%d/%y"
msgstr "%m/%d/%Y"
#. Translators: this is the preferred format for expressing the time
-#: glib/gdatetime.c:232
+#: glib/gdatetime.c:234
msgctxt "GDateTime"
msgid "%H:%M:%S"
msgstr "%T"
#. Translators: this is the preferred format for expressing 12 hour time
-#: glib/gdatetime.c:235
+#: glib/gdatetime.c:237
msgctxt "GDateTime"
msgid "%I:%M:%S %p"
msgstr "%I:%M:%S %p"
@@ -4346,62 +4507,62 @@ msgstr "%I:%M:%S %p"
#. * non-European) there is no difference between the standalone and
#. * complete date form.
#.
-#: glib/gdatetime.c:274
+#: glib/gdatetime.c:276
msgctxt "full month name"
msgid "January"
msgstr "იანვარი"
-#: glib/gdatetime.c:276
+#: glib/gdatetime.c:278
msgctxt "full month name"
msgid "February"
msgstr "თებერვალი"
-#: glib/gdatetime.c:278
+#: glib/gdatetime.c:280
msgctxt "full month name"
msgid "March"
msgstr "მარტი"
-#: glib/gdatetime.c:280
+#: glib/gdatetime.c:282
msgctxt "full month name"
msgid "April"
msgstr "აპრილი"
-#: glib/gdatetime.c:282
+#: glib/gdatetime.c:284
msgctxt "full month name"
msgid "May"
msgstr "მაისი"
-#: glib/gdatetime.c:284
+#: glib/gdatetime.c:286
msgctxt "full month name"
msgid "June"
msgstr "ივნისი"
-#: glib/gdatetime.c:286
+#: glib/gdatetime.c:288
msgctxt "full month name"
msgid "July"
msgstr "ივლისი"
-#: glib/gdatetime.c:288
+#: glib/gdatetime.c:290
msgctxt "full month name"
msgid "August"
msgstr "აგვისტო"
-#: glib/gdatetime.c:290
+#: glib/gdatetime.c:292
msgctxt "full month name"
msgid "September"
msgstr "სექტემბერი"
-#: glib/gdatetime.c:292
+#: glib/gdatetime.c:294
msgctxt "full month name"
msgid "October"
msgstr "ოქტომბერი"
-#: glib/gdatetime.c:294
+#: glib/gdatetime.c:296
msgctxt "full month name"
msgid "November"
msgstr "ნოემბერი"
-#: glib/gdatetime.c:296
+#: glib/gdatetime.c:298
msgctxt "full month name"
msgid "December"
msgstr "დეკემბერი"
@@ -4423,132 +4584,132 @@ msgstr "დეკემბერი"
#. * other platform. Here are abbreviated month names in a form
#. * appropriate when they are used standalone.
#.
-#: glib/gdatetime.c:328
+#: glib/gdatetime.c:330
msgctxt "abbreviated month name"
msgid "Jan"
msgstr "იან"
-#: glib/gdatetime.c:330
+#: glib/gdatetime.c:332
msgctxt "abbreviated month name"
msgid "Feb"
msgstr "თებ"
-#: glib/gdatetime.c:332
+#: glib/gdatetime.c:334
msgctxt "abbreviated month name"
msgid "Mar"
msgstr "მარ"
-#: glib/gdatetime.c:334
+#: glib/gdatetime.c:336
msgctxt "abbreviated month name"
msgid "Apr"
msgstr "აპრ"
-#: glib/gdatetime.c:336
+#: glib/gdatetime.c:338
msgctxt "abbreviated month name"
msgid "May"
msgstr "მაისი"
-#: glib/gdatetime.c:338
+#: glib/gdatetime.c:340
msgctxt "abbreviated month name"
msgid "Jun"
msgstr "ივნ"
-#: glib/gdatetime.c:340
+#: glib/gdatetime.c:342
msgctxt "abbreviated month name"
msgid "Jul"
msgstr "ივლ"
-#: glib/gdatetime.c:342
+#: glib/gdatetime.c:344
msgctxt "abbreviated month name"
msgid "Aug"
msgstr "აგვ"
-#: glib/gdatetime.c:344
+#: glib/gdatetime.c:346
msgctxt "abbreviated month name"
msgid "Sep"
msgstr "სექ"
-#: glib/gdatetime.c:346
+#: glib/gdatetime.c:348
msgctxt "abbreviated month name"
msgid "Oct"
msgstr "ოქტ"
-#: glib/gdatetime.c:348
+#: glib/gdatetime.c:350
msgctxt "abbreviated month name"
msgid "Nov"
msgstr "ნოე"
-#: glib/gdatetime.c:350
+#: glib/gdatetime.c:352
msgctxt "abbreviated month name"
msgid "Dec"
msgstr "დეკ"
-#: glib/gdatetime.c:365
+#: glib/gdatetime.c:367
msgctxt "full weekday name"
msgid "Monday"
msgstr "ორშაბათი"
-#: glib/gdatetime.c:367
+#: glib/gdatetime.c:369
msgctxt "full weekday name"
msgid "Tuesday"
msgstr "სამშაბათი"
-#: glib/gdatetime.c:369
+#: glib/gdatetime.c:371
msgctxt "full weekday name"
msgid "Wednesday"
msgstr "ოთხშაბათი"
-#: glib/gdatetime.c:371
+#: glib/gdatetime.c:373
msgctxt "full weekday name"
msgid "Thursday"
msgstr "ხუთშაბათი"
-#: glib/gdatetime.c:373
+#: glib/gdatetime.c:375
msgctxt "full weekday name"
msgid "Friday"
msgstr "პარასკევი"
-#: glib/gdatetime.c:375
+#: glib/gdatetime.c:377
msgctxt "full weekday name"
msgid "Saturday"
msgstr "შაბათი"
-#: glib/gdatetime.c:377
+#: glib/gdatetime.c:379
msgctxt "full weekday name"
msgid "Sunday"
msgstr "კვირა"
-#: glib/gdatetime.c:392
+#: glib/gdatetime.c:394
msgctxt "abbreviated weekday name"
msgid "Mon"
msgstr "ორშ"
-#: glib/gdatetime.c:394
+#: glib/gdatetime.c:396
msgctxt "abbreviated weekday name"
msgid "Tue"
msgstr "სამ"
-#: glib/gdatetime.c:396
+#: glib/gdatetime.c:398
msgctxt "abbreviated weekday name"
msgid "Wed"
msgstr "ოთხ"
-#: glib/gdatetime.c:398
+#: glib/gdatetime.c:400
msgctxt "abbreviated weekday name"
msgid "Thu"
msgstr "ხუთ"
-#: glib/gdatetime.c:400
+#: glib/gdatetime.c:402
msgctxt "abbreviated weekday name"
msgid "Fri"
msgstr "პარ"
-#: glib/gdatetime.c:402
+#: glib/gdatetime.c:404
msgctxt "abbreviated weekday name"
msgid "Sat"
msgstr "შაბ"
-#: glib/gdatetime.c:404
+#: glib/gdatetime.c:406
msgctxt "abbreviated weekday name"
msgid "Sun"
msgstr "კვი"
@@ -4570,62 +4731,62 @@ msgstr "კვი"
#. * (western European, non-European) there is no difference between the
#. * standalone and complete date form.
#.
-#: glib/gdatetime.c:468
+#: glib/gdatetime.c:470
msgctxt "full month name with day"
msgid "January"
msgstr "იანვარი"
-#: glib/gdatetime.c:470
+#: glib/gdatetime.c:472
msgctxt "full month name with day"
msgid "February"
msgstr "თებერვალი"
-#: glib/gdatetime.c:472
+#: glib/gdatetime.c:474
msgctxt "full month name with day"
msgid "March"
msgstr "მარტი"
-#: glib/gdatetime.c:474
+#: glib/gdatetime.c:476
msgctxt "full month name with day"
msgid "April"
msgstr "აპრილი"
-#: glib/gdatetime.c:476
+#: glib/gdatetime.c:478
msgctxt "full month name with day"
msgid "May"
msgstr "მაისი"
-#: glib/gdatetime.c:478
+#: glib/gdatetime.c:480
msgctxt "full month name with day"
msgid "June"
msgstr "ივნისი"
-#: glib/gdatetime.c:480
+#: glib/gdatetime.c:482
msgctxt "full month name with day"
msgid "July"
msgstr "ივლისი"
-#: glib/gdatetime.c:482
+#: glib/gdatetime.c:484
msgctxt "full month name with day"
msgid "August"
msgstr "აგვისტო"
-#: glib/gdatetime.c:484
+#: glib/gdatetime.c:486
msgctxt "full month name with day"
msgid "September"
msgstr "სექტემბერი"
-#: glib/gdatetime.c:486
+#: glib/gdatetime.c:488
msgctxt "full month name with day"
msgid "October"
msgstr "ოქტომბერი"
-#: glib/gdatetime.c:488
+#: glib/gdatetime.c:490
msgctxt "full month name with day"
msgid "November"
msgstr "ნოემბერი"
-#: glib/gdatetime.c:490
+#: glib/gdatetime.c:492
msgctxt "full month name with day"
msgid "December"
msgstr "დეკემბერი"
@@ -4647,190 +4808,189 @@ msgstr "დეკემბერი"
#. * month names almost ready to copy and paste here. In other systems
#. * due to a bug the result is incorrect in some languages.
#.
-#: glib/gdatetime.c:555
+#: glib/gdatetime.c:557
msgctxt "abbreviated month name with day"
msgid "Jan"
msgstr "იან"
-#: glib/gdatetime.c:557
+#: glib/gdatetime.c:559
msgctxt "abbreviated month name with day"
msgid "Feb"
msgstr "თებ"
-#: glib/gdatetime.c:559
+#: glib/gdatetime.c:561
msgctxt "abbreviated month name with day"
msgid "Mar"
msgstr "მარ"
-#: glib/gdatetime.c:561
+#: glib/gdatetime.c:563
msgctxt "abbreviated month name with day"
msgid "Apr"
msgstr "აპრ"
-#: glib/gdatetime.c:563
+#: glib/gdatetime.c:565
msgctxt "abbreviated month name with day"
msgid "May"
msgstr "მაისი"
-#: glib/gdatetime.c:565
+#: glib/gdatetime.c:567
msgctxt "abbreviated month name with day"
msgid "Jun"
msgstr "ივნ"
-#: glib/gdatetime.c:567
+#: glib/gdatetime.c:569
msgctxt "abbreviated month name with day"
msgid "Jul"
msgstr "ივლ"
-#: glib/gdatetime.c:569
+#: glib/gdatetime.c:571
msgctxt "abbreviated month name with day"
msgid "Aug"
msgstr "აგვ"
-#: glib/gdatetime.c:571
+#: glib/gdatetime.c:573
msgctxt "abbreviated month name with day"
msgid "Sep"
msgstr "სექ"
-#: glib/gdatetime.c:573
+#: glib/gdatetime.c:575
msgctxt "abbreviated month name with day"
msgid "Oct"
msgstr "ოქტ"
-#: glib/gdatetime.c:575
+#: glib/gdatetime.c:577
msgctxt "abbreviated month name with day"
msgid "Nov"
msgstr "ნოე"
-#: glib/gdatetime.c:577
+#: glib/gdatetime.c:579
msgctxt "abbreviated month name with day"
msgid "Dec"
msgstr "დეკ"
#. Translators: 'before midday' indicator
-#: glib/gdatetime.c:594
+#: glib/gdatetime.c:596
msgctxt "GDateTime"
msgid "AM"
msgstr "AM"
#. Translators: 'after midday' indicator
-#: glib/gdatetime.c:597
+#: glib/gdatetime.c:599
msgctxt "GDateTime"
msgid "PM"
msgstr "PM"
-#: glib/gdir.c:156
+#: glib/gdir.c:158
#, c-format
msgid "Error opening directory “%s”: %s"
msgstr ""
-#: glib/gfileutils.c:733 glib/gfileutils.c:825
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "ვერ ხერხდება %lu ბაიტის გამოყოფა \"%s\" ფაილის წასაკითხად"
-msgstr[1] "ვერ ხერხდება %lu ბაიტის გამოყოფა \"%s\" ფაილის წასაკითხად"
-#: glib/gfileutils.c:750
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
-msgstr ""
+msgstr "ფაილის \"%s\" წაკითხვის შეცდომა: %s"
-#: glib/gfileutils.c:786
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
-msgstr ""
+msgstr "%s: ფაილი ძალიან დიდია"
-#: glib/gfileutils.c:850
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
-msgstr ""
+msgstr "ფაილიდან \"%s\" წაკითხვის შეცდომა: %s"
-#: glib/gfileutils.c:900 glib/gfileutils.c:975 glib/gfileutils.c:1447
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "ფაილის (%s) გახსნა შეუძლებელია: %s"
-#: glib/gfileutils.c:913
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
-msgstr ""
+msgstr "ფაილის \"%s\" ატრიბუტების წაკითხვის შეცდომა: fstat() ჩავარდა: %s"
-#: glib/gfileutils.c:944
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
-msgstr ""
+msgstr "ფაილის \"%s\" გახსნის შეცდომა: fdopen() ჩავარდა: %s"
-#: glib/gfileutils.c:1045
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "ვერ მოხერხდა '%s' ფაილის გადარქმევა - '%s': g_rename() ვერ შედგა: %s"
-#: glib/gfileutils.c:1154
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "ვერ ვწერ '%s' ფაილს: fwrite() ვერ შედგა: %s"
-#: glib/gfileutils.c:1175
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "ვერ ვწერ '%s' ფაილს: fsync() ვერ შედგა: %s"
-#: glib/gfileutils.c:1336 glib/gfileutils.c:1751
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "ვერ ვქმნი '%s' ფაილს: %s"
-#: glib/gfileutils.c:1381
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "არსებული '%s' ფაილი ვერ ამოიშლება: g_unlink() ვერ შედგა: %s"
-#: glib/gfileutils.c:1716
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "შაბლონი '%s' მცდარია და '%s'-ს არ უნდა შეიცავდეს"
-#: glib/gfileutils.c:1729
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "შაბლონი '%s' არ შეიცავს XXXXXX"
-#: glib/gfileutils.c:2289 glib/gfileutils.c:2318
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "სიმბოლური ბმის \"%s\" წაკითხვის შეცდომა: %s"
-#: glib/giochannel.c:1405
+#: glib/giochannel.c:1408
#, c-format
msgid "Could not open converter from “%s” to “%s”: %s"
msgstr "ვერ ხერხდება გარდამქმნელის გახსნა '%s' - '%s': %s"
-#: glib/giochannel.c:1758
+#: glib/giochannel.c:1761
msgid "Can’t do a raw read in g_io_channel_read_line_string"
msgstr "უშუალოდ წაკითხვა ფუნქციაში g_io_channel_read_line_string ვერ ხერხდება"
-#: glib/giochannel.c:1805 glib/giochannel.c:2063 glib/giochannel.c:2150
+#: glib/giochannel.c:1808 glib/giochannel.c:2066 glib/giochannel.c:2153
msgid "Leftover unconverted data in read buffer"
msgstr "გარდაუქმნელი მონაცემები წაკითხვის ბუფერში დარჩა"
-#: glib/giochannel.c:1886 glib/giochannel.c:1963
+#: glib/giochannel.c:1889 glib/giochannel.c:1966
msgid "Channel terminates in a partial character"
msgstr "არხი არასრული სიმბოლოთი იხურება"
-#: glib/giochannel.c:1949
+#: glib/giochannel.c:1952
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "უშუალოდ წაკითხვა ფუნქციაში g_io_channel_read_to_end ვერ ხერხდება"
-#: glib/gkeyfile.c:794
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "ძიების კატალოგებში შეუძლებელია დამოწმებული გასაღების პოვნა"
-#: glib/gkeyfile.c:831
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "ფაილი ჩვეულებრივი არაა"
-#: glib/gkeyfile.c:1289
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -4838,50 +4998,50 @@ msgstr ""
"გასაღების ფაილი '%s' შეიცავს სტრიქონს, რომელიც არ წარმოადგენს გასაღები-"
"მნიშვნელობას, ჯგუფს ან კომენტარს"
-#: glib/gkeyfile.c:1346
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "ჯგუფის მიუღებელი სახელი: %s"
-#: glib/gkeyfile.c:1370
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "საკვანძო ფაილი ჯგუფით არ იწყება"
-#: glib/gkeyfile.c:1394
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "გასაღების მიუღებელი სახელი: %.*s"
-#: glib/gkeyfile.c:1422
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "გასაღების ფაილი შეიცავს მხარდაუჭერელ კოდირებას '%s'"
-#: glib/gkeyfile.c:1677 glib/gkeyfile.c:1850 glib/gkeyfile.c:3297
-#: glib/gkeyfile.c:3361 glib/gkeyfile.c:3491 glib/gkeyfile.c:3623
-#: glib/gkeyfile.c:3769 glib/gkeyfile.c:4004 glib/gkeyfile.c:4071
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "გასაღების ფაილი არ შეიცავს ჯგუფს '%s'"
-#: glib/gkeyfile.c:1805
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "გასაღების ფაილი არ შეიცავს გასაღებს '%s' ჯგუფში '%s'"
-#: glib/gkeyfile.c:1967 glib/gkeyfile.c:2083
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
"ფაილი შეიცავს გასაღებს '%s', რომლის მნიშვნელობაც '%s' UTF-8 კოდირებაში არაა"
-#: glib/gkeyfile.c:1987 glib/gkeyfile.c:2103 glib/gkeyfile.c:2542
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr "ფაილი შეიცავს გასაღებს '%s', რომლის მნიშვნელობაც ვერ იშიფრება."
-#: glib/gkeyfile.c:2757 glib/gkeyfile.c:3126
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -4889,51 +5049,51 @@ msgid ""
msgstr ""
"ფაილი შეიცავს გასაღებს '%s' ჯგუფში '%s', რომლის მნიშვნელობაც ვერ იშიფრება."
-#: glib/gkeyfile.c:2835 glib/gkeyfile.c:2912
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr ""
-#: glib/gkeyfile.c:4324
+#: glib/gkeyfile.c:4357
msgid "Key file contains escape character at end of line"
msgstr "გასაღების ფაილი სტრიქონის ბოლოს escape სიმბოლოს შეიცავს"
-#: glib/gkeyfile.c:4346
+#: glib/gkeyfile.c:4394
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "გასაღების ფაილი მცდარ escape მიმდევრობას '%s' შეიცავს"
-#: glib/gkeyfile.c:4491
+#: glib/gkeyfile.c:4545
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "მნიშვნელობა '%s' ვერ აღიქმება, როგორც რიცხვი."
-#: glib/gkeyfile.c:4505
+#: glib/gkeyfile.c:4559
#, c-format
msgid "Integer value “%s” out of range"
msgstr "მთელი მნიშვნელობა '%s' დიაპაზონს გარეთაა"
-#: glib/gkeyfile.c:4538
+#: glib/gkeyfile.c:4592
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "მნიშვნელობა '%s' ვერ აღიქმება, როგორც წილადი."
-#: glib/gkeyfile.c:4577
+#: glib/gkeyfile.c:4631
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "მნიშვნელობა '%s' ვერ აღიქმება, როგორც ლოგიკური ოპერატორი."
-#: glib/gmappedfile.c:129
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
-#: glib/gmappedfile.c:195
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "ვერ მოხერხდა '%s%s%s%s:' ფაილის განთავსება: mmap() ვერ შედგა: %s"
-#: glib/gmappedfile.c:262
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "ვერ მოხერხდა '%s' ფაილის გახსნა: open() ვერ შედგა: %s"
@@ -4956,7 +5116,7 @@ msgstr "არასწორი სახელი: %s"
#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
-msgstr ""
+msgstr "\"%s\" არასწორი სახელია: \"%c\""
#: glib/gmarkup.c:613
#, c-format
@@ -5150,584 +5310,518 @@ msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"დოკუმენტი მოულოდნელად დასრულდა კომენტარის ან დამუშავების ინსტრუქციის შიგნით"
-#: glib/goption.c:873
+#: glib/goption.c:875
msgid "[OPTION…]"
msgstr "[პარამეტრი...]"
-#: glib/goption.c:989
+#: glib/goption.c:991
msgid "Help Options:"
msgstr "დახმარების პარამეტრები:"
-#: glib/goption.c:990
+#: glib/goption.c:992
msgid "Show help options"
msgstr "დახმარების პარამეტრების ჩვენება"
-#: glib/goption.c:996
+#: glib/goption.c:998
msgid "Show all help options"
msgstr "დახმარების ყველა პარამეტრის ჩვენება"
-#: glib/goption.c:1059
+#: glib/goption.c:1061
msgid "Application Options:"
msgstr "პროგრამის პარამეტრები:"
-#: glib/goption.c:1061
+#: glib/goption.c:1063
msgid "Options:"
msgstr "პარამეტრები:"
-#: glib/goption.c:1125 glib/goption.c:1195
+#: glib/goption.c:1127 glib/goption.c:1197
#, c-format
msgid "Cannot parse integer value “%s” for %s"
msgstr "მთელი მნიშვნელობის \"%s\" დამუშავების შეცდომა %s-თვის"
-#: glib/goption.c:1135 glib/goption.c:1203
+#: glib/goption.c:1137 glib/goption.c:1205
#, c-format
msgid "Integer value “%s” for %s out of range"
msgstr "მთელი მნიშვნელობა '%s' ელემენტისთვის %s დიაპაზონს გარეთაა"
-#: glib/goption.c:1160
+#: glib/goption.c:1162
#, c-format
msgid "Cannot parse double value “%s” for %s"
msgstr "ორმაგი მნიშვნელობის \"%s\" დამუშავების შეცდომა %s-თვის"
-#: glib/goption.c:1168
+#: glib/goption.c:1170
#, c-format
msgid "Double value “%s” for %s out of range"
msgstr "ორმაგი მნიშვნელობა '%s' ელემენტისთვის %s დიაპაზონს გარეთაა"
-#: glib/goption.c:1460 glib/goption.c:1539
+#: glib/goption.c:1462 glib/goption.c:1541
#, c-format
msgid "Error parsing option %s"
msgstr "შეცდომის გაანალიზების პარამეტრი: %s"
-#: glib/goption.c:1561 glib/goption.c:1674
+#: glib/goption.c:1563 glib/goption.c:1676
#, c-format
msgid "Missing argument for %s"
msgstr "არ არსებული არგუმენტი - %s-თვის"
-#: glib/goption.c:2184
+#: glib/goption.c:2186
#, c-format
msgid "Unknown option %s"
msgstr "უცნობი პარამეტრი %s"
-#: glib/gregex.c:255
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "დაზიანებული ობიექტი"
-#: glib/gregex.c:257
-msgid "internal error or corrupted object"
-msgstr "შიდა შეცდომა ან დაზიანებული ობიექტი"
-
-#: glib/gregex.c:259
+#: glib/gregex.c:482
msgid "out of memory"
-msgstr "მეხსიერებას გარეთ"
+msgstr "არასაკმარისი მეხსიერება"
-#: glib/gregex.c:264
-msgid "backtracking limit reached"
-msgstr "უკან დაბრუნების ლიმიტი ამოწურულია"
+#: glib/gregex.c:497
+msgid "internal error"
+msgstr "შიდა შეცდომა"
-#: glib/gregex.c:276 glib/gregex.c:284
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "თარგი შეიცავს ნაწილობრივი დამთხვევისთვის მხარდაუჭერელ ელემეტებს"
-#: glib/gregex.c:278
-msgid "internal error"
-msgstr "შიდა შეცდომა"
-
-#: glib/gregex.c:286
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr "უკუ მიმართვა პირობების სახით მხარდაუჭერელია ნაწილობრივი დამთხვევისთვის"
-#: glib/gregex.c:295
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "რეკურსიის ლიმიტი მიღწეულია"
-#: glib/gregex.c:297
-msgid "invalid combination of newline flags"
-msgstr "სტრიქონების გადაყვანის ალმების არასწორი კომბინაცია"
-
-#: glib/gregex.c:299
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "არასწორი წანაცვლება"
-#: glib/gregex.c:301
-msgid "short utf8"
-msgstr "მოკლე utf8"
-
-#: glib/gregex.c:303
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "რეკურსიის მარყუჟი"
-#: glib/gregex.c:307
+#. should not happen in GRegex since we check modes before each match
+#: glib/gregex.c:514
+msgid "matching mode is requested that was not compiled for JIT"
+msgstr ""
+
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "უცნობი შეცდომა"
-#: glib/gregex.c:327
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ ნიმუშის ბოლოში"
-#: glib/gregex.c:330
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c ნიმუშის ბოლოში"
-#: glib/gregex.c:333
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr ""
-#: glib/gregex.c:336
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "მთვლელში რიცხვები დაულაგებელია {}"
-#: glib/gregex.c:339
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "მთვლელში {} რიცხვები ძალიან დიდია"
-#: glib/gregex.c:342
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "სიმბოლოების კლასს დამაბოლოებელი ] აკლია"
-#: glib/gregex.c:345
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "სიმბოლოების კლასის არასწორი დამაბოლოებელი თანამიმდევრობა"
-#: glib/gregex.c:348
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "სიმბოლოების კლასის დიაპაზონი მიმდევრობის გარეთაა"
-#: glib/gregex.c:351
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "გასამეორებელი არაფერია"
-#: glib/gregex.c:355
-msgid "unexpected repeat"
-msgstr ""
-
-#: glib/gregex.c:358
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "უცნობი სიმბლოები (? ან (?- ის შემდეგ"
-#: glib/gregex.c:361
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX-ის დასახელებული კლასები მხოლოდ კლასის შიგნითაა ხელმისაწვდომი"
-#: glib/gregex.c:364
+#: glib/gregex.c:602
+msgid "POSIX collating elements are not supported"
+msgstr "POSIX-ის გადაფარვადი ელემენტები მხარდაუჭერელია"
+
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr ""
-#: glib/gregex.c:367
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "ბმა არარსებულ ქვეშაბლონთან"
-#: glib/gregex.c:370
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "კომენტარის შემდეგ ) აკლია"
-#: glib/gregex.c:373
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "რეგულარული გამოსახულება ძალიან გრძელია"
-#: glib/gregex.c:376
-msgid "failed to get memory"
-msgstr "მეხსიერებს მიღება შეუძლეებლია"
-
-#: glib/gregex.c:380
-msgid ") without opening ("
-msgstr ""
-
-#: glib/gregex.c:384
-msgid "code overflow"
-msgstr ""
-
-#: glib/gregex.c:388
-msgid "unrecognized character after (?<"
-msgstr "(?< ის შემდეგ უცნობი სიმბოლოა"
+#: glib/gregex.c:624
+msgid "malformed number or name after (?("
+msgstr "(?(-ის შემდეგ არასწორი რიცხვი ან სახელია"
-#: glib/gregex.c:391
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "lookbehind assertion is not fixed length"
-#: glib/gregex.c:394
-msgid "malformed number or name after (?("
-msgstr "(?(-ის შემდეგ არასწორი რიცხვი ან სახელია"
-
-#: glib/gregex.c:397
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "პირობითი ჯგუფი ორ ბრენჩზე მეტს შეიცავს"
-#: glib/gregex.c:400
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "assertion expected after (?("
-#. translators: '(?R' and '(?[+-]digits' are both meant as (groups of)
-#. * sequences here, '(?-54' would be an example for the second group.
-#.
-#: glib/gregex.c:407
-msgid "(?R or (?[+-]digits must be followed by )"
-msgstr "(?R or (?[+-]digits must be followed by )"
+#: glib/gregex.c:640
+msgid "a numbered reference must not be zero"
+msgstr ""
-#: glib/gregex.c:410
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "posix-ის უცნობი კლასის სახელი"
-#: glib/gregex.c:413
-msgid "POSIX collating elements are not supported"
-msgstr "POSIX-ის გადაფარვადი ელემენტები მხარდაუჭერელია"
-
-#: glib/gregex.c:416
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "character value in \\x{...} sequence is too large"
-#: glib/gregex.c:419
-msgid "invalid condition (?(0)"
-msgstr "არასწორი პირობა (?(0)"
-
-#: glib/gregex.c:422
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C not allowed in lookbehind assertion"
-#: glib/gregex.c:429
-msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
-msgstr ""
-
-#: glib/gregex.c:432
-msgid "recursive call could loop indefinitely"
-msgstr "რეკურსიული გამოძახება შეიძლება უსასრულოდ გაგრძელდეს"
-
-#: glib/gregex.c:436
-msgid "unrecognized character after (?P"
-msgstr "უცნობი სიმბოლო (?P-ის შემდეგ"
-
-#: glib/gregex.c:439
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr ""
-#: glib/gregex.c:442
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "ორ სხვადასხვა ქვეშაბლონს ერთი და იგივე სახელი აქვთ"
-#: glib/gregex.c:445
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "არასწორი \\P ან \\p მიმდევრობა"
-#: glib/gregex.c:448
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "უცნობი თვისების სახელი \\P-ის ან \\p-ის შემდეგ"
-#: glib/gregex.c:451
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "ქვეშაბლონის სახელი ძალიან გრძელია (მაქს 32 სიმბოლო)"
-#: glib/gregex.c:454
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr ""
-#: glib/gregex.c:457
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr ""
-#: glib/gregex.c:461
-msgid "overran compiling workspace"
-msgstr ""
-
-#: glib/gregex.c:465
-msgid "previously-checked referenced subpattern not found"
-msgstr ""
-
-#: glib/gregex.c:468
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr ""
-#: glib/gregex.c:471
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr ""
-#: glib/gregex.c:474
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
msgstr ""
-#: glib/gregex.c:478
-msgid "a numbered reference must not be zero"
-msgstr ""
-
-#: glib/gregex.c:481
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr ""
-#: glib/gregex.c:484
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) უცნობია"
-#: glib/gregex.c:487
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "რიცხვი ძალიან დიდია"
-#: glib/gregex.c:490
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr ""
-#: glib/gregex.c:493
-msgid "digit expected after (?+"
-msgstr "(?+ -ის შემდეგ მოველოდი ციფრს"
-
-#: glib/gregex.c:496
-msgid "] is an invalid data character in JavaScript compatibility mode"
-msgstr ""
-
-#: glib/gregex.c:499
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr ""
-#: glib/gregex.c:502
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr ""
-#: glib/gregex.c:505
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr ""
-#: glib/gregex.c:508
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
-#: glib/gregex.c:511
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "კლასში \\N მხარდაუჭერელია"
-#: glib/gregex.c:514
-msgid "too many forward references"
-msgstr ""
-
-#: glib/gregex.c:517
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "სახელი ძალიან გრძელია (*MARK), (*PRUNE), (*SKIP) ან (*THEN)"
-#: glib/gregex.c:520
-msgid "character value in \\u.... sequence is too large"
+#: glib/gregex.c:738 glib/gregex.c:874
+msgid "code overflow"
+msgstr "კოდის გადავსება"
+
+#: glib/gregex.c:742
+msgid "unrecognized character after (?P"
+msgstr "უცნობი სიმბოლო (?P-ის შემდეგ"
+
+#: glib/gregex.c:746
+msgid "overran compiling workspace"
+msgstr "კომპილაციის სამუშაო სივრცის გადავსება"
+
+#: glib/gregex.c:750
+msgid "previously-checked referenced subpattern not found"
msgstr ""
-#: glib/gregex.c:743 glib/gregex.c:1988
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "დაიშვა შეცდომა სტანდარტული გამოსახულების %s დამთხვევის ძიების დროს: %s"
-#: glib/gregex.c:1321
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "ბიბლიოთეკა PCRE-ს არ გააჩნია UTF8-ის მხარდაჭერა"
-#: glib/gregex.c:1325
-msgid "PCRE library is compiled without UTF8 properties support"
-msgstr ""
-"PCRE ბიბლიოთეკა კომპილირებულია UTF8 კოდირების პარამეტრების მხარდაჭერის გარეშე"
-
-#: glib/gregex.c:1333
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "PCRE ბიბლიოთეკა კომპილირებულია შეუთავსებელი პარამეტრებით"
-#: glib/gregex.c:1362
+#: glib/gregex.c:1860
#, c-format
-msgid "Error while optimizing regular expression %s: %s"
-msgstr "შეცდომა სტანდარტული გამოსახულების ოპტიმიზირებისას %s: %s"
-
-#: glib/gregex.c:1442
-#, c-format
-msgid "Error while compiling regular expression %s at char %d: %s"
+msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr ""
-"შეცდომა სტანდარტული გამოსახულება %s-ის კომპილირებისას, სიმბოლო ნომრით %d: %s"
+"შეცდომა რეგულარული გამოსახულება %s-ის კომპილირებისას, სიმბოლოსთან %s: %s"
-#: glib/gregex.c:2427
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "მოსალოდნელია თექვსმეტობითი რიცხვი, ან '}'"
-#: glib/gregex.c:2443
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "მოსალოდნელია თექვსმეტობითი სიმბოლო"
-#: glib/gregex.c:2483
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "არ მოიძებნა '<', სიმბოლურ მითითებაში"
-#: glib/gregex.c:2492
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "დაუსრულებელი სიმბოლური მითითება"
-#: glib/gregex.c:2499
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "ნულოვანი სიგრძის სიმბოლური მითითება"
-#: glib/gregex.c:2510
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "მოველოდი ციფრს"
-#: glib/gregex.c:2528
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "მიუღებელი სიმბოლური მითითება"
-#: glib/gregex.c:2591
+#: glib/gregex.c:3064
msgid "stray final “\\”"
-msgstr ""
+msgstr "დაბოლოვება '\\'"
-#: glib/gregex.c:2595
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "უცნობი escape სეკვენცია"
-#: glib/gregex.c:2605
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr ""
+"შეცდომა ჩასანაცვლებელი ტექსტის \"%s\" განაალიზებისას, სიმბოლო ნომრით %lu: %s"
-#: glib/gshell.c:96
+#: glib/gshell.c:98
msgid "Quoted text doesn’t begin with a quotation mark"
msgstr "ციტირებული ტექსტი ბრჭყალებით არ იწყება"
-#: glib/gshell.c:186
+#: glib/gshell.c:188
msgid "Unmatched quotation mark in command line or other shell-quoted text"
msgstr "უმართებლო ბრჭყალი ბრძანებაში ან სხვა ტექსტურ გარსში"
-#: glib/gshell.c:592
+#: glib/gshell.c:594
#, c-format
msgid "Text ended just after a “\\” character. (The text was “%s”)"
msgstr "ტექსტი დასრულდა უშუალოდ \"\\\" სიმბოლოს შემდეგ. (ტექსტი - \"%s\")"
-#: glib/gshell.c:599
+#: glib/gshell.c:601
#, c-format
msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
msgstr "ტექსტი დასრულდა %c შესაბამისი ბრჭყალის წინ. (ტექსტი - \"%s\")"
-#: glib/gshell.c:611
+#: glib/gshell.c:613
msgid "Text was empty (or contained only whitespace)"
msgstr "ტექსტი ცარიელი იყო (ან მხოლოდ ხარეებს შეიცავდა)"
-#: glib/gspawn.c:310
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "მონაცემთა წაკითხვა ქვეპროცესიდან ვერ მოხერხდა (%s)"
-#: glib/gspawn.c:462
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "შვილეული პროცესიდან (%s) მონაცემების წაკითხვის შეცდომა"
-#: glib/gspawn.c:547
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "მოულოდნელი შეცდომა ფუნქციაში waitpid() (%s)"
-#: glib/gspawn.c:1175 glib/gspawn-win32.c:1438
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr ""
-#: glib/gspawn.c:1183
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr ""
-#: glib/gspawn.c:1190
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr ""
-#: glib/gspawn.c:1197
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr ""
-#: glib/gspawn.c:1890 glib/gspawn-win32.c:353 glib/gspawn-win32.c:361
+#: glib/gspawn.c:2039 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "მონაცემთა წაკითხვა ქვეპროცესის არხიდან ვერ მოხერხდა (%s)"
-#: glib/gspawn.c:2253
+#: glib/gspawn.c:2411
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "ქვეპროცესის (%s) განტოტვის შეცდომა (%s)"
-#: glib/gspawn.c:2370
+#: glib/gspawn.c:2537
#, c-format
msgid "Failed to fork (%s)"
-msgstr "პროცესის განტოტვის შეცდომა (%s)"
+msgstr "განტოტების შეცდომა (%s)"
-#: glib/gspawn.c:2530 glib/gspawn-win32.c:384
+#: glib/gspawn.c:2697 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "საქაღალდის ცვლილების შეცდომა \"%s\" (%s)"
-#: glib/gspawn.c:2540
+#: glib/gspawn.c:2707
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "შვილობილი პროცესის %s გაშვების შეცდომა %s"
-#: glib/gspawn.c:2550
+#: glib/gspawn.c:2717
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "დესკრიპტორისთვის ფაილის გადამაგრების შეცდომა (%s)"
-#: glib/gspawn.c:2558
+#: glib/gspawn.c:2725
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "შვილეული პროცესისთვის (%s) ფაილის დესკრიპტორის დუბლირების შეცდომა"
-#: glib/gspawn.c:2567
+#: glib/gspawn.c:2734
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "დამხმარე პროცესის გაშვების შეცდომა (%s)"
-#: glib/gspawn.c:2575
+#: glib/gspawn.c:2742
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "შვილეული პროცესის (%s) ფაილის დესკრიპტორის დახურვის შეცდომა"
-#: glib/gspawn.c:2583
+#: glib/gspawn.c:2750
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "შეცდომა შვილეული პროცესის (%s) შესრულებისას"
-#: glib/gspawn.c:2607
+#: glib/gspawn.c:2774
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "ქვეპროცესის არხიდან საკმარის მონაცემთა წაკითხვა ვერ მოხერხდა (%s)"
-#: glib/gspawn-win32.c:297
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "წყაროს FD-ების არასწორი არგუმენტი"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "მონაცემთა წაკითხვა ქვეპროცესიდან ვერ მოხერხდა"
-#: glib/gspawn-win32.c:390 glib/gspawn-win32.c:395 glib/gspawn-win32.c:521
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "ქვეპროცესის გამოყენება ვერ მოხერხდა (%s)"
-#: glib/gspawn-win32.c:400
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "ქვეპროცესში dup()-ის შეცდომა (%s)"
-#: glib/gspawn-win32.c:471
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "პროგრამის მცდარი სახელი: %s"
-#: glib/gspawn-win32.c:481 glib/gspawn-win32.c:807
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "მცდარი სტრიქონი არგუმენტის ვექტორში - %d: %s"
-#: glib/gspawn-win32.c:492 glib/gspawn-win32.c:823
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "მცდარი სტრიქონი გარემოში: %s"
-#: glib/gspawn-win32.c:803
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "უმართებლო სამუშაო დასტა: %s"
-#: glib/gspawn-win32.c:868
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "დახმარების პროგრამის (%s) გამოყენება ვერ მოხერხდა"
-#: glib/gspawn-win32.c:1096
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -5735,303 +5829,324 @@ msgstr ""
"მოულოდნელი შეცდომა ფუნქციაში g_io_channel_win32_poll() ქვეპროცესიდან "
"მონაცემთა წაკითხვისას"
-#: glib/gstrfuncs.c:3351 glib/gstrfuncs.c:3453
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
-msgstr ""
+msgstr "ცარიელი სტრიქონი რიცხვი არაა"
-#: glib/gstrfuncs.c:3375
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
-msgstr ""
+msgstr "\"%s\" ნიშნიანი რიცხვი არაა"
-#: glib/gstrfuncs.c:3385 glib/gstrfuncs.c:3489
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
-msgstr ""
+msgstr "რიცხვი \"%s\" დიაპაზონს გარეთაა [%s, %s]"
-#: glib/gstrfuncs.c:3479
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
-msgstr ""
+msgstr "\"%s\" უნიშნო რიცხვი არაა"
-#: glib/guri.c:315
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
-msgstr ""
+msgstr "არასწორი %s-კოდირება URI-ში"
-#: glib/guri.c:332
+#: glib/guri.c:335
msgid "Illegal character in URI"
-msgstr ""
+msgstr "დაუშვებელი სიმბოლო URI-ში"
-#: glib/guri.c:366
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
-msgstr ""
+msgstr "არა-UTF-8 სიმბოლოები URI-ში"
-#: glib/guri.c:546
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
-msgstr ""
+msgstr "არასწორი IPv6 მისამართი '%.*s' URI-ში"
-#: glib/guri.c:601
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
-msgstr ""
+msgstr "არასწორად კოდირებული IP მისამართი ‘%.*s’ URI-ში"
-#: glib/guri.c:613
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
-msgstr ""
+msgstr "არასწორი არა-ASCII ჰოსტის სახელი '%.*s' URI-ში"
-#: glib/guri.c:645 glib/guri.c:657
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
-msgstr ""
+msgstr "URI-ში პორტის '%.*s'-ის დამუშავების შეცდომა"
-#: glib/guri.c:664
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
-msgstr ""
+msgstr "URI-ში პორტი '%.*s' დიაპაზონს გარეთაა"
-#: glib/guri.c:1224 glib/guri.c:1288
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "URI \"%s\" აბსოლუტური იდენტიფიკატორი არ გახლავთ"
-#: glib/guri.c:1230
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
-msgstr ""
+msgstr "URL-ს '%s' ჰოსტის კომპონენტი არ გააჩნია"
-#: glib/guri.c:1460
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
-msgstr ""
+msgstr "URI აბსოლუტური არაა და საბაზისო URI მითითებული არაა"
-#: glib/guri.c:2238
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
-msgstr ""
+msgstr "აკლია '=' და პარამეტრის მნიშვნელობა"
-#: glib/gutf8.c:832
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "მეხსიერების გამოყოფის შეცდომა"
-#: glib/gutf8.c:965
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "სიმბოლო UTF-8 რანგს გარეთაა"
-#: glib/gutf8.c:1067 glib/gutf8.c:1076 glib/gutf8.c:1206 glib/gutf8.c:1215
-#: glib/gutf8.c:1354 glib/gutf8.c:1451
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "შეტანის ტექსტის გარდაქმნის მცდარი მიმდევრობა"
-#: glib/gutf8.c:1365 glib/gutf8.c:1462
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "სიმბოლო UTF-16 რანგს გარეთაა"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2849
-#, c-format
-msgid "%.1f kB"
-msgstr "%.1f კბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2851
-#, c-format
-msgid "%.1f MB"
-msgstr "%.1f მბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2853
-#, c-format
-msgid "%.1f GB"
-msgstr "%.1f გბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2855
-#, c-format
-msgid "%.1f TB"
-msgstr "%.1f ტბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2857
-#, c-format
-msgid "%.1f PB"
-msgstr "%.1f პბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2859
-#, c-format
-msgid "%.1f EB"
-msgstr "%.1f ებ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2863
-#, c-format
-msgid "%.1f KiB"
-msgstr "%.1f კიბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2865
-#, c-format
-msgid "%.1f MiB"
-msgstr "%.1f მიბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2867
-#, c-format
-msgid "%.1f GiB"
-msgstr "%.1f გიბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2869
-#, c-format
-msgid "%.1f TiB"
-msgstr "%.1f ტიბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2871
-#, c-format
-msgid "%.1f PiB"
-msgstr "%.1f პიბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2873
-#, c-format
-msgid "%.1f EiB"
-msgstr "%.1f ეიბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2877
-#, c-format
-msgid "%.1f kb"
-msgstr "%.1f კბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2879
-#, c-format
-msgid "%.1f Mb"
-msgstr "%.1f მბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2881
-#, c-format
-msgid "%.1f Gb"
-msgstr "%.1f გბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2883
-#, c-format
-msgid "%.1f Tb"
-msgstr "%.1f ტბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2885
-#, c-format
-msgid "%.1f Pb"
-msgstr "%.1f პბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2887
-#, c-format
-msgid "%.1f Eb"
-msgstr "%.1f ებ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2891
-#, c-format
-msgid "%.1f Kib"
-msgstr "%.1f Kკიბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2893
-#, c-format
-msgid "%.1f Mib"
-msgstr "%.1f მიბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2895
-#, c-format
-msgid "%.1f Gib"
-msgstr "%.1f გიბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2897
-#, c-format
-msgid "%.1f Tib"
-msgstr "%.1f ტიბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2899
-#, c-format
-msgid "%.1f Pib"
-msgstr "%.1f პიბ"
-
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2901
-#, c-format
-msgid "%.1f Eib"
-msgstr "%.1f ეიბ"
-
-#: glib/gutils.c:2935 glib/gutils.c:3052
-#, c-format
-msgid "%u byte"
-msgid_plural "%u bytes"
-msgstr[0] "%u ბაიტი"
-msgstr[1] "%u ბაიტი"
-
-#: glib/gutils.c:2939
-#, c-format
-msgid "%u bit"
-msgid_plural "%u bits"
-msgstr[0] "%u ბიტი"
-msgstr[1] "%u ბიტი"
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
+#: glib/gutils.c:2966
+msgid "kB"
+msgstr "კბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
+#: glib/gutils.c:2968
+msgid "MB"
+msgstr "მბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
+#: glib/gutils.c:2970
+msgid "GB"
+msgstr "გბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
+#: glib/gutils.c:2972
+msgid "TB"
+msgstr "ტბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
+#: glib/gutils.c:2974
+msgid "PB"
+msgstr "პბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
+#: glib/gutils.c:2976
+msgid "EB"
+msgstr "ებ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
+#: glib/gutils.c:2980
+msgid "KiB"
+msgstr "კიბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
+#: glib/gutils.c:2982
+msgid "MiB"
+msgstr "მიბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
+#: glib/gutils.c:2984
+msgid "GiB"
+msgstr "გიბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
+#: glib/gutils.c:2986
+msgid "TiB"
+msgstr "ტიბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
+#: glib/gutils.c:2988
+msgid "PiB"
+msgstr "პიბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
+#: glib/gutils.c:2990
+msgid "EiB"
+msgstr "EiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
+#: glib/gutils.c:2994
+msgid "kb"
+msgstr "კბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
+#: glib/gutils.c:2996
+msgid "Mb"
+msgstr "მბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
+#: glib/gutils.c:2998
+msgid "Gb"
+msgstr "გბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
+#: glib/gutils.c:3000
+msgid "Tb"
+msgstr "ტბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
+#: glib/gutils.c:3002
+msgid "Pb"
+msgstr "პბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
+#: glib/gutils.c:3004
+msgid "Eb"
+msgstr "ებ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
+#: glib/gutils.c:3008
+msgid "Kib"
+msgstr "კიბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
+#: glib/gutils.c:3010
+msgid "Mib"
+msgstr "მიბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
+#: glib/gutils.c:3012
+msgid "Gib"
+msgstr "გიბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
+#: glib/gutils.c:3014
+msgid "Tib"
+msgstr "ტიბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
+#: glib/gutils.c:3016
+msgid "Pib"
+msgstr "პიბ"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
+#: glib/gutils.c:3018
+msgid "Eib"
+msgstr "ეიბ"
+
+#: glib/gutils.c:3056
+msgid "byte"
+msgid_plural "bytes"
+msgstr[0] "ბაიტი"
+
+#: glib/gutils.c:3060
+msgid "bit"
+msgid_plural "bits"
+msgstr[0] "ბიტი"
+
+#. Translators: The "%u" is replaced with the size value, like "13"; it could
+#. * be part of "13 bytes", but only the number is requested this time.
+#: glib/gutils.c:3068
+#, c-format
+msgctxt "format-size"
+msgid "%u"
+msgstr "%u"
+
+#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
+#: glib/gutils.c:3073
+#, c-format
+msgctxt "format-size"
+msgid "%u %s"
+msgstr "%u %s"
+
+#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
+#. * be part of "13.0 MB", but only the number is requested this time.
+#: glib/gutils.c:3109
+#, c-format
+msgctxt "format-size"
+msgid "%.1f"
+msgstr "%.1f"
+
+#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
+#. * the unit symbol. An example: "13.0 MB"
+#: glib/gutils.c:3115
+#, c-format
+msgctxt "format-size"
+msgid "%.1f %s"
+msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3006
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
msgstr[0] "%s ბაიტი"
-msgstr[1] "%s ბაიტი"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3011
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s ბიტი"
-msgstr[1] "%s ბიტი"
+
+#: glib/gutils.c:3201
+#, c-format
+msgid "%u byte"
+msgid_plural "%u bytes"
+msgstr[0] "%u ბაიტი"
#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3065
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f კბ"
-#: glib/gutils.c:3070
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f მბ"
-#: glib/gutils.c:3075
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f გბ"
-#: glib/gutils.c:3080
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f ტბ"
-#: glib/gutils.c:3085
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f პბ"
-#: glib/gutils.c:3090
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f ებ"
+
+#, c-format
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr ""
+#~ "ლოკალური ფაილის URI იდენტიფიკატორი \"%s\" არ შეიძლება შეიცავდეს სიმბოლოს "
+#~ "\"#\""
+
+#~ msgid "backtracking limit reached"
+#~ msgstr "უკან დაბრუნების ლიმიტი ამოწურულია"
+
+#~ msgid "GApplication options"
+#~ msgstr "GApplication-ის მორგება"
diff --git a/po/kk.po b/po/kk.po
index 2d16d96bf..eff319c7c 100644
--- a/po/kk.po
+++ b/po/kk.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-09-12 05:47+0000\n"
-"PO-Revision-Date: 2022-09-18 12:20+0600\n"
+"POT-Creation-Date: 2023-08-13 14:24+0000\n"
+"PO-Revision-Date: 2023-08-19 13:43+0600\n"
"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n"
"Language-Team: Kazakh <kk_KZ@googlegroups.com>\n"
"Language: kk\n"
@@ -16,44 +16,44 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 3.1.1\n"
+"X-Generator: Poedit 3.3.2\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Әдепкі бағдарламаларды орнатуға әлі қолдау жоқ"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
-#: gio/gappinfo.c:810
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr ""
-#: gio/gappinfo.c:870
+#: gio/gappinfo.c:874
#, c-format
-#| msgid "Unable to launch application ‘%s’: %s"
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr ""
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "GApplication опциялары"
+#: gio/gapplication.c:506
+#| msgid "Application Options:"
+msgid "GApplication Options:"
+msgstr ""
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "GApplication опцияларын көрсету"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr ""
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr ""
@@ -132,7 +132,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr ""
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "ФАЙЛ"
@@ -223,36 +223,36 @@ msgstr ""
msgid "error sending %s message to application: %s\n"
msgstr ""
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr ""
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
"action names must consist of only alphanumerics, “-” and “.”\n"
msgstr ""
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr ""
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr ""
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr ""
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr ""
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -262,9 +262,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr ""
@@ -278,8 +278,8 @@ msgstr ""
msgid "Cannot truncate GBufferedInputStream"
msgstr ""
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr ""
@@ -287,7 +287,7 @@ msgstr ""
msgid "Truncate not supported on base stream"
msgstr ""
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -306,28 +306,28 @@ msgid "Not enough space in destination"
msgstr "Мақсат жерінде жеткілікті орын жоқ"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Түрлендіру кірісінде жарамсыз байттар тізбегі анықталды"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr ""
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Бас тартуға болатын инициализацияға қолдау жоқ"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr ""
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr ""
@@ -370,24 +370,24 @@ msgstr ""
msgid "Unexpected early end-of-stream"
msgstr ""
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr ""
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr ""
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
"keys)"
msgstr ""
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -502,20 +502,20 @@ msgstr ""
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7326
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
"— unknown value “%s”"
msgstr ""
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7335
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
msgstr ""
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr ""
@@ -534,257 +534,261 @@ msgid ""
"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
msgstr ""
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr ""
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr ""
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "\"%s\" бума ақпаратын алу қатесі: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "\"%s\" бумасын жасау қатесі: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Әрекетке қолдау жоқ"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr ""
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr ""
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "Байланыс жабылған"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr ""
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4267 gio/gdbusconnection.c:4621
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4412
#, c-format
msgid "No such property “%s”"
msgstr "\"%s\" қасиеті табылмады"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4424
#, c-format
msgid "Property “%s” is not readable"
msgstr "\"%s\" қасиетін оқу мүмкін емес"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4435
#, c-format
msgid "Property “%s” is not writable"
msgstr "\"%s\" қасиетін жазу мүмкін емес"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4455
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4560 gio/gdbusconnection.c:4775
+#: gio/gdbusconnection.c:6752
#, c-format
msgid "No such interface “%s”"
msgstr ""
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:4991 gio/gdbusconnection.c:7266
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr ""
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5092
#, c-format
msgid "No such method “%s”"
msgstr ""
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5123
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr ""
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5326
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr ""
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5553
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr ""
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5609
#, c-format
msgid "Unable to set property %s.%s"
msgstr "%s қасиетін орнату мүмкін емес.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5788
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr ""
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6864
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr ""
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6985
#, c-format
msgid "A subtree is already exported for %s"
msgstr ""
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7274
#, c-format
msgid "Object does not exist at path “%s”"
msgstr ""
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr ""
-#: gio/gdbusmessage.c:1314
+#: gio/gdbusmessage.c:1317
msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
msgstr ""
-#: gio/gdbusmessage.c:1325
+#: gio/gdbusmessage.c:1328
msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
msgstr ""
-#: gio/gdbusmessage.c:1337
+#: gio/gdbusmessage.c:1340
msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
msgstr ""
-#: gio/gdbusmessage.c:1350
+#: gio/gdbusmessage.c:1353
msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
msgstr ""
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1361
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
msgstr ""
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1369
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
msgstr ""
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1417 gio/gdbusmessage.c:1477
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] ""
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1431
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr ""
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1450
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
"(length of string is %d). The valid UTF-8 string up until that point was “%s”"
msgstr ""
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1514 gio/gdbusmessage.c:1790 gio/gdbusmessage.c:2001
msgid "Value nested too deeply"
msgstr ""
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1682
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr ""
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1706
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr ""
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1757
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -792,163 +796,163 @@ msgid_plural ""
"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
msgstr[0] ""
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1777
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
"bytes, but found to be %u bytes in length"
msgstr ""
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1931 gio/gdbusmessage.c:2650
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr ""
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:1985
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr ""
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2026
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr ""
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2211
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
"0x%02x"
msgstr ""
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2230
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr ""
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2288 gio/gdbusmessage.c:2886
msgid "Signature header found but is not of type signature"
msgstr ""
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2300
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2315
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr ""
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
msgstr[0] ""
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2357
msgid "Cannot deserialize message: "
msgstr ""
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2703
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr ""
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2840
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2848
msgid "Cannot serialize message: "
msgstr ""
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2901
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2911
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
"“%s”"
msgstr ""
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2927
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3482
#, c-format
msgid "Error return with body of type “%s”"
msgstr ""
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3490
msgid "Error return with empty body"
msgstr ""
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr ""
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr ""
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr ""
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr ""
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr ""
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr ""
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
"and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
msgstr ""
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr ""
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr ""
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "\"%s\" үшін nonce файлын жазу қатесі: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr ""
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr ""
@@ -967,14 +971,14 @@ msgid ""
"Use “%s COMMAND --help” to get help on each command.\n"
msgstr ""
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Қате: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr ""
@@ -984,280 +988,285 @@ msgstr ""
msgid "Error: %s is not a valid name\n"
msgstr ""
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr ""
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr ""
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr ""
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr ""
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr ""
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr ""
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr ""
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr ""
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr ""
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
"interface “%s”\n"
msgstr ""
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr ""
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr ""
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr ""
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Сигналды жіберу."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Байланысу қатесі: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr ""
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr ""
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Қате: сигнал көрсетілмеген.\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr ""
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr ""
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr ""
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr ""
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr ""
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr ""
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr ""
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr ""
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr ""
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr ""
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr ""
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr ""
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr ""
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr ""
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr ""
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr ""
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr ""
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr ""
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr ""
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "XML баспаға шығару"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr ""
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Тек қасиеттерін баспаға шығару"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr ""
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Бақылау үшін мақсат атауы"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr ""
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr ""
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr ""
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr ""
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
msgstr ""
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[ОПЦИЯ…] ШИНА-АТЫ"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr ""
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Қате: белсендіру үшін қызмет көрсетілуі керек.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Қате: күту үшін қызмет көрсетілуі керек.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr ""
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Қате: \"%s\" - кеңінен белгілі шина аты емес.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr ""
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5119
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Атаусыз"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr ""
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr ""
-#: gio/gdesktopappinfo.c:3637
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr ""
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
-#: gio/gdesktopappinfo.c:3641
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr ""
-#: gio/gdesktopappinfo.c:3883 gio/gdesktopappinfo.c:3907
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr ""
-#: gio/gdesktopappinfo.c:4143
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "%s пайдаланушы жұмыс үстел файлын жасау мүмкін емес"
-#: gio/gdesktopappinfo.c:4279
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr ""
@@ -1326,79 +1335,84 @@ msgstr ""
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr ""
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Бума үстіне көшіру мүмкін емес"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Буманы бума үстіне көшіру мүмкін емес"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Мақсат файлы бар болып тұр"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Буманы рекурсивті көшіру мүмкін емес"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+#| msgid "Operation not supported"
+msgid "Copy file range not supported"
msgstr ""
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr ""
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr ""
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr ""
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr ""
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr ""
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Арнайы файлды көшіру мүмкін емес"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr ""
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Символдық сілтемелерге қолдау жоқ"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Қоқыс шелегіне қолдау жоқ"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr ""
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
-#| msgid "Failed to change to directory “%s” (%s)"
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr ""
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "том тіркеуді жүзеге асырмайды"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr ""
@@ -1407,11 +1421,11 @@ msgid "Enumerator is closed"
msgstr ""
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr ""
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr ""
@@ -1424,27 +1438,27 @@ msgstr ""
msgid "Malformed input data for GFileIcon"
msgstr ""
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr ""
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr ""
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr ""
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr ""
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Хост аты қате"
@@ -1477,37 +1491,37 @@ msgstr "HTTP прокси жауабы тым үлкен"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "HTTP прокси сервері күтпегенде байланысты үзді."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr ""
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr ""
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr ""
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr ""
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr ""
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr ""
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr ""
@@ -1548,7 +1562,7 @@ msgstr ""
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr ""
@@ -1654,12 +1668,12 @@ msgid "Error writing to stdout"
msgstr "Қалыпты шығысқа жазу қатесі"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1210 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "ОРНАЛАСУ"
@@ -1674,8 +1688,8 @@ msgid ""
"like smb://server/resource/file.txt as location."
msgstr ""
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1261 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr ""
@@ -1768,57 +1782,65 @@ msgstr ""
msgid "attributes:\n"
msgstr "атрибуттар:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr ""
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+#| msgid "name: %s\n"
+msgid "edit name: %s\n"
+msgstr ""
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "аты: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "түрі: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "өлшемі: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "жасырын\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr ""
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr ""
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Орнатуға болатын атрибуттар:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr ""
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Орналасулар жөнінде ақпаратты көрсету."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1877,11 +1899,11 @@ msgstr ""
msgid "Print full URIs"
msgstr "Толық URI шығару"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Орналасулар құрамаларын тізіп шығару."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2069,15 +2091,15 @@ msgstr ""
msgid "Anonymous access denied"
msgstr ""
-#: gio/gio-tool-mount.c:533
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr ""
-#: gio/gio-tool-mount.c:1025
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr ""
-#: gio/gio-tool-mount.c:1214
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Орналасуларды тіркеу немесе тіркеуден шығару."
@@ -2192,7 +2214,6 @@ msgid "TYPE"
msgstr "ТҮРІ"
#: gio/gio-tool-set.c:38
-#| msgid "Set a file attribute"
msgid "Unset given attribute"
msgstr ""
@@ -2271,11 +2292,11 @@ msgstr ""
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Символдық сілтемелер, тіркеулер және жарлықтар соңынан еру"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Бумалар құрамаларын ағаш тектес пішімде шығару."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "<%s> элементін <%s> ішінде орналастыру рұқсат етілмеген"
@@ -2330,7 +2351,7 @@ msgstr "%s файлын сығу қатесі"
msgid "text may not appear inside <%s>"
msgstr "мәтін <%s> ішінде болмауы мүмкін"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr ""
@@ -2344,8 +2365,8 @@ msgid ""
"directory)"
msgstr ""
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "БУМА"
@@ -2396,456 +2417,456 @@ msgstr ""
msgid "The target C compiler (default: the CC environment variable)"
msgstr ""
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
"and the resource file have the extension called .gresource."
msgstr ""
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr ""
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr ""
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr ""
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr ""
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr ""
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr ""
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr ""
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr ""
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr ""
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr ""
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr ""
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr ""
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr ""
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr ""
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr ""
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr ""
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr ""
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr ""
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
msgstr ""
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
"type"
msgstr ""
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr ""
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr ""
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr ""
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr ""
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
"and hyphen (“-”) are permitted"
msgstr ""
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr ""
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr ""
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr ""
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr ""
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
"to modify value"
msgstr ""
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
"to <key>"
msgstr ""
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr ""
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr ""
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr ""
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr ""
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr ""
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
"does not extend “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr ""
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr ""
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
"desktop/” or “/system/” are deprecated."
msgstr ""
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr ""
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "<%s> ішінде тек бір <%s> элементіне рұқсат етілген"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr ""
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr ""
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Мәтін <%s> ішінде көрсетілмеуі керек"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr ""
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr ""
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr ""
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
"override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
"strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
"“%s” (override file “%s”); ignoring override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
"“%s” (override file “%s”) and --strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
"%s. Ignoring override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
"%s. --strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
"range given in the schema; ignoring override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
"range given in the schema and --strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
"list of valid choices; ignoring override for this key."
msgstr ""
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
"list of valid choices and --strict was specified; exiting."
msgstr ""
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr ""
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr ""
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr ""
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr ""
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
"and the cache file is called gschemas.compiled."
msgstr ""
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr ""
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr ""
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr ""
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Қате файл аты %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "%s үшін файлдық жүйе ақпаратын алу қатесі: %s"
@@ -2854,255 +2875,254 @@ msgstr "%s үшін файлдық жүйе ақпаратын алу қатес
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr ""
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Түбірлік буманың атын ауыстыру мүмкін емес"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "%s файл атын ауыстыру қатесі: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Файл атын ауыстыру мүмкін емес, ондай файл бар болып тұр"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Файл аты қате"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "%s файлын ашу қатесі: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "%s файлын өшіру қатесі: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "%s файлын қоқысқа тастау қатесі: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "%s қоқыс шелегін жасау мүмкін емес: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr ""
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr ""
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr ""
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr ""
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "%s файлын қоқысқа тастау мүмкін емес: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "%s файлын қоқысқа тастау мүмкін емес"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "%s бумасын жасау қатесі: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr ""
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "%s символдық сілтемесін жасау қатесі: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "%s файлын жылжыту қатесі: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Буманы бума үстіне жылжыту мүмкін емес"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Қор көшірме файлын жасау сәтсіз аяқталды"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Мақсат файлын өшіру қатесі: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr ""
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr ""
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr ""
-#: gio/glocalfileinfo.c:782
-#| msgid "Invalid attribute type (uint64 expected)"
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr ""
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr ""
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "\"%s\" кеңейтілген атрибутын орнату қатесі: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (кодталуы қате)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "\"%s\" файлы ақпаратын алу қатесі: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr ""
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Атрибут түрі жарамсыз (uint64 күтілген)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr ""
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr ""
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Рұқсаттарды орнату қатесі: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Иесін орнату қатесі: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr ""
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr ""
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr ""
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr ""
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr ""
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr ""
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr ""
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr ""
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr ""
@@ -3149,13 +3169,13 @@ msgstr ""
msgid "Error renaming temporary file: %s"
msgstr ""
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr ""
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "\"%s\" файлын ашу қатесі: %s"
@@ -3172,7 +3192,7 @@ msgstr "Мақсат файлы қалыпты файл емес болып тұ
msgid "The file was externally modified"
msgstr "Файл сыртқы түрде өзгертілді"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Ескі файлды өшіру қатесі: %s"
@@ -3301,42 +3321,42 @@ msgstr "NetworkManager нұсқасы тым ескі"
msgid "Output stream doesn’t implement write"
msgstr ""
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr ""
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr ""
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr ""
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr ""
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr ""
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Хост аты қате"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:602
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” does not exist"
msgstr ""
@@ -3346,16 +3366,16 @@ msgstr ""
msgid "The resource at “%s” failed to decompress"
msgstr ""
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:659
msgid "Resource files cannot be renamed"
msgstr ""
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:749
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr ""
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:957
msgid "Input stream doesn’t implement seek"
msgstr ""
@@ -3660,7 +3680,8 @@ msgstr ""
msgid "Socket is already closed"
msgstr ""
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "Сокет Е/Ш күту мерзімі аяқталған"
@@ -3669,159 +3690,159 @@ msgstr "Сокет Е/Ш күту мерзімі аяқталған"
msgid "creating GSocket from fd: %s"
msgstr ""
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr ""
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr ""
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr ""
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr ""
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr ""
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr ""
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr ""
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr ""
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr ""
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr ""
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr ""
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr ""
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr ""
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr ""
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr ""
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr ""
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr ""
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr ""
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr ""
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr ""
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr ""
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr ""
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr ""
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr ""
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr ""
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Хабарламаны жіберу мүмкін емес: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr ""
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Хабарламаны жіберу сәтсіз: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr ""
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr ""
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr ""
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr ""
@@ -3941,7 +3962,7 @@ msgstr ""
msgid "Unknown SOCKSv5 proxy error."
msgstr ""
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr ""
@@ -3956,48 +3977,47 @@ msgstr ""
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr ""
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr ""
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr ""
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr ""
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr ""
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr ""
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr ""
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr ""
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
-#| msgid "Failed to read from file “%s”: %s"
msgid "Failed to parse DNS response for “%s”: "
msgstr ""
@@ -4054,55 +4074,55 @@ msgstr ""
msgid "Sending FD is not supported"
msgstr ""
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] ""
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr ""
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] ""
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr ""
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr ""
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr ""
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr ""
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr ""
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr ""
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr ""
@@ -4118,7 +4138,7 @@ msgstr ""
msgid "Error closing file descriptor: %s"
msgstr ""
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Файлдық жүйе түбірі"
@@ -4200,129 +4220,124 @@ msgstr ""
msgid "Wrong args\n"
msgstr ""
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr ""
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr ""
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr ""
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr ""
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr ""
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr ""
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr ""
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr ""
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr ""
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr ""
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr ""
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr ""
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr ""
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr ""
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr ""
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr ""
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr ""
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr ""
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr ""
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr ""
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "URI \"%s\" қате"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr ""
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr ""
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr ""
@@ -4745,78 +4760,78 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "\"%s\" бумасын ашу қатесі: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] ""
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "\"%s\" файлын оқу қатесі: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "\"%s\" файлы тым үлкен"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "\"%s\" файлынан оқу қатесі: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "\"%s\" файлын ашу қатесі: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr ""
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr ""
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr ""
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "\"%s\" файлын жазу сәтсіз: write() сәтсіз аяқталды: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "\"%s\" файлын жазу сәтсіз: fsync() сәтсіз аяқталды: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "\"%s\" файлын жасау сәтсіз: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr ""
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr ""
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr ""
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr ""
@@ -4842,208 +4857,208 @@ msgstr ""
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr ""
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr ""
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Қалыпты файл емес"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
msgstr ""
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Қате топ аты: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr ""
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr ""
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr ""
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr ""
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr ""
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr ""
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
"interpreted."
msgstr ""
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr ""
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4353
msgid "Key file contains escape character at end of line"
msgstr ""
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4375
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr ""
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4520
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr ""
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4534
#, c-format
msgid "Integer value “%s” out of range"
msgstr ""
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4567
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr ""
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4606
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr ""
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr ""
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "\"%s\" файлын ашу сәтсіз: open() аяқталды: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr ""
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr ""
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "\"%s\" дұрыс атау емес"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "\"%s\" дұрыс атау емес: \"%c\""
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr ""
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
"reference (&#234; for example) — perhaps the digit is too large"
msgstr ""
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
"as &amp;"
msgstr ""
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr ""
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr ""
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
msgstr ""
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr ""
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
"element name"
msgstr ""
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
"“%s”"
msgstr ""
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr ""
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
msgstr ""
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5051,92 +5066,92 @@ msgid ""
"character in an attribute name"
msgstr ""
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
"giving value for attribute “%s” of element “%s”"
msgstr ""
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
"begin an element name"
msgstr ""
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
"allowed character is “>”"
msgstr ""
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr ""
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr ""
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr ""
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr ""
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
"element opened"
msgstr ""
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
"the tag <%s/>"
msgstr ""
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr ""
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr ""
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr ""
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
msgstr ""
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr ""
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr ""
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
@@ -5199,300 +5214,300 @@ msgstr ""
msgid "Unknown option %s"
msgstr "Белгісіз опция %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:479
msgid "corrupted object"
msgstr ""
-#: glib/gregex.c:438
+#: glib/gregex.c:481
msgid "out of memory"
msgstr "жады жеткіліксіз"
-#: glib/gregex.c:443
+#: glib/gregex.c:487
msgid "backtracking limit reached"
msgstr ""
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:498
msgid "internal error"
msgstr "ішкі қате"
-#: glib/gregex.c:456
+#: glib/gregex.c:500
msgid "the pattern contains items not supported for partial matching"
msgstr ""
-#: glib/gregex.c:458
+#: glib/gregex.c:502
msgid "back references as conditions are not supported for partial matching"
msgstr ""
-#: glib/gregex.c:464
+#: glib/gregex.c:508
msgid "recursion limit reached"
msgstr ""
-#: glib/gregex.c:466
+#: glib/gregex.c:510
msgid "bad offset"
msgstr "қате шегініс"
-#: glib/gregex.c:468
+#: glib/gregex.c:512
msgid "recursion loop"
msgstr ""
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:515
msgid "matching mode is requested that was not compiled for JIT"
msgstr ""
-#: glib/gregex.c:475
+#: glib/gregex.c:536 glib/gregex.c:1838
msgid "unknown error"
msgstr "белгісіз қате"
-#: glib/gregex.c:496
+#: glib/gregex.c:557
msgid "\\ at end of pattern"
msgstr ""
-#: glib/gregex.c:500
+#: glib/gregex.c:561
msgid "\\c at end of pattern"
msgstr ""
-#: glib/gregex.c:505
+#: glib/gregex.c:566
msgid "unrecognized character following \\"
msgstr ""
-#: glib/gregex.c:509
+#: glib/gregex.c:570
msgid "numbers out of order in {} quantifier"
msgstr ""
-#: glib/gregex.c:513
+#: glib/gregex.c:574
msgid "number too big in {} quantifier"
msgstr ""
-#: glib/gregex.c:517
+#: glib/gregex.c:578
msgid "missing terminating ] for character class"
msgstr ""
-#: glib/gregex.c:521
+#: glib/gregex.c:582
msgid "invalid escape sequence in character class"
msgstr ""
-#: glib/gregex.c:525
+#: glib/gregex.c:586
msgid "range out of order in character class"
msgstr ""
-#: glib/gregex.c:530
+#: glib/gregex.c:591
msgid "nothing to repeat"
msgstr ""
-#: glib/gregex.c:534
+#: glib/gregex.c:595
msgid "unrecognized character after (? or (?-"
msgstr ""
-#: glib/gregex.c:538
+#: glib/gregex.c:599
msgid "POSIX named classes are supported only within a class"
msgstr ""
-#: glib/gregex.c:542
+#: glib/gregex.c:603
msgid "POSIX collating elements are not supported"
msgstr ""
-#: glib/gregex.c:548
+#: glib/gregex.c:609
msgid "missing terminating )"
msgstr ""
-#: glib/gregex.c:552
+#: glib/gregex.c:613
msgid "reference to non-existent subpattern"
msgstr ""
-#: glib/gregex.c:556
+#: glib/gregex.c:617
msgid "missing ) after comment"
msgstr ""
-#: glib/gregex.c:560
+#: glib/gregex.c:621
msgid "regular expression is too large"
msgstr ""
-#: glib/gregex.c:564
+#: glib/gregex.c:625
msgid "malformed number or name after (?("
msgstr ""
-#: glib/gregex.c:568
+#: glib/gregex.c:629
msgid "lookbehind assertion is not fixed length"
msgstr ""
-#: glib/gregex.c:572
+#: glib/gregex.c:633
msgid "conditional group contains more than two branches"
msgstr ""
-#: glib/gregex.c:576
+#: glib/gregex.c:637
msgid "assertion expected after (?("
msgstr ""
-#: glib/gregex.c:580
+#: glib/gregex.c:641
msgid "a numbered reference must not be zero"
msgstr ""
-#: glib/gregex.c:584
+#: glib/gregex.c:645
msgid "unknown POSIX class name"
msgstr ""
-#: glib/gregex.c:589
+#: glib/gregex.c:650
msgid "character value in \\x{...} sequence is too large"
msgstr ""
-#: glib/gregex.c:593
+#: glib/gregex.c:654
msgid "\\C not allowed in lookbehind assertion"
msgstr ""
-#: glib/gregex.c:597
+#: glib/gregex.c:658
msgid "missing terminator in subpattern name"
msgstr ""
-#: glib/gregex.c:601
+#: glib/gregex.c:662
msgid "two named subpatterns have the same name"
msgstr ""
-#: glib/gregex.c:605
+#: glib/gregex.c:666
msgid "malformed \\P or \\p sequence"
msgstr ""
-#: glib/gregex.c:609
+#: glib/gregex.c:670
msgid "unknown property name after \\P or \\p"
msgstr ""
-#: glib/gregex.c:613
+#: glib/gregex.c:674
msgid "subpattern name is too long (maximum 32 characters)"
msgstr ""
-#: glib/gregex.c:617
+#: glib/gregex.c:678
msgid "too many named subpatterns (maximum 10,000)"
msgstr ""
-#: glib/gregex.c:621
+#: glib/gregex.c:682
msgid "octal value is greater than \\377"
msgstr ""
-#: glib/gregex.c:625
+#: glib/gregex.c:686
msgid "DEFINE group contains more than one branch"
msgstr ""
-#: glib/gregex.c:629
+#: glib/gregex.c:690
msgid "inconsistent NEWLINE options"
msgstr ""
-#: glib/gregex.c:633
+#: glib/gregex.c:694
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
msgstr ""
-#: glib/gregex.c:638
+#: glib/gregex.c:699
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr ""
-#: glib/gregex.c:642
+#: glib/gregex.c:703
msgid "(*VERB) not recognized"
msgstr "(*VERB) танылмады"
-#: glib/gregex.c:646
+#: glib/gregex.c:707
msgid "number is too big"
msgstr "сан тым үлкен"
-#: glib/gregex.c:650
+#: glib/gregex.c:711
msgid "missing subpattern name after (?&"
msgstr ""
-#: glib/gregex.c:654
+#: glib/gregex.c:715
msgid "different names for subpatterns of the same number are not allowed"
msgstr ""
-#: glib/gregex.c:658
+#: glib/gregex.c:719
msgid "(*MARK) must have an argument"
msgstr ""
-#: glib/gregex.c:662
+#: glib/gregex.c:723
msgid "\\c must be followed by an ASCII character"
msgstr ""
-#: glib/gregex.c:666
+#: glib/gregex.c:727
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
-#: glib/gregex.c:670
+#: glib/gregex.c:731
msgid "\\N is not supported in a class"
msgstr ""
-#: glib/gregex.c:674
+#: glib/gregex.c:735
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr ""
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:739 glib/gregex.c:875
msgid "code overflow"
msgstr ""
-#: glib/gregex.c:682
+#: glib/gregex.c:743
msgid "unrecognized character after (?P"
msgstr ""
-#: glib/gregex.c:686
+#: glib/gregex.c:747
msgid "overran compiling workspace"
msgstr ""
-#: glib/gregex.c:690
+#: glib/gregex.c:751
msgid "previously-checked referenced subpattern not found"
msgstr ""
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:874 glib/gregex.c:1121 glib/gregex.c:2444
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr ""
-#: glib/gregex.c:1618
+#: glib/gregex.c:1721
msgid "PCRE library is compiled without UTF8 support"
msgstr ""
-#: glib/gregex.c:1626
+#: glib/gregex.c:1729
msgid "PCRE library is compiled with incompatible options"
msgstr ""
-#: glib/gregex.c:1751
+#: glib/gregex.c:1847
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr ""
-#: glib/gregex.c:2786
+#: glib/gregex.c:2887
msgid "hexadecimal digit or “}” expected"
msgstr ""
-#: glib/gregex.c:2802
+#: glib/gregex.c:2903
msgid "hexadecimal digit expected"
msgstr ""
-#: glib/gregex.c:2842
+#: glib/gregex.c:2943
msgid "missing “<” in symbolic reference"
msgstr ""
-#: glib/gregex.c:2851
+#: glib/gregex.c:2952
msgid "unfinished symbolic reference"
msgstr ""
-#: glib/gregex.c:2858
+#: glib/gregex.c:2959
msgid "zero-length symbolic reference"
msgstr ""
-#: glib/gregex.c:2869
+#: glib/gregex.c:2970
msgid "digit expected"
msgstr "сан күтілген"
-#: glib/gregex.c:2887
+#: glib/gregex.c:2988
msgid "illegal symbolic reference"
msgstr ""
-#: glib/gregex.c:2950
+#: glib/gregex.c:3051
msgid "stray final “\\”"
msgstr ""
-#: glib/gregex.c:2954
+#: glib/gregex.c:3055
msgid "unknown escape sequence"
msgstr "белгісіз escape тізбегі"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3065
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr ""
@@ -5519,370 +5534,372 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Мәтін бос болды (немесе тек бос аралықтан тұрды)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr ""
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr ""
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr ""
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr ""
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr ""
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr ""
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr ""
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr ""
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr ""
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr ""
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "\"%s\" бумасына ауысу сәтсіз аяқталды (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr ""
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr ""
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr ""
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr ""
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr ""
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr ""
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+#| msgid "Invalid hostname"
+msgid "Invalid source FDs argument"
+msgstr ""
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr ""
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr ""
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr ""
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Бағдарлама аты қате: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr ""
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr ""
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Жұмыс бумасы қате: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Көмекші бағдарламаны орындау қатесі (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
msgstr ""
-#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3474
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr ""
-#: glib/gstrfuncs.c:3396
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "\"%s\" таңбасы бар сан емес"
-#: glib/gstrfuncs.c:3406 glib/gstrfuncs.c:3510
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr ""
-#: glib/gstrfuncs.c:3500
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "\"%s\" таңбасы жоқ сан емес"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr ""
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr ""
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr ""
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr ""
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr ""
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr ""
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr ""
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr ""
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr ""
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr ""
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr ""
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr ""
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Жадыны бөлу сәтсіз"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr ""
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr ""
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr ""
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "кБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "МБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "ГБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "ТБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "ПБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "ЭБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "КиБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "МиБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "ГиБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "ТиБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "ПиБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "ЭиБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "кб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Мб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Гб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Тб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Пб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Эб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Киб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Миб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Гиб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Тиб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Пиб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Эиб"
-#: glib/gutils.c:2947
-#| msgid "%u byte"
-#| msgid_plural "%u bytes"
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "байт"
-#: glib/gutils.c:2951
-#| msgid "%u bit"
-#| msgid_plural "%u bits"
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "бит"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -5890,7 +5907,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -5898,9 +5915,8 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
-#| msgid "%.1f KB"
msgctxt "format-size"
msgid "%.1f"
msgstr "%.1f"
@@ -5908,28 +5924,27 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
-#| msgid "%.1f kB"
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
msgstr[0] "%s байт"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s бит"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -5940,36 +5955,39 @@ msgstr[0] "%u байт"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f КБ"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f МБ"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f ГБ"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f ТБ"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f ПБ"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f ЭБ"
+#~ msgid "GApplication options"
+#~ msgstr "GApplication опциялары"
+
#~ msgid "short utf8"
#~ msgstr "қысқа utf8"
diff --git a/po/ko.po b/po/ko.po
index aee20c6d8..27bfa7472 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -4,7 +4,7 @@
# Young-Ho Cha <ganadist@chollian.net>, 2002.
# Eunju Kim <eukim@redhat.com>, 2007.
# Seong-ho Cho <darkcircle.0426@gmail.com>, 2011-2012.
-# Changwoo Ryu <cwryu@debian.org>, 2002, 2004-2006, 2007-2011, 2013-2022.
+# Changwoo Ryu <cwryu@debian.org>, 2002, 2004-2006, 2007-2011, 2013-2023.
#
#
# 용어:
@@ -16,8 +16,8 @@ msgid ""
msgstr ""
"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-05 19:22+0000\n"
-"PO-Revision-Date: 2022-09-04 01:25+0900\n"
+"POT-Creation-Date: 2023-08-31 10:14+0000\n"
+"PO-Revision-Date: 2023-09-05 23:59+0530\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
"Language: ko\n"
@@ -26,41 +26,41 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "기본 프로그램 설정은 아직 지원하지 않습니다"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr "타입에 대해 최근 사용한 프로그램 설정은 아직 지원하지 않습니다"
-#: gio/gappinfo.c:808
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "내용 유형 ‘%s’에 대한 기본 프로그램을 찾는데 실패했습니다"
-#: gio/gappinfo.c:868
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "URI 스킴 ‘%s’에 대한 기본 프로그램을 찾는데 실패했습니다"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "GApplication 옵션"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "GApplication 옵션:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "GApplication 옵션을 표시합니다"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr "GApplication 서비스 모드로 들어갑니다 (D-버스 서비스 파일에서 사용)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "프로그램 ID를 직접 지정합니다"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "실행 중인 인스턴스를 바꿉니다"
@@ -140,7 +140,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "D-버스 형식의 프로그램 ID (예: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "<파일>"
@@ -237,11 +237,11 @@ msgstr "D-버스에 연결할 수 없습니다: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "프로그램에 %s 메시지를 보내는 중 오류: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "프로그램 ID 뒤에 동작 이름을 써야 합니다\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -250,25 +250,25 @@ msgstr ""
"동작 이름이 잘못되었습니다: “%s”\n"
"동작 이름은 알파벳, 숫자, “-”, “.”만 쓸 수 있습니다\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "동작 파라미터 해석 오류: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "최대 1개 인수를 받는 동작\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "list-actions 명령은 프로그램 ID만 받습니다"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "%s 프로그램에 대한 desktop 파일을 찾을 수 없습니다\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -278,9 +278,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "%s에 넘긴 카운트 값이 너무 큽니다"
@@ -294,8 +294,8 @@ msgstr "기반 스트림에서 탐색을 지원하지 않습니다"
msgid "Cannot truncate GBufferedInputStream"
msgstr "GMemoryInputStream을 자를 수 없습니다"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "스트림을 이미 닫았습니다"
@@ -303,7 +303,7 @@ msgstr "스트림을 이미 닫았습니다"
msgid "Truncate not supported on base stream"
msgstr "기반 스트림에서 자르기를 지원하지 않습니다"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -322,28 +322,28 @@ msgid "Not enough space in destination"
msgstr "대상에 공간이 부족합니다"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "변환 입력에서 잘못된 바이트 순서"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "변환 중 오류: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "취소 가능한 초기화를 지원하지 않습니다"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "문자셋 “%s”에서 “%s”(으)로 변환은 지원되지 않습니다"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "“%s”에서 “%s”(으)로 변환하는 변환기를 열 수 없습니다"
@@ -386,17 +386,17 @@ msgstr "암호 데이터 속이기가 이 OS에서는 불가능합니다"
msgid "Unexpected early end-of-stream"
msgstr "예기치 않게 일찍 스트림이 끝났습니다"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "“%s” 키를 주소 항목 “%s”에서 지원하지 않습니다"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "“%s” 주소 항목에서 의미 없는 키/값의 쌍"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -405,7 +405,7 @@ msgstr ""
"“%s” 주소는 올바르지 않습니다 (정확히 1개의 경로, 폴더, 임시 폴더, 절대 키 "
"중 하나가 필요합니다)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -525,7 +525,7 @@ msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
"세션 버스 주소를 알아낼 수 없습니다 (이 운영체제에서는 구현되지 않았습니다)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -534,7 +534,7 @@ msgstr ""
"DBUS_STARTER_BUS_TYPE 환경 변수에서 세션 버스 주소를 알아낼 수 없습니다 — 알 "
"수 없는 값 “%s”"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -542,7 +542,7 @@ msgstr ""
"DBUS_STARTER_BUS_TYPE 환경 변수를 설정하지 않았으므로 세션 버스 주소를 알아"
"낼 수 없습니다"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "알 수 없는 버스 형식 (%d)"
@@ -562,51 +562,55 @@ msgid ""
"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
msgstr "사용 가능한 모든 인증 방법을 시도했습니다 (시도: %s) (사용 가능: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "한 바이트를 읽으려고 시도하는 중 예상치 못하게 읽을 내용이 부족합니다."
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "상대와 서버의 사용자 아이디는 같아야 합니다"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "GDBusAuthObserver::authorize-authenticated-peer를 통해 취소됨"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "디렉터리 “%s”의 정보를 가져오는 중 오류 : %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr "“%s” 디렉터리의 권한이 잘못되었습니다. 0700이어야 하지만 0%o입니다"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "“%s” 디렉터리를 만드는 중 오류: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "동작을 지원하지 않습니다"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "“%s” 키 모음을 읽기 용도로 여는 중 오류: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "“%2$s”의 키 모음 %1$d번 줄의 내용 “%3$s”의 형식이 잘못되었습니다."
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -614,7 +618,7 @@ msgstr ""
"'%2$s'의 키 모음 %1$d번 줄의 첫번째 토큰의 내용 “%3$s”의 형식이 잘못되었습니"
"다."
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -622,158 +626,160 @@ msgstr ""
"“%2$s”의 키 모음 %1$d번 줄의 두번째 토큰의 내용 “%3$s”의 형식이 잘못되었습니"
"다."
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "“%2$s”의 키 모음 아이디 %1$d의 쿠키를 찾을 수 없습니다"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "“%s” 잠금 파일을 만드는 중 오류: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "오래된 “%s” 잠금 파일을 만드는 중 오류: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "(링크가 끊어진) “%s” 잠금 파일을 닫는 중 오류: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "“%s” 잠금 파일을 삭제하는 중 오류: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "“%s” 키 모음을 쓰기 용도로 여는 중 오류: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(추가로 “%s”에 대한 잠금 해제도 실패했습니다: %s)"
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "연결이 닫혔습니다"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "시간 제한을 넘었습니다"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr "클라이언트 연결을 만드는 중 지원하지 않는 플래그가 있습니다"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"경로 %s의 객체에 “org.freedesktop.DBus.Properties” 인터페이스가 없습니다"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "“%s” 속성이 없습니다"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "“%s” 속성을 읽을 수 없습니다"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "“%s” 속성을 쓸 수 없습니다"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr "“%s” 속성 설정 오류: “%s” 형식이어야 하지만 “%s”입니다"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "“%s” 인터페이스가 없습니다"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "경로 “%2$s”의 객체에 “%1$s” 인터페이스가 없습니다"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "“%s” 키가 없습니다"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "메시지 형식이(“%s”) 예상한 “%s” 형식에 맞지 않습니다."
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "%2$s의 %1$s 인터페이스 용도로 객체를 이미 내보냈습니다"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "%s.%s 속성을 가져올 수 없습니다"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "%s.%s 속성을 설정할 수 없습니다"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "“%s” 메소드가 “%s” 형식을 리턴했지만, “%s” 형식이어야 합니다"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "“%3$s” 서명이 있는 “%2$s” 인터페이스의 “%1$s” 메서드가 없습니다"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "하위 트리를 이미 %s 용도로 내보냈습니다"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "“%s” 경로에 오브젝트가 없습니다"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "형식이 올바르지 않습니다"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "METHOD_CALL 메시지: PATH 혹은 MEMBER 헤더 필드가 없습니다"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr "METHOD_CALL 메시지: PATH 혹은 MEMBER 헤더 필드가 없거나 잘못되었습니다"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "METHOD_CALL 메시지: REPLY_SERIAL 헤더 필드가 없습니다"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr "METHOD_CALL 메시지: REPLY_SERIAL 헤더 필드가 없거나 잘못되었습니다"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "ERROR 메시지: REPLY_SERIAL 혹은 ERROR_NAME 헤더 필드가 없습니다"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr "ERROR 메시지: REPLY_SERIAL 혹은 ERROR_NAME 헤더 필드가 없거나 잘못되었습니다"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "SIGNAL 메시지: PATH, INTERFACE 혹은 MEMBER 헤더 필드가 없습니다"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr "SIGNAL 메시지: PATH, INTERFACE 혹은 MEMBER 헤더 필드가 없거나 잘못되었습니다"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -781,7 +787,7 @@ msgstr ""
"SIGNAL 메시지: PATH 헤더 필드가 /org/freedesktop/DBus/Local 예약 값을 사용하"
"고 있습니다"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -789,18 +795,18 @@ msgstr ""
"SIGNAL 메시지: INTERFACE 헤더 필드가 org.freedesktop.DBus.Local 예약 값을 사"
"용하고 있습니다"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "%lu 바이트를 읽어야 하지만 %lu 바이트만 받았습니다"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "“%s” 문자열 뒤에 NUL 바이트가 와야 하지만 %d바이트가 있습니다"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -809,21 +815,21 @@ msgstr ""
"올바른 UTF-8 문자열이 와야 하지만 오프셋 %d에(문자열 길이 %d) 잘못된 바이트"
"가 있습니다. 그 부분까지 올바른 UTF-8 문자열은 “%s”입니다."
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "값이 너무 깊숙히 끼워 넣어져 있습니다"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "해석한 “%s” 값이 올바른 D-Bus 객체 경로가 아닙니다"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "해석한 “%s” 값이 올바른 D-Bus 시그너쳐가 아닙니다"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -832,7 +838,7 @@ msgid_plural ""
msgstr[0] ""
"길이가 %u 바이트인 배열이 있습니다. 최대 길이는 2<<26 바이트입니다. (64MiB)"
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -841,22 +847,22 @@ msgstr ""
"타입이 “a%c”인 배열은 길이가 %u 바이트의 배수여야 하지만, 길이가 %u 바이트입"
"니다."
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "D-Bus에서 빈 구조체(튜플)는 지원하지 않습니다"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "variant에 대해 해석한 값 “%s”은(는) 올바른 D-Bus 시그너쳐가 아닙니다."
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr "“%s” 형식 문자열로 GVariant를 D-Bus 전송 형식에서 재구성하는데 오류"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -865,57 +871,57 @@ msgstr ""
"엔디안 값이 잘못되었습니다. 0x6c(“l”) 또는 0x42 (“B”)가 와야 하지만 0x%02x 값"
"이 있습니다"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "메이저 프로토콜 버전이 잘못되었습니다. 1이어야 하지만 %d입니다."
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "시그너쳐 헤더가 있지만 타입 시그너쳐 헤더가 아닙니다"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr "시그너쳐 “%s”인 시그너쳐 헤더가 있지만 메시지 본문이 비었습니다"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "해석한 “%s” 값이 (본문에 대해) 올바른 D-Bus 시그너쳐가 아닙니다"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
msgstr[0] "메시지에 시그너쳐 헤더가 없지만 메시지 본문이 %u 바이트입니다"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "메시지를 재구성할 수 없습니다: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr "“%s” 형식 문자열로 GVariant를 D-Bus 전송 형식으로 만드는데 오류"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr "메시지의 파일 디스크립터 개수가 (%d) 헤더 필드의 개수와 (%d) 다릅니다"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "메시지를 전송 형식으로 만들 수 없습니다: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "메시지 본문에 “%s” 시그너쳐가 있지만 시그너쳐 헤더가 없습니다"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -923,52 +929,52 @@ msgid ""
msgstr ""
"메시지 본문에 “%s” 형식 시그너쳐가 있지만 헤더 필드의 시그너쳐가 “%s”입니다"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "메시지 본문이 비었지만 헤더 필드의 시그너쳐가 “(%s)”입니다"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "오류 리턴, “%s” 형식의 본문"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "오류 리턴, 빈 본문"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(이 창을 닫으려면 아무 글자나 입력하십시오)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "dbus 세션이 실행중이 아니며, 자동실행에 실패했습니다"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "하드웨어 프로파일을 가져올 수 없습니다: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "%s 또는 %s을(를) 읽어들일 수 없습니다: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "%s에 대해 StartServiceByName 호출이 실패했습니다: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr " StartServiceByName(\"%2$s\") 메소드에서 예상치 못한 응답 %1$d번"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -977,25 +983,25 @@ msgstr ""
"메소드를 호출할 수 없습니다. 프록시는 소유자 없는 알려진 이름이고 (%s) 프록시"
"가 G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START 플래그를 갖고 만들어졌습니다"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "추상 네임스페이스를 지원하지 않습니다"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "서버를 만들 때 nonce 파일을 지정할 수 없습니다"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "“%s”의 nonce 파일에 쓰는 중 오류: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "“%s” 문자열은 올바른 D-BUS GUID가 아닙니다"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "지원하지 않는 transport “%s”에서 연결을 받아들일 수 없습니다"
@@ -1023,14 +1029,14 @@ msgstr ""
"\n"
"각 명령어의 도움말을 보려면 “%s <명령> --help” 명령을 사용하십시오.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "오류: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "introspection XML을 해석하는 중에 오류: %s\n"
@@ -1040,49 +1046,49 @@ msgstr "introspection XML을 해석하는 중에 오류: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "오류: “%s”은(는) 올바른 이름이 아닙니다\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "오류: “%s”은(는) 올바른 객체 경로가 아닙니다\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "시스템 버스에 연결"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "세션 버스에 연결"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "지정된 D-Bus 주소에 연결"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "연결 종점 옵션:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "연결 종점을 지정하는 옵션"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "연결 종점을 지정하지 않았습니다"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "여러 개의 연결 종점을 지정했습니다"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "경고: introspection 데이터에 따르면 “%s” 인터페이스가 없습니다\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1091,232 +1097,237 @@ msgstr ""
"경고: introspection 데이터에 따르면 “%s” 메소드가 “%s” 인터페이스에 없습니"
"다\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "추가로 지정할 수 있는 시그널의 대상 (고유 이름)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "시그널을 발생할 객체 경로"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "시그널 및 인터페이스 이름"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "시그널을 발생합니다."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "연결하는데 오류: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "오류: “%s”은(는) 올바른 고유 버스 이름이 아닙니다.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "오류: 객체 경로를 지정하지 않았습니다\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "오류: 시그널 이름을 지정하지 않았습니다\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "오류: 시그널 이름 “%s”이(가) 올바르지 않습니다\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "오류: “%s”은(는) 올바른 인터페이스 이름이 아닙니다\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "오류: “%s”은(는) 올바른 멤버 이름이 아닙니다\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "파라미터 %d번 해석 오류: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "연결의 버퍼 내용을 적용하는데 오류: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "메소드를 호출할 대상 이름"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "메소드를 호출할 객체 경로"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "메소드 및 인터페이스 이름"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "시간 제한, 초 단위"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "동적 권한 부여를 허용"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "원격 객체에 대해 메소드를 호출합니다."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "오류: 대상을 지정하지 않았습니다\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "오류: “%s”은(는) 올바른 버스 이름이 아닙니다\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "오류: 메소드 이름을 지정하지 않았습니다\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "오류: 메소드 이름 “%s”이(가) 올바르지 않습니다\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "형식 “%2$s”의 파라미터 %1$d번 해석 오류: %3$s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "핸들 %d번 추가하는 중 오류: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "조사할 대상 이름"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "조사할 객체 경로"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "XML을 표시합니다"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "하위 항목에 인트로스펙트 적용"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "속성을 표시하기만 합니다"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "원격 객체를 조사합니다."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "감시할 대상 이름"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "감시할 객체 경로"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "원격 객체를 감시합니다."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "오류: 메시지 버스가 아닌 연결을 감시할 수 없습니다\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "(알려진 이름의) 다른 서비스를 기다리기 전에 활성화할 서비스"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
msgstr ""
"오류로 끝날 때까지 대기할 시간 제한 (초 단위), 0이면 시간 무제한 (기본값)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[옵션…] <버스-이름>"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "버스 이름이 나타날 때까지 대기합니다."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "오류: 활성화할 서비스를 지정해야 합니다.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "오류: 대기할 서비스를 지정해야 합니다.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "오류: 인자가 너무 많습니다.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "오류: “%s”은(는) 올바른 알려진 버스 이름이 아닙니다.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "디버깅 설정을 바꿀 권한이 없습니다"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5113
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "이름없음"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "desktop 파일에 Exec 필드를 지정하지 않았습니다"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "프로그램에 필요한 터미널을 찾을 수 없습니다"
-#: gio/gdesktopappinfo.c:3631
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "$PATH 안에 ‘%s’ 프로그램이 없습니다"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "사용자 프로그램 설정 폴더(%s)를 만들 수 없습니다: %s"
-#: gio/gdesktopappinfo.c:3635
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "사용자 MIME 설정 폴더(%s)를 만들 수 없습니다: %s"
-#: gio/gdesktopappinfo.c:3877 gio/gdesktopappinfo.c:3901
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "프로그램 정보에 아이디가 없습니다"
-#: gio/gdesktopappinfo.c:4137
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "%s 사용자 desktop 파일을 만들 수 없습니다"
-#: gio/gdesktopappinfo.c:4273
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "%s에 대한 사용자 설정 정의"
@@ -1385,79 +1396,84 @@ msgstr "GEmblemedIcon에 GEmblem이 없습니다"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "들어 있는 마운트가 없습니다"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "디렉터리를 덮어 써서 복사할 수 없습니다"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "디렉터리를 덮어 써서 디렉터리를 복사할 수 없습니다"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "대상 파일이 있습니다"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "디렉터리를 재귀적으로 복사할 수 없습니다"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "잇기를 지원하지 않습니다"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "파일 범위 복사를 지원하지 않습니다"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "파일 쪼개기 오류: %s"
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "잇기를 지원하지 않습니다"
+
# reflink/clone은 btrfs에서 임시 복사하는 걸 말한다
-#: gio/gfile.c:3185
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "다른 마운트 사이에 복사(참조링크/클론)는 지원하지 않습니다"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "복사(참조링크/클론)를 지원하지 않거나 잘못되었습니다"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "복사(참조링크/클론)를 지원하지 않거나 동작하지 않았습니다."
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "특수 파일은 복사할 수 없습니다"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "잘못된 심볼릭 링크 값이 주어졌습니다"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "심볼릭 링크를 지원하지 않습니다"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "휴지통을 지원하지 않습니다"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "파일 이름에 “%c” 문자가 들어갈 수 없습니다"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "“%s” 서식에 사용할 임시 디렉터리를 만드는데 실패했습니다: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "볼륨이 mount를 구현하지 않았습니다"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "이 파일을 처리하는 프로그램을 아무 것도 등록하지 않았습니다"
@@ -1466,11 +1482,11 @@ msgid "Enumerator is closed"
msgstr "이뉴머레이터를 이미 닫았습니다"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "파일 이뉴머레이터에 진행 중인 동작이 있습니다"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "파일 이뉴머레이터를 이미 닫았습니다"
@@ -1483,27 +1499,27 @@ msgstr "GFileIcon 인코딩의 %d 버전을 처리할 수 없습니다"
msgid "Malformed input data for GFileIcon"
msgstr "GFileIcon 입력 데이터의 형식이 잘못되었습니다"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "스트림이 query_info를 지원하지 않습니다"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "스트림에서 seek를 지원하지 않습니다"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "입력 스트림이 truncate를 허용하지 않습니다"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "스트림에서 truncate를 지원하지 않습니다"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "잘못된 호스트 이름"
@@ -1536,37 +1552,37 @@ msgstr "HTTP 프록시 응답이 너무 큽니다"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "HTTP 프록시 서버가 예상치 못하게 연결을 닫았습니다."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "토큰 수가 (%d개) 잘못되었습니다"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "클래스 이름 \"%s\"에 대한 형식이 없습니다"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "\"%s\" 형식은 GIcon 인터페이스를 구현하지 않습니다"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "\"%s\" 형식에 대한 클래스가 없습니다"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "버전 형식이 잘못되었습니다: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "\"%s\" 형식은 GIcon 인터페이스에서 from_token()를 구현하지 않습니다"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "아이콘 인코딩에 저장한 버전을 처리할 수 없습니다"
@@ -1607,7 +1623,7 @@ msgstr "입력 스트림이 read를 구현하지 않았습니다"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "스트림에 진행 중인 동작이 있습니다"
@@ -1713,12 +1729,12 @@ msgid "Error writing to stdout"
msgstr "표준 출력에 쓰는 중 오류"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "<위치>"
@@ -1736,8 +1752,8 @@ msgstr ""
"파일 대신 GIO 위치를 사용합니다: 예를 들어 위치로\n"
"smb://server/resource/file.txt와 같이 쓸 수 있습니다."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "위치를 지정하지 않았습니다"
@@ -1833,57 +1849,64 @@ msgstr "심볼릭 링크 따라가지 않기"
msgid "attributes:\n"
msgstr "속성:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "표시 이름: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "편집 이름: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "이름: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "종류: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "크기: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "숨김\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "URI: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "로컬 경로: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "유닉스 마운트: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "설정 가능 속성:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "쓰기 가능 속성 네임스페이스:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "위치에 대한 정보를 표시합니다."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1950,11 +1973,11 @@ msgstr "표시 이름을 표시"
msgid "Print full URIs"
msgstr "전체 URI 표시"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "위치의 내용 목록을 표시."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2149,19 +2172,19 @@ msgstr "TCRYPT 숨겨진 볼륨 마운트"
msgid "Mount a TCRYPT system volume"
msgstr "TCRYPT 시스템 볼륨 마운트"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "익명 접근이 거절되었습니다"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "디바이스 파일에 대한 드라이브가 없습니다"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "지정한 ID에 대한 볼륨이 없습니다"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "위치를 마운트하거나 해제합니다."
@@ -2360,11 +2383,11 @@ msgstr "주어진 위치가 trash:/// 문자열로 시작하지 않습니다"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "심볼릭 링크, 마운트, 바로 가기를 따라갑니다"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "디렉터리의 내용을 트리 형식으로 표시합니다."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "<%s> 요소는 <%s> 안에 쓸 수 없습니다"
@@ -2420,7 +2443,7 @@ msgstr "%s 파일 압축 중 오류"
msgid "text may not appear inside <%s>"
msgstr "<%s> 안에는 문자가 들어갈 수 없습니다"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "프로그램 버전을 표시하고 끝납니다"
@@ -2434,8 +2457,8 @@ msgid ""
"directory)"
msgstr "FILE에 참조된 파일을 읽어들일 디렉터리 (기본값: 현재 디렉터리)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "<디렉터리>"
@@ -2493,7 +2516,7 @@ msgstr "C 식별자 이름은 생성한 소스코드에 대해 사용합니다"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "타겟 C 컴파일러 (기본값: CC 환경 변수)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2503,121 +2526,121 @@ msgstr ""
"자원 명세 파일은 .gresource.xml 확장자를 지니며,\n"
"자원 파일은 .gresource라는 확장자를 지닙니다."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "정확히 파일 이름을 하나 지정해야 합니다\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "별명은 최소 2글자 이상이어야 합니다"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "숫자 값이 잘못되었습니다"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> 태그가 이미 있습니다"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' 속성이 이미 있습니다"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "플래그 값은 최소한 1비트 세트가 들어 있어야 합니다"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> 태그에 최소 하나의 <value> 태그가 들어 있어야 합니다"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> 태그가 지정한 범위 안에 들어있지 않습니다"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> 태그는 지정한 열거형 타입의 올바른 멤버가 아닙니다"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> 태그에 지정한 플래그 타입이 아닌 문자열이 들어 있습니다"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> 태그에 <choices>에 들어있지 않은 문자열이 들어 있습니다"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/>가 이 키에 대해 이미 지정되었습니다."
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range>는 “%s” 타입의 키에 대해 허용되지 않습니다"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "<range>에서 지정된 최소값이 최대값보다 큽니다"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "지원하지 않는 L10N 분류: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "L10N을 요청했지만, gettext 도메인을 지정하지 않았습니다"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "L10N을 사용하지 않고 값에 번역 컨텍스트를 지정했습니다"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "타입이 “%s”인 <default> 값을 파싱하는데 실패했습니다: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr "<choices>는 열거형 타입이 있다고 표시된 키에 대해 지정될 수 없습니다"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "이 키에 대해 <choices>가 이미 지정되어 있습니다"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "“%s” 타입인 키에 대해 <choices>는 허용되지 않습니다"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> 태그를 이미 지정했습니다"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> 태그에는 최소 하나의 <choice> 태그가 들어 있어야 합니다"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases>를 이 키에 대해 이미 지정했습니다"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2625,7 +2648,7 @@ msgstr ""
"<aliases>는 열거형이나 플래그 타입의 키에 대해서, 또는 <choices> 다음에만 지"
"정할 수 있습니다."
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2634,42 +2657,42 @@ msgstr ""
"<alias value='%s'/> 태그가 지정되었지만 “%s”이(가) 이미 열거형 타입의 멤버입"
"니다"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"<alias value='%s'/> 태그가 있지만 <choice value='%s'/> 태그가 이미 있습니다"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> 태그가 이미 있습니다"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "참조 대상인 “%s”은(는) 열거형 타입이 아닙니다"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "참조 대상인 “%s”이(가) <choices> 안에 없습니다"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases>에 최소 하나의 <alias>가 들어 있어야 합니다"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "빈 이름은 허용하지 않습니다"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "잘못된 이름 “%s”: 소문자로 시작해야 합니다"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2678,36 +2701,36 @@ msgstr ""
"잘못된 이름 “%s”: “%c” 문자가 잘못되었습니다. 소문자, 숫자, 빼기 문자(“-”)만 "
"허용합니다."
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "잘못된 이름 “%s”: 두 개 연속된 빼기 기호는 (“--”) 허용하지 않습니다."
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "잘못된 이름 “%s”: 마지막 문자로 빼기 기호는 (“-”) 안됩니다."
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "잘못된 이름 “%s”: 최대 길이는 1024입니다"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> 태그를 이미 지정했습니다"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "“list-of” 스키마에 키를 추가할 수 없습니다"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> 태그가 이미 있습니다"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2716,7 +2739,7 @@ msgstr ""
"<key name='%s'> 태그는 <key name='%s'> 태그를(<schema id='%s'> 스키마) 감춥니"
"다. 값을 수정하려면 <override> 태그를 사용하십시오"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2724,56 +2747,56 @@ msgid ""
msgstr ""
"<key>의 속성으로 “type”, “enum”, “flags” 중에 정확히 하나를 지정해야 합니다"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> 태그를(아직) 정의하지 않았습니다."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "GVariant 형식 문자열(“%s”)이 올바르지 않습니다"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> 태그가 있지만 스키마는 아무 것도 확장하지 않습니다"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "덮어쓸 <key name='%s'> 태그가 없습니다"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> 태그가 이미 있습니다"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> 태그가 이미 있습니다"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> 태그는 아직 없는 “%s” 스키마를 확장합니다"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> 태그는 아직 없는 “%s” 스키마의 목록입니다"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "경로가 있는 스키마의 목록은 있으면 안 됩니다"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "경로가 있는 스키마를 확장할 수 없습니다"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2781,7 +2804,7 @@ msgstr ""
"<schema id='%s'> 태그는 목록이 아닌 <schema id='%s'> 스키마를 확장하는 목록입"
"니다"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2790,17 +2813,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> 태그는 <schema id='%s' list-of='%s'> 스키마를 "
"확장하지만, “%s”은(는) “%s”을(를) 확장하지 않습니다."
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "경로를 지정할 경우 슬래시로 시작하고 끝나야 합니다"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "목록의 경로는 “:/”로 끝나야 합니다"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2809,49 +2832,49 @@ msgstr ""
"주의: “%s” 스키마에 “%s” 경로가 있습니다. “/apps/”, “/desktop/” 또는 “/"
"system/”으로 시작하는 경로는 사용이 중지될 예정입니다."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> 태그가 이미 있습니다"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "<%2$s> 안에는 <%1$s> 요소를 하나만 쓸 수 있습니다"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "<%s> 요소는 최상위에 사용할 수 없습니다"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "<default> 엘리먼트가 <key>에 필요합니다"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "<%s> 안에는 문자가 들어갈 수 없습니다"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "주의: <schema id='%s'/>에 정의되지 않은 참조"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "--strict 옵션을 지정했습니다. 끝냅니다."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "이 파일 전체를 무시합니다."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "이 파일을 무시합니다."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2860,7 +2883,7 @@ msgstr ""
"“%s” 키가 “%s” 스키마에 없습니다 (오버라이드 파일 “%s”). 이 키에 대한 오버라"
"이드를 무시합니다."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2869,7 +2892,7 @@ msgstr ""
"“%s” 키가 “%s” 스키마에 없고 (오버라이드 파일 “%s”), --strict 옵션을 지정했으"
"므로 끝납니다."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2878,7 +2901,7 @@ msgstr ""
"지역화 키 “%s”에 (스키마 “%s”, 오버라이드 파일 “%s”) 대한 데스크톱별 오버라이"
"드를 제공할 수 없습니다. 이 키에 대한 오버라이드를 무시합니다."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2887,7 +2910,7 @@ msgstr ""
"지역화 키 “%s”에 (스키마 “%s”, 오버라이드 파일 “%s”) 대한 데스크톱별 오버라이"
"드를 제공할 수 없고, --strict 옵션을 지정했으므로 끝납니다."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2896,7 +2919,7 @@ msgstr ""
"“%s” 키를 (“%s” 스키마) 해석하는데 오류 (오버라이드 파일 “%s”): %s. 이 키에 "
"대한 오버라이드를 무시합니다."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2905,7 +2928,7 @@ msgstr ""
"“%s” 키를 (“%s” 스키마) 해석하는데 오류 (오버라이드 파일 “%s”): %s. --strict "
"옵션을 지정했으므로 끝납니다."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2914,7 +2937,7 @@ msgstr ""
"오버라이드 파일 “%3$s”, “%2$s” 스키마의 “%1$s” 키 오버라이드는 주어진 스키마"
"의 범위에서 벗어납니다. 이 키에 대한 오버라이드를 무시합니다."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2923,7 +2946,7 @@ msgstr ""
"덮어 쓸 파일 “%3$s”, “%2$s” 스키마의 “%1$s” 키 오버라이드는 주어진 스키마의 "
"범위에서 벗어나고, --strict 옵션을 지정했으므로 끝납니다."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2932,7 +2955,7 @@ msgstr ""
"오버라이드 파일 “%3$s”, “%2$s” 스키마의 “%1$s” 키는 올바른 값 중 하나가 아닙"
"니다. 이 키에 대한 오버라이드를 무시합니다."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2941,26 +2964,26 @@ msgstr ""
"오버라이드 파일 “%3$s”, “%2$s” 스키마의 “%1$s” 키는 올바른 값 중 하나가 아니"
"고, --strict 옵션을 지정했으므로 끝납니다."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "gschemas.compiled 파일을 저장할 위치"
# 옵션 설명
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "스키마에 오류가 하나라도 있으면 중지합니다"
# 옵션 설명
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "gschema.compiled 파일을 쓰지 않습니다"
# 옵션 설명
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "키 이름을 제한하지 않습니다"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -2970,24 +2993,24 @@ msgstr ""
"스키마 파일 확장자는 .schema.xml이어야 하고,\n"
"캐시 파일 이름은 gschemas.compile이어야 합니다."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "정확히 디렉터리 이름을 하나 지정해야 합니다"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "스키마 파일이 없습니다: 아무 것도 하지 않습니다."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "스키마 파일이 없습니다: 현재 출력 파일을 제거합니다."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "잘못된 파일 이름 %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "%s의 파일 시스템 정보를 가져오는 중 오류: %s"
@@ -2996,256 +3019,256 @@ msgstr "%s의 파일 시스템 정보를 가져오는 중 오류: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "%s 파일이 들어 있는 마운트가 없습니다"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "루트 디렉터리의 이름을 바꿀 수 없습니다"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "%s 파일의 이름 바꾸는 중 오류: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "파일 이름을 바꿀 수 없습니다. 파일이 이미 있습니다"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "잘못된 파일 이름"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "%s 파일을 여는 중 오류: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "%s 파일 제거하는 중 오류: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "%s 파일 버리는 중 오류: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "휴지통 디렉터리(%s)를 만들 수 없습니다: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "%s 휴지통의 상위 디렉터리를 찾을 수 없습니다"
# reflink/clone은 btrfs에서 임시 복사하는 걸 말한다
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "시스템 내부 마운트에 대해 휴지통은 지원하지 않습니다"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "%s 휴지통 디렉터리를 (%s 버리기) 찾을 수 없거나 만들 수 없습니다"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "%s에 대한 휴지통 정보 파일을 만들 수 없습니다: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "%s 파일을 파일 시스템 경계를 넘어서서 버릴 수 없습니다"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "%s 파일을 버릴 수 없습니다: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "%s 파일을 버릴 수 없습니다"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "%s 디렉터리를 만드는 중 오류: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "파일 시스템이 심볼릭 링크를 지원하지 않습니다"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "%s 심볼릭 링크를 만드는 중 오류: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "%s 파일 옮기는 중 오류: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "디렉터리를 덮어 써서 디렉터리를 옮길 수 없습니다"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "백업 파일 만들기가 실패했습니다"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "대상 파일을 제거하는 중 오류: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "다른 마운트 사이에 옮기기는 지원하지 않습니다"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "%s의 디스크 사용량을 알아낼 수 없습니다: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "속성 값은 NULL이 아니어야 합니다"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "잘못된 속성 형식 (문자열 또는 잘못된 항목 필요)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "잘못된 확장 속성 이름"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "확장 속성 “%s” 설정 중 오류: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (잘못된 인코딩)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "“%s” 파일 정보를 가져오는 중 오류: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "파일 서술자 정보를 가져오는 중 오류: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "잘못된 속성 형식 (uint32 필요)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "잘못된 속성 형식 (uint64 필요)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "잘못된 속성 형식 (바이트 문자열 필요)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "심볼릭 링크에는 권한을 설정할 수 없습니다"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "권한 설정 중 오류: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "소유자 설정 중 오류: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "심볼릭 링크는 NULL이 아니어야 합니다"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "심볼릭 링크 설정 중 오류: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "심볼릭 링크 설정 중 오류: 파일이 심볼릭 링크가 아닙니다"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "유닉스 타임스탬프 %2$lld에 대해 추가 나노초 %1$d 값이 음수입니다"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"유닉스 타임스탬프 %2$lld에 대해 추가 나노초 %1$d 값이 1초에 도달했습니다"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "유닉스 타임스탬프 %lld 값이 64비트에 들어가지 않습니다"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "유닉스 타임스탬프 %lld 값이 윈도우에서 지원하는 범위 밖에 있습니다"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "“%s” 파일이름을 UTF-16으로 변환할 수 없습니다."
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "“%s” 파일을 열 수 없습니다: 윈도우 오류 %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "“%s” 파일에 대해 수정 시각 또는 접근 시각 설정에 오류: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "수정 시각이나 접근 시각을 설정하는데 오류: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "SELinux 컨텍스트는 NULL이 아니어야 합니다"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "이 시스템은 SELinux를 사용하지 않습니다"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "SELinux 컨텍스트 설정 중 오류: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "%s 속성 설정은 지원하지 않습니다"
@@ -3292,13 +3315,13 @@ msgstr "백업 사본을 만드는 중 오류: %s"
msgid "Error renaming temporary file: %s"
msgstr "임시 파일의 이름을 바꾸는 오류: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "파일을 자르는 중 오류: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "“%s” 파일을 여는 중 오류: %s"
@@ -3315,7 +3338,7 @@ msgstr "대상 파일이 일반 파일이 아닙니다"
msgid "The file was externally modified"
msgstr "파일이 외부에서 바뀌었습니다"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "예전 파일을 제거하는 중 오류: %s"
@@ -3446,42 +3469,42 @@ msgstr "NetworkManager 버전이 너무 오래 됐습니다"
msgid "Output stream doesn’t implement write"
msgstr "출력 스트림이 write를 구현하지 않았습니다"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "%s에 전달된 벡터의 합이 너무 큽니다"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "원본 스트림을 이미 닫았습니다"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "지정하지 않은 프록시 찾기 실패"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "“%s”의 주소를 알아내는 데 오류: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s 기능이 구현되지 않았습니다"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "잘못된 도메인"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "“%s” 위치의 자원이 없습니다"
@@ -3491,16 +3514,16 @@ msgstr "“%s” 위치의 자원이 없습니다"
msgid "The resource at “%s” failed to decompress"
msgstr "“%s” 위치의 자원에 대해 압축을 푸는데 실패했습니다"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "자원 파일의 이름을 바꿀 수 없습니다"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "“%s” 위치의 자원은 디렉터리가 아닙니다"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "입력 스트림에 탐색을 구현하지 않았습니다"
@@ -3865,7 +3888,8 @@ msgstr "올바른 소켓이 아닙니다. 초기화가 다음 이유로 실패
msgid "Socket is already closed"
msgstr "소켓을 이미 닫았습니다"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "소켓 입출력 시간 제한이 넘었습니다"
@@ -3874,160 +3898,160 @@ msgstr "소켓 입출력 시간 제한이 넘었습니다"
msgid "creating GSocket from fd: %s"
msgstr "파일 서술자에서 GSocket을 만드는 중: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "소켓을 만들 수 없습니다: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "알 수 없는 계열을 지정했습니다"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "알 수 없는 프로토콜을 지정했습니다"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "데이터그램 용도가 아닌 소켓에 데이터그램 동작을 수행할 수 없습니다."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr "제한시간을 설정한 소켓에 데이터그램 동작을 수행할 수 없습니다."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "로컬 주소를 알아낼 수 없습니다: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "원격 주소를 알아낼 수 없습니다: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "연결을 받을 수 없습니다: %s"
# NOTE: bind(2)를 뜻함
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "%s 주소에 바인드하는데 오류: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "멀티캐스트 그룹에 참여하는 중 오류: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "멀티캐스트 그룹을 나오는 중 오류: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "소스 지향 멀티캐스트를 지원하지 않습니다"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "소켓 패밀리를 지원하지 않습니다"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "소스 지향 주소가 IPv4 주소가 아닙니다"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "인터페이스 이름이 너무 깁니다"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "인터페이스가 없습니다: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "IPv4 소스 지향 멀티캐스트를 지원하지 않습니다"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "IPv6 소스 지향 멀티캐스트를 지원하지 않습니다"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "연결을 받아들이는데 오류: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "연결이 진행 중입니다"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "밀린 오류를 알아낼 수 없습니다: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "데이터를 받는데 오류: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "데이터를 보내는데 오류: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "소켓을 닫을 수 없습니다: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "소켓을 닫는데 오류: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "소켓 조건을 기다리는 중: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "메시지를 보낼 수 없습니다: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "메시지 벡터가 너무 큽니다"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "메시지를 보내는 중 오류: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "윈도우에서는 GSocketControlMessage를 지원하지 않습니다"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "메시지를 받는데 오류: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "소켓 암호 데이터를 읽을 수 없습니다: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials가 이 OS에서 구현되지 않았습니다"
@@ -4147,7 +4171,7 @@ msgstr "SOCKSv5 프록시가 해당 주소 형식을 지원하지 않습니다."
msgid "Unknown SOCKSv5 proxy error."
msgstr "알 수 없는 SOCKSv5 프록시 오류."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "하위 프로세스와 통신을 위한 파이프를 만드는 중 실패 (%s)"
@@ -4162,46 +4186,46 @@ msgstr "이 플랫폼에서는 파이프를 지원하지 않습니다"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "GThemedIcon 인코딩의 %d 버전을 처리할 수 없습니다"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "올바른 주소가 없습니다"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "“%s” 주소의 호스트 이름을 알아내는 데 오류: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "DNS %s 레코드 파싱에 오류: 잘못된 형식의 DNS 패킷"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "“%s”에 대한 요청 형식에 DNS 레코드가 없습니다"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "일시적으로 “%s” 주소를 알아낼 수 없습니다"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "“%s”의 주소를 알아내는 데 오류"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "잘못된 형식의 DNS 패킷"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "“%s”에 대한 DNS 응답을 파싱하는데 실패했습니다: "
@@ -4256,55 +4280,55 @@ msgstr "입력한 암호가 올바르지 않습니다."
msgid "Sending FD is not supported"
msgstr "FD 보내기는 지원하지 않습니다"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "한 개의 제어 메시지가 와야 하지만, %d개를 받았습니다"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "예상치 못한 부속 데이터의 형식입니다"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "한 개의 파일 서술자가 와야 하지만, %d개를 받았습니다\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "올바르지 않은 파일 서술자를 받았습니다"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "FD 받기는 지원하지 않습니다"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "암호 데이터를 보내는데 오류: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "소켓에 SO_PASSCRED를 사용하는지 검사하는데 오류: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "SO_PASSCRED 사용 오류: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr "암호 데이터 1바이트를 읽어야 하지만 0바이트 읽음"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "제어 메시지가 올 수 없지만, %d개를 받았습니다"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "SO_PASSCRED 사용 해제 오류: %s"
@@ -4320,7 +4344,7 @@ msgstr "파일 서술자로부터 읽어오는 중 오류: %s"
msgid "Error closing file descriptor: %s"
msgstr "파일 서술자를 닫는 중 오류: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "파일 시스템 루트"
@@ -4403,129 +4427,124 @@ msgstr "dbus 서비스 실행"
msgid "Wrong args\n"
msgstr "잘못된 인자\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "예상치 못하게 “%2$s” 요소에 '%1$s' 속성이 있습니다"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "“%2$s” 요소에 “%1$s” 속성이 없습니다"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "예상치 못하게 “%s” 태그가 있습니다. “%s” 태그가 있어야 합니다"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "예상치 못하게 “%2$s” 안에 “%1$s” 태그가 있습니다"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "북마크 파일에서 잘못된 날짜/시각 ‘%s’"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "데이터 디렉터리에 올바른 북마크 파일이 없습니다"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "“%s” URL에 대한 북마크가 이미 있습니다"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "“%s” URL에 대한 북마크가 없습니다"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "“%s” URL에 대한 북마크에 MIME 형식이 없습니다"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "“%s” URL에 대한 북마크에 개인 플래그가 없습니다"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "“%s” URL에 대한 북마크에 그룹이 설정되어 있지 않습니다"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "“%s”에 대해 북마크를 등록한 “%s” 이름을 가진 프로그램이 없습니다"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "URI “%s”을(를) 사용해 “%s” 실행 명령 확장하기에 실패했습니다"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "변환 입력에 표현할 수 없는 글자가 들어 있습니다"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "입력의 끝에서 부분적인 문자 순서"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "대체 코드셋 “%s”을(를) “%s”(으)로 변환할 수 없습니다"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "변환 입력에서 NUL 바이트가 들어 있습니다"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "변환 출력에서 NUL 바이트가 들어 있습니다"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "URI “%s”은(는) “file” 스키마를 사용하는 절대 경로 URI가 아닙니다"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "로컬 파일 URI “%s”에는 “#”이 들어갈 수 없습니다"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "URI “%s”이(가) 잘못되었습니다"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "URI “%s”의 호스트 이름이 잘못되었습니다"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "URI “%s”은(는) 잘못된 이스케이프 문자가 들어 있습니다"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "경로이름 “%s”은(는) 절대 경로가 아닙니다"
@@ -4948,78 +4967,78 @@ msgstr "오후"
msgid "Error opening directory “%s”: %s"
msgstr "디렉터리 “%s” 여는 중 오류 : %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "“%2$s” 파일을 읽는데 %1$lu 바이트를 할당할 수 없습니다"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "“%s” 파일 읽는 중 오류: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "“%s” 파일이 너무 큽니다"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "파일 “%s”에서 읽기 실패: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "파일 “%s” 열기 실패: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "파일 “%s”의 속성 가져오기 실패: fstat() 실패: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "파일 “%s” 열기 실패: fdopen() 실패: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "파일 “%s”의 이름을 “%s”(으)로 바꾸는데 실패: g_rename() 실패: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "파일 “%s” 쓰기 실패: write() 실패: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "파일 “%s” 쓰기 실패: fsync() 실패: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "파일 “%s” 만들기 실패: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "기존의 “%s” 파일을 지울 수 없습니다: g_unlink() 실패: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "“%s” 서식이 잘못되었습니다. “%s”이(가) 들어 있으면 안 됩니다"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "“%s” 서식에 XXXXXX가 없습니다"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "심볼릭 링크 “%s” 읽기 실패: %s"
@@ -5045,15 +5064,15 @@ msgstr "일부 문자에서 채널 끝냄"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "g_io_channel_read_to_endi로 raw 읽기를 할 수 없습니다"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "검색 디렉터리 안에 올바른 키 파일이 없습니다"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "일반 파일이 아닙니다"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5061,49 +5080,49 @@ msgstr ""
"키 파일에 들어 있는 “%s” 줄은 키-값 쌍도 아니고, 그룹도 아니고, 주석도 아닙니"
"다"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "잘못된 그룹 이름: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "키 파일이 그룹으로 시작하지 않습니다"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "잘못된 키 이름: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "키 파일에 지원하지 않는 “%s” 인코딩이 들어 있습니다"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "키 파일에 “%s” 그룹이 없습니다"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "키 파일에 있는 “%2$s” 그룹의 “%1$s” 키가 없습니다"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "키 파일에 있는 “%s” 키와 “%s” 값은 UTF-8이 아닙니다"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr "키 파일에 있는 “%s” 키의 값을 해석할 수 없습니다."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5112,82 +5131,82 @@ msgstr ""
"키 파일에 해석할 수 없는 값을 지닌 “%2$s” 그룹의 “%1$s” 키가 키 파일에 있습니"
"다."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr ""
"%4$s 값이 있어야 할 “%2$s” 그룹의 “%1$s” 키가 “%3$s” 값을 지니고 있습니다"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "키 파일의 줄 끝에 이스케이프 문자가 있습니다"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4378
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "키 파일에 잘못된 이스케이프 시퀀스 “%s”이(가) 들어 있습니다"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4530
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "값 “%s”을(를) 숫자로 해석할 수 없습니다."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4544
#, c-format
msgid "Integer value “%s” out of range"
msgstr "정수 값 “%s”이(가) 범위를 벗어났습니다"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "값 “%s”을(를) 단정도 실수로 해석할 수 없습니다."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4616
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "값 “%s”을(를) 불리언 값으로 해석할 수 없습니다."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr "“%s%s%s%s” 파일의 속성 가져오기 실패: fstat() 실패: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "%s%s%s%s 매핑 실패: mmap() 실패: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "파일 “%s” 열기 실패: dopen() 실패: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "%d째 줄 %d 문자에서 오류: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "이름에 잘못 UTF-8 인코딩된 텍스트 — “%s” 부분이 올바르지 않습니다"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "“%s”은(는) 올바른 이름이 아닙니다"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "“%s”은(는) 올바른 이름이 아닙니다: “%c”"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "%d째 줄에서 오류: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5196,7 +5215,7 @@ msgstr ""
"“%-.*s”의 구문 해석에 실패했습니다. 문자 참조에는 숫자를 써야 합니다 (예를 "
"들어 &#234;) — 숫자가 너무 클 수도 있습니다"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5205,24 +5224,24 @@ msgstr ""
"문자 참조가 세미콜론으로 끝나지 않습니다. 보통 엔티티 시작에 사용하려고 하지 "
"않은 곳에서 & 기호를 사용한 경우입니다 — 이런 경우 &amp; 라고 쓰십시오"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "문자 참조 “%-.*s”에 대응되는 문자는 허용되지 않습니다"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"비어있는 엔티티 “&;”를 찾았습니다. 올바른 엔티티는 &amp; &quot; &lt; &gt; "
"&apos; 입니다"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "엔티티 이름 “%-.*s”이(가) 알려져 있지 않습니다"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5231,11 +5250,11 @@ msgstr ""
"고 하지 않은 곳에서 & 기호를 사용한 경우입니다 — 이런 경우 &amp; 라고 쓰십시"
"오"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "문서는 요소로 시작하여야 합니다 (예 <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5244,7 +5263,7 @@ msgstr ""
"“%s”은(는) “<” 문자 다음에 쓸 수 없습니다. 이 문자로는 요소 이름을 시작할 수 "
"없습니다"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5252,12 +5271,12 @@ msgid ""
msgstr ""
"이상한 문자 “%s”. 빈 요소 “%s” 태그를 끝내는 “>” 문자가 나타나야 합니다"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "“%s” 요소에 속성이 너무 많습니다"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5265,7 +5284,7 @@ msgstr ""
"이상한 문자 “%1$s”. 요소 “%3$s”의 속성 이름 “%2$s” 다음에 “=”이 나타나야 합"
"니다"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5275,7 +5294,7 @@ msgstr ""
"이상한 문자 “%s”. 요소 “%s”의 시작 태그를 끝내는 “>” 혹은 “/”가 나타나거나, "
"속성이 나와야 합니다. 아마도 속성 이름에 잘못된 문자를 쓴 경우입니다."
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5284,7 +5303,7 @@ msgstr ""
"이상한 문자 “%1$s”. 요소 “%3$s”의 속성 “%2$s”의 값을 부여할 때 “=” 기호 다음"
"에 따옴표가 나타나야 합니다"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5293,7 +5312,7 @@ msgstr ""
"“%s”은(는) “</” 다음에 쓸 수 있는 문자가 아닙니다. “%s”은(는) 요소 이름을 시"
"작할 수 없습니다"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5302,25 +5321,25 @@ msgstr ""
"“%s”은(는) 요소 “%s”을(를) 닫은 다음에 쓸 수 있는 문자가 아닙니다. “>” 문자"
"를 쓸 수 있습니다"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "“%s” 요소는 닫혔고, 현재 아무 요소도 열려 있지 않습니다"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "“%s” 요소는 닫혔고, 현재 열려 있는 요소는 “%s”입니다"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "문서가 비어있거나 공백문자만 들어 있습니다"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "“<” 바로 다음에 문서가 갑작스럽게 끝났습니다"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5329,7 +5348,7 @@ msgstr ""
"요소가 열려 있는 상태로 문서가 갑작스럽게 끝났습니다 — 마지막에 열려 있던 요"
"소는 “%s”입니다"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5337,19 +5356,19 @@ msgid ""
msgstr ""
"문서가 갑작스럽게 끝났습니다. <%s/> 태그를 끝내는 > 기호가 나타나야 합니다"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "요소 이름에서 문서가 갑작스럽게 끝났습니다"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "에트리뷰트 이름에서 문서가 갑작스럽게 끝났습니다"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "요소의 열기 태그 안에서 문서가 갑작스럽게 끝났습니다."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5357,22 +5376,22 @@ msgstr ""
"속성 이름 다음의 = 기호 다음에서 문서가 갑작스럽게 끝났습니다. 속성 값이 없습"
"니다"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "속성 값 안에서 문서가 갑작스럽게 끝났습니다"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "“%s” 요소의 닫기 태그 안에서 문서가 갑작스럽게 끝났습니다"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr "“%s” 요소의 닫기 태그 안에서 문서가 갑작스럽게 끝났습니다"
# FIXME: processing instruction?
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr "주석문 혹은 처리 안내자 태그 안에서 문서가 갑작스럽게 끝났습니다"
@@ -5435,184 +5454,180 @@ msgstr "%s에 대한 인자가 빠졌습니다"
msgid "Unknown option %s"
msgstr "알 수 없는 옵션 %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "개체가 손상되었습니다"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "메모리 부족"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "역추적 최대값에 도달했습니다"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "내부 오류"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "패턴 안에 부분 매치에서 지원하지 않는 항목이 들어 있습니다."
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr "후위 참조를 조건으로 사용하면 부분 매치에서 지원하지 않습니다."
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "재귀 최대값에 도달했습니다"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "오프셋이 잘못되었습니다"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "재귀 순환"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "일치 모드를 요청했지만 JIT 용도로 컴파일되지 않았습니다."
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "알 수 없는 오류"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "패턴 끝에 \\"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "패턴 끝에 \\c"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "\\ 다음에 인식할 수 없는 문자가 있습니다"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "{} 안의 숫자가 순서를 벗어났습니다"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "{} 안의 숫자가 너무 큽니다"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "문자 클래스에서 끝나는 ] 괄호가 빠졌습니다"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "문자 클래스에서 이스케이프 시퀀스가 잘못되었습니다"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "문자 클래스에서 범위가 순서를 벗어났습니다"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "반복할 사항 없음"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "(? 또는 (?- 다음에 알 수 없는 문자가 있습니다"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX 네임드 클래스는 클래스 안에서만 지원합니다"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "POSIX 사전 순서 항목은 지원하지 않습니다"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "끝나는 ) 괄호가 없습니다"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "없는 하위 패턴을 참조합니다"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "주석 다음에 ) 괄호가 빠졌습니다"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "정규식이 너무 깁니다"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "(?( 다음에 숫자나 이름의 형식이 잘못되었습니다"
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "룩비하인드 어서션이 고정된 길이가 아닙니다"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "조건문 그룹에 브랜치가 2개보다 많이 들어 있습니다"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "(?( 다음에 어서션이 이와야 합니다"
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "번호를 매긴 참조는 0이 되어서는 안됩니다"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "알 수 없는 POSIX 클래스 이름"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "\\x{...} 시퀀스의 문자 값이 너무 큽니다"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C는 룩비하인드 어서션에서 사용할 수 없습니다"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "하위 패턴 이름에 끝나는 글자가 빠졌습니다"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "이름 있는 2개의 하위 패턴의 이름이 같습니다"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "\\P 혹은 \\p 시퀀스의 형식이 잘못되었습니다"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "\\P 혹은 \\p 다음에 속성 이름을 알 수 없습니다"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "하위 패턴 이름이 너무 깁니다 (최대 32글자)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "이름 있는 하위 패턴이 너무 많습니다 (최대 10,000개)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "8진수값이 \\377보다 큽니다"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "DEFINE 그룹에 브랜치가 여러 개 들어 있습니다"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "일관성 없는 NEWLINE 옵션"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5620,117 +5635,117 @@ msgstr ""
"중괄호, 각괄호, 따옴표가 붙은 이름 또는 숫자, 또는 순수한 숫자가 따라오지 않"
"았습니다"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "(*ACCEPT), (*FAIL), 또는 (*COMMIT)을 감안하여 인자를 허용하지 않습니다"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB)를 인식하지 않았습니다"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "숫자가 너무 큽니다"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "(?& 다음에 하위 패턴 이름이 빠졌습니다"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "동일한 갯수의 하위 패턴에 대해 다른 이름을 허용하지 않습니다"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK)에 인자가 있어야 합니다"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c 다음에 아스키 문자가 있어야 합니다"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr "\\k 다음에 중괄호, 각괄호, 따옴표가 붙은 이름이 따라오지 않았습니다"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "클래스에서 \\N을 지원하지 않습니다"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "(*MARK), (*PRUNE), (*SKIP), 또는 (*THEN)의 이름이 너무 깁니다"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "코드 오버플로우"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "(?P 다음에 알 수 없는 문자"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "컴파일 작업 공간을 넘어갔습니다"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "이전에 검사한 참조할 하위 패턴이 없습니다"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "정규 표현식 %s을(를) 맞추는 도중 오류가 발생했습니다: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "PCRE 라이브러리가 UTF8 지원 없이 컴파일되었습니다"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "비호환 옵션을 사용하여 PCRE 라이브러리 컴파일했습니다"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "‘%s’ 정규 표현식을 컴파일하는 중 %s 문자에서 오류가 발생했습니다: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "16 진수 또는 “}”가 있어야 합니다"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "16 진수가 있어야 합니다"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "심볼 참조에 “<” 기호가 없습니다"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "심볼 참조가 끝나지 않았습니다"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "심볼 참조에 내용이 없습니다"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "숫자가 있어야 합니다"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "심볼 참조가 잘못되었습니다"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "마지막 “\\”가 없습니다"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "알 수 없는 이스케이프 시퀀스"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "“%s” 바꿀 문자열을 읽는 중 %lu번째 문자에서 오류가 발생했습니다: %s"
@@ -5762,136 +5777,141 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "텍스트가 비어 있음(또는 공백만 들어 있음)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "하위 프로세스에서 데이터를 읽기 실패 (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "하위 프로세스에서 데이터를 읽는 중 예상치 못한 오류 (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "waitpid()에서 예상치 못한 오류 (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "하위 프로세스가 %ld 코드로 끝났습니다"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "하위 프로세스가 %ld 시그널로 죽었습니다"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "하위 프로세스가 %ld 시그널로 멈췄습니다"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "하위 프로세스가 예기치 않게 끝났습니다"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "하위 파이프로 부터 읽기 실패 (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "하위 프로세스 “%s”을(를) 실행하기 실패 (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "포크 실패 (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "디렉터리 “%s”(으)로 바꾸기 실패 (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "하위 프로세스 “%s”을(를) 실행하기 실패 (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "파일 디스크립터 리맵하기 위한 파일 열기 실패 (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "하위 프로세스에 대한 파일 디스크립터 복제 실패 (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "하위 프로세스(%s) 생성 실패"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "하위 프로세스에 대한 파일 디스크립터 닫기 실패 (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "하위 프로세스 “%s”을(를) 실행하는 중 알 수 없는 오류"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "하위 PID 파이프에서 필요한 데이터를 읽는데 실패했습니다 (%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "잘못된 원본 FD 인자"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "하위 프로세스에서 데이터 읽기 실패"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "하위 프로세스 실행 실패 (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "하위 프로세스에서 dup() 실패 (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "잘못된 프로그램 이름: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "인자에서 잘못된 문자열, %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "환경에서 잘못된 문자열: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "잘못된 현재 디렉터리: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "도움 프로그램 실행 실패 (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -5899,231 +5919,231 @@ msgstr ""
"하위 프로세스에서 데이터를 읽는중 g_io_channel_win32_poll()에서 예기치 못한 "
"오류"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "빈 문자열은 숫자가 아닙니다"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "“%s”은(는) 부호 있는 숫자가 아닙니다"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "“%s” 숫자가 [%s, %s] 범위를 벗어납니다"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "“%s”은(는) 부호 없는 숫자가 아닙니다"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "URI에 잘못된 % 인코딩"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "URI에 잘못된 문자"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "URI에 UTF-8 아닌 문자"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "URI에 잘못된 IPv6 주소 ‘%.*s’"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "URI에 잘못 인코딩된 IP 주소 ‘%.*s’"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "URI에 국제화된 호스트이름 ‘%.*s’ 잘못됨"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "URI에서 포트를 (‘%.*s’) 해석할 수 없습니다"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "URI에서 포트가 (‘%.*s’) 범위를 벗어납니다"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "‘%s’ URI는 절대 URI가 아닙니다"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "URI ‘%s’에 호스트 구성 요소가 없습니다"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "URI가 절대 URI가 아니고, 기준 URI를 제공하지 않았습니다"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "‘=’ 및 파라미터 값이 없습니다"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "메모리를 할당하는데 실패했습니다"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "UTF-8 문자 범위를 벗어났습니다"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "변환 입력 순서가 잘못되었습니다"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "UTF-16 문자 범위를 벗어났습니다"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "바이트"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "비트"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6131,7 +6151,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6139,7 +6159,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6148,27 +6168,27 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
msgstr[0] "%s 바이트"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s 비트"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6179,39 +6199,45 @@ msgstr[0] "%u 바이트"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
+#~ msgid "GApplication options"
+#~ msgstr "GApplication 옵션"
+
#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "편집 이름: %s\n"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "로컬 파일 URI “%s”에는 “#”이 들어갈 수 없습니다"
+
+#~ msgid "backtracking limit reached"
+#~ msgstr "역추적 최대값에 도달했습니다"
#~ msgid "internal error or corrupted object"
#~ msgstr "내부 오류 또는 개체가 손상되었습니다"
diff --git a/po/lt.po b/po/lt.po
index 12ce60d99..c0171af64 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,14 +7,14 @@
# Gintautas Miliauskas <gintas@akl.lt>, 2007, 2008.
# Rimas Kudelis <rq@akl.lt>, 2010.
# Algimantas Margevičius <gymka@mail.ru>, 2011.
-# Aurimas Černius <aurisc4@gmail.com>, 2010-2022.
+# Aurimas Černius <aurisc4@gmail.com>, 2010-2023.
#
msgid ""
msgstr ""
"Project-Id-Version: lt\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-15 20:23+0000\n"
-"PO-Revision-Date: 2022-08-22 23:17+0300\n"
+"POT-Creation-Date: 2023-08-31 10:14+0000\n"
+"PO-Revision-Date: 2023-08-31 23:15+0300\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
"Language: lt\n"
@@ -22,46 +22,46 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"(n%100<10 || n%100>=20) ? 1 : 2)\n"
-"X-Generator: Gtranslator 40.0\n"
+"(n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Poedit 3.3.2\n"
"X-Project-Style: gnome\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Numatytųjų programų nustatymas dar nepalaikomas"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr "Programos nustatymas kaip paskutinės naudotos dar nepalaikomas"
-#: gio/gappinfo.c:808
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "Nepavyko rasti turinio tipui „%s“ numatytos programos"
-#: gio/gappinfo.c:868
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Nepavyko rasti URI schemai „%s“ numatytos programos"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "GApplication parametrai"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "GApplication parametrai:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Rodyti GApplication parametrus"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
"Įveskite GApplication tarnybos veikseną (naudoti iš D-Bus tarnybų failų)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Pakeisti programos ID"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Pakeisti veikiančią"
@@ -141,7 +141,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Programos identifikatorius D-Bus formatu (pvz.: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FAILAS"
@@ -233,11 +233,11 @@ msgstr "nepavyko prisijungti prie D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "klaida siunčiant %s pranešimą programai: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "veiksmo pavadinimas turi būti pateiktas po programos id\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -246,25 +246,25 @@ msgstr ""
"netinkamas veiksmo pavadinimas: „%s“\n"
"veiksmų pavadinimai turi susidėti tik iš alfaskaitmenų, „-“ ir „.“\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "klaida skaitant veiksmo parametrą: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "veiksmai priima ne daugiau kaip vieną parametrą\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "list-actions komanda priima tik programos id"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "nepavyksta rasti desktop failo programai %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -274,9 +274,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Per didelė skaičiavimo reikšmė perduota %s"
@@ -290,8 +290,8 @@ msgstr "Pozicijos perkėlimas sraute nepalaikomas"
msgid "Cannot truncate GBufferedInputStream"
msgstr "Nepavyko sutrumpinti GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Srautas jau užvertas"
@@ -299,7 +299,7 @@ msgstr "Srautas jau užvertas"
msgid "Truncate not supported on base stream"
msgstr "Trumpinimas sraute nepalaikomas"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -318,28 +318,28 @@ msgid "Not enough space in destination"
msgstr "Nepakanka paskirties vietos"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Klaidinga baitų seka keitimo įvedime"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Klaida keitimo metu: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Atšaukiamas inicijavimas nepalaikomas"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Keitimas iš koduotės „%s“ į koduotę „%s“ nepalaikomas"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Nepavyko atverti keitiklio iš „%s“ į „%s“"
@@ -382,17 +382,17 @@ msgstr "Įgaliojimų apgavimas neįmanomas šioje operacinėje sistemoje"
msgid "Unexpected early end-of-stream"
msgstr "Netikėta ankstyva srauto pabaiga"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Nepalaikomas raktas „%s“ adreso įvestyje „%s“"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Beprasmė rakto/reikšmės poros kombinacija adreso įvestyje „%s“"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -401,7 +401,7 @@ msgstr ""
"Adresas „%s“ nėra tinkamas (reikia įvesti vienintelį path, dir, tmpdir arba "
"abstract raktą)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -531,7 +531,7 @@ msgstr ""
"Nepavyko nustatyti sesijos magistralės adreso (nerealizuota šiai operacinei "
"sistemai)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -540,7 +540,7 @@ msgstr ""
"Nepavyko nustatyti magistralės adreso iš DBUS_STARTER_BUS_TYPE aplinkos "
"kintamojo - nežinoma reikšmė „%s“"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -548,7 +548,7 @@ msgstr ""
"Nepavyko nustatyti magistralės adreso, kadangi DBUS_STARTER_BUS_TYPE "
"aplinkos kintamasis nenustatytas"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Nežinomas magistralės tipas %d"
@@ -569,20 +569,24 @@ msgstr ""
"Baigėsi visi turimi tapatybės patvirtinimo mechanizmai (bandyta: %s) "
"(turimi: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Netikėtas turinio trūkumas bandant nuskaityti baitą"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Naudotojų ID turi sutapti porininkui bei serveriui"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Atšaukta per GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Klaida gaunant informaciją apie katalogą „%s“: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -590,33 +594,33 @@ msgstr ""
"Katalogo „%s“ leidimai yra suformuoti neteisingai. Tikėtasi mode 0700, gauta "
"0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Klaida kuriant katalogą %s: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Operacija nepalaikoma"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Klaida atveriant raktinę „%s“ skaitymui: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
"%d eilutė raktinės vietoje „%s“ su turiniu „%s“ yra suformuota neteisingai"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -624,7 +628,7 @@ msgstr ""
"Pirmoji leksema raktinės %d eilutės vietoje „%s“ su turiniu „%s“ yra "
"suformuota neteisingai"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -632,158 +636,167 @@ msgstr ""
"Antroji leksema raktinės %d eilutės vietoje „%s“ su turiniu „%s“ yra "
"suformuota neteisingai"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Nerastas slapukas su id %d raktinės vietoje „%s“"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Klaida kuriant rakinimo failą „%s“: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Klaida trinant nebegaliojantį rakinimo failą „%s“: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Klaida užveriant (nesusietą) rakinimo failą „%s“: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Klaida atsiejant rakinimo failą „%s“: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Klaida atveriant raktinę „%s“ rašymui: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Papildomai, užrakto atlaisvinimas „%s“ taip pat nepavyko: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "Ryšys yra užvertas"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Baigėsi laikas"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr "Nepalaikomi požymiai aptikti konstruojant kliento pusės ryšį"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"Nėra sąsajos „org.freedesktop.DBus.Properties“ objektui, kurio kelias %s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Nėra savybės „%s“"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Savybė „%s“ yra neskaitoma"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Savybė „%s“ nėra rašoma"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr "Klaida nustatant savybę „%s“: tikėtasi tipo „%s“, bet gauta „%s“"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Nėra sąsajos „%s“"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Nėra sąsajos „%s“ objektui, kurio kelias %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Nėra metodo „%s“"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Pranešimo tipas „%s“ neatitinka laukiamo tipo „%s“"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Jau yra eksportuotas objektas sąsajai %s vietoje %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Nepavyko gauti savybės: %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Nepavyko nustatyti savybės: %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Metodas „%s“ grąžino tipą „%s“, bet laukta „%s“"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Metodas „%s“ sąsajoje „%s“ su signatūra „%s“ neegzistuoja"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Pomedis %s jau yra eksportuotas"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Objekto kelyje „%s“ nėra"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "tipas yra NETINKAMAS"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "METHOD_CALL pranešimas: trūksta antraštės lauko PATH arba MEMBER"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"METHOD_CALL pranešimas: trūksta antraštės lauko PATH arba MEMBER arba jis "
+"netinkamas"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "METHOD_RETURN pranešimas: trūksta REPLY_SERIAL antraštės"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"METHOD_RETURN pranešimas: trūksta REPLY_SERIAL antraštės arba ji netinkama"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "ERROR pranešimas: antraštės lauke trūksta REPLY_SERIAL arba ERROR_NAME"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"ERROR pranešimas: antraštės lauke trūksta REPLY_SERIAL arba ERROR_NAME, arba "
+"ji netinkama"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "SIGNAL pranešimas: trūksta antraštės lauko PATH, INTERFACE arba MEMBER"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"SIGNAL pranešimas: trūksta antraštės lauko PATH, INTERFACE arba MEMBER, arba "
+"ji netinkama"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -791,7 +804,7 @@ msgstr ""
"SIGNAL pranešimas: antraštės laukas PATH naudoja rezervuotą reikšmę /org/"
"freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -799,7 +812,7 @@ msgstr ""
"SIGNAL pranešimas: antraštės laukas INTERFACE naudoja rezervuotą reikšmę org."
"freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
@@ -807,12 +820,12 @@ msgstr[0] "Norėta nuskaityti %lu baitą, bet gauta tik %lu"
msgstr[1] "Norėta nuskaityti %lu baitus, bet gauta tik %lu"
msgstr[2] "Norėta nuskaityti %lu baitų, bet gauta tik %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Tikėtasi NUL baito po simbolių eilutės „%s“, bet rastas baitas %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -821,21 +834,21 @@ msgstr ""
"Tikėtasi teisingos UTF-8 eilutės, bet rasta neteisingų baitų poslinkiu %d "
"(eilutės ilgis yra %d). Teisinga UTF-8 eilutė iki tos vietos buvo „%s“"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Vertė yra per giliai"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Perskaityta reikšmė „%s“ nėra tinkamas D-Bus objekto kelias"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Perskaityta reikšmė „%s“ nėra tinkama D-Bus signatūra"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -848,7 +861,7 @@ msgstr[1] ""
msgstr[2] ""
"Aptiktas %u baitų ilgio masyvas. Maksimalus ilgis yra 2<<26 baitų (64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -857,23 +870,23 @@ msgstr ""
"Aptiktas „a%c“ tipo masyvas, tikėtasi %u kartotinio baitų ilgio, bet rasta "
"%u baitų ilgyje"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Tuščios struktūros (junginiai) D-Bus neleidžiamos"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Perskaityta reikšmė „%s“ variantui nėra tinkama D-Bus signatūra"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr ""
"Klaida atstatant GVariant su tipo eilute „%s“ iš D-Bus telegramos formato"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -882,29 +895,29 @@ msgstr ""
"Netinkama baitų eiliškumo reikšmė. Tikėtasi 0x6c („l“) arba 0x42 („B“), bet "
"rasta 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Netinkama pagrindinė protokolo versija. Tikėtasi 1, bet rasta %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Rasta signatūros antraštė, bet ji nėra signatūros tipo"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Signatūros antraštė su signatūra „%s“ rasta, bet pranešimo pagrindinė dalis "
"tuščia"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr ""
"Perskaityta reikšmė „%s“ nėra tinkama D-Bus signatūra (pagrindinei daliai)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -918,35 +931,35 @@ msgstr[2] ""
"Nėra signatūros antraštės pranešime, bet pranešimo pagrindinė dalis yra %u "
"baitų"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Nepavyko atstatyti pranešimo: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr ""
"Klaida paverčiant GVariant su tipo eilute „%s“ į D-Bus telegramos formatą"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
"Failo deskriptorių skaičius žinutėje (%d) skiriasi nuo antraštės lauko (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Nepavyko išsaugoti pranešimo: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
"Pranešimo pagrindinė dalis turi signatūrą „%s“, bet nėra signatūros antraštės"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -955,54 +968,54 @@ msgstr ""
"Pranešimo pagrindinė dalis turi tipo signatūrą „%s“, bet signatūra antraštės "
"lauke yra „%s“"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
"Pranešimo pagrindinė dalis yra tuščia, bet signatūra antraštės lauke yra "
"„(%s)“"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Klaidos grąžinimas su pagrindinės dalies tipu „%s“"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Klaidos grąžinimas su tuščia pagrindine dalimi"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Spauskite bet kurį klavišą šiam langui užverti)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "Seanso dbus neveikia, automatinis paleidimas nepavyko"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Nepavyko gauti aparatūros profilio: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Nepavyko įkelti %s arba %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Klaida kviečiant StartServiceByName elementui %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Nelauktas atsakas %d iš StartServiceByName(\"%s\") metodo"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1012,25 +1025,25 @@ msgstr ""
"savininko ir proxy buvo sukonstruotas su "
"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START požymiu"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Abstrakti vardų sritis nepalaikoma"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Negalima nurodyti laikino failo kuriant serverį"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Klaida rašant vienkartinio kodo failą vietoje „%s“: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Eilutė „%s“ nėra tinkamas D-Bus GUID"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Negalima laukti duomenų iš nepalaikomo perdavimo „%s“"
@@ -1058,14 +1071,14 @@ msgstr ""
"\n"
"Naudokite „%s KOMANDA --help“ kiekvienos komandos pagalbos gavimui.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Klaida: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Klaida skaitant introspekcijos XML: %s\n"
@@ -1075,49 +1088,49 @@ msgstr "Klaida skaitant introspekcijos XML: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Klaida: %s nėra tinkamas vardas\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Klaida: %s nėra tinkamas objekto kelias\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Prisijungti prie sistemos magistralės"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Prisijungti prie sesijos magistralės"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Prisijungti prie pateikto D-Bus adreso"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Ryšio pabaigos parametrai:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Parametrai, nurodantys ryšio pabaigą"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Nėra nurodytos ryšio pabaigos"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Nurodytos kelio ryšio pabaigos"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "Perspėjimas: pagal introspekcijos duomenis, sąsaja „%s“ neegzistuoja\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1126,164 +1139,164 @@ msgstr ""
"Perspėjimas: pagal introspekcijos duomenis, metodas „%s“ neegzistuoja "
"sąsajoje „%s“\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Nebūtinas signalo tikslas (unikalus vardas)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Objekto, kuriame siunčiamas signalas, kelias"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Signalo ir sąsajos vardai"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Siųsti signalą."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Klaida prisijungiant: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Klaida: %s nėra tinkamas unikalus magistralės pavadinimas.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Klaida: nenurodytas objekto kelias\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Klaida: nenurodytas signalo pavadinimas\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Klaida: signalo pavadinimas „%s“ yra netinkamas\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Klaida: %s nėra tinkamas sąsajos pavadinimas\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Klaida: %s nėra tinkamas nario pavadinimas\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Klaida skaitant parametrą %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Klaida išsiunčiant ryšį: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Tikslo pavadinimas metodo iškvietimui"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Objekto kelias metodo iškvietimui"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Metodo ir sąsajos pavadinimai"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Laiko limitas sekundėmis"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Rodyti interaktyvią autorizaciją"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Iškviesti metodą nutolusiame objekte."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Klaida: nenurodytas tikslas\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Klaida: %s nėra tinkamas magistralės pavadinimas\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Klaida: nenurodytas metodo vardas\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Klaida: metodo vardas „%s“ yra netinkamas\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Klaida skaitant parametrą %d, kurio tipas „%s“: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Klaida pridedant rankenėlę %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Tikslo vardas introspekcijai"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Objekto kelias introspekcijai"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Spausdinti XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Nagrinėti vaiką"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Spausdinti tik savybes"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Introspekcija nutolusiam objektui."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Tikslo vardas stebėjimui"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Objekto kelias stebėjimui"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Stebėti nutolusį objektą."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Klaida: nepavyksta stebėti ne žinučių magistralės ryšio\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Aktyvuotina tarnyba prieš laukiant kitos (gerai žinomas pavadinimas)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1291,70 +1304,75 @@ msgstr ""
"Kiek laiko laukti prieš išeinant su klaida (sekundėmis); 0 reiškia neribotai "
"(numatyta)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[PARAMETRAS…] MAGISTRALĖS-PAVADINIMAS"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Laukti, kol pasirodys magistralės pavadinimas."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr ""
"Klaida: reikia nurodyti aktyvuojamą tarnybą.\n"
"\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Klaida: turi būti nurodyta tarnyba, kurios laukti.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Klaida: per daug argumentų.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Klaida: %s nėra tinkamas gerai žinomas magistralės pavadinimas.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Neleidžiama keisti derinimo nuostatų"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5113
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Nepavadinta"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Darbalaukio failas nenurodė Exec lauko"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Nerastas terminalas, reikalingas programai"
-#: gio/gdesktopappinfo.c:3631
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Programa „%s“ nerasta $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Nepavyko sukurti naudotojo nustatymų aplanko %s: %s"
-#: gio/gdesktopappinfo.c:3635
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Nepavyko sukurti naudotojo MIME nustatymų aplanko %s: %s"
-#: gio/gdesktopappinfo.c:3877 gio/gdesktopappinfo.c:3901
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Programos informacijai trūksta identifikatoriaus"
-#: gio/gdesktopappinfo.c:4137
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Nepavyko sukurti naudotojo darbalaukio failo %s"
-#: gio/gdesktopappinfo.c:4273
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Specialus apibrėžimas %s"
@@ -1424,78 +1442,83 @@ msgstr "Tikėtasi GEmblem skirto GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Tėvinis prijungimo taškas neegzistuoja"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Negalima kopijuoti ant aplanko viršaus"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Negalima kopijuoti aplanko ant aplanko"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Nurodytas failas jau egzistuoja"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Negalima rekursyviai kopijuoti aplanko"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "Skaidymas nepalaikomas"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Failų rėžio kopijavimas nepalaikomas"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Klaida skaidant failą: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Skaidymas nepalaikomas"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Kopijavimas (reflink/clone) tarp prijungimo taškų nepalaikomas"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Kopijavimas (reflink/clone) nepalaikomas arba netinkamas"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Kopijavimas (reflink/clone) nepalaikomas arba nesuveikė"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Negalima kopijuoti specialaus failo"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Netaisyklinga simbolinės nuorodos reikšmė"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Simbolinės nuorodos nepalaikomos"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Šiukšlės nepalaikomos"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Failų pavadinimuose negali būti '%c'"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Nepavyko sukurti laikinojo aplanko šablonui „%s“: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "tomas nepalaiko prijungimo"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Nėra programos, priregistruotos kaip skaitančios šį failą"
@@ -1504,11 +1527,11 @@ msgid "Enumerator is closed"
msgstr "Enumeratorius užvartas"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Failų enumeratoriui liko neatlikta operacija"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Failų enumeratorius jau užvertas"
@@ -1521,27 +1544,27 @@ msgstr "Nepavyko apdoroti GFileIcon koduotės versijos %d"
msgid "Malformed input data for GFileIcon"
msgstr "Netinkami GFileIcon įvesties duomenys"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Srautas nepalaiko query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Pozicijos perkėlimas sraute nepalaikomas"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Trumpinimas įėjimo srauto nepalaikomas"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Trumpinimas srauto nepalaikomas"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Klaidingas kompiuterio vardas"
@@ -1574,37 +1597,37 @@ msgstr "HTTP tarpinio serverio atsakymas per didelis"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "Ryšys su HTTP tarpiniu serveriu netikėtai užvertas."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Neteisingas leksemų skaičius (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Nėra tipo klasės pavadinimui %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Tipas %s nerealizuoja GIcon sąsajos"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Tipas %s neklasifikuotas"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Netinkamas versijos numeris: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Tipas %s nerealizuoja from_tokens() GIcon sąsajoje"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Nepavyko apdoroti pateiktosios piktogramos koduotės versijos"
@@ -1645,7 +1668,7 @@ msgstr "Šaltinio srautas nerealizuoja skaitymo"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Srautui liko neįvykdyta operacija"
@@ -1751,12 +1774,12 @@ msgid "Error writing to stdout"
msgstr "Klaida rašant į standartinę išvestį"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "VIETA"
@@ -1774,8 +1797,8 @@ msgstr ""
"GIO vietas vietoj vietinių failų: pavyzdžiui, galite kaip vietą naudoti\n"
"smb://serveris/išteklius/failas.txt."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Nepateikta vietų"
@@ -1871,57 +1894,64 @@ msgstr "Nesekti simbolinėmis nuorodomis"
msgid "attributes:\n"
msgstr "atributai:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "rodomas pavadinimas: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "keičiamas pavadinimas: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "pavadinimas: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "tipas: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "dydis: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "paslėptas\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "vietinis kelias: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "unix prijungimas: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Nustatomi atributai:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Rašomų atributų vardų sritys:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Rodyti informaciją apie vietas."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1987,11 +2017,11 @@ msgstr "Atspausdinti vaizduoklių pavadinimus"
msgid "Print full URIs"
msgstr "Spausdinti pilnus URI"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Išvardinti vietų turinį."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2189,19 +2219,19 @@ msgstr "Prijungti TCRYPT paslėptą tomą"
msgid "Mount a TCRYPT system volume"
msgstr "Prijungti TCRYPT sisteminį tomą"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Neleidžiama anoniminė prieiga"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Nėra laikmenos ar įrenginio failo"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Nėra laikmenos pateiktam ID"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Prijungti ar atjungti vietas."
@@ -2321,7 +2351,6 @@ msgid "TYPE"
msgstr "TYPE"
#: gio/gio-tool-set.c:38
-#| msgid "Set a file attribute"
msgid "Unset given attribute"
msgstr "Atstatyti nurodytą atributą"
@@ -2401,11 +2430,11 @@ msgstr "Pateikta vieta neprasideda trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Sekti simbolinėmis nuorodomis, prijungimais bei trumpiniais"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Išvardinti katalogų turinį medžio pavidalo formatu."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Elementas <%s> neleidžiamas viduje <%s>"
@@ -2460,7 +2489,7 @@ msgstr "Klaida spaudžiant failą: %s"
msgid "text may not appear inside <%s>"
msgstr "tekstas negali būti viduje <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Parodyti programos versiją ir išeiti"
@@ -2476,8 +2505,8 @@ msgstr ""
"Katalogai, iš kurių skaityti faile nurodytus failus (numatyta iš esamo "
"katalogo)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "KATALOGAS"
@@ -2529,7 +2558,7 @@ msgstr "C identifikatoriaus vardas, naudojamas generuojamame kode"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "Paskirties C kompiliatorius (numatyta: aplinkos kintamasis CC)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2539,123 +2568,123 @@ msgstr ""
"Resursų specifikacijos failai turi turėti plėtinį .gresource.xml,\n"
"o resurso failas turi plėtinį gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Turite nurodyti vienintelį failo pavadinimą\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "slapyvardis turi būti bent 2 simbolių ilgio"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Neteisinga skaitinė vertė"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> jau nurodytas"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' jau nurodytas"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "požymių vertės turi turėti nustatytą vienintelį bitą"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> turi turėti bent vieną <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> nėra nurodytuose rėžiuose"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> nėra tinkamas nurodyti išvardinimo tipo narys"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> turi simbolių eilutę, kuri nėra nurodytų požymių tipo"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> turi simbolių eilutę, kurios nėra <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> jau nurodytas šiam raktui"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> neleidžiamas „%s“ tipo raktams"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "<range> nurodyta mažiausia vertė yra didesnė už didžiausią"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "nepalaikoma l10n kategorija: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n prašoma, bet nepateikta gettext sritis"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "vertei pateiktas vertimo kontekstas, bet l10n neįjungta"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Nepavyko perskaityti <default> vertės tipui „%s“: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> negali būti nurodyta raktams, pažymėtiems turinčiais išvardinamą "
"tipą"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> jau nurodytas šiam raktui"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> neleidžiamas „%s“ tipo raktams"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> jau nurodytas"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> turi turėti bent vieną <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> jau nurodytas šiam raktui"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2663,50 +2692,50 @@ msgstr ""
"<aliases> gali būti nurodytas tik raktams su išvardinamais arba požymių "
"tipais, arba po <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
"type"
msgstr "<alias value='%s'/> pateiktas, kai „%s“ jau yra išvardinto tipo narys"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"<alias value='%s'/> pateiktas, kai <choice value='%s'/> jau yra pateiktas"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> jau nurodytas"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
-msgstr "Alt. pavadinimo paskirtis „%s“ nėra išvardinamame tipe"
+msgstr "alt. pavadinimo paskirtis „%s“ nėra išvardinamame tipe"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
-msgstr "Alt. pavadinimo paskirties „%s“ nėra <choices>"
+msgstr "alt. pavadinimo paskirties „%s“ nėra <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> turi turėti bent vieną <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Neleidžiami tušti pavadinimai"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr ""
"Netinkamas pavadinimas „%s“: pavadinimai turi prasidėti mažosiomis raidėmis"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2715,38 +2744,38 @@ msgstr ""
"Netinkamas pavadinimas „%s“: netinkamas simbolis „%c“; leidžiamos tik "
"mažosios raidės, skaitmenys ir brūkšniai („-“)"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr ""
-"Netinkamas pavadinimas „%s“: du brūkšniai („--“) vienos po kito neleidžiami."
+"Netinkamas pavadinimas „%s“: du brūkšniai („--“) vienos po kito neleidžiami"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr ""
"Netinkamas pavadinimas „%s“: paskutinis simbolis negali būti brūkšnys („-“)."
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Netinkamas pavadinimas „%s“: didžiausias leistinas ilgis yra 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> jau nurodyta"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Nepavyko pridėti raktų į „list-of“ schemą"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> jau nurodytas"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2755,7 +2784,7 @@ msgstr ""
"<key name='%s'> paslėpia <key name='%s'> elemente <schema id='%s'>; "
"naudokite <override> reikšmei pakeisti"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2764,56 +2793,56 @@ msgstr ""
"Kaip atributas elementui <key> turi būti nurodytas vienintelis iš „type“, "
"„enum“ arba „flags“"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> (dar) neapibrėžta."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Netinkama GVariant tipo eilutė „%s“"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> nurodytas, bet schema nieko neišplečia"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Nėra perrašomo <key name='%s'>"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> jau nurodytas"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> jau nurodytas"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> išplečia dar neegzistuojančią schemą „%s“"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> yra sąrašas iš dar neegzistuojančios schemos „%s“"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Negali būti schemos sąrašas su keliu"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Negalima išplėsti schemos su keliu"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2821,7 +2850,7 @@ msgstr ""
"<schema id='%s'> yra sąrašas, išplečiantis <schema id='%s'>, kuris nėra "
"sąrašas"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2830,17 +2859,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> išplečia <schema id='%s' list-of='%s'>, bet "
"„%s“ neišplečia „%s“"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "Kelias, jei pateiktas, turi prasidėti ir baigtis pasviruoju brūkšniu"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Sąrašo kelias turi baigtis „:/“"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2849,49 +2878,49 @@ msgstr ""
"Įspėjimas: schema „%s“ turi kelią „%s“. Keliai, prasidedantys „/apps/“, „/"
"desktop/“ ar „/system“ yra pasenę."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> jau nurodytas"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Tik vienas elementas <%s> leidžiamas <%s> viduje"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Elementas <%s> neleidžiamas aukščiausiame lygyje"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Elementas <default> yra būtinas elemente <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Tekstas negali būti viduje <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Įspėjimas: neapibrėžta nuoroda į <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "--strict buvo nurodyta; išeinama."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Visas failas nepaisomas."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Nepaisoma šio failo."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2900,7 +2929,7 @@ msgstr ""
"Nėra rakto „%s“ schemoje „%s“ kaip nurodyta perrašančiame faile „%s“; "
"nepaisoma šio rakto."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2909,7 +2938,7 @@ msgstr ""
"Nėra rakto „%s“ schemoje „%s“ kaip nurodyta perrašančiame faile „%s“ ir buvo "
"nurodyta --strict; išeinama."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2918,7 +2947,7 @@ msgstr ""
"Negalima pateikti darbalaukio pakeitimų lokalizuotam raktui „%s“ schemoje "
"„%s“ (perrašomas failas „%s“); nepaisoma šio rakto perrašymo."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2927,77 +2956,77 @@ msgstr ""
"Negalima pateikti darbalaukio pakeitimų lokalizuotam raktui „%s“ schemoje "
"„%s“ (perrašomas failas „%s“) ir buvo nurodyta --strict; išeinama."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
"%s. Ignoring override for this key."
msgstr ""
-"klaida skaitant raktą „%s“ schemoje „%s“, kaip nurodyta perrašančiame faile "
+"Klaida skaitant raktą „%s“ schemoje „%s“, kaip nurodyta perrašančiame faile "
"„%s“: %s. Nepaisoma šio rakto perrašymo."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
"%s. --strict was specified; exiting."
msgstr ""
-"klaida skaitant raktą „%s“ schemoje „%s“, kaip nurodyta perrašančiame faile "
+"Klaida skaitant raktą „%s“ schemoje „%s“, kaip nurodyta perrašančiame faile "
"„%s“: %s. Buvo nurodyta --strict; išeinama."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
"range given in the schema; ignoring override for this key."
msgstr ""
-"rakto „%s“ perrašymas schemoje „%s“ perrašančiame faile „%s“ yra už schemoje "
+"Rakto „%s“ perrašymas schemoje „%s“ perrašančiame faile „%s“ yra už schemoje "
"nurodytų ribų; nepaisoma šio rakto perrašymo."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
"range given in the schema and --strict was specified; exiting."
msgstr ""
-"rakto „%s“ perrašymas schemoje „%s“ perrašančiame faile „%s“ yra už schemoje "
+"Rakto „%s“ perrašymas schemoje „%s“ perrašančiame faile „%s“ yra už schemoje "
"nurodytų ribų ir buvo nurodyta --strict; išeinama."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
"list of valid choices; ignoring override for this key."
msgstr ""
-"rakto „%s“ perrašymas schemoje „%s“ perrašančiame faile „%s“ nėra iš "
+"Rakto „%s“ perrašymas schemoje „%s“ perrašančiame faile „%s“ nėra iš "
"leistinų pasirinkimų; nepaisoma šio rakto perrašymo."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
"list of valid choices and --strict was specified; exiting."
msgstr ""
-"rakto „%s“ perrašymas schemoje „%s“ perrašančiame faile „%s“ nėra iš "
+"Rakto „%s“ perrašymas schemoje „%s“ perrašančiame faile „%s“ nėra iš "
"leistinų pasirinkimų ir buvo nurodyta --strict; išeinama."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Kur saugoti gschemas.compiled failą"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Nutraukti darbą esant bet kokiai klaidai schemoje"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Nerašyti gschema.compiled failo"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Nereikalauti raktų vardų apribojimų"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3007,24 +3036,24 @@ msgstr ""
"Schemų failai turi turėti plėtinį .gschema.xml,\n"
"o podėlio failas yra vadinamas gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Turite nurodyti vienintelį katalogo pavadinimą"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Nerasti schemų failai: nieko nedaroma."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "Nerasti schemų failai: pašalintas egzistuojanti išvesties failas."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Netaisyklingas failo vardas %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Klaida gaunant %s failų sistemos informaciją: %s"
@@ -3033,255 +3062,254 @@ msgstr "Klaida gaunant %s failų sistemos informaciją: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Nerastas tėvinis prijungimo taškas %s"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Negalima pervadinti šakninio aplanko"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Klaida pervadinant failą %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Nepavyko pervadinti failo, failo vardas jau užimtas"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Netaisyklingas failo vardas"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Klaida atveriant failą %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Klaida trinant failą %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Klaida perkeliant failą %s į šiukšlinę: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Nepavyko sukurti šiukšlių aplanko %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Nepavyko rasti šakninio aplanko %s išmesti"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Išmetimas tarp sistemos vidinių prijungimo taškų nepalaikomas"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Nepavyko rasti ar sukurti šiukšlių aplanko %s %s išmesti"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Nepavyko sukurti šiukšlinės informacijos failo %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Nepavyko perkelti failo %s į šiukšlinę per failų sistemos ribas"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Nepavyko failo %s išmesti į šiukšlinę: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Nepavyko išmesti į šiukšlinę failo %s"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Klaida kuriant katalogą %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Failų sistema nepalaiko simbolinių nuorodų"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Klaida kuriant simbolinę nuorodą %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Klaida perkeliant failą %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Negalima perkelti aplanko ant aplanko"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Atsarginės kopijos sukūrimas nesėkmingas"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Klaida trinant nurodytą failą: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Perkėlimas tarp prijungimo taškų nepalaikomas"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Nepavyko nustatyti %s disko naudojimo: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Atributo reikšmė turi būti netuščia"
-#: gio/glocalfileinfo.c:782
-#| msgid "Invalid attribute type (string expected)"
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Netaisyklingas atributo tipas (tikimasi simbolių sekos)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
-msgstr "netaisyklingas išplėstinio atributo pavadinimas"
+msgstr "Netaisyklingas išplėstinio atributo pavadinimas"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Klaida nustatant išplėstinį atributą „%s“: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (netaisyklinga koduotė)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Klaida gaunant informaciją apie failą „%s“: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Klaida gaunant informaciją failo aprašymui: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Klaidingas atributo tipas (tikimasi uint32)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Klaidingas atributo tipas (tikimasi uint64)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Klaidingas atributo tipas (tikimasi baitų sekos)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Simbolinėms nuorodoms teisių nustatyti negalima"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Klaida nustatant teises: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Klaida nustatant savininką: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "simbolinė nuoroda turi būti netuščia"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Klaida nustatant simbolinę nuorodą: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "Klaida, nustatant simbolinę nuorodą: failas nėra simbolinė nuoroda"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Papildomos nanosekundės %d UNIX laiko žymai %lld yra neigiamos"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr "Papildomos nanosekundės %d UNIX laiko žymai %lld pasiekia 1 sekundę"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "UNIX laiko žyma %lld netelpa į 64 bitus"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "UNIX laiko žyma %lld yra už Windows palaikomų ribų"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Failo pavadinimo „%s“ negalima kontertuoti į UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Failo „%s“ negalima atverti: Windows klaida %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "Klaida nustatant pakeitimo arba prieigos laiką failui „%s“: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Klaida nustatant pakeitimo arba prieigos laiką: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "SELinux kontekstas būti nelygus NULL"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux šioje sistemoje neįjungtas"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Klaida nustatant SELinux kontekstą: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Atributo %s nustatymas nepalaikomas"
@@ -3328,13 +3356,13 @@ msgstr "Klaida kuriant atsarginę kopiją: %s"
msgid "Error renaming temporary file: %s"
msgstr "Klaida pervadinant laikinąjį failą: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Klaida trumpinant failą: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Klaida atveriant failą %s: %s"
@@ -3351,7 +3379,7 @@ msgstr "Paskirties failas nėra paprastas failas"
msgid "The file was externally modified"
msgstr "Failas buvo pakeistas kitos programos"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Klaida ištrinant senąjį failą: %s"
@@ -3486,42 +3514,42 @@ msgstr "Per sena NetworkManager versija"
msgid "Output stream doesn’t implement write"
msgstr "Išvedimo srautas nepalaiko rašymo"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "%s perduotų vektorių suma yra per didelė"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Šaltinio srautas jau užvertas"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Nenurodyta tarpinio serverio paieškos klaida"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Klaida surandant „%s“: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s nerealizuota"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Neteisinga sritis"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Ištekliaus ties „%s“ nėra"
@@ -3531,16 +3559,16 @@ msgstr "Ištekliaus ties „%s“ nėra"
msgid "The resource at “%s” failed to decompress"
msgstr "Ištekliaus ties „%s“ nepavyko išskleisti"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Išteklių failų negalima pervadinti"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "Išteklius ties „%s“ nėra katalogas"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Įvesties srautas nerealizuoja nenuoseklaus skaitymo"
@@ -3906,7 +3934,8 @@ msgstr "Netinkamas lizdas, nepavyko inicijuoti: %s"
msgid "Socket is already closed"
msgstr "Lizdas jau užvertas"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "Lizdo I/O baigėsi laikas"
@@ -3915,160 +3944,160 @@ msgstr "Lizdo I/O baigėsi laikas"
msgid "creating GSocket from fd: %s"
msgstr "iš fd kuriamas GSocket: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Nepavyko sukurti lizdo: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Nurodyta nežinoma šeima"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Nurodytas nežinomas protokolas"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "Negalima naudoti duomenų paketo operacijų ne duomenų paketo lizdui."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Negalima naudoti duomenų paketo operacijų lizdui su laiko limito rinkiniu."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "nepavyko gauto lokalaus adreso: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "nepavyko gauti nuotolinio adreso: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "nepavyko klausytis: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Susiejimo su adresu %s klaida: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Klaida prisijungian prie transliavimo grupės: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Klaida paliekant transliavimo grupę: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Nėra resursams specifinio transliavimo palaikymo"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Nepalaikoma lizdo šeima"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "ištekliams specifinis nėra IPv4 adresas"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Per ilgas sąsajos pavadinimas"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Sąsaja nerasta: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Nėra IPv4 ištekliams specifinio transliavimo palaikymo"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Nėra palaikymo, skirto IPv4 ištekliams specifiniam transliavimui"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Klaida priimant ryšį: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Prisijungiama"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Nepavyko gauti laukiančios klaidos: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Klaida priimant duomenis: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Klaida siunčiant duomenis: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Nepavyko išjungti lizdo: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Klaida užveriant lizdą: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Laukiama lizdo būsenos: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Nepavyksta išsiųsti pranešimo: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Pranešimų vektoriai per dideli"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Klaida siunčiant pranešimą: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "„Windows“ sistemoje „GSocketControlMessage“ nepalaikoma"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Klaida priimant pranešimą: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Nepavyko perskaityti lizdo įgaliojimų: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials nerealizuota šiai operacinei sistemai"
@@ -4191,7 +4220,7 @@ msgstr "SOCKSv5 proxy nepalaiko pateikto adreso tipo."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Nežinoma SOCKSv5 proxy klaida."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr ""
@@ -4208,46 +4237,46 @@ msgstr "Duomenų kanalai šioje platformoje nepalaikomi"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Nepavyko apdoroti GThemedIcon koduotės versijos %d"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Nerasta tinkamų adresų"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Klaida atvirkščiai surandant „%s“: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Klaida analizuojant DNS %s įrašą: blogai suformuotas DNS paketas"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Nėra DNS įrašo prašomam tipui „%s“"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Laikinai nepavyko surasti „%s“"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Klaida surandant „%s“"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Blogai suformuotas DNS paketas"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Nepavyko išanalizuoti DNS atsakymo į „%s“: "
@@ -4306,7 +4335,7 @@ msgstr "Įvestas slaptažodis yra neteisingas."
msgid "Sending FD is not supported"
msgstr "FD siuntimas nepalaikomas"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
@@ -4314,11 +4343,11 @@ msgstr[0] "Tikėtasi 1 kontrolinio pranešimo, bet sulaukta %d"
msgstr[1] "Tikėtasi 1 kontrolinio pranešimo, bet sulaukta %d"
msgstr[2] "Tikėtasi 1 kontrolinio pranešimo, bet sulaukta %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Netikėtas tarnybinių duomenų tipas"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
@@ -4326,41 +4355,41 @@ msgstr[0] "Tikėtasi vieno fd, bet sulaukta %d\n"
msgstr[1] "Tikėtasi vieno fd, bet sulaukta %d\n"
msgstr[2] "Tikėtasi vieno fd, bet sulaukta %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Gautas netinkamas fd"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "FD gavimas nepalaikomas"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Klaida siunčiant įgaliojimus: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Klaida tikrinant, ar SO_PASSCRED įjungta lizdui: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Klaida leidžiant SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Tikimasi nustatyti vienintelį baitą įgaliojimų gavimui, bet nuskaityta nulis "
"baitų"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Nesitikėta kontrolinio pranešimo, bet sulaukta %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Klaida išjungiant SO_PASSCRED: %s"
@@ -4376,7 +4405,7 @@ msgstr "Klaida skaitant failą: %s"
msgid "Error closing file descriptor: %s"
msgstr "Klaida užveriant failą: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Failų sistemos šaknis"
@@ -4458,129 +4487,124 @@ msgstr "Paleisti dbus tarnybą"
msgid "Wrong args\n"
msgstr "Blogi argumentai\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Netikėtas atributas „%s“ elementui „%s“"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Nerastas elemento „%2$s“ atributas „%1$s“"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Netikėta žyma „%s“, tikėtasi žymos „%s“"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Netikėta žyma „%s“ „%s“ viduje"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Netinkama data/laikas „%s“ gairių faile"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Duomenų aplankuose nerasta tinkamo žymelių failo"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "URI „%s“ žymelė jau yra"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Nerasta žymelė URI „%s“"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "URI „%s“ žymelėje neapibrėžtas MIME tipas"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "URI „%s“ žymelėje neapibrėžta privati vėliavėlė"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "URI „%s“ žymelėje nenurodyta jokia grupė"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Nėra programos pavadinimu „%s“ registravusios „%s“ žymelę"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Nepavyko išskleisti vykdomosios eilutės „%s“ su URI „%s“"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Neatvaizduojamas simbolis keitimo įvestyje"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Nepilna simbolio seka įvedimo pabaigoje"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Negalima keisti atgalinio varianto „%s“ į koduotę „%s“"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Įtaisytas NUL baitas keitimo įvestyje"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Įtaisytas NUL baitas keitimo išvestyje"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "Adresas „%s“ nėra absoliutus adresas naudojantis „file“ schemą"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "Vietinio failo adresas „%s“ negali turėti simbolio „#“"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "URI „%s“ yra klaidingas"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Kompiuterio vardas URI „%s“ yra netinkamas"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "URI „%s“ yra klaidingai perkoduoti simboliai"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Kelias „%s“ nėra absoliutus"
@@ -4628,62 +4652,62 @@ msgstr "%I:%M:%S"
#: glib/gdatetime.c:276
msgctxt "full month name"
msgid "January"
-msgstr "sausis"
+msgstr "Sausis"
#: glib/gdatetime.c:278
msgctxt "full month name"
msgid "February"
-msgstr "vasaris"
+msgstr "Vasaris"
#: glib/gdatetime.c:280
msgctxt "full month name"
msgid "March"
-msgstr "kovas"
+msgstr "Kovas"
#: glib/gdatetime.c:282
msgctxt "full month name"
msgid "April"
-msgstr "balandis"
+msgstr "Balandis"
#: glib/gdatetime.c:284
msgctxt "full month name"
msgid "May"
-msgstr "gegužė"
+msgstr "Gegužė"
#: glib/gdatetime.c:286
msgctxt "full month name"
msgid "June"
-msgstr "birželis"
+msgstr "Birželis"
#: glib/gdatetime.c:288
msgctxt "full month name"
msgid "July"
-msgstr "liepa"
+msgstr "Liepa"
#: glib/gdatetime.c:290
msgctxt "full month name"
msgid "August"
-msgstr "rugpjūtis"
+msgstr "Rugpjūtis"
#: glib/gdatetime.c:292
msgctxt "full month name"
msgid "September"
-msgstr "rugsėjis"
+msgstr "Rugsėjis"
#: glib/gdatetime.c:294
msgctxt "full month name"
msgid "October"
-msgstr "spalis"
+msgstr "Spalis"
#: glib/gdatetime.c:296
msgctxt "full month name"
msgid "November"
-msgstr "lapkritis"
+msgstr "Lapkritis"
#: glib/gdatetime.c:298
msgctxt "full month name"
msgid "December"
-msgstr "gruodis"
+msgstr "Gruodis"
#. Translators: Some languages need different grammatical forms of
#. * month names depending on whether they are standalone or in a complete
@@ -4705,62 +4729,62 @@ msgstr "gruodis"
#: glib/gdatetime.c:330
msgctxt "abbreviated month name"
msgid "Jan"
-msgstr "saus."
+msgstr "Saus"
#: glib/gdatetime.c:332
msgctxt "abbreviated month name"
msgid "Feb"
-msgstr "vas."
+msgstr "Vas"
#: glib/gdatetime.c:334
msgctxt "abbreviated month name"
msgid "Mar"
-msgstr "kov."
+msgstr "Kov"
#: glib/gdatetime.c:336
msgctxt "abbreviated month name"
msgid "Apr"
-msgstr "bal."
+msgstr "Bal"
#: glib/gdatetime.c:338
msgctxt "abbreviated month name"
msgid "May"
-msgstr "geg."
+msgstr "Geg"
#: glib/gdatetime.c:340
msgctxt "abbreviated month name"
msgid "Jun"
-msgstr "birž."
+msgstr "Birž"
#: glib/gdatetime.c:342
msgctxt "abbreviated month name"
msgid "Jul"
-msgstr "liep."
+msgstr "Liep"
#: glib/gdatetime.c:344
msgctxt "abbreviated month name"
msgid "Aug"
-msgstr "rugp."
+msgstr "Rugp"
#: glib/gdatetime.c:346
msgctxt "abbreviated month name"
msgid "Sep"
-msgstr "rugs."
+msgstr "Rugs"
#: glib/gdatetime.c:348
msgctxt "abbreviated month name"
msgid "Oct"
-msgstr "spal."
+msgstr "Spal"
#: glib/gdatetime.c:350
msgctxt "abbreviated month name"
msgid "Nov"
-msgstr "lapkr."
+msgstr "Lapkr"
#: glib/gdatetime.c:352
msgctxt "abbreviated month name"
msgid "Dec"
-msgstr "gruod."
+msgstr "Gruod"
#: glib/gdatetime.c:367
msgctxt "full weekday name"
@@ -4929,62 +4953,62 @@ msgstr "gruodžio"
#: glib/gdatetime.c:557
msgctxt "abbreviated month name with day"
msgid "Jan"
-msgstr "saus."
+msgstr "saus"
#: glib/gdatetime.c:559
msgctxt "abbreviated month name with day"
msgid "Feb"
-msgstr "vas."
+msgstr "vas"
#: glib/gdatetime.c:561
msgctxt "abbreviated month name with day"
msgid "Mar"
-msgstr "kov."
+msgstr "kov"
#: glib/gdatetime.c:563
msgctxt "abbreviated month name with day"
msgid "Apr"
-msgstr "bal."
+msgstr "bal"
#: glib/gdatetime.c:565
msgctxt "abbreviated month name with day"
msgid "May"
-msgstr "geg."
+msgstr "geg"
#: glib/gdatetime.c:567
msgctxt "abbreviated month name with day"
msgid "Jun"
-msgstr "birž."
+msgstr "birž"
#: glib/gdatetime.c:569
msgctxt "abbreviated month name with day"
msgid "Jul"
-msgstr "liep."
+msgstr "liep"
#: glib/gdatetime.c:571
msgctxt "abbreviated month name with day"
msgid "Aug"
-msgstr "rugp."
+msgstr "rugp"
#: glib/gdatetime.c:573
msgctxt "abbreviated month name with day"
msgid "Sep"
-msgstr "rugs."
+msgstr "rugs"
#: glib/gdatetime.c:575
msgctxt "abbreviated month name with day"
msgid "Oct"
-msgstr "spal."
+msgstr "spal"
#: glib/gdatetime.c:577
msgctxt "abbreviated month name with day"
msgid "Nov"
-msgstr "lapkr."
+msgstr "lapkr"
#: glib/gdatetime.c:579
msgctxt "abbreviated month name with day"
msgid "Dec"
-msgstr "gruod."
+msgstr "gruod"
#. Translators: 'before midday' indicator
#: glib/gdatetime.c:596
@@ -5003,7 +5027,7 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "Klaida atveriant aplanką „%s“: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
@@ -5011,72 +5035,72 @@ msgstr[0] "Nepavyko išskirti %lu baito failo „%s“ perskaitymui"
msgstr[1] "Nepavyko išskirti %lu baitų failo „%s“ perskaitymui"
msgstr[2] "Nepavyko išskirti %lu baitų failo „%s“ perskaitymui"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Klaida skaitant failą „%s“: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Failas „%s“ per didelis"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Nepavyko perskaityti failo „%s“: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Nepavyko atverti failo „%s“: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Nepavyko gauti failo „%s“ atributų: fstat() klaida: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Nepavyko atverti failo „%s“: fdopen() klaida: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "Nepavyko pervadinti failo „%s“ į „%s“: g_rename() klaida: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Nepavyko įrašyti failo „%s“: write() klaida: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Nepavyko įrašyti failo „%s“: fsync() klaida: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Nepavyko sukurti failo „%s“: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "Nepavyko pašalinti egzistuojančio failo „%s“: g_unlink() klaida: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Šablonas „%s“ klaidingas, jame negali būti „%s“"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Šablone „%s“ nėra XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Nepavyko perskaityti simbolinės nuorodos „%s“: %s"
@@ -5102,15 +5126,15 @@ msgstr "Kanalas pasibaigia nepilnu simboliu"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Negalima vykdyti tiesioginio skaitymo iš g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Paieškos aplankuose nepavyko rasti tinkamo raktų failo"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Nėra paprastas failas"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5118,49 +5142,49 @@ msgstr ""
"Raktų faile yra eilutė „%s“, kuri nėra raktas-reikšmė pora, grupė ar "
"komentaras"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Netinkamas grupės pavadinimas: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Raktų failas neprasideda grupe"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Netinkamas rakto pavadinimas: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Raktų faile yra nepalaikoma koduotė „%s“"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Raktų failas neturi grupės „%s“"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Raktų faile nėra rakto „%s“ grupėje „%s“"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "Raktų faile yra raktas „%s“ su reikšme „%s“, kuri nėra UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr "Raktų faile yra raktas „%s“, turintis nesuprantamą reikšmę."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5169,82 +5193,82 @@ msgstr ""
"Raktų faile yra raktas „%s“ grupėje „%s“, kuriame yra reikšmė, kurios "
"negalima suprasti."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Raktas „%s“ grupėje „%s“ turi reikšmę „%s“, nors tikimasi %s"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "Raktų faile, eilutės pabaigoje yra pabėgimo simbolis"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4378
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Raktų faile yra klaidinga kaitos eilutė „%s“"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4530
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Reikšmės „%s“ negalima interpretuoti kaip skaičiaus."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4544
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Sveikoji reikšmė „%s“ viršija ribas"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr ""
"Reikšmės „%s“ negalima interpretuoti kaip slankiojo kablelio skaičiaus."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4616
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Reikšmės „%s“ negalima interpretuoti kaip loginės."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr "Nepavyko gauti failo „%s%s%s%s“ atributų: fstat() klaida: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Nepavyko pažymėti failo %s%s%s%s: mmap() klaida: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Nepavyko atverti failo „%s“: open() klaida: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Klaida eilutėje %d simbolyje %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Klaidingai koduotas UTF-8 tekstas varde – netinkamas „%s“"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "„%s“ nėra tinkamas vardas"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "„%s“ nėra tinkamas vardas: „%c“"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Klaida eilutėje %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5253,7 +5277,7 @@ msgstr ""
"Nepavyko perskaityti „%-.*s“, kuris galėjo turėti skaičius simbolio aprašyme "
"(pvz., &#234;) – gal skaičius per didelis"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5263,24 +5287,24 @@ msgstr ""
"ampersendo simbolį nepradėdami elemento įvedimo – pakeiskite ampersendą "
"įvesdami &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Simbolio aprašymas „%-.*s“ neatitinka leistinų simbolių"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Aptiktas tuščias elementas '&;'; galimi elementai yra: &amp; &quot; &lt; "
"&gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Elemento vardas „%-.*s“ nežinomas"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5288,11 +5312,11 @@ msgstr ""
"Elementas nepasibaigė kabliataškiu; greičiausiai Jūs panaudojote ampersendo "
"simbolį nepradėdami elemento įvedimo – pakeiskite ampersendą įvesdami &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Dokumentas turėtų prasidėti elementu (pvz., <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5300,7 +5324,7 @@ msgid ""
msgstr ""
"„%s“ negali būti rašomas po „<“ simbolio; jis nepradeda jokio elemento vardo"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5309,12 +5333,12 @@ msgstr ""
"Neįprastas simbolis „%s“, tikėtasi sulaukti „>“ simbolio, užbaigiančio "
"tuščią žymą „%s“"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Per daug atributų elemente „%s“"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5322,7 +5346,7 @@ msgstr ""
"Neįprastas simbolis „%1$s“, tikėtasi sulaukti „=“ po elemento „%3$s“ "
"atributo vardo „%2$s“"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5333,7 +5357,7 @@ msgstr ""
"užbaigiančių elementą „%s“, arba papildomo požymio; gal Jūs panaudojote "
"netinkama simbolį požymio varde"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5342,7 +5366,7 @@ msgstr ""
"Neįprastas simbolis „%1$s“, po lygybės tikėtasi sulaukti atidarančio "
"citavimo simbolio pradedant „%3$s“ elemento „%2$s“ atributo reikšmę."
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5350,7 +5374,7 @@ msgid ""
msgstr ""
"„%s“ negali būti rašomas po simbolių „</“; „%s“ negali pradėti elemento vardo"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5359,29 +5383,29 @@ msgstr ""
"„%s“ negali būti rašomas po uždarančio elemento vardo „%s“; leistinas "
"simbolis yra „>“"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr ""
"Elemento „%s“ uždarymo simbolis sutiktas anksčiau už elemento atidarymo "
"simbolį"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr ""
"Sutiktas elemento „%s“ uždarymo simbolis, tačiau šiuo metu atidarytas kitas "
"elementas „%s“"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Dokumentas tuščias arba susideda tik iš tarpų"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "Dokumentas netikėtai pasibaigė tuoj po atidarančių skliaustų „<“"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5390,7 +5414,7 @@ msgstr ""
"Dokumentas netikėtai pasibaigė neuždarius dalies elementų – „%s“ yra "
"paskutinis atviras elementas"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5399,19 +5423,19 @@ msgstr ""
"Dokumentas netikėtai pasibaigė, tikėtasi uždarančių skliaustų simbolio, "
"užbaigiančio žymą <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Dokumentas netikėtai pasibaigė elemento varde"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Dokumentas netikėtai pasibaigė požymio varde"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Dokumentas netikėtai pasibaigė elemento atvėrimo žyma."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5419,21 +5443,21 @@ msgstr ""
"Dokumentas netikėtai pasibaigė lygybės simboliu einančio po požymio vardo; "
"nerasta požymio reikšmė"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Dokumentas netikėtai pasibaigė požymio verte"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "Dokumentas netikėtai pasibaigė žymos „%s“ uždarančiame simbolyje"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr "Dokumentas netikėtai pasibaigė neatidaryto elemento uždarymo žymoje"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"Dokumentas netikėtai pasibaigė komentaruose arba apdorojimo instrukcijose"
@@ -5497,184 +5521,180 @@ msgstr "%s trūksta argumento"
msgid "Unknown option %s"
msgstr "Nežinomas parametras %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "sugadintas objektas"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "nebėra atminties"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "pasiekta atgalinio sekimo riba"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "vidinė klaida"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "šablone yra dalinio atitikimo nepalaikomų elementų"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr "atgalinės nuorodos kaip sąlygos nepalaikomos daliniam atitikimui"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "pasiekta rekursijos riba"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "blogas poslinkis"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "rekursijos ciklas"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "prašoma atitikties veiksena, kuri nebuvo sukompiliuota JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "nežinoma klaida"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ šablono pabaigoje"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c šablono pabaigoje"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "neatpažintas simbolis po \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "skaičiai ne iš eilės {} kvantoriuje"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "skaičius per didelis {} kvantoriuje"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "trūksta baigiamojo ] simbolio klasei"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "klaidinga speciali seka simbolio klasėje"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "ruožas ne iš eilės simbolio klasėje"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "nėra ką kartoti"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "neatpažintas simbolis po (? arba (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "klasės POSIX vardais leidžiamos tik klasių viduje"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "POSIX gretinimo elementai nepalaikomi"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "trūksta baigiamojo )"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "nuoroda į neegzistuojantį pošablonį"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "trūksta ) po komentaro"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "reguliarioji išraiška per didelė"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "netaisyklingas skaičius ar vardas po (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "žiūros atgal teiginys nefiksuoto ilgio"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "sąlyginė grupė turi daugiau negu dvi šakas"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "tikimasi teiginio po (?("
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "numeruota nuoroda turi būti ne nulis"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "nežinomas POSIX klasės vardas"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
-msgstr "simbolio reikšmė \\x{…} sekoje per didelė"
+msgstr "simbolio reikšmė \\x{...} sekoje per didelė"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C neleistinas žiūros atgal teiginyje"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "trūksta baigiamojo simbolio pošablonio pavadinime"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "du vardiniai pošabloniai turi tą patį vardą"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "netaisyklinga \\P arba \\p seka"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "nežinomas savybės vardas po \\P arba \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "pošablonio vardas per ilgas (turi būti iki 32 simbolių)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "per daug vardinių pošablonių (iki 10000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "aštuntainė reikšmė didesnė už \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "DEFINE grupėje yra daugiau negu viena šaka"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "nenuoseklūs NEWLINE parametrai"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5682,119 +5702,118 @@ msgstr ""
"po \\g nėra vardo riestiniuose arba lenktiniuose skliaustuose ar teigiamo "
"skaičiaus, ar tiesiog skaičiaus"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "argumentas neleidžiamas veiksmams (*ACCEPT), (*FAIL), ir (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) neatpažintas"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "numeris per didelis"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "trūksta baigiamojo simbolio pošablonio po (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "skirtingi vardai to paties skaičiaus pošabloniams nėra leistini"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) privalo turėti argumentą"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "Po \\c turi būti ASCII simbolis"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"po \\k nėra vardo riestiniuose arba lenktiniuose skliaustuose arba kabutėse"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N nepalaikomas klasėje"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "pavadinimas yra per ilgas (*MARK), (*PRUNE), (*SKIP), ir (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "kodo perviršis"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "neatpažintas simbolis po (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "perpildyta kompiliavimo darbo sritis"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "anksčiau tikrintas nurodytas pošablonis nerastas"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Klaida ieškant reguliariosios išraiškos %s atitikmens: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "PCRE biblioteka sukompiliuota be UTF8 palaikymo"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "PCRE biblioteka sukompiliuota su nesuderinamais parametrais"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
-#| msgid "Error while compiling regular expression %s at char %d: %s"
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Klaida kompiliuojanti reguliarią išraišką `%s` ties simboliu %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "laukta šešioliktainio skaitmens arba „}“"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "laukta šešioliktainio skaitmens"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "simbolinėje nuorodoje trūksta „<“"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "nebaigta simbolinė nuoroda"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "nulinio ilgio simbolinė nuoroda"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "laukta skaitmens"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "neleistina simbolinė nuoroda"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "nevietoje galutinis „\\“"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "nežinoma kaitos seka"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Klaida apdorojant pakeitimo tekstą „%s“ ties simboliu %lu: %s"
@@ -5825,137 +5844,142 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Tekstas buvo tuščias arba turėjo vien tik tarpo simbolius)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Nepavyko gauti duomenis iš antrinio proceso (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Netikėta klaida skaitant duomenis žiš antrinio proceso (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Netikėta waitpid() klaida (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Vaikinis procesas išėjo su kodu %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Vaikinis procesas nutrauktas signalu %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Vaikinis procesas sustabdytas signalu %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Vaikinis procesas išėjo nenormaliai"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Nepavyko perskaityti duomenų iš antrinio konvejerio (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Nepavyko paleisti antrinio proceso „%s“ (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Nepavyko atskirti (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Nepavyko pereiti į aplanką „%s“ (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Nepavyko paleisti antrinio proceso „%s“ (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Nepavyko atverti failo deskriptoriaus pakeitimui (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Nepavyko dubliuoti failo deskriptoriaus antriniam procesui (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Nepavyko atskirti antrinio proceso (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Nepavyko užverti failo deskriptoriaus antriniam procesui (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Nežinoma klaida vykdant antrinį procesą „%s“"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
"Nepavyko perskaityti reikiamo duomenų kiekio iš antrinio pid konvejerio (%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Netinkama šaltinio FD argumentas"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Nepavyko gauti duomenų iš antrinio proceso"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Nepavyko paleisti antrinio proceso (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Nepavyko antriniams procesui iškviesti dup() (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Netinkamas programos pavadinimas: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Netinkama seka argumento vektoriuje, pozicijoje %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Netinka seka aplinkoje: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Netinkamas darbinis katalogas: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Nepavyko paleisti pagalbinės programos (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -5963,226 +5987,226 @@ msgstr ""
"Netikėta klaida tarp g_io_channel_win32_poll() funkcijos duomenų skaitymo iš "
"antrinio proceso metu"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Tuščia simbolių eilutė nėra skaičius"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "„%s“ nėra skaičius su ženklu"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Skaičius „%s“ yra už [%s, %s] ribų"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "„%s“ nėra skaičius be ženklo"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "URI yra netinkamas %-kodavimas"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "URI yra neleistinas simbolis"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "URI yra ne UTF-8 simbolių"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "URI yra netinkamas IPv6 adresas „%.*s“"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "URI yra neteisingai koduotas IP adresas „%.*s“"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "URI yra neteisingai internacionalizuotas serverio pavadinimas „%.*s“"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Nepavyko perskaityti URI esančio prievado „%.*s“"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "URI esantis prievadas „%.*s“ yra už ribų"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "URI „%s“ nėra absoliutus URI"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "URI „%s“ neturi kompiuterio komponentės"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "URI nėra absoliutus ir nepateiktas bazinis URI"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Trūksta „=“ bei parametro vertės"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Nepavyko išskirti atminties"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Simbolis neatitinka UTF-8 simbolių diapazono"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Klaidinga seka keitimo įvestyje"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Simbolis neatitinka UTF-16 simbolių diapazono"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "baitas"
msgstr[1] "baitai"
msgstr[2] "baitų"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bitas"
@@ -6191,7 +6215,7 @@ msgstr[2] "bitų"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6199,7 +6223,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6207,7 +6231,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6216,14 +6240,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6232,7 +6256,7 @@ msgstr[1] "%s baitai"
msgstr[2] "%s baitų"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
@@ -6240,7 +6264,7 @@ msgstr[0] "%s bitas"
msgstr[1] "%s bitai"
msgstr[2] "%s bitų"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6253,39 +6277,45 @@ msgstr[2] "%u baitų"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
+#~ msgid "GApplication options"
+#~ msgstr "GApplication parametrai"
+
#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "keičiamas pavadinimas: %s\n"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "Vietinio failo adresas „%s“ negali turėti simbolio „#“"
+
+#~ msgid "backtracking limit reached"
+#~ msgstr "pasiekta atgalinio sekimo riba"
#~ msgid "internal error or corrupted object"
#~ msgstr "vidinė klaida arba sugadintas objektas"
diff --git a/po/lv.po b/po/lv.po
index 1f9129348..6f237c115 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -4,147 +4,171 @@
#
# Artis Trops <hornet@navigator.lv>, 2002.
# Rūdofls Mazurs <rudolfs.mazurs@gmail.com>, 2011, 2012.
-# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020, 2021.
+# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020, 2021, 2023.
msgid ""
msgstr ""
"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2021-07-19 15:52+0000\n"
-"PO-Revision-Date: 2021-10-25 19:39+0300\n"
+"POT-Creation-Date: 2023-08-31 10:14+0000\n"
+"PO-Revision-Date: 2023-09-18 17:09+0300\n"
"Last-Translator: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>\n"
"Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
"Language: lv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 21.08.1\n"
+"X-Generator: Lokalize 22.12.3\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 :"
" 2);\n"
-#: gio/gapplication.c:500
-msgid "GApplication options"
-msgstr "GApplication opcijas"
+#: gio/gappinfo.c:339
+#| msgid "Setting attribute %s not supported"
+msgid "Setting default applications not supported yet"
+msgstr "Noklusējuma lietotnes iestatīšana vēl nav atbalstīta"
-#: gio/gapplication.c:500
+#: gio/gappinfo.c:372
+#| msgid "Setting attribute %s not supported"
+msgid "Setting application as last used for type not supported yet"
+msgstr "Pēdējās izmantotās lietotnes iestatīšana tipam vēl nav atbalstīta"
+
+#: gio/gappinfo.c:814
+#, c-format
+#| msgid "No default applications for “%s”\n"
+msgid "Failed to find default application for content type ‘%s’"
+msgstr "Neizdevās atrast noklusējuma lietotni satura tipam “%s”"
+
+#: gio/gappinfo.c:874
+#, c-format
+#| msgid "No default applications for “%s”\n"
+msgid "Failed to find default application for URI Scheme ‘%s’"
+msgstr "Neizdevās atrast noklusējuma lietotni URI shēmai “%s”"
+
+#: gio/gapplication.c:506
+#| msgid "Application Options:"
+msgid "GApplication Options:"
+msgstr "GApplication opcijas:"
+
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Parādīt GApplication opcijas"
-#: gio/gapplication.c:545
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
"Ievadiet GApplication servisa režīmu (izmantot no D-Bus servisa datnēm)"
-#: gio/gapplication.c:557
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Pārrakstīt lietotnes ID"
-#: gio/gapplication.c:569
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Aizvietot palaisto instanci"
-#: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:494 gio/gsettings-tool.c:572
+#: gio/gapplication-tool.c:47 gio/gapplication-tool.c:48 gio/gio-tool.c:229
+#: gio/gresource-tool.c:496 gio/gsettings-tool.c:586
msgid "Print help"
msgstr "Drukāšanas palīdzība"
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:495 gio/gresource-tool.c:563
+#: gio/gapplication-tool.c:49 gio/gresource-tool.c:497 gio/gresource-tool.c:565
msgid "[COMMAND]"
msgstr "[KOMANDA]"
-#: gio/gapplication-tool.c:49 gio/gio-tool.c:228
+#: gio/gapplication-tool.c:51 gio/gio-tool.c:230
msgid "Print version"
msgstr "Drukāt versiju"
-#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:578
+#: gio/gapplication-tool.c:52 gio/gsettings-tool.c:592
msgid "Print version information and exit"
msgstr "Parādīt informāciju par versiju un iziet"
-#: gio/gapplication-tool.c:53
+#: gio/gapplication-tool.c:55
msgid "List applications"
msgstr "Uzskaitīt lietotnes"
-#: gio/gapplication-tool.c:54
+#: gio/gapplication-tool.c:56
msgid "List the installed D-Bus activatable applications (by .desktop files)"
msgstr ""
"Uzskaitīt instalētās D-Bus aktivizējamās lietotnes (ar .desktop datnēm)"
-#: gio/gapplication-tool.c:57
+#: gio/gapplication-tool.c:59
msgid "Launch an application"
msgstr "Palaist lietotni"
-#: gio/gapplication-tool.c:58
+#: gio/gapplication-tool.c:60
msgid "Launch the application (with optional files to open)"
msgstr "Palaist lietotni (ar neobligāti atveramām datnēm)"
-#: gio/gapplication-tool.c:59
+#: gio/gapplication-tool.c:61
msgid "APPID [FILE…]"
msgstr "LIETID [DATNE…]"
-#: gio/gapplication-tool.c:61
+#: gio/gapplication-tool.c:63
msgid "Activate an action"
msgstr "Aktivizēt darbību"
-#: gio/gapplication-tool.c:62
+#: gio/gapplication-tool.c:64
msgid "Invoke an action on the application"
msgstr "Izsaukt darbību uz lietotni"
-#: gio/gapplication-tool.c:63
+#: gio/gapplication-tool.c:65
msgid "APPID ACTION [PARAMETER]"
msgstr "LIETID DARBĪBA [PARAMETRS]"
-#: gio/gapplication-tool.c:65
+#: gio/gapplication-tool.c:67
msgid "List available actions"
msgstr "Uzskaita pieejamās darbības"
-#: gio/gapplication-tool.c:66
+#: gio/gapplication-tool.c:68
msgid "List static actions for an application (from .desktop file)"
msgstr "Uzskaita statiskās darbības lietotnei (no .desktop datnes)"
-#: gio/gapplication-tool.c:67 gio/gapplication-tool.c:73
+#: gio/gapplication-tool.c:69 gio/gapplication-tool.c:75
msgid "APPID"
msgstr "LIETID"
-#: gio/gapplication-tool.c:72 gio/gapplication-tool.c:135 gio/gdbus-tool.c:106
-#: gio/gio-tool.c:224
+#: gio/gapplication-tool.c:74 gio/gapplication-tool.c:137 gio/gdbus-tool.c:108
+#: gio/gio-tool.c:226
msgid "COMMAND"
msgstr "KOMANDA"
-#: gio/gapplication-tool.c:72
+#: gio/gapplication-tool.c:74
msgid "The command to print detailed help for"
msgstr "Komanda, lai drukātu detalizētu palīdzību priekš"
-#: gio/gapplication-tool.c:73
+#: gio/gapplication-tool.c:75
msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Lietotnes identifikators D-Bus formātā(piemēram: org.example.viewer)"
-#: gio/gapplication-tool.c:74 gio/glib-compile-resources.c:738
-#: gio/glib-compile-resources.c:744 gio/glib-compile-resources.c:772
-#: gio/gresource-tool.c:501 gio/gresource-tool.c:567
+#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
+#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "DATNE"
-#: gio/gapplication-tool.c:74
+#: gio/gapplication-tool.c:76
msgid "Optional relative or absolute filenames, or URIs to open"
msgstr ""
"Neobligāts relatīvs vai absolūts datnes nosaukums, vai URI, lai atvērtu"
-#: gio/gapplication-tool.c:75
+#: gio/gapplication-tool.c:77
msgid "ACTION"
msgstr "DARBĪBA"
-#: gio/gapplication-tool.c:75
+#: gio/gapplication-tool.c:77
msgid "The action name to invoke"
msgstr "Darbības nosaukums, ko izsaukt"
-#: gio/gapplication-tool.c:76
+#: gio/gapplication-tool.c:78
msgid "PARAMETER"
msgstr "PARAMETRS"
-#: gio/gapplication-tool.c:76
+#: gio/gapplication-tool.c:78
msgid "Optional parameter to the action invocation, in GVariant format"
msgstr "Neobligāts parametrs darbības izsaukšanai, GVariant formātā"
-#: gio/gapplication-tool.c:98 gio/gresource-tool.c:532 gio/gsettings-tool.c:664
+#: gio/gapplication-tool.c:100 gio/gresource-tool.c:534
+#: gio/gsettings-tool.c:678
#, c-format
msgid ""
"Unknown command %s\n"
@@ -153,26 +177,26 @@ msgstr ""
"Nezināma komanda %s\n"
"\n"
-#: gio/gapplication-tool.c:103
+#: gio/gapplication-tool.c:105
msgid "Usage:\n"
msgstr "Lietošana:\n"
-#: gio/gapplication-tool.c:116 gio/gresource-tool.c:557
-#: gio/gsettings-tool.c:699
+#: gio/gapplication-tool.c:118 gio/gresource-tool.c:559
+#: gio/gsettings-tool.c:713
msgid "Arguments:\n"
msgstr "Argumenti:\n"
-#: gio/gapplication-tool.c:135 gio/gio-tool.c:224
+#: gio/gapplication-tool.c:137 gio/gio-tool.c:226
msgid "[ARGS…]"
msgstr "[ARG…]"
-#: gio/gapplication-tool.c:136
+#: gio/gapplication-tool.c:138
#, c-format
msgid "Commands:\n"
msgstr "Komandas:\n"
#. Translators: do not translate 'help', but please translate 'COMMAND'.
-#: gio/gapplication-tool.c:148
+#: gio/gapplication-tool.c:150
#, c-format
msgid ""
"Use “%s help COMMAND” to get detailed help.\n"
@@ -181,7 +205,7 @@ msgstr ""
"Lietojiet “%s help KOMANDA”, lai iegūtu detalizētu palīdzību.\n"
"\n"
-#: gio/gapplication-tool.c:167
+#: gio/gapplication-tool.c:169
#, c-format
msgid ""
"%s command requires an application id to directly follow\n"
@@ -190,13 +214,13 @@ msgstr ""
"%s komandai vajag lietotnes id, lai tieši sekotu\n"
"\n"
-#: gio/gapplication-tool.c:173
+#: gio/gapplication-tool.c:175
#, c-format
msgid "invalid application id: “%s”\n"
msgstr "nederīgs lietotnes id — “%s”\n"
#. Translators: %s is replaced with a command name like 'list-actions'
-#: gio/gapplication-tool.c:184
+#: gio/gapplication-tool.c:186
#, c-format
msgid ""
"“%s” takes no arguments\n"
@@ -205,21 +229,21 @@ msgstr ""
"“%s” nepieņem argumentus\n"
"\n"
-#: gio/gapplication-tool.c:268
+#: gio/gapplication-tool.c:270
#, c-format
msgid "unable to connect to D-Bus: %s\n"
msgstr "Nevarēja savienoties ar D-Bus — %s\n"
-#: gio/gapplication-tool.c:288
+#: gio/gapplication-tool.c:290
#, c-format
msgid "error sending %s message to application: %s\n"
msgstr "kļūda, sūtot %s ziņojumu lietotnei — %s\n"
-#: gio/gapplication-tool.c:319
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "darbības nosaukumam ir jābūt dotam pēc lietotnes id\n"
-#: gio/gapplication-tool.c:327
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -228,25 +252,25 @@ msgstr ""
"nederīgs darbības nosaukums — “%s”\n"
"darbības nosaukumā var būt tikai burti, cipari, “-” un “.”\n"
-#: gio/gapplication-tool.c:346
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "kļūda, parsējot darbības parametru — %s\n"
-#: gio/gapplication-tool.c:358
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "darbības pieņem ne vairāk ka vienu parametru\n"
-#: gio/gapplication-tool.c:413
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "darbību uzskaites komanda pieņem tikai lietotnes id"
-#: gio/gapplication-tool.c:423
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "nevar atrast darbvirsmas datni lietotnei %s\n"
-#: gio/gapplication-tool.c:468
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -255,126 +279,126 @@ msgstr ""
"neatpazīta komanda: %s\n"
"\n"
-#: gio/gbufferedinputstream.c:420 gio/gbufferedinputstream.c:498
-#: gio/ginputstream.c:179 gio/ginputstream.c:379 gio/ginputstream.c:648
-#: gio/ginputstream.c:1050 gio/goutputstream.c:223 gio/goutputstream.c:1049
-#: gio/gpollableinputstream.c:205 gio/gpollableoutputstream.c:277
+#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Pārāk liela vērtība tika padota %s"
-#: gio/gbufferedinputstream.c:891 gio/gbufferedoutputstream.c:575
-#: gio/gdataoutputstream.c:562
+#: gio/gbufferedinputstream.c:893 gio/gbufferedoutputstream.c:577
+#: gio/gdataoutputstream.c:564
msgid "Seek not supported on base stream"
msgstr "Uz bāzes plūsmas meklēšana netiek atbalstīta"
-#: gio/gbufferedinputstream.c:938
+#: gio/gbufferedinputstream.c:940
msgid "Cannot truncate GBufferedInputStream"
msgstr "Nevar apraut GBufferedInputStream"
-#: gio/gbufferedinputstream.c:983 gio/ginputstream.c:1239 gio/giostream.c:300
-#: gio/goutputstream.c:2198
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Plūsma jau ir aizvērta"
-#: gio/gbufferedoutputstream.c:612 gio/gdataoutputstream.c:592
+#: gio/gbufferedoutputstream.c:614 gio/gdataoutputstream.c:594
msgid "Truncate not supported on base stream"
msgstr "Uz bāzes plūsmas apraušana nav atbalstīta"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1872 gio/gdbusprivate.c:1416
-#: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
+#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
msgstr "Darbība tika atcelta"
-#: gio/gcharsetconverter.c:260
+#: gio/gcharsetconverter.c:262
msgid "Invalid object, not initialized"
msgstr "Nederīgs objekts, nav inicializēts"
-#: gio/gcharsetconverter.c:281 gio/gcharsetconverter.c:309
+#: gio/gcharsetconverter.c:283 gio/gcharsetconverter.c:311
msgid "Incomplete multibyte sequence in input"
msgstr "Nepilnīga vairāku baitu sekvence ievadē"
-#: gio/gcharsetconverter.c:315 gio/gcharsetconverter.c:324
+#: gio/gcharsetconverter.c:317 gio/gcharsetconverter.c:326
msgid "Not enough space in destination"
msgstr "Mērķī nepietiek brīvās vietas"
-#: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1266 glib/gconvert.c:449 glib/gconvert.c:879
-#: glib/giochannel.c:1573 glib/giochannel.c:1615 glib/giochannel.c:2470
-#: glib/gutf8.c:875 glib/gutf8.c:1328
+#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Nepareiza baitu secība konversijas ievadē"
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:457 glib/gconvert.c:793
-#: glib/giochannel.c:1580 glib/giochannel.c:2482
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Kļūda, konversējot — %s"
-#: gio/gcharsetconverter.c:445 gio/gsocket.c:1143
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Atceļama inicializācija nav atbalstīta"
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:322 glib/giochannel.c:1401
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Pārveidošana no rakstzīmju kopas “%s” uz “%s” nav atbalstīta"
-#: gio/gcharsetconverter.c:460 glib/gconvert.c:326
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Nevarēja atvērt pārveidotāju no “%s” uz “%s”"
-#: gio/gcontenttype.c:454
+#: gio/gcontenttype.c:472
#, c-format
msgid "%s type"
msgstr "%s tips"
-#: gio/gcontenttype-win32.c:192
+#: gio/gcontenttype-win32.c:198
msgid "Unknown type"
msgstr "Nezināms tips"
-#: gio/gcontenttype-win32.c:194
+#: gio/gcontenttype-win32.c:200
#, c-format
msgid "%s filetype"
msgstr "%s datnes tips"
-#: gio/gcredentials.c:323
+#: gio/gcredentials.c:337
msgid "GCredentials contains invalid data"
msgstr "GCredentials satur nederīgus datus"
-#: gio/gcredentials.c:383 gio/gcredentials.c:667
+#: gio/gcredentials.c:397 gio/gcredentials.c:688
msgid "GCredentials is not implemented on this OS"
msgstr "GCredentials nav implementēti šajā OS"
-#: gio/gcredentials.c:538 gio/gcredentials.c:556
+#: gio/gcredentials.c:552 gio/gcredentials.c:570
msgid "There is no GCredentials support for your platform"
msgstr "Šajā platformā nav GCredentials atbalsta"
-#: gio/gcredentials.c:607
+#: gio/gcredentials.c:628
msgid "GCredentials does not contain a process ID on this OS"
msgstr "GCredentials nesatur procesa ID šajā OS"
-#: gio/gcredentials.c:661
+#: gio/gcredentials.c:682
msgid "Credentials spoofing is not possible on this OS"
msgstr "Šajā OS nevar viltot akreditācijas datus"
-#: gio/gdatainputstream.c:304
+#: gio/gdatainputstream.c:306
msgid "Unexpected early end-of-stream"
msgstr "Negaidīti agras plūsmas beigas"
-#: gio/gdbusaddress.c:159 gio/gdbusaddress.c:233 gio/gdbusaddress.c:322
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Neatbalstīta atslēga “%s” adreses ierakstā “%s”"
-#: gio/gdbusaddress.c:172
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Bezjēdzīgas atslēgu/vērtību pāru kombinācijas adrešu ierakstā “%s”"
-#: gio/gdbusaddress.c:181
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -383,28 +407,28 @@ msgstr ""
"Adrese “%s” ir nederīga (vajag tieši vienu atslēgu: path, dir, tmpdir vai "
"abstract)"
-#: gio/gdbusaddress.c:248 gio/gdbusaddress.c:259 gio/gdbusaddress.c:274
-#: gio/gdbusaddress.c:337 gio/gdbusaddress.c:348
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
+#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
msgstr "Kļūda adresē “%s” — “%s” atribūts ir slikti noformēts"
-#: gio/gdbusaddress.c:418 gio/gdbusaddress.c:682
+#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:682
#, c-format
msgid "Unknown or unsupported transport “%s” for address “%s”"
msgstr "Nezināms vai neatbalstīts transports “%s” adresei “%s”"
-#: gio/gdbusaddress.c:462
+#: gio/gdbusaddress.c:467
#, c-format
msgid "Address element “%s” does not contain a colon (:)"
msgstr "Adreses elements “%s” nesatur kolu (:)"
-#: gio/gdbusaddress.c:471
+#: gio/gdbusaddress.c:476
#, c-format
msgid "Transport name in address element “%s” must not be empty"
msgstr "Transporta nosaukums adreses elementā “%s” nedrīkst būt tukšs"
-#: gio/gdbusaddress.c:492
+#: gio/gdbusaddress.c:497
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
@@ -413,7 +437,7 @@ msgstr ""
"Atslēgas/vērtības pāris %d, “%s”, adreses elementā “%s”, nesatur vienādības "
"zīmi"
-#: gio/gdbusaddress.c:503
+#: gio/gdbusaddress.c:508
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
@@ -421,7 +445,7 @@ msgstr ""
"Atslēgas/vērtības pāris %d, “%s”, adreses elementā “%s”, nedrīkst saturēt "
"tukšu atslēgu"
-#: gio/gdbusaddress.c:517
+#: gio/gdbusaddress.c:522
#, c-format
msgid ""
"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
@@ -430,7 +454,7 @@ msgstr ""
"Kļūda, noņemot atsoli atslēgai vai vērtībai atslēga/vērtība pārī %d. “%s”, "
"adreses elementā “%s”"
-#: gio/gdbusaddress.c:589
+#: gio/gdbusaddress.c:590
#, c-format
msgid ""
"Error in address “%s” — the unix transport requires exactly one of the keys "
@@ -484,8 +508,9 @@ msgstr "Dotā adrese ir tukša"
#: gio/gdbusaddress.c:1101
#, c-format
-msgid "Cannot spawn a message bus when setuid"
-msgstr "Nevar izveidot ziņojumu kopni, kad veic machine-id"
+#| msgid "Cannot spawn a message bus when setuid"
+msgid "Cannot spawn a message bus when AT_SECURE is set"
+msgstr "Nevar izveidot ziņojumu kopni, kad ir iestatīts AT_SECURE"
#: gio/gdbusaddress.c:1108
msgid "Cannot spawn a message bus without a machine-id: "
@@ -506,7 +531,7 @@ msgstr "Kļūda, izveidojot komandrindu “%s”: "
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr "Nevar noteikt sesijas kopnes adresi (nav implementēts šai OS)"
-#: gio/gdbusaddress.c:1397 gio/gdbusconnection.c:7261
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -515,7 +540,7 @@ msgstr ""
"Nevar noteikt kopnes adresi no DBUS_STARTER_BUS_TYPE vides mainīgā — "
"nezināma vērtība “%s”"
-#: gio/gdbusaddress.c:1406 gio/gdbusconnection.c:7270
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -523,7 +548,7 @@ msgstr ""
"Nevar noteikt kopnes adresi, jo DBUS_STARTER_BUS_TYPE vides mainīgais nav "
"iestatīts"
-#: gio/gdbusaddress.c:1416
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Nezināms kopnes tips %d"
@@ -544,52 +569,57 @@ msgstr ""
"Izsmelti visi pieejamie autentifikācijas mehānismi (mēģināti: %s) (pieejami: "
"%s)"
-#: gio/gdbusauth.c:1171
+#: gio/gdbusauth.c:1045
+#| msgid "Unexpected lack of content trying to read a line"
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Negaidīts satura trūkums, mēģinot lasīt baitu"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Lietotāja ID ir jābūt vienādiem gan biedram, gan serverim"
-#: gio/gdbusauth.c:1183
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Atcelts caur GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:298
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Kļūda, saņemot informāciju par mapi “%s” — %s"
-#: gio/gdbusauthmechanismsha1.c:313
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr ""
"Atļaujas mapei “%s” ir slikti formatētas. Gaidīja režīmu 0700, saņēma 0%o"
-#: gio/gdbusauthmechanismsha1.c:346 gio/gdbusauthmechanismsha1.c:357
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Kļūda, veidojot direktoriju “%s” — %s"
-#: gio/gdbusauthmechanismsha1.c:359 gio/gfile.c:1062 gio/gfile.c:1300
-#: gio/gfile.c:1438 gio/gfile.c:1676 gio/gfile.c:1731 gio/gfile.c:1789
-#: gio/gfile.c:1873 gio/gfile.c:1930 gio/gfile.c:1994 gio/gfile.c:2049
-#: gio/gfile.c:3754 gio/gfile.c:3809 gio/gfile.c:4102 gio/gfile.c:4572
-#: gio/gfile.c:4983 gio/gfile.c:5068 gio/gfile.c:5158 gio/gfile.c:5255
-#: gio/gfile.c:5342 gio/gfile.c:5443 gio/gfile.c:8153 gio/gfile.c:8243
-#: gio/gfile.c:8327 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Darbība nav atbalstīta"
-#: gio/gdbusauthmechanismsha1.c:402
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Kļūda, atverot atslēgu saišķi “%s” lasīšanai: "
-#: gio/gdbusauthmechanismsha1.c:425 gio/gdbusauthmechanismsha1.c:747
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "Rinda %d atslēgu saišķim “%s” ar saturu “%s” ir slikti formatēts"
-#: gio/gdbusauthmechanismsha1.c:439 gio/gdbusauthmechanismsha1.c:761
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -597,7 +627,7 @@ msgstr ""
"Pirmais marķieris rindai %d atslēgu saišķim “%s” ar saturu “%s” ir slikti "
"formatēts"
-#: gio/gdbusauthmechanismsha1.c:453 gio/gdbusauthmechanismsha1.c:775
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -605,161 +635,171 @@ msgstr ""
"Otrais marķieris rindai %d atslēgu saišķim “%s” ar saturu “%s” ir slikti "
"formatēts"
-#: gio/gdbusauthmechanismsha1.c:477
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Neatrada sīkdatni ar id %d atslēgu saišķī “%s”"
-#: gio/gdbusauthmechanismsha1.c:523
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Kļūda, veidojot slēgšanas datni “%s” — %s"
-#: gio/gdbusauthmechanismsha1.c:587
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Kļūda, dzēšot neesošu slēgšanas datni “%s” — %s"
-#: gio/gdbusauthmechanismsha1.c:626
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Kļūda, aizverot (atsaitējot) slēgšanas datni “%s” — %s"
-#: gio/gdbusauthmechanismsha1.c:637
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Kļūda, atsaitējot slēgšanas datni “%s” — %s"
-#: gio/gdbusauthmechanismsha1.c:714
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Kļūda, atverot atslēgu saišķi “%s” rakstīšanai: "
-#: gio/gdbusauthmechanismsha1.c:908
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Un vēl, “%s” slēguma atbrīvošana neizdevās — %s) "
-#: gio/gdbusconnection.c:603 gio/gdbusconnection.c:2417
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "Savienojums ir aizvērts"
-#: gio/gdbusconnection.c:1902
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Iestājās noildze"
-#: gio/gdbusconnection.c:2540
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Sastapās ar neatbalstītiem slēdžiem (flag), veidojot klienta puses "
"savienojumu"
-#: gio/gdbusconnection.c:4189 gio/gdbusconnection.c:4536
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"Nav tādas saskarnes “org.freedesktop.DBus.Properties” uz objekta ceļa %s"
-#: gio/gdbusconnection.c:4331
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Nav tādas īpašības “%s”"
-#: gio/gdbusconnection.c:4343
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Īpašība “%s” nav lasāma"
-#: gio/gdbusconnection.c:4354
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Īpašība “%s” nav rakstāma"
-#: gio/gdbusconnection.c:4374
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr "Kļūda, iestatot īpašību “%s” — gaidīja tipu “%s”, bet saņēma “%s”"
-#: gio/gdbusconnection.c:4479 gio/gdbusconnection.c:4687
-#: gio/gdbusconnection.c:6689
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Nav tādas saskarnes “%s”"
-#: gio/gdbusconnection.c:4905 gio/gdbusconnection.c:7201
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Nav tādas saskarnes “%s” uz objekta ceļa %s"
-#: gio/gdbusconnection.c:5003
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Nav tādas metodes “%s”"
-#: gio/gdbusconnection.c:5034
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Ziņojuma tips “%s” neatbilda gaidītajam tipam “%s”"
-#: gio/gdbusconnection.c:5237
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Objekts jau ir eksportēts saskarnei %s pie %s"
-#: gio/gdbusconnection.c:5463
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Nevar saņemt īpašību %s.%s"
-#: gio/gdbusconnection.c:5519
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Nevar iestatīt īpašību %s.%s"
-#: gio/gdbusconnection.c:5698
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Metode “%s” atgrieza tipu “%s”, bet gaidīja “%s”"
-#: gio/gdbusconnection.c:6800
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Metode “%s” uz saskarnes “%s” ar parakstu “%s” neeksistē"
-#: gio/gdbusconnection.c:6921
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "%s apakškoks jau ir eksportēts "
-#: gio/gdbusconnection.c:7209
+#: gio/gdbusconnection.c:7287
#, c-format
-#| msgid "Key file does not have group “%s”"
msgid "Object does not exist at path “%s”"
msgstr "Ceļā “%s” objekts neeksistē"
-#: gio/gdbusmessage.c:1266
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "tips ir INVALID"
-#: gio/gdbusmessage.c:1277
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "METHOD_CALL ziņojums — trūkst PATH vai MEMBER galvene"
+#: gio/gdbusmessage.c:1324
+#| msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr "METHOD_CALL ziņojums — trūkst vai nav derīga PATH vai MEMBER galvene"
-#: gio/gdbusmessage.c:1288
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "METHOD_RETURN ziņojums — trūkst REPLY_SERIAL galvenes lauks"
+#: gio/gdbusmessage.c:1340
+#| msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"METHOD_RETURN ziņojums — trūkst vai nav derīga REPLY_SERIAL galvenes lauks"
-#: gio/gdbusmessage.c:1300
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "ERROR ziņojums — trūkst REPLY_SERIAL vai ERROR_NAME galvenes lauks"
+#: gio/gdbusmessage.c:1360
+#| msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"ERROR ziņojums — trūkst vai nav derīga REPLY_SERIAL vai ERROR_NAME galvenes"
+" lauks"
-#: gio/gdbusmessage.c:1313
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "SIGNAL ziņojums — trūkst PATH, INTERFACE vai MEMBER galvenes datne"
+#: gio/gdbusmessage.c:1384
+#| msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"SIGNAL ziņojums — trūkst vai nav derīga PATH, INTERFACE vai MEMBER galvenes"
+" datne"
-#: gio/gdbusmessage.c:1321
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -767,7 +807,7 @@ msgstr ""
"SIGNAL ziņojums — PATH galvenes datne izmanto rezervēto vērtību /org/"
"freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1329
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -775,7 +815,7 @@ msgstr ""
"SIGNAL ziņojums — INTERFACE galvenes dante izmanto rezervēto vērtību org."
"freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1377 gio/gdbusmessage.c:1437
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
@@ -783,12 +823,12 @@ msgstr[0] "Vēlējās lasīt %lu baitu, bet saņēma %lu"
msgstr[1] "Vēlējās lasīt %lu baitus, bet saņēma %lu"
msgstr[2] "Vēlējās lasīt %lu baitus, bet saņēma %lu"
-#: gio/gdbusmessage.c:1391
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Gaidīja NUL baitu pēc virknes “%s”, bet atrada baitu %d"
-#: gio/gdbusmessage.c:1410
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -797,21 +837,21 @@ msgstr ""
"Gaidīja derīgu UTF-8 virkni, bet atrada nederīgus baitus pie baitu nobīdes "
"%d (virknes garums ir %d). Derīgā UTF-8 virkne līdz tai vietai bija “%s”"
-#: gio/gdbusmessage.c:1474 gio/gdbusmessage.c:1722 gio/gdbusmessage.c:1911
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Vērtība ir iegulta pārāk dziļi"
-#: gio/gdbusmessage.c:1620
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Parsētā vērtība “%s” nav derīgs D-Bus objekta ceļš"
-#: gio/gdbusmessage.c:1642
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Parsētā vērtība “%s” nav derīgs D-Bus objekta paraksts"
-#: gio/gdbusmessage.c:1689
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -827,7 +867,7 @@ msgstr[2] ""
"Saskārās ar %u baitu garu masīvu. Maksimālais garums ir 2<<26 baiti (64 "
"MiB)."
-#: gio/gdbusmessage.c:1709
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -836,19 +876,23 @@ msgstr ""
"Saskārās ar masīvu, kam tips ir “a%c”, kura garumam vajadzētu dalīties ar %u "
"baitiem, bet tā garums ir %u baiti"
-#: gio/gdbusmessage.c:1895
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
+msgid "Empty structures (tuples) are not allowed in D-Bus"
+msgstr "Tukšas struktūras (korteži) nav atļauti iekš D-Bus"
+
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Parsētā vērtība “%s” variantam nav derīgs D-Bus paraksts"
-#: gio/gdbusmessage.c:1936
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr ""
"Kļūda, deserializējot GVariant ar tipa virkni “%s” no D-Bus vadu formāta"
-#: gio/gdbusmessage.c:2121
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -857,27 +901,27 @@ msgstr ""
"Nederīga secības (endian) vērtība. Gaidīja 0x6c (“l”) vai 0x42 (“B”), bet "
"atrada vērību 0x%02x"
-#: gio/gdbusmessage.c:2134
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Nederīga lielā protokola vērtība. Gaidīja 1, bet saņēma %d"
-#: gio/gdbusmessage.c:2188 gio/gdbusmessage.c:2784
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Parasta galvene ir atrasta, bet tai nav tipa paraksta"
-#: gio/gdbusmessage.c:2200
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Paraksta galvene ar parakstu “%s” atrasta, bet vēstules pamatteksts ir tukšs"
-#: gio/gdbusmessage.c:2215
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Parsētā vērtība “%s” nav derīgs D-Bus paraksts (pamattekstam)"
-#: gio/gdbusmessage.c:2247
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -888,32 +932,32 @@ msgstr[1] ""
msgstr[2] ""
"Ziņojumā nav paraksta galvenes, bet ziņojuma pamatteksts ir %u baitu"
-#: gio/gdbusmessage.c:2257
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Nevar deserializēt ziņojumu: "
-#: gio/gdbusmessage.c:2601
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr "Kļūda, serializējot GVariant ar tipa virkni “%s” uz D-Bus vadu formātu"
-#: gio/gdbusmessage.c:2738
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr "Datņu deskriptoru skaits (%d) ziņojumā atšķiras no galvenes lauka (%d)"
-#: gio/gdbusmessage.c:2746
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Nevar serializēt ziņojumu: "
-#: gio/gdbusmessage.c:2799
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "Ziņojuma pamattekstam ir paraksts “%s”, bet nav paraksta galvenes"
-#: gio/gdbusmessage.c:2809
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -922,53 +966,52 @@ msgstr ""
"Vēstules pamattekstam ir tipa paraksts “%s”, bet paraksts galvenes laukā ir "
"“%s”"
-#: gio/gdbusmessage.c:2825
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Ziņojuma pamatteksts ir tukšs, bet paraksta galvenes lauks ir “(%s)”"
-#: gio/gdbusmessage.c:3380
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Kļūdas atgriešana ar pamattekstu ar tipu “%s”"
-#: gio/gdbusmessage.c:3388
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Kļūdas atgriešana ar tukšu pamattekstu"
-#: gio/gdbusprivate.c:2246
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Ievadiet jebkuru rakstzīmi, lai aizvērtu šo logu)\n"
-#: gio/gdbusprivate.c:2420
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "Sesijas dbus nav palaists un automātiskā palaišana cieta neveiksmi"
-#: gio/gdbusprivate.c:2443
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Nevar saņemt aparatūras profilu — %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2494
+#: gio/gdbusprivate.c:2461
#, c-format
-#| msgid "Unable to load ‘%s‘: %s"
msgid "Unable to load %s or %s: "
msgstr "Nevar ielādēt %s vai %s: "
-#: gio/gdbusproxy.c:1569
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Kļūda, izsaucot StartServiceByName priekš %s: "
-#: gio/gdbusproxy.c:1592
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Negaidīta atbilde %d no StartServiceByName(“%s”) metodes"
-#: gio/gdbusproxy.c:2699 gio/gdbusproxy.c:2834
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -978,30 +1021,30 @@ msgstr ""
"īpašnieka, un starpnieks tika veidots ar "
"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START slēdzi (flag)"
-#: gio/gdbusserver.c:767
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Abstraktas nosaukumu telpas nav atbalstītas"
-#: gio/gdbusserver.c:860
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Nevar norādīt nonce datni, kad veido serveri"
-#: gio/gdbusserver.c:942
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Kļūda, rakstot nonce datni pie “%s” — %s"
-#: gio/gdbusserver.c:1117
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Virkne “%s” nav derīga D-Bus GUID"
-#: gio/gdbusserver.c:1157
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Nevar klausīties uz neatbalstīta transporta “%s”"
-#: gio/gdbus-tool.c:111
+#: gio/gdbus-tool.c:113
#, c-format
msgid ""
"Commands:\n"
@@ -1024,67 +1067,67 @@ msgstr ""
"\n"
"Lieto “%s KOMANDA --help”, lai saņemtu palīdzību par katru komandu.\n"
-#: gio/gdbus-tool.c:201 gio/gdbus-tool.c:273 gio/gdbus-tool.c:345
-#: gio/gdbus-tool.c:369 gio/gdbus-tool.c:859 gio/gdbus-tool.c:1236
-#: gio/gdbus-tool.c:1724
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Kļūda: %s\n"
-#: gio/gdbus-tool.c:212 gio/gdbus-tool.c:286 gio/gdbus-tool.c:1740
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Kļūda, parsējot introspekcijas XML: %s\n"
-#: gio/gdbus-tool.c:250
+#: gio/gdbus-tool.c:253
#, c-format
msgid "Error: %s is not a valid name\n"
msgstr "Kļūda — %s nav derīgs nosaukums\n"
-#: gio/gdbus-tool.c:255 gio/gdbus-tool.c:745 gio/gdbus-tool.c:1060
-#: gio/gdbus-tool.c:1890 gio/gdbus-tool.c:2130
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Kļūda — %s nav derīgs objekta ceļš\n"
-#: gio/gdbus-tool.c:403
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Savienoties ar sistēmas kopni"
-#: gio/gdbus-tool.c:404
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Savienoties ar sesijas kopni"
-#: gio/gdbus-tool.c:405
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Savienoties ar doto D-Bus adresi"
-#: gio/gdbus-tool.c:415
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Savienojuma galapunktu opcijas:"
-#: gio/gdbus-tool.c:416
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Opcijas, kas norāda savienojuma galapunktus"
-#: gio/gdbus-tool.c:439
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Nav norādīti savienojuma galapunkti"
-#: gio/gdbus-tool.c:449
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Norādīti vairāki savienojuma galapunkti"
-#: gio/gdbus-tool.c:522
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr ""
"Brīdinājums — spriežot pēc introspekcijas datiem, saskarne “%s” neeksistē\n"
-#: gio/gdbus-tool.c:531
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1093,160 +1136,165 @@ msgstr ""
"Brīdinājums — spriežot pēc introspekcijas datiem, metode “%s” neeksistē uz "
"saskarnes “%s”\n"
-#: gio/gdbus-tool.c:593
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Neobligāts mērķis signālam (unikāls nosaukums)"
-#: gio/gdbus-tool.c:594
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Objekta ceļš, uz kura izplatīt signālu"
-#: gio/gdbus-tool.c:595
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Signāls un saskarnes nosaukums"
-#: gio/gdbus-tool.c:628
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Izplatīt signālu."
-#: gio/gdbus-tool.c:683 gio/gdbus-tool.c:997 gio/gdbus-tool.c:1827
-#: gio/gdbus-tool.c:2059 gio/gdbus-tool.c:2279
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Kļūda savienojot — %s\n"
-#: gio/gdbus-tool.c:703
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Kļūda — %s nav derīgs unikāls kopnes nosaukums.\n"
-#: gio/gdbus-tool.c:722 gio/gdbus-tool.c:1040 gio/gdbus-tool.c:1870
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Kļūda — nav norādīts objekta ceļš\n"
-#: gio/gdbus-tool.c:765
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Kļūda — nav norādīts signāla nosaukums\n"
-#: gio/gdbus-tool.c:779
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Kļūda — signāla nosaukums “%s” nav derīgs\n"
-#: gio/gdbus-tool.c:791
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Kļūda — %s nav derīgs saskarnes nosaukums.\n"
-#: gio/gdbus-tool.c:797
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Kļūda — %s nav derīgs dalībnieka nosaukums.\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:834 gio/gdbus-tool.c:1172
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Kļūda, parsējot parametru %d — %s\n"
-#: gio/gdbus-tool.c:866
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Kļūda, nopludinot savienojumu — %s\n"
-#: gio/gdbus-tool.c:893
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Mērķa nosaukums, uz kura izsaukt metodi"
-#: gio/gdbus-tool.c:894
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Objekta ceļš, uz kura izsaukt metodi"
-#: gio/gdbus-tool.c:895
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Metode un saskarnes nosaukums"
-#: gio/gdbus-tool.c:896
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Noildze sekundēs"
-#: gio/gdbus-tool.c:942
+#: gio/gdbus-tool.c:900
+#| msgid "Show information about locations"
+msgid "Allow interactive authorization"
+msgstr "Atļaut interaktīvu pilnvarošanu"
+
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Izsaukt metodi uz attālināta objekta."
-#: gio/gdbus-tool.c:1014 gio/gdbus-tool.c:1844 gio/gdbus-tool.c:2084
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Kļūda — nav norādīts galamērķis\n"
-#: gio/gdbus-tool.c:1025 gio/gdbus-tool.c:1861 gio/gdbus-tool.c:2095
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Kļūda — %s nav derīgs kopnes nosaukums\n"
-#: gio/gdbus-tool.c:1075
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Kļūda — nav norādīts metodes nosaukums\n"
-#: gio/gdbus-tool.c:1086
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Kļūda — metodes nosaukums “%s” nav derīgs\n"
-#: gio/gdbus-tool.c:1164
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Kļūda, parsējot parametru %d ar tipu “%s” — %s\n"
-#: gio/gdbus-tool.c:1190
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Kļūda, pievienojot turi %d — %s\n"
-#: gio/gdbus-tool.c:1686
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Mērķa nosaukums, kam veikt introspekciju"
-#: gio/gdbus-tool.c:1687
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Objekta ceļš, kam veikt introspekciju"
-#: gio/gdbus-tool.c:1688
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Drukāt XML"
-#: gio/gdbus-tool.c:1689
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Veikt introspekciju bērniem"
-#: gio/gdbus-tool.c:1690
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Tikai drukāšanas īpašības"
-#: gio/gdbus-tool.c:1779
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Veikt introspekciju attālinātam objektam."
-#: gio/gdbus-tool.c:1985
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Mērķa nosaukums uz pārraugu"
-#: gio/gdbus-tool.c:1986
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Objekta ceļš uz pārraugu"
-#: gio/gdbus-tool.c:2011
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Pārraudzīt attālinātu objektu."
-#: gio/gdbus-tool.c:2069
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Kļūda: nevar pārraudzīt non-message-bus savienojumu\n"
-#: gio/gdbus-tool.c:2193
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Serviss, ko aktivizēt pirms gaidīt otru (labi zināms nosaukums)"
-#: gio/gdbus-tool.c:2196
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1254,124 +1302,134 @@ msgstr ""
"Cik ilgi gaidīt, pirms iziet ar kļūdu (sekundēs); 0 nozīmē bez noildzes "
"(noklusējuma)"
-#: gio/gdbus-tool.c:2244
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPCIJA…] KOPNES-NOSAUKUMS"
-#: gio/gdbus-tool.c:2245
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Gaidīt līdz parādās kopnes nosaukums."
-#: gio/gdbus-tool.c:2321
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Kļūda — jānorāda serviss, ko aktivizēt.\n"
-#: gio/gdbus-tool.c:2326
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Kļūda — jānorāda serviss, uz kuru gaidīt.\n"
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Kļūda — pārāk daudz argumentu.\n"
-#: gio/gdbus-tool.c:2339 gio/gdbus-tool.c:2346
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Kļūda — %s nav derīgs labi zināms kopnes nosaukums.\n"
-#: gio/gdesktopappinfo.c:2106 gio/gdesktopappinfo.c:4932
+#: gio/gdebugcontrollerdbus.c:361
+#, c-format
+msgid "Not authorized to change debug settings"
+msgstr "Nav pilnvarots mainīt atkļūdošanas iestatījumus"
+
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Nenosaukts"
-#: gio/gdesktopappinfo.c:2516
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Darbvirsmas datne nenorādīja Exec lauku"
-#: gio/gdesktopappinfo.c:2801
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Nevarēja atrast termināli, kas ir nepieciešams lietotnei"
-#: gio/gdesktopappinfo.c:3452
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Programma “%s” nav atrasta iekš $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Nevar izveidot lietotāja lietotnes konfigurācijas mapi %s — %s"
-#: gio/gdesktopappinfo.c:3456
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Nevar izveidot lietotāja MIME konfigurācijas mapi %s — %s"
-#: gio/gdesktopappinfo.c:3698 gio/gdesktopappinfo.c:3722
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Lietotnes informācijai trūkst identifikatora"
-#: gio/gdesktopappinfo.c:3958
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Nevar izveidot lietotāja darbvirsmas datni %s"
-#: gio/gdesktopappinfo.c:4094
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Pielāgotas %s definīcijas"
-#: gio/gdrive.c:417
+#: gio/gdrive.c:419
msgid "drive doesn’t implement eject"
msgstr "dzinis neatbalsta izgrūšanu"
#. Translators: This is an error
#. * message for drive objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gdrive.c:495
+#: gio/gdrive.c:497
msgid "drive doesn’t implement eject or eject_with_operation"
msgstr "dzinis neatbalsta izgrūšanu vai eject_with_operation"
-#: gio/gdrive.c:571
+#: gio/gdrive.c:573
msgid "drive doesn’t implement polling for media"
msgstr "dzinis neatbalsta medija aptauju"
-#: gio/gdrive.c:778
+#: gio/gdrive.c:780
msgid "drive doesn’t implement start"
msgstr "dzinis neatbalsta startēšanu"
-#: gio/gdrive.c:880
+#: gio/gdrive.c:882
msgid "drive doesn’t implement stop"
msgstr "dzinis neatbalsta apturēšanu"
-#: gio/gdtlsconnection.c:1153 gio/gtlsconnection.c:920
+#: gio/gdtlsconnection.c:1188 gio/gtlsconnection.c:957
msgid "TLS backend does not implement TLS binding retrieval"
msgstr "TLS aizmugure nav implementējusi TLS saistīšanas saņemšanu"
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
-#: gio/gdummytlsbackend.c:513
+#: gio/gdummytlsbackend.c:197 gio/gdummytlsbackend.c:323
+#: gio/gdummytlsbackend.c:515
msgid "TLS support is not available"
msgstr "TLS atbalsts nav pieejams"
-#: gio/gdummytlsbackend.c:423
+#: gio/gdummytlsbackend.c:425
msgid "DTLS support is not available"
msgstr "DTLS atbalsts nav pieejams"
-#: gio/gemblem.c:323
+#: gio/gemblem.c:325
#, c-format
msgid "Can’t handle version %d of GEmblem encoding"
msgstr "Nevar apstrādāt GEmblem versijas %d kodējumu"
-#: gio/gemblem.c:333
+#: gio/gemblem.c:335
#, c-format
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr "Vairāki slikti formēti marķieri (%d) GEmblem kodējumā"
-#: gio/gemblemedicon.c:362
+#: gio/gemblemedicon.c:364
#, c-format
msgid "Can’t handle version %d of GEmblemedIcon encoding"
msgstr "Nevar apstrādāt GEmblemedIcon versijas %d kodējumu"
-#: gio/gemblemedicon.c:372
+#: gio/gemblemedicon.c:374
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr "Vairāki slikti formēti marķieri (%d) GEmblemedIcon kodējumā"
-#: gio/gemblemedicon.c:395
+#: gio/gemblemedicon.c:397
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "Gaidīja GEmblem priekš GEmblemedIcon"
@@ -1379,213 +1437,225 @@ msgstr "Gaidīja GEmblem priekš GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1561
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Saturošais montējums neeksistē"
-#: gio/gfile.c:2608 gio/glocalfile.c:2477
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Nevar kopēt virsū mapei"
-#: gio/gfile.c:2668
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Nevar uzkopēt mapi virsū mapei"
-#: gio/gfile.c:2676
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Mērķa datne eksistē"
-#: gio/gfile.c:2695
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Nevar rekursīvi kopēt mapi"
-#: gio/gfile.c:2996
-msgid "Splice not supported"
-msgstr "Splice nav atbalstīts"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+#| msgid "Operation not supported"
+msgid "Copy file range not supported"
+msgstr "Datņu intervāla kopēšana nav atbalstīta"
-#: gio/gfile.c:3000
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Kļūda, datnei veicot splice — %s"
-#: gio/gfile.c:3152
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Splice nav atbalstīts"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Kopēšana (reflink/clone) starp montētiem sējumiem nav atbalstīta"
-#: gio/gfile.c:3156
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Kopēšana (reflink/clone) nav atbalstīta vai nav derīga"
-#: gio/gfile.c:3161
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Kopēšana (reflink/clone) nav atbalstīta vai nenostrādāja"
-#: gio/gfile.c:3226
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Nevar kopēt īpašu datni"
-#: gio/gfile.c:4035
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Ir dota nederīga simboliskās saites vērtība"
-#: gio/gfile.c:4045 glib/gfileutils.c:2354
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Simboliskās saites nav atbalstītas"
-#: gio/gfile.c:4213
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Miskaste nav atbalstīta"
-#: gio/gfile.c:4325
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Datņu nosaukums nevar saturēt “%c”"
-#: gio/gfile.c:6806 gio/gvolume.c:364
+#: gio/gfile.c:7155 gio/gfile.c:7281
+#, c-format
+#| msgid "Failed to change to directory “%s” (%s)"
+msgid "Failed to create a temporary directory for template “%s”: %s"
+msgstr "Neizdevās izveidot pagaidu direktoriju veidnei “%s” — %s"
+
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "sējums neatbalsta montēšanu"
-#: gio/gfile.c:6920 gio/gfile.c:6968
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Neviena lietotne nav reģistrēta, kā šo datni apstrādājoša"
-#: gio/gfileenumerator.c:212
+#: gio/gfileenumerator.c:214
msgid "Enumerator is closed"
msgstr "Skaitītājs ir aizvērts"
-#: gio/gfileenumerator.c:219 gio/gfileenumerator.c:278
-#: gio/gfileenumerator.c:377 gio/gfileenumerator.c:476
+#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Datņu skaitītājam ir neizpildīta darbība"
-#: gio/gfileenumerator.c:368 gio/gfileenumerator.c:467
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Datņu skaitītājs jau ir aizvērts"
-#: gio/gfileicon.c:250
+#: gio/gfileicon.c:252
#, c-format
msgid "Can’t handle version %d of GFileIcon encoding"
msgstr "Nevar apstrādāt GFileIcon versijas %d kodējumu"
-#: gio/gfileicon.c:260
+#: gio/gfileicon.c:262
msgid "Malformed input data for GFileIcon"
msgstr "Slikti formēti GFileIcon ievades dati"
-#: gio/gfileinputstream.c:149 gio/gfileinputstream.c:394
-#: gio/gfileiostream.c:167 gio/gfileoutputstream.c:164
-#: gio/gfileoutputstream.c:497
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
+#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
+#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Plūsma neatbalsta query_info"
-#: gio/gfileinputstream.c:325 gio/gfileiostream.c:379
-#: gio/gfileoutputstream.c:371
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
+#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Uz plūsmas meklēšana netiek atbalstīta"
-#: gio/gfileinputstream.c:369
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Uz ievades plūsmas apraušana nav atbalstīta"
-#: gio/gfileiostream.c:455 gio/gfileoutputstream.c:447
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Uz plūsmas apraušana nav atbalstīta"
-#: gio/ghttpproxy.c:91 gio/gresolver.c:443 gio/gresolver.c:596
-#: glib/gconvert.c:1825
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Nepareizs resursdatora nosaukums"
-#: gio/ghttpproxy.c:143
+#: gio/ghttpproxy.c:145
msgid "Bad HTTP proxy reply"
msgstr "Slikta HTTP starpnieka atbilde"
-#: gio/ghttpproxy.c:159
+#: gio/ghttpproxy.c:161
msgid "HTTP proxy connection not allowed"
msgstr "Nav atļauts savienojums ar HTTP starpnieku"
-#: gio/ghttpproxy.c:164
+#: gio/ghttpproxy.c:166
msgid "HTTP proxy authentication failed"
msgstr "Neizdevās autentificēšanās ar HTTP starpnieku"
-#: gio/ghttpproxy.c:167
+#: gio/ghttpproxy.c:169
msgid "HTTP proxy authentication required"
msgstr "Nepieciešama HTTP starpniekservera autentifikācija"
-#: gio/ghttpproxy.c:171
+#: gio/ghttpproxy.c:173
#, c-format
msgid "HTTP proxy connection failed: %i"
msgstr "Neizdevās savienojums ar HTTP starpnieku: %i"
-#: gio/ghttpproxy.c:266
+#: gio/ghttpproxy.c:268
msgid "HTTP proxy response too big"
msgstr "HTTP starpnieka atbilde ir pārāk liela"
-#: gio/ghttpproxy.c:283
+#: gio/ghttpproxy.c:285
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "HTTP starpniekserveris negaidīti aizvēra savienojumu."
-#: gio/gicon.c:298
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Nepareizs marķieru skaits (%d)"
-#: gio/gicon.c:318
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Nav tips klases nosaukumam %s"
-#: gio/gicon.c:328
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Tips %s nav realizējis GIcon saskarni"
-#: gio/gicon.c:339
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Tips %s nav klasē"
-#: gio/gicon.c:353
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Slikti formēts versijas numurs — %s"
-#: gio/gicon.c:367
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Tips %s nerealizē from_tokens() uz GIcon saskarnes"
-#: gio/gicon.c:469
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Nevar apstrādāt piegādāto ikonu kodējumu versiju"
-#: gio/ginetaddressmask.c:182
+#: gio/ginetaddressmask.c:184
msgid "No address specified"
msgstr "Nav norādītas adreses"
-#: gio/ginetaddressmask.c:190
+#: gio/ginetaddressmask.c:192
#, c-format
msgid "Length %u is too long for address"
msgstr "Garums “%u” ir pārāk liels adresēm"
-#: gio/ginetaddressmask.c:223
+#: gio/ginetaddressmask.c:225
msgid "Address has bits set beyond prefix length"
msgstr "Adresei ir biti, kas ir iestatīti pēc prefiksa garuma"
-#: gio/ginetaddressmask.c:300
+#: gio/ginetaddressmask.c:302
#, c-format
msgid "Could not parse “%s” as IP address mask"
msgstr "Neizdevās parsēt “%s” kā IP adreses masku"
-#: gio/ginetsocketaddress.c:203 gio/ginetsocketaddress.c:220
-#: gio/gnativesocketaddress.c:109 gio/gunixsocketaddress.c:221
+#: gio/ginetsocketaddress.c:205 gio/ginetsocketaddress.c:222
+#: gio/gnativesocketaddress.c:111 gio/gunixsocketaddress.c:230
msgid "Not enough space for socket address"
msgstr "Nepietiek vietas ligzdas adresei"
-#: gio/ginetsocketaddress.c:235
+#: gio/ginetsocketaddress.c:237
msgid "Unsupported socket address"
msgstr "Neatbalstīta ligzdas adrese"
-#: gio/ginputstream.c:188
+#: gio/ginputstream.c:190
msgid "Input stream doesn’t implement read"
msgstr "Ievades plūsma neatbalsta lasīšanu"
@@ -1595,126 +1665,126 @@ msgstr "Ievades plūsma neatbalsta lasīšanu"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1249 gio/giostream.c:310 gio/goutputstream.c:2208
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Plūsmai ir neizpildīta darbība"
-#: gio/gio-tool.c:160
+#: gio/gio-tool.c:162
msgid "Copy with file"
msgstr "Kopēt ar datni"
-#: gio/gio-tool.c:164
+#: gio/gio-tool.c:166
msgid "Keep with file when moved"
msgstr "Paturēt ar datni, kad pārvietots"
-#: gio/gio-tool.c:205
+#: gio/gio-tool.c:207
msgid "“version” takes no arguments"
msgstr "“version” nepieņem argumentus"
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:869
+#: gio/gio-tool.c:209 gio/gio-tool.c:225 glib/goption.c:871
msgid "Usage:"
msgstr "Lietošana:"
-#: gio/gio-tool.c:210
+#: gio/gio-tool.c:212
msgid "Print version information and exit."
msgstr "Parādīt informāciju par versiju un iziet."
-#: gio/gio-tool.c:226
+#: gio/gio-tool.c:228
msgid "Commands:"
msgstr "Komandas:"
-#: gio/gio-tool.c:229
+#: gio/gio-tool.c:231
msgid "Concatenate files to standard output"
msgstr "Savienot datnes uz standarta izvades"
-#: gio/gio-tool.c:230
+#: gio/gio-tool.c:232
msgid "Copy one or more files"
msgstr "Kopēt vienu vai vairākas datnes"
-#: gio/gio-tool.c:231
+#: gio/gio-tool.c:233
msgid "Show information about locations"
msgstr "Parādīt informāciju par atrašanās vietām"
-#: gio/gio-tool.c:232
+#: gio/gio-tool.c:234
msgid "Launch an application from a desktop file"
msgstr "Palaist lietotni no darbvirsmas datnes"
-#: gio/gio-tool.c:233
+#: gio/gio-tool.c:235
msgid "List the contents of locations"
msgstr "Uzskaitīt atrašanās vietu saturu"
-#: gio/gio-tool.c:234
+#: gio/gio-tool.c:236
msgid "Get or set the handler for a mimetype"
msgstr "Iegūt vai iestatīt apdarinātāju priekš mimetype"
-#: gio/gio-tool.c:235
+#: gio/gio-tool.c:237
msgid "Create directories"
msgstr "Izveidot mapes"
-#: gio/gio-tool.c:236
+#: gio/gio-tool.c:238
msgid "Monitor files and directories for changes"
msgstr "Pārraudzīt datnes un mapes pēc izmaiņām"
-#: gio/gio-tool.c:237
+#: gio/gio-tool.c:239
msgid "Mount or unmount the locations"
msgstr "Montēt vai atmontēt atrašanās vietas"
-#: gio/gio-tool.c:238
+#: gio/gio-tool.c:240
msgid "Move one or more files"
msgstr "Pārvietot vienu vai vairākas datnes"
-#: gio/gio-tool.c:239
+#: gio/gio-tool.c:241
msgid "Open files with the default application"
msgstr "Atver datnes ar noklusējuma lietotni"
-#: gio/gio-tool.c:240
+#: gio/gio-tool.c:242
msgid "Rename a file"
msgstr "Pārsaukt datni"
-#: gio/gio-tool.c:241
+#: gio/gio-tool.c:243
msgid "Delete one or more files"
msgstr "Dzēst vienu vai vairākas datnes"
-#: gio/gio-tool.c:242
+#: gio/gio-tool.c:244
msgid "Read from standard input and save"
msgstr "Lasīt no standarta ievades un saglabāt"
-#: gio/gio-tool.c:243
+#: gio/gio-tool.c:245
msgid "Set a file attribute"
msgstr "Iestatīt datnes atribūtu"
-#: gio/gio-tool.c:244
+#: gio/gio-tool.c:246
msgid "Move files or directories to the trash"
msgstr "Pārvietot datnes vai mapes uz miskasti"
-#: gio/gio-tool.c:245
+#: gio/gio-tool.c:247
msgid "Lists the contents of locations in a tree"
msgstr "Uzskaita atrašanās vietu saturu kokā"
-#: gio/gio-tool.c:247
+#: gio/gio-tool.c:249
#, c-format
msgid "Use %s to get detailed help.\n"
msgstr "Lietojiet %s, lai iegūtu detalizētu palīdzību.\n"
-#: gio/gio-tool-cat.c:87
+#: gio/gio-tool-cat.c:89
msgid "Error writing to stdout"
msgstr "Kļūda, rakstot uz stdout"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:133 gio/gio-tool-info.c:340 gio/gio-tool-list.c:172
-#: gio/gio-tool-mkdir.c:48 gio/gio-tool-monitor.c:37 gio/gio-tool-monitor.c:39
-#: gio/gio-tool-monitor.c:41 gio/gio-tool-monitor.c:43
-#: gio/gio-tool-monitor.c:204 gio/gio-tool-mount.c:1199 gio/gio-tool-open.c:70
-#: gio/gio-tool-remove.c:48 gio/gio-tool-rename.c:45 gio/gio-tool-set.c:89
-#: gio/gio-tool-trash.c:220 gio/gio-tool-tree.c:239
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
+#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
+#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "ATRAŠANĀS_VIETA"
-#: gio/gio-tool-cat.c:138
+#: gio/gio-tool-cat.c:140
msgid "Concatenate files and print to standard output."
msgstr "Savienot datnes un drukāt uz standarta izvades"
-#: gio/gio-tool-cat.c:140
+#: gio/gio-tool-cat.c:142
msgid ""
"gio cat works just like the traditional cat utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1725,60 +1795,60 @@ msgstr ""
"lietot kaut ko līdzīgu smb://serveris/resurss/datne.txt kā\n"
"atrašanās vietu."
-#: gio/gio-tool-cat.c:162 gio/gio-tool-info.c:371 gio/gio-tool-mkdir.c:76
-#: gio/gio-tool-monitor.c:229 gio/gio-tool-mount.c:1250 gio/gio-tool-open.c:96
-#: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:303
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
+#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Nav dotas atrašanās vietas"
-#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:38
+#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
msgid "No target directory"
msgstr "Nav mērķa mapes"
-#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:39
+#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41
msgid "Show progress"
msgstr "Rādīt progresu"
-#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
+#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:42
msgid "Prompt before overwrite"
msgstr "Uzvedne pirms pārrakstīšanas"
-#: gio/gio-tool-copy.c:46
+#: gio/gio-tool-copy.c:48
msgid "Preserve all attributes"
msgstr "Saglabāt visus atribūtus"
-#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
+#: gio/gio-tool-copy.c:49 gio/gio-tool-move.c:43 gio/gio-tool-save.c:51
msgid "Backup existing destination files"
msgstr "Izveidot rezerves kopijas pastāvošajām mērķa datnēm"
-#: gio/gio-tool-copy.c:48
+#: gio/gio-tool-copy.c:50
msgid "Never follow symbolic links"
msgstr "Nekad nesekot simboliskajām saitēm"
-#: gio/gio-tool-copy.c:49
+#: gio/gio-tool-copy.c:51
msgid "Use default permissions for the destination"
msgstr "Lietot noklusējuma atļaujas mērķim"
-#: gio/gio-tool-copy.c:74 gio/gio-tool-move.c:67
+#: gio/gio-tool-copy.c:76 gio/gio-tool-move.c:69
#, c-format
msgid "Transferred %s out of %s (%s/s)"
msgstr "Pārsūtīti %s no %s (%s/s)"
#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96
msgid "SOURCE"
msgstr "AVOTS"
#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94 gio/gio-tool-save.c:160
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96 gio/gio-tool-save.c:162
msgid "DESTINATION"
msgstr "GALAMĒRĶIS"
-#: gio/gio-tool-copy.c:105
+#: gio/gio-tool-copy.c:107
msgid "Copy one or more files from SOURCE to DESTINATION."
msgstr "Kopēt vienu vai vairākas datnes no AVOTA uz GALAMĒRĶI."
-#: gio/gio-tool-copy.c:107
+#: gio/gio-tool-copy.c:109
msgid ""
"gio copy is similar to the traditional cp utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1789,98 +1859,98 @@ msgstr ""
"lietot kaut ko līdzīgu smb://serveris/resurss/datne.txt kā\n"
"atrašanās vietu."
-#: gio/gio-tool-copy.c:149
+#: gio/gio-tool-copy.c:151
#, c-format
msgid "Destination %s is not a directory"
msgstr "Mērķis %s nav mape"
-#: gio/gio-tool-copy.c:196 gio/gio-tool-move.c:186
+#: gio/gio-tool-copy.c:198 gio/gio-tool-move.c:188
#, c-format
msgid "%s: overwrite “%s”? "
msgstr "%s: pārrakstīt “%s”? "
-#: gio/gio-tool-info.c:37
+#: gio/gio-tool-info.c:39
msgid "List writable attributes"
msgstr "Uzskaitīt rakstāmos atribūtus"
-#: gio/gio-tool-info.c:38
+#: gio/gio-tool-info.c:40
msgid "Get file system info"
msgstr "Iegūt datņu sistēmas informāciju"
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
msgid "The attributes to get"
msgstr "Atribūti, kurus iegūt"
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
msgid "ATTRIBUTES"
msgstr "ATRIBŪTI"
-#: gio/gio-tool-info.c:40 gio/gio-tool-list.c:39 gio/gio-tool-set.c:34
+#: gio/gio-tool-info.c:42 gio/gio-tool-list.c:40 gio/gio-tool-set.c:37
msgid "Don’t follow symbolic links"
msgstr "Nesekot simboliskajām saitēm"
-#: gio/gio-tool-info.c:78
+#: gio/gio-tool-info.c:105
msgid "attributes:\n"
msgstr "atribūti:\n"
#. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:134
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "attēlotais nosaukums: %s\n"
#. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:139
+#: gio/gio-tool-info.c:176
#, c-format
msgid "edit name: %s\n"
msgstr "rediģēt nosaukumu: %s\n"
-#: gio/gio-tool-info.c:145
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "nosaukums: %s\n"
-#: gio/gio-tool-info.c:152
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "tips: %s\n"
-#: gio/gio-tool-info.c:158
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "izmērs: "
-#: gio/gio-tool-info.c:163
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "paslēpts\n"
-#: gio/gio-tool-info.c:166
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:172
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "lokālais ceļš: %s\n"
-#: gio/gio-tool-info.c:205
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "unix montējums: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:286
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Iestatāmie atribūti:\n"
-#: gio/gio-tool-info.c:310
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Rakstāmās atribūtu nosaukumu telpas:\n"
-#: gio/gio-tool-info.c:345
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Parādīt informāciju par atrašanās vietām."
-#: gio/gio-tool-info.c:347
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1897,61 +1967,61 @@ msgstr ""
"atbilst visiem atribūtiem"
#. Translators: commandline placeholder
-#: gio/gio-tool-launch.c:54
+#: gio/gio-tool-launch.c:56
msgid "DESKTOP-FILE [FILE-ARG …]"
msgstr "DARBVIRSMAS-DATNE [DATNES-ARG …]"
-#: gio/gio-tool-launch.c:57
+#: gio/gio-tool-launch.c:59
msgid ""
"Launch an application from a desktop file, passing optional filename "
"arguments to it."
msgstr ""
"Palaist lietotni no darbvirsmas datnes. Tai var padodot datņu argumentus."
-#: gio/gio-tool-launch.c:77
+#: gio/gio-tool-launch.c:79
msgid "No desktop file given"
msgstr "Nav dota darbvirsmas datne"
-#: gio/gio-tool-launch.c:85
+#: gio/gio-tool-launch.c:87
msgid "The launch command is not currently supported on this platform"
msgstr "Palaišanas komanda šobrīd nav atbalstīta šajā platformā"
-#: gio/gio-tool-launch.c:98
+#: gio/gio-tool-launch.c:100
#, c-format
msgid "Unable to load ‘%s‘: %s"
msgstr "Nevar ielādēt “%s” — %s"
-#: gio/gio-tool-launch.c:107
+#: gio/gio-tool-launch.c:109
#, c-format
msgid "Unable to load application information for ‘%s‘"
msgstr "Nevar ielādēt “%s” lietotnes informāciju"
-#: gio/gio-tool-launch.c:119
+#: gio/gio-tool-launch.c:121
#, c-format
msgid "Unable to launch application ‘%s’: %s"
msgstr "Nevar palaist lietotni “%s” — %s"
-#: gio/gio-tool-list.c:37 gio/gio-tool-tree.c:32
+#: gio/gio-tool-list.c:38 gio/gio-tool-tree.c:34
msgid "Show hidden files"
msgstr "Rādīt slēptās datnes"
-#: gio/gio-tool-list.c:38
+#: gio/gio-tool-list.c:39
msgid "Use a long listing format"
msgstr "Lietot garo uzskaitījuma formātu"
-#: gio/gio-tool-list.c:40
+#: gio/gio-tool-list.c:41
msgid "Print display names"
msgstr "Attēlot displeju nosaukumus"
-#: gio/gio-tool-list.c:41
+#: gio/gio-tool-list.c:42
msgid "Print full URIs"
msgstr "Drukāt pilnos URI"
-#: gio/gio-tool-list.c:177
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Uzskaitīt atrašanās vietu saturu."
-#: gio/gio-tool-list.c:179
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1965,19 +2035,19 @@ msgstr ""
"standard::icon"
#. Translators: commandline placeholder
-#: gio/gio-tool-mime.c:71
+#: gio/gio-tool-mime.c:73
msgid "MIMETYPE"
msgstr "MIME_TIPS"
-#: gio/gio-tool-mime.c:71
+#: gio/gio-tool-mime.c:73
msgid "HANDLER"
msgstr "APDARINĀTĀJS"
-#: gio/gio-tool-mime.c:76
+#: gio/gio-tool-mime.c:78
msgid "Get or set the handler for a mimetype."
msgstr "Iegūt vai iestatīt apdarinātāju priekš mimetype."
-#: gio/gio-tool-mime.c:78
+#: gio/gio-tool-mime.c:80
msgid ""
"If no handler is given, lists registered and recommended applications\n"
"for the mimetype. If a handler is given, it is set as the default\n"
@@ -1987,55 +2057,55 @@ msgstr ""
"priekš mime tipa. Ja apdarinātājs ir dots, tas tiek iestatīts kā\n"
"noklusētais apdarinātājs mime tipam."
-#: gio/gio-tool-mime.c:100
+#: gio/gio-tool-mime.c:102
msgid "Must specify a single mimetype, and maybe a handler"
msgstr "Vajag norādīt vienu mime tipu un varbūt apdarinātāju"
-#: gio/gio-tool-mime.c:116
+#: gio/gio-tool-mime.c:118
#, c-format
msgid "No default applications for “%s”\n"
msgstr "Nav noklusētās lietotnes priekš “%s”\n"
-#: gio/gio-tool-mime.c:122
+#: gio/gio-tool-mime.c:124
#, c-format
msgid "Default application for “%s”: %s\n"
msgstr "Noklusētā lietotne priekš “%s” — %s\n"
-#: gio/gio-tool-mime.c:127
+#: gio/gio-tool-mime.c:129
msgid "Registered applications:\n"
msgstr "Reģistrētās lietotnes:\n"
-#: gio/gio-tool-mime.c:129
+#: gio/gio-tool-mime.c:131
msgid "No registered applications\n"
msgstr "Nav reģistrētu lietotņu\n"
-#: gio/gio-tool-mime.c:140
+#: gio/gio-tool-mime.c:142
msgid "Recommended applications:\n"
msgstr "Ieteiktās lietotnes:\n"
-#: gio/gio-tool-mime.c:142
+#: gio/gio-tool-mime.c:144
msgid "No recommended applications\n"
msgstr "Nav ieteikto lietotņu\n"
-#: gio/gio-tool-mime.c:162
+#: gio/gio-tool-mime.c:164
#, c-format
msgid "Failed to load info for handler “%s”"
msgstr "Neizdevās ielādēt informāciju priekš apdarinātāja “%s”"
-#: gio/gio-tool-mime.c:168
+#: gio/gio-tool-mime.c:170
#, c-format
msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
msgstr "Neizdevās iestatīt “%s” kā noklusējuma apdarinātāju priekš “%s” — %s\n"
-#: gio/gio-tool-mkdir.c:31
+#: gio/gio-tool-mkdir.c:33
msgid "Create parent directories"
msgstr "Izveidot vecākmapes"
-#: gio/gio-tool-mkdir.c:52
+#: gio/gio-tool-mkdir.c:54
msgid "Create directories."
msgstr "Izveidot mapes."
-#: gio/gio-tool-mkdir.c:54
+#: gio/gio-tool-mkdir.c:56
msgid ""
"gio mkdir is similar to the traditional mkdir utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2046,135 +2116,135 @@ msgstr ""
"lietot kaut ko līdzīgu smb://serveris/resurss/manamape kā\n"
"atrašanās vietu."
-#: gio/gio-tool-monitor.c:37
+#: gio/gio-tool-monitor.c:39
msgid "Monitor a directory (default: depends on type)"
msgstr "Pārraudzīt mapi (noklusējuma: atkarīgs no tipa)"
-#: gio/gio-tool-monitor.c:39
+#: gio/gio-tool-monitor.c:41
msgid "Monitor a file (default: depends on type)"
msgstr "Pārraudzīt datni (noklusējuma: atkarīgs no tipa)"
-#: gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43
msgid "Monitor a file directly (notices changes made via hardlinks)"
msgstr ""
"Pārraudzīt datni tieši (paziņo par izmaiņām, veiktām caur stingrajām saitēm)"
-#: gio/gio-tool-monitor.c:43
+#: gio/gio-tool-monitor.c:45
msgid "Monitors a file directly, but doesn’t report changes"
msgstr "Pārrauga datni tieši, bet neziņo par izmaiņām"
-#: gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:47
msgid "Report moves and renames as simple deleted/created events"
msgstr ""
"Ziņot par pārvietošanām un pārsaukšanām kā par vienkāršiem dzēsts/izveidots "
"notikumiem"
-#: gio/gio-tool-monitor.c:47
+#: gio/gio-tool-monitor.c:49
msgid "Watch for mount events"
msgstr "Novērot montēšanas notikumus"
-#: gio/gio-tool-monitor.c:209
+#: gio/gio-tool-monitor.c:211
msgid "Monitor files or directories for changes."
msgstr "Pārraudzīt datnes vai mapes pēc izmaiņām."
-#: gio/gio-tool-mount.c:63
+#: gio/gio-tool-mount.c:65
msgid "Mount as mountable"
msgstr "Montēt kā montējamu"
-#: gio/gio-tool-mount.c:64
+#: gio/gio-tool-mount.c:66
msgid "Mount volume with device file, or other identifier"
msgstr "Montēt sējumu ar ierīces datni vai citu identifikatoru"
-#: gio/gio-tool-mount.c:64
+#: gio/gio-tool-mount.c:66
msgid "ID"
msgstr "ID"
-#: gio/gio-tool-mount.c:65
+#: gio/gio-tool-mount.c:67
msgid "Unmount"
msgstr "Atmontēt"
-#: gio/gio-tool-mount.c:66
+#: gio/gio-tool-mount.c:68
msgid "Eject"
msgstr "Izgrūst"
-#: gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:69
msgid "Stop drive with device file"
msgstr "Apturēt dzini ar ierīces datni"
-#: gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:69
msgid "DEVICE"
msgstr "IERĪCE"
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:70
msgid "Unmount all mounts with the given scheme"
msgstr "Atmontēt visus montējumus ar doto shēmu"
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:70
msgid "SCHEME"
msgstr "SHĒMA"
-#: gio/gio-tool-mount.c:69
+#: gio/gio-tool-mount.c:71
msgid "Ignore outstanding file operations when unmounting or ejecting"
msgstr "Ignorēt neizpildītās datņu darbības, kad atmontējas vai izstumjas"
-#: gio/gio-tool-mount.c:70
+#: gio/gio-tool-mount.c:72
msgid "Use an anonymous user when authenticating"
msgstr "Lietot anonīmo lietotāju, kad autentificējas"
#. Translator: List here is a verb as in 'List all mounts'
-#: gio/gio-tool-mount.c:72
+#: gio/gio-tool-mount.c:74
msgid "List"
msgstr "Saraksts"
-#: gio/gio-tool-mount.c:73
+#: gio/gio-tool-mount.c:75
msgid "Monitor events"
msgstr "Pārraudzīt notikumus"
-#: gio/gio-tool-mount.c:74
+#: gio/gio-tool-mount.c:76
msgid "Show extra information"
msgstr "Rādīt papildu informāciju"
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:77
msgid "The numeric PIM when unlocking a VeraCrypt volume"
msgstr "Skaitliskais PIM, kad atslēdz VeraCrypt sējumu"
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:77
msgid "PIM"
msgstr "PIM"
-#: gio/gio-tool-mount.c:76
+#: gio/gio-tool-mount.c:78
msgid "Mount a TCRYPT hidden volume"
msgstr "Montēt TCRYPT slēpto sējumu"
-#: gio/gio-tool-mount.c:77
+#: gio/gio-tool-mount.c:79
msgid "Mount a TCRYPT system volume"
msgstr "Montēt TCRYPT sistēmas sējumu"
-#: gio/gio-tool-mount.c:265 gio/gio-tool-mount.c:297
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Anonīma pieeja liegta"
-#: gio/gio-tool-mount.c:522
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Nav dziņa ierīces datnei"
-#: gio/gio-tool-mount.c:1014
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Nav sējuma dotajai ID"
-#: gio/gio-tool-mount.c:1203
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Montēt vai atmontēt atrašanās vietas."
-#: gio/gio-tool-move.c:42
+#: gio/gio-tool-move.c:44
msgid "Don’t use copy and delete fallback"
msgstr "Nelietot kopiju un dzēst apkāpšanos"
-#: gio/gio-tool-move.c:99
+#: gio/gio-tool-move.c:101
msgid "Move one or more files from SOURCE to DEST."
msgstr "Pārvietot vienu vai vairākas datnes no AVOTA uz GALAMĒRĶI."
-#: gio/gio-tool-move.c:101
+#: gio/gio-tool-move.c:103
msgid ""
"gio move is similar to the traditional mv utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2185,12 +2255,12 @@ msgstr ""
"lietot kaut ko līdzīgu smb://serveris/resurss/datne.txt kā\n"
"atrašanās vietu"
-#: gio/gio-tool-move.c:143
+#: gio/gio-tool-move.c:145
#, c-format
msgid "Target %s is not a directory"
msgstr "Mērķis %s nav mape"
-#: gio/gio-tool-open.c:75
+#: gio/gio-tool-open.c:77
msgid ""
"Open files with the default application that\n"
"is registered to handle files of this type."
@@ -2198,128 +2268,133 @@ msgstr ""
"Atvērt datnes ar noklusēto lietotni, kura ir\n"
"reģistrēta, lai apstrādātu šī tipa datnes."
-#: gio/gio-tool-remove.c:31 gio/gio-tool-trash.c:33
+#: gio/gio-tool-remove.c:33 gio/gio-tool-trash.c:35
msgid "Ignore nonexistent files, never prompt"
msgstr "Ignorēt neeksistējošas datnes, nekad neuzvadīt"
-#: gio/gio-tool-remove.c:52
+#: gio/gio-tool-remove.c:54
msgid "Delete the given files."
msgstr "Dzēst dotās datnes."
-#: gio/gio-tool-rename.c:45
+#: gio/gio-tool-rename.c:47
msgid "NAME"
msgstr "NOSAUKUMS"
-#: gio/gio-tool-rename.c:50
+#: gio/gio-tool-rename.c:52
msgid "Rename a file."
msgstr "Pārsaukt datni."
-#: gio/gio-tool-rename.c:70
+#: gio/gio-tool-rename.c:72
msgid "Missing argument"
msgstr "Trūkst arguments"
-#: gio/gio-tool-rename.c:76 gio/gio-tool-save.c:190 gio/gio-tool-set.c:137
+#: gio/gio-tool-rename.c:78 gio/gio-tool-save.c:192 gio/gio-tool-set.c:150
msgid "Too many arguments"
msgstr "Pārāk daudz argumentu"
-#: gio/gio-tool-rename.c:95
+#: gio/gio-tool-rename.c:97
#, c-format
msgid "Rename successful. New uri: %s\n"
msgstr "Pārsaukšana veiksmīga. Jaunais uri: %s\n"
-#: gio/gio-tool-save.c:50
+#: gio/gio-tool-save.c:52
msgid "Only create if not existing"
msgstr "Izveidot tikai, ja nav pastāvošs"
-#: gio/gio-tool-save.c:51
+#: gio/gio-tool-save.c:53
msgid "Append to end of file"
msgstr "Pievienot pie datnes beigām"
-#: gio/gio-tool-save.c:52
+#: gio/gio-tool-save.c:54
msgid "When creating, restrict access to the current user"
msgstr "Kad izveido, ierobežot pieeju uz pašreizējo lietotāju"
-#: gio/gio-tool-save.c:53
+#: gio/gio-tool-save.c:55
msgid "When replacing, replace as if the destination did not exist"
msgstr "Kad aizvieto, darīt to tā, it kā galamērķis nepastāvētu"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:55
+#: gio/gio-tool-save.c:57
msgid "Print new etag at end"
msgstr "Drukāt jaunu etag beigās"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:59
msgid "The etag of the file being overwritten"
msgstr "Datnes etag tiek pārrakstīts"
-#: gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:59
msgid "ETAG"
msgstr "ETAG"
-#: gio/gio-tool-save.c:113
+#: gio/gio-tool-save.c:115
msgid "Error reading from standard input"
msgstr "Kļūda, lasot no standarta ievades"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:139
+#: gio/gio-tool-save.c:141
msgid "Etag not available\n"
msgstr "Etag nav pieejams\n"
-#: gio/gio-tool-save.c:163
+#: gio/gio-tool-save.c:165
msgid "Read from standard input and save to DEST."
msgstr "Lasīt no standarta ievades un saglabāt uz GALAMĒRĶA."
-#: gio/gio-tool-save.c:183
+#: gio/gio-tool-save.c:185
msgid "No destination given"
msgstr "Nav dots galamērķis"
-#: gio/gio-tool-set.c:33
+#: gio/gio-tool-set.c:36
msgid "Type of the attribute"
msgstr "Atribūta tips"
-#: gio/gio-tool-set.c:33
+#: gio/gio-tool-set.c:36
msgid "TYPE"
msgstr "TIPS"
-#: gio/gio-tool-set.c:89
+#: gio/gio-tool-set.c:38
+#| msgid "Set a file attribute"
+msgid "Unset given attribute"
+msgstr "Neiestatīt doto atribūtu"
+
+#: gio/gio-tool-set.c:95
msgid "ATTRIBUTE"
msgstr "ATRIBŪTS"
-#: gio/gio-tool-set.c:89
+#: gio/gio-tool-set.c:95
msgid "VALUE"
msgstr "VĒRTĪBA"
-#: gio/gio-tool-set.c:93
+#: gio/gio-tool-set.c:99
msgid "Set a file attribute of LOCATION."
msgstr "Iestatīt ATRAŠANĀS_VIETAS datnes atribūtu."
-#: gio/gio-tool-set.c:113
+#: gio/gio-tool-set.c:119
msgid "Location not specified"
msgstr "Atrašanās vieta nav norādīta"
-#: gio/gio-tool-set.c:120
+#: gio/gio-tool-set.c:126
msgid "Attribute not specified"
msgstr "Atribūts nav norādīts"
-#: gio/gio-tool-set.c:130
+#: gio/gio-tool-set.c:143
msgid "Value not specified"
msgstr "Vērtība nav norādīta"
-#: gio/gio-tool-set.c:180
+#: gio/gio-tool-set.c:193
#, c-format
msgid "Invalid attribute type “%s”"
msgstr "Nederīgs atribūta tips “%s”"
-#: gio/gio-tool-trash.c:34
+#: gio/gio-tool-trash.c:36
msgid "Empty the trash"
msgstr "Iztukšot miskasti"
-#: gio/gio-tool-trash.c:35
+#: gio/gio-tool-trash.c:37
msgid "List files in the trash with their original locations"
msgstr "Uzrādīt datnes miskastē ar to sākotnējo atrašanās vietām"
-#: gio/gio-tool-trash.c:36
+#: gio/gio-tool-trash.c:38
msgid ""
"Restore a file from trash to its original location (possibly recreating the "
"directory)"
@@ -2327,23 +2402,23 @@ msgstr ""
"Atjaunot datni no miskastes uz tās sākotnējo vietu (iespējams, no jauna "
"izveidojot direktoriju)"
-#: gio/gio-tool-trash.c:106
+#: gio/gio-tool-trash.c:108
msgid "Unable to find original path"
msgstr "Nevar atrast sākotnējo ceļu"
-#: gio/gio-tool-trash.c:123
+#: gio/gio-tool-trash.c:125
msgid "Unable to recreate original location: "
msgstr "Nevar no jauna izveidot sākotnējo vietu: "
-#: gio/gio-tool-trash.c:136
+#: gio/gio-tool-trash.c:138
msgid "Unable to move file to its original location: "
msgstr "Nevar pārvietot datni uz tās sākotnējo vietu: "
-#: gio/gio-tool-trash.c:225
+#: gio/gio-tool-trash.c:227
msgid "Move/Restore files or directories to the trash."
msgstr "Pārvietot/atjaunot datnes vai mapes uz miskasti."
-#: gio/gio-tool-trash.c:227
+#: gio/gio-tool-trash.c:229
msgid ""
"Note: for --restore switch, if the original location of the trashed file \n"
"already exists, it will not be overwritten unless --force is set."
@@ -2351,44 +2426,44 @@ msgstr ""
"Piezīme: --restore slēdzim, ja sākotnējā vieta izmestajai datnei \n"
"jau eksistē, tā netiks pārrakstīja, ja vien nav iestatīts --force."
-#: gio/gio-tool-trash.c:258
+#: gio/gio-tool-trash.c:260
msgid "Location given doesn't start with trash:///"
msgstr "Atrašanās vieta nesākas ar trash:///"
-#: gio/gio-tool-tree.c:33
+#: gio/gio-tool-tree.c:35
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Sekot simboliskajām saitēm, montējumiem un saīsnēm"
-#: gio/gio-tool-tree.c:244
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Uzskaitīt mapju saturu kokam līdzīgā formātā."
-#: gio/glib-compile-resources.c:140 gio/glib-compile-schemas.c:1514
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Elements <%s> nav atļauts iekš <%s>"
-#: gio/glib-compile-resources.c:144
+#: gio/glib-compile-resources.c:146
#, c-format
msgid "Element <%s> not allowed at toplevel"
msgstr "Elements <%s> nav atļauts augšējā līmenī"
-#: gio/glib-compile-resources.c:234
+#: gio/glib-compile-resources.c:236
#, c-format
msgid "File %s appears multiple times in the resource"
msgstr "Datne %s resursā parādās vairākas reizes"
-#: gio/glib-compile-resources.c:245
+#: gio/glib-compile-resources.c:247
#, c-format
msgid "Failed to locate “%s” in any source directory"
msgstr "Neizdevās atrast “%s” nevienā avotu mapē"
-#: gio/glib-compile-resources.c:256
+#: gio/glib-compile-resources.c:258
#, c-format
msgid "Failed to locate “%s” in current directory"
msgstr "Neizdevās atrast “%s” pašreizējā mapē"
-#: gio/glib-compile-resources.c:290
+#: gio/glib-compile-resources.c:292
#, c-format
msgid "Unknown processing option “%s”"
msgstr "Nezināma apstrādes opcija “%s”"
@@ -2397,38 +2472,38 @@ msgstr "Nezināma apstrādes opcija “%s”"
#. * the second %s is an environment variable, and the third
#. * %s is a command line tool
#.
-#: gio/glib-compile-resources.c:310 gio/glib-compile-resources.c:367
-#: gio/glib-compile-resources.c:424
+#: gio/glib-compile-resources.c:312 gio/glib-compile-resources.c:369
+#: gio/glib-compile-resources.c:426
#, c-format
msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
msgstr ""
"Ir pieprasīta %s pirmsapstrāde, bet %s nav iestatīts un %s neatrodas PATH "
"mainīgajā"
-#: gio/glib-compile-resources.c:457
+#: gio/glib-compile-resources.c:459
#, c-format
msgid "Error reading file %s: %s"
msgstr "Kļūda, nolasot datni %s — %s"
-#: gio/glib-compile-resources.c:477
+#: gio/glib-compile-resources.c:479
#, c-format
msgid "Error compressing file %s"
msgstr "Kļūda, saspiežot datni %s"
-#: gio/glib-compile-resources.c:541
+#: gio/glib-compile-resources.c:543
#, c-format
msgid "text may not appear inside <%s>"
msgstr "teksts nevar atrasties iekš <%s>"
-#: gio/glib-compile-resources.c:737 gio/glib-compile-schemas.c:2172
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Rādīt programmas versiju un iziet"
-#: gio/glib-compile-resources.c:738
+#: gio/glib-compile-resources.c:822
msgid "Name of the output file"
msgstr "Izvades datnes nosaukums"
-#: gio/glib-compile-resources.c:739
+#: gio/glib-compile-resources.c:823
msgid ""
"The directories to load files referenced in FILE from (default: current "
"directory)"
@@ -2436,56 +2511,60 @@ msgstr ""
"Direktorijas, no kurām nolasīt datnes, kas ir norādītas DATNE (pēc "
"noklusējuma pašreizējā direktorija)"
-#: gio/glib-compile-resources.c:739 gio/glib-compile-schemas.c:2173
-#: gio/glib-compile-schemas.c:2202
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "MAPE"
-#: gio/glib-compile-resources.c:740
+#: gio/glib-compile-resources.c:824
msgid ""
"Generate output in the format selected for by the target filename extension"
msgstr "Veidot izvadi, kas ir mērķa datnes nosaukuma paplašinājuma formātā"
-#: gio/glib-compile-resources.c:741
+#: gio/glib-compile-resources.c:825
msgid "Generate source header"
msgstr "Veidot avota galveni"
-#: gio/glib-compile-resources.c:742
+#: gio/glib-compile-resources.c:826
msgid "Generate source code used to link in the resource file into your code"
msgstr "Veidot pirmkodu, ko izmantot, lai saistītu resursu datni jūsu kodā"
-#: gio/glib-compile-resources.c:743
+#: gio/glib-compile-resources.c:827
msgid "Generate dependency list"
msgstr "Veidot atkarību sarakstu"
-#: gio/glib-compile-resources.c:744
+#: gio/glib-compile-resources.c:828
msgid "Name of the dependency file to generate"
msgstr "Nosaukums atkarību datnei, kuru ģenerēt"
-#: gio/glib-compile-resources.c:745
+#: gio/glib-compile-resources.c:829
msgid "Include phony targets in the generated dependency file"
msgstr "Iekļaut apšaubāmus (phony) mērķus ģenerētajā atkarību datnē"
-#: gio/glib-compile-resources.c:746
+#: gio/glib-compile-resources.c:830
msgid "Don’t automatically create and register resource"
msgstr "Resursu neveidot un nereģistrēt automātiski"
-#: gio/glib-compile-resources.c:747
+#: gio/glib-compile-resources.c:831
msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
msgstr "Neeksportēt funkcijas; deklarēt tās G_GNUC_INTERNAL"
-#: gio/glib-compile-resources.c:748
+#: gio/glib-compile-resources.c:832
msgid ""
"Don’t embed resource data in the C file; assume it's linked externally "
"instead"
msgstr ""
"Neiegult resursa datus C datnē; tā vietā pieņemt, ka tie ir piesaistīti ārēji"
-#: gio/glib-compile-resources.c:749
+#: gio/glib-compile-resources.c:833
msgid "C identifier name used for the generated source code"
msgstr "C identifikatora nosaukums veidotajam pirmkodam"
-#: gio/glib-compile-resources.c:775
+#: gio/glib-compile-resources.c:834
+msgid "The target C compiler (default: the CC environment variable)"
+msgstr "Mērķa C kompilators (noklusējuma ir CC vides mainīgais)"
+
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2495,122 +2574,122 @@ msgstr ""
"Resursu specifikācijas datnēm ir jābūt ar paplašinājumu .gresource.xml,\n"
"un resursu datnēm jābūt ar paplašinājumu .gresource."
-#: gio/glib-compile-resources.c:797
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Jums jānorāda tieši viens datnes nosaukums\n"
-#: gio/glib-compile-schemas.c:92
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "pseidonīmam ir jābūt vismaz 2 rakstzīmju garam"
-#: gio/glib-compile-schemas.c:103
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Nederīga skaitļa vērtība"
-#: gio/glib-compile-schemas.c:111
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> jau norādīts"
-#: gio/glib-compile-schemas.c:119
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' jau ir norādīta"
-#: gio/glib-compile-schemas.c:133
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "slēdžu vērtībām vismaz vienam bitam ir jābūt iestatītam"
-#: gio/glib-compile-schemas.c:158
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> jāsatur vismaz viens <value>"
-#: gio/glib-compile-schemas.c:314
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> neatrodas norādītājā intervālā"
-#: gio/glib-compile-schemas.c:326
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> nav derīgs skaitlis no norādītā uzskaitījuma tipa"
-#: gio/glib-compile-schemas.c:332
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> satur virkni, kas nav norādīto slēdžu tipos"
-#: gio/glib-compile-schemas.c:338
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> satur virkni, kas nav starp <choices>"
-#: gio/glib-compile-schemas.c:372
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> jau ir norādīts šai atslēgai"
-#: gio/glib-compile-schemas.c:390
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> nav atļauts atslēgai ar tipu “%s”"
-#: gio/glib-compile-schemas.c:407
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "<range> norādītais minimums ir lielāks par maksimumu"
-#: gio/glib-compile-schemas.c:432
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "neatbalstīta l10n kategorija: %s"
-#: gio/glib-compile-schemas.c:440
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n ir pieprasīts, bet nav dots gettext domēns"
-#: gio/glib-compile-schemas.c:452
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "tulkošanas konteksts ir dots vērtībai ar neieslēgtu l10n"
-#: gio/glib-compile-schemas.c:474
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Neizdevās parsēt <default> vērtību ar tipu “%s”: "
-#: gio/glib-compile-schemas.c:491
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> nevar norādīt atslēgām, kuras ir marķētas kā uzskaitījuma tips"
-#: gio/glib-compile-schemas.c:500
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> jau ir norādīts šai atslēgai"
-#: gio/glib-compile-schemas.c:512
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> nav atļautas atslēgām ar tipu “%s”"
-#: gio/glib-compile-schemas.c:528
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> jau dots"
-#: gio/glib-compile-schemas.c:543
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> jāsatur vismaz viens <choice>"
-#: gio/glib-compile-schemas.c:557
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> jau ir norādīts šai atslēgai"
-#: gio/glib-compile-schemas.c:561
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2618,34 +2697,34 @@ msgstr ""
"<aliases> var tikai norādīt atslēgām ar uzskaitījuma vai slēdžu tipiem vai "
"pēc <choices>"
-#: gio/glib-compile-schemas.c:580
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
"type"
msgstr "<alias value='%s'/> dots, kad “%s” jau ir daļa no uzskaitījuma tipa"
-#: gio/glib-compile-schemas.c:586
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr "<alias value='%s'/> ja <choice value='%s'/> jau tika dots"
-#: gio/glib-compile-schemas.c:594
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> jau norādīts"
-#: gio/glib-compile-schemas.c:604
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "aliasa mērķis “%s” nav uzskaitījuma tips"
-#: gio/glib-compile-schemas.c:605
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "aliasa mērķis “%s” nav starp <choices>"
-#: gio/glib-compile-schemas.c:620
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> jāsatur vismaz viens <alias>"
@@ -2947,7 +3026,7 @@ msgstr "Nerakstīt gschema.compiled datni"
msgid "Do not enforce key name restrictions"
msgstr "Neuzspiest atslēgu nosaukumu ierobežojumus"
-#: gio/glib-compile-schemas.c:2205
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -2957,24 +3036,24 @@ msgstr ""
"Shēmu datņu nosaukumiem ir jābūt ar paplašinājumu .gschema.xml,\n"
"un keša datnēm ir jāsaucas gschemas.compiled."
-#: gio/glib-compile-schemas.c:2226
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Jums jānorāda tieši viens mapes nosaukums"
-#: gio/glib-compile-schemas.c:2269
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Nav atrastas shēmu datnes: neko nedara."
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "izņēma esošo izvades datni: izņēma esošo izvades datni."
-#: gio/glocalfile.c:549 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Nederīgs datnes nosaukums %s"
-#: gio/glocalfile.c:982
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Kļūda, iegūstot datņu sistēmas informāciju priekš %s — %s"
@@ -2983,349 +3062,350 @@ msgstr "Kļūda, iegūstot datņu sistēmas informāciju priekš %s — %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1123
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Saturošais montējums priekš datnes %s nav atrasts"
-#: gio/glocalfile.c:1146
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Nevar pārsaukt saknes mapi"
-#: gio/glocalfile.c:1164 gio/glocalfile.c:1187
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Kļūda, pārsaucot datni %s — %s"
-#: gio/glocalfile.c:1171
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Nevar pārsaukt datni; datnes nosaukums jau eksistē"
-#: gio/glocalfile.c:1184 gio/glocalfile.c:2371 gio/glocalfile.c:2399
-#: gio/glocalfile.c:2538 gio/glocalfileoutputstream.c:656
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Nederīgs datnes nosaukums"
-#: gio/glocalfile.c:1352 gio/glocalfile.c:1363
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Kļūda, atverot datni %s — %s"
-#: gio/glocalfile.c:1488
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Kļūda, dzēšot datni %s — %s"
-#: gio/glocalfile.c:1982 gio/glocalfile.c:1993
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Kļūda, izmetot miskastē datni %s — %s"
-#: gio/glocalfile.c:2031
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Nevar izveidot miskastes direktoriju %s — %s"
-#: gio/glocalfile.c:2052
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Nevar atrast augšējā līmeņa mapi, lai izmestu miskastē %s"
-#: gio/glocalfile.c:2060
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Izmešana uz sistēmas iekšējiem montējumiem nav atbalstīta"
-#: gio/glocalfile.c:2146 gio/glocalfile.c:2174
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Nevar atrast vai izveidot miskastes direktoriju %s, lai izmestu %s"
-#: gio/glocalfile.c:2220
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Nevar izveidot miskastē izmešanas informācijas datni priekš %s — %s"
-#: gio/glocalfile.c:2282
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Nevar izmest miskastē datni %s pāri datņu sistēmas robežām"
-#: gio/glocalfile.c:2286 gio/glocalfile.c:2342
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Nevar izmest miskastē datni %s — %s"
-#: gio/glocalfile.c:2348
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Nevar izmest miskastē datni %s"
-#: gio/glocalfile.c:2374
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Kļūda, veidojot mapi %s — %s"
-#: gio/glocalfile.c:2403
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Datņu sistēma neatbalsta simboliskās saites"
-#: gio/glocalfile.c:2406
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Kļūda, veidojot simbolisko saiti %s — %s"
-#: gio/glocalfile.c:2449 gio/glocalfile.c:2484 gio/glocalfile.c:2541
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Kļūda, pārvietojot datni %s — %s"
-#: gio/glocalfile.c:2472
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Nevar pārvietot mapi virsū mapei"
-#: gio/glocalfile.c:2498 gio/glocalfileoutputstream.c:1108
-#: gio/glocalfileoutputstream.c:1122 gio/glocalfileoutputstream.c:1137
-#: gio/glocalfileoutputstream.c:1154 gio/glocalfileoutputstream.c:1168
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
+#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Neizdevās izveidot rezerves kopijas datni"
-#: gio/glocalfile.c:2517
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Kļūda, dzēšot mērķa datni — %s"
-#: gio/glocalfile.c:2531
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Pārvietošana starp montētiem sējumiem nav atbalstīta"
-#: gio/glocalfile.c:2705
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Nevarēja noteikt %s diska izmantojumu — %s"
-#: gio/glocalfileinfo.c:767
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Atribūta vērtībai ir jābūt ne NULL"
-#: gio/glocalfileinfo.c:774
-msgid "Invalid attribute type (string expected)"
-msgstr "Nederīgs atribūta tips (tika gaidīta virkne)"
+#: gio/glocalfileinfo.c:772
+#| msgid "Invalid attribute type (string expected)"
+msgid "Invalid attribute type (string or invalid expected)"
+msgstr "Nederīgs atribūta tips (tika gaidīts “string” vai “invalid”)"
-#: gio/glocalfileinfo.c:781
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Nederīgs paplašinātais atribūta nosaukums"
-#: gio/glocalfileinfo.c:821
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Kļūda, iestatot paplašināto atribūtu “%s” — %s"
-#: gio/glocalfileinfo.c:1709 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (nederīgs kodējums)"
-#: gio/glocalfileinfo.c:1868 gio/glocalfileoutputstream.c:943
-#: gio/glocalfileoutputstream.c:995
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Kļūda, saņemot informāciju par datni “%s” — %s"
-#: gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Kļūda, saņemot informāciju datnes deskriptoram — %s"
-#: gio/glocalfileinfo.c:2179
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Nederīgs atribūta tips (tika gaidīts uint32)"
-#: gio/glocalfileinfo.c:2197
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Nederīgs atribūta tips (tika gaidīts uint64)"
-#: gio/glocalfileinfo.c:2216 gio/glocalfileinfo.c:2235
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Nederīgs atribūta tips (tika gaidīta baitu virkne)"
-#: gio/glocalfileinfo.c:2282
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Nevar iestatīt atļaujas simboliskajām saitēm"
-#: gio/glocalfileinfo.c:2298
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Kļūda, iestatot tiesības — %s"
-#: gio/glocalfileinfo.c:2349
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Kļūda, iestatot īpašnieku — %s"
-#: gio/glocalfileinfo.c:2372
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "simboliskajai saitei ir jābūt ne NULL"
-#: gio/glocalfileinfo.c:2382 gio/glocalfileinfo.c:2401
-#: gio/glocalfileinfo.c:2412
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Kļūda, iestatot simbolisko saiti — %s"
-#: gio/glocalfileinfo.c:2391
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "Kļūda, iestatot simbolisko saiti — datne nav simboliskā saite"
-#: gio/glocalfileinfo.c:2463
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Papildu nanosekundes %d UNIX laika spiedogiem %lld ir negatīvas"
-#: gio/glocalfileinfo.c:2472
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr "Papildu nanosekundes %d UNIX laika spiedogiem %lld sasniedza 1 sekundi"
-#: gio/glocalfileinfo.c:2482
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "UNIX laika spiedogs %lld neiekļāvās 64 bitos"
-#: gio/glocalfileinfo.c:2493
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "UNIX laika spiedogs %lld ir ārpus apgabala, ko atbalsta Windows"
-#: gio/glocalfileinfo.c:2570
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Datnes nosaukumu “%s” nevar pārveidot uz UTF-16"
-#: gio/glocalfileinfo.c:2589
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Datni “%s” nevar atvērt, Windows kļūda %lu"
-#: gio/glocalfileinfo.c:2602
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "Kļūda, iestatot izmaiņu vai piekļuves laiku datnei “%s” — %lu"
-#: gio/glocalfileinfo.c:2703
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Kļūda, iestatot izmaiņu vai piekļuves laiku — %s"
-#: gio/glocalfileinfo.c:2726
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "SELinux kontekstam ir jābūt ne NULL"
-#: gio/glocalfileinfo.c:2733
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux nav ieslēgts uz šīs sistēmas"
-#: gio/glocalfileinfo.c:2743
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Kļūda, iestatot SELinux kontekstu — %s"
-#: gio/glocalfileinfo.c:2836
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "%s atribūta iestatīšana nav atbalstīta"
-#: gio/glocalfileinputstream.c:163 gio/glocalfileoutputstream.c:801
+#: gio/glocalfileinputstream.c:165 gio/glocalfileoutputstream.c:803
#, c-format
msgid "Error reading from file: %s"
msgstr "Kļūda, lasot no datnes — %s"
-#: gio/glocalfileinputstream.c:194 gio/glocalfileoutputstream.c:353
-#: gio/glocalfileoutputstream.c:447
+#: gio/glocalfileinputstream.c:196 gio/glocalfileoutputstream.c:355
+#: gio/glocalfileoutputstream.c:449
#, c-format
msgid "Error closing file: %s"
msgstr "Kļūda, aizverot datni — %s"
-#: gio/glocalfileinputstream.c:272 gio/glocalfileoutputstream.c:563
-#: gio/glocalfileoutputstream.c:1186
+#: gio/glocalfileinputstream.c:274 gio/glocalfileoutputstream.c:565
+#: gio/glocalfileoutputstream.c:1188
#, c-format
msgid "Error seeking in file: %s"
msgstr "Kļūda, meklējot datnē — %s"
-#: gio/glocalfilemonitor.c:866
+#: gio/glocalfilemonitor.c:882
msgid "Unable to find default local file monitor type"
msgstr "Nevar atrast noklusēto lokālo datņu novērošanas tipu"
-#: gio/glocalfileoutputstream.c:220 gio/glocalfileoutputstream.c:298
-#: gio/glocalfileoutputstream.c:334 gio/glocalfileoutputstream.c:822
+#: gio/glocalfileoutputstream.c:222 gio/glocalfileoutputstream.c:300
+#: gio/glocalfileoutputstream.c:336 gio/glocalfileoutputstream.c:824
#, c-format
msgid "Error writing to file: %s"
msgstr "Kļūda, rakstot datnē — %s"
-#: gio/glocalfileoutputstream.c:380
+#: gio/glocalfileoutputstream.c:382
#, c-format
msgid "Error removing old backup link: %s"
msgstr "Kļūda, dzēšot vecu rezerves kopijas saiti — %s"
-#: gio/glocalfileoutputstream.c:394 gio/glocalfileoutputstream.c:407
+#: gio/glocalfileoutputstream.c:396 gio/glocalfileoutputstream.c:409
#, c-format
msgid "Error creating backup copy: %s"
msgstr "Kļūda, veidojot rezerves kopiju — %s"
-#: gio/glocalfileoutputstream.c:425
+#: gio/glocalfileoutputstream.c:427
#, c-format
msgid "Error renaming temporary file: %s"
msgstr "Kļūda, pārsaucot pagaidu datni — %s"
-#: gio/glocalfileoutputstream.c:609 gio/glocalfileoutputstream.c:1237
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Kļūda, apraujot datni — %s"
-#: gio/glocalfileoutputstream.c:662 gio/glocalfileoutputstream.c:907
-#: gio/glocalfileoutputstream.c:1218 gio/gsubprocess.c:226
+#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Kļūda, atverot datni “%s” — %s"
-#: gio/glocalfileoutputstream.c:957
+#: gio/glocalfileoutputstream.c:959
msgid "Target file is a directory"
msgstr "Mērķa datne ir mape"
-#: gio/glocalfileoutputstream.c:971
+#: gio/glocalfileoutputstream.c:973
msgid "Target file is not a regular file"
msgstr "Mērķa datne nav parasta datne"
-#: gio/glocalfileoutputstream.c:1013
+#: gio/glocalfileoutputstream.c:1015
msgid "The file was externally modified"
msgstr "Datne tika mainīta no ārpuses"
-#: gio/glocalfileoutputstream.c:1202
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Kļūda, dzēšot veco datni — %s"
-#: gio/gmemoryinputstream.c:474 gio/gmemoryoutputstream.c:772
+#: gio/gmemoryinputstream.c:476 gio/gmemoryoutputstream.c:764
msgid "Invalid GSeekType supplied"
msgstr "Piegādāts nederīgs GSeekType"
-#: gio/gmemoryinputstream.c:484
+#: gio/gmemoryinputstream.c:486
msgid "Invalid seek request"
msgstr "Nederīgs meklēšanas pieprasījums"
-#: gio/gmemoryinputstream.c:508
+#: gio/gmemoryinputstream.c:510
msgid "Cannot truncate GMemoryInputStream"
msgstr "Nevar apraut GMemoryInputStream"
-#: gio/gmemoryoutputstream.c:567
+#: gio/gmemoryoutputstream.c:570
msgid "Memory output stream not resizable"
msgstr "Atmiņas izvades plūsmai nav maināms izmērs"
-#: gio/gmemoryoutputstream.c:583
+#: gio/gmemoryoutputstream.c:586
msgid "Failed to resize memory output stream"
msgstr "Neizdevās mainīt atmiņas izvades plūsmas izmēru"
-#: gio/gmemoryoutputstream.c:673
+#: gio/gmemoryoutputstream.c:665
msgid ""
"Amount of memory required to process the write is larger than available "
"address space"
@@ -3333,32 +3413,32 @@ msgstr ""
"Atmiņas apjoms, kas nepieciešams, lai apstrādātu rakstīšanu, ir lielāks nekā "
"pieejamā atmiņas telpa"
-#: gio/gmemoryoutputstream.c:782
+#: gio/gmemoryoutputstream.c:774
msgid "Requested seek before the beginning of the stream"
msgstr "Pieprasītā meklēšana ir pirms plūsmas sākuma"
-#: gio/gmemoryoutputstream.c:797
+#: gio/gmemoryoutputstream.c:789
msgid "Requested seek beyond the end of the stream"
msgstr "Pieprasītā meklēšana ir pēc plūsmas beigām"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement unmount.
-#: gio/gmount.c:399
+#: gio/gmount.c:401
msgid "mount doesn’t implement “unmount”"
msgstr "montējums neatbalsta “unmount” (atmontēšanu)"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement eject.
-#: gio/gmount.c:475
+#: gio/gmount.c:477
msgid "mount doesn’t implement “eject”"
msgstr "montējums neatbalsta “eject” (izgrūšanu)"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of unmount or unmount_with_operation.
-#: gio/gmount.c:553
+#: gio/gmount.c:555
msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
msgstr ""
"montējums neatbalsta “unmount” (atmontēšanu) vai “unmount_with_operation”"
@@ -3366,123 +3446,135 @@ msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gmount.c:638
+#: gio/gmount.c:640
msgid "mount doesn’t implement “eject” or “eject_with_operation”"
msgstr "montējums neatbalsta “eject” (izgrūšanu) vai “eject_with_operation”"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement remount.
-#: gio/gmount.c:726
+#: gio/gmount.c:728
msgid "mount doesn’t implement “remount”"
msgstr "montējums neatbalsta “remount” (atkārtotu montēšanu)"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:808
+#: gio/gmount.c:810
msgid "mount doesn’t implement content type guessing"
msgstr "montējums neatbalsta satura tipa minēšanu"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:895
+#: gio/gmount.c:897
msgid "mount doesn’t implement synchronous content type guessing"
msgstr "montējums neatbalsta sinhrono satura tipa minēšanu"
-#: gio/gnetworkaddress.c:415
+#: gio/gnetworkaddress.c:417
#, c-format
msgid "Hostname “%s” contains “[” but not “]”"
msgstr "Datora nosaukums “%s” satur “[” bet ne “]”"
-#: gio/gnetworkmonitorbase.c:219 gio/gnetworkmonitorbase.c:323
+#: gio/gnetworkmonitorbase.c:221 gio/gnetworkmonitorbase.c:325
msgid "Network unreachable"
msgstr "Tīkls nav sasniedzams"
-#: gio/gnetworkmonitorbase.c:257 gio/gnetworkmonitorbase.c:287
+#: gio/gnetworkmonitorbase.c:259 gio/gnetworkmonitorbase.c:289
msgid "Host unreachable"
msgstr "Dators nav sasniedzams"
-#: gio/gnetworkmonitornetlink.c:99 gio/gnetworkmonitornetlink.c:111
-#: gio/gnetworkmonitornetlink.c:130
+#: gio/gnetworkmonitornetlink.c:101 gio/gnetworkmonitornetlink.c:113
+#: gio/gnetworkmonitornetlink.c:132
#, c-format
msgid "Could not create network monitor: %s"
msgstr "Neizdevās izveidot tīkla pārraugu — %s"
-#: gio/gnetworkmonitornetlink.c:120
+#: gio/gnetworkmonitornetlink.c:122
msgid "Could not create network monitor: "
msgstr "Neizdevās izveidot tīkla pārraugu:"
-#: gio/gnetworkmonitornetlink.c:183
+#: gio/gnetworkmonitornetlink.c:185
msgid "Could not get network status: "
msgstr "Neizdevās saņemt tīkla statusu:"
-#: gio/gnetworkmonitornm.c:348
+#: gio/gnetworkmonitornm.c:313
#, c-format
msgid "NetworkManager not running"
msgstr "NetworkManager nav palaists"
-#: gio/gnetworkmonitornm.c:359
+#: gio/gnetworkmonitornm.c:324
#, c-format
msgid "NetworkManager version too old"
msgstr "NetworkManager versija ir pārāk veca"
-#: gio/goutputstream.c:232 gio/goutputstream.c:775
+#: gio/goutputstream.c:234 gio/goutputstream.c:777
msgid "Output stream doesn’t implement write"
msgstr "Izvades plūsma neatbalsta rakstīšanu"
-#: gio/goutputstream.c:472 gio/goutputstream.c:1533
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Uz %s padoto vektoru summa ir pārāk liela"
-#: gio/goutputstream.c:736 gio/goutputstream.c:1761
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Avota plūsma jau ir aizvērta"
-#: gio/gresolver.c:386 gio/gthreadedresolver.c:150 gio/gthreadedresolver.c:168
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
+msgid "Unspecified proxy lookup failure"
+msgstr "Nespecifiska starpnieka uzmeklēšanas kļūme"
+
+#. Translators: the first placeholder is a domain name, the
+#. * second is an error message
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Kļūda, sameklējot “%s” — %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:455 gio/gresolver.c:615
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s nav realizēts"
-#: gio/gresolver.c:984 gio/gresolver.c:1036
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Nederīgs domēns"
-#: gio/gresource.c:681 gio/gresource.c:943 gio/gresource.c:983
-#: gio/gresource.c:1107 gio/gresource.c:1179 gio/gresource.c:1253
-#: gio/gresource.c:1334 gio/gresourcefile.c:476 gio/gresourcefile.c:599
-#: gio/gresourcefile.c:736
+#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
+#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Resurss pie “%s” neeksistē"
-#: gio/gresource.c:848
+#: gio/gresource.c:850
#, c-format
msgid "The resource at “%s” failed to decompress"
msgstr "Resursam pie “%s” neizdevās atspiesties"
-#: gio/gresourcefile.c:732
+#: gio/gresourcefile.c:663
+msgid "Resource files cannot be renamed"
+msgstr "Resursa datnes nevar pārdēvēt"
+
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "Resurss pie “%s” nav mape"
-#: gio/gresourcefile.c:940
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Ievades plūsma neatbalsta meklēšanu"
-#: gio/gresource-tool.c:500
+#: gio/gresource-tool.c:502
msgid "List sections containing resources in an elf FILE"
msgstr "Uzskaitīt sadaļas, kas satur resursus elf DATNĒ"
-#: gio/gresource-tool.c:506
+#: gio/gresource-tool.c:508
msgid ""
"List resources\n"
"If SECTION is given, only list resources in this section\n"
@@ -3492,15 +3584,15 @@ msgstr ""
"Ja ir norādīta SADAĻA, uzskaitīt resursus šajā sadaļā\n"
"Ja ir norādīts CEĻŠ, uzskaitīt tikai atbilstošus resursus"
-#: gio/gresource-tool.c:509 gio/gresource-tool.c:519
+#: gio/gresource-tool.c:511 gio/gresource-tool.c:521
msgid "FILE [PATH]"
msgstr "DATNE [CEĻŠ]"
-#: gio/gresource-tool.c:510 gio/gresource-tool.c:520 gio/gresource-tool.c:527
+#: gio/gresource-tool.c:512 gio/gresource-tool.c:522 gio/gresource-tool.c:529
msgid "SECTION"
msgstr "SADAĻA"
-#: gio/gresource-tool.c:515
+#: gio/gresource-tool.c:517
msgid ""
"List resources with details\n"
"If SECTION is given, only list resources in this section\n"
@@ -3512,15 +3604,15 @@ msgstr ""
"Ja ir norādīts CEĻŠ, uzskaitīt tikai atbilstošus resursus\n"
"Informācija iekļauj sadaļu, izmēru un saspiešanu"
-#: gio/gresource-tool.c:525
+#: gio/gresource-tool.c:527
msgid "Extract a resource file to stdout"
msgstr "Izvilkt resursu datni uz stdout"
-#: gio/gresource-tool.c:526
+#: gio/gresource-tool.c:528
msgid "FILE PATH"
msgstr "DATNE CEĻŠ"
-#: gio/gresource-tool.c:540
+#: gio/gresource-tool.c:542
msgid ""
"Usage:\n"
" gresource [--section SECTION] COMMAND [ARGS…]\n"
@@ -3548,7 +3640,7 @@ msgstr ""
"Lietojiet “gresource help KOMANDA”, lai saņemtu detalizētu palīdzību.\n"
"\n"
-#: gio/gresource-tool.c:554
+#: gio/gresource-tool.c:556
#, c-format
msgid ""
"Usage:\n"
@@ -3563,19 +3655,19 @@ msgstr ""
"%s\n"
"\n"
-#: gio/gresource-tool.c:561
+#: gio/gresource-tool.c:563
msgid " SECTION An (optional) elf section name\n"
msgstr " SADAĻA (Neobligāts) elf sadaļas nosaukums\n"
-#: gio/gresource-tool.c:565 gio/gsettings-tool.c:706
+#: gio/gresource-tool.c:567 gio/gsettings-tool.c:720
msgid " COMMAND The (optional) command to explain\n"
msgstr " KOMANDA (neobligāta) komanda, ko izskaidrot\n"
-#: gio/gresource-tool.c:571
+#: gio/gresource-tool.c:573
msgid " FILE An elf file (a binary or a shared library)\n"
msgstr " DATNE elf datne (bināra datne vai koplietota bibliotēka)\n"
-#: gio/gresource-tool.c:574
+#: gio/gresource-tool.c:576
msgid ""
" FILE An elf file (a binary or a shared library)\n"
" or a compiled resource file\n"
@@ -3583,82 +3675,82 @@ msgstr ""
" DATNE elf datne (bināra datne vai koplietota bibliotēka)\n"
" vai saspiests resursu datne\n"
-#: gio/gresource-tool.c:578
+#: gio/gresource-tool.c:580
msgid "[PATH]"
msgstr "[CEĻŠ]"
-#: gio/gresource-tool.c:580
+#: gio/gresource-tool.c:582
msgid " PATH An (optional) resource path (may be partial)\n"
msgstr " CEĻŠ (Neobligāts) resursa ceļš (var būt daļējs)\n"
-#: gio/gresource-tool.c:581
+#: gio/gresource-tool.c:583
msgid "PATH"
msgstr "CEĻŠ"
-#: gio/gresource-tool.c:583
+#: gio/gresource-tool.c:585
msgid " PATH A resource path\n"
msgstr " CEĻŠ Resursa ceļš\n"
-#: gio/gsettings-tool.c:49 gio/gsettings-tool.c:70 gio/gsettings-tool.c:911
+#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:925
#, c-format
msgid "No such schema “%s”\n"
msgstr "Nav tādas shēmas “%s”\n"
-#: gio/gsettings-tool.c:55
+#: gio/gsettings-tool.c:57
#, c-format
msgid "Schema “%s” is not relocatable (path must not be specified)\n"
msgstr "Shēma “%s” nav pārvietojama (nedrīkst norādīt ceļu)\n"
-#: gio/gsettings-tool.c:76
+#: gio/gsettings-tool.c:78
#, c-format
msgid "Schema “%s” is relocatable (path must be specified)\n"
msgstr "Shēma “%s” ir pārvietojama (jānorāda ceļš)\n"
-#: gio/gsettings-tool.c:90
+#: gio/gsettings-tool.c:92
msgid "Empty path given.\n"
msgstr "Dots tukšs ceļš.\n"
-#: gio/gsettings-tool.c:96
+#: gio/gsettings-tool.c:98
msgid "Path must begin with a slash (/)\n"
msgstr "Ceļam jāsākas ar slīpsvītru (/)\n"
-#: gio/gsettings-tool.c:102
+#: gio/gsettings-tool.c:104
msgid "Path must end with a slash (/)\n"
msgstr "Ceļam jābeidzas ar slīpsvītru (/)\n"
-#: gio/gsettings-tool.c:108
+#: gio/gsettings-tool.c:110
msgid "Path must not contain two adjacent slashes (//)\n"
msgstr "Ceļš nedrīkst saturēt divas blakus esošas slīpsvītras (//)\n"
-#: gio/gsettings-tool.c:541
+#: gio/gsettings-tool.c:555
msgid "The provided value is outside of the valid range\n"
msgstr "Dotā vērtība ir ārpus derīgo vērtību intervāla\n"
-#: gio/gsettings-tool.c:548
+#: gio/gsettings-tool.c:562
msgid "The key is not writable\n"
msgstr "Atslēga nav rakstāma\n"
-#: gio/gsettings-tool.c:584
+#: gio/gsettings-tool.c:598
msgid "List the installed (non-relocatable) schemas"
msgstr "Saraksts ar instalētām (nepārvietojamām) shēmām"
-#: gio/gsettings-tool.c:590
+#: gio/gsettings-tool.c:604
msgid "List the installed relocatable schemas"
msgstr "Saraksts ar instalētam pārvietojamām shēmām"
-#: gio/gsettings-tool.c:596
+#: gio/gsettings-tool.c:610
msgid "List the keys in SCHEMA"
msgstr "Atslēgu saraksts SHĒMĀ"
-#: gio/gsettings-tool.c:597 gio/gsettings-tool.c:603 gio/gsettings-tool.c:646
+#: gio/gsettings-tool.c:611 gio/gsettings-tool.c:617 gio/gsettings-tool.c:660
msgid "SCHEMA[:PATH]"
msgstr "SHĒMA[:CEĻŠ]"
-#: gio/gsettings-tool.c:602
+#: gio/gsettings-tool.c:616
msgid "List the children of SCHEMA"
msgstr "Bērnu skaits SHĒMĀ"
-#: gio/gsettings-tool.c:608
+#: gio/gsettings-tool.c:622
msgid ""
"List keys and values, recursively\n"
"If no SCHEMA is given, list all keys\n"
@@ -3666,48 +3758,48 @@ msgstr ""
"Saraksts ar atslēgām un vērtībām; rekursīvi\n"
"Ja nav dota shēma, rādīt visas atslēgas\n"
-#: gio/gsettings-tool.c:610
+#: gio/gsettings-tool.c:624
msgid "[SCHEMA[:PATH]]"
msgstr "[SHĒMA[:CEĻŠ]"
-#: gio/gsettings-tool.c:615
+#: gio/gsettings-tool.c:629
msgid "Get the value of KEY"
msgstr "Saņemt vērtību ATSLĒGAI"
-#: gio/gsettings-tool.c:616 gio/gsettings-tool.c:622 gio/gsettings-tool.c:628
-#: gio/gsettings-tool.c:640 gio/gsettings-tool.c:652
+#: gio/gsettings-tool.c:630 gio/gsettings-tool.c:636 gio/gsettings-tool.c:642
+#: gio/gsettings-tool.c:654 gio/gsettings-tool.c:666
msgid "SCHEMA[:PATH] KEY"
msgstr "SHĒMA[:CEĻŠ] ATSLĒGA"
-#: gio/gsettings-tool.c:621
+#: gio/gsettings-tool.c:635
msgid "Query the range of valid values for KEY"
msgstr "Vaicājums derīgo vērtību intervālam ATSLĒGAI"
-#: gio/gsettings-tool.c:627
+#: gio/gsettings-tool.c:641
msgid "Query the description for KEY"
msgstr "Vaicāt aprakstu ATSLĒGAI"
-#: gio/gsettings-tool.c:633
+#: gio/gsettings-tool.c:647
msgid "Set the value of KEY to VALUE"
msgstr "Iestatīt ATSLĒGTAS vērtību uz VĒRTĪBA"
-#: gio/gsettings-tool.c:634
+#: gio/gsettings-tool.c:648
msgid "SCHEMA[:PATH] KEY VALUE"
msgstr "SHĒMA[:CEĻŠ] ATSLĒGA VĒRTĪBA"
-#: gio/gsettings-tool.c:639
+#: gio/gsettings-tool.c:653
msgid "Reset KEY to its default value"
msgstr "Pārstatīt ATSLĒGAS vērtību uz tās noklusēto"
-#: gio/gsettings-tool.c:645
+#: gio/gsettings-tool.c:659
msgid "Reset all keys in SCHEMA to their defaults"
msgstr "Atstatīt visas atslēgas SHĒMĀ uz to noklusētajām vērtībām"
-#: gio/gsettings-tool.c:651
+#: gio/gsettings-tool.c:665
msgid "Check if KEY is writable"
msgstr "Pārbaudīt, vai ATSLĒGA ir rakstāma"
-#: gio/gsettings-tool.c:657
+#: gio/gsettings-tool.c:671
msgid ""
"Monitor KEY for changes.\n"
"If no KEY is specified, monitor all keys in SCHEMA.\n"
@@ -3717,11 +3809,11 @@ msgstr ""
"Ja nav norādīta ATSLĒGA, novērot visas atslēgas SHĒMĀ.\n"
"Izmantojiet ^C, lai pārtrauktu novērošanu.\n"
-#: gio/gsettings-tool.c:660
+#: gio/gsettings-tool.c:674
msgid "SCHEMA[:PATH] [KEY]"
msgstr "SHĒMA[:CEĻŠ] [ATSLĒGA]"
-#: gio/gsettings-tool.c:672
+#: gio/gsettings-tool.c:686
msgid ""
"Usage:\n"
" gsettings --version\n"
@@ -3769,7 +3861,7 @@ msgstr ""
"Lietojiet “gsettings help KOMANDA”, lai saņemtu sīkāku palīdzību.\n"
"\n"
-#: gio/gsettings-tool.c:696
+#: gio/gsettings-tool.c:710
#, c-format
msgid ""
"Usage:\n"
@@ -3784,11 +3876,11 @@ msgstr ""
"%s\n"
"\n"
-#: gio/gsettings-tool.c:702
+#: gio/gsettings-tool.c:716
msgid " SCHEMADIR A directory to search for additional schemas\n"
msgstr " SHĒMAS_MAPE Mape, kurā meklēt papildu shēmas\n"
-#: gio/gsettings-tool.c:710
+#: gio/gsettings-tool.c:724
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
@@ -3796,388 +3888,424 @@ msgstr ""
" SHĒMA Shēmas nosaukums\n"
" CEĻŠ Ceļš pārvietojamām shēmām\n"
-#: gio/gsettings-tool.c:715
+#: gio/gsettings-tool.c:729
msgid " KEY The (optional) key within the schema\n"
msgstr " ATSLĒGA (neobligāta) atslēga shēmā\n"
-#: gio/gsettings-tool.c:719
+#: gio/gsettings-tool.c:733
msgid " KEY The key within the schema\n"
msgstr " ATSLĒGA Atslēga shēmā\n"
-#: gio/gsettings-tool.c:723
+#: gio/gsettings-tool.c:737
msgid " VALUE The value to set\n"
msgstr " VĒRTĪBA Vērtība, ko iestatīt\n"
-#: gio/gsettings-tool.c:778
+#: gio/gsettings-tool.c:792
#, c-format
msgid "Could not load schemas from %s: %s\n"
msgstr "Nevarēja ielādēt shēmas no “%s” — “%s”\n"
-#: gio/gsettings-tool.c:790
+#: gio/gsettings-tool.c:804
msgid "No schemas installed\n"
msgstr "Nav instalētu shēmu\n"
-#: gio/gsettings-tool.c:869
+#: gio/gsettings-tool.c:883
msgid "Empty schema name given\n"
msgstr "Dots tukšs shēmas nosaukums\n"
-#: gio/gsettings-tool.c:924
+#: gio/gsettings-tool.c:938
#, c-format
msgid "No such key “%s”\n"
msgstr "Nav tādas atslēgas “%s”\n"
-#: gio/gsocket.c:413
+#: gio/gsocket.c:419
msgid "Invalid socket, not initialized"
msgstr "Nederīga ligzda, nav inicializēta"
-#: gio/gsocket.c:420
+#: gio/gsocket.c:426
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
msgstr "Nederīga ligzda, inicializācija neizdevās, jo — %s"
-#: gio/gsocket.c:428
+#: gio/gsocket.c:434
msgid "Socket is already closed"
msgstr "Ligzda jau ir aizvērta"
-#: gio/gsocket.c:443 gio/gsocket.c:3190 gio/gsocket.c:4420 gio/gsocket.c:4478
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "Ligzdai I/O iestājās noildze"
-#: gio/gsocket.c:578
+#: gio/gsocket.c:586
#, c-format
msgid "creating GSocket from fd: %s"
msgstr "izveido GSocket no fd — %s"
-#: gio/gsocket.c:607 gio/gsocket.c:671 gio/gsocket.c:678
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Nevarēja izveidot ligzdu — %s"
-#: gio/gsocket.c:671
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Tika norādīta nezināma saime"
-#: gio/gsocket.c:678
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Tika norādīts nezināms protokols"
-#: gio/gsocket.c:1169
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "Nevar izmantot datagrammu operācijas ar ne-datagrammu ligzdu."
-#: gio/gsocket.c:1186
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr "Nevar izmantot datagrammu operācijas ar ligzdu, kurai ir noildze."
-#: gio/gsocket.c:1993
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "nevarēja iegūt lokālo adresi — %s"
-#: gio/gsocket.c:2039
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "nevarēja iegūt attālināto adresi — %s"
-#: gio/gsocket.c:2105
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "nevar klausīties — %s"
-#: gio/gsocket.c:2209
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Kļūda, sasaistoties ar adresi %s — %s"
-#: gio/gsocket.c:2385 gio/gsocket.c:2422 gio/gsocket.c:2532 gio/gsocket.c:2557
-#: gio/gsocket.c:2620 gio/gsocket.c:2678 gio/gsocket.c:2696
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Kļūda, pievienojoties multiraides grupai — %s"
-#: gio/gsocket.c:2386 gio/gsocket.c:2423 gio/gsocket.c:2533 gio/gsocket.c:2558
-#: gio/gsocket.c:2621 gio/gsocket.c:2679 gio/gsocket.c:2697
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Kļūda, pametot multiraides grupu — %s"
-#: gio/gsocket.c:2387
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Nav atbalsta avotam specifiskām multiraidēm"
-#: gio/gsocket.c:2534
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Neatbalstīta ligzdu saime"
-#: gio/gsocket.c:2559
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "Avotam specifisks nav IPv4 adrese"
-#: gio/gsocket.c:2583
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Saskarnes nosaukums ir pārāk garš"
-#: gio/gsocket.c:2596 gio/gsocket.c:2646
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Saskarne nav atrasta: %s"
-#: gio/gsocket.c:2622
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Nav atbalsta IPv4 avotam specifiskām multiraidēm"
-#: gio/gsocket.c:2680
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Nav atbalsta IPv6 avotam specifiskām multiraidēm"
-#: gio/gsocket.c:2889
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Kļūda, pieņemot savienojumu — %s"
-#: gio/gsocket.c:3015
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Notiek savienošanās"
-#: gio/gsocket.c:3066
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Nevar saņemt izpildes gaidīšanas kļūdu:"
-#: gio/gsocket.c:3255
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Kļūda, saņemot datus — %s"
-#: gio/gsocket.c:3452
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Kļūda, sūtot datus — %s"
-#: gio/gsocket.c:3639
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Neizdevās izslēgt ligzdu — %s"
-#: gio/gsocket.c:3720
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Kļūda, aizverot ligzdu — %s"
-#: gio/gsocket.c:4413
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Gaida ligzdas nosacījumu — %s"
-#: gio/gsocket.c:4804 gio/gsocket.c:4820 gio/gsocket.c:4833
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Nevar nosūtīt ziņojumu — %s"
-#: gio/gsocket.c:4805 gio/gsocket.c:4821 gio/gsocket.c:4834
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Ziņojumu vektors ir pārāk liels"
-#: gio/gsocket.c:4850 gio/gsocket.c:4852 gio/gsocket.c:4999 gio/gsocket.c:5084
-#: gio/gsocket.c:5262 gio/gsocket.c:5302 gio/gsocket.c:5304
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Kļūda, sūtot ziņojumu — %s"
-#: gio/gsocket.c:5026
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage nav atbalstīts uz Windows"
-#: gio/gsocket.c:5495 gio/gsocket.c:5571 gio/gsocket.c:5797
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Kļūda, saņemot ziņojumu — %s"
-#: gio/gsocket.c:6070 gio/gsocket.c:6081 gio/gsocket.c:6127
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Nevar nolasīt ligzdas datus — %s"
-#: gio/gsocket.c:6136
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials nav implementēts šai OS"
-#: gio/gsocketclient.c:191
+#: gio/gsocketclient.c:193
#, c-format
msgid "Could not connect to proxy server %s: "
msgstr "Nevarēja savienoties ar starpniekserveri %s: "
-#: gio/gsocketclient.c:205
+#: gio/gsocketclient.c:207
#, c-format
msgid "Could not connect to %s: "
msgstr "Nevarēja savienoties ar %s: "
-#: gio/gsocketclient.c:207
+#: gio/gsocketclient.c:209
msgid "Could not connect: "
msgstr "Nevarēja savienoties:"
-#: gio/gsocketclient.c:1162 gio/gsocketclient.c:1749
+#: gio/gsocketclient.c:1204 gio/gsocketclient.c:1807
msgid "Proxying over a non-TCP connection is not supported."
msgstr "Starpnieka mēģināšana caur ne-TCP savienojumu nav atbalstīta."
-#: gio/gsocketclient.c:1194 gio/gsocketclient.c:1778
+#: gio/gsocketclient.c:1236 gio/gsocketclient.c:1836
#, c-format
msgid "Proxy protocol “%s” is not supported."
msgstr "Starpnieka protokols “%s” nav atbalstīts."
-#: gio/gsocketlistener.c:230
+#: gio/gsocketlistener.c:232
msgid "Listener is already closed"
msgstr "Klausītājs jau ir aizvērts"
-#: gio/gsocketlistener.c:276
+#: gio/gsocketlistener.c:278
msgid "Added socket is closed"
msgstr "Pievienotā ligzda ir aizvērta"
-#: gio/gsocks4aproxy.c:118
+#: gio/gsocks4aproxy.c:120
#, c-format
msgid "SOCKSv4 does not support IPv6 address “%s”"
msgstr "SOCKSv4 neatbalsta IPv6 adreses “%s”"
-#: gio/gsocks4aproxy.c:136
+#: gio/gsocks4aproxy.c:138
msgid "Username is too long for SOCKSv4 protocol"
msgstr "Lietotāja vārds ir pārāk garš SOCKSv4 protokolam"
-#: gio/gsocks4aproxy.c:153
+#: gio/gsocks4aproxy.c:155
#, c-format
msgid "Hostname “%s” is too long for SOCKSv4 protocol"
msgstr "Datora nosaukums “%s” ir pārāk garš SOCKSv4 protokolam"
-#: gio/gsocks4aproxy.c:179
+#: gio/gsocks4aproxy.c:181
msgid "The server is not a SOCKSv4 proxy server."
msgstr "Serveris nav SOCKSv4 starpniekserveris."
-#: gio/gsocks4aproxy.c:186
+#: gio/gsocks4aproxy.c:188
msgid "Connection through SOCKSv4 server was rejected"
msgstr "Savienojums caur SOCKSv4 serveri tika noraidīts"
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:338 gio/gsocks5proxy.c:348
+#: gio/gsocks5proxy.c:155 gio/gsocks5proxy.c:340 gio/gsocks5proxy.c:350
msgid "The server is not a SOCKSv5 proxy server."
msgstr "Serveris nav SOCKSv5 starpniekserveris."
-#: gio/gsocks5proxy.c:167 gio/gsocks5proxy.c:184
+#: gio/gsocks5proxy.c:169 gio/gsocks5proxy.c:186
msgid "The SOCKSv5 proxy requires authentication."
msgstr "SOCKSv5 starpnieks pieprasa autentificēšanos."
-#: gio/gsocks5proxy.c:191
+#: gio/gsocks5proxy.c:193
msgid ""
"The SOCKSv5 proxy requires an authentication method that is not supported by "
"GLib."
msgstr ""
"SOCKSv5 starpnieks pieprasa autentificēšanos metodi, ko GLib neatbalsta."
-#: gio/gsocks5proxy.c:220
+#: gio/gsocks5proxy.c:222
msgid "Username or password is too long for SOCKSv5 protocol."
msgstr "Lietotājvārds vai parole pārāk gara SOCKSv5 protokolam"
-#: gio/gsocks5proxy.c:250
+#: gio/gsocks5proxy.c:252
msgid "SOCKSv5 authentication failed due to wrong username or password."
msgstr ""
"SOCKSv5 autentificēšanās neizdevās dēļ nepareiza lietotājvārda vai paroles."
-#: gio/gsocks5proxy.c:300
+#: gio/gsocks5proxy.c:302
#, c-format
msgid "Hostname “%s” is too long for SOCKSv5 protocol"
msgstr "Datora nosaukums “%s” ir pārāk garš SOCKSv5 protokolam"
-#: gio/gsocks5proxy.c:362
+#: gio/gsocks5proxy.c:364
msgid "The SOCKSv5 proxy server uses unknown address type."
msgstr "SOCKSv5 starpnieka serveris izmanto nezināmu adreses tipu."
-#: gio/gsocks5proxy.c:369
+#: gio/gsocks5proxy.c:371
msgid "Internal SOCKSv5 proxy server error."
msgstr "Iekšēja SOCKSv5 starpnieka servera kļūda."
-#: gio/gsocks5proxy.c:375
+#: gio/gsocks5proxy.c:377
msgid "SOCKSv5 connection not allowed by ruleset."
msgstr "Noteikumu kopa neļauj SOCKSv5 savienojumu."
-#: gio/gsocks5proxy.c:382
+#: gio/gsocks5proxy.c:384
msgid "Host unreachable through SOCKSv5 server."
msgstr "Dators nav sasniedzams caur SOCKSv5 serveri."
-#: gio/gsocks5proxy.c:388
+#: gio/gsocks5proxy.c:390
msgid "Network unreachable through SOCKSv5 proxy."
msgstr "Tīkls nav sasniedzams caur SOCKSv5 serveri."
-#: gio/gsocks5proxy.c:394
+#: gio/gsocks5proxy.c:396
msgid "Connection refused through SOCKSv5 proxy."
msgstr "Savienojums atteikts caur SOCKSv5 serveri."
-#: gio/gsocks5proxy.c:400
+#: gio/gsocks5proxy.c:402
msgid "SOCKSv5 proxy does not support “connect” command."
msgstr "SOCKSv5 starpnieks neatbalsta “connect” komandu."
-#: gio/gsocks5proxy.c:406
+#: gio/gsocks5proxy.c:408
msgid "SOCKSv5 proxy does not support provided address type."
msgstr "SOCKSv5 starpnieks neatbalsta doto adreses tipu."
-#: gio/gsocks5proxy.c:412
+#: gio/gsocks5proxy.c:414
msgid "Unknown SOCKSv5 proxy error."
msgstr "Nezināma SOCKSv5 starpnieka kļūda."
-#: gio/gthemedicon.c:595
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
+#, c-format
+msgid "Failed to create pipe for communicating with child process (%s)"
+msgstr "Nevarēja izveidot programkanālu komunikācijai ar bērnprocesu (%s)"
+
+#: gio/gtestdbus.c:621
+#, c-format
+#| msgid "Seek not supported on stream"
+msgid "Pipes are not supported in this platform"
+msgstr "Uz šīs platformas koveijeri nav atbalstīti"
+
+#: gio/gthemedicon.c:597
#, c-format
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Nevar apstrādāt GThemedIcon versijas %d kodējumu"
-#: gio/gthreadedresolver.c:152
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Netika atrasta neviena derīga adrese"
-#: gio/gthreadedresolver.c:337
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Kļūda, apgriezti sameklējot “%s” — %s"
-#: gio/gthreadedresolver.c:676 gio/gthreadedresolver.c:755
-#: gio/gthreadedresolver.c:853 gio/gthreadedresolver.c:903
+#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
+#, c-format
+msgid "Error parsing DNS %s record: malformed DNS packet"
+msgstr "Kļūda, parsējot DNS %s ierakstu — slikti noformēta DNS pakete"
+
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Nav DNS ierakstu “%s” pieprasītajam tipam"
-#: gio/gthreadedresolver.c:681 gio/gthreadedresolver.c:858
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Pagaidām nevar sameklēt “%s”"
-#: gio/gthreadedresolver.c:686 gio/gthreadedresolver.c:863
-#: gio/gthreadedresolver.c:973
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Kļūda, sameklējot “%s”"
-#: gio/gtlscertificate.c:419
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
+msgid "Malformed DNS packet"
+msgstr "Slikti noformēta DNS pakete"
+
+#: gio/gthreadedresolver.c:1089
+#, c-format
+#| msgid "Failed to read from file “%s”: %s"
+msgid "Failed to parse DNS response for “%s”: "
+msgstr "Neizdevās parsēt “%s” DNS atbildi:"
+
+#: gio/gtlscertificate.c:480
msgid "No PEM-encoded private key found"
msgstr "Nav atrasts PEM iekodēta privāta atslēga"
-#: gio/gtlscertificate.c:429
+#: gio/gtlscertificate.c:490
msgid "Cannot decrypt PEM-encoded private key"
msgstr "Nevarēja atšifrēt PEM-iekodētu privāto atslēgu"
-#: gio/gtlscertificate.c:440
+#: gio/gtlscertificate.c:501
msgid "Could not parse PEM-encoded private key"
msgstr "Nevarēja parsēt PEM-iekodētu privāto atslēgu"
-#: gio/gtlscertificate.c:467
+#: gio/gtlscertificate.c:528
msgid "No PEM-encoded certificate found"
msgstr "Nav atrasts PEM-iekodēts sertifikāts"
-#: gio/gtlscertificate.c:476
+#: gio/gtlscertificate.c:537
msgid "Could not parse PEM-encoded certificate"
msgstr "Nevarēja parsēt PEM-iekodētu sertifikātu"
-#: gio/gtlscertificate.c:832
+#: gio/gtlscertificate.c:800
+#| msgid "This GTlsBackend does not support creating PKCS #11 certificates"
+msgid "The current TLS backend does not support PKCS #12"
+msgstr "Pašreizējā TLS aizmugure neatbalsta PKCS #12"
+
+#: gio/gtlscertificate.c:1017
msgid "This GTlsBackend does not support creating PKCS #11 certificates"
msgstr "Šis GTlsBackend neatbalsta PKCS #11 sertifikātu izveidošanu"
-#: gio/gtlspassword.c:111
+#: gio/gtlspassword.c:113
msgid ""
"This is the last chance to enter the password correctly before your access "
"is locked out."
@@ -4186,7 +4314,7 @@ msgstr ""
#. Translators: This is not the 'This is the last chance' string. It is
#. * displayed when more than one attempt is allowed.
-#: gio/gtlspassword.c:115
+#: gio/gtlspassword.c:117
msgid ""
"Several passwords entered have been incorrect, and your access will be "
"locked out after further failures."
@@ -4194,11 +4322,16 @@ msgstr ""
"Vairākas ievadītās paroles ir bijušas nepareizas, un jūs tiksiet izslēgts "
"pēc turpmākām neveiksmēm."
-#: gio/gtlspassword.c:117
+#: gio/gtlspassword.c:119
msgid "The password entered is incorrect."
msgstr "Ievadītā parole ir nepareiza."
-#: gio/gunixconnection.c:166 gio/gunixconnection.c:579
+#: gio/gunixconnection.c:127
+#| msgid "Setting attribute %s not supported"
+msgid "Sending FD is not supported"
+msgstr "FD sūtīšana nav atbalstīta"
+
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
@@ -4206,11 +4339,11 @@ msgstr[0] "Gaidīja 1 kontroles ziņojumu, saņēma %d"
msgstr[1] "Gaidīja 1 kontroles ziņojumu, saņēma %d"
msgstr[2] "Gaidīja 1 kontroles ziņojumu, saņēma %d"
-#: gio/gunixconnection.c:182 gio/gunixconnection.c:591
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Negaidīts palīgdatu tips"
-#: gio/gunixconnection.c:200
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
@@ -4218,107 +4351,112 @@ msgstr[0] "Gaidīja vienu fd, bet saņēma %d\n"
msgstr[1] "Gaidīja vienu fd, bet saņēma %d\n"
msgstr[2] "Gaidīja vienu fd, bet saņēma %d\n"
-#: gio/gunixconnection.c:219
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Saņemts nederīgs fd"
-#: gio/gunixconnection.c:363
+#: gio/gunixconnection.c:242
+#| msgid "Setting attribute %s not supported"
+msgid "Receiving FD is not supported"
+msgstr "FD saņemšana nav atbalstīta"
+
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Kļūda, sūtot rekvizītus: "
-#: gio/gunixconnection.c:520
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Kļūda, pārbaudot, vai SO_PASSCRED ir aktivēts ligzdai — %s"
-#: gio/gunixconnection.c:536
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Kļūda, aktivējot SO_PASSCRED — %s"
-#: gio/gunixconnection.c:565
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Tikai gaidīts saņemt vienu baitu, lai saņemtu rekvizītus, bet nolasīja nulle "
"baitu"
-#: gio/gunixconnection.c:605
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Negaida kontroles ziņojumu, bet saņēma %d"
-#: gio/gunixconnection.c:630
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Kļūda, deaktivējot SO_PASSCRED — %s"
-#: gio/gunixinputstream.c:357 gio/gunixinputstream.c:378
+#: gio/gunixinputstream.c:359 gio/gunixinputstream.c:380
#, c-format
msgid "Error reading from file descriptor: %s"
msgstr "Kļūda, nolasot datnes deskriptoru — %s"
-#: gio/gunixinputstream.c:411 gio/gunixoutputstream.c:520
-#: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
+#: gio/gunixinputstream.c:413 gio/gunixoutputstream.c:522
+#: gio/gwin32inputstream.c:219 gio/gwin32outputstream.c:206
#, c-format
msgid "Error closing file descriptor: %s"
msgstr "Kļūda, aizverot datnes deskriptoru — %s"
-#: gio/gunixmounts.c:2785 gio/gunixmounts.c:2838
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Datņu sistēmas sakne"
-#: gio/gunixoutputstream.c:357 gio/gunixoutputstream.c:377
-#: gio/gunixoutputstream.c:464 gio/gunixoutputstream.c:484
-#: gio/gunixoutputstream.c:630
+#: gio/gunixoutputstream.c:359 gio/gunixoutputstream.c:379
+#: gio/gunixoutputstream.c:466 gio/gunixoutputstream.c:486
+#: gio/gunixoutputstream.c:632
#, c-format
msgid "Error writing to file descriptor: %s"
msgstr "Kļūda, rakstot datnes deskriptorā — %s"
-#: gio/gunixsocketaddress.c:244
+#: gio/gunixsocketaddress.c:253
msgid "Abstract UNIX domain socket addresses not supported on this system"
msgstr "Abstraktas UNIX domēna ligzdas uz šīs sistēmas nav atbalstītas"
-#: gio/gvolume.c:438
+#: gio/gvolume.c:440
msgid "volume doesn’t implement eject"
msgstr "sējums neatbalsta izgrūšanu"
#. Translators: This is an error
#. * message for volume objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gvolume.c:515
+#: gio/gvolume.c:517
msgid "volume doesn’t implement eject or eject_with_operation"
msgstr "sējums neatbalsta izgrūšanu vai eject_with_operation"
-#: gio/gwin32inputstream.c:185
+#: gio/gwin32inputstream.c:187
#, c-format
msgid "Error reading from handle: %s"
msgstr "Kļūda, lasot no tura — %s"
-#: gio/gwin32inputstream.c:232 gio/gwin32outputstream.c:219
+#: gio/gwin32inputstream.c:234 gio/gwin32outputstream.c:221
#, c-format
msgid "Error closing handle: %s"
msgstr "Kļūda, aizverot turi — %s"
-#: gio/gwin32outputstream.c:172
+#: gio/gwin32outputstream.c:174
#, c-format
msgid "Error writing to handle: %s"
msgstr "Kļūda, rakstot turī — %s"
-#: gio/gzlibcompressor.c:394 gio/gzlibdecompressor.c:347
+#: gio/gzlibcompressor.c:396 gio/gzlibdecompressor.c:349
msgid "Not enough memory"
msgstr "Nepietiek atmiņas"
-#: gio/gzlibcompressor.c:401 gio/gzlibdecompressor.c:354
+#: gio/gzlibcompressor.c:403 gio/gzlibdecompressor.c:356
#, c-format
msgid "Internal error: %s"
msgstr "Iekšēja kļūda — %s"
-#: gio/gzlibcompressor.c:414 gio/gzlibdecompressor.c:368
+#: gio/gzlibcompressor.c:416 gio/gzlibdecompressor.c:370
msgid "Need more input"
msgstr "Vajag vairāk ievades"
-#: gio/gzlibdecompressor.c:340
+#: gio/gzlibdecompressor.c:342
msgid "Invalid compressed data"
msgstr "Nederīgi saspiestie dati"
@@ -4346,153 +4484,148 @@ msgstr "Palaist dbus servisu"
msgid "Wrong args\n"
msgstr "Nepareizi parametri\n"
-#: glib/gbookmarkfile.c:777
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Negaidīts atribūts “%s” elementam “%s”"
-#: glib/gbookmarkfile.c:788 glib/gbookmarkfile.c:868 glib/gbookmarkfile.c:878
-#: glib/gbookmarkfile.c:991
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Atribūts “%s” elementam “%s” netika atrasts"
-#: glib/gbookmarkfile.c:1200 glib/gbookmarkfile.c:1265
-#: glib/gbookmarkfile.c:1329 glib/gbookmarkfile.c:1339
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Negaidīta birka “%s”, tika gaidīt birka “%s”"
-#: glib/gbookmarkfile.c:1225 glib/gbookmarkfile.c:1239
-#: glib/gbookmarkfile.c:1307 glib/gbookmarkfile.c:1353
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Negaidīta birka “%s” iekš “%s”"
-#: glib/gbookmarkfile.c:1633
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Nederīgs datums/laiks “%s” grāmatzīmes datnē"
-#: glib/gbookmarkfile.c:1836
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Nav atrasts derīga grāmatzīmes datne datu mapēs"
-#: glib/gbookmarkfile.c:2037
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Grāmatzīme ar URI “%s” jau eksistē"
-#: glib/gbookmarkfile.c:2086 glib/gbookmarkfile.c:2244
-#: glib/gbookmarkfile.c:2329 glib/gbookmarkfile.c:2409
-#: glib/gbookmarkfile.c:2494 glib/gbookmarkfile.c:2628
-#: glib/gbookmarkfile.c:2761 glib/gbookmarkfile.c:2896
-#: glib/gbookmarkfile.c:2938 glib/gbookmarkfile.c:3035
-#: glib/gbookmarkfile.c:3156 glib/gbookmarkfile.c:3350
-#: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3710
-#: glib/gbookmarkfile.c:3799 glib/gbookmarkfile.c:3888
-#: glib/gbookmarkfile.c:4007
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Nav atrasta grāmatzīme URI “%s”"
-#: glib/gbookmarkfile.c:2418
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Nav definēts MIME tips grāmatzīmē URI “%s”"
-#: glib/gbookmarkfile.c:2503
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Nav definēti privātie karogi grāmatzīmēs URI “%s”"
-#: glib/gbookmarkfile.c:3044
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "Nav iestatītas grupas grāmatzīmēs URI “%s”"
-#: glib/gbookmarkfile.c:3512 glib/gbookmarkfile.c:3720
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Neviena lietotne ar nosaukumu “%s” nav reģistrējusi “%s” grāmatzīmi"
-#: glib/gbookmarkfile.c:3743
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Neizdevās izvērst exec rindu “%s” ar URI “%s”"
-#: glib/gconvert.c:468
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Neattēlojama rakstzīme konversijas ievadē"
-#: glib/gconvert.c:495 glib/gutf8.c:871 glib/gutf8.c:1083 glib/gutf8.c:1220
-#: glib/gutf8.c:1324
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Daļēja simbolu secība ievades beigās"
-#: glib/gconvert.c:764
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Nevar pārveidot atkāpšanos “%s” uz rakstzīmju kopu “%s”"
-#: glib/gconvert.c:936
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Iegults NUL baits konversijas ievadē"
-#: glib/gconvert.c:957
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Iegults NUL baits konversijas izvadē"
-#: glib/gconvert.c:1688
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "URI “%s” nav absolūtais URI, lietojot “file” shēmu"
-#: glib/gconvert.c:1698
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "Lokālās datnes URI “%s” nedrīkst saturēt “#”"
-
-#: glib/gconvert.c:1715
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "URI “%s” nav pareizs"
-#: glib/gconvert.c:1727
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Resursdatora nosaukuma URI “%s” nav pareizs"
-#: glib/gconvert.c:1743
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "URI “%s” satur nepareizi veidotas atsoļa rakstzīmes"
-#: glib/gconvert.c:1815
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Ceļa nosaukums “%s” nav absolūts ceļš"
#. Translators: this is the preferred format for expressing the date and the time
-#: glib/gdatetime.c:226
+#: glib/gdatetime.c:228
msgctxt "GDateTime"
msgid "%a %b %e %H:%M:%S %Y"
msgstr "%A, %Y. gada %e. %B, plkst. %H un %M"
#. Translators: this is the preferred format for expressing the date
-#: glib/gdatetime.c:229
+#: glib/gdatetime.c:231
msgctxt "GDateTime"
msgid "%m/%d/%y"
msgstr "%d.%m.%Y"
#. Translators: this is the preferred format for expressing the time
-#: glib/gdatetime.c:232
+#: glib/gdatetime.c:234
msgctxt "GDateTime"
msgid "%H:%M:%S"
msgstr "%H:%M:%S"
#. Translators: this is the preferred format for expressing 12 hour time
-#: glib/gdatetime.c:235
+#: glib/gdatetime.c:237
msgctxt "GDateTime"
msgid "%I:%M:%S %p"
msgstr "%I:%M:%S %p"
@@ -4513,62 +4646,62 @@ msgstr "%I:%M:%S %p"
#. * non-European) there is no difference between the standalone and
#. * complete date form.
#.
-#: glib/gdatetime.c:274
+#: glib/gdatetime.c:276
msgctxt "full month name"
msgid "January"
msgstr "Janvāris"
-#: glib/gdatetime.c:276
+#: glib/gdatetime.c:278
msgctxt "full month name"
msgid "February"
msgstr "Februāris"
-#: glib/gdatetime.c:278
+#: glib/gdatetime.c:280
msgctxt "full month name"
msgid "March"
msgstr "Marts"
-#: glib/gdatetime.c:280
+#: glib/gdatetime.c:282
msgctxt "full month name"
msgid "April"
msgstr "Aprīlis"
-#: glib/gdatetime.c:282
+#: glib/gdatetime.c:284
msgctxt "full month name"
msgid "May"
msgstr "Maijs"
-#: glib/gdatetime.c:284
+#: glib/gdatetime.c:286
msgctxt "full month name"
msgid "June"
msgstr "Jūnijs"
-#: glib/gdatetime.c:286
+#: glib/gdatetime.c:288
msgctxt "full month name"
msgid "July"
msgstr "Jūlijs"
-#: glib/gdatetime.c:288
+#: glib/gdatetime.c:290
msgctxt "full month name"
msgid "August"
msgstr "Augusts"
-#: glib/gdatetime.c:290
+#: glib/gdatetime.c:292
msgctxt "full month name"
msgid "September"
msgstr "Septembris"
-#: glib/gdatetime.c:292
+#: glib/gdatetime.c:294
msgctxt "full month name"
msgid "October"
msgstr "Oktobris"
-#: glib/gdatetime.c:294
+#: glib/gdatetime.c:296
msgctxt "full month name"
msgid "November"
msgstr "Novembris"
-#: glib/gdatetime.c:296
+#: glib/gdatetime.c:298
msgctxt "full month name"
msgid "December"
msgstr "Decembris"
@@ -4590,132 +4723,132 @@ msgstr "Decembris"
#. * other platform. Here are abbreviated month names in a form
#. * appropriate when they are used standalone.
#.
-#: glib/gdatetime.c:328
+#: glib/gdatetime.c:330
msgctxt "abbreviated month name"
msgid "Jan"
msgstr "Jan"
-#: glib/gdatetime.c:330
+#: glib/gdatetime.c:332
msgctxt "abbreviated month name"
msgid "Feb"
msgstr "Feb"
-#: glib/gdatetime.c:332
+#: glib/gdatetime.c:334
msgctxt "abbreviated month name"
msgid "Mar"
msgstr "Mar"
-#: glib/gdatetime.c:334
+#: glib/gdatetime.c:336
msgctxt "abbreviated month name"
msgid "Apr"
msgstr "Apr"
-#: glib/gdatetime.c:336
+#: glib/gdatetime.c:338
msgctxt "abbreviated month name"
msgid "May"
msgstr "Mai"
-#: glib/gdatetime.c:338
+#: glib/gdatetime.c:340
msgctxt "abbreviated month name"
msgid "Jun"
msgstr "Jūn"
-#: glib/gdatetime.c:340
+#: glib/gdatetime.c:342
msgctxt "abbreviated month name"
msgid "Jul"
msgstr "Jūl"
-#: glib/gdatetime.c:342
+#: glib/gdatetime.c:344
msgctxt "abbreviated month name"
msgid "Aug"
msgstr "Aug"
-#: glib/gdatetime.c:344
+#: glib/gdatetime.c:346
msgctxt "abbreviated month name"
msgid "Sep"
msgstr "Sep"
-#: glib/gdatetime.c:346
+#: glib/gdatetime.c:348
msgctxt "abbreviated month name"
msgid "Oct"
msgstr "Oct"
-#: glib/gdatetime.c:348
+#: glib/gdatetime.c:350
msgctxt "abbreviated month name"
msgid "Nov"
msgstr "Nov"
-#: glib/gdatetime.c:350
+#: glib/gdatetime.c:352
msgctxt "abbreviated month name"
msgid "Dec"
msgstr "Dec"
-#: glib/gdatetime.c:365
+#: glib/gdatetime.c:367
msgctxt "full weekday name"
msgid "Monday"
msgstr "Pirmdiena"
-#: glib/gdatetime.c:367
+#: glib/gdatetime.c:369
msgctxt "full weekday name"
msgid "Tuesday"
msgstr "Otrdiena"
-#: glib/gdatetime.c:369
+#: glib/gdatetime.c:371
msgctxt "full weekday name"
msgid "Wednesday"
msgstr "Trešdiena"
-#: glib/gdatetime.c:371
+#: glib/gdatetime.c:373
msgctxt "full weekday name"
msgid "Thursday"
msgstr "Ceturdiena"
-#: glib/gdatetime.c:373
+#: glib/gdatetime.c:375
msgctxt "full weekday name"
msgid "Friday"
msgstr "Piektdiena"
-#: glib/gdatetime.c:375
+#: glib/gdatetime.c:377
msgctxt "full weekday name"
msgid "Saturday"
msgstr "Sestdiena"
-#: glib/gdatetime.c:377
+#: glib/gdatetime.c:379
msgctxt "full weekday name"
msgid "Sunday"
msgstr "Svētdiena"
-#: glib/gdatetime.c:392
+#: glib/gdatetime.c:394
msgctxt "abbreviated weekday name"
msgid "Mon"
msgstr "Pr"
-#: glib/gdatetime.c:394
+#: glib/gdatetime.c:396
msgctxt "abbreviated weekday name"
msgid "Tue"
msgstr "Ot"
-#: glib/gdatetime.c:396
+#: glib/gdatetime.c:398
msgctxt "abbreviated weekday name"
msgid "Wed"
msgstr "Tr"
-#: glib/gdatetime.c:398
+#: glib/gdatetime.c:400
msgctxt "abbreviated weekday name"
msgid "Thu"
msgstr "Ct"
-#: glib/gdatetime.c:400
+#: glib/gdatetime.c:402
msgctxt "abbreviated weekday name"
msgid "Fri"
msgstr "Pk"
-#: glib/gdatetime.c:402
+#: glib/gdatetime.c:404
msgctxt "abbreviated weekday name"
msgid "Sat"
msgstr "Se"
-#: glib/gdatetime.c:404
+#: glib/gdatetime.c:406
msgctxt "abbreviated weekday name"
msgid "Sun"
msgstr "Sv"
@@ -4737,62 +4870,62 @@ msgstr "Sv"
#. * (western European, non-European) there is no difference between the
#. * standalone and complete date form.
#.
-#: glib/gdatetime.c:468
+#: glib/gdatetime.c:470
msgctxt "full month name with day"
msgid "January"
msgstr "janvāris"
-#: glib/gdatetime.c:470
+#: glib/gdatetime.c:472
msgctxt "full month name with day"
msgid "February"
msgstr "februāris"
-#: glib/gdatetime.c:472
+#: glib/gdatetime.c:474
msgctxt "full month name with day"
msgid "March"
msgstr "marts"
-#: glib/gdatetime.c:474
+#: glib/gdatetime.c:476
msgctxt "full month name with day"
msgid "April"
msgstr "aprīlis"
-#: glib/gdatetime.c:476
+#: glib/gdatetime.c:478
msgctxt "full month name with day"
msgid "May"
msgstr "maijs"
-#: glib/gdatetime.c:478
+#: glib/gdatetime.c:480
msgctxt "full month name with day"
msgid "June"
msgstr "jūnijs"
-#: glib/gdatetime.c:480
+#: glib/gdatetime.c:482
msgctxt "full month name with day"
msgid "July"
msgstr "jūlijs"
-#: glib/gdatetime.c:482
+#: glib/gdatetime.c:484
msgctxt "full month name with day"
msgid "August"
msgstr "augusts"
-#: glib/gdatetime.c:484
+#: glib/gdatetime.c:486
msgctxt "full month name with day"
msgid "September"
msgstr "septembris"
-#: glib/gdatetime.c:486
+#: glib/gdatetime.c:488
msgctxt "full month name with day"
msgid "October"
msgstr "oktobris"
-#: glib/gdatetime.c:488
+#: glib/gdatetime.c:490
msgctxt "full month name with day"
msgid "November"
msgstr "novembris"
-#: glib/gdatetime.c:490
+#: glib/gdatetime.c:492
msgctxt "full month name with day"
msgid "December"
msgstr "decembris"
@@ -4814,84 +4947,84 @@ msgstr "decembris"
#. * month names almost ready to copy and paste here. In other systems
#. * due to a bug the result is incorrect in some languages.
#.
-#: glib/gdatetime.c:555
+#: glib/gdatetime.c:557
msgctxt "abbreviated month name with day"
msgid "Jan"
msgstr "janv."
-#: glib/gdatetime.c:557
+#: glib/gdatetime.c:559
msgctxt "abbreviated month name with day"
msgid "Feb"
msgstr "febr."
-#: glib/gdatetime.c:559
+#: glib/gdatetime.c:561
msgctxt "abbreviated month name with day"
msgid "Mar"
msgstr "marts"
-#: glib/gdatetime.c:561
+#: glib/gdatetime.c:563
msgctxt "abbreviated month name with day"
msgid "Apr"
msgstr "apr."
-#: glib/gdatetime.c:563
+#: glib/gdatetime.c:565
msgctxt "abbreviated month name with day"
msgid "May"
msgstr "maijs"
-#: glib/gdatetime.c:565
+#: glib/gdatetime.c:567
msgctxt "abbreviated month name with day"
msgid "Jun"
msgstr "jūn."
-#: glib/gdatetime.c:567
+#: glib/gdatetime.c:569
msgctxt "abbreviated month name with day"
msgid "Jul"
msgstr "jūl."
-#: glib/gdatetime.c:569
+#: glib/gdatetime.c:571
msgctxt "abbreviated month name with day"
msgid "Aug"
msgstr "aug."
-#: glib/gdatetime.c:571
+#: glib/gdatetime.c:573
msgctxt "abbreviated month name with day"
msgid "Sep"
msgstr "sept."
-#: glib/gdatetime.c:573
+#: glib/gdatetime.c:575
msgctxt "abbreviated month name with day"
msgid "Oct"
msgstr "okt."
-#: glib/gdatetime.c:575
+#: glib/gdatetime.c:577
msgctxt "abbreviated month name with day"
msgid "Nov"
msgstr "nov."
-#: glib/gdatetime.c:577
+#: glib/gdatetime.c:579
msgctxt "abbreviated month name with day"
msgid "Dec"
msgstr "dec."
#. Translators: 'before midday' indicator
-#: glib/gdatetime.c:594
+#: glib/gdatetime.c:596
msgctxt "GDateTime"
msgid "AM"
msgstr "AM"
#. Translators: 'after midday' indicator
-#: glib/gdatetime.c:597
+#: glib/gdatetime.c:599
msgctxt "GDateTime"
msgid "PM"
msgstr "PM"
-#: glib/gdir.c:156
+#: glib/gdir.c:158
#, c-format
msgid "Error opening directory “%s”: %s"
msgstr "Kļūda, atverot direktoriju “%s” — %s"
-#: glib/gfileutils.c:737 glib/gfileutils.c:829
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
@@ -4899,106 +5032,106 @@ msgstr[0] "Nevarēja piešķirt %lu baitu, lai nolasītu datni “%s”"
msgstr[1] "Nevarēja atrast %lu baitus, lai nolasītu datni “%s”"
msgstr[2] "Nevarēja atrast %lu baitus, lai nolasītu datni “%s”"
-#: glib/gfileutils.c:754
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Kļūda, nolasot datni “%s” — %s"
-#: glib/gfileutils.c:790
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Datne “%s” ir pārāk liela"
-#: glib/gfileutils.c:854
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Neizdevās nolasīt no datnes “%s” — %s"
-#: glib/gfileutils.c:904 glib/gfileutils.c:979 glib/gfileutils.c:1468
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Neizdevās atvērt datni “%s” — %s"
-#: glib/gfileutils.c:917
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Neizdevās dabūt datnes “%s” atribūtus — fstat() neizdevās — %s"
-#: glib/gfileutils.c:948
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Neizdevās atvērt “%s” — fdopen() neizdevās — %s"
-#: glib/gfileutils.c:1049
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "Neizdevās pārsaukt datni “%s” uz “%s” — g_rename() neizdevās — %s"
-#: glib/gfileutils.c:1175
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Neizdevās rakstīt datnē “%s” — write() neizdevās — %s"
-#: glib/gfileutils.c:1196
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Neizdevās rakstīt datnē “%s” — fsync() neizdevās — %s"
-#: glib/gfileutils.c:1357 glib/gfileutils.c:1772
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Neizdevās izveidot datni “%s” — %s"
-#: glib/gfileutils.c:1402
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "Nevarēja izdzēst esošo datni “%s” — g_unlink() neizdevās — %s"
-#: glib/gfileutils.c:1737
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Veidne “%s” ir nepareiza, nedrīkstētu saturēt “%s”"
-#: glib/gfileutils.c:1750
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Veidne “%s” nesatur XXXXXX"
-#: glib/gfileutils.c:2310 glib/gfileutils.c:2339
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Neizdevās nolasīt simbolisko saiti “%s” — %s"
-#: glib/giochannel.c:1405
+#: glib/giochannel.c:1408
#, c-format
msgid "Could not open converter from “%s” to “%s”: %s"
msgstr "Nevarēja atvērt pārveidotāju no “%s” uz “%s” — %s"
-#: glib/giochannel.c:1758
+#: glib/giochannel.c:1761
msgid "Can’t do a raw read in g_io_channel_read_line_string"
msgstr "Neizdevās izpildīt jēllasīšanu iekš g_io_channel_read_line_string"
-#: glib/giochannel.c:1805 glib/giochannel.c:2063 glib/giochannel.c:2150
+#: glib/giochannel.c:1808 glib/giochannel.c:2066 glib/giochannel.c:2153
msgid "Leftover unconverted data in read buffer"
msgstr "Pāpalikušie nepārveidotie dati nolasīšanas buferī"
-#: glib/giochannel.c:1886 glib/giochannel.c:1963
+#: glib/giochannel.c:1889 glib/giochannel.c:1966
msgid "Channel terminates in a partial character"
msgstr "Kanāls pārtrūkst daļējā rakstzīmē"
-#: glib/giochannel.c:1949
+#: glib/giochannel.c:1952
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Neizdevās izpildīt jēllasīšanu iekš g_io_channel_read_to_end"
-#: glib/gkeyfile.c:790
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Meklēšanas mapēs nevarēja atrast derīgu atslēgu"
-#: glib/gkeyfile.c:827
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Nav parasta datne"
-#: glib/gkeyfile.c:1282
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5006,50 +5139,51 @@ msgstr ""
"Atslēgu datne satur rindu “%s”, kura nav atslēgas vērtības pāris, grupa vai "
"komentārs"
-#: glib/gkeyfile.c:1339
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Nederīgs grupas nosaukums — %s"
-#: glib/gkeyfile.c:1361
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Atslēgu datne nesākas ar grupu"
-#: glib/gkeyfile.c:1387
+#: glib/gkeyfile.c:1402
#, c-format
-msgid "Invalid key name: %s"
-msgstr "Nederīgs atslēgas nosaukums — %s"
+#| msgid "Invalid key name: %s"
+msgid "Invalid key name: %.*s"
+msgstr "Nederīgs atslēgas nosaukums — %.*s"
-#: glib/gkeyfile.c:1414
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Atslēgu datne satur neatbalstītu kodējumu “%s”"
-#: glib/gkeyfile.c:1663 glib/gkeyfile.c:1836 glib/gkeyfile.c:3289
-#: glib/gkeyfile.c:3353 glib/gkeyfile.c:3483 glib/gkeyfile.c:3615
-#: glib/gkeyfile.c:3761 glib/gkeyfile.c:3996 glib/gkeyfile.c:4063
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Atslēgu datnei nav grupa “%s”"
-#: glib/gkeyfile.c:1791
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Atslēgu datnei nav atslēgas “%s” grupā “%s”"
-#: glib/gkeyfile.c:1953 glib/gkeyfile.c:2069
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "Atslēgu datne satur atslēgu “%s” ar vērtību “%s” kas nav UTF-8"
-#: glib/gkeyfile.c:1973 glib/gkeyfile.c:2089 glib/gkeyfile.c:2531
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr ""
"Atslēgu datne satur atslēgu “%s”. kurai ir vērtība, kuru nevar interpretēt."
-#: glib/gkeyfile.c:2749 glib/gkeyfile.c:3118
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5058,51 +5192,51 @@ msgstr ""
"Atslēgu datne satur atslēgu “%s” grupā “%s” kurai ir vērtība, ko nevar "
"interpretēt."
-#: glib/gkeyfile.c:2827 glib/gkeyfile.c:2904
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Atslēgai “%s” grupā “%s” ir vērtība “%s”, kur bija jābūt %s"
-#: glib/gkeyfile.c:4306
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "Atslēgu datne satur atsoļa rakstzīme rindas beigās"
-#: glib/gkeyfile.c:4328
+#: glib/gkeyfile.c:4378
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Atslēgu datne satur nederīgu atsoļa sekvenci “%s”"
-#: glib/gkeyfile.c:4472
+#: glib/gkeyfile.c:4530
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Vērtību “%s” nevar interpretēt kā skaitli."
-#: glib/gkeyfile.c:4486
+#: glib/gkeyfile.c:4544
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Veselā skaitļa “%s” vērtība ir ārpus apgabala"
-#: glib/gkeyfile.c:4519
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Vērtību “%s” nevar interpretēt kā peldošo komatu."
-#: glib/gkeyfile.c:4558
+#: glib/gkeyfile.c:4616
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Vērtību “%s” nevar interpretēt kā Būla vērtību."
-#: glib/gmappedfile.c:129
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr "Nevarēja dabūt datnes “%s%s%s%s” atribūtus — fstat() neizdevās — %s"
-#: glib/gmappedfile.c:195
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Neizdevās kartēt %s%s%s%s — mmap() neizdevās — %s"
-#: glib/gmappedfile.c:262
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Neizdevās atvērt datni “%s” — open() neizdevās — %s"
@@ -5321,297 +5455,239 @@ msgstr "Dokuments negaidīti beidzās aizverošajā birkā neatvērtam elementam
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr "Dokuments negaidīti izbeidzās komentārā vai apstrādes instrukcijā"
-#: glib/goption.c:873
+#: glib/goption.c:875
msgid "[OPTION…]"
msgstr "[OPCIJA…]"
-#: glib/goption.c:989
+#: glib/goption.c:991
msgid "Help Options:"
msgstr "Palīdzības opcijas:"
-#: glib/goption.c:990
+#: glib/goption.c:992
msgid "Show help options"
msgstr "Rādīt palīdzības opcijas"
-#: glib/goption.c:996
+#: glib/goption.c:998
msgid "Show all help options"
msgstr "Rādīt visas palīdzības opcijas"
-#: glib/goption.c:1059
+#: glib/goption.c:1061
msgid "Application Options:"
msgstr "Lietotnes opcijas:"
-#: glib/goption.c:1061
+#: glib/goption.c:1063
msgid "Options:"
msgstr "Opcijas:"
-#: glib/goption.c:1125 glib/goption.c:1195
+#: glib/goption.c:1127 glib/goption.c:1197
#, c-format
msgid "Cannot parse integer value “%s” for %s"
msgstr "Nevar apstrādāt veselā skaitļa vērtību “%s” priekš %s"
-#: glib/goption.c:1135 glib/goption.c:1203
+#: glib/goption.c:1137 glib/goption.c:1205
#, c-format
msgid "Integer value “%s” for %s out of range"
msgstr "Veselā skaitļa vērtība “%s” priekš %s ir ārpus apgabala"
-#: glib/goption.c:1160
+#: glib/goption.c:1162
#, c-format
msgid "Cannot parse double value “%s” for %s"
msgstr "Nevar apstrādāt dubulto vērtību “%s” priekš %s"
-#: glib/goption.c:1168
+#: glib/goption.c:1170
#, c-format
msgid "Double value “%s” for %s out of range"
msgstr "Dubultā vērtība “%s” priekš %s ir ārpus apgabala"
-#: glib/goption.c:1460 glib/goption.c:1539
+#: glib/goption.c:1462 glib/goption.c:1541
#, c-format
msgid "Error parsing option %s"
msgstr "Kļūda, parsējot opciju %s"
-#: glib/goption.c:1561 glib/goption.c:1674
+#: glib/goption.c:1563 glib/goption.c:1676
#, c-format
msgid "Missing argument for %s"
msgstr "Trūkst %s arguments"
-#: glib/goption.c:2185
+#: glib/goption.c:2186
#, c-format
msgid "Unknown option %s"
msgstr "Nezināma opcija %s"
-#: glib/gregex.c:255
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "bojāts objekts"
-#: glib/gregex.c:257
-msgid "internal error or corrupted object"
-msgstr "Iekšējā kļūda vai bojāts objekts"
-
-#: glib/gregex.c:259
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "beigusies atmiņa"
-#: glib/gregex.c:264
-msgid "backtracking limit reached"
-msgstr "atpakaļ izsekošanas limits ir sasniegts"
+#: glib/gregex.c:497
+msgid "internal error"
+msgstr "iekšēja kļūda"
-#: glib/gregex.c:276 glib/gregex.c:284
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "raksts satur elementus, kurus neatbalsta daļējā atbilstība"
-#: glib/gregex.c:278
-msgid "internal error"
-msgstr "iekšēja kļūda"
-
-#: glib/gregex.c:286
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr "atpakaļ atsauces kā nosacījumus neatbalsta daļējā atbilstība"
-#: glib/gregex.c:295
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "rekursiju limits ir sasniegts"
-#: glib/gregex.c:297
-msgid "invalid combination of newline flags"
-msgstr "nederīga jauno rindu karogu kombinācija"
-
-#: glib/gregex.c:299
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "slikta nobīde"
-#: glib/gregex.c:301
-msgid "short utf8"
-msgstr "īss utf8"
-
-#: glib/gregex.c:303
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "rekursijas cikls"
-#: glib/gregex.c:307
+#. should not happen in GRegex since we check modes before each match
+#: glib/gregex.c:514
+msgid "matching mode is requested that was not compiled for JIT"
+msgstr "tika pieprasīts atbilsmes režīms, kas nav nokompilēts JIT"
+
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "nezināma kļūda"
-#: glib/gregex.c:327
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ raksta beigās"
-#: glib/gregex.c:330
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c raksta beigās"
-#: glib/gregex.c:333
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "pēc \\ seko neatpazīta rakstzīme"
-#: glib/gregex.c:336
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "skaitļi nav pareizā secībā {} kvantorā"
-#: glib/gregex.c:339
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "skaitlis pārāk liels {} kvantorā"
-#: glib/gregex.c:342
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "trūkst beigu “]” rakstzīmju klasei"
-#: glib/gregex.c:345
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "nederīga atsoļu sekvence rakstzīmju klasē"
-#: glib/gregex.c:348
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "rakstzīmju klasē apgabals ir ārpus secības"
-#: glib/gregex.c:351
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "nav ko atkārtot"
-#: glib/gregex.c:355
-msgid "unexpected repeat"
-msgstr "negaidīta atkārtošanās"
-
-#: glib/gregex.c:358
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "neatpazīta rakstzīme pēc (? vai (?-"
-#: glib/gregex.c:361
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX nosauktās klases ir atbalstītas tikai klasēs"
-#: glib/gregex.c:364
+#: glib/gregex.c:602
+msgid "POSIX collating elements are not supported"
+msgstr "POSIX savāktie elementi nav atbalstīti"
+
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "trūkst beigu )"
-#: glib/gregex.c:367
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "atsauce uz neesošu apakšrakstu"
-#: glib/gregex.c:370
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "trūkst ) pēc komentāra"
-#: glib/gregex.c:373
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "regulārā izteiksme ir pārāk gara"
-#: glib/gregex.c:376
-msgid "failed to get memory"
-msgstr "neizdevās iegūt atmiņu"
-
-#: glib/gregex.c:380
-msgid ") without opening ("
-msgstr ") bez atverošās ("
-
-#: glib/gregex.c:384
-msgid "code overflow"
-msgstr "koda pārpilde"
-
-#: glib/gregex.c:388
-msgid "unrecognized character after (?<"
-msgstr "neatpazīta rakstzīme pēc (?<"
+#: glib/gregex.c:624
+msgid "malformed number or name after (?("
+msgstr "slikti formatēts skaitlis vai nosaukums pēc (?("
-#: glib/gregex.c:391
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "lookbehind pieņēmums nav fiksēta garuma"
-#: glib/gregex.c:394
-msgid "malformed number or name after (?("
-msgstr "slikti formatēts skaitlis vai nosaukums pēc (?("
-
-#: glib/gregex.c:397
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "nosacījuma grupa satur vairāk kā divus zarus"
-#: glib/gregex.c:400
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "pēc (?( tiek sagaidīts pieņēmums"
-#. translators: '(?R' and '(?[+-]digits' are both meant as (groups of)
-#. * sequences here, '(?-54' would be an example for the second group.
-#.
-#: glib/gregex.c:407
-msgid "(?R or (?[+-]digits must be followed by )"
-msgstr "pēc (?R vai (?[+-]digits ir jāseko )"
+#: glib/gregex.c:640
+msgid "a numbered reference must not be zero"
+msgstr "skaitliska atsauce nevar būt nulle"
-#: glib/gregex.c:410
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "nezināms POSIX klases nosaukums"
-#: glib/gregex.c:413
-msgid "POSIX collating elements are not supported"
-msgstr "POSIX savāktie elementi nav atbalstīti"
-
-#: glib/gregex.c:416
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "rakstzīmes vērtība \\x{...} sekvencē ir pārāk liela"
-#: glib/gregex.c:419
-msgid "invalid condition (?(0)"
-msgstr "nederīgs nosacījums (?(0)"
-
-#: glib/gregex.c:422
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C nav atļauts lookbehind pieņēmumā"
-#: glib/gregex.c:429
-msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
-msgstr "atsoļi \\L, \\l, \\N{nosaukums}, \\U un \\u nav atbalstīti"
-
-#: glib/gregex.c:432
-msgid "recursive call could loop indefinitely"
-msgstr "rekursīvais izsaukums varētu cikloties bezgalīgi"
-
-#: glib/gregex.c:436
-msgid "unrecognized character after (?P"
-msgstr "neatpazīta rakstzīme pēc (?P"
-
-#: glib/gregex.c:439
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "trūkst nobeiguma apakšraksta nosaukumā"
-#: glib/gregex.c:442
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "divi nosaukti apakšraksti ir ar vienādiem nosaukumiem"
-#: glib/gregex.c:445
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "slikti formatēta \\P vai \\p sekvence"
-#: glib/gregex.c:448
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "nezināms īpašības nosaukums pēc \\P vai \\p"
-#: glib/gregex.c:451
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "apakšraksta nosaukums ir pārāk liels (maksimums ir 32 rakstzīmes)"
-#: glib/gregex.c:454
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "pārāk daudz nosauktu apakšrakstu (maksimums ir 10 000)"
-#: glib/gregex.c:457
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "astotnieku vērtība ir lielāka nekā \\377"
-#: glib/gregex.c:461
-msgid "overran compiling workspace"
-msgstr "pārtērēta kompilēšanas darba telpa"
-
-#: glib/gregex.c:465
-msgid "previously-checked referenced subpattern not found"
-msgstr "iepriekš pārbaudīts norādītais apakšraksts nav atrasts"
-
-#: glib/gregex.c:468
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "DEFINE grupa satur vairāk kā vienu zaru"
-#: glib/gregex.c:471
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "nekonsekventas NEWLINE opcijas"
-#: glib/gregex.c:474
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5619,589 +5695,772 @@ msgstr ""
"pēc \\g neseko nosaukums iekavās, leņķa iekavās vai pēdiņās vai vienkāršs "
"skaitlis"
-#: glib/gregex.c:478
-msgid "a numbered reference must not be zero"
-msgstr "skaitliska atsauce nevar būt nulle"
-
-#: glib/gregex.c:481
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "arguments nav atļauts priekš (*ACCEPT), (*FAIL) vai (*COMMIT)"
-#: glib/gregex.c:484
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) nav atpazīts"
-#: glib/gregex.c:487
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "skaitlis ir pārāk liels"
-#: glib/gregex.c:490
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "trūkst apakšraksta nosaukums pēc (?&"
-#: glib/gregex.c:493
-msgid "digit expected after (?+"
-msgstr "tika gaidīts cipars pēc (?+"
-
-#: glib/gregex.c:496
-msgid "] is an invalid data character in JavaScript compatibility mode"
-msgstr "] ir nederīga datu rakstzīme JavaScript savietojamības režīmā"
-
-#: glib/gregex.c:499
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "dažādi nosaukumi apakšrakstiem ir ar vienādiem numuriem nav atļauti"
-#: glib/gregex.c:502
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) jābūt ar argumentu"
-#: glib/gregex.c:505
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c jāseko ASCII rakstzīmei"
-#: glib/gregex.c:508
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr "pēc \\k neseko nosaukums iekavās, leņķa iekavās vai pēdiņās"
-#: glib/gregex.c:511
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N nav atbalstīts klasē"
-#: glib/gregex.c:514
-msgid "too many forward references"
-msgstr "pārāk daudz atsauču uz priekšu"
-
-#: glib/gregex.c:517
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "nosaukums ir pārāk garš iekš (*MARK), (*PRUNE), (*SKIP) vai (*THEN)"
-#: glib/gregex.c:520
-msgid "character value in \\u.... sequence is too large"
-msgstr "rakstzīmes vērtība \\u.... sekvencē ir pārāk liela"
+#: glib/gregex.c:738 glib/gregex.c:874
+msgid "code overflow"
+msgstr "koda pārpilde"
+
+#: glib/gregex.c:742
+msgid "unrecognized character after (?P"
+msgstr "neatpazīta rakstzīme pēc (?P"
+
+#: glib/gregex.c:746
+msgid "overran compiling workspace"
+msgstr "pārtērēta kompilēšanas darba telpa"
+
+#: glib/gregex.c:750
+msgid "previously-checked referenced subpattern not found"
+msgstr "iepriekš pārbaudīts norādītais apakšraksts nav atrasts"
-#: glib/gregex.c:743 glib/gregex.c:1988
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Kļūda, kamēr meklē atbilstības regulārajai izteiksmei %s — %s"
-#: glib/gregex.c:1321
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "PCRE bibliotēka ir kompilēta bez UTF8 atbalsta"
-#: glib/gregex.c:1325
-msgid "PCRE library is compiled without UTF8 properties support"
-msgstr "PCRE bibliotēka ir kompilēta bez UTF8 īpašību atbalsta"
-
-#: glib/gregex.c:1333
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "PCRE bibliotēka ir kompilēta ar UTF8 īpašību atbalstu"
-#: glib/gregex.c:1362
-#, c-format
-msgid "Error while optimizing regular expression %s: %s"
-msgstr "Kļūda, optimizējot regulāro izteiksmi %s — %s"
-
-#: glib/gregex.c:1442
+#: glib/gregex.c:1860
#, c-format
-msgid "Error while compiling regular expression %s at char %d: %s"
-msgstr "Kļūda, kompilējot regulāro izteiksmi %s pie rakstzīmes %d — %s"
+#| msgid "Error while compiling regular expression %s at char %d: %s"
+msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
+msgstr "Kļūda, kompilējot regulāro izteiksmi “%s” pie rakstzīmes %s — %s"
-#: glib/gregex.c:2427
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "tika gaidīts heksadecimālais cipars vai “}”"
-#: glib/gregex.c:2443
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "tika gaidīts heksadecimālais cipars"
-#: glib/gregex.c:2483
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "simboliskajā norādē trūkst “<”"
-#: glib/gregex.c:2492
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "nepabeigta simboliskā norāde"
-#: glib/gregex.c:2499
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "simboliskās norādes garums ir nulle"
-#: glib/gregex.c:2510
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "tika gaidīts cipars"
-#: glib/gregex.c:2528
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "neatļauta simboliskā norāde"
-#: glib/gregex.c:2591
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "noklīdis beigu “\\”"
-#: glib/gregex.c:2595
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "nezināma atsoļa sekvence"
-#: glib/gregex.c:2605
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Kļūda, apstrādājot aizvietošanas tekstu “%s” pie rakstzīmes %lu — %s"
-#: glib/gshell.c:94
+#: glib/gshell.c:98
msgid "Quoted text doesn’t begin with a quotation mark"
msgstr "Citētais teksts nesākas ar jautājuma zīmi"
-#: glib/gshell.c:184
+#: glib/gshell.c:188
msgid "Unmatched quotation mark in command line or other shell-quoted text"
msgstr "Neatbilstoša jautājuma zīme komandrindā vai citā čaulas-citētā tekstā"
-#: glib/gshell.c:580
+#: glib/gshell.c:594
#, c-format
msgid "Text ended just after a “\\” character. (The text was “%s”)"
msgstr "Teksts beidzās tieši pēc “\\” rakstzīmes. (Teksts bija “%s”)"
-#: glib/gshell.c:587
+#: glib/gshell.c:601
#, c-format
msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
msgstr ""
"Teksts beidzās pirms atbilstošais citāts tika atrasts priekš %c. (Teksts "
"bija “%s”)"
-#: glib/gshell.c:599
+#: glib/gshell.c:613
msgid "Text was empty (or contained only whitespace)"
msgstr "Teksts bija tukšs (vai saturēja tikai tukšumus)"
-#: glib/gspawn.c:308
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Nevarēja nolasīt datus no bērnprocesa (%s)"
-#: glib/gspawn.c:458
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Negaidīta kļūda, lasot datus no bērnprocesa (%s)"
-#: glib/gspawn.c:543
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Negaidīta kļūda waitpid() (%s)"
-#: glib/gspawn.c:1152 glib/gspawn-win32.c:1407
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
-msgstr "Bērna process beidza darbu ar kodu %ld"
+msgstr "Bērnprocess beidza darbu ar kodu %ld"
-#: glib/gspawn.c:1160
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
-msgstr "Bērna process tika pārtraukts ar signālu %ld"
+msgstr "Bērnprocess tika pārtraukts ar signālu %ld"
-#: glib/gspawn.c:1167
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
-msgstr "Bērna process tika apturēts ar signālu %ld"
+msgstr "Bērnprocess tika apturēts ar signālu %ld"
-#: glib/gspawn.c:1174
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
-msgstr "Bērna process beidza darbu nenormāli"
+msgstr "Bērnprocess beidza darbu nenormāli"
-#: glib/gspawn.c:1793 glib/gspawn-win32.c:350 glib/gspawn-win32.c:358
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
-msgstr "Nevarēja nolasīt no bērna programkanāla (%s)"
+msgstr "Neizdevās nolasīt no bērna programkanāla (%s)"
-#: glib/gspawn.c:2095
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
-msgstr "Nevarēja radīt bērnprocesu “%s” (%s)"
+msgstr "Neizdevās radīt bērnprocesu “%s” (%s)"
-#: glib/gspawn.c:2212
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Neizdevās sadalīt (%s)"
-#: glib/gspawn.c:2372 glib/gspawn-win32.c:381
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
-msgstr "Nevarēja pāriet uz direktoriju “%s” (%s)"
+msgstr "Neizdevās pāriet uz direktoriju “%s” (%s)"
-#: glib/gspawn.c:2382
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
-msgstr "Nevarēja izpildīt bērnprocesu “%s” (%s)"
+msgstr "Neizdevās izpildīt bērnprocesu “%s” (%s)"
+
+#: glib/gspawn.c:2710
+#, c-format
+#| msgid "Failed to open file “%s”: open() failed: %s"
+msgid "Failed to open file to remap file descriptor (%s)"
+msgstr "Neizdevās atvērt datni, lai pārkartētu datnes deskriptoru (%s)"
-#: glib/gspawn.c:2392
+#: glib/gspawn.c:2718
#, c-format
-msgid "Failed to redirect output or input of child process (%s)"
-msgstr "Nevarēja novadīt bērnprocesa (%s) izvadi vai ievadi"
+#| msgid "Failed to redirect output or input of child process (%s)"
+msgid "Failed to duplicate file descriptor for child process (%s)"
+msgstr "Neizdevās dublēt datnes deskriptoru bērnprocesam (%s)"
-#: glib/gspawn.c:2401
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
-msgstr "Nevarēja sazarot bērnprocesu (%s)"
+msgstr "Neizdevās sazarot bērnprocesu (%s)"
+
+#: glib/gspawn.c:2735
+#, c-format
+#| msgid "Failed to read data from child process (%s)"
+msgid "Failed to close file descriptor for child process (%s)"
+msgstr "Neizdevās aizvērt datnes deskriptoru bērnprocesam (%s)"
-#: glib/gspawn.c:2409
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Nezināma kļūda, izpildot bērnprocesu “%s”"
-#: glib/gspawn.c:2433
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
-"Nevarēja nolasīt pietiekami daudz datus no bērna pid programkanāla (%s)"
+"Neizdevās nolasīt pietiekami daudz datus no bērna pid programkanāla (%s)"
-#: glib/gspawn-win32.c:294
+#: glib/gspawn-private.h:134
+#, c-format
+#| msgid "Invalid seek request"
+msgid "Invalid source FDs argument"
+msgstr "Nederīgs avots datņu deskriptora argumentam"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
-msgstr "Nevarēja nolasīt datus no bērnprocesa"
+msgstr "Neizdevās nolasīt datus no bērnprocesa"
-#: glib/gspawn-win32.c:311
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
-msgid "Failed to create pipe for communicating with child process (%s)"
-msgstr "Nevarēja izveidot programkanālu komunikācijai ar bērnprocesu (%s)"
+msgid "Failed to execute child process (%s)"
+msgstr "Neizdevās izpildīt bērnprocesu (%s)"
-#: glib/gspawn-win32.c:387 glib/gspawn-win32.c:392 glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:519
#, c-format
-msgid "Failed to execute child process (%s)"
-msgstr "Nevarēja izpildīt bērnprocesu (%s)"
+#| msgid "Failed to fork child process (%s)"
+msgid "Failed to dup() in child process (%s)"
+msgstr "Neizdevās dup() bērnprocesā (%s)"
-#: glib/gspawn-win32.c:461
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Nederīgs programmas nosaukums — %s"
-#: glib/gspawn-win32.c:471 glib/gspawn-win32.c:779
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Nederīga virkne argumenta vektorā pie %d — %s"
-#: glib/gspawn-win32.c:482 glib/gspawn-win32.c:794
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Nederīga virkne vidē — %s"
-#: glib/gspawn-win32.c:775
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Nederīga darba mape — %s"
-#: glib/gspawn-win32.c:837
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Neizdevās izpildīt palīga programmu (%s)"
-#: glib/gspawn-win32.c:1064
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
msgstr ""
"Negaidīta kļūda iekš g_io_channel_win32_poll(), lasot datus no bērnprocesa"
-#: glib/gstrfuncs.c:3338 glib/gstrfuncs.c:3440
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Tukša virkne nav skaitlis"
-#: glib/gstrfuncs.c:3362
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "“%s” nav skaitlis ar zīmi"
-#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3476
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Skaitlis “%s” ir ārpus robežām [%s, %s]"
-#: glib/gstrfuncs.c:3466
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "“%s” nav skaitlis bez zīmes"
-#: glib/guri.c:315
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "Nederīgs %-kodējums iekš URI"
-#: glib/guri.c:332
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Neatļauta rakstzīme iekš URI"
-#: glib/guri.c:366
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Ne-UTF-8 rakstzīmes iekš URI"
-#: glib/guri.c:546
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Nederīga IPv6 adrese “%.*s” iekš URI"
-#: glib/guri.c:601
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Nepareizi iekodēta IP adrese “%.*s” iekš URI"
-#: glib/guri.c:613
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Nepareizi internacionalizēts resursdatora nosaukums “%.*s” iekš URI"
-#: glib/guri.c:645 glib/guri.c:657
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Nevarēja parsēt portu “%.*s” iekš URI"
-#: glib/guri.c:664
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "URI ports “%.*s” ir ārpus apgabala"
-#: glib/guri.c:1224 glib/guri.c:1288
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "URI “%s” nav absolūts URI"
-#: glib/guri.c:1230
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "URI “%s” nav resursdatora komponentes"
-#: glib/guri.c:1435
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "URI nav absolūts un netika dots bāzes URI"
-#: glib/guri.c:2213
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Trūkst “=” un parametra vērtības"
-#: glib/gutf8.c:817
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Neizdevās piešķirt atmiņu"
-#: glib/gutf8.c:950
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Rakstzīme nav UTF-8 apgabalā"
-#: glib/gutf8.c:1051 glib/gutf8.c:1060 glib/gutf8.c:1190 glib/gutf8.c:1199
-#: glib/gutf8.c:1338 glib/gutf8.c:1435
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Nepareiza secība konversijas ievadē"
-#: glib/gutf8.c:1349 glib/gutf8.c:1446
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Rakstzīme nav UTF-16 apgabalā"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2727
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
+#: glib/gutils.c:2966
+msgid "kB"
+msgstr "kB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
+#: glib/gutils.c:2968
+msgid "MB"
+msgstr "MB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
+#: glib/gutils.c:2970
+msgid "GB"
+msgstr "GB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
+#: glib/gutils.c:2972
+msgid "TB"
+msgstr "TB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
+#: glib/gutils.c:2974
+msgid "PB"
+msgstr "PB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
+#: glib/gutils.c:2976
+msgid "EB"
+msgstr "EB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
+#: glib/gutils.c:2980
+msgid "KiB"
+msgstr "KiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
+#: glib/gutils.c:2982
+msgid "MiB"
+msgstr "MiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
+#: glib/gutils.c:2984
+msgid "GiB"
+msgstr "GiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
+#: glib/gutils.c:2986
+msgid "TiB"
+msgstr "TiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
+#: glib/gutils.c:2988
+msgid "PiB"
+msgstr "PiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
+#: glib/gutils.c:2990
+msgid "EiB"
+msgstr "EiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
+#: glib/gutils.c:2994
+msgid "kb"
+msgstr "kb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
+#: glib/gutils.c:2996
+msgid "Mb"
+msgstr "Mb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
+#: glib/gutils.c:2998
+msgid "Gb"
+msgstr "Gb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
+#: glib/gutils.c:3000
+msgid "Tb"
+msgstr "Tb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
+#: glib/gutils.c:3002
+msgid "Pb"
+msgstr "Pb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
+#: glib/gutils.c:3004
+msgid "Eb"
+msgstr "Eb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
+#: glib/gutils.c:3008
+msgid "Kib"
+msgstr "Kib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
+#: glib/gutils.c:3010
+msgid "Mib"
+msgstr "Mib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
+#: glib/gutils.c:3012
+msgid "Gib"
+msgstr "Gib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
+#: glib/gutils.c:3014
+msgid "Tib"
+msgstr "Tib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
+#: glib/gutils.c:3016
+msgid "Pib"
+msgstr "Pib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
+#: glib/gutils.c:3018
+msgid "Eib"
+msgstr "Eib"
+
+#: glib/gutils.c:3056
+#| msgid "%u byte"
+#| msgid_plural "%u bytes"
+msgid "byte"
+msgid_plural "bytes"
+msgstr[0] "baits"
+msgstr[1] "baiti"
+msgstr[2] "baitu"
+
+#: glib/gutils.c:3060
+#| msgid "%u bit"
+#| msgid_plural "%u bits"
+msgid "bit"
+msgid_plural "bits"
+msgstr[0] "bits"
+msgstr[1] "biti"
+msgstr[2] "bitu"
+
+#. Translators: The "%u" is replaced with the size value, like "13"; it could
+#. * be part of "13 bytes", but only the number is requested this time.
+#: glib/gutils.c:3068
+#, c-format
+msgctxt "format-size"
+msgid "%u"
+msgstr "%u"
+
+#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
+#: glib/gutils.c:3073
+#, c-format
+msgctxt "format-size"
+msgid "%u %s"
+msgstr "%u %s"
+
+#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
+#. * be part of "13.0 MB", but only the number is requested this time.
+#: glib/gutils.c:3109
+#, c-format
+#| msgid "%.1f KB"
+msgctxt "format-size"
+msgid "%.1f"
+msgstr "%.1f"
+
+#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
+#. * the unit symbol. An example: "13.0 MB"
+#: glib/gutils.c:3115
+#, c-format
+#| msgid "%.1f kB"
+msgctxt "format-size"
+msgid "%.1f %s"
+msgstr "%.1f %s"
+
+#. Translators: the %s in "%s bytes" will always be replaced by a number.
+#: glib/gutils.c:3155
#, c-format
-msgid "%.1f kB"
-msgstr "%.1f kB"
+msgid "%s byte"
+msgid_plural "%s bytes"
+msgstr[0] "%s baits"
+msgstr[1] "%s baiti"
+msgstr[2] "%s baitu"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2729
+#. Translators: the %s in "%s bits" will always be replaced by a number.
+#: glib/gutils.c:3160
#, c-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
+msgid "%s bit"
+msgid_plural "%s bits"
+msgstr[0] "%s bits"
+msgstr[1] "%s biti"
+msgstr[2] "%s bitu"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2731
+#: glib/gutils.c:3201
#, c-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
+msgid "%u byte"
+msgid_plural "%u bytes"
+msgstr[0] "%u baits"
+msgstr[1] "%u baiti"
+msgstr[2] "%u baitu"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2733
+#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
+#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
+#. * compatibility. Users will not see this string unless a program is using this deprecated function.
+#. * Please translate as literally as possible.
+#.
+#: glib/gutils.c:3214
#, c-format
-msgid "%.1f TB"
-msgstr "%.1f TB"
+msgid "%.1f KB"
+msgstr "%.1f KB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2735
+#: glib/gutils.c:3219
#, c-format
-msgid "%.1f PB"
-msgstr "%.1f PB"
+msgid "%.1f MB"
+msgstr "%.1f MB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2737
+#: glib/gutils.c:3224
#, c-format
-msgid "%.1f EB"
-msgstr "%.1f EB"
+msgid "%.1f GB"
+msgstr "%.1f GB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2741
+#: glib/gutils.c:3229
#, c-format
-msgid "%.1f KiB"
-msgstr "%.1f KiB"
+msgid "%.1f TB"
+msgstr "%.1f TB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2743
+#: glib/gutils.c:3234
#, c-format
-msgid "%.1f MiB"
-msgstr "%.1f MiB"
+msgid "%.1f PB"
+msgstr "%.1f PB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2745
+#: glib/gutils.c:3239
#, c-format
-msgid "%.1f GiB"
-msgstr "%.1f GiB"
+msgid "%.1f EB"
+msgstr "%.1f EB"
+
+#~ msgid "GApplication options"
+#~ msgstr "GApplication opcijas"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2747
#, c-format
-msgid "%.1f TiB"
-msgstr "%.1f TiB"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "Lokālās datnes URI “%s” nedrīkst saturēt “#”"
+
+#~ msgid "internal error or corrupted object"
+#~ msgstr "Iekšējā kļūda vai bojāts objekts"
+
+#~ msgid "backtracking limit reached"
+#~ msgstr "atpakaļ izsekošanas limits ir sasniegts"
+
+#~ msgid "invalid combination of newline flags"
+#~ msgstr "nederīga jauno rindu karogu kombinācija"
+
+#~ msgid "short utf8"
+#~ msgstr "īss utf8"
+
+#~ msgid "unexpected repeat"
+#~ msgstr "negaidīta atkārtošanās"
+
+#~ msgid "failed to get memory"
+#~ msgstr "neizdevās iegūt atmiņu"
+
+#~ msgid ") without opening ("
+#~ msgstr ") bez atverošās ("
+
+#~ msgid "unrecognized character after (?<"
+#~ msgstr "neatpazīta rakstzīme pēc (?<"
+
+#~ msgid "(?R or (?[+-]digits must be followed by )"
+#~ msgstr "pēc (?R vai (?[+-]digits ir jāseko )"
+
+#~ msgid "invalid condition (?(0)"
+#~ msgstr "nederīgs nosacījums (?(0)"
+
+#~ msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
+#~ msgstr "atsoļi \\L, \\l, \\N{nosaukums}, \\U un \\u nav atbalstīti"
+
+#~ msgid "recursive call could loop indefinitely"
+#~ msgstr "rekursīvais izsaukums varētu cikloties bezgalīgi"
+
+#~ msgid "digit expected after (?+"
+#~ msgstr "tika gaidīts cipars pēc (?+"
+
+#~ msgid "] is an invalid data character in JavaScript compatibility mode"
+#~ msgstr "] ir nederīga datu rakstzīme JavaScript savietojamības režīmā"
+
+#~ msgid "too many forward references"
+#~ msgstr "pārāk daudz atsauču uz priekšu"
+
+#~ msgid "character value in \\u.... sequence is too large"
+#~ msgstr "rakstzīmes vērtība \\u.... sekvencē ir pārāk liela"
+
+#~ msgid "PCRE library is compiled without UTF8 properties support"
+#~ msgstr "PCRE bibliotēka ir kompilēta bez UTF8 īpašību atbalsta"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2749
#, c-format
-msgid "%.1f PiB"
-msgstr "%.1f PiB"
+#~ msgid "Error while optimizing regular expression %s: %s"
+#~ msgstr "Kļūda, optimizējot regulāro izteiksmi %s — %s"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2751
#, c-format
-msgid "%.1f EiB"
-msgstr "%.1f EiB"
+#~ msgid "%.1f MB"
+#~ msgstr "%.1f MB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2755
#, c-format
-msgid "%.1f kb"
-msgstr "%.1f kb"
+#~ msgid "%.1f GB"
+#~ msgstr "%.1f GB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2757
#, c-format
-msgid "%.1f Mb"
-msgstr "%.1f Mb"
+#~ msgid "%.1f TB"
+#~ msgstr "%.1f TB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2759
#, c-format
-msgid "%.1f Gb"
-msgstr "%.1f Gb"
+#~ msgid "%.1f PB"
+#~ msgstr "%.1f PB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2761
#, c-format
-msgid "%.1f Tb"
-msgstr "%.1f Tb"
+#~ msgid "%.1f EB"
+#~ msgstr "%.1f EB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2763
#, c-format
-msgid "%.1f Pb"
-msgstr "%.1f Pb"
+#~ msgid "%.1f KiB"
+#~ msgstr "%.1f KiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2765
#, c-format
-msgid "%.1f Eb"
-msgstr "%.1f Eb"
+#~ msgid "%.1f MiB"
+#~ msgstr "%.1f MiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2769
#, c-format
-msgid "%.1f Kib"
-msgstr "%.1f Kib"
+#~ msgid "%.1f GiB"
+#~ msgstr "%.1f GiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2771
#, c-format
-msgid "%.1f Mib"
-msgstr "%.1f Mib"
+#~ msgid "%.1f TiB"
+#~ msgstr "%.1f TiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2773
#, c-format
-msgid "%.1f Gib"
-msgstr "%.1f Gib"
+#~ msgid "%.1f PiB"
+#~ msgstr "%.1f PiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2775
#, c-format
-msgid "%.1f Tib"
-msgstr "%.1f Tib"
+#~ msgid "%.1f EiB"
+#~ msgstr "%.1f EiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2777
#, c-format
-msgid "%.1f Pib"
-msgstr "%.1f Pib"
+#~ msgid "%.1f kb"
+#~ msgstr "%.1f kb"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2779
#, c-format
-msgid "%.1f Eib"
-msgstr "%.1f Eib"
+#~ msgid "%.1f Mb"
+#~ msgstr "%.1f Mb"
-#: glib/gutils.c:2813 glib/gutils.c:2930
#, c-format
-msgid "%u byte"
-msgid_plural "%u bytes"
-msgstr[0] "%u baits"
-msgstr[1] "%u baiti"
-msgstr[2] "%u baitu"
+#~ msgid "%.1f Gb"
+#~ msgstr "%.1f Gb"
-#: glib/gutils.c:2817
#, c-format
-msgid "%u bit"
-msgid_plural "%u bits"
-msgstr[0] "%u bits"
-msgstr[1] "%u biti"
-msgstr[2] "%u bitu"
+#~ msgid "%.1f Tb"
+#~ msgstr "%.1f Tb"
-#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:2884
#, c-format
-msgid "%s byte"
-msgid_plural "%s bytes"
-msgstr[0] "%s baits"
-msgstr[1] "%s baiti"
-msgstr[2] "%s baitu"
+#~ msgid "%.1f Pb"
+#~ msgstr "%.1f Pb"
-#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:2889
#, c-format
-msgid "%s bit"
-msgid_plural "%s bits"
-msgstr[0] "%s bits"
-msgstr[1] "%s biti"
-msgstr[2] "%s bitu"
+#~ msgid "%.1f Eb"
+#~ msgstr "%.1f Eb"
-#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
-#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
-#. * compatibility. Users will not see this string unless a program is using this deprecated function.
-#. * Please translate as literally as possible.
-#.
-#: glib/gutils.c:2943
#, c-format
-msgid "%.1f KB"
-msgstr "%.1f KB"
+#~ msgid "%.1f Kib"
+#~ msgstr "%.1f Kib"
-#: glib/gutils.c:2948
#, c-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
+#~ msgid "%.1f Mib"
+#~ msgstr "%.1f Mib"
-#: glib/gutils.c:2953
#, c-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
+#~ msgid "%.1f Gib"
+#~ msgstr "%.1f Gib"
-#: glib/gutils.c:2958
#, c-format
-msgid "%.1f TB"
-msgstr "%.1f TB"
+#~ msgid "%.1f Tib"
+#~ msgstr "%.1f Tib"
-#: glib/gutils.c:2963
#, c-format
-msgid "%.1f PB"
-msgstr "%.1f PB"
+#~ msgid "%.1f Pib"
+#~ msgstr "%.1f Pib"
-#: glib/gutils.c:2968
#, c-format
-msgid "%.1f EB"
-msgstr "%.1f EB"
+#~ msgid "%.1f Eib"
+#~ msgstr "%.1f Eib"
#~ msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
#~ msgstr "Nevarēja ielādēt /var/lib/dbus/machine-id vai /etc/machine-id: "
diff --git a/po/pa.po b/po/pa.po
index 82cc4c67c..a20015d88 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -6,148 +6,169 @@
# Amanpreet Singh Alam <amanliunx@netscapet.net>, 2004.
# ASB <aalam@users.sf.net>, 2004, 2005, 2006, 2007.
# Amanpreet Singh Alam <aalam@users.sf.net>, 2008.
-# A S Alam <aalam@users.sf.net>, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2019.
+# A S Alam <aalam@users.sf.net>, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2019, 2023.
msgid ""
msgstr ""
"Project-Id-Version: glib.HEAD\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2019-09-07 11:26+0000\n"
-"PO-Revision-Date: 2019-09-08 22:39-0700\n"
-"Last-Translator: A S Alam <alam.yellow@gmail.com>\n"
+"POT-Creation-Date: 2023-08-21 10:39+0000\n"
+"PO-Revision-Date: 2023-08-29 18:54-0700\n"
+"Last-Translator: A S Alam <aalam@satluj.org>\n"
"Language-Team: Punjabi <punjabi-users@lists.sf.net>\n"
"Language: pa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 19.04.2\n"
+"X-Generator: Lokalize 23.04.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: gio/gapplication.c:500
-msgid "GApplication options"
-msgstr "ਜੀ-ਐਪਲੀਕੇਸ਼ਨ ਚੋਣ"
+#: gio/gappinfo.c:339
+#| msgid "Setting attribute %s not supported"
+msgid "Setting default applications not supported yet"
+msgstr "ਡਿਫਾਲਟ ਐਪਲੀਕੇਸ਼ਨ ਸੈਟਿੰਗ ਹਾਲੇ ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
-#: gio/gapplication.c:500
+#: gio/gappinfo.c:372
+#| msgid "Setting attribute %s not supported"
+msgid "Setting application as last used for type not supported yet"
+msgstr ""
+
+#: gio/gappinfo.c:814
+#, c-format
+#| msgid "No default applications for “%s”\n"
+msgid "Failed to find default application for content type ‘%s’"
+msgstr "‘%s’ ਸਮੱਗਰੀ ਕਿਸਮ ਲਈ ਡਿਫ਼ਾਲਟ ਐਪਲੀਕੇਸ਼ਨ ਲੱਭਣ ਲਈ ਅਸਫ਼ਲ ਹੈ"
+
+#: gio/gappinfo.c:874
+#, c-format
+#| msgid "No default applications for “%s”\n"
+msgid "Failed to find default application for URI Scheme ‘%s’"
+msgstr "‘%s’ URI ਸਕੀਮ ਲਈ ਡਿਫ਼ਾਲਟ ਐਪਲੀਕੇਸ਼ਨ ਲੱਭਣ ਲਈ ਅਸਫ਼ਲ ਹੈ"
+
+#: gio/gapplication.c:506
+#| msgid "Application Options:"
+msgid "GApplication Options:"
+msgstr "ਜੀ-ਐਪਲੀਕੇਸ਼ਨ ਚੋਣਾਂ:"
+
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "ਜੀ-ਐਪਲੀਕੇਸ਼ਨ ਚੋਣ ਵੇਖਾਓ"
-#: gio/gapplication.c:545
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr "GApplication ਸੇਵਾ ਮੋਡ ਦਿਓ (ਡੀ-ਬੱਸ ਸੇਵਾ ਫਾਇਲਾਂ ਤੋਂ ਵਰਤੋਂ)"
-#: gio/gapplication.c:557
-#, fuzzy
+#: gio/gapplication.c:563
#| msgid "List applications"
msgid "Override the application’s ID"
-msgstr "ਐਪਲੀਕੇਸ਼ਨ ਸੂਚੀ"
+msgstr "ਐਪਲੀਕੇਸ਼ਨ ਦੀ ID ਅਣਡਿੱਠਾ ਕਰੋ"
-#: gio/gapplication.c:569
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr ""
-#: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:493 gio/gsettings-tool.c:567
+#: gio/gapplication-tool.c:47 gio/gapplication-tool.c:48 gio/gio-tool.c:229
+#: gio/gresource-tool.c:496 gio/gsettings-tool.c:586
msgid "Print help"
msgstr "ਮੱਦਦ ਪਰਿੰਟ ਕਰੋ"
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:494 gio/gresource-tool.c:562
+#: gio/gapplication-tool.c:49 gio/gresource-tool.c:497 gio/gresource-tool.c:565
msgid "[COMMAND]"
msgstr "[COMMAND]"
-#: gio/gapplication-tool.c:49 gio/gio-tool.c:228
+#: gio/gapplication-tool.c:51 gio/gio-tool.c:230
msgid "Print version"
msgstr "ਵਰਜਨ ਛਾਪੋ"
-#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:573
+#: gio/gapplication-tool.c:52 gio/gsettings-tool.c:592
msgid "Print version information and exit"
msgstr "ਵਰਜਨ ਜਾਣਕਾਰੀ ਛਾਪੋ ਅਤੇ ਬੰਦ ਕਰੋ"
-#: gio/gapplication-tool.c:52
+#: gio/gapplication-tool.c:55
msgid "List applications"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਸੂਚੀ"
-#: gio/gapplication-tool.c:53
+#: gio/gapplication-tool.c:56
msgid "List the installed D-Bus activatable applications (by .desktop files)"
msgstr ""
"ਇੰਸਟਾਲ ਹੋਈਆਂ ਡੀ-ਬੱਸ ਸਰਗਰਮ ਕਰਨ ਯੋਗ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਸੂਚੀ (.desktop ਫਾਇਲਾਂ ਰਾਹੀਂ)"
-#: gio/gapplication-tool.c:55
+#: gio/gapplication-tool.c:59
msgid "Launch an application"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਚਲਾਓ"
-#: gio/gapplication-tool.c:56
+#: gio/gapplication-tool.c:60
msgid "Launch the application (with optional files to open)"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਚਲਾਓ (ਚੋਣਵੇਂ ਰੂਪ ਵਿੱਚ ਫਾਇਲਾਂ ਖੋਲ੍ਹ ਕੇ)"
-#: gio/gapplication-tool.c:57
-#| msgid "APPID [FILE...]"
+#: gio/gapplication-tool.c:61
msgid "APPID [FILE…]"
msgstr "APPID [FILE…]"
-#: gio/gapplication-tool.c:59
+#: gio/gapplication-tool.c:63
msgid "Activate an action"
msgstr "ਕਾਰਵਾਈ ਸਰਗਰਮ ਕਰੋ"
-#: gio/gapplication-tool.c:60
+#: gio/gapplication-tool.c:64
msgid "Invoke an action on the application"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਉੱਤੇ ਸੱਦਾ ਦਿੱਤੀ ਕਾਰਵਾਈ"
-#: gio/gapplication-tool.c:61
+#: gio/gapplication-tool.c:65
msgid "APPID ACTION [PARAMETER]"
msgstr "APPID ACTION [PARAMETER]"
-#: gio/gapplication-tool.c:63
+#: gio/gapplication-tool.c:67
msgid "List available actions"
msgstr "ਉਪਲੱਬਧ ਕਾਰਵਾਈਆਂ ਦੀ ਸੂਚੀ"
-#: gio/gapplication-tool.c:64
+#: gio/gapplication-tool.c:68
msgid "List static actions for an application (from .desktop file)"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਲਈ ਤਹਿ ਕਾਰਵਾਈਆਂ ਦੀ ਸੂਚੀ (.desktop ਫਾਇਲ ਤੋਂ)"
-#: gio/gapplication-tool.c:65 gio/gapplication-tool.c:71
+#: gio/gapplication-tool.c:69 gio/gapplication-tool.c:75
msgid "APPID"
msgstr "APPID"
-#: gio/gapplication-tool.c:70 gio/gapplication-tool.c:133 gio/gdbus-tool.c:102
-#: gio/gio-tool.c:224
+#: gio/gapplication-tool.c:74 gio/gapplication-tool.c:137 gio/gdbus-tool.c:108
+#: gio/gio-tool.c:226
msgid "COMMAND"
msgstr "COMMAND"
-#: gio/gapplication-tool.c:70
+#: gio/gapplication-tool.c:74
msgid "The command to print detailed help for"
msgstr "ਵੇਰਵੇ ਸਮੇਤ ਮੱਦਦ ਛਾਪਣ ਲਈ ਕਮਾਂਡ"
-#: gio/gapplication-tool.c:71
+#: gio/gapplication-tool.c:75
msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "ਡੀ-ਬੱਸ ਫਾਰਮੈਟ ਵਿੱਚ ਐਪਲੀਕੇਸ਼ਨ ਪਛਾਣਕਰਤਾ (ਜਿਵੇਂ ਕਿ: org.example.viewer)"
-#: gio/gapplication-tool.c:72 gio/glib-compile-resources.c:738
-#: gio/glib-compile-resources.c:744 gio/glib-compile-resources.c:772
-#: gio/gresource-tool.c:500 gio/gresource-tool.c:566
+#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
+#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FILE"
-#: gio/gapplication-tool.c:72
-#| msgid "Optional relative or relative filenames, or URIs to open"
+#: gio/gapplication-tool.c:76
msgid "Optional relative or absolute filenames, or URIs to open"
msgstr "ਖੋਲ੍ਹਣ ਲਈ ਅਨੁਸਾਰੀ ਜਾਂ ਅਸਲ ਫਾਇਲ-ਨਾਂ ਜਾਂ URI ਚੋਣਵੇਂ ਰੂਪ ਵਿੱਚ ਦਿਓ"
-#: gio/gapplication-tool.c:73
+#: gio/gapplication-tool.c:77
msgid "ACTION"
msgstr "ਐਕਸ਼ਨ"
-#: gio/gapplication-tool.c:73
+#: gio/gapplication-tool.c:77
msgid "The action name to invoke"
msgstr "ਵਾਪਿਸ ਲੈਣ ਵਾਲੀ ਕਾਰਵਾਈ ਦਾ ਨਾਂ"
-#: gio/gapplication-tool.c:74
+#: gio/gapplication-tool.c:78
msgid "PARAMETER"
msgstr "ਪੈਰਾਮੀਟਰ"
-#: gio/gapplication-tool.c:74
+#: gio/gapplication-tool.c:78
msgid "Optional parameter to the action invocation, in GVariant format"
msgstr "ਕਾਰਵਾਈ ਵਾਪਿਸ ਲੈਣ ਲਈ ਚੋਣਵਾਂ ਪੈਰਾਮੀਟਰ, GVariant ਰੂਪ ਵਿੱਚ"
-#: gio/gapplication-tool.c:96 gio/gresource-tool.c:531 gio/gsettings-tool.c:659
+#: gio/gapplication-tool.c:100 gio/gresource-tool.c:534
+#: gio/gsettings-tool.c:678
#, c-format
msgid ""
"Unknown command %s\n"
@@ -156,31 +177,27 @@ msgstr ""
"ਅਣਜਾਣ ਕਮਾਂਡ %s\n"
"\n"
-#: gio/gapplication-tool.c:101
+#: gio/gapplication-tool.c:105
msgid "Usage:\n"
msgstr "ਵਰਤੋਂ:\n"
-#: gio/gapplication-tool.c:114 gio/gresource-tool.c:556
-#: gio/gsettings-tool.c:694
+#: gio/gapplication-tool.c:118 gio/gresource-tool.c:559
+#: gio/gsettings-tool.c:713
msgid "Arguments:\n"
msgstr "ਆਰਗੂਮੈਂਟ:\n"
-#: gio/gapplication-tool.c:133 gio/gio-tool.c:224
-#| msgid "[ARGS...]"
+#: gio/gapplication-tool.c:137 gio/gio-tool.c:226
msgid "[ARGS…]"
msgstr "[ARGS…]"
-#: gio/gapplication-tool.c:134
+#: gio/gapplication-tool.c:138
#, c-format
msgid "Commands:\n"
msgstr "ਕਮਾਂਡਾਂ:\n"
#. Translators: do not translate 'help', but please translate 'COMMAND'.
-#: gio/gapplication-tool.c:146
+#: gio/gapplication-tool.c:150
#, c-format
-#| msgid ""
-#| "Use '%s help COMMAND' to get detailed help.\n"
-#| "\n"
msgid ""
"Use “%s help COMMAND” to get detailed help.\n"
"\n"
@@ -188,7 +205,7 @@ msgstr ""
"ਵੇਰਵੇ ਸਮੇਤ ਮਦਦ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ “%s help COMMAND” ਵਰਤੋਂ।\n"
"\n"
-#: gio/gapplication-tool.c:165
+#: gio/gapplication-tool.c:169
#, c-format
msgid ""
"%s command requires an application id to directly follow\n"
@@ -197,18 +214,14 @@ msgstr ""
"'%s' ਕਮਾਂਡ ਲਈ ਸਿੱਧੇ ਫਲੋਅ ਲਈ ਐਪਲੀਕੇਸ਼ਨ ਆਈਡੀ ਚਾਹੀਦਾ ਹੈ\n"
"\n"
-#: gio/gapplication-tool.c:171
+#: gio/gapplication-tool.c:175
#, c-format
-#| msgid "invalid application id: '%s'\n"
msgid "invalid application id: “%s”\n"
msgstr "ਗਲਤ ਐਪਲੀਕੇਸ਼ਨ id: “%s”\n"
#. Translators: %s is replaced with a command name like 'list-actions'
-#: gio/gapplication-tool.c:182
+#: gio/gapplication-tool.c:186
#, c-format
-#| msgid ""
-#| "'%s' takes no arguments\n"
-#| "\n"
msgid ""
"“%s” takes no arguments\n"
"\n"
@@ -216,25 +229,22 @@ msgstr ""
"“%s” ਲਈ ਕੋਈ ਆਰਗੂਮੈਂਟ ਨਹੀਂ ਚਾਹੀਦਾ ਹੈ\n"
"\n"
-#: gio/gapplication-tool.c:266
+#: gio/gapplication-tool.c:270
#, c-format
msgid "unable to connect to D-Bus: %s\n"
msgstr "%s: ਡੀ-ਬੱਸ ਨਾਲ ਕੁਨੈਕਟ ਕਰਨ ਲਈ ਅਸਮਰੱਥ\n"
-#: gio/gapplication-tool.c:286
+#: gio/gapplication-tool.c:290
#, c-format
msgid "error sending %s message to application: %s\n"
msgstr "%s ਸੁਨੇਹਾ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਭੇਜਣ ਦੌਰਾਨ ਗਲਤੀ: %s\n"
-#: gio/gapplication-tool.c:317
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "ਕਾਰਵਾਈ ਨਾਂ ਐਪਲੀਕੇਸ਼ਨ ਆਈਡੀ ਦੇਣ ਬਾਅਦ ਦਿੱਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ\n"
-#: gio/gapplication-tool.c:325
+#: gio/gapplication-tool.c:332
#, c-format
-#| msgid ""
-#| "invalid action name: '%s'\n"
-#| "action names must consist of only alphanumerics, '-' and '.'\n"
msgid ""
"invalid action name: “%s”\n"
"action names must consist of only alphanumerics, “-” and “.”\n"
@@ -242,25 +252,25 @@ msgstr ""
"ਗਲਤ ਕਾਰਵਾਈ ਨਾਂ: “%s”\n"
"ਕਾਰਵਾਈ ਨਾਂ ਵਿੱਚ ਕੇਵਲ ਵਰਣਮਾਲਾ ਅੱਖਰ, “-” ਅਤੇ “.” ਹੀ ਸਕਦੇ ਹਨ।\n"
-#: gio/gapplication-tool.c:344
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "ਕਾਰਵਾਈ ਪੈਰਾਮੀਟਰ ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s\n"
-#: gio/gapplication-tool.c:356
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "ਕਾਰਵਾਈਆਂ ਵੱਧ ਤੋਂ ਵੱਧ ਇੱਕ ਪੈਰਾਮੀਟਰ ਮਨਜ਼ੂਰ ਕਰਦੇ ਹਨ\n"
-#: gio/gapplication-tool.c:411
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "ਲਿਸਟ-ਕਾਰਵਾਈ ਕਮਾਂਡ ਕੇਵਲ ਐਪਲੀਕੇਸ਼ਨ ਆਈਡੀ ਲੈਂਦੀ ਹੈ"
-#: gio/gapplication-tool.c:421
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "%s ਐਪਲੀਕੇਸ਼ਨ ਲਈ ਡੈਸਕਟਾਪ ਫਾਇਲ ਲੱਭਣ ਲਈ ਅਸਮਰੱਥ ਹੈ\n"
-#: gio/gapplication-tool.c:466
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -269,169 +279,156 @@ msgstr ""
"ਅਣਜਾਣ ਕਮਾਂਡ: %s\n"
"\n"
-#: gio/gbufferedinputstream.c:420 gio/gbufferedinputstream.c:498
-#: gio/ginputstream.c:179 gio/ginputstream.c:379 gio/ginputstream.c:617
-#: gio/ginputstream.c:1019 gio/goutputstream.c:223 gio/goutputstream.c:1049
-#: gio/gpollableinputstream.c:205 gio/gpollableoutputstream.c:277
+#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "%s ਨੂੰ ਬਹੁਤ ਵੱਧ ਗਿਣਤੀ ਪਾਸ ਕੀਤੀ ਗਈ"
-#: gio/gbufferedinputstream.c:891 gio/gbufferedoutputstream.c:575
-#: gio/gdataoutputstream.c:562
+#: gio/gbufferedinputstream.c:893 gio/gbufferedoutputstream.c:577
+#: gio/gdataoutputstream.c:564
msgid "Seek not supported on base stream"
msgstr "ਬੇਸ ਸਟਰੀਮ ਉੱਤੇ ਸੀਕ ਸਹਿਯੋਗੀ ਨਹੀਂ"
-#: gio/gbufferedinputstream.c:937
+#: gio/gbufferedinputstream.c:940
msgid "Cannot truncate GBufferedInputStream"
msgstr "GBufferedInputStream ਨੂੰ ਛੋਟਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-#: gio/gbufferedinputstream.c:982 gio/ginputstream.c:1208 gio/giostream.c:300
-#: gio/goutputstream.c:2198
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "ਸਟਰੀਮ ਪਹਿਲਾਂ ਹੀ ਬੰਦ ਹੈ"
-#: gio/gbufferedoutputstream.c:612 gio/gdataoutputstream.c:592
+#: gio/gbufferedoutputstream.c:614 gio/gdataoutputstream.c:594
msgid "Truncate not supported on base stream"
msgstr "ਬੇਸ ਸਟਰੀਮ ਉੱਤੇ ਟਰਾਂਸਕੇਟ ਸਹਿਯੋਗੀ ਨਹੀਂ"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1871 gio/gdbusprivate.c:1409
-#: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
+#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
msgstr "ਓਪਰੇਸ਼ਨ ਰੱਦ ਕੀਤਾ ਗਿਆ"
-#: gio/gcharsetconverter.c:260
+#: gio/gcharsetconverter.c:262
msgid "Invalid object, not initialized"
msgstr "ਗਲਤ ਆਬਜੈਕਟ, ਸ਼ੁਰੂ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-#: gio/gcharsetconverter.c:281 gio/gcharsetconverter.c:309
+#: gio/gcharsetconverter.c:283 gio/gcharsetconverter.c:311
msgid "Incomplete multibyte sequence in input"
msgstr "ਇੰਪੁੱਟ ਵਿੱਚ ਅਧੂਰਾ ਮਲਟੀਬਾਈਟ ਕ੍ਰਮ"
-#: gio/gcharsetconverter.c:315 gio/gcharsetconverter.c:324
+#: gio/gcharsetconverter.c:317 gio/gcharsetconverter.c:326
msgid "Not enough space in destination"
msgstr "ਟਿਕਾਣੇ ਉੱਤੇ ਲੋੜੀਦੀ ਥਾਂ ਨਹੀਂ"
-#: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1261 glib/gconvert.c:447 glib/gconvert.c:877
-#: glib/giochannel.c:1561 glib/giochannel.c:1603 glib/giochannel.c:2450
-#: glib/gutf8.c:869 glib/gutf8.c:1322
+#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "ਬਦਲਣ ਲਈ ਦਿੱਤੀ ਸਤਰ ਵਿੱਚ ਬਾਇਟ ਦਾ ਸਰੂਪ ਠੀਕ ਨਹੀਂ ਹੈ"
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:455 glib/gconvert.c:791
-#: glib/giochannel.c:1568 glib/giochannel.c:2462
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "ਤਬਦੀਲੀ ਦੌਰਾਨ ਗਲਤੀ %s"
-#: gio/gcharsetconverter.c:445 gio/gsocket.c:1094
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "ਰੱਦਕਰਨਯੋਗ ਸ਼ੁਰੂ ਲਈ ਸਹਾਇਕ ਨਹੀਂ"
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:320 glib/giochannel.c:1389
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
-#| msgid "Conversion from character set '%s' to '%s' is not supported"
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "ਕਰੈਕਟਰ ਸਮੂਹ “%s” ਤੋਂ “%s” ਵਿੱਚ ਬਦਲਣ ਇਸ ਵੇਲੇ ਸੰਭਵ ਨਹੀਂ"
-#: gio/gcharsetconverter.c:460 glib/gconvert.c:324
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
-#| msgid "Could not open converter from '%s' to '%s'"
msgid "Could not open converter from “%s” to “%s”"
msgstr "“%s” ਤੋੱ “%s” ਵਿੱਚ ਬਦਲਣ ਵਾਲਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"
-#: gio/gcontenttype.c:452
+#: gio/gcontenttype.c:472
#, c-format
msgid "%s type"
msgstr "%s ਟਾਈਪ"
-#: gio/gcontenttype-win32.c:192
+#: gio/gcontenttype-win32.c:198
msgid "Unknown type"
msgstr "ਅਣਜਾਣ ਟਾਈਪ"
-#: gio/gcontenttype-win32.c:194
+#: gio/gcontenttype-win32.c:200
#, c-format
msgid "%s filetype"
msgstr "%s ਫਾਇਲ-ਟਾਈਪ"
-#: gio/gcredentials.c:315 gio/gcredentials.c:574
+#: gio/gcredentials.c:337
+msgid "GCredentials contains invalid data"
+msgstr ""
+
+#: gio/gcredentials.c:397 gio/gcredentials.c:688
msgid "GCredentials is not implemented on this OS"
msgstr "ਇਸ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਲਈ GCredentials ਬਣਾਇਆ ਨਹੀਂ ਗਿਆ"
-#: gio/gcredentials.c:470
+#: gio/gcredentials.c:552 gio/gcredentials.c:570
msgid "There is no GCredentials support for your platform"
msgstr "ਤੁਹਾਡੇ ਪਲੇਟਫਾਰਮ ਲਈ GCredentials ਸਹਿਯੋਗ ਨਹੀਂ ਹੈ"
-#: gio/gcredentials.c:516
+#: gio/gcredentials.c:628
msgid "GCredentials does not contain a process ID on this OS"
msgstr "ਇਸ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਲਈ GCredentials ਕਾਰਵਾਈ ਆਈਡੀ ਨਹੀਂ ਰੱਖਦਾ ਹੈ"
-#: gio/gcredentials.c:568
+#: gio/gcredentials.c:682
msgid "Credentials spoofing is not possible on this OS"
msgstr "ਇਸ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਲਈ ਸਨਦ (credential) ਧੋਖਾ ਦੇਣਾ ਸੰਭਵ ਨਹੀਂ ਹੈ"
-#: gio/gdatainputstream.c:304
+#: gio/gdatainputstream.c:306
msgid "Unexpected early end-of-stream"
msgstr "ਅਚਾਨਕ ਛੇਤੀ ਐਂਡ-ਆਫ਼-ਸਟੀਰਮ"
-#: gio/gdbusaddress.c:158 gio/gdbusaddress.c:232 gio/gdbusaddress.c:313
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
-#| msgid "Unsupported key '%s' in address entry '%s'"
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "ਐਡਰੈੱਸ ਐਂਟਰੀ ”%2$s” ਵਿੱਚ ਗ਼ੈਰ-ਸਹਾਇਕ ਕੁੰਜੀ ”%1$s”"
-#: gio/gdbusaddress.c:171
+#: gio/gdbusaddress.c:181
#, c-format
-#| msgid "Meaningless key/value pair combination in address entry '%s'"
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "ਐਡਰੈੱਸ ਐਂਟਰੀ ”%s” ਵਿੱਚ ਬਿਨ-ਕਾਰਨ ਕੁੰਜੀ ਜੋੜਾ"
-#: gio/gdbusaddress.c:180
+#: gio/gdbusaddress.c:190
#, c-format
-#| msgid ""
-#| "Address '%s' is invalid (need exactly one of path, tmpdir or abstract "
-#| "keys)"
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
"keys)"
msgstr "ਐਡਰੈੱਸ ”%s” ਗਲਤ ਹੈ (ਠੀਕ ਪਾਥ, tmpdir ਜਾਂ abstract ਕੁੰਜੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ)"
-#: gio/gdbusaddress.c:247 gio/gdbusaddress.c:328
-#, c-format
-#| msgid "Error in address '%s' - the port attribute is malformed"
-msgid "Error in address “%s” — the port attribute is malformed"
-msgstr "”%s” ਐਡਰੈੱਸ 'ਚ ਗਲਤੀ — ਪੋਰਟ ਗੁਣ ਖ਼ਰਾਬ ਹੈ"
-
-#: gio/gdbusaddress.c:258 gio/gdbusaddress.c:339
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
+#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
-#| msgid "Error in address '%s' - the family attribute is malformed"
-msgid "Error in address “%s” — the family attribute is malformed"
-msgstr "ਐਡਰੈੱਸ “%s“ ਵਿੱਚ ਗਲਤੀ - ਫੈਮਲੀ ਗੁਣ ਖ਼ਰਾਬ ਹੈ"
+#| msgid "Error in address “%s” — the port attribute is malformed"
+msgid "Error in address “%s” — the “%s” attribute is malformed"
+msgstr "”%s” ਐਡਰੈੱਸ 'ਚ ਗਲਤੀ — ”%s” ਗੁਣ ਖ਼ਰਾਬ ਹੈ"
-#: gio/gdbusaddress.c:409 gio/gdbusaddress.c:673
+#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:682
#, c-format
-#| msgid "Unknown or unsupported transport '%s' for address '%s'"
msgid "Unknown or unsupported transport “%s” for address “%s”"
msgstr "ਐਡਰੈੱਸ “%2$s“ ਲਈ ਅਣਜਾਣ ਜਾਂ ਗ਼ੈਰ-ਸਹਾਇਕ “%1$s“ ਟਰਾਂਸਪੋਰਟ"
-#: gio/gdbusaddress.c:453
+#: gio/gdbusaddress.c:467
#, c-format
-#| msgid "Address element '%s' does not contain a colon (:)"
msgid "Address element “%s” does not contain a colon (:)"
msgstr "ਐਡਰੈੱਸ ਐਲੀਮੈਂਟ “%s“ ਕਾਲਨ (:) ਨਹੀਂ ਰੱਖਦਾ ਹੈ"
-#: gio/gdbusaddress.c:462
+#: gio/gdbusaddress.c:476
#, c-format
msgid "Transport name in address element “%s” must not be empty"
msgstr ""
-#: gio/gdbusaddress.c:483
+#: gio/gdbusaddress.c:497
#, c-format
-#| msgid ""
-#| "Key/Value pair %d, '%s', in address element '%s' does not contain an "
-#| "equal sign"
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
"sign"
@@ -439,33 +436,26 @@ msgstr ""
"ਐਡਰੈੱਸ ਐਲੀਮੈਂਟ “%3$s“ ਵਿੱਚ ਕੁੰਜੀ/ਮੁੱਲ ਜੋੜਾ %1$d, “%2$s“ ਬਰਾਬਰ ਸਾਈਨ ਨਹੀਂ ਰੱਖਦਾ"
" ਹੈ"
-#: gio/gdbusaddress.c:494
-#, fuzzy, c-format
+#: gio/gdbusaddress.c:508
+#, c-format
#| msgid ""
#| "Key/Value pair %d, '%s', in address element '%s' does not contain an "
#| "equal sign"
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
msgstr ""
-"ਐਡਰੈੱਸ ਐਲੀਮੈਂਟ '%3$s' ਵਿੱਚ ਕੁੰਜੀ/ਮੁੱਲ ਜੋੜਾ %1$d, '%2$s' ਬਰਾਬਰ ਸਾਈਨ ਨਹੀਂ ਰੱਖਦਾ"
-" ਹੈ"
+"ਕੁੰਜੀ/ਮੁੱਲ ਪੇਅਰ %d, “%s”, ਐਡਰੈਸ ਭਾਗ “%s” ਵਿੱਚ ਖਾਲੀ ਕੁੰਜੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ"
-#: gio/gdbusaddress.c:508
+#: gio/gdbusaddress.c:522
#, c-format
-#| msgid ""
-#| "Error unescaping key or value in Key/Value pair %d, '%s', in address "
-#| "element '%s'"
msgid ""
"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
"“%s”"
msgstr ""
"ਐਡਰੈੱਸ ਤੱਕ “%3$s“ ਵਿੱਚ ਗਲਤ ਕੁੰਜੀ ਜਾਂ ਕੁੰਜੀ/ਮੁੱਲ ਪੇਅਰ %1$d, “%2$s“ 'ਚ ਗਲਤੀ ਹੈ"
-#: gio/gdbusaddress.c:580
+#: gio/gdbusaddress.c:590
#, c-format
-#| msgid ""
-#| "Error in address '%s' - the unix transport requires exactly one of the "
-#| "keys 'path' or 'abstract' to be set"
msgid ""
"Error in address “%s” — the unix transport requires exactly one of the keys "
"“path” or “abstract” to be set"
@@ -474,87 +464,76 @@ msgstr ""
" ਸੈੱਟ ਹੋਣੀ "
"ਚਾਹੀਦੀ ਹੈ।"
-#: gio/gdbusaddress.c:616
+#: gio/gdbusaddress.c:625
#, c-format
-#| msgid "Error in address '%s' - the host attribute is missing or malformed"
msgid "Error in address “%s” — the host attribute is missing or malformed"
msgstr "”%s” ਐਡਰੈੱਸ 'ਚ ਗਲਤੀ — ਹੋਸਟ ਗੁਣ ਮੌਜੂਦ ਨਹੀਂ ਜਾਂ ਗਲਤ ਹੈ"
-#: gio/gdbusaddress.c:630
+#: gio/gdbusaddress.c:639
#, c-format
-#| msgid "Error in address '%s' - the port attribute is missing or malformed"
msgid "Error in address “%s” — the port attribute is missing or malformed"
msgstr "”%s” ਐਡਰੈੱਸ 'ਚ ਗਲਤੀ — ਪੋਰਟ ਗੁਣ ਮੌਜੂਦ ਨਹੀਂ ਜਾਂ ਗਲਤ ਹੈ"
-#: gio/gdbusaddress.c:644
+#: gio/gdbusaddress.c:653
#, c-format
-#| msgid ""
-#| "Error in address '%s' - the noncefile attribute is missing or malformed"
msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
msgstr "“%s“ ਐਡਰੈੱਸ 'ਚ ਗਲਤੀ — noncefile ਗੁਣ ਮੌਜੂਦ ਨਹੀਂ ਜਾਂ ਗਲਤ ਹੈ"
-#: gio/gdbusaddress.c:665
+#: gio/gdbusaddress.c:674
msgid "Error auto-launching: "
msgstr "ਆਟੋ-ਚਲਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: "
-#: gio/gdbusaddress.c:718
+#: gio/gdbusaddress.c:727
#, c-format
-#| msgid "Error opening nonce file '%s': %s"
msgid "Error opening nonce file “%s”: %s"
msgstr "nonce ਫਾਇਲ “%s“ ਖੋਲ੍ਹਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gdbusaddress.c:737
+#: gio/gdbusaddress.c:746
#, c-format
-#| msgid "Error reading from nonce file '%s': %s"
msgid "Error reading from nonce file “%s”: %s"
msgstr "“%s“ nonce ਫਾਇਲ ਤੋਂ ਪੜ੍ਹਨ 'ਚ ਗਲਤੀ: %s"
-#: gio/gdbusaddress.c:746
+#: gio/gdbusaddress.c:755
#, c-format
-#| msgid "Error reading from nonce file '%s', expected 16 bytes, got %d"
msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
msgstr "“%s“ nonce ਫਾਇਲ ਤੋਂ ਪੜ੍ਹਨ 'ਚ ਗਲਤੀ, ਲੋੜ ਸੀ ੧੬ ਬਾਈਟ ਦੀ, ਮਿਲੇ %d"
-#: gio/gdbusaddress.c:764
+#: gio/gdbusaddress.c:773
#, c-format
-#| msgid "Error writing contents of nonce file '%s' to stream:"
msgid "Error writing contents of nonce file “%s” to stream:"
msgstr "nonce ਫਾਇਲ “%s“ ਦੀ ਸਮੱਗਰੀ ਸਟਰੀਮ ਉੱਤੇ ਲਿਖਣ ਦੌਰਾਨ ਗਲਤੀ:"
-#: gio/gdbusaddress.c:973
+#: gio/gdbusaddress.c:988
msgid "The given address is empty"
msgstr "ਦਿੱਤਾ ਐਡਰੈੱਸ ਖਾਲੀ ਹੈ"
-#: gio/gdbusaddress.c:1086
-#, c-format
-msgid "Cannot spawn a message bus when setuid"
+#: gio/gdbusaddress.c:1101
+#, fuzzy, c-format
+#| msgid "Cannot spawn a message bus when setuid"
+msgid "Cannot spawn a message bus when AT_SECURE is set"
msgstr "ਬਿਨਾਂ setuid ਦੇ ਸੁਨੇਹਾ ਬਸ ਸਪੈਵ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ:"
-#: gio/gdbusaddress.c:1093
+#: gio/gdbusaddress.c:1108
msgid "Cannot spawn a message bus without a machine-id: "
msgstr "ਬਿਨਾਂ ਮਸ਼ੀਨ-id ਦੇ ਸੁਨੇਹਾ ਬਸ ਸਪੈਵਨ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ: "
-#: gio/gdbusaddress.c:1100
+#: gio/gdbusaddress.c:1115
#, c-format
msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
msgstr ""
-#: gio/gdbusaddress.c:1142
+#: gio/gdbusaddress.c:1157
#, c-format
-#| msgid "Error spawning command line '%s': "
msgid "Error spawning command line “%s”: "
msgstr "“%s“ ਕਮਾਂਡ ਲਾਈਨ ਸਵੈਪ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: "
-#: gio/gdbusaddress.c:1211
+#: gio/gdbusaddress.c:1226
#, c-format
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr "ਸ਼ੈਸ਼ਨ ਬਸ ਐਡਰੈੱਸ ਜਾਣਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ (ਇਸ OS ਵਲੋਂ ਬਣਾਇਆ ਨਹੀਂ ਹੈ)"
-#: gio/gdbusaddress.c:1349 gio/gdbusconnection.c:7178
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7326
#, c-format
-#| msgid ""
-#| "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment "
-#| "variable - unknown value '%s'"
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
"— unknown value “%s”"
@@ -563,7 +542,7 @@ msgstr ""
" — "
"ਅਣਜਾਣ ਮੁੱਲ “%s“"
-#: gio/gdbusaddress.c:1358 gio/gdbusconnection.c:7187
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7335
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -572,250 +551,244 @@ msgstr ""
" ਸੈੱਟ ਨਹੀਂ "
"ਹੈ"
-#: gio/gdbusaddress.c:1368
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "ਅਣਜਾਣ ਬਸ ਟਾਈਪ %d"
-#: gio/gdbusauth.c:293
+#: gio/gdbusauth.c:294
msgid "Unexpected lack of content trying to read a line"
msgstr "ਲਾਈਨ ਦੀ ਸਮੱਗਰੀ ਪੜ੍ਹਨ ਦੌਰਾਨ ਅਚਾਨਕ ਸਮੱਗਰੀ ਦੀ ਕਿਸਮ ਆਈ"
-#: gio/gdbusauth.c:337
+#: gio/gdbusauth.c:338
msgid "Unexpected lack of content trying to (safely) read a line"
msgstr "ਲਾਈਨ ਪੜ੍ਹਨ ਦੀ ਕੋਸ਼ਿਸ਼ (ਸੁਰੱਖਿਅਤ) ਅਚਾਨਕ ਸਮੱਗਰੀ ਦੀ ਕਿਸਮ ਆਈ"
-#: gio/gdbusauth.c:481
+#: gio/gdbusauth.c:482
#, c-format
msgid ""
"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
msgstr "ਸਭ ਉਪਲੱਬਧ ਪਰਮਾਣਿਤ ਢੰਗ ਖਤਮ (ਵਰਤੇ: %s) (ਉਪਲੱਬਧ: %s)"
-#: gio/gdbusauth.c:1144
+#: gio/gdbusauth.c:1045
+#| msgid "Unexpected lack of content trying to read a line"
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "ਬਾਈਟ ਦੌਰਾਨ ਅਚਾਨਕ ਸਮੱਗਰੀ ਦੀ ਕਿਸਮ ਆਈ"
+
+#: gio/gdbusauth.c:1195
+msgid "User IDs must be the same for peer and server"
+msgstr ""
+
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "GDBusAuthObserver::authorize-authenticated-peer ਰਾਹੀਂ ਰੱਦ ਕੀਤਾ"
-#: gio/gdbusauthmechanismsha1.c:262
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
-#| msgid "Error when getting information for directory '%s': %s"
msgid "Error when getting information for directory “%s”: %s"
msgstr "ਡਾਇਰੈਕਟਰੀ ”%s” ਲਈ ਜਾਨਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gdbusauthmechanismsha1.c:274
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
-#| msgid ""
-#| "Permissions on directory '%s' are malformed. Expected mode 0700, got 0%o"
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr ""
"ਡਾਇਰੈਕਟਰੀ ”%s” ਦੇ ਅਧਿਕਾਰ ਖ਼ਰਾਬ ਹੋ ਚੁੱਕੇ ਹਨ। ਲੋੜੀਦਾ ਮੋਡ 0700 ਸੀ, ਪਰ ਹੈ 0%o"
-#: gio/gdbusauthmechanismsha1.c:299
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
-#| msgid "Error creating directory '%s': %s"
msgid "Error creating directory “%s”: %s"
msgstr "”%s” ਡਾਇਰੈਕਟਰੀ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gdbusauthmechanismsha1.c:346
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
+msgid "Operation not supported"
+msgstr "ਓਪਰੇਸ਼ਨ ਸਹਾਇਕ ਨਹੀਂ"
+
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
-#| msgid "Error opening keyring '%s' for reading: "
msgid "Error opening keyring “%s” for reading: "
msgstr "”%s” ਕੀਰਿੰਗ ਨੂੰ ਪੜ੍ਹਨ ਦੌਰਾਨ ਗਲਤੀ: "
-#: gio/gdbusauthmechanismsha1.c:369 gio/gdbusauthmechanismsha1.c:687
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
-#| msgid "Line %d of the keyring at '%s' with content '%s' is malformed"
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "”%2$s” ਉੱਤੇ ਕੀਰਿੰਗ ਦੀ %1$d ਲਾਈਨ ਦੀ ਸਮੱਗਰੀ ”%3$s” ਨਿਕਾਰਾ ਹੈ"
-#: gio/gdbusauthmechanismsha1.c:383 gio/gdbusauthmechanismsha1.c:701
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
-#| msgid ""
-#| "First token of line %d of the keyring at '%s' with content '%s' is "
-#| "malformed"
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
"”%2$s” ਉੱਤੇ ਕੀਰਿੰਗ ਦੀ %1$d ਲਾਈਨ ਉੱਤੇ ਪਹਿਲੇ ਟੋਕਨ ਦੀ ਸਮੱਗਰੀ ”%3$s” ਨਿਕਾਰਾ ਹੈ"
-#: gio/gdbusauthmechanismsha1.c:397 gio/gdbusauthmechanismsha1.c:715
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
-#| msgid ""
-#| "Second token of line %d of the keyring at '%s' with content '%s' is "
-#| "malformed"
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
"”%2$s” ਉੱਤੇ ਕੀਰਿੰਗ ਦੀ %1$d ਲਾਈਨ ਉੱਤੇ ਦੂਜੇ ਟੋਕਨ ਦੀ ਸਮੱਗਰੀ ”%3$s” ਨਿਕਾਰਾ ਹੈ"
-#: gio/gdbusauthmechanismsha1.c:421
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
-#| msgid "Didn't find cookie with id %d in the keyring at '%s'"
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "”%2$s” ਉੱਤੇ ਕੀਰਿੰਗ ਵਿੱਚ id %1$d ਨਾਲ ਕੋਈ ਕੂਕੀਜ਼ ਨਹੀਂ ਲੱਭਿਆ"
-#: gio/gdbusauthmechanismsha1.c:503
-#, c-format
-#| msgid "Error deleting stale lock file '%s': %s"
-msgid "Error deleting stale lock file “%s”: %s"
-msgstr "ਸਟਾਲ ਲਾਕ ਫਾਇਲ ”%s” ਹਟਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-
-#: gio/gdbusauthmechanismsha1.c:535
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
-#| msgid "Error creating lock file '%s': %s"
msgid "Error creating lock file “%s”: %s"
msgstr "”%s” ਲਾਕ ਫਾਇਲ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gdbusauthmechanismsha1.c:566
+#: gio/gdbusauthmechanismsha1.c:616
+#, c-format
+msgid "Error deleting stale lock file “%s”: %s"
+msgstr "ਸਟਾਲ ਲਾਕ ਫਾਇਲ ”%s” ਹਟਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
+
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
-#| msgid "Error closing (unlinked) lock file '%s': %s"
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "”%s” ਲਾਕ ਫਾਇਲ ਬੰਦ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ (ਬਿਨ-ਲਿੰਕ): %s"
-#: gio/gdbusauthmechanismsha1.c:577
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
-#| msgid "Error unlinking lock file '%s': %s"
msgid "Error unlinking lock file “%s”: %s"
msgstr "ਲਾਕ ਫਾਇਲ ”%s” ਅਣ-ਲਿੰਕ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gdbusauthmechanismsha1.c:654
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
-#| msgid "Error opening keyring '%s' for writing: "
msgid "Error opening keyring “%s” for writing: "
msgstr "”%s” ਕੀਰਿੰਗ ਨੂੰ ਲਿਖਣ ਲਈ ਖੋਲ੍ਹਣ ਦੌਰਾਨ ਗਲਤੀ: "
-#: gio/gdbusauthmechanismsha1.c:850
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
-#| msgid "(Additionally, releasing the lock for '%s' also failed: %s) "
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(ਇਸ ਤੋਂ ਇਲਾਵਾ, ”%s” ਲਈ ਲਾਕ ਛੱਡਣ ਲਈ ਫੇਲ੍ਹ ਹੈ: %s) "
-#: gio/gdbusconnection.c:604 gio/gdbusconnection.c:2400
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "ਕੁਨੈਕਸ਼ਨ ਬੰਦ ਕੀਤਾ ਗਿਆ।"
-#: gio/gdbusconnection.c:1901
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "ਸਮਾਂ ਸਮਾਪਤ ਹੋ ਚੁੱਕਾ ਸੀ"
-#: gio/gdbusconnection.c:2522
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr "ਗ਼ੈਰ-ਸਹਾਇਕ ਫਲੈਗ ਮਿਲੇ, ਜਦੋਂ ਕਿ ਕਲਾਇਟ-ਪੱਖੀ ਕੁਨੈਕਸ਼ਨ ਬਣਾਇਆ ਜਾ ਰਿਹਾ ਸੀ"
-#: gio/gdbusconnection.c:4151 gio/gdbusconnection.c:4498
+#: gio/gdbusconnection.c:4267 gio/gdbusconnection.c:4621
#, c-format
-#| msgid ""
-#| "No such interface 'org.freedesktop.DBus.Properties' on object at path %s"
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"ਪਾਥ %s ਉੱਤੇ ਆਬਜੈਕਟ ਉੱਤੇ ”org.freedesktop.DBus.Properties” ਵਰਗਾ ਕੋਈ ਆਬਜੈਕਟ ਨਹੀਂ"
-#: gio/gdbusconnection.c:4293
+#: gio/gdbusconnection.c:4412
#, c-format
-#| msgid "No such property '%s'"
msgid "No such property “%s”"
msgstr "ਕੋਈ ”%s” ਵਿਸ਼ੇਸ਼ਤਾ ਨਹੀਂ"
-#: gio/gdbusconnection.c:4305
+#: gio/gdbusconnection.c:4424
#, c-format
-#| msgid "Property '%s' is not readable"
msgid "Property “%s” is not readable"
msgstr "ਵਿਸ਼ੇਸ਼ਤਾ ”%s” ਪੜ੍ਹਨਯੋਗ ਨਹੀਂ"
-#: gio/gdbusconnection.c:4316
+#: gio/gdbusconnection.c:4435
#, c-format
-#| msgid "Property '%s' is not writable"
msgid "Property “%s” is not writable"
msgstr "ਵਿਸ਼ੇਸ਼ਤਾ ”%s” ਲਿਖਣਯੋਗ ਨਹੀਂ"
-#: gio/gdbusconnection.c:4336
+#: gio/gdbusconnection.c:4455
#, c-format
-#| msgid "Error setting property '%s': Expected type '%s' but got '%s'"
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr "ਵਿਸ਼ੇਸ਼ਤਾ ”%s” ਸੈੱਟ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: ਲੋੜੀਦੀ ਕਿਸਮ ਸੀ ”%s”, ਪਰ ਮਿਲੀ ”%s”"
-#: gio/gdbusconnection.c:4441 gio/gdbusconnection.c:4649
-#: gio/gdbusconnection.c:6618
+#: gio/gdbusconnection.c:4560 gio/gdbusconnection.c:4775
+#: gio/gdbusconnection.c:6752
#, c-format
-#| msgid "No such interface '%s'"
msgid "No such interface “%s”"
msgstr "”%s” ਕੋਈ ਇੰਟਰਫੇਸ ਨਹੀਂ"
-#: gio/gdbusconnection.c:4867 gio/gdbusconnection.c:7127
+#: gio/gdbusconnection.c:4991 gio/gdbusconnection.c:7266
#, c-format
-#| msgid "No such interface '%s' on object at path %s"
msgid "No such interface “%s” on object at path %s"
msgstr "ਪਾਥ %2$s ਉੱਤੇ ਆਬਜੈਕਟ ਲਈ ”%1$s” ਕੋਈ ਇੰਟਰਫੇਸ ਨਹੀਂ ਹੈ"
-#: gio/gdbusconnection.c:4965
+#: gio/gdbusconnection.c:5092
#, c-format
-#| msgid "No such method '%s'"
msgid "No such method “%s”"
msgstr "”%s” ਢੰਗ ਨਹੀਂ ਹੈ"
-#: gio/gdbusconnection.c:4996
+#: gio/gdbusconnection.c:5123
#, c-format
-#| msgid "Type of message, '%s', does not match expected type '%s'"
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "ਸੁਨੇਹੇ ਦੀ ਕਿਸਮ ”%s” ਮੰਗੀ ਗਈ ਕਿਸਮ ”%s” ਨਾਲ ਨਹੀਂ ਮਿਲਦੀ"
-#: gio/gdbusconnection.c:5194
+#: gio/gdbusconnection.c:5326
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "ਆਬਜੈਕਟ %s ਆਬਜੈਕਟ ਲਈ %s ਉੱਤੇ ਪਹਿਲਾਂ ਹੀ ਐਕਸਪੋਰਟ ਕੀਤਾ ਗਿਆ ਹੈ"
-#: gio/gdbusconnection.c:5420
-#, fuzzy, c-format
+#: gio/gdbusconnection.c:5553
+#, c-format
#| msgid "Unable to create socket: %s"
msgid "Unable to retrieve property %s.%s"
-msgstr "ਸਾਕਟ ਬਣਾਉਣ ਲਈ ਅਸਮਰੱਥ: %s"
+msgstr "%s.%s ਵਿਸ਼ੇਸ਼ਤਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਅਸਮਰੱਥ"
-#: gio/gdbusconnection.c:5476
-#, fuzzy, c-format
+#: gio/gdbusconnection.c:5609
+#, c-format
#| msgid "Unable to create socket: %s"
msgid "Unable to set property %s.%s"
-msgstr "ਸਾਕਟ ਬਣਾਉਣ ਲਈ ਅਸਮਰੱਥ: %s"
+msgstr "%s.%s ਵਿਸ਼ੇਸ਼ਤਾ ਸੈੱਟ ਕਰਨ ਲਈ ਅਸਮਰੱਥ"
-#: gio/gdbusconnection.c:5654
+#: gio/gdbusconnection.c:5788
#, c-format
-#| msgid "Method '%s' returned type '%s', but expected '%s'"
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "ਢੰਗ “%s“ ਨੇ “%s“ ਕਿਸਮ ਵਾਪਸ ਕੀਤੀ, ਪਰ ਚਾਹੀਦੀ ਸੀ “%s“"
-#: gio/gdbusconnection.c:6729
+#: gio/gdbusconnection.c:6864
#, c-format
-#| msgid "Method '%s' on interface '%s' with signature '%s' does not exist"
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "ਇੰਟਰਫੇਸ “%2$s“ ਉੱਤੇ ਢੰਗ “%1$s“ ਦਸਤਖਤ “%3$s“ ਨਾਲ ਮੌਜੂਦ ਨਹੀਂ ਹੈ"
-#: gio/gdbusconnection.c:6850
+#: gio/gdbusconnection.c:6985
#, c-format
msgid "A subtree is already exported for %s"
msgstr "ਸਬ-ਟਰੀ ਪਹਿਲਾਂ ਹੀ %s ਲਈ ਐਕਸਪੋਰ ਕੀਤਾ ਜਾ ਚੁੱਕਿਆ ਹੈ"
-#: gio/gdbusmessage.c:1251
+#: gio/gdbusconnection.c:7274
+#, c-format
+#| msgid "Key file does not have group '%s'"
+msgid "Object does not exist at path “%s”"
+msgstr "“%s” ਮਾਰਗ ਉੱਤੇ ਆਬਜੈਕਟ ਮੌਜੂਦ ਨਹੀਂ ਹੈ"
+
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "ਕਿਸਮ ਅਢੁੱਕਵੀਂ(INVALID) ਹੈ"
-#: gio/gdbusmessage.c:1262
+#: gio/gdbusmessage.c:1317
msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
msgstr "METHOD_CALL ਸੁਨੇਹਾ: PATH ਜਾਂ MEMBER ਹੈੱਡਰ ਖੇਤਰ ਗੁੰਮ ਹੈ"
-#: gio/gdbusmessage.c:1273
+#: gio/gdbusmessage.c:1328
msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
msgstr "METHOD_RETURN ਸੁਨੇਹਾ: REPLY_SERIAL ਹੈੱਡਰ ਖੇਤਰ ਗੁੰਮ ਹੈ"
-#: gio/gdbusmessage.c:1285
+#: gio/gdbusmessage.c:1340
msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
msgstr "ERROR ਸੁਨੇਹਾ: REPLY_SERIAL ਜਾਂ ERROR_NAME ਹੈੱਡਰ ਖੇਤਰ ਗੁੰਮ ਹੈ"
-#: gio/gdbusmessage.c:1298
+#: gio/gdbusmessage.c:1353
msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
msgstr "SIGNAL ਸੁਨੇਹਾ: PATH, INTERFACE ਜਾਂ MEMBER ਹੈੱਡਰ ਖੇਤਰ ਮੌਜੂਦ ਨਹੀਂ"
-#: gio/gdbusmessage.c:1306
+#: gio/gdbusmessage.c:1361
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -824,7 +797,7 @@ msgstr ""
" ਵਰਤਿਆ "
"ਜਾਂਦਾ ਹੈ।"
-#: gio/gdbusmessage.c:1314
+#: gio/gdbusmessage.c:1369
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -833,25 +806,20 @@ msgstr ""
" ਨਾਲ ਵਰਤਿਆ "
"ਜਾਂਦਾ ਹੈ।"
-#: gio/gdbusmessage.c:1362 gio/gdbusmessage.c:1422
+#: gio/gdbusmessage.c:1417 gio/gdbusmessage.c:1477
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "%lu ਬਾਈਟ ਪੜ੍ਹਨ ਚਾਹੀਦੇ ਸਨ, ਪਰ %lu ਮਿਲੇ"
msgstr[1] "%lu ਬਾਈਟ ਪੜ੍ਹਨ ਚਾਹੀਦੇ ਸਨ, ਪਰ %lu ਮਿਲੇ"
-#: gio/gdbusmessage.c:1376
+#: gio/gdbusmessage.c:1431
#, c-format
-#| msgid "Expected NUL byte after the string '%s' but found byte %d"
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "“%s“ ਲਾਈਨ ਦੇ ਬਾਅਦ NUL ਬਾਈਟ ਦੀ ਲੋੜ ਸੀ, ਪਰ %d ਬਾਈਟ ਮਿਲੇ"
-#: gio/gdbusmessage.c:1395
+#: gio/gdbusmessage.c:1450
#, c-format
-#| msgid ""
-#| "Expected valid UTF-8 string but found invalid bytes at byte offset %d "
-#| "(length of string is %d). The valid UTF-8 string up until that point was "
-#| "'%s'"
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
"(length of string is %d). The valid UTF-8 string up until that point was “%s”"
@@ -860,19 +828,21 @@ msgstr ""
"%d)। "
"ਉਸ ਪੁਆਇੰਟ ਤੱਕ ਠੀਕ UTF-8 ਲਾਈਨ “%s“ ਸੀ।"
-#: gio/gdbusmessage.c:1598
+#: gio/gdbusmessage.c:1514 gio/gdbusmessage.c:1790 gio/gdbusmessage.c:2001
+msgid "Value nested too deeply"
+msgstr ""
+
+#: gio/gdbusmessage.c:1682
#, c-format
-#| msgid "Parsed value '%s' is not a valid D-Bus object path"
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "ਪਾਰਸ ਕੀਤਾ ਮੁੱਲ “%s“ ਢੁੱਕਵਾਂ ਡੀ-ਬੱਸ ਆਬਜੈਕਟ ਪਾਥ ਨਹੀਂ ਹੈ"
-#: gio/gdbusmessage.c:1620
+#: gio/gdbusmessage.c:1706
#, c-format
-#| msgid "Parsed value '%s' is not a valid D-Bus signature"
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "ਪਾਰਸ ਕੀਤਾ ਮੁੱਲ “%s“ ਢੁੱਕਵਾਂ ਡੀ-ਬੱਸ ਦਸਤਖਤ ਨਹੀਂ ਹੈ"
-#: gio/gdbusmessage.c:1667
+#: gio/gdbusmessage.c:1757
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -883,11 +853,8 @@ msgstr[0] ""
msgstr[1] ""
"ਮਿਲੀ ਅਰੇ ਦੀ ਲੰਬਾਈ %u ਬਾਈਟ ਹੈ। ਵੱਧੋ-ਵੱਧ ਲੰਬਾਈ 2<<26 ਬਾਈਟ (64 MiB) ਹੈ।"
-#: gio/gdbusmessage.c:1687
+#: gio/gdbusmessage.c:1777
#, c-format
-#| msgid ""
-#| "Encountered array of type 'a%c', expected to have a length a multiple of "
-#| "%u bytes, but found to be %u bytes in length"
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
"bytes, but found to be %u bytes in length"
@@ -896,28 +863,25 @@ msgstr ""
" ਬਾਈਟ "
"ਲੰਬਾਈ ਹੀ ਮਿਲੀ।"
-#: gio/gdbusmessage.c:1857
+#: gio/gdbusmessage.c:1931 gio/gdbusmessage.c:2650
+msgid "Empty structures (tuples) are not allowed in D-Bus"
+msgstr ""
+
+#: gio/gdbusmessage.c:1985
#, c-format
-#| msgid "Parsed value '%s' for variant is not a valid D-Bus signature"
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "ਵੇਰੀਐਂਟ ਲਈ ਪਾਰਸ ਕੀਤਾ ਮੁੱਲ “%s“ ਢੁੱਕਵਾਂ ਡੀ-ਬੱਸ ਦਸਤਖਤ ਨਹੀਂ ਹੈ"
-#: gio/gdbusmessage.c:1881
+#: gio/gdbusmessage.c:2026
#, c-format
-#| msgid ""
-#| "Error deserializing GVariant with type string '%s' from the D-Bus wire "
-#| "format"
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr ""
"GVariant ਨੂੰ type string “%s“ ਨਾਲ ਡੀ-ਬੱਸ ਵਾਇਰ ਫਾਰਮੈਟ 'ਚ ਗ਼ੈਰ-ਲੜੀਬੱਧ ਕਰਨ ਦੌਰਾਨ"
" ਗਲਤੀ"
-#: gio/gdbusmessage.c:2066
+#: gio/gdbusmessage.c:2211
#, c-format
-#| msgid ""
-#| "Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found "
-#| "value 0x%02x"
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
"0x%02x"
@@ -925,124 +889,114 @@ msgstr ""
"ਗਲਤ endianness ਮੁੱਲ। 0x6c (“l“) ਜਾਂ 0x42 (“B“) ਚਾਹੀਦਾ ਹੈ, ਪਰ ਮਿਲਿਆ ਮੁੱਲ 0x"
"%02x ਹੈ"
-#: gio/gdbusmessage.c:2079
+#: gio/gdbusmessage.c:2230
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "ਗਲਤ ਮੇਜ਼ਰ ਪਰੋਟੋਕਾਲ ਵਰਜਨ ਹੈ। ਲੋੜ ਸੀ 1, ਪਰ ਮਿਲਿਆ %d"
-#: gio/gdbusmessage.c:2132 gio/gdbusmessage.c:2727
+#: gio/gdbusmessage.c:2288 gio/gdbusmessage.c:2886
msgid "Signature header found but is not of type signature"
msgstr ""
-#: gio/gdbusmessage.c:2144
+#: gio/gdbusmessage.c:2300
#, c-format
-#| msgid "Signature header with signature '%s' found but message body is empty"
msgid "Signature header with signature “%s” found but message body is empty"
msgstr "ਦਸਤਖਤ “%s“ ਨਾਲ ਦਸਤਖਤ ਹੈੱਡਰ ਮਿਲਿਆ, ਪਰ ਸੁਨੇਹਾ ਮੁੱਖ ਭਾਗ ਖਾਲੀ ਹੈ"
-#: gio/gdbusmessage.c:2159
+#: gio/gdbusmessage.c:2315
#, c-format
-#| msgid "Parsed value '%s' is not a valid D-Bus signature (for body)"
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "ਪਾਰਸ ਕੀਤਾ ਮੁੱਲ “%s“ ਠੀਕ ਡੀ-ਬੱਸ ਦਸਤਖਤ ਨਹੀਂ ਹਨ (ਮੁੱਖ ਭਾਗ ਲਈ)"
-#: gio/gdbusmessage.c:2190
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
msgstr[0] "ਸੁਨੇਹੇ 'ਚ ਕੋਈ ਦਸਤਖਤ ਹੈੱਡਰ ਨਹੀਂ ਹੈ, ਪਰ ਸੁਨੇਹਾ ਮੁੱਖ ਭਾਗ 'ਚ %u ਬਾਈਟ ਹਨ"
msgstr[1] "ਸੁਨੇਹੇ 'ਚ ਕੋਈ ਦਸਤਖਤ ਹੈੱਡਰ ਨਹੀਂ ਹੈ, ਪਰ ਸੁਨੇਹਾ ਮੁੱਖ ਭਾਗ 'ਚ %u ਬਾਈਟ ਹਨ"
-#: gio/gdbusmessage.c:2200
+#: gio/gdbusmessage.c:2357
msgid "Cannot deserialize message: "
msgstr "ਸੁਨੇਹਾ ਡੀਸੀਰੀਅਲਾਈਜ਼ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ: "
-#: gio/gdbusmessage.c:2544
+#: gio/gdbusmessage.c:2703
#, c-format
-#| msgid ""
-#| "Error serializing GVariant with type string '%s' to the D-Bus wire format"
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr ""
"GVariant ਨੂੰ type string “%s“ ਨਾਲ ਡੀ-ਬੱਸ ਵਾਇਰ ਫਾਰਮੈਟ 'ਚ ਲੜੀਬੱਧ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ"
-#: gio/gdbusmessage.c:2681
+#: gio/gdbusmessage.c:2840
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
-#: gio/gdbusmessage.c:2689
+#: gio/gdbusmessage.c:2848
msgid "Cannot serialize message: "
msgstr "ਸੁਨੇਹਾ ਲੜੀਬੱਧ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ: "
-#: gio/gdbusmessage.c:2742
+#: gio/gdbusmessage.c:2901
#, c-format
-#| msgid "Message body has signature '%s' but there is no signature header"
msgid "Message body has signature “%s” but there is no signature header"
msgstr "ਸੁਨੇਹਾ ਮੁੱਖ ਭਾਗ 'ਚ ਦਸਤਖਤ “%s“ ਹਨ, ਪਰ ਹੈੱਡਰ ਲਈ ਕੋਈ ਦਸਤਖਤ ਨਹੀਂ"
-#: gio/gdbusmessage.c:2752
+#: gio/gdbusmessage.c:2911
#, c-format
-#| msgid ""
-#| "Message body has type signature '%s' but signature in the header field is "
-#| "'%s'"
msgid ""
"Message body has type signature “%s” but signature in the header field is "
"“%s”"
msgstr ""
"ਸੁਨੇਹਾ ਮੁੱਖ ਭਾਗ 'ਚ “%s“ ਕਿਸਮ ਦੇ ਦਸਤਖਤ ਹਨ, ਪਰ ਹੈੱਡਰ ਖੇਤਰ 'ਚ ਦਸਤਖਤ “%s“ ਹਨ"
-#: gio/gdbusmessage.c:2768
+#: gio/gdbusmessage.c:2927
#, c-format
-#| msgid "Message body is empty but signature in the header field is '(%s)'"
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "ਸੁਨੇਹਾ ਦਾ ਮੁੱਖ ਭਾਗ ਖਾਲੀ ਹੈ, ਪਰ ਹੈੱਡਰ ਖੇਤਰ 'ਚ “(%s)“ ਦਸਤਖਤ ਹਨ"
-#: gio/gdbusmessage.c:3321
+#: gio/gdbusmessage.c:3482
#, c-format
-#| msgid "Error return with body of type '%s'"
msgid "Error return with body of type “%s”"
msgstr "“%s“ ਕਿਸਮ ਦੇ ਮੁੱਖ ਭਾਗ ਨੇ ਗਲਤੀ ਵਾਪਸ ਕੀਤੀ"
-#: gio/gdbusmessage.c:3329
+#: gio/gdbusmessage.c:3490
msgid "Error return with empty body"
msgstr "ਗਲਤੀ ਨੇ ਖਾਲੀ ਭਾਗ ਦਿੱਤਾ"
-#: gio/gdbusprivate.c:2243
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(ਇਹ ਵਿੰਡੋ ਬੰਦ ਕਰਨ ਲਈ ਕੋਈ ਅੱਖਰ ਲਿਖੋ)\n"
-#: gio/gdbusprivate.c:2417
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "ਸ਼ੈਸ਼ਨ ਡੀਬਸ ਚੱਲ ਨਹੀਂ ਰਹੀ ਹੈ, ਅਤੇ ਆਪੇ-ਸ਼ੁਰੂ ਫੇਲ੍ਹ ਹੈ"
-#: gio/gdbusprivate.c:2440
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "ਹਾਰਡਵੇਅਰ ਪਰੋਫਾਇਲ ਲੈਣ ਲਈ ਅਸਮਰੱਥ: %s"
-#: gio/gdbusprivate.c:2485
-msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
-msgstr "/var/lib/dbus/machine-id ਜਾਂ /etc/machine-id ਲੋਡ ਕਰਨ ਲਈ ਅਸਮਰੱਥ: "
+#. Translators: Both placeholders are file paths
+#: gio/gdbusprivate.c:2461
+#, c-format
+#| msgid "Unable to trash file %s: %s"
+msgid "Unable to load %s or %s: "
+msgstr "%s ਜਾਂ %s ਲੋਡ ਕਰਨ ਲਈ ਅਸਮਰੱਥ: "
-#: gio/gdbusproxy.c:1625
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "%s ਲਈ StartServiceByName ਕਾਲ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: "
-#: gio/gdbusproxy.c:1648
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "StartServiceByName(\"%2$s\") ਢੰਗ ਤੋਂ ਗਲਤ ਜਵਾਬ %1$d"
-#: gio/gdbusproxy.c:2748 gio/gdbusproxy.c:2883
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
-#| msgid ""
-#| "Cannot invoke method; proxy is for a well-known name without an owner and "
-#| "proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
"and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
@@ -1051,45 +1005,32 @@ msgstr ""
" ਹੈ ਅਤੇ "
"ਪਰਾਕਸੀ ਨੂੰ G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START ਫਲੈਗ ਨਾਲ ਬਣਾਇਆ ਗਿਆ।"
-#: gio/gdbusserver.c:746
-#, fuzzy
+#: gio/gdbusserver.c:758
#| msgid "Abstract name space not supported"
msgid "Abstract namespace not supported"
-msgstr "Abstract ਨਾਂ ਸਹਾਇਕ ਨਹੀਂ ਹੈ।"
+msgstr "ਸਾਰ(Abstract) ਨਾਂ-ਥਾਂ ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
-#: gio/gdbusserver.c:839
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "ਜਦੋਂ ਸਰਵਰ ਬਣਾਉਣਾ ਹੋਵੇ ਤਾਂ nonce ਫਾਇਲ ਨਹੀਂ ਦਿੱਤੀ ਜਾ ਸਕਦੀ"
-#: gio/gdbusserver.c:921
+#: gio/gdbusserver.c:932
#, c-format
-#| msgid "Error writing nonce file at '%s': %s"
msgid "Error writing nonce file at “%s”: %s"
msgstr "“%s“ ਉੱਤੇ nonce ਫਾਇਲ ਲਿਖਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gdbusserver.c:1094
+#: gio/gdbusserver.c:1107
#, c-format
-#| msgid "The string '%s' is not a valid D-Bus GUID"
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "ਲਾਈਨ “%s“ ਢੁੱਕਵਾਂ ਡੀ-ਬੱਸ GUID ਨਹੀਂ ਹੈ"
-#: gio/gdbusserver.c:1134
+#: gio/gdbusserver.c:1145
#, c-format
-#| msgid "Cannot listen on unsupported transport '%s'"
msgid "Cannot listen on unsupported transport “%s”"
msgstr "ਗ਼ੈਰ-ਸਹਾਇਕ ਟਰਾਂਸਪੋਰਟ “%s“ ਉੱਤੇ ਸੁਣਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"
-#: gio/gdbus-tool.c:107
+#: gio/gdbus-tool.c:113
#, c-format
-#| msgid ""
-#| "Commands:\n"
-#| " help Shows this information\n"
-#| " introspect Introspect a remote object\n"
-#| " monitor Monitor a remote object\n"
-#| " call Invoke a method on a remote object\n"
-#| " emit Emit a signal\n"
-#| "\n"
-#| "Use \"%s COMMAND --help\" to get help on each command.\n"
msgid ""
"Commands:\n"
" help Shows this information\n"
@@ -1102,67 +1043,67 @@ msgid ""
"Use “%s COMMAND --help” to get help on each command.\n"
msgstr ""
-#: gio/gdbus-tool.c:197 gio/gdbus-tool.c:264 gio/gdbus-tool.c:336
-#: gio/gdbus-tool.c:360 gio/gdbus-tool.c:846 gio/gdbus-tool.c:1183
-#: gio/gdbus-tool.c:1668
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "ਗਲਤੀ: %s\n"
-#: gio/gdbus-tool.c:208 gio/gdbus-tool.c:277 gio/gdbus-tool.c:1684
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "XML ਇੰਟਰੋਸਪੈਕਸ਼ਨ ਪਾਰਸ ਕਰਨ ਵਿੱਚ ਗਲਤੀ: %s\n"
-#: gio/gdbus-tool.c:246
+#: gio/gdbus-tool.c:253
#, c-format
-#| msgid "Error: %s is not a valid member name\n"
msgid "Error: %s is not a valid name\n"
msgstr "ਗਲਤੀ: %s ਢੁੱਕਵਾਂ ਨਾਂ ਨਹੀਂ ਹੈ\n"
-#: gio/gdbus-tool.c:394
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
+#, c-format
+msgid "Error: %s is not a valid object path\n"
+msgstr "ਗਲਤੀ: %s ਢੁੱਕਵਾਂ ਆਬਜੈਕਟ ਪਾਥ ਨਹੀਂ ਹੈ\n"
+
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "ਸਿਸਟਮ ਬਸ ਨਾਲ ਕੁਨੈਕਟ ਕਰੋ"
-#: gio/gdbus-tool.c:395
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "ਸ਼ੈਸ਼ਨ ਬੱਸ ਨਾਲ ਕੁਨੈਕਟ ਕਰੋ"
-#: gio/gdbus-tool.c:396
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "ਦਿੱਤੇ ਡੀ-ਬੱਸ ਐਡਰੈੱਸ ਨਾਲ ਕੁਨੈਕਟ"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "ਕੁਨੈਕਸ਼ਨ ਅੰਤ-ਪੁਆਇੰਟ ਚੋਣਾਂ:"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "ਚੋਣਾਂ ਕੁਨੈਕਸ਼ਨ ਅੰਤ-ਪੁਆਇੰਟ ਦਿੰਦੀਆਂ ਹਨ"
-#: gio/gdbus-tool.c:429
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "ਕੋਈ ਕੁਨੈਕਸ਼ਨ ਅੰਤ ਪੁਆਇੰਟ ਨਹੀਂ ਦਿੱਤਾ"
-#: gio/gdbus-tool.c:439
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "ਕਈ ਕੁਨੈਕਸ਼ਨ ਅੰਤ-ਪੁਆਇੰਟ ਦਿੱਤੇ ਗਏ"
-#: gio/gdbus-tool.c:509
+#: gio/gdbus-tool.c:524
#, c-format
-#| msgid ""
-#| "Warning: According to introspection data, interface '%s' does not exist\n"
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "ਸਾਵਧਾਨ: ਇੰਟਰੋਸਪੈਕਸ਼ਨ ਡਾਟੇ ਦੇ ਮੁਤਾਬਕ, ਇੰਟਰਫੇਸ “%s“ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।\n"
-#: gio/gdbus-tool.c:518
+#: gio/gdbus-tool.c:533
#, c-format
-#| msgid ""
-#| "Warning: According to introspection data, method '%s' does not exist on "
-#| "interface '%s'\n"
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
"interface “%s”\n"
@@ -1170,530 +1111,528 @@ msgstr ""
"ਸਾਵਧਾਨ: ਇੰਟਰੋਸਪੈਕਸ਼ਨ ਡਾਟੇ ਦੇ ਮੁਤਾਬਕ, ਢੰਗ “%s“ ਇੰਟਰਫੇਸ “%s“ ਉੱਤੇ ਮੌਜੂਦ ਨਹੀਂ"
" ਹੈ।\n"
-#: gio/gdbus-tool.c:580
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "ਸਿਗਨਲ ਲਈ ਚੋਣਵਾਂ ਟਿਕਾਣਾ (ਵਿਲੱਖਣ ਨਾਂ)"
-#: gio/gdbus-tool.c:581
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "ਨਿਕਲੇ ਸਿਗਨਲ ਲਈ ਆਬਜੈਕਟ ਮਾਰਗ"
-#: gio/gdbus-tool.c:582
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "ਸਿਗਨਲ ਅਤੇ ਇੰਟਰਫੇਸ ਨਾਂ"
-#: gio/gdbus-tool.c:615
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "ਨਿਕਲਿਆਂ ਸਿਗਨਲ।"
-#: gio/gdbus-tool.c:670 gio/gdbus-tool.c:977 gio/gdbus-tool.c:1771
-#: gio/gdbus-tool.c:2003 gio/gdbus-tool.c:2223
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "ਕੁਨੈਕਟ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s\n"
-#: gio/gdbus-tool.c:690
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "ਗਲਤੀ: %s ਢੁੱਕਵਾਂ ਵਿਲੱਖਣ ਬਸ ਨਾਂ ਨਹੀਂ ਹੈ।\n"
-#: gio/gdbus-tool.c:709 gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1814
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "ਗਲਤੀ: ਆਬਜੈਕਟ ਪਾਥ ਨਹੀਂ ਦਿੱਤਾ\n"
-#: gio/gdbus-tool.c:732 gio/gdbus-tool.c:1040 gio/gdbus-tool.c:1834
-#: gio/gdbus-tool.c:2074
-#, c-format
-msgid "Error: %s is not a valid object path\n"
-msgstr "ਗਲਤੀ: %s ਢੁੱਕਵਾਂ ਆਬਜੈਕਟ ਪਾਥ ਨਹੀਂ ਹੈ\n"
-
-#: gio/gdbus-tool.c:752
-#| msgid "Error: Method name is not specified\n"
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "ਗਲਤੀ: ਸਿਗਨਲ ਨਾਂ ਨਹੀਂ ਦਿੱਤਾ ਗਿਆ।\n"
-#: gio/gdbus-tool.c:766
+#: gio/gdbus-tool.c:781
#, c-format
-#| msgid "Error: Method name '%s' is invalid\n"
msgid "Error: Signal name “%s” is invalid\n"
msgstr "ਗਲਤੀ: ਸਿਗਨਲ ਨਾਂ “%s“ ਢੁੱਕਵਾਂ ਨਹੀਂ\n"
-#: gio/gdbus-tool.c:778
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "ਗਲਤੀ: %s ਢੁੱਕਵਾਂ ਇੰਟਰਫੇਸ ਨਾਂ ਨਹੀਂ ਹੈ\n"
-#: gio/gdbus-tool.c:784
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "ਗਲਤੀ: %s ਢੁੱਕਵਾਂ ਮੈਂਬਰ ਨਾਂ ਨਹੀਂ ਹੈ\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:821 gio/gdbus-tool.c:1152
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "%d ਪੈਰਾਮੀਟਰ ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s\n"
-#: gio/gdbus-tool.c:853
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "ਕੁਨੈਕਸ਼ਨ ਖਤਮ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s\n"
-#: gio/gdbus-tool.c:880
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "ਸ਼ਾਮਲ ਢੰਗ ਲਈ ਟਿਕਾਣਾ ਨਾਂ"
-#: gio/gdbus-tool.c:881
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "ਇਸ ਉੱਤੇ ਸ਼ਾਮਲ ਢੰਗ ਲਈ ਆਬਜੈਕਟ ਪਾਥ"
-#: gio/gdbus-tool.c:882
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "ਢੰਗ ਤੇ ਇੰਟਰਫੇਸ ਨਾਂ"
-#: gio/gdbus-tool.c:883
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "ਟਾਈਮ-ਆਉਟ ਸਕਿੰਟਾਂ ਵਿੱਚ"
-#: gio/gdbus-tool.c:922
+#: gio/gdbus-tool.c:900
+#| msgid "Show information about locations"
+msgid "Allow interactive authorization"
+msgstr "ਤਾਲਮੇਲ ਪਰਮਾਣੀਕਰਨ ਦੀ ਇਜਾਜ਼ਤ"
+
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "ਰਿਮੋਟ ਆਬਜੈਕਟ ਉੱਤੇ ਢੰਗ ਸ਼ਾਮਲ"
-#: gio/gdbus-tool.c:994 gio/gdbus-tool.c:1788 gio/gdbus-tool.c:2028
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "ਗਲਤੀ: ਟਿਕਾਣਾ ਨਹੀਂ ਦਿੱਤਾ ਗਿਆ\n"
-#: gio/gdbus-tool.c:1005 gio/gdbus-tool.c:1805 gio/gdbus-tool.c:2039
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
-#| msgid "Error: %s is not a valid member name\n"
msgid "Error: %s is not a valid bus name\n"
msgstr "ਗਲਤੀ: %s ਢੁੱਕਵਾਂ ਵਿਲੱਖਣ ਬਸ ਨਾਂ ਨਹੀਂ ਹੈ।\n"
-#: gio/gdbus-tool.c:1055
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "ਗਲਤੀ: ਢੰਘ ਨਾਂ ਨਹੀਂ ਦਿੱਤਾ \n"
-#: gio/gdbus-tool.c:1066
+#: gio/gdbus-tool.c:1091
#, c-format
-#| msgid "Error: Method name '%s' is invalid\n"
msgid "Error: Method name “%s” is invalid\n"
msgstr "ਗਲਤੀ: ਢੰਗ ਨਾਂ “%s“ ਢੁੱਕਵਾਂ ਨਹੀਂ\n"
-#: gio/gdbus-tool.c:1144
+#: gio/gdbus-tool.c:1169
#, c-format
-#| msgid "Error parsing parameter %d of type '%s': %s\n"
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "“%2$s“ ਕਿਸਮ ਦੇ %1$d ਪੈਰਾਮੀਟਰ ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %3$s\n"
-#: gio/gdbus-tool.c:1630
+#: gio/gdbus-tool.c:1195
+#, c-format
+#| msgid "Error reading from handle: %s"
+msgid "Error adding handle %d: %s\n"
+msgstr "%d ਹੈੱਡਲ ਜੋੜਨ ਦੌਰਾਨ ਗਲਤੀ: %s\n"
+
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "ਇੰਟਰਸਪੈਕਟ ਲਈ ਟਿਕਾਣਾ ਨਾਂ"
-#: gio/gdbus-tool.c:1631
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "ਇੰਟਰਸਪੈਕਟ ਲਈ ਆਬਜੈਕਟ ਪਾਥ"
-#: gio/gdbus-tool.c:1632
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "XML ਪਰਿੰਟ ਕਰੋ"
-#: gio/gdbus-tool.c:1633
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "ਆਪਸ ਵਿੱਚ ਜੁੜੇ ਚਾਈਲਡ"
-#: gio/gdbus-tool.c:1634
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "ਕੇਵਲ ਪ੍ਰਿੰਟ ਵਿਸ਼ੇਸ਼ਤਾ"
-#: gio/gdbus-tool.c:1723
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "ਰਿਮੋਟ ਆਬਜੈਕਟ ਇੰਟਰਸਪੈਕਟ ਕਰੋ।"
-#: gio/gdbus-tool.c:1929
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "ਨਿਗਰਾਨੀ ਲਈ ਟਿਕਾਣਾ ਨਾਂ"
-#: gio/gdbus-tool.c:1930
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "ਨਿਗਰਾਨੀ ਲਈ ਆਬਜੈਕਟ ਨਾਂ"
-#: gio/gdbus-tool.c:1955
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "ਰਿਮੋਟ ਆਬਜੈਕਟ ਦੀ ਨਿਗਰਾਨੀ।"
-#: gio/gdbus-tool.c:2013
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr ""
-#: gio/gdbus-tool.c:2137
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr ""
-#: gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
msgstr ""
-#: gio/gdbus-tool.c:2188
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPTION…] BUS-NAME"
-#: gio/gdbus-tool.c:2189
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr ""
-#: gio/gdbus-tool.c:2265
-#, fuzzy
+#: gio/gdbus-tool.c:2330
#| msgid "Error: object path not specified.\n"
msgid "Error: A service to activate for must be specified.\n"
-msgstr "ਗਲਤੀ: ਆਬਜੈਕਟ ਪਾਥ ਨਹੀਂ ਦਿੱਤਾ\n"
+msgstr "ਗਲਤੀ: ਸਰਗਰਮ ਕੀਤੀ ਜਾਣ ਵਾਲੀ ਸੇਵਾ ਦਿੱਤੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ।\n"
-#: gio/gdbus-tool.c:2270
-#, fuzzy
+#: gio/gdbus-tool.c:2335
#| msgid "Error: object path not specified.\n"
msgid "Error: A service to wait for must be specified.\n"
-msgstr "ਗਲਤੀ: ਆਬਜੈਕਟ ਪਾਥ ਨਹੀਂ ਦਿੱਤਾ\n"
+msgstr "ਗਲਤੀ: ਉਡੀਕੀ ਜਾਣ ਵਾਲੀ ਸੇਵਾ ਦਿੱਤੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ।\n"
-#: gio/gdbus-tool.c:2275
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "ਗਲਤੀ: ਕੋਈ ਆਰਗੂਮੈਂਟ ਹਨ।\n"
-#: gio/gdbus-tool.c:2283 gio/gdbus-tool.c:2290
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
-#| msgid "Error: %s is not a valid unique bus name.\n"
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "ਗਲਤੀ: %s ਢੁੱਕਵਾਂ ਜਾਣਿਆ-ਪਛਾਣਿਆ ਬਸ ਨਾਂ ਨਹੀਂ ਹੈ।\n"
-#: gio/gdesktopappinfo.c:2045 gio/gdesktopappinfo.c:4843
+#: gio/gdebugcontrollerdbus.c:361
+#, c-format
+msgid "Not authorized to change debug settings"
+msgstr ""
+
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "ਬਿਨ-ਨਾਂ"
-#: gio/gdesktopappinfo.c:2455
-#| msgid "Desktop file didn't specify Exec field"
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "ਡੈਸਕਟਾਪ ਫਾਇਲ ਨੇ Exec ਫੀਲਡ ਨਹੀਂ ਦਿੱਤਾ ਹੈ"
-#: gio/gdesktopappinfo.c:2727
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਲਈ ਟਰਮੀਨਲ ਲੋੜ ਲੱਭਣ ਲਈ ਅਸਮਰੱਥ ਹੈ"
-#: gio/gdesktopappinfo.c:3379
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr ""
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
-#| msgid "Can't create user application configuration folder %s: %s"
msgid "Can’t create user application configuration folder %s: %s"
msgstr "ਵਰਤੋਂਕਾਰ ਐਪਲੀਕੇਸ਼ਨ ਸੰਰਚਨਾ ਫੋਲਡਰ %s ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ: %s"
-#: gio/gdesktopappinfo.c:3383
+#: gio/gdesktopappinfo.c:3742
#, c-format
-#| msgid "Can't create user MIME configuration folder %s: %s"
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "ਵਰਤੋਂਕਾਰ MIME ਸੰਰਚਨਾ ਫੋਲਡਰ %s ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ: %s"
-#: gio/gdesktopappinfo.c:3623 gio/gdesktopappinfo.c:3647
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਜਾਣਕਾਰੀ ਲਈ ਪਛਾਣਕਰਤਾ ਦੀ ਕਮੀ ਹੈ"
-#: gio/gdesktopappinfo.c:3881
+#: gio/gdesktopappinfo.c:4244
#, c-format
-#| msgid "Can't create user desktop file %s"
msgid "Can’t create user desktop file %s"
msgstr "ਵਰਤੋਂਕਾਰ ਡੈਸਕਟਾਪ ਫਾਇਲ %s ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ"
-#: gio/gdesktopappinfo.c:4015
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "%s ਲਈ ਕਸਟਮ ਪਰਿਭਾਸ਼ਾ"
-#: gio/gdrive.c:417
-#| msgid "drive doesn't implement eject"
+#: gio/gdrive.c:419
msgid "drive doesn’t implement eject"
msgstr "ਡਰਾਇਵ ਲਈ ਬਾਹਰ ਕੱਢਣਾ ਨਹੀਂ ਬਣਾਇਆ"
#. Translators: This is an error
#. * message for drive objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gdrive.c:495
-#| msgid "drive doesn't implement eject or eject_with_operation"
+#: gio/gdrive.c:497
msgid "drive doesn’t implement eject or eject_with_operation"
msgstr "ਡਰਾਇਵ eject ਜਾਂ eject_with_operation ਸਥਾਪਿਤ ਨਹੀਂ ਹੈ।"
-#: gio/gdrive.c:571
-#| msgid "drive doesn't implement polling for media"
+#: gio/gdrive.c:573
msgid "drive doesn’t implement polling for media"
msgstr "ਮੀਡਿਆ ਪੋਲਿੰਗ ਲਈ ਡਰਾਇਵ ਹਾਲੇ ਸਥਾਪਤ ਨਹੀਂ"
-#: gio/gdrive.c:778
-#| msgid "drive doesn't implement start"
+#: gio/gdrive.c:780
msgid "drive doesn’t implement start"
msgstr "ਡਰਾਇਵਹ start ਹਾਲੇ ਸਥਾਪਿਤ ਨਹੀਂ ਹੈ"
-#: gio/gdrive.c:880
-#| msgid "drive doesn't implement stop"
+#: gio/gdrive.c:882
msgid "drive doesn’t implement stop"
msgstr "ਡਰਾਇਵ stop ਸਥਾਪਿਤ ਨਹੀਂ ਹੈ"
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:317
-#: gio/gdummytlsbackend.c:509
+#: gio/gdtlsconnection.c:1188 gio/gtlsconnection.c:957
+msgid "TLS backend does not implement TLS binding retrieval"
+msgstr ""
+
+#: gio/gdummytlsbackend.c:197 gio/gdummytlsbackend.c:323
+#: gio/gdummytlsbackend.c:515
msgid "TLS support is not available"
msgstr "TLS ਸਹਿਯੋਗ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ"
-#: gio/gdummytlsbackend.c:419
-#| msgid "TLS support is not available"
+#: gio/gdummytlsbackend.c:425
msgid "DTLS support is not available"
msgstr "DTLS ਸਹਿਯੋਗ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ"
-#: gio/gemblem.c:323
+#: gio/gemblem.c:325
#, c-format
-#| msgid "Can't handle version %d of GEmblem encoding"
msgid "Can’t handle version %d of GEmblem encoding"
msgstr "GEmblem ਇੰਕੋਡਿੰਗ ਦਾ %d ਵਰਜਨ ਹੈਂਡਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-#: gio/gemblem.c:333
+#: gio/gemblem.c:335
#, c-format
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr "GEmblem ਇੰਕੋਡਿੰਗ ਵਿੱਚ ਨਿਕਾਰਾ ਟੋਕਨਾਂ ਦੀ ਗਿਣਤੀ (%d)"
-#: gio/gemblemedicon.c:362
+#: gio/gemblemedicon.c:364
#, c-format
-#| msgid "Can't handle version %d of GEmblemedIcon encoding"
msgid "Can’t handle version %d of GEmblemedIcon encoding"
msgstr "GThemedIcon ਇੰਕੋਡਿੰਗ ਦਾ %d ਵਰਜਨ ਹੈਂਡਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-#: gio/gemblemedicon.c:372
+#: gio/gemblemedicon.c:374
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr "GEmblemedIcon ਇੰਕੋਡਿੰਗ ਵਿੱਚ ਨਿਕਾਰਾ ਟੋਕਨਾਂ ਦੀ ਗਿਣਤੀ (%d)"
-#: gio/gemblemedicon.c:395
+#: gio/gemblemedicon.c:397
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "GEmblemedIcon ਲਈ GEmblem ਦੀ ਲੋੜ ਸੀ"
-#: gio/gfile.c:1076 gio/gfile.c:1314 gio/gfile.c:1452 gio/gfile.c:1690
-#: gio/gfile.c:1745 gio/gfile.c:1803 gio/gfile.c:1887 gio/gfile.c:1944
-#: gio/gfile.c:2008 gio/gfile.c:2063 gio/gfile.c:3739 gio/gfile.c:3794
-#: gio/gfile.c:4030 gio/gfile.c:4072 gio/gfile.c:4540 gio/gfile.c:4951
-#: gio/gfile.c:5036 gio/gfile.c:5126 gio/gfile.c:5223 gio/gfile.c:5310
-#: gio/gfile.c:5411 gio/gfile.c:8115 gio/gfile.c:8205 gio/gfile.c:8289
-#: gio/win32/gwinhttpfile.c:437
-msgid "Operation not supported"
-msgstr "ਓਪਰੇਸ਼ਨ ਸਹਾਇਕ ਨਹੀਂ"
-
#. Translators: This is an error message when
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1575
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "ਰੱਖਣ ਵਾਲਾ ਮਾਊਂਟ ਮੌਜੂਦ ਨਹੀਂ"
-#: gio/gfile.c:2622 gio/glocalfile.c:2446
-#| msgid "Can't copy over directory"
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "ਡਾਇਰੈਕਟਰੀ ਉੱਤੇ ਕਾਪੀ ਨਹੀਂ ਹੋ ਸਕਦਾ"
-#: gio/gfile.c:2682
-#| msgid "Can't copy directory over directory"
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "ਡਾਇਰੈਕਟਰੀ ਡਾਇਰੈਕਟਰੀ ਉੱਤੇ ਕਾਪੀ ਨਹੀਂ ਹੋ ਸਕਦੀ"
-#: gio/gfile.c:2690
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "ਟਾਰਗੇਟ ਫਾਇਲ ਮੌਜੂਦ ਹੈ"
-#: gio/gfile.c:2709
-#| msgid "Can't recursively copy directory"
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "ਡਾਇਰੈਕਟਰੀ ਲਗਾਤਾਰ ਕਾਪੀ ਨਹੀਂ ਹੋ ਸਕਦੀ"
-#: gio/gfile.c:2984
-msgid "Splice not supported"
-msgstr "ਸਪਲਿਸ ਸਕਾਇਕ ਨਹੀਂ"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+#| msgid "Operation not supported"
+msgid "Copy file range not supported"
+msgstr "ਕਾਪੀ ਫ਼ਾਇਲ ਰੇਜ਼ ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
-#: gio/gfile.c:2988 gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "ਸਪਲਿਸ ਫਾਇਲ ਗਲਤੀ: %s "
-#: gio/gfile.c:3149
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "ਸਪਲਿਸ ਸਕਾਇਕ ਨਹੀਂ"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "ਮਾਊਂਟ ਵਿੱਚ ਕਾਪੀ (ਮੁੜ-ਲਿੰਕ/ਕਲੋਨ) ਕਰਨਾ ਸਹਿਯੋਗੀ ਨਹੀਂ"
-#: gio/gfile.c:3153
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr " ਕਾਪੀ (ਮੁੜ-ਲਿੰਕ/ਕਲੋਨ) ਕਰਨਾ ਸਹਿਯੋਗੀ ਨਹੀਂ ਜਾਂ ਗਲਤ ਹੈ"
-#: gio/gfile.c:3158
-#| msgid "Copy (reflink/clone) is not supported or didn't work"
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr " ਕਾਪੀ (ਮੁੜ-ਲਿੰਕ/ਕਲੋਨ) ਕਰਨਾ ਸਹਿਯੋਗੀ ਨਹੀਂ ਜਾਂ ਕੰਮ ਨਹੀਂ ਕਰਦਾ"
-#: gio/gfile.c:3221
-#| msgid "Can't copy special file"
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "ਖਾਸ ਫਾਇਲ ਕਾਪੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ"
-#: gio/gfile.c:4020
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "ਗਲਤ ਸਿੰਬੋਲਿੰਕ ਮੁੱਲ ਦਿੱਤਾ"
-#: gio/gfile.c:4181
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
+msgid "Symbolic links not supported"
+msgstr "ਸਿੰਬੋਲਿਕ ਲਿੰਕ ਮੱਦਦ ਪ੍ਰਾਪਤ ਨਹੀਂ ਹਨ"
+
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "ਰੱਦ ਸਹਾਇਕ ਨਹੀਂ"
-#: gio/gfile.c:4293
+#: gio/gfile.c:4723
#, c-format
-#| msgid "File names cannot contain '%c'"
msgid "File names cannot contain “%c”"
msgstr "ਫਾਇਲ ਨਾਂਵਾਂ ਵਿੱਚ “%c” ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ"
-#: gio/gfile.c:6774 gio/gvolume.c:364
-#| msgid "volume doesn't implement mount"
+#: gio/gfile.c:7155 gio/gfile.c:7281
+#, c-format
+#| msgid "Failed to change to directory “%s” (%s)"
+msgid "Failed to create a temporary directory for template “%s”: %s"
+msgstr "“%s” ਟੈਪਲੇਟ ਲਈ ਆਰਜ਼ੀ ਡਾਇਰੈਕਟਰੀ ਬਣਾਉਣ ਲਈ ਫ਼ੇਲ੍ਹ ਹੈ: %s"
+
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "ਵਾਲੀਅਮ ਲਈ ਮਾਊਂਟ ਸਥਾਪਤ ਨਹੀਂ ਹੈ"
-#: gio/gfile.c:6885 gio/gfile.c:6931
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "ਇਹ ਫਾਇਲ ਹੈਂਡਲ ਕਰਨ ਲਈ ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ ਰਜਿਸਟਰ ਨਹੀਂ ਹੈ"
-#: gio/gfileenumerator.c:212
+#: gio/gfileenumerator.c:214
msgid "Enumerator is closed"
msgstr "ਈਨੂਮੀਟਰੇਟਰ ਬੰਦ ਹੈ"
-#: gio/gfileenumerator.c:219 gio/gfileenumerator.c:278
-#: gio/gfileenumerator.c:377 gio/gfileenumerator.c:476
+#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "ਫਾਇਲ ਈਨੂਮੀਟਰੇਟਰ ਗੰਭੀਰ ਕਾਰਵਾਈ ਕਰ ਚੁੱਕਾ ਹੈ"
-#: gio/gfileenumerator.c:368 gio/gfileenumerator.c:467
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "ਫਾਇਲ ਈਨੂਮੀਟਰੇਟਰ ਪਹਿਲਾਂ ਹੀ ਬੰਦ ਹੈ"
-#: gio/gfileicon.c:236
+#: gio/gfileicon.c:252
#, c-format
-#| msgid "Can't handle version %d of GFileIcon encoding"
msgid "Can’t handle version %d of GFileIcon encoding"
msgstr "GFileIcon ਇੰਕੋਡਿੰਗ ਦਾ %d ਵਰਜਨ ਹੈਂਡਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-#: gio/gfileicon.c:246
+#: gio/gfileicon.c:262
msgid "Malformed input data for GFileIcon"
msgstr "GFileIcon ਲਈ ਨਿਕਾਰਾ ਇੰਪੁੱਟ ਡਾਟਾ"
-#: gio/gfileinputstream.c:149 gio/gfileinputstream.c:394
-#: gio/gfileiostream.c:167 gio/gfileoutputstream.c:164
-#: gio/gfileoutputstream.c:497
-#| msgid "Stream doesn't support query_info"
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
+#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
+#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "ਸਟਰੀਮ query_info ਲਈ ਸਹਾਇਕ ਨਹੀਂ"
-#: gio/gfileinputstream.c:325 gio/gfileiostream.c:379
-#: gio/gfileoutputstream.c:371
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
+#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "ਸਟਰੀਮ ਉੱਤੇ ਸੀਕ ਸਹਿਯੋਗੀ ਨਹੀਂ"
-#: gio/gfileinputstream.c:369
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "ਇੰਪੁੱਟ ਸਟਰੀਮ ਉੱਤੇ ਟਰਾਂਸਕੇਟ ਮਨਜ਼ੂਰ ਨਹੀਂ"
-#: gio/gfileiostream.c:455 gio/gfileoutputstream.c:447
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "ਸਟਰੀਮ ਉੱਤੇ ਟਰਾਂਸਕੇਟ ਸਹਿਯੋਗੀ ਨਹੀਂ"
-#: gio/ghttpproxy.c:91 gio/gresolver.c:386 gio/gresolver.c:538
-#: glib/gconvert.c:1777
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "ਗਲਤ ਹੋਸਟ-ਨਾਂ"
-#: gio/ghttpproxy.c:143
+#: gio/ghttpproxy.c:145
msgid "Bad HTTP proxy reply"
msgstr "ਖ਼ਰਾਬ HTTP ਪਰਾਕਸੀ ਜਵਾਬ"
-#: gio/ghttpproxy.c:159
+#: gio/ghttpproxy.c:161
msgid "HTTP proxy connection not allowed"
msgstr "HTTP ਪਰਾਕਸੀ ਕਨੈਕਸ਼ਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ"
-#: gio/ghttpproxy.c:164
+#: gio/ghttpproxy.c:166
msgid "HTTP proxy authentication failed"
msgstr "HTTP ਪਰਾਕਸੀ ਪਰਮਾਣਕਿਤਾ ਫੇਲ੍ਹ ਹੋਈ"
-#: gio/ghttpproxy.c:167
+#: gio/ghttpproxy.c:169
msgid "HTTP proxy authentication required"
msgstr "HTTP ਪਰਾਕਸੀ ਪਰਮਾਣਕਿਤਾ ਚਾਹੀਦੀ ਹੈ"
-#: gio/ghttpproxy.c:171
+#: gio/ghttpproxy.c:173
#, c-format
msgid "HTTP proxy connection failed: %i"
msgstr "HTTP ਪਰਾਕਸੀ ਕਨੈਕਸ਼ਨ ਫੇਲ੍ਹ ਹੈ: %i"
-#: gio/ghttpproxy.c:269
+#: gio/ghttpproxy.c:268
+#| msgid "HTTP proxy connection failed: %i"
+msgid "HTTP proxy response too big"
+msgstr "HTTP ਪਰਾਕਸੀ ਜਵਾਬ ਬਹੁਤ ਵੱਡਾ ਹੈ"
+
+#: gio/ghttpproxy.c:285
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "HTTP ਪਰਾਕਸੀ ਸਰਵਰ ਕੁਨੈਕਸ਼ਨ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ।"
-#: gio/gicon.c:298
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "ਟੋਕਨਾਂ ਦੀ ਗਲਤ ਗਿਣਤੀ (%d)"
-#: gio/gicon.c:318
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "ਕਲਾਸ ਨਾਂ %s ਲਈ ਕੋਈ ਟਾਈਪ ਨਹੀਂ"
-#: gio/gicon.c:328
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "ਟਾਈਪ %s GIcon ਇੰਟਰਫੇਸ ਲਈ ਸਥਾਪਿਤ ਨਹੀਂ"
-#: gio/gicon.c:339
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "ਟਾਈਪ %s ਕਲਾਸ ਨਹੀਂ ਹੈ"
-#: gio/gicon.c:353
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "ਨਿਕਾਰਾ ਵਰਜਨ ਨੰਬਰ: %s"
-#: gio/gicon.c:367
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "ਟਾਈਪ %s GIcon ਇੰਟਰਫੇਸ ਉੱਤੇ from_tokens() ਸਥਾਪਨ ਚਾਹੀਦਾ ਨਹੀਂ"
-#: gio/gicon.c:469
-#| msgid "Can't handle the supplied version of the icon encoding"
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "ਆਈਕਾਨ ਇੰਕੋਡਿੰਗ ਦਾ ਦਿੱਤਾ ਵਰਜਨ ਨੰਬਰ ਹੈਂਡਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-#: gio/ginetaddressmask.c:182
+#: gio/ginetaddressmask.c:184
msgid "No address specified"
msgstr "ਕੋਈ ਐਡਰੈਸ ਨਹੀਂ ਦਿੱਤਾ"
-#: gio/ginetaddressmask.c:190
+#: gio/ginetaddressmask.c:192
#, c-format
msgid "Length %u is too long for address"
msgstr "ਲੰਬਾਈ %u ਐਡਰੈਸ ਲਈ ਬਹੁਤ ਲੰਮੀ ਹੈ"
-#: gio/ginetaddressmask.c:223
+#: gio/ginetaddressmask.c:225
msgid "Address has bits set beyond prefix length"
msgstr "ਐਡਰੈਸ ਨੇ ਪ੍ਰੀ-ਫਿਕਸ ਲੰਬਾਈ ਤੋਂ ਵੱਧ ਬਿੱਟ ਸੈੱਟ ਕੀਤੇ ਹਨ"
-#: gio/ginetaddressmask.c:300
+#: gio/ginetaddressmask.c:302
#, c-format
-#| msgid "Could not parse '%s' as IP address mask"
msgid "Could not parse “%s” as IP address mask"
msgstr "“%s” ਨੂੰ IP ਐਡਰੈਸ ਮਾਸਕ ਵਜੋਂ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"
-#: gio/ginetsocketaddress.c:203 gio/ginetsocketaddress.c:220
-#: gio/gnativesocketaddress.c:109 gio/gunixsocketaddress.c:220
+#: gio/ginetsocketaddress.c:205 gio/ginetsocketaddress.c:222
+#: gio/gnativesocketaddress.c:111 gio/gunixsocketaddress.c:230
msgid "Not enough space for socket address"
msgstr "ਸਾਕਟ ਐਡਰੈੱਸ ਲਈ ਲੋੜੀਦੀ ਥਾਂ ਨਹੀਂ"
-#: gio/ginetsocketaddress.c:235
+#: gio/ginetsocketaddress.c:237
msgid "Unsupported socket address"
msgstr "ਗ਼ੈਰ-ਸਹਾਇਕ ਸਾਕਟ ਐਡਰੈੱਸ"
-#: gio/ginputstream.c:188
-#| msgid "Input stream doesn't implement read"
+#: gio/ginputstream.c:190
msgid "Input stream doesn’t implement read"
msgstr "ਇੰਪੁੱਟ ਸਟਰੀਮ ਹਾਲੇ ਪੜ੍ਹਨ ਲਈ ਨਹੀਂ ਹੈ"
@@ -1703,136 +1642,128 @@ msgstr "ਇੰਪੁੱਟ ਸਟਰੀਮ ਹਾਲੇ ਪੜ੍ਹਨ ਲਈ
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1218 gio/giostream.c:310 gio/goutputstream.c:2208
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "ਸਟਰੀਮ ਪਹਿਲਾਂ ਹੀ ਕਾਰਵਾਈ ਅਧੀਨ ਹੈ"
-#: gio/gio-tool.c:160
+#: gio/gio-tool.c:162
msgid "Copy with file"
msgstr "ਫਾਇਲ ਨਾਲ ਕਾਪੀ ਕਰੋ"
-#: gio/gio-tool.c:164
+#: gio/gio-tool.c:166
msgid "Keep with file when moved"
msgstr "ਜਦੋਂ ਭੇਜਿਆ ਜਾਵੇ ਤਾਂ ਫਾਇਲ ਰੱਖੋ"
-#: gio/gio-tool.c:205
-#| msgid ""
-#| "'%s' takes no arguments\n"
-#| "\n"
+#: gio/gio-tool.c:207
msgid "“version” takes no arguments"
msgstr "“version” ਲਈ ਕੋਈ ਆਰਗੂਮੈਂਟ ਨਹੀਂ ਹੁੰਦਾ"
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:864
+#: gio/gio-tool.c:209 gio/gio-tool.c:225 glib/goption.c:871
msgid "Usage:"
msgstr "ਵਰਤੋਂ:"
-#: gio/gio-tool.c:210
-#| msgid "Print version information and exit"
+#: gio/gio-tool.c:212
msgid "Print version information and exit."
msgstr "ਵਰਜ਼ਨ ਜਾਣਕਾਰੀ ਛਾਪੋ ਅਤੇ ਬੰਦ ਕਰੋ।"
-#: gio/gio-tool.c:226
-#| msgid "Commands:\n"
+#: gio/gio-tool.c:228
msgid "Commands:"
msgstr "ਕਮਾਂਡਾਂ:"
-#: gio/gio-tool.c:229
+#: gio/gio-tool.c:231
msgid "Concatenate files to standard output"
msgstr ""
-#: gio/gio-tool.c:230
+#: gio/gio-tool.c:232
msgid "Copy one or more files"
msgstr "ਇੱਕ ਜਾਂ ਵੱਧ ਫਾਇਲਾਂ ਦੀ ਕਾਪੀ ਕਰੋ"
-#: gio/gio-tool.c:231
-#| msgid "Show GApplication options"
+#: gio/gio-tool.c:233
msgid "Show information about locations"
msgstr "ਟਿਕਾਣੇ ਲਈ ਜਾਣਕਾਰੀ ਵੇਖੋ"
-#: gio/gio-tool.c:232
+#: gio/gio-tool.c:234
+#| msgid "List static actions for an application (from .desktop file)"
+msgid "Launch an application from a desktop file"
+msgstr "ਡੈਸਕਟਾਪ ਫ਼ਾਇਲ ਤੋਂ ਐਪਲੀਕੇਸ਼ਨ ਚਲਾਓ"
+
+#: gio/gio-tool.c:235
msgid "List the contents of locations"
msgstr "ਟਿਕਾਣਿਆਂ ਦੀ ਸਮੱਗਰੀ ਸੂਚੀਬੱਧ ਕਰੋ"
-#: gio/gio-tool.c:233
+#: gio/gio-tool.c:236
msgid "Get or set the handler for a mimetype"
msgstr "ਮਾਈਮ-ਕਿਸਮ ਲਈ ਹੈਂਡਲਰ ਲਵੋ ਜਾਂ ਸੈੱਟ ਕਰੋ"
-#: gio/gio-tool.c:234
-#| msgid "Can't open directory"
+#: gio/gio-tool.c:237
msgid "Create directories"
msgstr "ਡਾਇਰਕੈਟਰੀਆਂ ਬਣਾਓ"
-#: gio/gio-tool.c:235
+#: gio/gio-tool.c:238
msgid "Monitor files and directories for changes"
msgstr "ਤਬਦੀਲੀਆਂ ਲਈ ਫਾਇਲਾਂ ਅਤੇ ਡਾਇਰੈਕਟਰੀਆਂ ਦੀ ਨਿਗਰਾਨੀ ਕਰੋ"
-#: gio/gio-tool.c:236
+#: gio/gio-tool.c:239
msgid "Mount or unmount the locations"
msgstr "ਟਿਕਾਣੇ ਮਾਊਂਟ ਜਾਂ ਅਣ-ਮਾਊਂਟ ਕਰੋ।"
-#: gio/gio-tool.c:237
+#: gio/gio-tool.c:240
msgid "Move one or more files"
msgstr "ਇੱਕ ਜਾਂ ਵੱਧ ਫਾਇਲਾਂ ਭੇਜੋ"
-#: gio/gio-tool.c:238
+#: gio/gio-tool.c:241
msgid "Open files with the default application"
msgstr "ਡਿਫਾਲਟ ਐਪਲੀਕੇਸ਼ਨ ਨਾਲ ਫਾਇਲਾਂ ਖੋਲ੍ਹੋ"
-#: gio/gio-tool.c:239
+#: gio/gio-tool.c:242
msgid "Rename a file"
msgstr "ਫਾਇਲ ਦਾ ਨਾਂ ਬਦਲੋ"
-#: gio/gio-tool.c:240
+#: gio/gio-tool.c:243
msgid "Delete one or more files"
msgstr "ਇੱਕ ਜਾਂ ਵੱਧ ਫਾਇਲਾਂ ਹਟਾਓ"
-#: gio/gio-tool.c:241
+#: gio/gio-tool.c:244
msgid "Read from standard input and save"
msgstr ""
-#: gio/gio-tool.c:242
+#: gio/gio-tool.c:245
msgid "Set a file attribute"
msgstr "ਫਾਇਲ ਗੁਣ ਸੈੱਟ ਕਰੋ"
-#: gio/gio-tool.c:243
-#| msgid "The file descriptor to write to"
+#: gio/gio-tool.c:246
msgid "Move files or directories to the trash"
msgstr "ਫਾਇਲਾਂ ਜਾਂ ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਰੱਦੀ ਵਿੱਚ ਭੇਜੋ"
-#: gio/gio-tool.c:244
+#: gio/gio-tool.c:247
msgid "Lists the contents of locations in a tree"
msgstr ""
-#: gio/gio-tool.c:246
+#: gio/gio-tool.c:249
#, c-format
-#| msgid ""
-#| "Use '%s help COMMAND' to get detailed help.\n"
-#| "\n"
msgid "Use %s to get detailed help.\n"
msgstr "ਵੇਰਵੇ ਸਮੇਤ ਮਦਦ ਲੈਣ ਲਈ %s ਵਰਤੋ।\n"
-#: gio/gio-tool-cat.c:87
-#, fuzzy
+#: gio/gio-tool-cat.c:89
#| msgid "Error writing to file: %s"
msgid "Error writing to stdout"
-msgstr "ਫਾਇਲ ਲਿਖਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
+msgstr "stdout ਲਿਖਣ ਦੌਰਾਨ ਗਲਤੀ"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:133 gio/gio-tool-info.c:282 gio/gio-tool-list.c:165
-#: gio/gio-tool-mkdir.c:48 gio/gio-tool-monitor.c:37 gio/gio-tool-monitor.c:39
-#: gio/gio-tool-monitor.c:41 gio/gio-tool-monitor.c:43
-#: gio/gio-tool-monitor.c:203 gio/gio-tool-mount.c:1212 gio/gio-tool-open.c:70
-#: gio/gio-tool-remove.c:48 gio/gio-tool-rename.c:45 gio/gio-tool-set.c:89
-#: gio/gio-tool-trash.c:81 gio/gio-tool-tree.c:239
-#| msgid "ACTION"
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
+#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
+#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "ਟਿਕਾਣਾ"
-#: gio/gio-tool-cat.c:138
+#: gio/gio-tool-cat.c:140
msgid "Concatenate files and print to standard output."
msgstr "ਫਾਇਲਾਂ ਨੂੰ ਜੋੜਦੀ ਹੈ ਅਤੇ ਸਟੈਂਡਰਡ ਆਉਟਪੁੱਟ ਉੱਤੇ ਪਰਿੰਟ ਕਰਦੀ ਹੈ।"
-#: gio/gio-tool-cat.c:140
+#: gio/gio-tool-cat.c:142
msgid ""
"gio cat works just like the traditional cat utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1842,152 +1773,158 @@ msgstr ""
"ਬਜਾਏ GIO ਟਿਕਾਣੇ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ: ਜਿਵੇਂ ਤੁਸੀਂ ਟਿਕਾਣੇ ਵਜੋਂ\n"
"smb://server/resource/file.txt ਵਰਤ ਸਕਦੇ ਹੋ।"
-#: gio/gio-tool-cat.c:162 gio/gio-tool-info.c:313 gio/gio-tool-mkdir.c:76
-#: gio/gio-tool-monitor.c:228 gio/gio-tool-mount.c:1263 gio/gio-tool-open.c:96
-#: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:136
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
+#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "ਕੋਈ ਟਿਕਾਣਾ ਨਹੀਂ ਦਿੱਤਾ"
-#: gio/gio-tool-copy.c:42 gio/gio-tool-move.c:38
-#| msgid "Target file is a directory"
+#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
msgid "No target directory"
msgstr "ਟਾਰਗੇਟ ਡਾਇਰੈਕਟਰੀ ਹੈ"
-#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:39
+#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41
msgid "Show progress"
msgstr "ਤਰੱਕੀ ਵੇਖਾਓ"
-#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:40
+#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:42
msgid "Prompt before overwrite"
msgstr "ਉੱਤੇ ਲਿਖਣ ਤੋਂ ਪਹਿਲਾਂ ਪੁੱਛੋ"
-#: gio/gio-tool-copy.c:45
+#: gio/gio-tool-copy.c:48
msgid "Preserve all attributes"
msgstr "ਸਭ ਗੁਣ ਸੰਭਾਲੀ ਰੱਖੋ"
-#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
-#| msgid "Backup file creation failed"
+#: gio/gio-tool-copy.c:49 gio/gio-tool-move.c:43 gio/gio-tool-save.c:51
msgid "Backup existing destination files"
msgstr "ਮੌਜੂਦਾ ਟਿਕਾਣਾ ਫਾਇਲਾਂ ਦਾ ਬੈਕਅੱਪ ਬਣਾਓ"
-#: gio/gio-tool-copy.c:47
+#: gio/gio-tool-copy.c:50
msgid "Never follow symbolic links"
msgstr "ਸਿੰਬੋਲਿਕ ਲਿੰਕ ਕਦੇ ਨਾ ਵੇਖੋ"
-#: gio/gio-tool-copy.c:72 gio/gio-tool-move.c:67
+#: gio/gio-tool-copy.c:51
+msgid "Use default permissions for the destination"
+msgstr "ਟਿਕਾਣੇ ਲਈ ਡਿਫ਼ਾਲਟ ਇਜ਼ਾਜ਼ਤਾਂ ਵਰਤੋਂ"
+
+#: gio/gio-tool-copy.c:76 gio/gio-tool-move.c:69
#, c-format
msgid "Transferred %s out of %s (%s/s)"
msgstr "%2$s ਵਿੱਚੋਂ %1$s ਟਰਾਂਸਫਰ ਹੋਏ (%3$s/s)"
#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:98 gio/gio-tool-move.c:94
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96
msgid "SOURCE"
msgstr "ਸਰੋਤ"
#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:98 gio/gio-tool-move.c:94 gio/gio-tool-save.c:160
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96 gio/gio-tool-save.c:162
msgid "DESTINATION"
msgstr "ਟਿਕਾਣਾ"
-#: gio/gio-tool-copy.c:103
+#: gio/gio-tool-copy.c:107
msgid "Copy one or more files from SOURCE to DESTINATION."
msgstr "SOURCE ਤੋਂ DESTINATION ਤੋਂ ਇੱਕ ਜਾਂ ਵੱਧ ਫਾਇਲਾਂ ਕਾਪੀ ਕਰੋ।"
-#: gio/gio-tool-copy.c:105
+#: gio/gio-tool-copy.c:109
msgid ""
"gio copy is similar to the traditional cp utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location."
msgstr ""
-#: gio/gio-tool-copy.c:147
+#: gio/gio-tool-copy.c:151
#, c-format
-#| msgid "The resource at '%s' is not a directory"
msgid "Destination %s is not a directory"
msgstr "ਟਿਕਾਣਾ %s ਡਾਇਰੈਕਟਰੀ ਨਹੀਂ ਹੈ"
-#: gio/gio-tool-copy.c:192 gio/gio-tool-move.c:186
+#: gio/gio-tool-copy.c:198 gio/gio-tool-move.c:188
#, c-format
msgid "%s: overwrite “%s”? "
msgstr "“%s: “%s” ਉੱਤੇ ਲਿਖਣਾ?"
-#: gio/gio-tool-info.c:34
-#| msgid "List available actions"
+#: gio/gio-tool-info.c:39
msgid "List writable attributes"
msgstr "ਲਿਖਣਯੋਗ ਗੁਣ ਵੇਖੋ"
-#: gio/gio-tool-info.c:35
-#| msgid "Error getting filesystem info: %s"
+#: gio/gio-tool-info.c:40
msgid "Get file system info"
msgstr "ਫਾਇਲ ਸਿਸਟਮ ਜਾਣਕਾਰੀ ਲਵੋ"
-#: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
msgid "The attributes to get"
msgstr "ਲੈਣ ਲਈ ਗੁਣ"
-#: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
msgid "ATTRIBUTES"
msgstr "ਗੁਣ"
-#: gio/gio-tool-info.c:37 gio/gio-tool-list.c:38 gio/gio-tool-set.c:34
+#: gio/gio-tool-info.c:42 gio/gio-tool-list.c:40 gio/gio-tool-set.c:37
msgid "Don’t follow symbolic links"
msgstr "ਸਿਮ-ਲਿੰਕ ਨਾ ਵਰਤੋਂ"
-#: gio/gio-tool-info.c:75
+#: gio/gio-tool-info.c:105
msgid "attributes:\n"
msgstr "ਗੁਣ:\n"
#. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:127
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "ਡਿਸਪਲੇਅ ਨਾਂ: %s\n"
#. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:132
+#: gio/gio-tool-info.c:176
#, c-format
msgid "edit name: %s\n"
msgstr "ਨਾਂ ਸੋਧੋ: %s\n"
-#: gio/gio-tool-info.c:138
+#: gio/gio-tool-info.c:184
#, c-format
-#| msgid "names"
msgid "name: %s\n"
msgstr "ਨਾਂ: %s\n"
-#: gio/gio-tool-info.c:145
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "ਕਿਸਮ: %s\n"
-#: gio/gio-tool-info.c:151
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "ਆਕਾਰ:"
-#: gio/gio-tool-info.c:156
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "ਲੁਕਵਾਂ\n"
-#: gio/gio-tool-info.c:159
+#: gio/gio-tool-info.c:206
#, c-format
-#| msgid "Error: %s\n"
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:228
+#: gio/gio-tool-info.c:213
+#, c-format
+msgid "local path: %s\n"
+msgstr "ਲੋਕਲ ਮਾਰਗ: %s\n"
+
+#: gio/gio-tool-info.c:247
+#, c-format
+msgid "unix mount: %s%s %s %s %s\n"
+msgstr "ਯੂਨੈਕਸ ਮਾਊਂਟ: %s%s %s %s %s\n"
+
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "ਸੈੱਟ ਕਰਨ ਯੋਗ ਗੁਣ:\n"
-#: gio/gio-tool-info.c:252
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "ਲਿਖਣਯੋਗ ਗੁਣ ਨਾਂ-ਥਾਂ:\n"
-#: gio/gio-tool-info.c:287
-#| msgid "Show GApplication options"
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "ਟਿਕਾਣੇ ਲਈ ਜਾਣਕਾਰੀ ਵੇਖੋ।"
-#: gio/gio-tool-info.c:289
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2001,24 +1938,67 @@ msgstr ""
"ਦੇ GIO ਨਾਂ ਰਾਹੀਂ ਦਿੱਤਾ ਜਾ ਸਕਦਾ ਹੈ ਜਿਵੇਂ ਕਿ standard::icon, ਜਾਂ ਨਾਂ ਥਾਂ ਰਾਹੀਂ\n"
"ਜਿਵੇਂ ਕਿ ਯੂਨੈਕਸ ਜਾਂ \"*\", ਜੋ ਕਿ ਸਾਰੇ ਗੁਣਾਂ ਨਾਲ ਮਿਲਦੇ ਹਨ"
-#: gio/gio-tool-list.c:36 gio/gio-tool-tree.c:32
+#. Translators: commandline placeholder
+#: gio/gio-tool-launch.c:56
+msgid "DESKTOP-FILE [FILE-ARG …]"
+msgstr ""
+
+#: gio/gio-tool-launch.c:59
+msgid ""
+"Launch an application from a desktop file, passing optional filename "
+"arguments to it."
+msgstr ""
+
+#: gio/gio-tool-launch.c:79
+#| msgid "No destination given"
+msgid "No desktop file given"
+msgstr "ਕੋਈ ਡੈਸਕਟਾਪ ਫਾਇਲ ਨਹੀਂ ਦਿੱਤੀ"
+
+#: gio/gio-tool-launch.c:87
+#| msgid "There is no GCredentials support for your platform"
+msgid "The launch command is not currently supported on this platform"
+msgstr "ਇਸ ਪਲੇਟਫ਼ਾਰਮ ਉੱਤੇ ਕਮਾਂਡ ਚਲਾਉਣ ਲਈ ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
+
+#: gio/gio-tool-launch.c:100
+#, c-format
+#| msgid "Unable to trash file %s: %s"
+msgid "Unable to load ‘%s‘: %s"
+msgstr "‘%s‘ ਲੋਡ ਕਰਨ ਲਈ ਅਸਮਰੱਥ: %s"
+
+#: gio/gio-tool-launch.c:109
+#, c-format
+#| msgid "Failed to load info for handler “%s”"
+msgid "Unable to load application information for ‘%s‘"
+msgstr "‘%s‘ ਲਈ ਐਪਲੀਕੇਸ਼ਨ ਜਾਣਕਾਰੀ ਲੋਡ ਕਰਨ ਲਈ ਅਸਮਰੱਥ ਹੈ"
+
+#: gio/gio-tool-launch.c:121
+#, c-format
+#| msgid "Error launching application: %s"
+msgid "Unable to launch application ‘%s’: %s"
+msgstr "‘%s’ ਐਪਲੀਕੇਸ਼ਨ ਚਲਾਉਣ ਲਈ ਅਸਮਰੱਥ: %s"
+
+#: gio/gio-tool-list.c:38 gio/gio-tool-tree.c:34
msgid "Show hidden files"
msgstr "ਲੁਕਵੀਆਂ ਫਾਈਲਾਂ ਵੇਖੋ"
-#: gio/gio-tool-list.c:37
-#| msgid "use a long listing format"
+#: gio/gio-tool-list.c:39
msgid "Use a long listing format"
msgstr "ਲੰਮਾ ਲਿਸਟ ਫਾਰਮੈਟ ਵਰਤੋਂ"
-#: gio/gio-tool-list.c:39
+#: gio/gio-tool-list.c:41
+#| msgid "display name: %s\n"
+msgid "Print display names"
+msgstr "ਡਿਸਪਲੇਅ ਨਾਂ ਛਾਪੋ"
+
+#: gio/gio-tool-list.c:42
msgid "Print full URIs"
msgstr "ਪੂਰੇ URI ਛਾਪੋ"
-#: gio/gio-tool-list.c:170
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "ਟਿਕਾਣਿਆਂ ਦੀ ਸਮੱਗਰੀ ਸੂਚੀਬੱਧ ਕਰੋ।"
-#: gio/gio-tool-list.c:172
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2031,232 +2011,221 @@ msgstr ""
"ਦੇ GIO ਨਾਂ ਰਾਹੀਂ ਦਿੱਤਾ ਜਾ ਸਕਦਾ ਹੈ ਜਿਵੇਂ ਕਿ standard::icon "
#. Translators: commandline placeholder
-#: gio/gio-tool-mime.c:71
+#: gio/gio-tool-mime.c:73
msgid "MIMETYPE"
msgstr "ਮਾਈਮ-ਕਿਸਮ"
-#: gio/gio-tool-mime.c:71
+#: gio/gio-tool-mime.c:73
msgid "HANDLER"
msgstr "ਹੈਂਡਲਰ"
-#: gio/gio-tool-mime.c:76
+#: gio/gio-tool-mime.c:78
msgid "Get or set the handler for a mimetype."
msgstr "ਮਾਈਮ-ਕਿਸਮ ਲਈ ਹੈਂਡਲਰ ਲਵੋ ਜਾਂ ਸੈੱਟ ਕਰੋ।"
-#: gio/gio-tool-mime.c:78
+#: gio/gio-tool-mime.c:80
msgid ""
"If no handler is given, lists registered and recommended applications\n"
"for the mimetype. If a handler is given, it is set as the default\n"
"handler for the mimetype."
msgstr ""
-#: gio/gio-tool-mime.c:100
+#: gio/gio-tool-mime.c:102
msgid "Must specify a single mimetype, and maybe a handler"
msgstr ""
-#: gio/gio-tool-mime.c:116
+#: gio/gio-tool-mime.c:118
#, c-format
msgid "No default applications for “%s”\n"
msgstr "“%s” ਲਈ ਕੋਈ ਡਿਫਾਲਟ ਐਪਲੀਕੇਸ਼ਨ ਨਹੀਂ ਹੈ\n"
-#: gio/gio-tool-mime.c:122
+#: gio/gio-tool-mime.c:124
#, c-format
-#| msgid "invalid application id: '%s'\n"
msgid "Default application for “%s”: %s\n"
msgstr "“%s” ਲਈ ਡਿਫਾਲਟ ਐਪਲੀਕੇਸ਼ਨ: %s\n"
-#: gio/gio-tool-mime.c:127
-#| msgid "List applications"
+#: gio/gio-tool-mime.c:129
msgid "Registered applications:\n"
msgstr "ਰਜਿਸਟਰ ਹੋਈਆਂ ਐਪਲੀਕੇਸ਼ਨ:\n"
-#: gio/gio-tool-mime.c:129
-#| msgid "List applications"
+#: gio/gio-tool-mime.c:131
msgid "No registered applications\n"
msgstr "ਕੋਈ ਰਜਿਸਟਰ ਹੋਈ ਐਪਲੀਕੇਸ਼ਨ ਨਹੀਂ\n"
-#: gio/gio-tool-mime.c:140
-#| msgid "List applications"
+#: gio/gio-tool-mime.c:142
msgid "Recommended applications:\n"
msgstr "ਸਿਫਾਰਸ਼ੀ ਕੀਤੀਆਂ ਐਪਲੀਕੇਸ਼ਨ:\n"
-#: gio/gio-tool-mime.c:142
-#| msgid "Can't find application"
+#: gio/gio-tool-mime.c:144
msgid "No recommended applications\n"
msgstr "ਕੋਈ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਐਪਲੀਕੇਸ਼ਨ ਨਹੀਂ ਹੈ\n"
-#: gio/gio-tool-mime.c:162
+#: gio/gio-tool-mime.c:164
#, c-format
-#| msgid "Failed to read from file '%s': %s"
msgid "Failed to load info for handler “%s”"
msgstr "“%s” ਹੈਂਡਲਰ ਲਈ ਜਾਣਕਾਰੀ ਲੋਡ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ"
-#: gio/gio-tool-mime.c:168
+#: gio/gio-tool-mime.c:170
#, c-format
msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
msgstr "“%s” ਨੂੰ “%s” ਲਈ ਡਿਫਾਲਟ ਹੈਂਡਲਰ ਸੈੱਟ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ: %s\n"
-#: gio/gio-tool-mkdir.c:31
-#| msgid "Can't open directory"
+#: gio/gio-tool-mkdir.c:33
msgid "Create parent directories"
msgstr "ਮੁੱਢਲੀਆਂ ਡਾਇਰੈਕਟਰੀਆਂ ਬਣਾਓ"
-#: gio/gio-tool-mkdir.c:52
-#| msgid "Can't open directory"
+#: gio/gio-tool-mkdir.c:54
msgid "Create directories."
msgstr "ਡਾਇਰਕੈਟਰੀਆਂ ਬਣਾਉ।"
-#: gio/gio-tool-mkdir.c:54
+#: gio/gio-tool-mkdir.c:56
msgid ""
"gio mkdir is similar to the traditional mkdir utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/mydir as location."
msgstr ""
-#: gio/gio-tool-monitor.c:37
+#: gio/gio-tool-monitor.c:39
msgid "Monitor a directory (default: depends on type)"
msgstr ""
-#: gio/gio-tool-monitor.c:39
+#: gio/gio-tool-monitor.c:41
msgid "Monitor a file (default: depends on type)"
msgstr ""
-#: gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43
msgid "Monitor a file directly (notices changes made via hardlinks)"
msgstr ""
-#: gio/gio-tool-monitor.c:43
+#: gio/gio-tool-monitor.c:45
msgid "Monitors a file directly, but doesn’t report changes"
msgstr ""
-#: gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:47
msgid "Report moves and renames as simple deleted/created events"
msgstr ""
-#: gio/gio-tool-monitor.c:47
+#: gio/gio-tool-monitor.c:49
msgid "Watch for mount events"
-msgstr ""
+msgstr "ਮਾਊਂਟ ਈਵੈਂਟ ਲਈ ਨਿਗਰਾਨੀ"
-#: gio/gio-tool-monitor.c:208
+#: gio/gio-tool-monitor.c:211
msgid "Monitor files or directories for changes."
msgstr ""
-#: gio/gio-tool-mount.c:63
+#: gio/gio-tool-mount.c:65
msgid "Mount as mountable"
msgstr "ਮਾਊਂਟ ਕਰਨ ਯੋਗ ਵਜੋਂ ਮਾਊਂਟ"
-#: gio/gio-tool-mount.c:64
-msgid "Mount volume with device file"
-msgstr "ਜੰਤਰ ਫਾਇਲ ਨਾਲ ਵਾਲੀਅਮ ਮਾਊਂਟ"
+#: gio/gio-tool-mount.c:66
+#| msgid "Mount volume with device file"
+msgid "Mount volume with device file, or other identifier"
+msgstr "ਡਿਵਾਈਸ ਫ਼ਾਇਲ ਜਾਂ ਹੋਰ ਪਛਾਣਕਰਤਾ ਨਾਲ ਵਾਲੀਅਮ ਮਾਊਂਟ ਕਰੋ"
-#: gio/gio-tool-mount.c:64 gio/gio-tool-mount.c:67
-msgid "DEVICE"
-msgstr "ਜੰਤਰ"
+#: gio/gio-tool-mount.c:66
+msgid "ID"
+msgstr "ID"
-#: gio/gio-tool-mount.c:65
+#: gio/gio-tool-mount.c:67
msgid "Unmount"
msgstr "ਅਣ-ਮਾਊਂਟ"
-#: gio/gio-tool-mount.c:66
+#: gio/gio-tool-mount.c:68
msgid "Eject"
msgstr "ਬਾਹਰ ਕੱਢੋ"
-#: gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:69
msgid "Stop drive with device file"
msgstr "ਡਿਵਾਈਸ ਫਾਇਲ ਨਾਲ ਡਰਾਇਵ ਰੋਕੋ"
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:69
+msgid "DEVICE"
+msgstr "ਜੰਤਰ"
+
+#: gio/gio-tool-mount.c:70
msgid "Unmount all mounts with the given scheme"
msgstr "ਦਿੱਤੀ ਸਕੀਮ ਨਾਲ ਸਭ ਮਾਊਂਟ ਅਣ-ਮਾਊਂਟ ਕਰੋ"
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:70
msgid "SCHEME"
msgstr "ਸਕੀਮ"
-#: gio/gio-tool-mount.c:69
+#: gio/gio-tool-mount.c:71
msgid "Ignore outstanding file operations when unmounting or ejecting"
msgstr ""
"ਜਦੋਂ ਅਣਮਾਊਂਟ ਜਾਂ ਬਾਹਰ ਕੱਢਣਾ ਹੋਵੇ ਤਾਂ ਬਾਕੀ ਪਈਆਂ ਫਾਈਲਾਂ ਕਾਰਵਾਈਆਂ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰੋ"
-#: gio/gio-tool-mount.c:70
+#: gio/gio-tool-mount.c:72
msgid "Use an anonymous user when authenticating"
msgstr "ਪਰਮਾਣਿਤ ਕਰਨ ਦੇ ਦੌਰਾਨ ਅਣਪਛਾਤੇ ਵਰਤੋਂਕਾਰ ਵਰਤੋਂ"
#. Translator: List here is a verb as in 'List all mounts'
-#: gio/gio-tool-mount.c:72
+#: gio/gio-tool-mount.c:74
msgid "List"
msgstr "ਸੂਚੀ"
-#: gio/gio-tool-mount.c:73
+#: gio/gio-tool-mount.c:75
msgid "Monitor events"
msgstr "ਈਵੈਂਟਾਂ ਦੀ ਨਿਗਰਾਨੀ"
-#: gio/gio-tool-mount.c:74
-#| msgid "Show help options"
+#: gio/gio-tool-mount.c:76
msgid "Show extra information"
msgstr "ਹੋਰ ਜਾਣਕਾਰੀ ਵੇਖਾਓ"
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:77
msgid "The numeric PIM when unlocking a VeraCrypt volume"
msgstr ""
-#: gio/gio-tool-mount.c:75
-#| msgctxt "GDateTime"
-#| msgid "PM"
+#: gio/gio-tool-mount.c:77
msgid "PIM"
msgstr "PIM"
-#: gio/gio-tool-mount.c:76
+#: gio/gio-tool-mount.c:78
msgid "Mount a TCRYPT hidden volume"
msgstr ""
-#: gio/gio-tool-mount.c:77
+#: gio/gio-tool-mount.c:79
msgid "Mount a TCRYPT system volume"
msgstr ""
-#: gio/gio-tool-mount.c:265 gio/gio-tool-mount.c:297
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "ਅਣਪਛਾਤੀ ਪਹੁੰਚ ਲਈ ਇਨਕਾਰ ਕੀਤਾ"
-#: gio/gio-tool-mount.c:522
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "ਜੰਤਰ ਫਾਇਲ ਲਈ ਕੋਈ ਡਰਾਇਵ ਨਹੀਂ ਹੈ"
-#: gio/gio-tool-mount.c:975
-#, c-format
-msgid "Mounted %s at %s\n"
-msgstr "%s %s ਉੱਤੇ ਮਾਊਂਟ ਹੈ\n"
-
-#: gio/gio-tool-mount.c:1027
-msgid "No volume for device file"
-msgstr "ਜੰਤਰ ਫਾਇਲ ਲਈ ਕੋਈ ਵਾਲੀਅਮ ਨਹੀਂ ਲੱਭਿਆ"
+#: gio/gio-tool-mount.c:1051
+#| msgid "No volume for device file"
+msgid "No volume for given ID"
+msgstr "ਦਿੱਤੇ ID ਲਈ ਕੋਈ ਵਾਲੀਅਮ ਨਹੀਂ ਹੈ"
-#: gio/gio-tool-mount.c:1216
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "ਟਿਕਾਣੇ ਮਾਊਂਟ ਜਾਂ ਅਣ-ਮਾਊਂਟ ਕਰੋ।"
-#: gio/gio-tool-move.c:42
+#: gio/gio-tool-move.c:44
msgid "Don’t use copy and delete fallback"
msgstr "ਕਾਪੀ ਤੇ ਹਟਾਓ ਫਾਲਬੈਕ ਨੂੰ ਨਾ ਵਰਤੋਂ"
-#: gio/gio-tool-move.c:99
+#: gio/gio-tool-move.c:101
msgid "Move one or more files from SOURCE to DEST."
msgstr "SOURCE ਤੋਂ DEST ਤੋਂ ਇੱਕ ਜਾਂ ਵੱਧ ਫਾਇਲਾਂ ਭੇਜੋ।"
-#: gio/gio-tool-move.c:101
+#: gio/gio-tool-move.c:103
msgid ""
"gio move is similar to the traditional mv utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
"like smb://server/resource/file.txt as location"
msgstr ""
-#: gio/gio-tool-move.c:143
+#: gio/gio-tool-move.c:145
#, c-format
-#| msgid "Target file is a directory"
msgid "Target %s is not a directory"
msgstr "ਟਾਰਗੇਟ %s ਡਾਇਰੈਕਟਰੀ ਨਹੀਂ ਹੈ"
-#: gio/gio-tool-open.c:75
+#: gio/gio-tool-open.c:77
msgid ""
"Open files with the default application that\n"
"is registered to handle files of this type."
@@ -2264,177 +2233,207 @@ msgstr ""
"ਇਸ ਟਾਈਪ ਦੀਆਂ ਫਾਇਲਾਂ ਵਰਤਣ ਲਈ ਰਜਿਸਟਰ\n"
"ਡਿਫਾਲਟ ਐਪਲੀਕੇਸ਼ਨ ਨਾਲ ਇਹ ਫਾਇਲਾਂ ਖੋਲ੍ਹੋ।"
-#: gio/gio-tool-remove.c:31 gio/gio-tool-trash.c:31
+#: gio/gio-tool-remove.c:33 gio/gio-tool-trash.c:35
msgid "Ignore nonexistent files, never prompt"
msgstr "ਨਾ-ਮੌਜੂਦ ਫਾਇਲਾਂ ਅਣਡਿੱਠੀਆਂ, ਕਦੇ ਨਾ ਪੁੱਛੋ"
-#: gio/gio-tool-remove.c:52
+#: gio/gio-tool-remove.c:54
msgid "Delete the given files."
msgstr "ਦਿੱਤੀਆਂ ਫਾਇਲਾਂ ਹਟਾਉ।"
-#: gio/gio-tool-rename.c:45
+#: gio/gio-tool-rename.c:47
msgid "NAME"
msgstr "ਨਾਂ"
-#: gio/gio-tool-rename.c:50
+#: gio/gio-tool-rename.c:52
msgid "Rename a file."
msgstr "ਫਾਇਲ ਦਾ ਨਾਂ ਬਦਲੋ।"
-#: gio/gio-tool-rename.c:70
-#| msgid "Missing argument for %s"
+#: gio/gio-tool-rename.c:72
msgid "Missing argument"
msgstr "ਆਰਗੂਮੈਂਟ ਗੁੰਮ ਹੈ"
-#: gio/gio-tool-rename.c:76 gio/gio-tool-save.c:190 gio/gio-tool-set.c:137
-#| msgid ""
-#| "'%s' takes no arguments\n"
-#| "\n"
+#: gio/gio-tool-rename.c:78 gio/gio-tool-save.c:192 gio/gio-tool-set.c:150
msgid "Too many arguments"
msgstr "ਬਹੁਤ ਸਾਰੇ ਆਰਗੂਮੈਂਟ"
-#: gio/gio-tool-rename.c:95
+#: gio/gio-tool-rename.c:97
#, c-format
msgid "Rename successful. New uri: %s\n"
msgstr "ਨਾਂ ਠੀਕ ਤਰ੍ਹਾਂ ਬਦਲਿਆ ਗਿਆ। ਨਵਾਂ uri: %s\n"
-#: gio/gio-tool-save.c:50
+#: gio/gio-tool-save.c:52
msgid "Only create if not existing"
msgstr "ਕੇਵਲ ਤਾਂ ਹੀ ਬਣਾਓ, ਜੇ ਮੌਜੂਦ ਨਾ ਹੋਵੇ"
-#: gio/gio-tool-save.c:51
+#: gio/gio-tool-save.c:53
msgid "Append to end of file"
msgstr "ਫਾਇਲ ਦੇ ਅੰਤ ਵਿੱਚ ਸ਼ਾਮਲ"
-#: gio/gio-tool-save.c:52
+#: gio/gio-tool-save.c:54
msgid "When creating, restrict access to the current user"
msgstr "ਜਦੋਂ ਬਣਾਉਣਾ ਹੋਵੇ ਤਾਂ ਮੌਜੂਦਾ ਵਰਤੋਂਕਾਰ ਵਲੋਂ ਵਰਤੋਂ ਲਈ ਹੀ ਸੀਮਿਤ ਕਰੋ"
-#: gio/gio-tool-save.c:53
+#: gio/gio-tool-save.c:55
msgid "When replacing, replace as if the destination did not exist"
msgstr ""
"ਜਦੋਂ ਤਬਦੀਲ ਕਰਨਾ ਹੋਵੇ ਤਾਂ ਇੰਝ ਤਬਦੀਲ ਕਰੋ ਕਿ ਟਿਕਾਣੇ ਉੱਤੇ ਕੁਝ ਵੀ ਮੌਜੂਦ ਨਹੀਂ ਸੀ"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:55
+#: gio/gio-tool-save.c:57
msgid "Print new etag at end"
msgstr "ਅੰਤ ਉੱਤੇ ਨਵਾਂ etag ਲਿਖੋ"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:59
msgid "The etag of the file being overwritten"
msgstr "ਉੱਤੇ ਲਿਖੀ ਜਾਣ ਵਾਲੀ ਫਾਇਲ ਦਾ etag"
-#: gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:59
msgid "ETAG"
msgstr "ETAG"
-#: gio/gio-tool-save.c:113
-#| msgid "Error reading from handle: %s"
+#: gio/gio-tool-save.c:115
msgid "Error reading from standard input"
msgstr "ਮਿਆਰੀ ਇਨਪੁਟ ਦੌਰਾਨ ਗਲਤੀ"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:139
-#| msgid "TLS support is not available"
+#: gio/gio-tool-save.c:141
msgid "Etag not available\n"
msgstr "ਈਟੈਗ ਉਪਲੱਬਧ ਨਹੀਂ\n"
-#: gio/gio-tool-save.c:163
+#: gio/gio-tool-save.c:165
msgid "Read from standard input and save to DEST."
msgstr "ਸਟੈਂਡਰਡ ਇੰਪੁੱਟ ਪੜ੍ਹੋ ਅਤੇ DEST ਉੱਤੇ ਸੰਭਾਲੋ।"
-#: gio/gio-tool-save.c:183
+#: gio/gio-tool-save.c:185
msgid "No destination given"
msgstr "ਕੋਈ ਟਿਕਾਣਾ ਨਹੀਂ ਦਿੱਤਾ"
-#: gio/gio-tool-set.c:33
+#: gio/gio-tool-set.c:36
msgid "Type of the attribute"
msgstr "ਗੁਣ ਦੀ ਕਿਸਮ"
-#: gio/gio-tool-set.c:33
+#: gio/gio-tool-set.c:36
msgid "TYPE"
msgstr "ਕਿਸਮ"
-#: gio/gio-tool-set.c:89
+#: gio/gio-tool-set.c:38
+#| msgid "Set a file attribute"
+msgid "Unset given attribute"
+msgstr "ਦਿੱਤਾ ਗੁਣ ਅਣ-ਸੈੱਟ ਕਰੋ"
+
+#: gio/gio-tool-set.c:95
msgid "ATTRIBUTE"
msgstr "ਗੁਣ"
-#: gio/gio-tool-set.c:89
+#: gio/gio-tool-set.c:95
msgid "VALUE"
msgstr "ਮੁੱਲ"
-#: gio/gio-tool-set.c:93
+#: gio/gio-tool-set.c:99
msgid "Set a file attribute of LOCATION."
msgstr "ਟਿਕਾਣੇ ਦਾ ਫਾਇਲ ਗੁਣ ਸੈੱਟ ਕਰੋ।"
-#: gio/gio-tool-set.c:113
-#| msgid "No connection endpoint specified"
+#: gio/gio-tool-set.c:119
msgid "Location not specified"
msgstr "ਟਿਕਾਣਾ ਨਹੀਂ ਦਿੱਤਾ"
-#: gio/gio-tool-set.c:120
-#| msgid "Error: signal not specified.\n"
+#: gio/gio-tool-set.c:126
msgid "Attribute not specified"
msgstr "ਗੁਣ ਨਹੀਂ ਦਿੱਤਾ"
-#: gio/gio-tool-set.c:130
-#| msgid "Error: signal not specified.\n"
+#: gio/gio-tool-set.c:143
msgid "Value not specified"
msgstr "ਮੁੱਲ ਨਹੀਂ ਦਿੱਤਾ"
-#: gio/gio-tool-set.c:180
+#: gio/gio-tool-set.c:193
#, c-format
-#| msgid "Invalid attribute type (string expected)"
msgid "Invalid attribute type “%s”"
msgstr "ਗਲਤ ਗੁਣ ਕਿਸਮ “%s”"
-#: gio/gio-tool-trash.c:32
+#: gio/gio-tool-trash.c:36
msgid "Empty the trash"
msgstr "ਰੱਦੀ ਖਾਲੀ ਕਰੋ"
-#: gio/gio-tool-trash.c:86
-#| msgid "The file descriptor to write to"
-msgid "Move files or directories to the trash."
-msgstr "ਫਾਇਲਾਂ ਜਾਂ ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਰੱਦੀ ਵਿੱਚ ਭੇਜੋ।"
+#: gio/gio-tool-trash.c:37
+#| msgid "List the contents of the locations."
+msgid "List files in the trash with their original locations"
+msgstr "ਰੱਦੀ ਵਿੱਚ ਫ਼ਾਇਲਾਂ ਨੂੰ ਉਹਨਾਂ ਦੇ ਅਸਲ ਟਿਕਾਣਿਆਂ ਰਾਹੀਂ ਸੂਚੀਬੱਧ ਕਰੋ"
+
+#: gio/gio-tool-trash.c:38
+msgid ""
+"Restore a file from trash to its original location (possibly recreating the "
+"directory)"
+msgstr ""
+"ਰੱਦੀ ਤੋ ਫ਼ਾਇਲ ਨੂੰ ਉਸ ਦੇ ਅਸਲ ਟਿਕਾਣੇ ਉੱਤੇ ਬਹਾਲ ਕਰੋ (ਸੰਭਵ ਤੌਰ ਉੱਤੇ ਡਾਇਰੈਕਟਰੀ ਮੁੜ"
+" ਬਣਾਈ ਜਾ ਰਹੀ ਹੈ)"
+
+#: gio/gio-tool-trash.c:108
+#| msgid "Unable to find terminal required for application"
+msgid "Unable to find original path"
+msgstr "ਅਸਲ ਮਾਰਗ ਲੱਭਣ ਲਈ ਅਸਮਰੱਥ"
+
+#: gio/gio-tool-trash.c:125
+#| msgid "Unable to create socket: %s"
+msgid "Unable to recreate original location: "
+msgstr "ਅਸਲ ਟਿਕਾਣੇ ਉੱਤੇ ਮੁੜ-ਬਣਾਉਣ ਲਈ ਅਸਮਰੱਥ: "
+
+#: gio/gio-tool-trash.c:138
+#| msgid "unable to find desktop file for application %s\n"
+msgid "Unable to move file to its original location: "
+msgstr "ਫ਼ਾਇਲ ਨੂੰ ਉਸ ਦੇ ਅਸਲ ਟਿਕਾਣੇ ਉੱਤੇ ਭੇਜਣ ਲਈ ਅਸਮਰੱਥ: "
-#: gio/gio-tool-tree.c:33
+#: gio/gio-tool-trash.c:227
+#| msgid "Move files or directories to the trash."
+msgid "Move/Restore files or directories to the trash."
+msgstr "ਰੱਦੀ ਤੋਂ ਫ਼ਾਇਲਾਂ ਜਾਂ ਡਾਇਰੈਕਟਰੀਆਂ ਭੇਜੋ/ਬਹਾਲ ਕਰੋ।"
+
+#: gio/gio-tool-trash.c:229
+msgid ""
+"Note: for --restore switch, if the original location of the trashed file \n"
+"already exists, it will not be overwritten unless --force is set."
+msgstr ""
+
+#: gio/gio-tool-trash.c:260
+msgid "Location given doesn't start with trash:///"
+msgstr "ਦਿੱਤਾ ਟਿਕਾਣਾ trash:/// ਨਾਲ ਸ਼ੁਰੂ ਨਹੀਂ ਹੁੰਦਾ ਹੈ"
+
+#: gio/gio-tool-tree.c:35
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "ਸਿੰਬੋਲਿਕ ਲਿੰਕ, ਮਾਊਂਟ ਅਤੇ ਸ਼ਾਰਟਕੱਟ ਵਰਤੋਂ"
-#: gio/gio-tool-tree.c:244
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "ਡਾਇਰੈਕਟਰੀਆਂ ਦੀ ਸਮੱਗਰੀ ਟਰੀ-ਵਰਗੇ ਫਾਰਮੈਟ ਵਿੱਚ ਵੇਖੋ।"
-#: gio/glib-compile-resources.c:140 gio/glib-compile-schemas.c:1514
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "<%s> ਐਲੀਮੈਂਟ <%s> ਵਿੱਚ ਮਨਜ਼ੂਰ ਨਹੀਂ"
-#: gio/glib-compile-resources.c:144
+#: gio/glib-compile-resources.c:146
#, c-format
msgid "Element <%s> not allowed at toplevel"
msgstr "ਐਲੀਮੈਂਟ <%s> ਸਭ ਤੋਂ ਉੱਤੇ ਮਨਜ਼ੂਰ ਨਹੀਂ ਹੈ"
-#: gio/glib-compile-resources.c:234
+#: gio/glib-compile-resources.c:236
#, c-format
msgid "File %s appears multiple times in the resource"
msgstr "ਫਾਇਲ %s ਸਰੋਤ ਵਿੱਚ ਕਈ ਵਾਰ ਆਈ ਹੋਈ ਜਾਪਦੀ ਹੈ"
-#: gio/glib-compile-resources.c:245
+#: gio/glib-compile-resources.c:247
#, c-format
-#| msgid "Failed to locate '%s' in any source directory"
msgid "Failed to locate “%s” in any source directory"
msgstr "ਕੋਈ ਸਰੋਤ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ “%s” ਲੱਭਣ ਲਈ ਫੇਲ੍ਹ ਹੈ"
-#: gio/glib-compile-resources.c:256
+#: gio/glib-compile-resources.c:258
#, c-format
-#| msgid "Failed to locate '%s' in current directory"
msgid "Failed to locate “%s” in current directory"
msgstr "ਮੌਜੂਦਾ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ “%s” ਲੱਭਣ ਲਈ ਫੇਲ੍ਹ ਹੈ"
-#: gio/glib-compile-resources.c:290
+#: gio/glib-compile-resources.c:292
#, c-format
-#| msgid "Unknown processing option \"%s\""
msgid "Unknown processing option “%s”"
msgstr "ਅਣਜਾਣ ਕਾਰਵਾਈ ਚੋਣ “%s”"
@@ -2442,38 +2441,36 @@ msgstr "ਅਣਜਾਣ ਕਾਰਵਾਈ ਚੋਣ “%s”"
#. * the second %s is an environment variable, and the third
#. * %s is a command line tool
#.
-#: gio/glib-compile-resources.c:310 gio/glib-compile-resources.c:367
-#: gio/glib-compile-resources.c:424
+#: gio/glib-compile-resources.c:312 gio/glib-compile-resources.c:369
+#: gio/glib-compile-resources.c:426
#, c-format
msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
msgstr ""
-#: gio/glib-compile-resources.c:457
+#: gio/glib-compile-resources.c:459
#, c-format
msgid "Error reading file %s: %s"
msgstr "%s ਫਾਇਲ ਪੜ੍ਹਨ 'ਚ ਗਲਤੀ: %s"
-#: gio/glib-compile-resources.c:477
+#: gio/glib-compile-resources.c:479
#, c-format
msgid "Error compressing file %s"
msgstr "ਫਾਇਲ ਕੰਪਰੈਸ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glib-compile-resources.c:541
+#: gio/glib-compile-resources.c:543
#, c-format
msgid "text may not appear inside <%s>"
msgstr "ਟੈਕਸਟ <%s> ਦੇ ਅੰਦਰ ਨਹੀਂ ਹੋ ਸਕਦਾ"
-#: gio/glib-compile-resources.c:737 gio/glib-compile-schemas.c:2172
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "ਪਰੋਗਰਾਮ ਵਰਜਨ ਵੇਖੋ ਅਤੇ ਬੰਦ"
-#: gio/glib-compile-resources.c:738
-#| msgid "name of the output file"
+#: gio/glib-compile-resources.c:822
msgid "Name of the output file"
msgstr "ਆਉਟਪੁੱਟ ਫਾਇਲ ਦਾ ਨਾਂ"
-#: gio/glib-compile-resources.c:739
-#, fuzzy
+#: gio/glib-compile-resources.c:823
#| msgid ""
#| "The directories where files are to be read from (default to current "
#| "directory)"
@@ -2481,61 +2478,63 @@ msgid ""
"The directories to load files referenced in FILE from (default: current "
"directory)"
msgstr ""
-"ਡਾਇਰੈਕਟਰੀਆਂ, ਜਿੱਥੋਂ ਫਾਇਲਾਂ ਨੂੰ ਪੜ੍ਹਿਆ ਜਾ ਸਕਦਾ ਹੈ (ਡਿਫਾਲਟ ਮੌਜੂਦਾ ਡਾਇਰੈਕਟਰੀ ਹੈ)"
+"ਇੱਥੋਂ FILE ਵਿੱਚ ਹਵਾਲਾ ਦਿੱਤੀਆਂ ਫ਼ਾਇਲਾਂ ਲੋਡ ਕਰਨ ਲਈ ਡਾਇਰੈਕਟਰੀਆਂ (ਮੂਲ: ਮੌਜੂਦਾ"
+" ਡਾਇਰੈਕਟਰੀ)"
-#: gio/glib-compile-resources.c:739 gio/glib-compile-schemas.c:2173
-#: gio/glib-compile-schemas.c:2202
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "ਡਾਇਰੈਕਟਰੀ"
-#: gio/glib-compile-resources.c:740
+#: gio/glib-compile-resources.c:824
msgid ""
"Generate output in the format selected for by the target filename extension"
msgstr "ਟਾਰਗੇਟ ਫਾਇਲ-ਨਾਂ ਇਕਸਟੈਸ਼ਨ ਰਾਹੀਂ ਚੁਣੇ ਫਾਰਮੈਟ ਵਿੱਚ ਆਉਟਪੁੱਟ ਤਿਆਰ ਕਰੋ"
-#: gio/glib-compile-resources.c:741
+#: gio/glib-compile-resources.c:825
msgid "Generate source header"
msgstr "ਸਰੋਤ ਹੈੱਡਰ ਤਿਆਰ ਕਰੋ"
-#: gio/glib-compile-resources.c:742
-#, fuzzy
+#: gio/glib-compile-resources.c:826
#| msgid "Generate sourcecode used to link in the resource file into your code"
msgid "Generate source code used to link in the resource file into your code"
msgstr "ਸਰੋਤ ਫਾਇਲ ਵਿੱਚ ਵਰਤੇ ਲਿੰਕ ਤੋਂ ਸਰੋਤ ਕੋਡ ਨੂੰ ਆਪਣੇ ਕੋਡ ਵਿੱਚ ਤਿਆਰ ਕਰੋ"
-#: gio/glib-compile-resources.c:743
+#: gio/glib-compile-resources.c:827
msgid "Generate dependency list"
msgstr "ਨਿਰਭਰਤਾ ਸੂਚੀ ਬਣਾਓ"
-#: gio/glib-compile-resources.c:744
+#: gio/glib-compile-resources.c:828
msgid "Name of the dependency file to generate"
msgstr ""
-#: gio/glib-compile-resources.c:745
+#: gio/glib-compile-resources.c:829
msgid "Include phony targets in the generated dependency file"
msgstr ""
-#: gio/glib-compile-resources.c:746
-#| msgid "Don't automatically create and register resource"
+#: gio/glib-compile-resources.c:830
msgid "Don’t automatically create and register resource"
msgstr "ਸਰੋਤ ਆਪਣੇ-ਆਪ ਨਾ ਬਣਾਓ ਅਤੇ ਰਜਿਸਟਰ ਕਰੋ"
-#: gio/glib-compile-resources.c:747
-#| msgid "Don't export functions; declare them G_GNUC_INTERNAL"
+#: gio/glib-compile-resources.c:831
msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
msgstr "ਫੰਕਸ਼ਨ ਐਕਸਪੋਰਟ ਨਾ ਕਰੋ; ਉਹਨਾਂ ਨੂੰ G_GNUC_INTERNAL ਐਲਾਨੋ"
-#: gio/glib-compile-resources.c:748
+#: gio/glib-compile-resources.c:832
msgid ""
"Don’t embed resource data in the C file; assume it's linked externally "
"instead"
msgstr ""
-#: gio/glib-compile-resources.c:749
+#: gio/glib-compile-resources.c:833
msgid "C identifier name used for the generated source code"
msgstr "ਤਿਆਰ ਕੀਤੇ ਸਰੋਤ ਕੋਡ ਲਈ C ਅਡੈਂਟਟੀਫਾਇਰ ਨਾਂ"
-#: gio/glib-compile-resources.c:775
+#: gio/glib-compile-resources.c:834
+msgid "The target C compiler (default: the CC environment variable)"
+msgstr ""
+
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2545,183 +2544,170 @@ msgstr ""
"ਸਰੋਤ ਹਦਾਇਤਾਂ ਲਈ .gresourcexml ਇਕਸਟੈਨਸ਼ਨ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ\n"
"ਅਤੇ ਸਰੋਤ ਫਾਇਲ ਦੀ ਇਕਸਟੈਨਸ਼ਨ ਨੂੰ .gresource ਕਿਹਾ ਜਾਂਦਾ ਹੈ।"
-#: gio/glib-compile-resources.c:797
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "ਤੁਹਾਨੂੰ ਇੱਕ ਫਾਇਲ ਦਾ ਪੂਰਾ ਨਾਂ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ\n"
-#: gio/glib-compile-schemas.c:92
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr ""
-#: gio/glib-compile-schemas.c:103
+#: gio/glib-compile-schemas.c:106
#, c-format
-#| msgid "Invalid symlink value given"
msgid "Invalid numeric value"
msgstr "ਗਲਤ ਅੰਕ ਮੁੱਲ"
-#: gio/glib-compile-schemas.c:111
+#: gio/glib-compile-schemas.c:114
#, c-format
-#| msgid "<%s id='%s'> already specified"
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> ਪਹਿਲਾਂ ਹੀ ਦਿੱਤਾ ਗਿਆ"
-#: gio/glib-compile-schemas.c:119
+#: gio/glib-compile-schemas.c:122
#, c-format
-#| msgid "<key name='%s'> already specified"
msgid "value='%s' already specified"
msgstr "value='%s' ਪਹਿਲਾਂ ਹੀ ਦਿੱਤਾ"
-#: gio/glib-compile-schemas.c:133
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr ""
-#: gio/glib-compile-schemas.c:158
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr ""
-#: gio/glib-compile-schemas.c:314
+#: gio/glib-compile-schemas.c:317
#, c-format
-#| msgid "No connection endpoint specified"
msgid "<%s> is not contained in the specified range"
msgstr "<%s> ਤੈਅ ਕੀਤੀ ਹੱਦ ਵਿੱਚ ਨਹੀਂ ਹੈ"
-#: gio/glib-compile-schemas.c:326
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:332
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr ""
-#: gio/glib-compile-schemas.c:338
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr ""
-#: gio/glib-compile-schemas.c:372
-#| msgid "<key name='%s'> already specified"
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> ਇਸ ਕੁੰਜੀ ਲਈ ਪਹਿਲਾਂ ਹੀ ਦਿੱਤਾ ਗਿਆ"
-#: gio/glib-compile-schemas.c:390
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:407
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr ""
-#: gio/glib-compile-schemas.c:432
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr ""
-#: gio/glib-compile-schemas.c:440
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr ""
-#: gio/glib-compile-schemas.c:452
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr ""
-#: gio/glib-compile-schemas.c:474
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr ""
-#: gio/glib-compile-schemas.c:491
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:500
-#| msgid "<child name='%s'> already specified"
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> ਇਸ ਕੁੰਜੀ ਲਈ ਪਹਿਲਾਂ ਹੀ ਦਿੱਤੀਆਂ"
-#: gio/glib-compile-schemas.c:512
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr ""
-#: gio/glib-compile-schemas.c:528
-#, fuzzy, c-format
+#: gio/glib-compile-schemas.c:531
+#, c-format
#| msgid "<child name='%s'> already specified"
msgid "<choice value='%s'/> already given"
-msgstr "<child name='%s'> ਪਹਿਲਾਂ ਹੀ ਦਿੱਤਾ ਗਿਆ"
+msgstr "<choice value='%s'/> ਪਹਿਲਾਂ ਹੀ ਦਿੱਤਾ ਹੈ"
-#: gio/glib-compile-schemas.c:543
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
-msgstr ""
+msgstr "<choices> ਘੱਟੋ-ਘੱਟ ਚਾਹੀਦਾ ਹੈ ਇੱਕ <choice>"
-#: gio/glib-compile-schemas.c:557
-#| msgid "<child name='%s'> already specified"
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> ਇਸ ਕੁੰਜੀ ਲਈ ਪਹਿਲਾਂ ਹੀ ਦਿੱਤੀਆਂ"
-#: gio/glib-compile-schemas.c:561
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
msgstr ""
-#: gio/glib-compile-schemas.c:580
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
"type"
msgstr ""
-#: gio/glib-compile-schemas.c:586
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
-#: gio/glib-compile-schemas.c:594
+#: gio/glib-compile-schemas.c:597
#, c-format
-#| msgid "<%s id='%s'> already specified"
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> ਪਹਿਲਾਂ ਹੀ ਦਿੱਤਾ ਹੈ"
-#: gio/glib-compile-schemas.c:604
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr ""
-#: gio/glib-compile-schemas.c:605
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr ""
-#: gio/glib-compile-schemas.c:620
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
-msgstr ""
+msgstr "<aliases> ਘੱਟੋ-ਘੱਟ ਚਾਹੀਦਾ ਹੈ ਇੱਕ <alias>"
#: gio/glib-compile-schemas.c:797
-#| msgid "empty names are not permitted"
msgid "Empty names are not permitted"
msgstr "ਖਾਲੀ ਨਾਂ ਮਨਜ਼ੂਰ ਨਹੀਂ ਹੈ"
#: gio/glib-compile-schemas.c:807
#, c-format
-#| msgid "invalid name '%s': names must begin with a lowercase letter"
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "ਗਲਤ ਨਾਂ ”%s”: ਨਾਂ ਛੋਟੇ ਅੱਖਰ ਨਾਲ ਹੀ ਸ਼ੁਰੂ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ"
#: gio/glib-compile-schemas.c:819
#, c-format
-#| msgid ""
-#| "invalid name '%s': invalid character '%c'; only lowercase letters, "
-#| "numbers and hyphen ('-') are permitted."
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
"and hyphen (“-”) are permitted"
@@ -2731,19 +2717,16 @@ msgstr ""
#: gio/glib-compile-schemas.c:828
#, c-format
-#| msgid "invalid name '%s': two successive hyphens ('--') are not permitted."
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "ਗਲਤ ਨਾਂ “%s”: ਲਗਾਤਾਰ ਦੋ ਹਾਈਫਨ (“--”) ਮਨਜ਼ੂਰ ਨਹੀਂ।"
#: gio/glib-compile-schemas.c:837
#, c-format
-#| msgid "invalid name '%s': the last character may not be a hyphen ('-')."
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "ਗਲਤ ਨਾਂ “%s”: ਆਖਰੀ ਅੱਖਰ ਹਾਈਫਨ (“-”) ਨਹੀਂ ਹੋ ਸਕਦਾ।"
#: gio/glib-compile-schemas.c:845
#, c-format
-#| msgid "invalid name '%s': maximum length is 1024"
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "ਗਲਤ ਨਾਂ “%s”: ਵੱਧੋ-ਵੱਧ ਲੰਬਾਈ ੧੦੨੪"
@@ -2753,7 +2736,6 @@ msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> ਪਹਿਲਾਂ ਹੀ ਦਿੱਤਾ ਗਿਆ"
#: gio/glib-compile-schemas.c:943
-#| msgid "cannot add keys to a 'list-of' schema"
msgid "Cannot add keys to a “list-of” schema"
msgstr " ਕੁੰਜੀਆਂ “list-of” ਸਕੀਮਾ 'ਚ ਜੋੜੀਆਂ ਨਹੀਂ ਜਾ ਸਕਦਾ"
@@ -2773,9 +2755,6 @@ msgstr ""
#: gio/glib-compile-schemas.c:983
#, c-format
-#| msgid ""
-#| "exactly one of 'type', 'enum' or 'flags' must be specified as an "
-#| "attribute to <key>"
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
"to <key>"
@@ -2790,18 +2769,15 @@ msgstr "<%s id='%s'> (ਹਾਲੇ) ਨਹੀਂ ਦਿੱਤਾ ਗਿਆ।"
#: gio/glib-compile-schemas.c:1017
#, c-format
-#| msgid "invalid GVariant type string '%s'"
msgid "Invalid GVariant type string “%s”"
msgstr "ਗਲਤ GVariant ਕਿਸਮ ਲਾਈਨ “%s”"
#: gio/glib-compile-schemas.c:1047
-#| msgid "<override> given but schema isn't extending anything"
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> ਦਿੱਤਾ, ਪਰ ਸਕੀਮਾ ਕੁਝ ਨਹੀਂ ਵਧਾ ਰਿਹਾ ਹੈ"
#: gio/glib-compile-schemas.c:1060
#, c-format
-#| msgid "no <key name='%s'> to override"
msgid "No <key name='%s'> to override"
msgstr "ਅਣਡਿੱਠਾ ਕਰਨ ਲਈ <key name='%s'> ਨਹੀਂ"
@@ -2817,25 +2793,21 @@ msgstr "<schema id='%s'> ਪਹਿਲਾਂ ਹੀ ਦਿੱਤਾ ਗਿਆ"
#: gio/glib-compile-schemas.c:1153
#, c-format
-#| msgid "<schema id='%s'> extends not yet existing schema '%s'"
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> ਮੌਜੂਦਾ ਸਕੀਮਾ “%s” ਵਧਾਇਆ ਨਹੀਂ ਗਿਆ"
#: gio/glib-compile-schemas.c:1169
#, c-format
-#| msgid "<schema id='%s'> is list of not yet existing schema '%s'"
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> ਹਾਲੇ ਨਾ-ਮੌਜੂਦ “%s” ਸਕੀਮਾ ਦੀ ਲਿਸਟ ਹੈ"
#: gio/glib-compile-schemas.c:1177
#, c-format
-#| msgid "Can not be a list of a schema with a path"
msgid "Cannot be a list of a schema with a path"
msgstr "ਪਾਥ ਨਾਲ ਸਕੀਮਾ ਦੀ ਲਿਸਟ ਨਹੀਂ ਦਿੱਤੀ ਜਾ ਸਕਦੀ"
#: gio/glib-compile-schemas.c:1187
#, c-format
-#| msgid "Can not extend a schema with a path"
msgid "Cannot extend a schema with a path"
msgstr "ਪਾਥ ਨਾਲ ਸਕੀਮਾ ਨੂੰ ਵਧਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"
@@ -2849,9 +2821,6 @@ msgstr ""
#: gio/glib-compile-schemas.c:1207
#, c-format
-#| msgid ""
-#| "<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but "
-#| "'%s' does not extend '%s'"
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
"does not extend “%s”"
@@ -2861,13 +2830,11 @@ msgstr ""
#: gio/glib-compile-schemas.c:1224
#, c-format
-#| msgid "a path, if given, must begin and end with a slash"
msgid "A path, if given, must begin and end with a slash"
msgstr "ਪਾਥ, ਜੇ ਦਿੱਤਾ ਹੋਵੇ ਤਾਂ ਸ਼ੁਰੂ ਤੇ ਖਤਮ ਸਲੈਸ਼ ਨਾਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ"
#: gio/glib-compile-schemas.c:1231
#, c-format
-#| msgid "the path of a list must end with ':/'"
msgid "The path of a list must end with “:/”"
msgstr "ਲਿਸਟ ਦਾ ਪਾਥ “:/” ਨਾਲ ਖਤਮ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ"
@@ -2884,10 +2851,10 @@ msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> ਪਹਿਲਾਂ ਹੀ ਦਿੱਤਾ ਹੈ"
#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
-#, fuzzy, c-format
+#, c-format
#| msgid "Element <%s> not allowed inside <%s>"
msgid "Only one <%s> element allowed inside <%s>"
-msgstr "<%s> ਐਲੀਮੈਂਟ <%s> ਵਿੱਚ ਮਨਜ਼ੂਰ ਨਹੀਂ"
+msgstr "ਸਿਰਫ਼ ਇੱਕ <%s> ਐਲੀਮੈਂਟ <%s> ਅੰਦਰ ਚਾਹੀਦਾ ਹੈ"
#: gio/glib-compile-schemas.c:1518
#, c-format
@@ -2900,7 +2867,6 @@ msgstr ""
#: gio/glib-compile-schemas.c:1626
#, c-format
-#| msgid "text may not appear inside <%s>"
msgid "Text may not appear inside <%s>"
msgstr "ਟੈਕਸਟ <%s> ਦੇ ਅੰਦਰ ਨਹੀਂ ਹੋ ਸਕਦਾ"
@@ -2911,35 +2877,36 @@ msgstr ""
#. Translators: Do not translate "--strict".
#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
-#| msgid "--strict was specified; exiting.\n"
msgid "--strict was specified; exiting."
msgstr "--strict ਦਿੱਤੀ ਗਈ ਸੀ। ਬੰਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।"
#: gio/glib-compile-schemas.c:1845
-#| msgid "This entire file has been ignored.\n"
msgid "This entire file has been ignored."
msgstr "ਇਹ ਪੂਰੀ ਫਾਇਲ ਅਣਡਿੱਠੀ ਕੀਤੀ ਗਈ।"
#: gio/glib-compile-schemas.c:1908
-#| msgid "Ignoring this file.\n"
msgid "Ignoring this file."
msgstr "ਇਹ ਫਾਇਲ ਅਣਡਿੱਠੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ।"
#: gio/glib-compile-schemas.c:1963
-#, fuzzy, c-format
+#, c-format
#| msgid "No such key '%s' in schema '%s' as specified in override file '%s'"
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
"override for this key."
-msgstr "ਅਣਡਿੱਠਾ ਫਾਇਲ '%3$s' ਵਿੱਚ '%2$s' ਸਕੀਮਾ ਅੰਦਰ ਕੋਈ '%1$s' ਕੁੰਜੀ ਨਹੀਂ ਹੈ"
+msgstr ""
+"ਅਣਡਿੱਠਾ ਫਾਇਲ “%3$s“ ਵਿੱਚ “%2$s“ ਸਕੀਮਾ ਅੰਦਰ ਕੋਈ “%1$s“ ਕੁੰਜੀ ਨਹੀਂ ਹੈ; ਇਸ ਕੁੰਜੀ"
+" ਲਈ ਅਣਡਿੱਠਾ ਕਰੋ"
#: gio/glib-compile-schemas.c:1971
-#, fuzzy, c-format
+#, c-format
#| msgid "No such key '%s' in schema '%s' as specified in override file '%s'"
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
"strict was specified; exiting."
-msgstr "ਅਣਡਿੱਠਾ ਫਾਇਲ '%3$s' ਵਿੱਚ '%2$s' ਸਕੀਮਾ ਅੰਦਰ ਕੋਈ '%1$s' ਕੁੰਜੀ ਨਹੀਂ ਹੈ"
+msgstr ""
+"ਅਣਡਿੱਠਾ ਫਾਇਲ “%3$s“ ਵਿੱਚ “%2$s“ ਸਕੀਮਾ ਅੰਦਰ ਕੋਈ “%1$s“ ਕੁੰਜੀ ਨਹੀਂ ਹੈ ਅਤੇ"
+" --strict ਦਿੱਤਾ ਸੀ; ਬੰਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।"
#: gio/glib-compile-schemas.c:1993
#, c-format
@@ -2956,7 +2923,7 @@ msgid ""
msgstr ""
#: gio/glib-compile-schemas.c:2026
-#, fuzzy, c-format
+#, c-format
#| msgid ""
#| "error parsing key '%s' in schema '%s' as specified in override file '%s': "
#| "%s."
@@ -2964,10 +2931,11 @@ msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
"%s. Ignoring override for this key."
msgstr ""
-"ਅਣਡਿੱਠੀ ਫਾਇਲ '%3$s' ਵਿੱਚ '%2$s' ਸਕੀਮਾ ਅੰਦਰ ਕੋਈ '%1$s' ਕੁੰਜੀ ਨਹੀਂ ਹੈ: %4$s।"
+"ਅਣਡਿੱਠੀ ਫਾਇਲ “%3$s“ ਵਿੱਚ “%2$s“ ਸਕੀਮਾ ਅੰਦਰ ਕੋਈ “%1$s“ ਕੁੰਜੀ ਨਹੀਂ ਹੈ: %4$s। ਇਹ"
+" ਕੁੰਜੀ ਅਣਡਿੱਠੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ।"
#: gio/glib-compile-schemas.c:2038
-#, fuzzy, c-format
+#, c-format
#| msgid ""
#| "error parsing key '%s' in schema '%s' as specified in override file '%s': "
#| "%s."
@@ -2975,7 +2943,8 @@ msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
"%s. --strict was specified; exiting."
msgstr ""
-"ਅਣਡਿੱਠੀ ਫਾਇਲ '%3$s' ਵਿੱਚ '%2$s' ਸਕੀਮਾ ਅੰਦਰ ਕੋਈ '%1$s' ਕੁੰਜੀ ਨਹੀਂ ਹੈ: %4$s।"
+"ਅਣਡਿੱਠਾ ਫਾਇਲ “%3$s“ ਵਿੱਚ “%2$s“ ਸਕੀਮਾ ਅੰਦਰ ਕੋਈ “%1$s“ ਕੁੰਜੀ ਨਹੀਂ ਹੈ: %4$s।"
+" --strict ਦਿੱਤਾ ਸੀ; ਬੰਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।"
#: gio/glib-compile-schemas.c:2065
#, fuzzy, c-format
@@ -3030,7 +2999,6 @@ msgstr ""
"ਢੁੱਕਵੀਆਂ ਚੋਣਾਂ ਦੀ ਲਿਸਟ ਹੈ"
#: gio/glib-compile-schemas.c:2173
-#| msgid "where to store the gschemas.compiled file"
msgid "Where to store the gschemas.compiled file"
msgstr "gschemas.compiled ਫਾਇਲ ਨੂੰ ਕਿੱਥੇ ਸਟੋਰ ਕਰਨਾ ਹੈ"
@@ -3046,7 +3014,7 @@ msgstr "gschema.compiled ਫਾਇਲ ਨਾ ਲਿਖੋ"
msgid "Do not enforce key name restrictions"
msgstr "ਕੁੰਜੀ ਨਾਂ ਪਾਬੰਦੀਆਂ ਲਈ ਮਜ਼ਬੂਰ ਨਾ ਕਰੋ"
-#: gio/glib-compile-schemas.c:2205
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3056,29 +3024,25 @@ msgstr ""
"ਸਕੀਮਾ ਫਾਇਲਾਂ ਲਈ .gschema.xml ਇਕਸਟੈਨਸ਼ਨ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ\n"
"ਅਤੇ ਕੈਸ਼ ਫਾਇਲ ਨੂੰ gschemas.compiled ਕਿਹਾ ਜਾਂਦਾ ਹੈ।"
-#: gio/glib-compile-schemas.c:2226
-#| msgid "You should give exactly one directory name\n"
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "ਤੁਹਾਨੂੰ ਇੱਕ ਡਾਇਰੈਕਟਰੀ ਦਾ ਪੂਰਾ ਨਾਂ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ"
-#: gio/glib-compile-schemas.c:2269
-#| msgid "No schema files found: "
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "ਕੋਈ ਸਕੀਮਾਂ ਫਾਇਲ ਨਹੀਂ ਲੱਭੀ: ਕਰਨ ਲਈ ਕੁਝ ਨਹੀਂ ਹੈ।"
-#: gio/glib-compile-schemas.c:2271
-#| msgid "removed existing output file.\n"
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "ਸਕੀਮਾ ਫਾਇਲਾਂ ਨਹੀਂ ਲੱਭੀਆਂ। ਮੌਜੂਦਾ ਆਉਟਪੁੱਟ ਫਾਇਲ ਹਟਾਈ ਗਈ।"
-#: gio/glocalfile.c:546 gio/win32/gwinhttpfile.c:420
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "ਗਲਤ ਫਾਇਲ ਨਾਂ %s"
-#: gio/glocalfile.c:1013
+#: gio/glocalfile.c:1012
#, c-format
-#| msgid "Error getting filesystem info: %s"
msgid "Error getting filesystem info for %s: %s"
msgstr "%s ਲਈ ਫਾਇਲ ਸਿਸਟਮ ਜਾਣਕਾਰੀ ਲੈਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
@@ -3086,510 +3050,524 @@ msgstr "%s ਲਈ ਫਾਇਲ ਸਿਸਟਮ ਜਾਣਕਾਰੀ ਲੈਣ
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1152
+#: gio/glocalfile.c:1148
#, c-format
-#| msgid "Containing mount does not exist"
msgid "Containing mount for file %s not found"
msgstr "%s ਫਾਇਲ ਲਈ ਰੱਖਣ ਵਾਲਾ ਮਾਊਂਟ ਨਹੀਂ ਲੱਭਿਆ"
-#: gio/glocalfile.c:1175
-#| msgid "Can't rename root directory"
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "ਰੂਟ ਡਾਇਰੈਕਟਰੀ ਦਾ ਨਾਂ ਨਹੀਂ ਬਦਲਿਆ ਜਾ ਸਕਦਾ"
-#: gio/glocalfile.c:1193 gio/glocalfile.c:1216
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
-#| msgid "Error reading file %s: %s"
msgid "Error renaming file %s: %s"
msgstr "%s ਫਾਇਲ ਨਾਂ ਬਦਲਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfile.c:1200
-#| msgid "Can't rename file, filename already exists"
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "ਫਾਇਲ ਨਾਂ ਨਹੀਂ ਬਦਲਿਆ ਜਾ ਸਕਦਾ, ਫਾਇਲ ਨਾਂ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ"
-#: gio/glocalfile.c:1213 gio/glocalfile.c:2322 gio/glocalfile.c:2350
-#: gio/glocalfile.c:2507 gio/glocalfileoutputstream.c:647
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "ਗਲਤ ਫਾਇਲ ਨਾਂ"
-#: gio/glocalfile.c:1381 gio/glocalfile.c:1396
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
-#| msgid "Error opening file '%s': %s"
msgid "Error opening file %s: %s"
msgstr "%s ਫਾਇਲ ਖੋਲ੍ਹਣ 'ਚ ਗਲਤੀ: %s"
-#: gio/glocalfile.c:1521
+#: gio/glocalfile.c:1513
#, c-format
-#| msgid "Error removing file: %s"
msgid "Error removing file %s: %s"
msgstr "%s ਫਾਇਲ ਹਟਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfile.c:1963
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
-#| msgid "Error trashing file: %s"
msgid "Error trashing file %s: %s"
msgstr "%s ਫਾਇਲ ਰੱਦੀ 'ਚ ਭੇਜਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfile.c:2004
+#: gio/glocalfile.c:2065
#, c-format
-msgid "Unable to create trash dir %s: %s"
+#| msgid "Unable to create trash dir %s: %s"
+msgid "Unable to create trash directory %s: %s"
msgstr "ਰੱਦੀ ਡਾਇਰੈਕਟਰੀ %s ਬਣਾਉਣ ਲਈ ਅਸਮਰੱਥ: %s"
-#: gio/glocalfile.c:2025
+#: gio/glocalfile.c:2086
#, c-format
-#| msgid "Unable to find toplevel directory for trash"
msgid "Unable to find toplevel directory to trash %s"
msgstr "%s ਰੱਦੀ ਲਈ ਟਾਪ-ਲੈਵਲ ਡਾਇਰੈਕਟਰੀ ਲੱਭਣ ਲਈ ਅਸਮਰੱਥ"
-#: gio/glocalfile.c:2034
-#, fuzzy, c-format
+#: gio/glocalfile.c:2094
+#, c-format
#| msgid "Copy (reflink/clone) between mounts is not supported"
msgid "Trashing on system internal mounts is not supported"
-msgstr "ਮਾਊਂਟ ਵਿੱਚ ਕਾਪੀ (ਮੁੜ-ਲਿੰਕ/ਕਲੋਨ) ਕਰਨਾ ਸਹਿਯੋਗੀ ਨਹੀਂ"
+msgstr "ਸਿਸਟਮ ਅੰਦਰੂਨੀ ਮਾਊਂਟਾਂ ਉੱਤੇ ਰੱਦੀ ਬਣਾਉਣਾ ਸਹਾਇਕ ਨਹੀਂ ਹੈ।"
-#: gio/glocalfile.c:2118 gio/glocalfile.c:2138
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
-#| msgid "Unable to find or create trash directory"
-msgid "Unable to find or create trash directory for %s"
-msgstr "%s ਲਈ ਰੱਦੀ ਡਾਇਰੈਕਟਰੀ ਲੱਭਣ ਜਾਂ ਬਣਾਉਣ ਲਈ ਅਸਮਰੱਥ"
+#| msgid "Unable to find or create trash directory for %s"
+msgid "Unable to find or create trash directory %s to trash %s"
+msgstr "%2$s ਰੱਦੀ ਵਿੱਚ ਭੇਜਣ ਲਈ ਰੱਦੀ ਡਾਇਰੈਕਟਰੀ %1$s ਲੱਭਣ ਜਾਂ ਬਣਾਉਣ ਲਈ ਅਸਮਰੱਥ"
-#: gio/glocalfile.c:2173
+#: gio/glocalfile.c:2252
#, c-format
-#| msgid "Unable to create trashing info file: %s"
msgid "Unable to create trashing info file for %s: %s"
msgstr "%s ਲਈ ਰੱਦੀ 'ਚ ਭੇਜੀ ਫਾਇਲ ਬਣਾਉਣ ਲਈ ਅਸਮਰੱਥ: %s"
-#: gio/glocalfile.c:2233
-#, fuzzy, c-format
+#: gio/glocalfile.c:2323
+#, c-format
#| msgid "Unable to trash file: %s"
msgid "Unable to trash file %s across filesystem boundaries"
-msgstr "ਫਾਇਲ ਰੱਦੀ 'ਚ ਭੇਜਣ ਲਈ ਅਸਮਰੱਥ: %s"
+msgstr "%s ਫ਼ਾਇਲ ਨੂੰ ਫ਼ਾਇਲ-ਸਿਸਟਮ ਬਰਾਊਂਡਰੀਆਂ ਪਾਸੇ ਰੱਦੀ ਵਿੱਚ ਭੇਜਣ ਲਈ ਅਸਮਰੱਥ"
-#: gio/glocalfile.c:2237 gio/glocalfile.c:2293
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
-#| msgid "Unable to trash file: %s"
msgid "Unable to trash file %s: %s"
msgstr "%s ਫਾਇਲ ਰੱਦੀ 'ਚ ਭੇਜਣ ਲਈ ਅਸਮਰੱਥ: %s"
-#: gio/glocalfile.c:2299
+#: gio/glocalfile.c:2389
#, c-format
-#| msgid "Unable to trash file: %s"
msgid "Unable to trash file %s"
msgstr "%s ਫਾਇਲ ਰੱਦੀ 'ਚ ਭੇਜਣ ਲਈ ਅਸਮਰੱਥ"
-#: gio/glocalfile.c:2325
+#: gio/glocalfile.c:2415
#, c-format
-#| msgid "Error creating directory '%s': %s"
msgid "Error creating directory %s: %s"
msgstr "%s ਡਾਇਰੈਕਟਰੀ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfile.c:2354
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "ਫਾਇਲ-ਸਿਸਟਮ ਸਿੰਬੋਲਿਕ ਲਿੰਕ ਲਈ ਸਹਾਇਕ ਨਹੀਂ"
-#: gio/glocalfile.c:2357
+#: gio/glocalfile.c:2447
#, c-format
-#| msgid "Error making symbolic link: %s"
msgid "Error making symbolic link %s: %s"
msgstr "ਸਿਬੋਲਿਕ ਲਿੰਕ %s ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfile.c:2363 glib/gfileutils.c:2172
-msgid "Symbolic links not supported"
-msgstr "ਸਿੰਬੋਲਿਕ ਲਿੰਕ ਮੱਦਦ ਪ੍ਰਾਪਤ ਨਹੀਂ ਹਨ"
-
-#: gio/glocalfile.c:2418 gio/glocalfile.c:2453 gio/glocalfile.c:2510
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
-#| msgid "Error moving file: %s"
msgid "Error moving file %s: %s"
msgstr "ਫਾਇਲ %s ਭੇਜਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfile.c:2441
-#| msgid "Can't move directory over directory"
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਡਾਇਰੈਕਟਰੀ ਉੱਤੇ ਭੇਜਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"
-#: gio/glocalfile.c:2467 gio/glocalfileoutputstream.c:1031
-#: gio/glocalfileoutputstream.c:1045 gio/glocalfileoutputstream.c:1060
-#: gio/glocalfileoutputstream.c:1077 gio/glocalfileoutputstream.c:1091
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
+#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "ਬੈਕਅੱਪ ਫਾਇਲ ਬਣਾਉਣ ਲਈ ਫੇਲ੍ਹ"
-#: gio/glocalfile.c:2486
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "ਟਾਰਗੇਟ ਫਾਇਲ ਹਟਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfile.c:2500
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "ਮਾਊਂਟ ਵਿੱਚ ਭੇਜਣਾ ਸਹਿਯੋਗੀ ਨਹੀਂ"
-#: gio/glocalfile.c:2691
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "%s ਦੀ ਡਿਸਕ ਵਰਤੋਂ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ: %s"
-#: gio/glocalfileinfo.c:752
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "ਗੁਣ ਮੁੱਲ ਗ਼ੈਰ-ਨਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ"
-#: gio/glocalfileinfo.c:759
-msgid "Invalid attribute type (string expected)"
-msgstr "ਗਲਤ ਗੁਣ ਟਾਈਪ (ਲਾਈਨ ਦੀ ਲੋੜ ਸੀ)"
+#: gio/glocalfileinfo.c:772
+#| msgid "Invalid attribute type (string expected)"
+msgid "Invalid attribute type (string or invalid expected)"
+msgstr "ਗਲਤ ਗੁਣ ਟਾਈਪ (ਸਤਰ ਜਾਂ ਗਲਤ ਦੀ ਆਸ ਸੀ)"
-#: gio/glocalfileinfo.c:766
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "ਗਲਤ ਐਕਸਟੈੱਡ ਗੁਣ ਨਾਂ"
-#: gio/glocalfileinfo.c:806
+#: gio/glocalfileinfo.c:830
#, c-format
-#| msgid "Error setting extended attribute '%s': %s"
msgid "Error setting extended attribute “%s”: %s"
msgstr "ਐਕਸਟੈੱਡ ਗੁਣ “%s” ਸੈੱਟ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfileinfo.c:1634
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr "(ਗਲਤ ਇੰਕੋਡਿੰਗ)"
-#: gio/glocalfileinfo.c:1798 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileoutputstream.c:997
#, c-format
-#| msgid "Error when getting information for file '%s': %s"
msgid "Error when getting information for file “%s”: %s"
msgstr "ਫਾਇਲ “%s” ਲਈ ਜਾਣਕਾਰੀ ਲੈਣ ਲਈ ਗਲਤੀ: %s"
-#: gio/glocalfileinfo.c:2068
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "ਫਾਇਲ ਡਿਸਕ੍ਰਿਪਟਰ ਲਈ ਜਾਣਕਾਰੀ ਲੈਣ ਦੇ ਦੌਰਾਨ ਗਲਤੀ: %s "
-#: gio/glocalfileinfo.c:2113
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "ਗਲਤ ਐਟਰੀਬਿਊਟ ਟਾਈਪ (uint32 ਲੋੜੀਦਾ ਸੀ)"
-#: gio/glocalfileinfo.c:2131
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "ਗਲਤ ਐਟਰੀਬਿਊਟ ਟਾਈਪ (uint64 ਲੋੜੀਦਾ ਸੀ)"
-#: gio/glocalfileinfo.c:2150 gio/glocalfileinfo.c:2169
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "ਗਲਤ ਐਟਰੀਬਿਊਟ ਟਾਈਪ (ਬਾਈਟ ਲਾਈਨ ਲੋੜੀਦੀ ਸੀ)"
-#: gio/glocalfileinfo.c:2216
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "ਸਿਮਲਿੰਕਲਈ ਅਧਿਕਾਰ ਨਹੀਂ ਸੈੱਟ ਕੀਤੇ ਜਾ ਸਕਦੇ"
-#: gio/glocalfileinfo.c:2232
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "ਅਧਿਕਾਰ ਸੈੱਟ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfileinfo.c:2283
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "ਓਪਨ ਸੈਟਿੰਗ ਗਲਤੀ: %s "
-#: gio/glocalfileinfo.c:2306
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "ਸਿਮਲਿੰਕ ਗ਼ੈਰ-ਨਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ"
-#: gio/glocalfileinfo.c:2316 gio/glocalfileinfo.c:2335
-#: gio/glocalfileinfo.c:2346
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "symlink ਸੈਟਿੰਗ ਗਲਤੀ: %s "
-#: gio/glocalfileinfo.c:2325
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "symlink ਸੈਟਿੰਗ ਗਲਤੀ: ਫਾਇਲ ਇੱਕ symlink ਨਹੀਂ ਹੈ"
-#: gio/glocalfileinfo.c:2451
+#: gio/glocalfileinfo.c:2599
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2608
+#, c-format
+msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2618
+#, c-format
+msgid "UNIX timestamp %lld does not fit into 64 bits"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2629
+#, c-format
+msgid "UNIX timestamp %lld is outside of the range supported by Windows"
+msgstr ""
+
+#: gio/glocalfileinfo.c:2761
+#, c-format
+#| msgid "Value '%s' cannot be interpreted as a number."
+msgid "File name “%s” cannot be converted to UTF-16"
+msgstr "ਫ਼ਾਇਲ ਨਾਂ “%s“ ਨੂੰ UTF-16 ਵਿੱਚ ਬਦਲਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ ਹੈ"
+
+#: gio/glocalfileinfo.c:2780
+#, c-format
+#| msgid "Value '%s' cannot be interpreted as a number."
+msgid "File “%s” cannot be opened: Windows Error %lu"
+msgstr "ਫ਼ਾਇਲ “%s“ ਨੂੰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ ਹੈ। ਵਿੰਡਜ਼ ਗਲਤੀ %lu"
+
+#: gio/glocalfileinfo.c:2793
+#, c-format
+#| msgid "Error setting modification or access time: %s"
+msgid "Error setting modification or access time for file “%s”: %lu"
+msgstr "ਫ਼ਾਇਲ “%s“ ਲਈ ਸੋਧਣ ਜਾਂ ਵਰਤਣ ਸਮਾਂ ਸੈੱਟ ਕਰਨ ਲਈ ਗਲਤੀ: %lu"
+
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "ਸੋਧਣ ਜਾਂ ਵਰਤਣ ਸਮਾਂ ਸੈੱਟ ਕਰਨ ਲਈ ਗਲਤੀ: %s"
-#: gio/glocalfileinfo.c:2474
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "SELinux ਪਰਸੰਗ ਗੈਰ-ਨਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ"
-#: gio/glocalfileinfo.c:2489
+#: gio/glocalfileinfo.c:2980
+msgid "SELinux is not enabled on this system"
+msgstr "ਇਸ ਸਿਸਟਮ ਉੱਤੇ SELinux ਚਾਲੂ ਨਹੀਂ ਹੈ"
+
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "SELinux ਪਰਸੰਗ ਸੈਟ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfileinfo.c:2496
-msgid "SELinux is not enabled on this system"
-msgstr "ਇਸ ਸਿਸਟਮ ਉੱਤੇ SELinux ਚਾਲੂ ਨਹੀਂ ਹੈ"
-
-#: gio/glocalfileinfo.c:2588
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "ਗੁਣ %s ਸੈਟਿੰਗ ਸਹਾਇਕ ਨਹੀਂ"
-#: gio/glocalfileinputstream.c:168 gio/glocalfileoutputstream.c:792
+#: gio/glocalfileinputstream.c:165 gio/glocalfileoutputstream.c:803
#, c-format
msgid "Error reading from file: %s"
msgstr "ਫਾਇਲ ਤੋਂ ਪੜ੍ਹਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfileinputstream.c:199 gio/glocalfileinputstream.c:211
-#: gio/glocalfileinputstream.c:225 gio/glocalfileinputstream.c:333
-#: gio/glocalfileoutputstream.c:554 gio/glocalfileoutputstream.c:1109
-#, c-format
-msgid "Error seeking in file: %s"
-msgstr "ਫਾਇਲ 'ਚ ਵੇਖਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-
-#: gio/glocalfileinputstream.c:255 gio/glocalfileoutputstream.c:344
-#: gio/glocalfileoutputstream.c:438
+#: gio/glocalfileinputstream.c:196 gio/glocalfileoutputstream.c:355
+#: gio/glocalfileoutputstream.c:449
#, c-format
msgid "Error closing file: %s"
msgstr "ਫਾਇਲ ਬੰਦ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfilemonitor.c:858
+#: gio/glocalfileinputstream.c:274 gio/glocalfileoutputstream.c:565
+#: gio/glocalfileoutputstream.c:1188
+#, c-format
+msgid "Error seeking in file: %s"
+msgstr "ਫਾਇਲ 'ਚ ਵੇਖਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
+
+#: gio/glocalfilemonitor.c:882
msgid "Unable to find default local file monitor type"
msgstr "ਡਿਫਾਲਟ ਲੋਕਲ ਫਾਇਲ ਮਾਨੀਟਰ ਟਾਈਪ ਖੋਜਣ ਲਈ ਅਸਮਰੱਥ"
-#: gio/glocalfileoutputstream.c:209 gio/glocalfileoutputstream.c:287
-#: gio/glocalfileoutputstream.c:324 gio/glocalfileoutputstream.c:813
+#: gio/glocalfileoutputstream.c:222 gio/glocalfileoutputstream.c:300
+#: gio/glocalfileoutputstream.c:336 gio/glocalfileoutputstream.c:824
#, c-format
msgid "Error writing to file: %s"
msgstr "ਫਾਇਲ ਲਿਖਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfileoutputstream.c:371
+#: gio/glocalfileoutputstream.c:382
#, c-format
msgid "Error removing old backup link: %s"
msgstr "ਪੁਰਾਣਾ ਬੈਕਅੱਪ ਲਿੰਕ ਹਟਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfileoutputstream.c:385 gio/glocalfileoutputstream.c:398
+#: gio/glocalfileoutputstream.c:396 gio/glocalfileoutputstream.c:409
#, c-format
msgid "Error creating backup copy: %s"
msgstr "ਬੈਕਅੱਪ ਕਾਪੀ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfileoutputstream.c:416
+#: gio/glocalfileoutputstream.c:427
#, c-format
msgid "Error renaming temporary file: %s"
msgstr "ਆਰਜ਼ੀ ਫਾਇਲ ਨਾਂ ਬਦਲਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfileoutputstream.c:600 gio/glocalfileoutputstream.c:1160
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "ਫਾਇਲ ਸੰਖੇਪ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/glocalfileoutputstream.c:653 gio/glocalfileoutputstream.c:891
-#: gio/glocalfileoutputstream.c:1141 gio/gsubprocess.c:380
+#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
-#| msgid "Error opening file '%s': %s"
msgid "Error opening file “%s”: %s"
msgstr "“%s” ਫਾਇਲ ਖੋਲ੍ਹਣ 'ਚ ਗਲਤੀ: %s"
-#: gio/glocalfileoutputstream.c:922
+#: gio/glocalfileoutputstream.c:959
msgid "Target file is a directory"
msgstr "ਟਾਰਗੇਟ ਫਾਇਲ ਡਾਇਰੈਕਟਰੀ ਹੈ"
-#: gio/glocalfileoutputstream.c:927
+#: gio/glocalfileoutputstream.c:973
msgid "Target file is not a regular file"
msgstr "ਟਾਰਗੇਟ ਫਾਇਲ ਇੱਕ ਰੈਗੂਲਰ ਫਾਇਲ ਨਹੀਂ ਹੈ"
-#: gio/glocalfileoutputstream.c:939
+#: gio/glocalfileoutputstream.c:1015
msgid "The file was externally modified"
msgstr "ਫਾਇਲ ਬਾਹਰੋਂ ਸੋਧੀ ਗਈ ਸੀ"
-#: gio/glocalfileoutputstream.c:1125
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "ਪੁਰਾਣੀ ਫਾਇਲ ਹਟਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gmemoryinputstream.c:474 gio/gmemoryoutputstream.c:772
+#: gio/gmemoryinputstream.c:476 gio/gmemoryoutputstream.c:764
msgid "Invalid GSeekType supplied"
msgstr "ਗਲਤ GSeekType ਦਿੱਤੀ ਗਈ"
-#: gio/gmemoryinputstream.c:484
+#: gio/gmemoryinputstream.c:486
msgid "Invalid seek request"
msgstr "ਸੀਕ ਮੰਗ ਗਲਤ ਹੈ"
-#: gio/gmemoryinputstream.c:508
+#: gio/gmemoryinputstream.c:510
msgid "Cannot truncate GMemoryInputStream"
msgstr "GMemoryInputStream ਛੋਟੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ"
-#: gio/gmemoryoutputstream.c:567
+#: gio/gmemoryoutputstream.c:570
msgid "Memory output stream not resizable"
msgstr "ਮੈਮੋਰੀ ਆਉਟਪੁੱਟ ਸਟਰੀਮ ਮੁੜ-ਅਕਾਰ ਯੋਗ ਨਹੀਂ"
-#: gio/gmemoryoutputstream.c:583
+#: gio/gmemoryoutputstream.c:586
msgid "Failed to resize memory output stream"
msgstr "ਮੈਮੋਰੀ ਆਉਟਪੁੱਟ ਸਟਰੀਮ ਮੁੜ-ਸਾਈਜ਼ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ"
-#: gio/gmemoryoutputstream.c:673
+#: gio/gmemoryoutputstream.c:665
msgid ""
"Amount of memory required to process the write is larger than available "
"address space"
msgstr "ਲਿਖਣ ਲਈ ਲੋੜੀਦੀ ਮੈਮੋਰੀ ਦੀ ਮਾਤਰਾ ਉਪਲੱਬਧ ਐਡਰੈੱਸ ਥਾਂ ਤੋਂ ਵੱਧ ਹੈ"
-#: gio/gmemoryoutputstream.c:782
+#: gio/gmemoryoutputstream.c:774
msgid "Requested seek before the beginning of the stream"
msgstr "ਕੀਤੀ ਗਈ ਮੰਗ ਸਟਰੀਮ ਦੇ ਸ਼ੁਰੂ ਤੋਂ ਪਹਿਲਾਂ ਹੈ"
-#: gio/gmemoryoutputstream.c:797
+#: gio/gmemoryoutputstream.c:789
msgid "Requested seek beyond the end of the stream"
msgstr "ਕੀਤੀ ਗਈ ਮੰਗ ਸਟਰੀਮ ਦੇ ਅੰਤ ਤੋਂ ਬਾਅਦ ਹੈ"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement unmount.
-#: gio/gmount.c:399
-#| msgid "mount doesn't implement \"unmount\""
+#: gio/gmount.c:401
msgid "mount doesn’t implement “unmount”"
msgstr "ਮਾਊਂਟ ਹਾਲੇ ਅਣ-ਮਾਊਂਟ (“unmount”) ਲਈ ਸਥਾਪਿਤ ਨਹੀਂ"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement eject.
-#: gio/gmount.c:475
-#| msgid "mount doesn't implement \"eject\""
+#: gio/gmount.c:477
msgid "mount doesn’t implement “eject”"
msgstr "ਮਾਊਂਟ ਹਾਲੇ ਬਾਹਰ ਕੱਢਣ (“eject”) ਲਈ ਸਥਾਪਤ ਨਹੀਂ"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of unmount or unmount_with_operation.
-#: gio/gmount.c:553
-#| msgid "mount doesn't implement \"unmount\" or \"unmount_with_operation\""
+#: gio/gmount.c:555
msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
msgstr "ਮਾਊਂਟ ਲਈ ਹਾਲੇ “unmount” ਜਾਂ “unmount_with_operation” ਸਥਾਪਿਤ ਨਹੀਂ।"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gmount.c:638
-#| msgid "mount doesn't implement \"eject\" or \"eject_with_operation\""
+#: gio/gmount.c:640
msgid "mount doesn’t implement “eject” or “eject_with_operation”"
msgstr "ਮਾਊਂਟ ਲਈ “eject” ਜਾਂ “eject_with_operation” ਸਥਾਪਿਤ ਨਹੀਂ ਹੈ।"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement remount.
-#: gio/gmount.c:726
-#| msgid "mount doesn't implement \"remount\""
+#: gio/gmount.c:728
msgid "mount doesn’t implement “remount”"
msgstr "ਮਾਊਂਟ ਹਾਲੇ ਰੀ-ਮਾਊਂਟ (“remount”) ਲਈ ਸਥਾਪਿਤ ਨਹੀਂ"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:808
-#| msgid "mount doesn't implement content type guessing"
+#: gio/gmount.c:810
msgid "mount doesn’t implement content type guessing"
msgstr "ਪਰਸੰਗ ਟਾਈਪ ਗੈੱਸਿੰਗ ਲਈ ਮਾਊਂਟ ਸਥਾਪਤ ਨਹੀਂ ਹੈ"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:895
-#| msgid "mount doesn't implement synchronous content type guessing"
+#: gio/gmount.c:897
msgid "mount doesn’t implement synchronous content type guessing"
msgstr "ਸੈਕਰੋਨਿਸ ਪਰਸੰਗ ਟਾਈਪ ਗੈਸਿੰਗ ਲਈ ਮਾਊਂਟ ਸਥਾਪਤ ਨਹੀਂ ਹੈ"
-#: gio/gnetworkaddress.c:415
-#, fuzzy, c-format
+#: gio/gnetworkaddress.c:417
+#, c-format
#| msgid "Hostname '%s' contains '[' but not ']'"
msgid "Hostname “%s” contains “[” but not “]”"
-msgstr "ਹੋਸਟ-ਨਾਂ '%s' '[' ਰੱਖਦਾ ਹੈ, ਪਰ ']' ਨਹੀਂ"
+msgstr "ਹੋਸਟ-ਨਾਂ “%s” “[” ਰੱਖਦਾ ਹੈ, ਪਰ “]” ਨਹੀਂ ਹੈ"
-#: gio/gnetworkmonitorbase.c:211 gio/gnetworkmonitorbase.c:315
+#: gio/gnetworkmonitorbase.c:221 gio/gnetworkmonitorbase.c:325
msgid "Network unreachable"
msgstr "ਨੈੱਟਵਰਕ ਪਹੁੰਚ 'ਚ ਨਹੀਂ"
-#: gio/gnetworkmonitorbase.c:249 gio/gnetworkmonitorbase.c:279
+#: gio/gnetworkmonitorbase.c:259 gio/gnetworkmonitorbase.c:289
msgid "Host unreachable"
msgstr "ਹੋਸਟ ਪਹੁੰਚ 'ਚ ਨਹੀਂ"
-#: gio/gnetworkmonitornetlink.c:99 gio/gnetworkmonitornetlink.c:111
-#: gio/gnetworkmonitornetlink.c:130
+#: gio/gnetworkmonitornetlink.c:101 gio/gnetworkmonitornetlink.c:113
+#: gio/gnetworkmonitornetlink.c:132
#, c-format
msgid "Could not create network monitor: %s"
msgstr "ਨੈੱਟਵਰਕ ਮਾਨੀਟਰ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ: %s"
-#: gio/gnetworkmonitornetlink.c:120
+#: gio/gnetworkmonitornetlink.c:122
msgid "Could not create network monitor: "
msgstr "ਨੈੱਟਵਰਕ ਮਾਨੀਟਰ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ: "
-#: gio/gnetworkmonitornetlink.c:183
+#: gio/gnetworkmonitornetlink.c:185
msgid "Could not get network status: "
msgstr "ਨੈੱਟਵਰਕ ਹਾਲਤ ਲਈ ਨਹੀਂ ਜਾ ਸਕੀ: "
-#: gio/gnetworkmonitornm.c:348
+#: gio/gnetworkmonitornm.c:313
#, c-format
-#| msgid "NetworkManager version too old"
msgid "NetworkManager not running"
msgstr "ਨੈੱਟਵਰਕਮੈਨੇਜਰ ਚੱਲ ਨਹੀਂ ਰਿਹਾ ਹੈ"
-#: gio/gnetworkmonitornm.c:359
+#: gio/gnetworkmonitornm.c:324
#, c-format
msgid "NetworkManager version too old"
msgstr "ਨੈਟਵਰਕਮੈਨੇਜਰ ਵਰਜ਼ਨ ਬਹੁਤ ਪੁਰਾਣਾ ਹੈ"
-#: gio/goutputstream.c:232 gio/goutputstream.c:775
-#| msgid "Output stream doesn't implement write"
+#: gio/goutputstream.c:234 gio/goutputstream.c:777
msgid "Output stream doesn’t implement write"
msgstr "ਆਉਟਪੁੱਟ ਸਟਰੀਮ ਲਿਕਣ ਲਈ ਬਣਾਈ ਨਹੀਂ ਗਈ"
-#: gio/goutputstream.c:472 gio/goutputstream.c:1533
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr ""
-#: gio/goutputstream.c:736 gio/goutputstream.c:1761
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "ਸਰੋਤ ਸਟਰੀਮ ਬੰਦ ਕੀਤਾ ਗਿਆ ਹੈ"
-#: gio/gresolver.c:351 gio/gthreadedresolver.c:150 gio/gthreadedresolver.c:168
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
+msgid "Unspecified proxy lookup failure"
+msgstr ""
+
+#. Translators: the first placeholder is a domain name, the
+#. * second is an error message
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
-#| msgid "Error resolving '%s': %s"
msgid "Error resolving “%s”: %s"
msgstr "“%s” ਲੱਭਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:398 gio/gresolver.c:556
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
-#| msgid "Input stream doesn't implement read"
msgid "%s not implemented"
msgstr "%s ਸਥਾਪਿਤ ਨਹੀਂ ਹੈ"
-#: gio/gresolver.c:924 gio/gresolver.c:976
-#| msgid "Invalid filename"
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "ਗਲਤ ਡੋਮੇਨ"
-#: gio/gresource.c:665 gio/gresource.c:924 gio/gresource.c:963
-#: gio/gresource.c:1087 gio/gresource.c:1159 gio/gresource.c:1232
-#: gio/gresource.c:1313 gio/gresourcefile.c:476 gio/gresourcefile.c:599
-#: gio/gresourcefile.c:736
+#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
+#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
+#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:602
+#: gio/gresourcefile.c:753
#, c-format
-#| msgid "The resource at '%s' does not exist"
msgid "The resource at “%s” does not exist"
msgstr "“%s” ਉੱਤੇ ਸਰੋਤ ਮੌਜੂਦ ਨਹੀਂ ਹੈ"
-#: gio/gresource.c:830
+#: gio/gresource.c:850
#, c-format
-#| msgid "The resource at '%s' failed to decompress"
msgid "The resource at “%s” failed to decompress"
msgstr "“%s” ਉੱਤੇ ਸਰੋਤ ਡੀਕੰਪਰੈਸ ਕਰਨ ਲਈ ਫੇਲ੍ਹ"
-#: gio/gresourcefile.c:732
+#: gio/gresourcefile.c:659
+msgid "Resource files cannot be renamed"
+msgstr ""
+
+#: gio/gresourcefile.c:749
#, c-format
-#| msgid "The resource at '%s' is not a directory"
msgid "The resource at “%s” is not a directory"
msgstr "“%s” ਉੱਤੇ ਸਰੋਤ ਡਾਇਰੈਕਟਰੀ ਨਹੀਂ ਹੈ"
-#: gio/gresourcefile.c:940
-#| msgid "Input stream doesn't implement seek"
+#: gio/gresourcefile.c:957
msgid "Input stream doesn’t implement seek"
msgstr "ਇੰਪੁੱਟ ਸਟਰੀਮ ਲਈ seek ਸਥਾਪਿਤ ਨਹੀਂ ਹੈ"
-#: gio/gresource-tool.c:499
+#: gio/gresource-tool.c:502
msgid "List sections containing resources in an elf FILE"
msgstr "elf FILE ਵਿੱਚ ਮੌਜੂਦ ਸ਼ੈਕਸ਼ਨ ਰੱਖਣ ਵਾਲੇ ਸਰੋਤਾਂ ਦੀ ਸੂਚੀ"
-#: gio/gresource-tool.c:505
+#: gio/gresource-tool.c:508
msgid ""
"List resources\n"
"If SECTION is given, only list resources in this section\n"
@@ -3599,15 +3577,15 @@ msgstr ""
"ਜੇ SECTION ਦਿੱਤਾ ਤਾਂ ਇਹ ਸ਼ੈਕਸ਼ਨ ਵਿੱਚ ਸਰੋਤ ਵੇਖਾਏ ਜਾਣਗੇ\n"
"ਜੇ PATH ਦਿੱਤਾ ਤਾਂ ਕੇਵਲ ਮਿਲਦੀ ਸਰੋਤ ਹੀ ਵੇਖਾਏ ਜਾਂਦੇ ਹਨ"
-#: gio/gresource-tool.c:508 gio/gresource-tool.c:518
+#: gio/gresource-tool.c:511 gio/gresource-tool.c:521
msgid "FILE [PATH]"
msgstr "FILE [PATH]"
-#: gio/gresource-tool.c:509 gio/gresource-tool.c:519 gio/gresource-tool.c:526
+#: gio/gresource-tool.c:512 gio/gresource-tool.c:522 gio/gresource-tool.c:529
msgid "SECTION"
msgstr "SECTION"
-#: gio/gresource-tool.c:514
+#: gio/gresource-tool.c:517
msgid ""
"List resources with details\n"
"If SECTION is given, only list resources in this section\n"
@@ -3619,28 +3597,15 @@ msgstr ""
"ਜੇ PATH ਦਿੱਤਾ ਤਾਂ ਕੇਵਲ ਮਿਲਦੀ ਸਰੋਤ ਹੀ ਵੇਖਾਏ ਜਾਂਦੇ ਹਨ\n"
"ਵੇਰਵੇ ਵਿੱਚ ਸ਼ੈਕਸ਼ਨ, ਆਕਾਰ ਅਤੇ ਕੰਪਰੈਸ਼ਨ ਹੁੰਦੀ ਹੈ"
-#: gio/gresource-tool.c:524
+#: gio/gresource-tool.c:527
msgid "Extract a resource file to stdout"
msgstr "ਸਰੋਤ ਫਾਇਲ ਨੂੰ stdout ਉੱਤੇ ਖੋਲ੍ਹੋ"
-#: gio/gresource-tool.c:525
+#: gio/gresource-tool.c:528
msgid "FILE PATH"
msgstr "FILE PATH"
-#: gio/gresource-tool.c:539
-#| msgid ""
-#| "Usage:\n"
-#| " gresource [--section SECTION] COMMAND [ARGS...]\n"
-#| "\n"
-#| "Commands:\n"
-#| " help Show this information\n"
-#| " sections List resource sections\n"
-#| " list List resources\n"
-#| " details List resources with details\n"
-#| " extract Extract a resource\n"
-#| "\n"
-#| "Use 'gresource help COMMAND' to get detailed help.\n"
-#| "\n"
+#: gio/gresource-tool.c:542
msgid ""
"Usage:\n"
" gresource [--section SECTION] COMMAND [ARGS…]\n"
@@ -3668,7 +3633,7 @@ msgstr ""
"Use “gresource help COMMAND” to get detailed help.\n"
"\n"
-#: gio/gresource-tool.c:553
+#: gio/gresource-tool.c:556
#, c-format
msgid ""
"Usage:\n"
@@ -3683,19 +3648,19 @@ msgstr ""
"%s\n"
"\n"
-#: gio/gresource-tool.c:560
+#: gio/gresource-tool.c:563
msgid " SECTION An (optional) elf section name\n"
msgstr " SECTION ਇੱਕ (ਚੋਣਵਾਂ) elf ਭਾਗ ਨਾਂ\n"
-#: gio/gresource-tool.c:564 gio/gsettings-tool.c:701
+#: gio/gresource-tool.c:567 gio/gsettings-tool.c:720
msgid " COMMAND The (optional) command to explain\n"
msgstr " COMMAND (ਚੋਣਵਾਂ) ਕਮਾਂਡ ਬਾਰੇ ਜਾਣਕਾਰੀ\n"
-#: gio/gresource-tool.c:570
+#: gio/gresource-tool.c:573
msgid " FILE An elf file (a binary or a shared library)\n"
msgstr " FILE elf ਫਾਇਲ (ਬਾਈਨਰੀ ਜਾਂ ਸਾਂਝੀ ਲਾਇਬਰੇਰੀ)\n"
-#: gio/gresource-tool.c:573
+#: gio/gresource-tool.c:576
msgid ""
" FILE An elf file (a binary or a shared library)\n"
" or a compiled resource file\n"
@@ -3703,85 +3668,82 @@ msgstr ""
" FILE elf ਫਾਇਲ (ਬਾਈਨਰੀ ਜਾਂ ਸਾਂਝੀ ਲਾਇਬਰੇਰੀ)\n"
" ਜਾਂ ਇੱਕ ਕੰਪਾਇਲ ਕੀਤੀ ਸਰੋਤ ਫਾਇਲ\n"
-#: gio/gresource-tool.c:577
+#: gio/gresource-tool.c:580
msgid "[PATH]"
msgstr "[PATH]"
-#: gio/gresource-tool.c:579
+#: gio/gresource-tool.c:582
msgid " PATH An (optional) resource path (may be partial)\n"
msgstr " PATH ਇੱਕ (ਚੋਣਵਾਂ) ਸਰੋਤ ਪਾਥ (ਅਧੂਰਾ ਵੀ ਹੋ ਸਕਦਾ ਹੈ)\n"
-#: gio/gresource-tool.c:580
+#: gio/gresource-tool.c:583
msgid "PATH"
msgstr "PATH"
-#: gio/gresource-tool.c:582
+#: gio/gresource-tool.c:585
msgid " PATH A resource path\n"
msgstr " PATH ਇੱਕ ਸਰੋਤ ਪਾਥ\n"
-#: gio/gsettings-tool.c:49 gio/gsettings-tool.c:70 gio/gsettings-tool.c:906
+#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:925
#, c-format
-#| msgid "No such schema '%s'\n"
msgid "No such schema “%s”\n"
msgstr "ਇੰਝ ਦਾ ਕੋਈ ਵੀ “%s” ਸਕੀਮਾ ਨਹੀਂ\n"
-#: gio/gsettings-tool.c:55
+#: gio/gsettings-tool.c:57
#, c-format
-#| msgid "Schema '%s' is not relocatable (path must not be specified)\n"
msgid "Schema “%s” is not relocatable (path must not be specified)\n"
msgstr "ਸਕੀਮਾ “%s” ਮੁੜ-ਬਦਲਣਯੋਗ ਨਹੀਂ ਹੈ (ਪਾਥ ਨਹੀਂ ਦਿੱਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ)\n"
-#: gio/gsettings-tool.c:76
+#: gio/gsettings-tool.c:78
#, c-format
-#| msgid "Schema '%s' is relocatable (path must be specified)\n"
msgid "Schema “%s” is relocatable (path must be specified)\n"
msgstr "ਸਕੀਮਾ “%s” ਮੁੜ-ਬਦਲਣਯੋਗ ਹੈ (ਪਾਥ ਦਿੱਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ)\n"
-#: gio/gsettings-tool.c:90
+#: gio/gsettings-tool.c:92
msgid "Empty path given.\n"
msgstr "ਖਾਲੀ ਪਾਥ ਦਿੱਤਾ।\n"
-#: gio/gsettings-tool.c:96
+#: gio/gsettings-tool.c:98
msgid "Path must begin with a slash (/)\n"
msgstr "ਪਾਥ ਸਲੈਸ਼ (/) ਨਾਲ ਸ਼ੁਰੂ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ\n"
-#: gio/gsettings-tool.c:102
+#: gio/gsettings-tool.c:104
msgid "Path must end with a slash (/)\n"
msgstr "ਪਾਥ ਸਲੈਸ਼ (/) ਨਾਲ ਖਤਮ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ\n"
-#: gio/gsettings-tool.c:108
+#: gio/gsettings-tool.c:110
msgid "Path must not contain two adjacent slashes (//)\n"
msgstr "ਪਾਥ ਵਿੱਚ ਦੋ ਲਗਾਤਾਰ ਸਲੈਸ਼ (//) ਨਹੀਂ ਹੋ ਸਕਦੀਆਂ\n"
-#: gio/gsettings-tool.c:536
+#: gio/gsettings-tool.c:555
msgid "The provided value is outside of the valid range\n"
msgstr "ਦਿੱਤਾ ਮੁੱਲ ਢੁੱਕਵੀਂ ਰੇਜ਼ ਤੋਂ ਬਾਹਰ ਹੈ\n"
-#: gio/gsettings-tool.c:543
+#: gio/gsettings-tool.c:562
msgid "The key is not writable\n"
msgstr "ਕੁੰਜੀ ਲਿਖਣਯੋਗ ਨਹੀਂ ਹੈ\n"
-#: gio/gsettings-tool.c:579
+#: gio/gsettings-tool.c:598
msgid "List the installed (non-relocatable) schemas"
msgstr "ਇੰਸਟਾਲ ਹੋਏ (ਗ਼ੈਰ-ਬਦਲਣਯੋਗ) ਸਕੀਮਾ ਦੀ ਲਿਸਟ"
-#: gio/gsettings-tool.c:585
+#: gio/gsettings-tool.c:604
msgid "List the installed relocatable schemas"
msgstr "ਇੰਸਟਾਲ ਹੋਏ ਬਦਲਣਯੋਗ ਸਕੀਮਾ ਦੀ ਲਿਸਟ"
-#: gio/gsettings-tool.c:591
+#: gio/gsettings-tool.c:610
msgid "List the keys in SCHEMA"
msgstr "SCHEMA ਵਿੱਚ ਕੁੰਜੀਆਂ ਦੀ ਲਿਸਟ"
-#: gio/gsettings-tool.c:592 gio/gsettings-tool.c:598 gio/gsettings-tool.c:641
+#: gio/gsettings-tool.c:611 gio/gsettings-tool.c:617 gio/gsettings-tool.c:660
msgid "SCHEMA[:PATH]"
msgstr "SCHEMA[:PATH]"
-#: gio/gsettings-tool.c:597
+#: gio/gsettings-tool.c:616
msgid "List the children of SCHEMA"
msgstr "SCHEMA ਵਿੱਚ ਚਿਲਡਰਨ ਦੀ ਲਿਸਟ"
-#: gio/gsettings-tool.c:603
+#: gio/gsettings-tool.c:622
msgid ""
"List keys and values, recursively\n"
"If no SCHEMA is given, list all keys\n"
@@ -3789,50 +3751,49 @@ msgstr ""
"ਕੁੰਜੀਆਂ ਤੇ ਮੁੱਲ ਲਗਾਤਾਰ ਲਿਸਟ ਕਰੋ\n"
"ਜੇ ਕੋਈ SCHEMA ਨਹੀਂ ਦਿੱਤਾ ਤਾਂ, ਸਭ ਕੁੰਜੀਆਂ ਦਿਉ\n"
-#: gio/gsettings-tool.c:605
+#: gio/gsettings-tool.c:624
msgid "[SCHEMA[:PATH]]"
msgstr "[SCHEMA[:PATH]]"
-#: gio/gsettings-tool.c:610
+#: gio/gsettings-tool.c:629
msgid "Get the value of KEY"
msgstr "KEY ਦਾ ਮੁੱਲ ਲਵੋ"
-#: gio/gsettings-tool.c:611 gio/gsettings-tool.c:617 gio/gsettings-tool.c:623
-#: gio/gsettings-tool.c:635 gio/gsettings-tool.c:647
+#: gio/gsettings-tool.c:630 gio/gsettings-tool.c:636 gio/gsettings-tool.c:642
+#: gio/gsettings-tool.c:654 gio/gsettings-tool.c:666
msgid "SCHEMA[:PATH] KEY"
msgstr "SCHEMA[:PATH] KEY"
-#: gio/gsettings-tool.c:616
+#: gio/gsettings-tool.c:635
msgid "Query the range of valid values for KEY"
msgstr "KEY ਲਈ ਢੁੱਕਵੇਂ ਮੁੱਲ ਲਈ ਰੇਜ਼ ਕਿਊਰੀਆਂ"
-#: gio/gsettings-tool.c:622
-#, fuzzy
+#: gio/gsettings-tool.c:641
#| msgid "Query the range of valid values for KEY"
msgid "Query the description for KEY"
-msgstr "KEY ਲਈ ਢੁੱਕਵੇਂ ਮੁੱਲ ਲਈ ਰੇਜ਼ ਕਿਊਰੀਆਂ"
+msgstr "KEY ਲਈ ਵਰਣਨ ਦੀ ਕਿਊਰੀ"
-#: gio/gsettings-tool.c:628
+#: gio/gsettings-tool.c:647
msgid "Set the value of KEY to VALUE"
msgstr "KEY ਲਈ ਮੁੱਲ (VALUE) ਸੈੱਟ ਕਰੋ"
-#: gio/gsettings-tool.c:629
+#: gio/gsettings-tool.c:648
msgid "SCHEMA[:PATH] KEY VALUE"
msgstr "SCHEMA[:PATH] KEY VALUE"
-#: gio/gsettings-tool.c:634
+#: gio/gsettings-tool.c:653
msgid "Reset KEY to its default value"
msgstr "KEY ਨੂੰ ਡਿਫਾਲਟ ਮੁੱਲ ਲਈ ਮੁੜ-ਸੈੱਟ ਕਰੋ"
-#: gio/gsettings-tool.c:640
+#: gio/gsettings-tool.c:659
msgid "Reset all keys in SCHEMA to their defaults"
msgstr "SCHEMA ਵਿੱਚ ਸਭ ਸਵਿੱਚਾਂ ਨੂੰ ਉਹਨਾਂ ਦੇ ਡਿਫਾਲਟ ਲਈ ਮੁੜ-ਸੈੱਟ ਕਰੋ"
-#: gio/gsettings-tool.c:646
+#: gio/gsettings-tool.c:665
msgid "Check if KEY is writable"
msgstr "ਚੈੱਕ ਕਰੋ ਕਿ KEY ਲਿਖਣਯੋਗ ਹੈ"
-#: gio/gsettings-tool.c:652
+#: gio/gsettings-tool.c:671
msgid ""
"Monitor KEY for changes.\n"
"If no KEY is specified, monitor all keys in SCHEMA.\n"
@@ -3842,33 +3803,11 @@ msgstr ""
"ਜੇ ਕੋਈ KEY ਨਾ ਦਿੱਤੀ ਹੋਵੇ ਤਾਂ SCHEMA ਵਿੱਚ ਸਭ ਕੁੰਜੀਆਂ ਤੇ ਨਿਗ੍ਹਾ ਰੱਖੋ।\n"
"ਨਿਗਰਾਨੀ ਬੰਦ ਕਰਨ ਲਈ ^C ਵਰਤੋਂ।\n"
-#: gio/gsettings-tool.c:655
+#: gio/gsettings-tool.c:674
msgid "SCHEMA[:PATH] [KEY]"
msgstr "SCHEMA[:PATH] [KEY]"
-#: gio/gsettings-tool.c:667
-#| msgid ""
-#| "Usage:\n"
-#| " gsettings --version\n"
-#| " gsettings [--schemadir SCHEMADIR] COMMAND [ARGS...]\n"
-#| "\n"
-#| "Commands:\n"
-#| " help Show this information\n"
-#| " list-schemas List installed schemas\n"
-#| " list-relocatable-schemas List relocatable schemas\n"
-#| " list-keys List keys in a schema\n"
-#| " list-children List children of a schema\n"
-#| " list-recursively List keys and values, recursively\n"
-#| " range Queries the range of a key\n"
-#| " get Get the value of a key\n"
-#| " set Set the value of a key\n"
-#| " reset Reset the value of a key\n"
-#| " reset-recursively Reset all values in a given schema\n"
-#| " writable Check if a key is writable\n"
-#| " monitor Watch for changes\n"
-#| "\n"
-#| "Use 'gsettings help COMMAND' to get detailed help.\n"
-#| "\n"
+#: gio/gsettings-tool.c:686
msgid ""
"Usage:\n"
" gsettings --version\n"
@@ -3916,7 +3855,7 @@ msgstr ""
"Use “gsettings help COMMAND” to get detailed help.\n"
"\n"
-#: gio/gsettings-tool.c:691
+#: gio/gsettings-tool.c:710
#, c-format
msgid ""
"Usage:\n"
@@ -3931,11 +3870,11 @@ msgstr ""
"%s\n"
"\n"
-#: gio/gsettings-tool.c:697
+#: gio/gsettings-tool.c:716
msgid " SCHEMADIR A directory to search for additional schemas\n"
msgstr " SCHEMADIR ਇੱਕ ਡਾਇਰੈਕਟਰੀ, ਜੋ ਕਿ ਹੋਰ ਸਕੀਮਾ ਲੱਭਣ ਲਈ ਹੈ\n"
-#: gio/gsettings-tool.c:705
+#: gio/gsettings-tool.c:724
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
@@ -3943,394 +3882,425 @@ msgstr ""
" SCHEMA ਸਕੀਮਾ ਦਾ ਨਾਂ\n"
" PATH ਮੁੜ-ਲੱਭਣਯੋਗ ਸਕੀਮਾ ਲਈ ਪਾਥ\n"
-#: gio/gsettings-tool.c:710
+#: gio/gsettings-tool.c:729
msgid " KEY The (optional) key within the schema\n"
msgstr " KEY ਸਕੀਮਾ ਵਿੱਚ (ਚੋਣਵੀਂ) ਕੁੰਜੀ\n"
-#: gio/gsettings-tool.c:714
+#: gio/gsettings-tool.c:733
msgid " KEY The key within the schema\n"
msgstr " KEY ਸਕੀਮਾ ਵਿੱਚ ਕੁੰਜੀ\n"
-#: gio/gsettings-tool.c:718
+#: gio/gsettings-tool.c:737
msgid " VALUE The value to set\n"
msgstr " VALUE ਸੈੱਟ ਕਰਨ ਲਈ ਮੁੱਲ\n"
-#: gio/gsettings-tool.c:773
+#: gio/gsettings-tool.c:792
#, c-format
msgid "Could not load schemas from %s: %s\n"
msgstr "%s ਤੋਂ ਸਕੀਮਾ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ: %s\n"
-#: gio/gsettings-tool.c:785
-#, fuzzy
+#: gio/gsettings-tool.c:804
#| msgid "No schema files found: "
msgid "No schemas installed\n"
-msgstr "ਕੋਈ ਸਕੀਮਾਂ ਫਾਇਲ ਨਹੀਂ ਲੱਭੀ: "
+msgstr "ਕੋਈ ਸਕੀਮਾਂ ਇੰਸਟਾਲ ਨਹੀਂ ਹੈ\n"
-#: gio/gsettings-tool.c:864
+#: gio/gsettings-tool.c:883
msgid "Empty schema name given\n"
msgstr "ਖਾਲੀ ਸਕੀਮਾ ਨਾਂ ਦਿੱਤਾ\n"
-#: gio/gsettings-tool.c:919
+#: gio/gsettings-tool.c:938
#, c-format
-#| msgid "No such key '%s'\n"
msgid "No such key “%s”\n"
msgstr "ਇੰਝ ਦੀ “%s” ਕੁੰਜੀ ਨਹੀਂ\n"
-#: gio/gsocket.c:374
+#: gio/gsocket.c:419
msgid "Invalid socket, not initialized"
msgstr "ਗਲਤ ਸਾਕਟ, ਸ਼ੁਰੂ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-#: gio/gsocket.c:381
+#: gio/gsocket.c:426
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
msgstr "ਗਲਤ ਸਾਕਟ, %s: ਕਰਕੇ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਫੇਲ੍ਹ"
-#: gio/gsocket.c:389
+#: gio/gsocket.c:434
msgid "Socket is already closed"
msgstr "ਸਾਕਟ ਪਹਿਲਾਂ ਹੀ ਬੰਦ ਹੈ"
-#: gio/gsocket.c:404 gio/gsocket.c:3134 gio/gsocket.c:4351 gio/gsocket.c:4409
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "ਸਾਕਟ I/O ਟਾਈਮ-ਆਉਟ"
-#: gio/gsocket.c:539
+#: gio/gsocket.c:586
#, c-format
msgid "creating GSocket from fd: %s"
msgstr "fd ਤੋਂ ਜੀਸਾਕਟ ਬਣਾਈ ਜਾ ਰਹੀ ਹੈ: %s"
-#: gio/gsocket.c:568 gio/gsocket.c:622 gio/gsocket.c:629
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "ਸਾਕਟ ਬਣਾਉਣ ਲਈ ਅਸਮਰੱਥ: %s"
-#: gio/gsocket.c:622
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "ਅਣਜਾਣ ਵਰਗ ਦਿੱਤਾ ਗਿਆ"
-#: gio/gsocket.c:629
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "ਅਣਜਾਣ ਪਰੋਟੋਕਾਲ ਦਿੱਤਾ ਗਿਆ"
-#: gio/gsocket.c:1120
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr ""
-#: gio/gsocket.c:1137
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
-#: gio/gsocket.c:1944
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "ਲੋਕਲ ਐਡਰੈੱਸ ਨਹੀਂ ਲਿਆ ਜਾ ਸਕਿਆ: %s"
-#: gio/gsocket.c:1990
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "ਰਿਮੋਟ ਐਡਰੈੱਸ ਨਹੀਂ ਲਿਆ ਜਾ ਸਕਿਆ: %s"
-#: gio/gsocket.c:2056
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "ਸੁਣਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ: %s"
-#: gio/gsocket.c:2158
-#, c-format
-msgid "Error binding to address: %s"
+#: gio/gsocket.c:2230
+#, fuzzy, c-format
+#| msgid "Error binding to address: %s"
+msgid "Error binding to address %s: %s"
msgstr "ਐਡਰੈੱਸ ਸਬੰਧਿਤ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gsocket.c:2332 gio/gsocket.c:2369 gio/gsocket.c:2479 gio/gsocket.c:2504
-#: gio/gsocket.c:2567 gio/gsocket.c:2625 gio/gsocket.c:2643
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "ਮਲਟੀਕਾਸਟ ਗਰੁੱਪ ਜੁਆਇੰਨ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gsocket.c:2333 gio/gsocket.c:2370 gio/gsocket.c:2480 gio/gsocket.c:2505
-#: gio/gsocket.c:2568 gio/gsocket.c:2626 gio/gsocket.c:2644
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "ਮਲਟੀਕਾਸਟ ਗਰੁੱਪ ਛੱਡਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gsocket.c:2334
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "ਸਰੋਤ-ਖਾਸ ਮਲਟੀਕਾਸਟ ਲਈ ਕੋਈ ਸਹਿਯੋਗ ਨਹੀਂ"
-#: gio/gsocket.c:2481
-#| msgid "Unsupported socket address"
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "ਗ਼ੈਰ-ਸਹਾਇਕ ਸਾਕਟ ਵਰਗ"
-#: gio/gsocket.c:2506
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr ""
-#: gio/gsocket.c:2530
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr ""
-#: gio/gsocket.c:2543 gio/gsocket.c:2593
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr ""
-#: gio/gsocket.c:2569
-#| msgid "No support for source-specific multicast"
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "IPv4 ਸਰੋਤ-ਖਾਸ ਮਲਟੀਕਾਸਟ ਲਈ ਕੋਈ ਸਹਿਯੋਗ ਨਹੀਂ"
-#: gio/gsocket.c:2627
-#| msgid "No support for source-specific multicast"
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "IPv6 ਸਰੋਤ-ਖਾਸ ਮਲਟੀਕਾਸਟ ਲਈ ਕੋਈ ਸਹਿਯੋਗ ਨਹੀਂ"
-#: gio/gsocket.c:2836
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "ਕੁਨੈਕਸ਼ਨ ਮਨਜ਼ੂਰ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gsocket.c:2962
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "ਕੁਨੈਕਸ਼ਨ ਜਾਰੀ ਹੈ"
-#: gio/gsocket.c:3013
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "ਬਾਕੀ ਗਲਤੀ ਲੈਣ ਲਈ ਅਸਮਰੱਥ: "
-#: gio/gsocket.c:3199
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "ਡਾਟਾ ਲੈਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gsocket.c:3396
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "ਡਾਟਾ ਭੇਜਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gsocket.c:3583
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "ਸਾਕਟ ਬੰਦ ਕਰਨ ਲਈ ਅਸਮਰੱਥ: %s"
-#: gio/gsocket.c:3664
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "ਸਾਕਟ ਬੰਦ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gsocket.c:4344
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "ਸਾਕਟ ਸ਼ਰਤ ਲਈ ਉਡੀਕ ਜਾਰੀ: %s"
-#: gio/gsocket.c:4722 gio/gsocket.c:4724 gio/gsocket.c:4871 gio/gsocket.c:4956
-#: gio/gsocket.c:5134 gio/gsocket.c:5174 gio/gsocket.c:5176
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
+#, c-format
+#| msgid "Error sending message: %s"
+msgid "Unable to send message: %s"
+msgstr "ਸੁਨੇਹਾ ਭੇਜਣ ਲਈ ਅਸਮਰੱਥ: %s"
+
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
+msgid "Message vectors too large"
+msgstr ""
+
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "ਸੁਨੇਹਾ ਭੇਜਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gsocket.c:4898
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "ਵਿੰਡੋਜ਼ ਉੱਤੇ GSocketControlMessage ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
-#: gio/gsocket.c:5367 gio/gsocket.c:5440 gio/gsocket.c:5666
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "ਸੁਨੇਹਾ ਲੈਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gsocket.c:5947
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "ਸਾਕਟ ਸਨਦ ਪੜ੍ਹਨ ਲਈ ਅਸਮਰੱਥ: %s"
-#: gio/gsocket.c:5956
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "ਇਸ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਲਈ g_socket_get_credentials ਬਣਾਇਆ ਨਹੀਂ"
-#: gio/gsocketclient.c:182
+#: gio/gsocketclient.c:193
#, c-format
msgid "Could not connect to proxy server %s: "
msgstr "%s ਪਰਾਕਸੀ ਸਰਵਰ ਨਾਲ ਕੁਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ: "
-#: gio/gsocketclient.c:196
+#: gio/gsocketclient.c:207
#, c-format
msgid "Could not connect to %s: "
msgstr "%s ਨਾਲ ਕੁਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ: "
-#: gio/gsocketclient.c:198
+#: gio/gsocketclient.c:209
msgid "Could not connect: "
msgstr "ਕੁਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ: "
-#: gio/gsocketclient.c:1037 gio/gsocketclient.c:1764
-msgid "Unknown error on connect"
-msgstr "ਕੁਨੈਕਟ ਉੱਤੇ ਅਣਜਾਣ ਗਲਤੀ"
-
-#: gio/gsocketclient.c:1091 gio/gsocketclient.c:1672
+#: gio/gsocketclient.c:1204 gio/gsocketclient.c:1807
msgid "Proxying over a non-TCP connection is not supported."
msgstr "ਗ਼ੈਰ-TCP ਕੁਨੈਕਸ਼ਨ ਉੱਤੇ ਪਰਾਕਸੀ ਵਰਤਣਾ ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
-#: gio/gsocketclient.c:1120 gio/gsocketclient.c:1698
+#: gio/gsocketclient.c:1236 gio/gsocketclient.c:1836
#, c-format
-#| msgid "Proxy protocol '%s' is not supported."
msgid "Proxy protocol “%s” is not supported."
msgstr "ਪਰਾਕਸੀ ਪਰੋਟੋਕਾਲ “%s” ਸਹਾਇਕ ਨਹੀਂ ਹੈ।"
-#: gio/gsocketlistener.c:230
+#: gio/gsocketlistener.c:232
msgid "Listener is already closed"
msgstr "ਲਿਸਨਰ ਪਹਿਲਾਂ ਹੀ ਬੰਦ ਹੈ"
-#: gio/gsocketlistener.c:276
+#: gio/gsocketlistener.c:278
msgid "Added socket is closed"
msgstr "ਸਾਕਟ ਪਹਿਲਾਂ ਹੀ ਬੰਦ ਹੈ"
-#: gio/gsocks4aproxy.c:118
+#: gio/gsocks4aproxy.c:120
#, c-format
-#| msgid "SOCKSv4 does not support IPv6 address '%s'"
msgid "SOCKSv4 does not support IPv6 address “%s”"
msgstr "SOCKSv4 IPv6 ਐਡਰੈੱਸ “%s” ਲਈ ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
-#: gio/gsocks4aproxy.c:136
+#: gio/gsocks4aproxy.c:138
msgid "Username is too long for SOCKSv4 protocol"
msgstr "SOCKSv4 ਪਰੋਟੋਕਾਲ ਲਈ ਬਹੁਤ ਲੰਮਾ ਯੂਜ਼ਰ ਨਾਂ ਹੈ"
-#: gio/gsocks4aproxy.c:153
+#: gio/gsocks4aproxy.c:155
#, c-format
-#| msgid "Hostname '%s' is too long for SOCKSv4 protocol"
msgid "Hostname “%s” is too long for SOCKSv4 protocol"
msgstr "SOCKSv4 ਪਰੋਟੋਕਾਲ ਲਈ “%s” ਹੋਸਟ-ਨਾਂ ਬਹੁਤ ਲੰਮਾ ਹੈ"
-#: gio/gsocks4aproxy.c:179
+#: gio/gsocks4aproxy.c:181
msgid "The server is not a SOCKSv4 proxy server."
msgstr "ਸਰਵਰ ਇੱਕ SOCKSv4 ਪਰਾਕਸੀ ਸਰਵਰ ਨਹੀਂ ਹੈ।"
-#: gio/gsocks4aproxy.c:186
+#: gio/gsocks4aproxy.c:188
msgid "Connection through SOCKSv4 server was rejected"
msgstr "SOCKSv5 ਸਰਵਰ ਰਾਹੀਂ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਰੱਦ ਕੀਤਾ ਗਿਆ ਹੈ"
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:324 gio/gsocks5proxy.c:334
+#: gio/gsocks5proxy.c:155 gio/gsocks5proxy.c:340 gio/gsocks5proxy.c:350
msgid "The server is not a SOCKSv5 proxy server."
msgstr "ਸਰਵਰ SOCKSv5 ਪਰਾਕਸੀ ਸਰਵਰ ਨਹੀਂ ਹੈ।"
-#: gio/gsocks5proxy.c:167
+#: gio/gsocks5proxy.c:169 gio/gsocks5proxy.c:186
msgid "The SOCKSv5 proxy requires authentication."
msgstr "SOCKSv5 ਪਰਾਕਸੀ ਲਈ ਪਰਮਾਣਿਕਤਾ ਦੀ ਲੋੜ ਹੈ।"
-#: gio/gsocks5proxy.c:177
+#: gio/gsocks5proxy.c:193
msgid ""
"The SOCKSv5 proxy requires an authentication method that is not supported by "
"GLib."
msgstr ""
"SOCKSv5 ਲਈ ਅਜਿਹੇ ਪਰਮਾਣਿਕਤਾ ਢੰਗ ਦੀ ਲੋੜ ਹੈ, ਜੋ ਕਿ GLib ਵਲੋਂ ਸਹਾਇਕ ਨਹੀਂ ਹੈ।"
-#: gio/gsocks5proxy.c:206
+#: gio/gsocks5proxy.c:222
msgid "Username or password is too long for SOCKSv5 protocol."
msgstr "SOCKSv5 ਪਰੋਟੋਕਾਲ ਲਈ ਬਹੁਤ ਲੰਮਾ ਵਰਤੋਂਕਾਰ ਨਾਂ ਜਾਂ ਪਾਸਵਰਡ ਹੈ।"
-#: gio/gsocks5proxy.c:236
+#: gio/gsocks5proxy.c:252
msgid "SOCKSv5 authentication failed due to wrong username or password."
msgstr "SOCKSv5 ਪਰਮਾਣਕਿਤਾ ਗਲਤ ਵਰਤੋਂਕਾਰ-ਨਾਂ ਜਾਂ ਪਾਸਵਰਡ ਕਰਕੇ ਫੇਲ੍ਹ ਹੋ ਗਈ ਹੈ"
-#: gio/gsocks5proxy.c:286
+#: gio/gsocks5proxy.c:302
#, c-format
-#| msgid "Hostname '%s' is too long for SOCKSv5 protocol"
msgid "Hostname “%s” is too long for SOCKSv5 protocol"
msgstr "SOCKSv5 ਪਰੋਟੋਕਾਲ ਲਈ “%s” ਹੋਸਟ-ਨਾਂ ਬਹੁਤ ਲੰਮਾ ਹੈ।"
-#: gio/gsocks5proxy.c:348
+#: gio/gsocks5proxy.c:364
msgid "The SOCKSv5 proxy server uses unknown address type."
msgstr "SOCKSv5 ਪਰਾਕਸੀ ਸਰਵਰ ਅਣਜਾਣ ਐਡਰੈੱਸ ਕਿਸਮ ਵਰਤਦਾ ਹੈ।"
-#: gio/gsocks5proxy.c:355
+#: gio/gsocks5proxy.c:371
msgid "Internal SOCKSv5 proxy server error."
msgstr "ਅੰਦਰੂਨੀ SOCKSv5 ਪਰਾਕਸੀ ਸਰਵਰ ਗਲਤੀ।"
-#: gio/gsocks5proxy.c:361
+#: gio/gsocks5proxy.c:377
msgid "SOCKSv5 connection not allowed by ruleset."
msgstr "SOCKSv5 ਕੁਨੈਕਸ਼ਨ ruleset ਨਾਲ ਮਨਜ਼ੂਰ ਨਹੀਂ ਹੈ।"
-#: gio/gsocks5proxy.c:368
+#: gio/gsocks5proxy.c:384
msgid "Host unreachable through SOCKSv5 server."
msgstr "SOCKSv5 ਸਰਵਰ ਰਾਹੀਂ ਹੋਸਟ ਪਹੁੰਚ-ਯੋਗ ਨਹੀਂ ਹੈ।"
-#: gio/gsocks5proxy.c:374
+#: gio/gsocks5proxy.c:390
msgid "Network unreachable through SOCKSv5 proxy."
msgstr "SOCKSv5 ਪਰਾਕਸੀ ਰਾਹੀਂ ਨੈੱਟਵਰਕ ਪਹੁੰਚ 'ਚ ਨਹੀਂ ਹੈ।"
-#: gio/gsocks5proxy.c:380
+#: gio/gsocks5proxy.c:396
msgid "Connection refused through SOCKSv5 proxy."
msgstr "SOCKSv5 ਪਰਾਕਸੀ ਨੇ ਕੁਨੈਕਸ਼ਨ ਤੋਂ ਇਨਕਾਰ ਕਰ ਦਿੱਤਾ ਹੈ।"
-#: gio/gsocks5proxy.c:386
-#| msgid "SOCKSv5 proxy does not support 'connect' command."
+#: gio/gsocks5proxy.c:402
msgid "SOCKSv5 proxy does not support “connect” command."
msgstr "SOCKSv5 ਪਰਾਕਸੀ “connect” ਕਮਾਂਡ ਲਈ ਸਹਾਇਕ ਨਹੀਂ ਹੈ।"
-#: gio/gsocks5proxy.c:392
+#: gio/gsocks5proxy.c:408
msgid "SOCKSv5 proxy does not support provided address type."
msgstr "SOCKSv5 ਪਰਾਕਸੀ ਦਿੱਤੀ ਐਡਰੈੱਸ ਕਿਸਮ ਲਈ ਸਹਾਇਕ ਨਹੀਂ ਹੈ।"
-#: gio/gsocks5proxy.c:398
+#: gio/gsocks5proxy.c:414
msgid "Unknown SOCKSv5 proxy error."
msgstr "ਅਣਜਾਣ SOCKSv5 ਪਰਾਕਸੀ ਗਲਤੀ ਹੈ।"
-#: gio/gthemedicon.c:595
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
+#, c-format
+msgid "Failed to create pipe for communicating with child process (%s)"
+msgstr "ਚਾਈਲਡ ਪਰੋਸੈਸ (%s) ਨਾਲ ਕਮਿਊਨੀਕੇਸ਼ਨ ਲਈ ਪਾਇਪ ਬਣਾਉਣ ਵਿੱਚ ਫੇਲ੍ਹ"
+
+#: gio/gtestdbus.c:621
+#, c-format
+#| msgid "Seek not supported on stream"
+msgid "Pipes are not supported in this platform"
+msgstr "ਇਸ ਪਲੇਟਫ਼ਾਰਮ ਉੱਤੇ ਪਾਈਪ ਸਹਾਇਕ ਨਹੀਂ ਹਨ"
+
+#: gio/gthemedicon.c:597
#, c-format
-#| msgid "Can't handle version %d of GThemedIcon encoding"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "GThemedIcon ਇੰਕੋਡਿੰਗ ਦਾ %d ਵਰਜਨ ਹੈਂਡਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-#: gio/gthreadedresolver.c:152
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "ਕੋਈ ਜਾਇਜ਼ ਸਿਰਨਾਵੇ ਨਹੀਂ ਲੱਭੇ"
-#: gio/gthreadedresolver.c:334
+#: gio/gthreadedresolver.c:514
#, c-format
-#| msgid "Error reverse-resolving '%s': %s"
msgid "Error reverse-resolving “%s”: %s"
msgstr "“%s” ਉਲਟ-ਲੱਭਣ ਲਈ ਗਲਤੀ: %s"
-#: gio/gthreadedresolver.c:671 gio/gthreadedresolver.c:750
-#: gio/gthreadedresolver.c:848 gio/gthreadedresolver.c:898
+#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
+#, c-format
+msgid "Error parsing DNS %s record: malformed DNS packet"
+msgstr ""
+
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
-#| msgid "No DNS record of the requested type for '%s'"
msgid "No DNS record of the requested type for “%s”"
msgstr "“%s” ਲਈ ਮੰਗੀ ਕਿਸਮ ਦਾ ਕੋਈ ਵੀ DNS ਰਿਕਾਰਡ ਨਹੀਂ"
-#: gio/gthreadedresolver.c:676 gio/gthreadedresolver.c:853
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
-#| msgid "Temporarily unable to resolve '%s'"
msgid "Temporarily unable to resolve “%s”"
msgstr "“%s” ਲੱਭਣ ਲਈ ਆਰਜ਼ੀ ਰੂਪ ਵਿੱਚ ਅਸਮਰੱਥ"
-#: gio/gthreadedresolver.c:681 gio/gthreadedresolver.c:858
-#: gio/gthreadedresolver.c:968
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
-#| msgid "Error resolving '%s'"
msgid "Error resolving “%s”"
msgstr "“%s” ਲੱਭਣ ਦੌਰਾਨ ਗਲਤੀ"
-#: gio/gtlscertificate.c:243
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
+msgid "Malformed DNS packet"
+msgstr "ਖ਼ਰਾਬ DNS ਪੈਕੇਟ"
+
+#: gio/gthreadedresolver.c:1089
+#, c-format
+#| msgid "Failed to read from file '%s': %s"
+msgid "Failed to parse DNS response for “%s”: "
+msgstr "“%s” ਲਈ DNS ਜਵਾਬ ਪਾਰਸ ਕਰਨ ਲਈ ਫ਼ੇਲ੍ਹ ਹੈ: "
+
+#: gio/gtlscertificate.c:480
msgid "No PEM-encoded private key found"
msgstr "ਕੋਈ PEM-ਇੰਕੋਡ ਕੀਤੀ ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ ਨਹੀਂ ਲੱਭੀ"
-#: gio/gtlscertificate.c:253
+#: gio/gtlscertificate.c:490
msgid "Cannot decrypt PEM-encoded private key"
msgstr "PEM-ਇੰਕੋਡ ਕੀਤੀ ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ ਪਾਰਸ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦਾ"
-#: gio/gtlscertificate.c:264
+#: gio/gtlscertificate.c:501
msgid "Could not parse PEM-encoded private key"
msgstr "PEM-ਇੰਕੋਡ ਕੀਤੀ ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ ਪਾਰਸ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ"
-#: gio/gtlscertificate.c:291
+#: gio/gtlscertificate.c:528
msgid "No PEM-encoded certificate found"
msgstr "ਕੋਈ PEM-ਇੰਕੋਡ ਕੀਤਾ ਸਰਟੀਫਿਕੇਟ ਨਹੀਂ ਲੱਭਿਆ ਹੈ"
-#: gio/gtlscertificate.c:300
+#: gio/gtlscertificate.c:537
msgid "Could not parse PEM-encoded certificate"
msgstr "PEM-ਇੰਕੋਡ ਕੀਤਾ ਸਰਟੀਫਿਕੇਟ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"
-#: gio/gtlspassword.c:111
+#: gio/gtlscertificate.c:800
+msgid "The current TLS backend does not support PKCS #12"
+msgstr ""
+
+#: gio/gtlscertificate.c:1017
+msgid "This GTlsBackend does not support creating PKCS #11 certificates"
+msgstr ""
+
+#: gio/gtlspassword.c:113
msgid ""
"This is the last chance to enter the password correctly before your access "
"is locked out."
@@ -4339,10 +4309,7 @@ msgstr ""
#. Translators: This is not the 'This is the last chance' string. It is
#. * displayed when more than one attempt is allowed.
-#: gio/gtlspassword.c:115
-#| msgid ""
-#| "Several password entered have been incorrect, and your access will be "
-#| "locked out after further failures."
+#: gio/gtlspassword.c:117
msgid ""
"Several passwords entered have been incorrect, and your access will be "
"locked out after further failures."
@@ -4351,130 +4318,138 @@ msgstr ""
" ਵਰਤਣ ਦੀ "
"ਸਮੱਰਥਾ (ਅਸੈਸ) ਨੂੰ ਲਾਕ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ।"
-#: gio/gtlspassword.c:117
+#: gio/gtlspassword.c:119
msgid "The password entered is incorrect."
msgstr "ਦਿੱਤਾ ਗਿਆ ਪਾਸਵਰਡ ਗਲਤ ਹੈ।"
-#: gio/gunixconnection.c:166 gio/gunixconnection.c:579
+#: gio/gunixconnection.c:127
+#| msgid "Setting attribute %s not supported"
+msgid "Sending FD is not supported"
+msgstr "FD ਭੇਜਣਾ ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
+
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "1 ਕੰਟਰੋਲ ਸੁਨੇਹੇ ਦੀ ਲੋੜ ਸੀ, %d ਮਿਲੇ"
msgstr[1] "1 ਕੰਟਰੋਲ ਸੁਨੇਹੇ ਦੀ ਲੋੜ ਸੀ, %d ਮਿਲੇ"
-#: gio/gunixconnection.c:182 gio/gunixconnection.c:591
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "ਅਚੀਲਿਰੇ ਡਾਟਾ ਦੀ ਅਣਜਾਣ ਕਿਸਮ"
-#: gio/gunixconnection.c:200
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "ਇੱਕ fd ਦੀ ਲੋੜ ਸੀ, ਪਰ %d ਮਿਲੀਆਂ।\n"
msgstr[1] "ਇੱਕ fd ਦੀ ਲੋੜ ਸੀ, ਪਰ %d ਮਿਲੀਆਂ।\n"
-#: gio/gunixconnection.c:219
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "ਗਲਤ fd ਮਿਲੀ"
-#: gio/gunixconnection.c:363
+#: gio/gunixconnection.c:242
+#| msgid "URIs not supported"
+msgid "Receiving FD is not supported"
+msgstr "FD ਪ੍ਰਾਪਤ ਕਰਨਾ ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
+
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "ਸਨਦ ਭੇਜਣ ਦੌਰਾਨ ਗਲਤੀ: "
-#: gio/gunixconnection.c:520
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "%s: ਸਾਕਟ ਲਈ SO_PASSCRED ਚਾਲੂ ਹੈ ਜਾਂ ਨਹੀਂ ਚੈੱਕ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ"
-#: gio/gunixconnection.c:536
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "SO_PASSCRED ਚਾਲੂ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gunixconnection.c:565
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"ਮਿਲੀ ਸਨਦ (credentials) ਲਈ ਇੱਕਲਾ ਬਾਈਟ ਪੜ੍ਹਨ ਦੀ ਲੋੜ ਸੀ, ਪਰ ਮਿਲੇ ਸਿਫ਼ਰ ਬਾਈਟ"
-#: gio/gunixconnection.c:605
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "ਕੋਈ ਲੋੜੀਦਾ ਕੰਟਰੋਲ ਸੁਨੇਹਾ ਨਹੀਂ, ਪਰ %d ਮਿਲੇ"
-#: gio/gunixconnection.c:630
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "SO_PASSCRED ਬੰਦ ਕਰਨ ਦੇ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gunixinputstream.c:372 gio/gunixinputstream.c:393
+#: gio/gunixinputstream.c:359 gio/gunixinputstream.c:380
#, c-format
msgid "Error reading from file descriptor: %s"
msgstr "ਫਾਇਲ ਡਿਸਕ੍ਰਿਪਟਰ ਤੋਂ ਪੜ੍ਹਨ ਥਈ ਗਲਤੀ: %s"
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:535
-#: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
+#: gio/gunixinputstream.c:413 gio/gunixoutputstream.c:522
+#: gio/gwin32inputstream.c:219 gio/gwin32outputstream.c:206
#, c-format
msgid "Error closing file descriptor: %s"
msgstr "ਫਾਇਲ ਡਿਸਕ੍ਰਿਪਟਰ ਬੰਦ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gunixmounts.c:2661 gio/gunixmounts.c:2714
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "ਫਾਇਲ ਸਿਸਟਮ ਰੂਟ"
-#: gio/gunixoutputstream.c:372 gio/gunixoutputstream.c:392
-#: gio/gunixoutputstream.c:479 gio/gunixoutputstream.c:499
-#: gio/gunixoutputstream.c:676
+#: gio/gunixoutputstream.c:359 gio/gunixoutputstream.c:379
+#: gio/gunixoutputstream.c:466 gio/gunixoutputstream.c:486
+#: gio/gunixoutputstream.c:632
#, c-format
msgid "Error writing to file descriptor: %s"
msgstr "ਫਾਇਲ ਡਿਸਕ੍ਰਿਪਟਰ ਲਿਖਣ ਲਈ ਗਲਤੀ: %s"
-#: gio/gunixsocketaddress.c:243
+#: gio/gunixsocketaddress.c:253
msgid "Abstract UNIX domain socket addresses not supported on this system"
msgstr "ਯੂਨੈਕਸ ਡੋਮੇਨ ਸਾਕਟ ਐਡਰੈੱਸ ਇਹ ਸਿਸਟਮ ਵਲੋਂ ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
-#: gio/gvolume.c:438
-#| msgid "volume doesn't implement eject"
+#: gio/gvolume.c:440
msgid "volume doesn’t implement eject"
msgstr "ਵਾਲੀਅਮ ਹਾਲੇ ਬਣਾਇਆ ਨਹੀਂ ਹੈ"
#. Translators: This is an error
#. * message for volume objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gvolume.c:515
-#| msgid "volume doesn't implement eject or eject_with_operation"
+#: gio/gvolume.c:517
msgid "volume doesn’t implement eject or eject_with_operation"
msgstr "ਵਾਲੀਅਮ ਲਈ eject ਜਾਂ eject_with_operation ਸਥਾਪਿਤ ਨਹੀਂ ਹੈ"
-#: gio/gwin32inputstream.c:185
+#: gio/gwin32inputstream.c:187
#, c-format
msgid "Error reading from handle: %s"
msgstr "ਹੈਂਡਲ ਤੋਂ ਪੜ੍ਹਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gwin32inputstream.c:232 gio/gwin32outputstream.c:219
+#: gio/gwin32inputstream.c:234 gio/gwin32outputstream.c:221
#, c-format
msgid "Error closing handle: %s"
msgstr "ਹੈਂਡਲ ਬੰਦ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gwin32outputstream.c:172
+#: gio/gwin32outputstream.c:174
#, c-format
msgid "Error writing to handle: %s"
msgstr "ਹੈਂਡਲ ਲਿਖਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: gio/gzlibcompressor.c:394 gio/gzlibdecompressor.c:347
+#: gio/gzlibcompressor.c:396 gio/gzlibdecompressor.c:349
msgid "Not enough memory"
msgstr "ਲੋੜੀਦੀ ਮੈਮੋਰੀ ਨਹੀਂ"
-#: gio/gzlibcompressor.c:401 gio/gzlibdecompressor.c:354
+#: gio/gzlibcompressor.c:403 gio/gzlibdecompressor.c:356
#, c-format
msgid "Internal error: %s"
msgstr "ਅੰਦਰੂਨੀ ਗਲਤੀ: %s"
-#: gio/gzlibcompressor.c:414 gio/gzlibdecompressor.c:368
+#: gio/gzlibcompressor.c:416 gio/gzlibdecompressor.c:370
msgid "Need more input"
msgstr "ਹੋਰ ਇੰਪੁੱਟ ਦੀ ਲੋੜ"
-#: gio/gzlibdecompressor.c:340
+#: gio/gzlibdecompressor.c:342
msgid "Invalid compressed data"
msgstr "ਗਲਤ ਕੰਪਰੈੱਸ ਕੀਤਾ ਡਾਟਾ"
@@ -4502,177 +4477,167 @@ msgstr "ਡੀਬਸ ਸਰਵਿਸ ਚਲਾਓ"
msgid "Wrong args\n"
msgstr "ਗਲਤ ਆਰਗੂਮੈਂਟ\n"
-#: glib/gbookmarkfile.c:756
+#: glib/gbookmarkfile.c:861
#, c-format
-#| msgid "Unexpected attribute '%s' for element '%s'"
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "ਐਲੀਮੈਂਟ “%2$s“ ਲਈ ਗਲਤ ਗੁਣ “%1$s“"
-#: glib/gbookmarkfile.c:767 glib/gbookmarkfile.c:838 glib/gbookmarkfile.c:848
-#: glib/gbookmarkfile.c:960
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
-#| msgid "Attribute '%s' of element '%s' not found"
msgid "Attribute “%s” of element “%s” not found"
msgstr "ਐਲੀਮੈਂਟ “%2$s“ ਲਈ “%1$s“ ਗੁਣ ਨਹੀਂ ਲੱਭਿਆ"
-#: glib/gbookmarkfile.c:1169 glib/gbookmarkfile.c:1234
-#: glib/gbookmarkfile.c:1298 glib/gbookmarkfile.c:1308
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
-#| msgid "Unexpected tag '%s', tag '%s' expected"
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "ਗਲਤ ਟੈਗ “%s”, ਟੈਗ “%s” ਲੋੜੀਦਾ ਸੀ"
-#: glib/gbookmarkfile.c:1194 glib/gbookmarkfile.c:1208
-#: glib/gbookmarkfile.c:1276 glib/gbookmarkfile.c:1322
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
-#| msgid "Unexpected tag '%s' inside '%s'"
msgid "Unexpected tag “%s” inside “%s”"
msgstr "“%2$s” ਵਿੱਚ “%1$s“ ਟੈਗ"
-#: glib/gbookmarkfile.c:1616
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr ""
-#: glib/gbookmarkfile.c:1822
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "ਡਾਟਾ ਡਾਇਰੈਕਟਰੀਆਂ ਵਿੱਚ ਕੋਈ ਢੁੱਕਵੀਂ ਬੁੱਕਮਾਰਕ ਫਾਇਲ ਨਹੀਂ ਲੱਭੀ"
-#: glib/gbookmarkfile.c:2023
+#: glib/gbookmarkfile.c:2157
#, c-format
-#| msgid "A bookmark for URI '%s' already exists"
msgid "A bookmark for URI “%s” already exists"
msgstr "URI “%s” ਲਈ ਬੁੱਕਮਾਰਕ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ"
-#: glib/gbookmarkfile.c:2069 glib/gbookmarkfile.c:2227
-#: glib/gbookmarkfile.c:2312 glib/gbookmarkfile.c:2392
-#: glib/gbookmarkfile.c:2477 glib/gbookmarkfile.c:2560
-#: glib/gbookmarkfile.c:2638 glib/gbookmarkfile.c:2717
-#: glib/gbookmarkfile.c:2759 glib/gbookmarkfile.c:2856
-#: glib/gbookmarkfile.c:2977 glib/gbookmarkfile.c:3167
-#: glib/gbookmarkfile.c:3243 glib/gbookmarkfile.c:3411
-#: glib/gbookmarkfile.c:3500 glib/gbookmarkfile.c:3589
-#: glib/gbookmarkfile.c:3708
-#, fuzzy, c-format
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
+#, c-format
#| msgid "No bookmark found for URI '%s'"
msgid "No bookmark found for URI “%s”"
-msgstr "URI '%s' ਲਈ ਕੋਈ ਬੁੱਕਮਾਰਕ ਨਹੀਂ ਲੱਭਾ"
+msgstr "URI “%s“ ਲਈ ਕੋਈ ਬੁੱਕਮਾਰਕ ਨਹੀਂ ਲੱਭਾ"
-#: glib/gbookmarkfile.c:2401
-#, fuzzy, c-format
+#: glib/gbookmarkfile.c:2538
+#, c-format
#| msgid "No MIME type defined in the bookmark for URI '%s'"
msgid "No MIME type defined in the bookmark for URI “%s”"
-msgstr "URI '%s' ਲਈ ਬੁੱਕਮਾਰਕ ਵਿੱਚ ਕੋਈ MIME ਕਿਸਮ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਹੈ"
+msgstr "URI “%s“ ਲਈ ਬੁੱਕਮਾਰਕ ਵਿੱਚ ਕੋਈ MIME ਕਿਸਮ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਹੈ"
-#: glib/gbookmarkfile.c:2486
-#, fuzzy, c-format
+#: glib/gbookmarkfile.c:2623
+#, c-format
#| msgid "No private flag has been defined in bookmark for URI '%s'"
msgid "No private flag has been defined in bookmark for URI “%s”"
-msgstr "URI '%s' ਲਈ ਬੁੱਕਮਾਰਕ ਕੋਈ ਪ੍ਰਾਈਵੇਟ ਫਲੈਗ ਨਹੀਂ ਦੱਸਿਆ ਗਿਆ"
+msgstr "URI “%s“ ਲਈ ਬੁੱਕਮਾਰਕ ਕੋਈ ਪ੍ਰਾਈਵੇਟ ਫਲੈਗ ਨਹੀਂ ਦੱਸਿਆ ਗਿਆ"
-#: glib/gbookmarkfile.c:2865
-#, fuzzy, c-format
+#: glib/gbookmarkfile.c:3164
+#, c-format
#| msgid "No groups set in bookmark for URI '%s'"
msgid "No groups set in bookmark for URI “%s”"
-msgstr "URI '%s' ਲਈ ਬੁੱਕਮਾਰਕ ਵਿੱਚ ਕੋਈ ਗਰੁੱਪ ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ"
+msgstr "URI “%s“ ਲਈ ਬੁੱਕਮਾਰਕ ਵਿੱਚ ਕੋਈ ਗਰੁੱਪ ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ"
-#: glib/gbookmarkfile.c:3264 glib/gbookmarkfile.c:3421
-#, fuzzy, c-format
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
+#, c-format
#| msgid "No application with name '%s' registered a bookmark for '%s'"
msgid "No application with name “%s” registered a bookmark for “%s”"
-msgstr "ਕਿਸੇ ਕਾਰਜ ਨੇ '%2$s' ਲਈ '%1$s' ਨਾਂ ਨਾਲ ਕੋਈ ਬੁੱਕਮਾਰਕ ਰਜਿਸਟਰ ਨਹੀਂ ਕੀਤਾ"
+msgstr ""
+"ਕਿਸੇ ਐਪਲੀਕੇਸ਼ਨ ਨੇ “%2$s“ ਲਈ “%1$s“ ਨਾਂ ਨਾਲ ਕੋਈ ਬੁੱਕਮਾਰਕ ਰਜਿਸਟਰ ਨਹੀਂ ਕੀਤਾ"
-#: glib/gbookmarkfile.c:3444
-#, fuzzy, c-format
+#: glib/gbookmarkfile.c:3863
+#, c-format
#| msgid "Failed to expand exec line '%s' with URI '%s'"
msgid "Failed to expand exec line “%s” with URI “%s”"
-msgstr "exec ਲਾਈਨ '%s' ਨੂੰ URI '%s' ਨਾਲ ਫੈਲਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੋਇਆ"
+msgstr "exec ਲਾਈਨ “%s“ ਨੂੰ URI “%s“ ਨਾਲ ਫੈਲਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੋਇਆ"
-#: glib/gconvert.c:466
+#: glib/gconvert.c:469
#, fuzzy
#| msgid "Invalid sequence in conversion input"
msgid "Unrepresentable character in conversion input"
msgstr "ਬਦਲਾਉ ਇੰਪੁੱਟ ਵਿੱਚ ਤਰਤੀਬ ਜਾਇਜ਼ ਨਹੀਂ ਹੈ"
-#: glib/gconvert.c:493 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
-#: glib/gutf8.c:1318
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "ਸਤਰ ਦੇ ਅਖੀਰ ਤੇ ਅੱਖਰਾਂ ਦਾ ਸਰੂਪ ਅਧੂਰਾ ਹੈ"
-#: glib/gconvert.c:762
-#, fuzzy, c-format
+#: glib/gconvert.c:767
+#, c-format
#| msgid "Cannot convert fallback '%s' to codeset '%s'"
msgid "Cannot convert fallback “%s” to codeset “%s”"
-msgstr "ਕੋਡ ਸਮੂਹ %s ਤੋਂ %s ਵਿੱਚ ਤਬਦੀਲੀ ਸੰਭਵ ਨਹੀਂ"
+msgstr "ਕੋਡ ਸਮੂਹ “%2$s“ ਤੋਂ ਫ਼ਾਲਬੈਕ “%1$s“ ਵਿੱਚ ਤਬਦੀਲੀ ਸੰਭਵ ਨਹੀਂ"
-#: glib/gconvert.c:934
+#: glib/gconvert.c:939
#, fuzzy
#| msgid "Invalid byte sequence in conversion input"
msgid "Embedded NUL byte in conversion input"
msgstr "ਬਦਲਣ ਲਈ ਦਿੱਤੀ ਸਤਰ ਵਿੱਚ ਬਾਇਟ ਦਾ ਸਰੂਪ ਠੀਕ ਨਹੀਂ ਹੈ"
-#: glib/gconvert.c:955
+#: glib/gconvert.c:960
#, fuzzy
#| msgid "Invalid byte sequence in conversion input"
msgid "Embedded NUL byte in conversion output"
msgstr "ਬਦਲਣ ਲਈ ਦਿੱਤੀ ਸਤਰ ਵਿੱਚ ਬਾਇਟ ਦਾ ਸਰੂਪ ਠੀਕ ਨਹੀਂ ਹੈ"
-#: glib/gconvert.c:1640
-#, fuzzy, c-format
+#: glib/gconvert.c:1698
+#, c-format
#| msgid "The URI '%s' is not an absolute URI using the \"file\" scheme"
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
-msgstr "URI '%s' \"file\" ਸਕੀਮ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਸਲ URI ਨਹੀਂ ਹੈ"
-
-#: glib/gconvert.c:1650
-#, fuzzy, c-format
-#| msgid "The local file URI '%s' may not include a '#'"
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "ਲੋਕਲ ਫਾਇਲ URI %s ਵਿੱਚ ਇਹ ਨਿਸ਼ਾਨ # ਨਹੀਂ ਹੈ"
+msgstr "URI “%s“ “file“ ਸਕੀਮ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਸਲ URI ਨਹੀਂ ਹੈ"
-#: glib/gconvert.c:1667
-#, fuzzy, c-format
+#: glib/gconvert.c:1728
+#, c-format
#| msgid "The URI '%s' is invalid"
msgid "The URI “%s” is invalid"
-msgstr "URI '%s' ਜਾਇਜ਼ ਨਹੀਂ ਹੈ"
+msgstr "URI “%s“ ਜਾਇਜ਼ ਨਹੀਂ ਹੈ"
-#: glib/gconvert.c:1679
-#, fuzzy, c-format
+#: glib/gconvert.c:1741
+#, c-format
#| msgid "The hostname of the URI '%s' is invalid"
msgid "The hostname of the URI “%s” is invalid"
-msgstr "URI '%s' ਦੇ ਹੋਸਟ ਦਾ ਨਾਂ ਜਾਇਜ਼ ਨਹੀਂ ਹੈ"
+msgstr "URI “%s“ ਦੇ ਹੋਸਟ ਦਾ ਨਾਂ ਜਾਇਜ਼ ਨਹੀਂ ਹੈ"
-#: glib/gconvert.c:1695
-#, fuzzy, c-format
+#: glib/gconvert.c:1758
+#, c-format
#| msgid "The URI '%s' contains invalidly escaped characters"
msgid "The URI “%s” contains invalidly escaped characters"
-msgstr "URI '%s' ਕੋਲ ਗਲਤ ਅੱਖਰ ਹਨ"
+msgstr "URI “%s“ ਕੋਲ ਗਲਤ ਅੱਖਰ ਹਨ"
-#: glib/gconvert.c:1767
-#, fuzzy, c-format
+#: glib/gconvert.c:1832
+#, c-format
#| msgid "The pathname '%s' is not an absolute path"
msgid "The pathname “%s” is not an absolute path"
-msgstr "ਮਾਰਗ-ਨਾਂ %s ਇਕ ਅਸਲੀ (absolute) ਮਾਰਗ ਨਹੀਂ ਹੈ"
+msgstr "ਮਾਰਗ-ਨਾਂ “%s“ ਇੱਕ ਅਸਲੀ (absolute) ਮਾਰਗ ਨਹੀਂ ਹੈ"
#. Translators: this is the preferred format for expressing the date and the time
-#: glib/gdatetime.c:220
+#: glib/gdatetime.c:228
msgctxt "GDateTime"
msgid "%a %b %e %H:%M:%S %Y"
msgstr "%A %d %b %Y %I:%M:%S %p %Z"
#. Translators: this is the preferred format for expressing the date
-#: glib/gdatetime.c:223
+#: glib/gdatetime.c:231
msgctxt "GDateTime"
msgid "%m/%d/%y"
msgstr "%d/%m/%y"
#. Translators: this is the preferred format for expressing the time
-#: glib/gdatetime.c:226
+#: glib/gdatetime.c:234
msgctxt "GDateTime"
msgid "%H:%M:%S"
msgstr "%H:%M:%S"
#. Translators: this is the preferred format for expressing 12 hour time
-#: glib/gdatetime.c:229
+#: glib/gdatetime.c:237
msgctxt "GDateTime"
msgid "%I:%M:%S %p"
msgstr "%I:%M:%S %p %Z"
@@ -4693,62 +4658,62 @@ msgstr "%I:%M:%S %p %Z"
#. * non-European) there is no difference between the standalone and
#. * complete date form.
#.
-#: glib/gdatetime.c:268
+#: glib/gdatetime.c:276
msgctxt "full month name"
msgid "January"
msgstr "ਜਨਵਰੀ"
-#: glib/gdatetime.c:270
+#: glib/gdatetime.c:278
msgctxt "full month name"
msgid "February"
msgstr "ਫਰਵਰੀ"
-#: glib/gdatetime.c:272
+#: glib/gdatetime.c:280
msgctxt "full month name"
msgid "March"
msgstr "ਮਾਰਚ"
-#: glib/gdatetime.c:274
+#: glib/gdatetime.c:282
msgctxt "full month name"
msgid "April"
msgstr "ਅਪਰੈਲ"
-#: glib/gdatetime.c:276
+#: glib/gdatetime.c:284
msgctxt "full month name"
msgid "May"
msgstr "ਮਈ"
-#: glib/gdatetime.c:278
+#: glib/gdatetime.c:286
msgctxt "full month name"
msgid "June"
msgstr "ਜੂਨ"
-#: glib/gdatetime.c:280
+#: glib/gdatetime.c:288
msgctxt "full month name"
msgid "July"
msgstr "ਜੁਲਾਈ"
-#: glib/gdatetime.c:282
+#: glib/gdatetime.c:290
msgctxt "full month name"
msgid "August"
msgstr "ਅਗਸਤ"
-#: glib/gdatetime.c:284
+#: glib/gdatetime.c:292
msgctxt "full month name"
msgid "September"
msgstr "ਸਤੰਬਰ"
-#: glib/gdatetime.c:286
+#: glib/gdatetime.c:294
msgctxt "full month name"
msgid "October"
msgstr "ਅਕਤੂਬਰ"
-#: glib/gdatetime.c:288
+#: glib/gdatetime.c:296
msgctxt "full month name"
msgid "November"
msgstr "ਨਵੰਬਰ"
-#: glib/gdatetime.c:290
+#: glib/gdatetime.c:298
msgctxt "full month name"
msgid "December"
msgstr "ਦਸੰਬਰ"
@@ -4770,132 +4735,132 @@ msgstr "ਦਸੰਬਰ"
#. * other platform. Here are abbreviated month names in a form
#. * appropriate when they are used standalone.
#.
-#: glib/gdatetime.c:322
+#: glib/gdatetime.c:330
msgctxt "abbreviated month name"
msgid "Jan"
msgstr "ਜਨ"
-#: glib/gdatetime.c:324
+#: glib/gdatetime.c:332
msgctxt "abbreviated month name"
msgid "Feb"
msgstr "ਫਰ"
-#: glib/gdatetime.c:326
+#: glib/gdatetime.c:334
msgctxt "abbreviated month name"
msgid "Mar"
msgstr "ਮਾਰ"
-#: glib/gdatetime.c:328
+#: glib/gdatetime.c:336
msgctxt "abbreviated month name"
msgid "Apr"
msgstr "ਅਪ"
-#: glib/gdatetime.c:330
+#: glib/gdatetime.c:338
msgctxt "abbreviated month name"
msgid "May"
msgstr "ਮਈ"
-#: glib/gdatetime.c:332
+#: glib/gdatetime.c:340
msgctxt "abbreviated month name"
msgid "Jun"
msgstr "ਜੂਨ"
-#: glib/gdatetime.c:334
+#: glib/gdatetime.c:342
msgctxt "abbreviated month name"
msgid "Jul"
msgstr "ਜੁਲ"
-#: glib/gdatetime.c:336
+#: glib/gdatetime.c:344
msgctxt "abbreviated month name"
msgid "Aug"
msgstr "ਅਗ"
-#: glib/gdatetime.c:338
+#: glib/gdatetime.c:346
msgctxt "abbreviated month name"
msgid "Sep"
msgstr "ਸਤੰ"
-#: glib/gdatetime.c:340
+#: glib/gdatetime.c:348
msgctxt "abbreviated month name"
msgid "Oct"
msgstr "ਅਕ"
-#: glib/gdatetime.c:342
+#: glib/gdatetime.c:350
msgctxt "abbreviated month name"
msgid "Nov"
msgstr "ਨਵੰ"
-#: glib/gdatetime.c:344
+#: glib/gdatetime.c:352
msgctxt "abbreviated month name"
msgid "Dec"
msgstr "ਦਸੰ"
-#: glib/gdatetime.c:359
+#: glib/gdatetime.c:367
msgctxt "full weekday name"
msgid "Monday"
msgstr "ਸੋਮਵਾਰ"
-#: glib/gdatetime.c:361
+#: glib/gdatetime.c:369
msgctxt "full weekday name"
msgid "Tuesday"
msgstr "ਮੰਗਲਵਾਰ"
-#: glib/gdatetime.c:363
+#: glib/gdatetime.c:371
msgctxt "full weekday name"
msgid "Wednesday"
msgstr "ਬੁੱਧਵਾਰ"
-#: glib/gdatetime.c:365
+#: glib/gdatetime.c:373
msgctxt "full weekday name"
msgid "Thursday"
msgstr "ਵੀਰਵਾਰ"
-#: glib/gdatetime.c:367
+#: glib/gdatetime.c:375
msgctxt "full weekday name"
msgid "Friday"
msgstr "ਸ਼ੁੱਕਰਵਾਰ"
-#: glib/gdatetime.c:369
+#: glib/gdatetime.c:377
msgctxt "full weekday name"
msgid "Saturday"
msgstr "ਸ਼ਨਿੱਚਰਵਾਰ"
-#: glib/gdatetime.c:371
+#: glib/gdatetime.c:379
msgctxt "full weekday name"
msgid "Sunday"
msgstr "ਐਤਵਾਰ"
-#: glib/gdatetime.c:386
+#: glib/gdatetime.c:394
msgctxt "abbreviated weekday name"
msgid "Mon"
msgstr "ਸੋਮ"
-#: glib/gdatetime.c:388
+#: glib/gdatetime.c:396
msgctxt "abbreviated weekday name"
msgid "Tue"
msgstr "ਮੰਗ"
-#: glib/gdatetime.c:390
+#: glib/gdatetime.c:398
msgctxt "abbreviated weekday name"
msgid "Wed"
msgstr "ਬੁੱਧ"
-#: glib/gdatetime.c:392
+#: glib/gdatetime.c:400
msgctxt "abbreviated weekday name"
msgid "Thu"
msgstr "ਵੀਰ"
-#: glib/gdatetime.c:394
+#: glib/gdatetime.c:402
msgctxt "abbreviated weekday name"
msgid "Fri"
msgstr "ਸ਼ੁੱਕ"
-#: glib/gdatetime.c:396
+#: glib/gdatetime.c:404
msgctxt "abbreviated weekday name"
msgid "Sat"
msgstr "ਸ਼ਨਿੱ"
-#: glib/gdatetime.c:398
+#: glib/gdatetime.c:406
msgctxt "abbreviated weekday name"
msgid "Sun"
msgstr "ਐਤ"
@@ -4917,62 +4882,62 @@ msgstr "ਐਤ"
#. * (western European, non-European) there is no difference between the
#. * standalone and complete date form.
#.
-#: glib/gdatetime.c:462
+#: glib/gdatetime.c:470
msgctxt "full month name with day"
msgid "January"
msgstr "ਜਨਵਰੀ"
-#: glib/gdatetime.c:464
+#: glib/gdatetime.c:472
msgctxt "full month name with day"
msgid "February"
msgstr "ਫਰਵਰੀ"
-#: glib/gdatetime.c:466
+#: glib/gdatetime.c:474
msgctxt "full month name with day"
msgid "March"
msgstr "ਮਾਰਚ"
-#: glib/gdatetime.c:468
+#: glib/gdatetime.c:476
msgctxt "full month name with day"
msgid "April"
msgstr "ਅਪਰੈਲ"
-#: glib/gdatetime.c:470
+#: glib/gdatetime.c:478
msgctxt "full month name with day"
msgid "May"
msgstr "ਮਈ"
-#: glib/gdatetime.c:472
+#: glib/gdatetime.c:480
msgctxt "full month name with day"
msgid "June"
msgstr "ਜੂਨ"
-#: glib/gdatetime.c:474
+#: glib/gdatetime.c:482
msgctxt "full month name with day"
msgid "July"
msgstr "ਜੁਲਾਈ"
-#: glib/gdatetime.c:476
+#: glib/gdatetime.c:484
msgctxt "full month name with day"
msgid "August"
msgstr "ਅਗਸਤ"
-#: glib/gdatetime.c:478
+#: glib/gdatetime.c:486
msgctxt "full month name with day"
msgid "September"
msgstr "ਸਤੰਬਰ"
-#: glib/gdatetime.c:480
+#: glib/gdatetime.c:488
msgctxt "full month name with day"
msgid "October"
msgstr "ਅਕਤੂਬਰ"
-#: glib/gdatetime.c:482
+#: glib/gdatetime.c:490
msgctxt "full month name with day"
msgid "November"
msgstr "ਨਵੰਬਰ"
-#: glib/gdatetime.c:484
+#: glib/gdatetime.c:492
msgctxt "full month name with day"
msgid "December"
msgstr "ਦਸੰਬਰ"
@@ -4994,273 +4959,273 @@ msgstr "ਦਸੰਬਰ"
#. * month names almost ready to copy and paste here. In other systems
#. * due to a bug the result is incorrect in some languages.
#.
-#: glib/gdatetime.c:549
+#: glib/gdatetime.c:557
msgctxt "abbreviated month name with day"
msgid "Jan"
msgstr "ਜਨ"
-#: glib/gdatetime.c:551
+#: glib/gdatetime.c:559
msgctxt "abbreviated month name with day"
msgid "Feb"
msgstr "ਫਰ"
-#: glib/gdatetime.c:553
+#: glib/gdatetime.c:561
msgctxt "abbreviated month name with day"
msgid "Mar"
msgstr "ਮਾਰ"
-#: glib/gdatetime.c:555
+#: glib/gdatetime.c:563
msgctxt "abbreviated month name with day"
msgid "Apr"
msgstr "ਅਪ"
-#: glib/gdatetime.c:557
+#: glib/gdatetime.c:565
msgctxt "abbreviated month name with day"
msgid "May"
msgstr "ਮਈ"
-#: glib/gdatetime.c:559
+#: glib/gdatetime.c:567
msgctxt "abbreviated month name with day"
msgid "Jun"
msgstr "ਜੂਨ"
-#: glib/gdatetime.c:561
+#: glib/gdatetime.c:569
msgctxt "abbreviated month name with day"
msgid "Jul"
msgstr "ਜੁਲ"
-#: glib/gdatetime.c:563
+#: glib/gdatetime.c:571
msgctxt "abbreviated month name with day"
msgid "Aug"
msgstr "ਅਗ"
-#: glib/gdatetime.c:565
+#: glib/gdatetime.c:573
msgctxt "abbreviated month name with day"
msgid "Sep"
msgstr "ਸਤੰ"
-#: glib/gdatetime.c:567
+#: glib/gdatetime.c:575
msgctxt "abbreviated month name with day"
msgid "Oct"
msgstr "ਅਕ"
-#: glib/gdatetime.c:569
+#: glib/gdatetime.c:577
msgctxt "abbreviated month name with day"
msgid "Nov"
msgstr "ਨਵੰ"
-#: glib/gdatetime.c:571
+#: glib/gdatetime.c:579
msgctxt "abbreviated month name with day"
msgid "Dec"
msgstr "ਦਸੰ"
#. Translators: 'before midday' indicator
-#: glib/gdatetime.c:588
+#: glib/gdatetime.c:596
msgctxt "GDateTime"
msgid "AM"
msgstr "ਸਵੇਰ"
#. Translators: 'after midday' indicator
-#: glib/gdatetime.c:591
+#: glib/gdatetime.c:599
msgctxt "GDateTime"
msgid "PM"
msgstr "ਸ਼ਾਮ"
-#: glib/gdir.c:154
-#, fuzzy, c-format
+#: glib/gdir.c:158
+#, c-format
#| msgid "Error opening directory '%s': %s"
msgid "Error opening directory “%s”: %s"
-msgstr "ਡਾਇਰੈਕਟਰੀ '%s' ਖੋਲ੍ਹਣ ਲਈ ਗਲਤੀ: %s"
+msgstr "ਡਾਇਰੈਕਟਰੀ “%s“ ਖੋਲ੍ਹਣ ਲਈ ਗਲਤੀ: %s"
-#: glib/gfileutils.c:733 glib/gfileutils.c:825
-#, fuzzy, c-format
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
+#, c-format
#| msgid "Could not allocate %lu byte to read file \"%s\""
#| msgid_plural "Could not allocate %lu bytes to read file \"%s\""
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
-msgstr[0] "ਫਾਇਲ \"%2$s\" ਖੋਲ੍ਹਣ ਲਈ %1$lu ਬਾਈਟ ਨਹੀਂ ਦਿੱਤਾ ਜਾ ਸਕਿਆ"
-msgstr[1] "ਫਾਇਲ \"%2$s\" ਖੋਲ੍ਹਣ ਲਈ %1$lu ਬਾਈਟ ਨਹੀਂ ਦਿੱਤੇ ਜਾ ਸਕੇ"
+msgstr[0] "ਫਾਇਲ “%2$s“ ਖੋਲ੍ਹਣ ਲਈ %1$lu ਬਾਈਟ ਨਹੀਂ ਦਿੱਤਾ ਜਾ ਸਕਿਆ"
+msgstr[1] "ਫਾਇਲ “%2$s“ ਖੋਲ੍ਹਣ ਲਈ %1$lu ਬਾਈਟ ਨਹੀਂ ਦਿੱਤੇ ਜਾ ਸਕੇ"
-#: glib/gfileutils.c:750
-#, fuzzy, c-format
+#: glib/gfileutils.c:770
+#, c-format
#| msgid "Error reading file %s: %s"
msgid "Error reading file “%s”: %s"
-msgstr "%s ਫਾਇਲ ਪੜ੍ਹਨ 'ਚ ਗਲਤੀ: %s"
+msgstr "“%s“ ਫਾਇਲ ਪੜ੍ਹਨ 'ਚ ਗਲਤੀ: %s"
-#: glib/gfileutils.c:786
-#, fuzzy, c-format
+#: glib/gfileutils.c:806
+#, c-format
#| msgid "File \"%s\" is too large"
msgid "File “%s” is too large"
-msgstr "ਫਾਇਲ \"%s\" ਬਹੁਤ ਵੱਡੀ ਹੈ"
+msgstr "ਫਾਇਲ “%s“ ਬਹੁਤ ਵੱਡੀ ਹੈ"
-#: glib/gfileutils.c:850
-#, fuzzy, c-format
+#: glib/gfileutils.c:870
+#, c-format
#| msgid "Failed to read from file '%s': %s"
msgid "Failed to read from file “%s”: %s"
-msgstr "ਫਾਇਲ '%s' ਤੋਂ ਪੜ੍ਹਨ 'ਚ ਅਸਫ਼ਲ: %s"
+msgstr "ਫਾਇਲ “%s“ ਤੋਂ ਪੜ੍ਹਨ 'ਚ ਅਸਫ਼ਲ: %s"
-#: glib/gfileutils.c:898 glib/gfileutils.c:970
-#, fuzzy, c-format
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
+#, c-format
#| msgid "Failed to open file '%s': %s"
msgid "Failed to open file “%s”: %s"
-msgstr "'%s' ਫਾਇਲ ਖੋਲ੍ਹ 'ਚ ਗਲਤੀ %s"
+msgstr "“%s“ ਫਾਇਲ ਖੋਲ੍ਹਣ 'ਚ ਗਲਤੀ %s"
-#: glib/gfileutils.c:910
-#, fuzzy, c-format
+#: glib/gfileutils.c:933
+#, c-format
#| msgid "Failed to get attributes of file '%s': fstat() failed: %s"
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
-msgstr "ਫਾਇਲ '%s' ਦੀਆਂ ਵਿਸ਼ੇਸਤਾ ਖੋਲ੍ਹਣ 'ਚ ਫੇਲ੍ਹ: fstat() ਫੇਲ੍ਹ: %s"
+msgstr "ਫਾਇਲ “%s“ ਦੀਆਂ ਵਿਸ਼ੇਸਤਾ ਖੋਲ੍ਹਣ 'ਚ ਫੇਲ੍ਹ: fstat() ਫੇਲ੍ਹ: %s"
-#: glib/gfileutils.c:940
-#, fuzzy, c-format
+#: glib/gfileutils.c:964
+#, c-format
#| msgid "Failed to open file '%s': fdopen() failed: %s"
msgid "Failed to open file “%s”: fdopen() failed: %s"
-msgstr "ਫਾਇਲ '%s' ਖੋਲ੍ਹਣ ਵਿੱਚ ਫੇਲ੍ਹ: fdopen() ਫੇਲ੍ਹ: %s"
+msgstr "ਫਾਇਲ “%s“ ਖੋਲ੍ਹਣ ਵਿੱਚ ਫੇਲ੍ਹ: fdopen() ਫੇਲ੍ਹ: %s"
-#: glib/gfileutils.c:1039
-#, fuzzy, c-format
+#: glib/gfileutils.c:1065
+#, c-format
#| msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
-msgstr "ਫਾਇਲ '%s' ਦਾ ਨਾਂ '%s' ਬਦਲਣ 'ਚ ਅਸਫ਼ਲ: g_rename() ਫੇਲ੍ਹ: %s"
+msgstr "ਫਾਇਲ “%s“ ਦਾ ਨਾਂ “%s“ ਬਦਲਣ 'ਚ ਅਸਫ਼ਲ: g_rename() ਫੇਲ੍ਹ: %s"
-#: glib/gfileutils.c:1074 glib/gfileutils.c:1592
-#, fuzzy, c-format
-#| msgid "Failed to create file '%s': %s"
-msgid "Failed to create file “%s”: %s"
-msgstr "ਫਾਇਲ %s' ਬਣਾਉਣ ਵਿੱਚ ਫੇਲ੍ਹ: %s"
-
-#: glib/gfileutils.c:1101
-#, fuzzy, c-format
+#: glib/gfileutils.c:1179
+#, c-format
#| msgid "Failed to write file '%s': write() failed: %s"
msgid "Failed to write file “%s”: write() failed: %s"
-msgstr "ਫਾਇਲ '%s' ਨੂੰ ਲਿਖਣ ਲਈ ਫੇਲ੍ਹ: write() ਫੇਲ੍ਹ: %s"
+msgstr "ਫਾਇਲ “%s“ ਨੂੰ ਲਿਖਣ ਲਈ ਫੇਲ੍ਹ: write() ਫੇਲ੍ਹ: %s"
-#: glib/gfileutils.c:1144
-#, fuzzy, c-format
+#: glib/gfileutils.c:1200
+#, c-format
#| msgid "Failed to write file '%s': fsync() failed: %s"
msgid "Failed to write file “%s”: fsync() failed: %s"
-msgstr "ਫਾਇਲ '%s' ਨੂੰ ਲਿਖਣ ਲਈ ਫੇਲ੍ਹ: fsync() ਫੇਲ੍ਹ: %s"
+msgstr "ਫਾਇਲ “%s“ ਨੂੰ ਲਿਖਣ ਲਈ ਫੇਲ੍ਹ: fsync() ਫੇਲ੍ਹ: %s"
-#: glib/gfileutils.c:1279
-#, fuzzy, c-format
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
+#, c-format
+#| msgid "Failed to create file '%s': %s"
+msgid "Failed to create file “%s”: %s"
+msgstr "ਫਾਇਲ “%s“ ਬਣਾਉਣ ਵਿੱਚ ਫੇਲ੍ਹ: %s"
+
+#: glib/gfileutils.c:1406
+#, c-format
#| msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
-msgstr "ਮੌਜੂਦਾ ਫਾਇਲ '%s' ਨੂੰ ਹਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ: g_unlink() ਫੇਲ੍ਹ: %s"
+msgstr "ਮੌਜੂਦਾ ਫਾਇਲ “%s“ ਨੂੰ ਹਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ: g_unlink() ਫੇਲ੍ਹ: %s"
-#: glib/gfileutils.c:1558
-#, fuzzy, c-format
+#: glib/gfileutils.c:1741
+#, c-format
#| msgid "Template '%s' invalid, should not contain a '%s'"
msgid "Template “%s” invalid, should not contain a “%s”"
-msgstr "ਟੈਪਲੇਟ '%s' ਸਹੀਂ ਨਹੀਂ ਹੈ, ਇਸ ਕੋਲ '%s' ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ"
+msgstr "ਟੈਪਲੇਟ “%s“ ਸਹੀਂ ਨਹੀਂ ਹੈ, ਇਸ ਕੋਲ “%s“ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ"
-#: glib/gfileutils.c:1571
-#, fuzzy, c-format
+#: glib/gfileutils.c:1754
+#, c-format
#| msgid "Template '%s' doesn't contain XXXXXX"
msgid "Template “%s” doesn’t contain XXXXXX"
-msgstr "ਟੈਂਪਲੇਟ '%s' XXXXXX ਨਹੀਂ ਰੱਖਦਾ ਹੈ"
+msgstr "ਟੈਂਪਲੇਟ “%s“ XXXXXX ਨਹੀਂ ਰੱਖਦਾ ਹੈ"
-#: glib/gfileutils.c:2129 glib/gfileutils.c:2157
-#, fuzzy, c-format
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
+#, c-format
#| msgid "Failed to read the symbolic link '%s': %s"
msgid "Failed to read the symbolic link “%s”: %s"
-msgstr "ਸਿੰਬੋਲਿਕ ਲਿੰਕ '%s' ਪੜ੍ਹਨ ਲਈ ਫੇਲ੍ਹ: %s"
+msgstr "ਸਿੰਬੋਲਿਕ ਲਿੰਕ “%s“ ਪੜ੍ਹਨ ਲਈ ਫੇਲ੍ਹ: %s"
-#: glib/giochannel.c:1393
-#, fuzzy, c-format
+#: glib/giochannel.c:1408
+#, c-format
#| msgid "Could not open converter from '%s' to '%s': %s"
msgid "Could not open converter from “%s” to “%s”: %s"
-msgstr "'%s' ਤੋਂ '%s' ਬਦਲਣ ਵਾਲਾ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ: %s"
+msgstr "“%s“ ਤੋਂ “%s“ ਬਦਲਣ ਵਾਲਾ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ: %s"
-#: glib/giochannel.c:1738
+#: glib/giochannel.c:1761
#, fuzzy
#| msgid "Can't do a raw read in g_io_channel_read_line_string"
msgid "Can’t do a raw read in g_io_channel_read_line_string"
msgstr "g_io_channel_read_line_string ਵਿੱਚ ਰਾਅ ਪੜ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"
-#: glib/giochannel.c:1785 glib/giochannel.c:2043 glib/giochannel.c:2130
+#: glib/giochannel.c:1808 glib/giochannel.c:2066 glib/giochannel.c:2153
msgid "Leftover unconverted data in read buffer"
msgstr "ਕੁਝ ਅਣ-ਬਦਲਿਆ ਡਾਟਾ ਬਫਰ ਵਿੱਚ ਪਿਆ ਹੈ"
-#: glib/giochannel.c:1866 glib/giochannel.c:1943
+#: glib/giochannel.c:1889 glib/giochannel.c:1966
msgid "Channel terminates in a partial character"
msgstr "ਇਕ ਅੱਧ ਪਚਦੇ ਅੱਖਰ ਉੱਤੇ ਚੈਨਲ ਬੰਦ ਹੋ ਗਿਆ"
-#: glib/giochannel.c:1929
-#, fuzzy
+#: glib/giochannel.c:1952
#| msgid "Can't do a raw read in g_io_channel_read_to_end"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "g_io_channel_read_to_end ਵਿੱਚ ਰਾਅ ਪੜ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"
-#: glib/gkeyfile.c:789
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "ਖੋਜ ਡਾਇਰੈਕਟਰੀਆਂ ਵਿੱਚ ਠੀਕ ਕੁੰਜੀ ਫਾਇਲ ਨਹੀਂ ਖੋਜੀ ਜਾ ਸਕੀ"
-#: glib/gkeyfile.c:826
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "ਇੱਕ ਰੈਗੂਲਰ ਫਾਇਲ ਨਹੀਂ"
-#: glib/gkeyfile.c:1275
-#, fuzzy, c-format
+#: glib/gkeyfile.c:1297
+#, c-format
#| msgid ""
#| "Key file contains line '%s' which is not a key-value pair, group, or "
#| "comment"
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
msgstr ""
-"ਕੁੰਜੀ ਫਾਇਲ ਲਾਈਨ '%s' ਰੱਖਦੀ ਹੈ, ਜੋ ਕਿ ਕੁੰਜੀ-ਮੁੱਲ ਜੋੜਾ, ਗਰੁੱਪ ਜਾਂ ਟਿੱਪਣੀ ਨਹੀਂ ਹੈ"
+"ਕੁੰਜੀ ਫਾਇਲ ਲਾਈਨ “%s“ ਰੱਖਦੀ ਹੈ, ਜੋ ਕਿ ਕੁੰਜੀ-ਮੁੱਲ ਜੋੜਾ, ਗਰੁੱਪ ਜਾਂ ਟਿੱਪਣੀ ਨਹੀਂ ਹੈ"
-#: glib/gkeyfile.c:1332
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "ਗਲਤ ਗਰੁੱਪ ਨਾਂ: %s"
-#: glib/gkeyfile.c:1354
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "ਕੁੰਜੀ ਫਾਇਲ ਗਰੁੱਪ ਨਾਲ ਸ਼ੁਰੂ ਨਹੀਂ ਹੋ ਸਕਦੀ ਹੈ"
-#: glib/gkeyfile.c:1380
+#: glib/gkeyfile.c:1402
#, c-format
-msgid "Invalid key name: %s"
-msgstr "ਗਲਤ ਕੁੰਜੀ ਨਾਂ: %s"
+#| msgid "Invalid key name: %s"
+msgid "Invalid key name: %.*s"
+msgstr "ਗਲਤ ਕੁੰਜੀ ਨਾਂ: %.*s"
-#: glib/gkeyfile.c:1407
-#, fuzzy, c-format
+#: glib/gkeyfile.c:1430
+#, c-format
#| msgid "Key file contains unsupported encoding '%s'"
msgid "Key file contains unsupported encoding “%s”"
-msgstr "ਕੁੰਜੀ ਫਾਇਲ ਨਾ-ਸਹਾਇਕ ਇੰਕੋਡਿੰਗ '%s' ਰੱਖਦੀ ਹੈ"
+msgstr "ਕੁੰਜੀ ਫਾਇਲ ਨਾ-ਸਹਾਇਕ ਇੰਕੋਡਿੰਗ “%s“ ਰੱਖਦੀ ਹੈ"
-#: glib/gkeyfile.c:1650 glib/gkeyfile.c:1823 glib/gkeyfile.c:3276
-#: glib/gkeyfile.c:3339 glib/gkeyfile.c:3469 glib/gkeyfile.c:3601
-#: glib/gkeyfile.c:3747 glib/gkeyfile.c:3976 glib/gkeyfile.c:4043
-#, fuzzy, c-format
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
+#, c-format
#| msgid "Key file does not have group '%s'"
msgid "Key file does not have group “%s”"
-msgstr "ਕੁੰਜੀ ਫਾਇਲ ਦਾ ਗਰੁੱਪ '%s' ਨਹੀਂ ਹੈ"
+msgstr "ਕੁੰਜੀ ਫਾਇਲ ਦਾ ਗਰੁੱਪ “%s“ ਨਹੀਂ ਹੈ"
-#: glib/gkeyfile.c:1778
-#, fuzzy, c-format
+#: glib/gkeyfile.c:1806
+#, c-format
#| msgid "Key file does not have key '%s' in group '%s'"
msgid "Key file does not have key “%s” in group “%s”"
-msgstr "ਕੁੰਜੀ ਫਾਇਲ ਕੁੰਜੀ '%s' ਗਰੁੱਪ '%s' ਵਿੱਚ ਨਹੀਂ ਹੈ"
+msgstr "ਕੁੰਜੀ ਫਾਇਲ ਕੁੰਜੀ “%s“ ਗਰੁੱਪ “%s“ ਵਿੱਚ ਨਹੀਂ ਹੈ"
-#: glib/gkeyfile.c:1940 glib/gkeyfile.c:2056
-#, fuzzy, c-format
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
+#, c-format
#| msgid "Key file contains key '%s' with value '%s' which is not UTF-8"
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
-msgstr "ਕੁੰਜੀ ਫਾਇਲ ਵਿੱਚ ਕੁੰਜੀ '%s' ਦਾ ਮੁੱਲ '%s' ਹੈ, ਜੋ ਕਿ UTF-8 ਨਹੀਂ ਹੈ"
+msgstr "ਕੁੰਜੀ ਫਾਇਲ ਵਿੱਚ ਕੁੰਜੀ “%s“ ਦਾ ਮੁੱਲ “%s“ ਹੈ, ਜੋ ਕਿ UTF-8 ਨਹੀਂ ਹੈ"
-#: glib/gkeyfile.c:1960 glib/gkeyfile.c:2076 glib/gkeyfile.c:2518
-#, fuzzy, c-format
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
+#, c-format
#| msgid ""
#| "Key file contains key '%s' which has a value that cannot be interpreted."
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr ""
-"ਕੁੰਜੀ ਫਾਇਲ ਵਿੱਚ '%s' ਕੁੰਜੀ ਹੈ, ਜਿਸ ਵਿੱਚ ਮੁੱਲ ਹੈ, ਜਿਸ ਉੱਤੇ ਕਾਰਵਾਈ ਨਹੀਂ ਹੋ ਸਕਦੀ"
+"ਕੁੰਜੀ ਫਾਇਲ ਵਿੱਚ “%s“ ਕੁੰਜੀ ਹੈ, ਜਿਸ ਵਿੱਚ ਮੁੱਲ ਹੈ, ਜਿਸ ਉੱਤੇ ਕਾਰਵਾਈ ਨਹੀਂ ਹੋ ਸਕਦੀ"
" ਹੈ"
-#: glib/gkeyfile.c:2736 glib/gkeyfile.c:3105
-#, fuzzy, c-format
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
+#, c-format
#| msgid ""
#| "Key file contains key '%s' in group '%s' which has a value that cannot be "
#| "interpreted."
@@ -5268,90 +5233,90 @@ msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
"interpreted."
msgstr ""
-"ਕੁੰਜੀ ਫਾਇਲ ਵਿੱਚ ਗਰੁੱਪ '%2$s' ਵਿੱਚ ਕੁੰਜੀ '%1$s' ਹੈ, ਜਿਸ ਲਈ ਅਜਿਹਾ ਮੁੱਲ ਹੈ, ਜਿਸ"
+"ਕੁੰਜੀ ਫਾਇਲ ਵਿੱਚ ਗਰੁੱਪ “%2$s“ ਵਿੱਚ ਕੁੰਜੀ “%1$s“ ਹੈ, ਜਿਸ ਲਈ ਅਜਿਹਾ ਮੁੱਲ ਹੈ, ਜਿਸ"
" ਨੂੰ ਵਰਤਿਆ ਨਹੀਂ "
"ਜਾ ਸਕਦਾ।"
-#: glib/gkeyfile.c:2814 glib/gkeyfile.c:2891
-#, fuzzy, c-format
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
+#, c-format
#| msgid "Key '%s' in group '%s' has value '%s' where %s was expected"
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr ""
-"ਗਰੁੱਪ '%2$s' ਵਿੱਚ ਕੁੰਜੀ '%1$s' ਦਾ ਮੁੱਲ '%3$s' ਹੈ, ਜਦੋਂ ਕਿ ਲੋੜ %4$s ਦੀ ਸੀ"
+"ਗਰੁੱਪ “%2$s“ ਵਿੱਚ ਕੁੰਜੀ “%1$s“ ਦਾ ਮੁੱਲ “%3$s“ ਹੈ, ਜਦੋਂ ਕਿ ਲੋੜ %4$s ਦੀ ਸੀ"
-#: glib/gkeyfile.c:4283
+#: glib/gkeyfile.c:4353
msgid "Key file contains escape character at end of line"
msgstr "ਕੁੰਜੀ ਫਾਇਲ ਵਿੱਚ ਲਾਈਨ ਦੇ ਅੰਤ ਵਿੱਚ ਇਸਕੇਪ ਅੱਖਰ ਹੈ"
-#: glib/gkeyfile.c:4305
-#, fuzzy, c-format
+#: glib/gkeyfile.c:4375
+#, c-format
#| msgid "Key file contains invalid escape sequence '%s'"
msgid "Key file contains invalid escape sequence “%s”"
-msgstr "ਕੁੰਜੀ ਫਾਇਲ ਵਿੱਚ ਗਲਤ ਇਸਕੇਪ ਕ੍ਰਮ '%s' ਹੈ"
+msgstr "ਕੁੰਜੀ ਫਾਇਲ ਵਿੱਚ ਗਲਤ ਇਸਕੇਪ ਕ੍ਰਮ “%s“ ਹੈ"
-#: glib/gkeyfile.c:4449
-#, fuzzy, c-format
+#: glib/gkeyfile.c:4520
+#, c-format
#| msgid "Value '%s' cannot be interpreted as a number."
msgid "Value “%s” cannot be interpreted as a number."
-msgstr "ਮੁੱਲ '%s' ਨੂੰ ਇੱਕ ਅੰਕ ਦੇ ਤੌਰ 'ਤੇ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ ਹੈ।"
+msgstr "ਮੁੱਲ “%s“ ਨੂੰ ਇੱਕ ਅੰਕ ਦੇ ਤੌਰ 'ਤੇ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ ਹੈ।"
-#: glib/gkeyfile.c:4463
-#, fuzzy, c-format
+#: glib/gkeyfile.c:4534
+#, c-format
#| msgid "Integer value '%s' out of range"
msgid "Integer value “%s” out of range"
-msgstr "ਪੂਰਨ ਅੰਕ '%s' ਰੇਜ਼ ਤੋਂ ਬਾਹਰ ਹੈ"
+msgstr "ਪੂਰਨ ਅੰਕ “%s“ ਰੇਜ਼ ਤੋਂ ਬਾਹਰ ਹੈ"
-#: glib/gkeyfile.c:4496
-#, fuzzy, c-format
+#: glib/gkeyfile.c:4567
+#, c-format
#| msgid "Value '%s' cannot be interpreted as a float number."
msgid "Value “%s” cannot be interpreted as a float number."
-msgstr "ਮੁੱਲ '%s' ਨੂੰ ਇੱਕ ਦਸ਼ਮਲਵ ਅੰਕ ਦੇ ਤੌਰ 'ਤੇ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ ਹੈ।"
+msgstr "ਮੁੱਲ “%s“ ਨੂੰ ਇੱਕ ਦਸ਼ਮਲਵ ਅੰਕ ਦੇ ਤੌਰ 'ਤੇ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ ਹੈ।"
-#: glib/gkeyfile.c:4535
-#, fuzzy, c-format
+#: glib/gkeyfile.c:4606
+#, c-format
#| msgid "Value '%s' cannot be interpreted as a boolean."
msgid "Value “%s” cannot be interpreted as a boolean."
-msgstr "ਮੁੱਲ '%s' ਨੂੰ ਬੂਲੀਅਨ ਵਾਂਗ ਇੰਟਰਪਰੇਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।"
+msgstr "ਮੁੱਲ “%s“ ਨੂੰ ਬੂਲੀਅਨ ਵਾਂਗ ਇੰਟਰਪਰੇਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।"
-#: glib/gmappedfile.c:129
-#, fuzzy, c-format
+#: glib/gmappedfile.c:135
+#, c-format
#| msgid "Failed to get attributes of file '%s%s%s%s': fstat() failed: %s"
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
-msgstr "ਫਾਇਲ '%s%s%s%s': fstat() ਦੇ ਗੁਣ ਲੈਣ ਲਈ ਫੇਲ੍ਹ: %s"
+msgstr "ਫਾਇਲ “%s%s%s%s“: fstat() ਦੇ ਗੁਣ ਲੈਣ ਲਈ ਫੇਲ੍ਹ: %s"
-#: glib/gmappedfile.c:195
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "ਮੈਪ %s%s%s%s: mmap() ਲਈ ਫੇਲ੍ਹ ਹੈ: %s"
-#: glib/gmappedfile.c:262
-#, fuzzy, c-format
+#: glib/gmappedfile.c:268
+#, c-format
#| msgid "Failed to open file '%s': open() failed: %s"
msgid "Failed to open file “%s”: open() failed: %s"
-msgstr "ਫਾਇਲ '%s': ਖੋਲ੍ਹਣ ਵਿੱਚ ਫੇਲ੍ਹ: fdopen() ਫੇਲ੍ਹ: %s"
+msgstr "ਫਾਇਲ “%s“: ਖੋਲ੍ਹਣ ਵਿੱਚ ਫੇਲ੍ਹ: fdopen() ਫੇਲ੍ਹ: %s"
#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
-msgstr "ਲਾਈਨ %d ਅੱਖਰ %d ਉੱਤੇ ਗਲਤੀ:"
+msgstr "ਲਾਈਨ %d ਅੱਖਰ %d ਉੱਤੇ ਗਲਤੀ: "
#: glib/gmarkup.c:462 glib/gmarkup.c:545
-#, fuzzy, c-format
+#, c-format
#| msgid "Invalid UTF-8 encoded text in name - not valid '%s'"
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
-msgstr "ਨਾਂ ਵਿੱਚ ਗਲਤ UTF-8 ਇੰਕੋਡ ਟੈਕਸਟ - ਵੈਧ '%s' ਨਹੀਂ"
+msgstr "ਨਾਂ ਵਿੱਚ ਗਲਤ UTF-8 ਇੰਕੋਡ ਟੈਕਸਟ — ਵੈਧ “%s“ ਨਹੀਂ"
#: glib/gmarkup.c:473
-#, fuzzy, c-format
+#, c-format
#| msgid "'%s' is not a valid name"
msgid "“%s” is not a valid name"
-msgstr "'%s' ਢੁੱਕਵਾਂ ਨਾਂ ਨਹੀਂ"
+msgstr "“%s“ ਢੁੱਕਵਾਂ ਨਾਂ ਨਹੀਂ"
#: glib/gmarkup.c:489
-#, fuzzy, c-format
+#, c-format
#| msgid "'%s' is not a valid name: '%c'"
msgid "“%s” is not a valid name: “%c”"
-msgstr "'%s' ਢੁੱਕਵਾਂ ਨਾਂ ਨਹੀਂ ਹੈ: '%c'"
+msgstr "“%s“ ਢੁੱਕਵਾਂ ਨਾਂ ਨਹੀਂ ਹੈ: “%c“"
#: glib/gmarkup.c:613
#, c-format
@@ -5359,7 +5324,7 @@ msgid "Error on line %d: %s"
msgstr "ਲਾਈਨ %d ਉੱਤੇ ਗਲਤੀ: %s"
#: glib/gmarkup.c:690
-#, fuzzy, c-format
+#, c-format
#| msgid ""
#| "Failed to parse '%-.*s', which should have been a digit inside a "
#| "character reference (&#234; for example) - perhaps the digit is too large"
@@ -5367,12 +5332,11 @@ msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
"reference (&#234; for example) — perhaps the digit is too large"
msgstr ""
-" '%-.*s' ਪਾਰਸ ਕਰਨ ਵਿੱਚ ਫੇਲ੍ਹ, ਜੋ ਕਿ ਅੱਖਰ ਵਿੱਚ ਨੰਬਰ ਹੋਣ ਚਾਹੀਦਾ ਹੈ ਵੇਖੋ (&#234;"
+"“%-.*s“ ਪਾਰਸ ਕਰਨ ਵਿੱਚ ਫੇਲ੍ਹ, ਜੋ ਕਿ ਅੱਖਰ ਵਿੱਚ ਨੰਬਰ ਹੋਣ ਚਾਹੀਦਾ ਹੈ ਵੇਖੋ (&#234;"
" ਉਦਾਹਰਨ "
-"ਲਈ) - ਅੱਖਰ ਬਹੁਤ ਲੰਮਾ ਹੋ ਗਿਆ ਹੈ"
+"ਲਈ) — ਅੱਖਰ ਬਹੁਤ ਲੰਮਾ ਹੋ ਗਿਆ ਹੈ"
#: glib/gmarkup.c:702
-#, fuzzy
#| msgid ""
#| "Character reference did not end with a semicolon; most likely you used an "
#| "ampersand character without intending to start an entity - escape "
@@ -5384,30 +5348,28 @@ msgid ""
msgstr ""
"ਅੱਖਰੀ ਰੈਫਰੈਂਸ ਸੈਮੀਕਾਲਨ ਨਾਲ ਖਤਮ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੋ ਕਿ ਤੁਸੀ ਇੱਕ ਐਪਰਸੈਨਡ ਅੱਖਰ ਬਿਨਾਂ"
" ਐਂਟਟੀ ਸ਼ੁਰੂ ਕੀਤੇ "
-"ਹੀ ਵਰਤ ਰਹੇ ਹੋ, ਐਪਰਸੈਨਡ ਇੰਝ &amp; ਛੱਡੋ"
+"ਹੀ ਵਰਤ ਰਹੇ ਹੋ — ਐਪਰਸੈਨਡ ਇੰਝ &amp; ਛੱਡੋ"
#: glib/gmarkup.c:728
-#, fuzzy, c-format
+#, c-format
#| msgid "Character reference '%-.*s' does not encode a permitted character"
msgid "Character reference “%-.*s” does not encode a permitted character"
-msgstr "ਅੱਖਰ ਰੈਫਰੈਂਸ '%-.*s' ਇਕ ਚੁਣੇ ਅੱਖਰ ਨੂੰ ਇਨਕੋਡ ਨਹੀਂ ਕਰ ਸਕਦਾ"
+msgstr "ਅੱਖਰ ਰੈਫਰੈਂਸ “%-.*s“ ਇਕ ਚੁਣੇ ਅੱਖਰ ਨੂੰ ਇਨਕੋਡ ਨਹੀਂ ਕਰ ਸਕਦਾ"
#: glib/gmarkup.c:766
-#, fuzzy
#| msgid ""
#| "Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
-msgstr "ਖਾਲੀ ਐਂਟਟੀ '&;' ਵੇਖੋ; ਵੈਧ ਐਂਟਟੀਆਂ ਹਨ : &amp; &quot; &lt; &gt; &apos;"
+msgstr "ਖਾਲੀ ਐਂਟਟੀ “&;“ ਵੇਖੋ; ਵੈਧ ਐਂਟਟੀਆਂ ਹਨ : &amp; &quot; &lt; &gt; &apos;"
#: glib/gmarkup.c:774
-#, fuzzy, c-format
+#, c-format
#| msgid "Entity name '%-.*s' is not known"
msgid "Entity name “%-.*s” is not known"
-msgstr "ਐਂਟਟੀ ਨਾਂ '%-.*s' ਪਤਾ ਨਹੀਂ ਹੈ"
+msgstr "ਐਂਟਟੀ ਨਾਂ “%-.*s“ ਪਤਾ ਨਹੀਂ ਹੈ"
#: glib/gmarkup.c:779
-#, fuzzy
#| msgid ""
#| "Entity did not end with a semicolon; most likely you used an ampersand "
#| "character without intending to start an entity - escape ampersand as &amp;"
@@ -5417,14 +5379,14 @@ msgid ""
msgstr ""
"ਐਂਟਟੀ ਸੈਮੀਕਾਲਨ ਨਾਲ ਖਤਮ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੋ ਸਕਦਾ ਕਿ ਤੁਸੀਂ ਇੱਕ ਐਪਰਸੈਨਡ ਅੱਖਰ ਬਿਨਾਂ"
" ਐਂਟਟੀ ਸ਼ੁਰੂ ਕੀਤੇ "
-"ਹੀ ਵਰਤ ਰਹੇ ਹੋ, ਐਪਰਸੈਨਡ ਇਸਤਰਾਂ &amp; ਛੱਡੋ"
+"ਹੀ ਵਰਤ ਰਹੇ ਹੋ — ਐਪਰਸੈਨਡ ਇਸਤਰਾਂ &amp; ਛੱਡੋ"
-#: glib/gmarkup.c:1187
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "ਦਸਤਾਵੇਜ਼ ਇਕ ਐਲੀਮੈਂਟ (ਜਿਵੇਂ ਕਿ <book>) ਨਾਲ ਸ਼ੁਰੂ ਹੋਣਾ ਜਰੂਰੀ ਹੈ"
-#: glib/gmarkup.c:1227
-#, fuzzy, c-format
+#: glib/gmarkup.c:1233
+#, c-format
#| msgid ""
#| "'%s' is not a valid character following a '<' character; it may not begin "
#| "an element name"
@@ -5432,12 +5394,12 @@ msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
"element name"
msgstr ""
-"ਇਹ '%s' ਜਾਇਜ ਅੱਖਰ ਨਹੀਂ ਹੈ ਜੋ ਕਿ '<' ਅੱਖਰ ਤੋਂ ਮਗਰ ਹੈ, ਇਹ ਕਿਸੇ ਐਲੀਮਿੰਟ ਦੇ ਨਾਂ"
+"ਇਹ “%s“ ਜਾਇਜ ਅੱਖਰ ਨਹੀਂ ਹੈ ਜੋ ਕਿ '<' ਅੱਖਰ ਤੋਂ ਮਗਰ ਹੈ, ਇਹ ਕਿਸੇ ਐਲੀਮਿੰਟ ਦੇ ਨਾਂ"
" ਨਾਲ ਆਰੰਭ ਨਹੀਂ "
"ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ"
-#: glib/gmarkup.c:1270
-#, fuzzy, c-format
+#: glib/gmarkup.c:1276
+#, c-format
#| msgid ""
#| "Odd character '%s', expected a '>' character to end the empty-element tag "
#| "'%s'"
@@ -5445,20 +5407,27 @@ msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
"“%s”"
msgstr ""
-"ਅਨਿਸ਼ਚਿਤ ਅੱਖਰ '%s', ਇਹ '>' ਅੱਖਰ ਦੀ ਉਮੀਦ ਖਾਲੀ-ਐਲੀਮਿੰਟ ਟੈਗ '%s' ਬੰਦ ਕਰਨ ਲਈ ਸੀ"
+"ਅਨਿਸ਼ਚਿਤ ਅੱਖਰ “%s“, ਇਹ “>“ ਅੱਖਰ ਦੀ ਉਮੀਦ ਖਾਲੀ-ਐਲੀਮਿੰਟ ਟੈਗ “%s“ ਬੰਦ ਕਰਨ ਲਈ ਸੀ"
-#: glib/gmarkup.c:1352
+#: glib/gmarkup.c:1346
#, fuzzy, c-format
+#| msgid "Unexpected attribute “%s” for element “%s”"
+msgid "Too many attributes in element “%s”"
+msgstr "ਐਲੀਮੈਂਟ “%2$s“ ਲਈ ਗਲਤ ਗੁਣ “%1$s“"
+
+#: glib/gmarkup.c:1366
+#, c-format
#| msgid ""
#| "Odd character '%s', expected a '=' after attribute name '%s' of element "
#| "'%s'"
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
msgstr ""
-"ਅਨਿਸ਼ਚਿਤ ਅੱਖਰ %1$s ਹੈ, ਐਲੀਮਿੰਟ %3$s ਦੇ ਇਸ ਵਿਸ਼ੇਸਤਾ ਨਾਂ %2$s ਮਗਰੋਂ = ਲੋੜੀਦਾ ਸੀ"
+"ਅਨਿਸ਼ਚਿਤ ਅੱਖਰ “%1$s“ ਹੈ, ਐਲੀਮੈਂਟ “%3$s“ ਦੇ ਇਸ ਵਿਸ਼ੇਸਤਾ ਨਾਂ “%2$s“ ਮਗਰੋਂ “=“"
+" ਲੋੜੀਦਾ ਸੀ"
-#: glib/gmarkup.c:1394
-#, fuzzy, c-format
+#: glib/gmarkup.c:1408
+#, c-format
#| msgid ""
#| "Odd character '%s', expected a '>' or '/' character to end the start tag "
#| "of element '%s', or optionally an attribute; perhaps you used an invalid "
@@ -5468,12 +5437,12 @@ msgid ""
"element “%s”, or optionally an attribute; perhaps you used an invalid "
"character in an attribute name"
msgstr ""
-"ਅਨਿਸ਼ਚਿਤ ਅੱਖਰ '%s' ਹੈ, ਇਕ ਅੱਖਰ '>'ਜਾਂ '/' ਨਿਸ਼ਚਿਤ ਅੱਖਰ ਹੈ ਤਾਂ ਕਿ ਹਿੱਸੇ ਦੇ ਸ਼ੁਰੂ"
-" ਕੀਤੇ ਟੈਗ ਨੂੰ "
-"ਖਤਮ ਕੀਤੀ ਜਾ ਸਕੇ '%s', ਜਾਂ ਚੁਣਿਆ ਪ੍ਰਤੀਕ, ਜਿਸ ਲ਼ਈ ਤੁਸੀ ਗਲਤ ਨਾਂ ਭਰਿਆ ਹੈ।"
+"ਅਨਿਸ਼ਚਿਤ ਅੱਖਰ “%s“ ਹੈ, ਇਕ ਅੱਖਰ “>“ ਜਾਂ “/“ ਨਿਸ਼ਚਿਤ ਅੱਖਰ ਹੈ ਤਾਂ ਕਿ ਹਿੱਸੇ ਦੇ"
+" ਸ਼ੁਰੂ ਕੀਤੇ ਟੈਗ ਨੂੰ "
+"ਖਤਮ ਕੀਤੀ ਜਾ ਸਕੇ “%s“, ਜਾਂ ਚੁਣਿਆ ਪ੍ਰਤੀਕ, ਜਿਸ ਲ਼ਈ ਤੁਸੀ ਗਲਤ ਨਾਂ ਭਰਿਆ ਹੈ।"
-#: glib/gmarkup.c:1439
-#, fuzzy, c-format
+#: glib/gmarkup.c:1453
+#, c-format
#| msgid ""
#| "Odd character '%s', expected an open quote mark after the equals sign "
#| "when giving value for attribute '%s' of element '%s'"
@@ -5481,12 +5450,12 @@ msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
"giving value for attribute “%s” of element “%s”"
msgstr ""
-"ਅਨਿਸ਼ਚਿਤ ਅੱਖਰ '%1$s', ਬਰਾਬਰ ਦੇ ਨਿਸ਼ਾਨ ਮਗਰੋਂ ਇਕ ਖੁੱਲਾ ਹਵਾਲਾ ਨਿਸ਼ਾਨ ਜ਼ਰੂਰੀ ਹੈ,"
+"ਅਨਿਸ਼ਚਿਤ ਅੱਖਰ “%1$s“, ਬਰਾਬਰ ਦੇ ਨਿਸ਼ਾਨ ਮਗਰੋਂ ਇਕ ਖੁੱਲਾ ਹਵਾਲਾ ਨਿਸ਼ਾਨ ਜ਼ਰੂਰੀ ਹੈ,"
" ਜਦੋਂ ਕਿ ਤੁਸੀਂ "
-"ਇੱਕ ਐਲੀਮਿੰਟ '%3$s' ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ '%2$s' ਲਈ ਮੁੱਲ ਦੇ ਰਹੇ ਹੋ।"
+"ਇੱਕ ਐਲੀਮਿੰਟ “%3$s“ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ “%2$s“ ਲਈ ਮੁੱਲ ਦੇ ਰਹੇ ਹੋ।"
-#: glib/gmarkup.c:1573
-#, fuzzy, c-format
+#: glib/gmarkup.c:1587
+#, c-format
#| msgid ""
#| "'%s' is not a valid character following the characters '</'; '%s' may not "
#| "begin an element name"
@@ -5494,12 +5463,12 @@ msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
"begin an element name"
msgstr ""
-"ਇਸ '</' ਅੱਖਰ ਮਗਰੋਂ ਇਹ %s' ਅੱਖਰ ਜ਼ਾਇਜ ਨਹੀਂ ਹੈ, '%s' ਇੱਕ ਐਲੀਮਿੰਟ ਦੇ ਨਾਂ ਨਾਲ"
+"ਇਸ “</“ ਅੱਖਰ ਮਗਰੋਂ ਇਹ “%s“ ਅੱਖਰ ਜ਼ਾਇਜ ਨਹੀਂ ਹੈ, “%s“ ਇੱਕ ਐਲੀਮੈਂਟ ਦੇ ਨਾਂ ਨਾਲ"
" ਸ਼ੁਰੂ ਨਹੀਂ ਹੋ ਸਕਦਾ "
"ਹੈ।"
-#: glib/gmarkup.c:1611
-#, fuzzy, c-format
+#: glib/gmarkup.c:1625
+#, c-format
#| msgid ""
#| "'%s' is not a valid character following the close element name '%s'; the "
#| "allowed character is '>'"
@@ -5507,41 +5476,40 @@ msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
"allowed character is “>”"
msgstr ""
-"ਇਹ '%s' ਅੱਖਰ '%s' ਐਲੀਮਿੰਟ ਨਾਂ ਮਗਰੋਂ ਜਾਇਜ ਨਹੀਂ ਹੈ ; ਸਿਰਫ '>' ਅੱਖਰ ਹੀ ਮਨਜ਼ੂਰ ਹੈ"
+"ਇਹ “%s“ ਅੱਖਰ “%s“ ਐਲੀਮੈਂਟ ਨਾਂ ਮਗਰੋਂ ਜਾਇਜ ਨਹੀਂ ਹੈ ; ਸਿਰਫ “>“ ਅੱਖਰ ਹੀ ਮਨਜ਼ੂਰ ਹੈ"
-#: glib/gmarkup.c:1623
-#, fuzzy, c-format
+#: glib/gmarkup.c:1637
+#, c-format
#| msgid "Element '%s' was closed, no element is currently open"
msgid "Element “%s” was closed, no element is currently open"
-msgstr "ਇਹ ਐਲੀਮਿੰਟ '%s' ਬੰਦ ਸੀ, ਕੋਈ ਐਲੀਮਿੰਟ ਖੁੱਲ੍ਹਾ ਨਹੀਂ ਹੈ"
+msgstr "ਇਹ ਐਲੀਮੈਂਟ “%s“ ਬੰਦ ਸੀ, ਕੋਈ ਐਲੀਮੈਂਟ ਖੁੱਲ੍ਹਾ ਨਹੀਂ ਹੈ"
-#: glib/gmarkup.c:1632
-#, fuzzy, c-format
+#: glib/gmarkup.c:1646
+#, c-format
#| msgid "Element '%s' was closed, but the currently open element is '%s'"
msgid "Element “%s” was closed, but the currently open element is “%s”"
-msgstr "ਇਹ ਐਲੀਮਿੰਟ '%s' ਬੰਦ ਸੀ, ਪਰ ਅਜੇ '%s' ਐਲੀਮਿੰਟ ਖੁੱਲਾ ਹੈ"
+msgstr "ਇਹ ਐਲੀਮੈਂਟ “%s“ ਬੰਦ ਸੀ, ਪਰ ਅਜੇ “%s“ ਐਲੀਮੈਂਟ ਖੁੱਲਾ ਹੈ"
-#: glib/gmarkup.c:1785
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "ਦਸਤਾਵੇਜ਼ ਖਾਲੀ ਹੈ ਜਾਂ ਕੇਵਲ ਖਾਲੀ ਥਾਂ ਹੀ ਰੱਖਦਾ ਹੈ"
-#: glib/gmarkup.c:1799
-#, fuzzy
+#: glib/gmarkup.c:1813
#| msgid "Document ended unexpectedly just after an open angle bracket '<'"
msgid "Document ended unexpectedly just after an open angle bracket “<”"
-msgstr "ਦਸਤਾਵੇਜ਼ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ ਹੈ, ਇਕ ਖੁੱਲੀ ਬਰੈਕਟ '<' ਪਾਉਣ ਮਗਰੋਂ"
+msgstr "ਦਸਤਾਵੇਜ਼ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ ਹੈ, ਇਕ ਖੁੱਲੀ ਬਰੈਕਟ “<“ ਪਾਉਣ ਮਗਰੋਂ"
-#: glib/gmarkup.c:1807 glib/gmarkup.c:1852
-#, fuzzy, c-format
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
+#, c-format
#| msgid ""
#| "Document ended unexpectedly with elements still open - '%s' was the last "
#| "element opened"
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
"element opened"
-msgstr "ਦਸਤਾਵੇਜ਼ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ ਹੈ, ਜਦੋਂ ਕਿ-ਇਹ '%s' ਆਖਰੀ ਐਲੀਮਿੰਟ ਖੁੱਲਾ ਹੈ"
+msgstr "ਦਸਤਾਵੇਜ਼ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ ਹੈ, ਜਦੋਂ ਕਿ-ਇਹ “%s“ ਆਖਰੀ ਐਲੀਮੈਂਟ ਖੁੱਲਾ ਹੈ"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5550,19 +5518,19 @@ msgstr ""
"ਦਸਤਾਵੇਜ਼ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ ਹੈ, ਇਕ ਬੰਦ ਬਰੈਕਟ <%s/> ਜੋ ਕਿ ਪੱਟੀ ਨੂੰ ਬੰਦ ਕਰਦੀ ਹੈ,"
" ਦੀ ਉਮੀਦ ਸੀ"
-#: glib/gmarkup.c:1821
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "ਇਕ ਐਲੀਮਿੰਟ ਦੇ ਨਾਂ ਕਰਕੇ ਦਸਤਾਵੇਜ਼ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ ਹੈ"
-#: glib/gmarkup.c:1827
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "ਇਕ ਗੁਣ ਦੇ ਨਾਂ ਕਰਕੇ ਦਸਤਾਵੇਜ਼ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ ਹੈ"
-#: glib/gmarkup.c:1832
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "ਇਕ ਐਲੀਮਿੰਟ-ਖੋਲ੍ਹਣ ਟੈਗ ਕਰਕੇ ਦਸਤਾਵੇਜ਼ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ ਹੈ"
-#: glib/gmarkup.c:1838
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5571,326 +5539,265 @@ msgstr ""
" ਦਾ ਕੋਈ ਮੁੱਲ "
"ਨਹੀਂ ਹੈ"
-#: glib/gmarkup.c:1845
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "ਇਕ ਗੁਣ ਦੇ ਮੁੱਲ ਕਰਕੇ ਦਸਤਾਵੇਜ਼ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ ਹੈ"
-#: glib/gmarkup.c:1862
-#, fuzzy, c-format
+#: glib/gmarkup.c:1876
+#, c-format
#| msgid "Document ended unexpectedly inside the close tag for element '%s'"
msgid "Document ended unexpectedly inside the close tag for element “%s”"
-msgstr "ਇਕ ਐਲੀਮਿੰਟ '%s' ਦੇ ਟੈਗ ਕਰਕੇ ਦਸਤਾਵੇਜ਼ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ ਹੈ"
+msgstr "ਇਕ ਐਲੀਮੈਂਟ “%s“ ਦੇ ਟੈਗ ਕਰਕੇ ਦਸਤਾਵੇਜ਼ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ ਹੈ"
-#: glib/gmarkup.c:1866
-#, fuzzy
+#: glib/gmarkup.c:1880
#| msgid "Document ended unexpectedly inside the close tag for element '%s'"
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
-msgstr "ਇਕ ਐਲੀਮਿੰਟ '%s' ਦੇ ਟੈਗ ਕਰਕੇ ਦਸਤਾਵੇਜ਼ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ ਹੈ"
+msgstr "ਇਕ ਐਲੀਮੈਂਟ “%s“ ਦੇ ਟੈਗ ਕਰਕੇ ਦਸਤਾਵੇਜ਼ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ ਹੈ"
-#: glib/gmarkup.c:1872
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr "ਇਕ ਟਿੱਪਣੀ ਜਾਂ ਹਦਾਇਤ ਚਲਾਉਣ ਦੌਰਾਨ ਦਸਤਾਵੇਜ਼ ਅਚਾਨਕ ਬੰਦ ਹੋ ਗਿਆ ਹੈ"
-#: glib/goption.c:868
-#, fuzzy
+#: glib/goption.c:875
#| msgid "[OPTION...]"
msgid "[OPTION…]"
-msgstr "[ਚੋਣ...]"
+msgstr "[ਚੋਣ…]"
-#: glib/goption.c:984
+#: glib/goption.c:991
msgid "Help Options:"
-msgstr "ਮੱਦਦ ਚੋਣ:"
+msgstr "ਮਦਦ ਚੋਣਾਂ:"
-#: glib/goption.c:985
+#: glib/goption.c:992
msgid "Show help options"
-msgstr "ਮੱਦਦ ਚੋਣ ਵੇਖੋ"
+msgstr "ਮਦਦ ਚੋਣ ਵੇਖੋ"
-#: glib/goption.c:991
+#: glib/goption.c:998
msgid "Show all help options"
-msgstr "ਸਭ ਮੱਦਦ ਚੋਣਾਂ ਵੇਖੋ"
+msgstr "ਸਭ ਮਦਦ ਚੋਣਾਂ ਵੇਖੋ"
-#: glib/goption.c:1054
+#: glib/goption.c:1061
msgid "Application Options:"
-msgstr "ਐਪਲੀਕੇਸ਼ਨ ਚੋਣ:"
+msgstr "ਐਪਲੀਕੇਸ਼ਨ ਚੋਣਾਂ:"
-#: glib/goption.c:1056
-#, fuzzy
+#: glib/goption.c:1063
#| msgid "Help Options:"
msgid "Options:"
-msgstr "ਮੱਦਦ ਚੋਣ:"
+msgstr "ਚੋਣਾਂ:"
-#: glib/goption.c:1120 glib/goption.c:1190
-#, fuzzy, c-format
+#: glib/goption.c:1127 glib/goption.c:1197
+#, c-format
#| msgid "Cannot parse integer value '%s' for %s"
msgid "Cannot parse integer value “%s” for %s"
-msgstr "ਪੂਰਨ ਅੰਕ ਮੁੱਲ %s' ਨੂੰ %s ਲਈ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
+msgstr "ਪੂਰਨ ਅੰਕ ਮੁੱਲ “%s“ ਨੂੰ %s ਲਈ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-#: glib/goption.c:1130 glib/goption.c:1198
-#, fuzzy, c-format
+#: glib/goption.c:1137 glib/goption.c:1205
+#, c-format
#| msgid "Integer value '%s' for %s out of range"
msgid "Integer value “%s” for %s out of range"
-msgstr "ਪੂਰਨ ਅੰਕ '%s' %s ਲਈ ਰੇਜ਼ ਤੋਂ ਬਾਹਰ ਜਾ ਰਿਹਾ ਹੈ"
+msgstr "ਪੂਰਨ ਅੰਕ “%s“ %s ਲਈ ਰੇਜ਼ ਤੋਂ ਬਾਹਰ ਜਾ ਰਿਹਾ ਹੈ"
-#: glib/goption.c:1155
-#, fuzzy, c-format
+#: glib/goption.c:1162
+#, c-format
#| msgid "Cannot parse double value '%s' for %s"
msgid "Cannot parse double value “%s” for %s"
-msgstr "%2$s ਲਈ ਡਬਲ ਮੁੱਲ '%1$s' ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
+msgstr "%2$s ਲਈ ਡਬਲ ਮੁੱਲ “%1$s“ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
-#: glib/goption.c:1163
-#, fuzzy, c-format
+#: glib/goption.c:1170
+#, c-format
#| msgid "Double value '%s' for %s out of range"
msgid "Double value “%s” for %s out of range"
-msgstr "%2$s ਲਈ '%1$s' ਡਬਲ ਮੁੱਲ ਰੇਜ਼ ਤੋਂ ਬਾਹਰ ਹੈ"
+msgstr "%2$s ਲਈ “%1$s“ ਡਬਲ ਮੁੱਲ ਰੇਜ਼ ਤੋਂ ਬਾਹਰ ਹੈ"
-#: glib/goption.c:1455 glib/goption.c:1534
+#: glib/goption.c:1462 glib/goption.c:1541
#, c-format
msgid "Error parsing option %s"
msgstr "ਚੋਣ %s ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ"
-#: glib/goption.c:1565 glib/goption.c:1678
+#: glib/goption.c:1563 glib/goption.c:1676
#, c-format
msgid "Missing argument for %s"
msgstr "%s ਲਈ ਆਰਗੂਮੈਂਟ ਗੁੰਮ ਹੈ"
-#: glib/goption.c:2187
+#: glib/goption.c:2186
#, c-format
msgid "Unknown option %s"
msgstr "ਅਣਜਾਣ ਚੋਣ %s"
-#: glib/gregex.c:257
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "ਨਿਕਾਰਾ ਆਬਜੈਕਟ"
-#: glib/gregex.c:259
-msgid "internal error or corrupted object"
-msgstr "ਅੰਦਰੂਨੀ ਗਲਤੀ ਜਾਂ ਨਿਕਾਰਾ ਆਬਜੈਕਟ"
-
-#: glib/gregex.c:261
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "ਮੈਮੋਰੀ ਖਤਮ ਹੋਈ"
-#: glib/gregex.c:266
-msgid "backtracking limit reached"
-msgstr "ਬੈਕ-ਟਰੈਕਿੰਗ ਲਿਸਟ ਆ ਗਈ"
+#: glib/gregex.c:497
+msgid "internal error"
+msgstr "ਅੰਦਰੂਨੀ ਗਲਤੀ"
-#: glib/gregex.c:278 glib/gregex.c:286
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "ਪੈਟਰਨ ਵਿੱਚ ਆਈਟਮਾਂ ਹਨ, ਜੋ ਕਿ ਅਧੂਰੀ ਮੈਂਚਿੰਗ ਲਈ ਸਹਾਇਕ ਨਹੀਂ।"
-#: glib/gregex.c:280
-msgid "internal error"
-msgstr "ਅੰਦਰੂਨੀ ਗਲਤੀ"
-
-#: glib/gregex.c:288
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr "ਬੈਕ ਰੈਡਰੈਂਸ ਕੰਡੀਸ਼ਨ ਵਾਂਗ ਅਧੂਰੀ ਮੈਂਚਿੰਗ ਲਈ ਸਹਾਇਕ ਨਹੀਂ ਹਨ"
-#: glib/gregex.c:297
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "ਰੀਕਰਸਵ ਲਿਮਟ ਆਈ"
-#: glib/gregex.c:299
-msgid "invalid combination of newline flags"
-msgstr "ਗਲਤ ਨਵੀਂ ਲਾਈਨ ਫਲੈਗ ਦਾ ਸੰਯੋਗ"
-
-#: glib/gregex.c:301
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "ਖ਼ਰਾਬ ਆਫਸੈੱਟ"
-#: glib/gregex.c:303
-msgid "short utf8"
-msgstr "ਛੋਟਾ utf8"
-
-#: glib/gregex.c:305
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "ਲਗਾਤਾਰ ਲੂਪ"
-#: glib/gregex.c:309
+#. should not happen in GRegex since we check modes before each match
+#: glib/gregex.c:514
+msgid "matching mode is requested that was not compiled for JIT"
+msgstr ""
+
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "ਅਣਜਾਣ ਗਲਤੀ"
-#: glib/gregex.c:329
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ ਪੈਟਰਨ ਦੇ ਅੰਤ ਉੱਤੇ"
-#: glib/gregex.c:332
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\ਪੈਟਰਨ ਦੇ ਅੰਤ ਉੱਤੇ c"
-#: glib/gregex.c:335
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "ਬੇਪਛਾਣ ਕਰੈਕਟਰ ਅੱਗੇ \\"
-#: glib/gregex.c:338
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "ਨੰਬਰ {} ਗਿਣਤੀ ਤੋਂ ਬਾਹਰ ਹਨ"
-#: glib/gregex.c:341
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "ਨੰਬਰ {} ਵਿੱਚ ਆਉਣ ਤੋਂ ਬਹੁਤ ਵੱਡਾ"
-#: glib/gregex.c:344
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "ਕਰੈਕਟਰ ਕਲਾਸ ਲਈ ਟਰਮੀਨੇਸ਼ਨ ] ਗੁੰਮ ਹੈ"
-#: glib/gregex.c:347
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "ਕਰੈਕਟਰ ਕਲਾਸ ਵਿੱਚ ਅਸਕੇਪ ਲੜੀ ਗਲਤ ਹੈ"
-#: glib/gregex.c:350
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "ਕਰੈਕਟਰ ਕਲਾਸ ਵਿੱਚ ਰੇਜ਼ ਬਿਨ-ਕ੍ਰਮ"
-#: glib/gregex.c:353
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "ਰਪੀਟ ਕਰਨ ਲਈ ਕੁਝ ਨਹੀਂ"
-#: glib/gregex.c:357
-msgid "unexpected repeat"
-msgstr "ਅਣਜਾਣ ਰਪੀਟ"
-
-#: glib/gregex.c:360
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "(? ਜਾਂ (?- ਦੇ ਬਾਅਦ ਬੇਪਛਾਣ ਕਰੈਕਟਰ"
-#: glib/gregex.c:363
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX ਨਾਂ ਦੀ ਕਲਾਸ ਕੇਵਲ ਇੱਕ ਹੀ ਕਲਾਸ ਸਹਿਯੋਗੀ ਹੈ"
-#: glib/gregex.c:366
+#: glib/gregex.c:602
+msgid "POSIX collating elements are not supported"
+msgstr "POSIX ਲੋਕੇਲ ਐਲੀਮੈਂਟ ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
+
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "ਟਰਮੀਨੇਸ਼ਨ ) ਗੁੰਮ ਹੈ"
-#: glib/gregex.c:369
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "ਗ਼ੈਰ ਮੌਜੂਦ ਸਬ-ਪੈਟਰਨ ਲਈ ਰੈਫਰੈਂਸ"
-#: glib/gregex.c:372
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "ਟਿੱਪਣੀ ਦੇ ਬਾਅਦ ) ਗੁੰਮ ਹੈ"
-#: glib/gregex.c:375
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "ਰੈਗੂਲਰ ਸਮੀਕਰਨ ਬਹੁਤ ਲੰਮਾ ਹੈ "
-#: glib/gregex.c:378
-msgid "failed to get memory"
-msgstr "ਮੈਮੋਰੀ ਲੈਣ ਲਈ ਫੇਲ੍ਹ"
-
-#: glib/gregex.c:382
-msgid ") without opening ("
-msgstr ") ਬਿਨਾਂ ( ਖੋਲ੍ਹਣ ਦੇ ਹੈ"
-
-#: glib/gregex.c:386
-msgid "code overflow"
-msgstr "ਕੋਡ ਓਵਰਫਲੋ"
-
-#: glib/gregex.c:390
-msgid "unrecognized character after (?<"
-msgstr "(?< ਬਾਅਦ ਬੇਪਛਾਣ ਕਰੈਕਟਰ"
+#: glib/gregex.c:624
+msgid "malformed number or name after (?("
+msgstr "(?( ਦੇ ਬਾਅਦ ਨਿਕਾਰਾ ਨੰਬਰ ਜਾਂ ਨਾਂ"
-#: glib/gregex.c:393
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "lookbehind ਸਥਿਰ ਲੰਬਾਈ ਵਿੱਚ ਨਹੀਂ"
-#: glib/gregex.c:396
-msgid "malformed number or name after (?("
-msgstr "(?( ਦੇ ਬਾਅਦ ਨਿਕਾਰਾ ਨੰਬਰ ਜਾਂ ਨਾਂ"
-
-#: glib/gregex.c:399
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "ਕੰਡੀਸ਼ਨ ਗਰੁੱਪ ਵਿੱਚ ਦੋ ਤੋਂ ਵੱਧ ਬਰਾਂਚਾਂ ਹਨ"
-#: glib/gregex.c:402
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr " (?( ਤੋਂ ਬਾਅਦ ਸ਼ਾਮਲ ਕਰਨ ਦੀ ਲੋੜ ਸੀ"
-#. translators: '(?R' and '(?[+-]digits' are both meant as (groups of)
-#. * sequences here, '(?-54' would be an example for the second group.
-#.
-#: glib/gregex.c:409
-msgid "(?R or (?[+-]digits must be followed by )"
-msgstr "(?R ਜਾਂ (?[+-]ਡਿਜ਼ਟ ਦੇ ਬਾਅਦ ) ਹੋਣਾ ਚਾਹੀਦੀ ਹੈ"
+#: glib/gregex.c:640
+msgid "a numbered reference must not be zero"
+msgstr "ਅੰਕ ਰੈਫ਼ਰੈਂਸ ਜ਼ੀਰੋ ਹੋਣਾ ਨਹੀਂ ਚਾਹੀਦਾ ਹੈ"
-#: glib/gregex.c:412
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "ਅਣਜਾਣ POSIX ਕਲਾਸ ਨਾਂ"
-#: glib/gregex.c:415
-msgid "POSIX collating elements are not supported"
-msgstr "POSIX ਲੋਕੇਲ ਐਲੀਮੈਂਟ ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
-
-#: glib/gregex.c:418
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "\\x{...} ਵਿੱਚ ਅੱਖਰ ਮੁੱਖ, ਲੜੀ ਬਹੁਤ ਲੰਮੀ ਹੈ"
-#: glib/gregex.c:421
-msgid "invalid condition (?(0)"
-msgstr "ਗਲਤ ਕੰਡੀਸ਼ਨ (?(0)"
-
-#: glib/gregex.c:424
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C lookbehind assertion ਲਈ ਸਹਾਇਕ ਨਹੀਂ"
-#: glib/gregex.c:431
-msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
-msgstr "ਇਸਕੇਪ \\L, \\l, \\N{name}, \\U, ਅਤੇ \\u ਸਹਾਇਕ ਨਹੀਂ"
-
-#: glib/gregex.c:434
-msgid "recursive call could loop indefinitely"
-msgstr "ਲਗਾਤਾਰ ਕਾਲ ਨਾਲ ਬੇਅੰਤ ਲੂਪ ਚਾਲੂ ਹੋ ਸਕਦਾ ਸੀ"
-
-#: glib/gregex.c:438
-msgid "unrecognized character after (?P"
-msgstr "(?P ਬਾਅਦ ਬੇਪਛਾਣ ਕਰੈਕਟਰ"
-
-#: glib/gregex.c:441
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "ਸਬ-ਪੈਟਰਨ ਨਾਂ ਵਿੱਚ ਟਰਮੀਨੇਟਰ ਗੁੰਮ ਹੈ"
-#: glib/gregex.c:444
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "ਦੋ ਨਾਮੀ ਸਬ-ਪੈਟਰਨ ਲਈ ਇੱਕੋ ਨਾਂ ਹੈ"
-#: glib/gregex.c:447
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "ਨਿਕਾਰਾ \\P ਜਾਂ \\p ਕ੍ਰਮ"
-#: glib/gregex.c:450
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "\\P ਜਾਂ \\p ਦੇ ਬਾਅਦ ਅਣਜਾਣ ਵਿਸ਼ੇਸ਼ਤਾ ਨਾਂ"
-#: glib/gregex.c:453
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "ਸਬ-ਪੈਟਰਨ ਬਹੁਤ ਲੰਮਾ ਹੈ (ਵੱਧੋ-ਵੱਧ ੩੨ ਅੱਖਰ)"
-#: glib/gregex.c:456
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "ਬਹੁਤ ਵੱਧ ਸਬ-ਪੈਟਰਨ (ਵੱਧੋ-ਵੱਧ ੧੦,੦੦੦)"
-#: glib/gregex.c:459
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "ਓਕਟਲ ਮੁੱਲ \\੩੭੭ ਤੋਂ ਵੱਧ"
-#: glib/gregex.c:463
-msgid "overran compiling workspace"
-msgstr "ਓਵਰ-ਰਨ ਕੰਪਾਇਲਿੰਗ ਵਰਕਸਪੇਸ"
-
-#: glib/gregex.c:467
-msgid "previously-checked referenced subpattern not found"
-msgstr "ਪਹਿਲਾਂ-ਚੈੱਕ ਕੀਤਾ ਰੈਂਫਰਡ ਸਬ-ਪੈਟਰਨ ਨਹੀਂ ਲੱਭਿਆ"
-
-#: glib/gregex.c:470
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "DEFINE ਗਰੁੱਪ ਵਿੱਚ ਇੱਕ ਤੋਂ ਵੱਧ ਬਰਾਂਚਾਂ ਹਨ"
-#: glib/gregex.c:473
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "ਗਲਤ NEWLINE ਚੋਣਾਂ"
-#: glib/gregex.c:476
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5898,293 +5805,291 @@ msgstr ""
"\\g ਨੂੰ ਕਿਸੇ ਵੀ ਬਰੈਕਟ ਨਾਂ ਜਾਂ ਚੋਣਵੀਂ ਬਰੈਕਟ, ਕੋਟ ਕੀਤੇ ਨਾਂ ਜਾਂ ਨੰਬਰ, ਜਾਂ ਪਲੇਨ"
" ਨੰਬਰ ਬਾਅਦ ਮਨਜ਼ੂਰ ਨਹੀਂ"
-#: glib/gregex.c:480
-msgid "a numbered reference must not be zero"
-msgstr "ਅੰਕ ਰੈਫ਼ਰੈਂਸ ਜ਼ੀਰੋ ਹੋਣਾ ਨਹੀਂ ਚਾਹੀਦਾ ਹੈ"
-
-#: glib/gregex.c:483
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "(*ACCEPT), (*FAIL), ਜਾਂ (*COMMIT) ਦੇ ਬਾਅਦ ਆਰਗੂਮੈਂਟ ਮਨਜ਼ੂਰ ਨਹੀਂ"
-#: glib/gregex.c:486
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) ਦੀ ਪਛਾਣ ਨਹੀਂ"
-#: glib/gregex.c:489
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "ਨੰਬਰ ਬਹੁਤ ਵੱਡਾ ਹੈ"
-#: glib/gregex.c:492
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "(?& ਦੇ ਬਾਅਦ ਸਬ-ਪੈਟਰਨ ਨਾਂ ਵਿੱਚ ਟਰਮੀਨੇਟਰ ਗੁੰਮ ਹੈ"
-#: glib/gregex.c:495
-msgid "digit expected after (?+"
-msgstr "(?+ ਦੇ ਬਾਅਦ ਅੰਕ ਲੋੜੀਦਾ ਸੀ"
-
-#: glib/gregex.c:498
-msgid "] is an invalid data character in JavaScript compatibility mode"
-msgstr "ਜਾਵਾਸਕ੍ਰਿਪਟ ਮੋਡ ਵਿੱਚ ] ਗਲਤ ਡਾਟਾ ਅੱਖਰ ਹੈ"
-
-#: glib/gregex.c:501
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "ਇਕੋ ਅੰਕ ਦੇ ਦੋ ਨਾਮੀ ਸਬ-ਪੈਟਰਨ ਮਨਜ਼ੂਰ ਨਹੀਂ ਹਨ"
-#: glib/gregex.c:504
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) ਲਈ ਇੱਕ ਆਰਗੂਮੈਂਟ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ"
-#: glib/gregex.c:507
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c ਨੂੰ ਇੱਕ ASCII ਅੱਖਰ ਦੇ ਬਾਅਦ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ"
-#: glib/gregex.c:510
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"\\k ਨੂੰ ਕਿਸੇ ਵੀ ਬਰੈਕਟ ਨਾਂ ਜਾਂ ਕੋਣੀ ਬਰੈਕਟ ਜਾਂ ਕੋਟ ਕੀਤੇ ਨਾਂ ਦੇ ਬਾਅਦ ਮਨਜ਼ੂਰ ਨਹੀਂ"
-#: glib/gregex.c:513
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N ਕਲਾਸ ਵਿੱਚ ਸਹਿਯੋਗੀ ਨਹੀਂ"
-#: glib/gregex.c:516
-msgid "too many forward references"
-msgstr "ਬਹੁਤ ਸਾਰੇ ਅੱਗੇ ਰੈਫਰੈਂਸ"
-
-#: glib/gregex.c:519
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "(*MARK), (*PRUNE), (*SKIP), ਜਾਂ (*THEN) ਵਿੱਚ ਨਾਂ ਬਹੁਤ ਵੱਡਾ ਹੈ"
-#: glib/gregex.c:522
-msgid "character value in \\u.... sequence is too large"
-msgstr "\\u... ਵਿੱਚ ਅੱਖਰ ਮੁੱਖ, ਲੜੀ ਬਹੁਤ ਲੰਮੀ ਹੈ"
+#: glib/gregex.c:738 glib/gregex.c:874
+msgid "code overflow"
+msgstr "ਕੋਡ ਓਵਰਫਲੋ"
+
+#: glib/gregex.c:742
+msgid "unrecognized character after (?P"
+msgstr "(?P ਬਾਅਦ ਬੇਪਛਾਣ ਕਰੈਕਟਰ"
+
+#: glib/gregex.c:746
+msgid "overran compiling workspace"
+msgstr "ਓਵਰ-ਰਨ ਕੰਪਾਇਲਿੰਗ ਵਰਕਸਪੇਸ"
+
+#: glib/gregex.c:750
+msgid "previously-checked referenced subpattern not found"
+msgstr "ਪਹਿਲਾਂ-ਚੈੱਕ ਕੀਤਾ ਰੈਂਫਰਡ ਸਬ-ਪੈਟਰਨ ਨਹੀਂ ਲੱਭਿਆ"
-#: glib/gregex.c:745 glib/gregex.c:1983
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "ਰੈਗੂਲਰ ਐਕਸਪਰੈਸ਼ਨ %s ਮਿਲਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#: glib/gregex.c:1316
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "PCRE ਲਾਇਬਰੇਰੀ ਨੂੰ UTF8 ਮੱਦਦ ਬਗੈਰ ਕੰਪਾਇਲ ਕੀਤਾ ਗਿਆ ਹੈ।"
-#: glib/gregex.c:1320
-msgid "PCRE library is compiled without UTF8 properties support"
-msgstr "PCRE ਲਾਇਬਰੇਰੀ ਨੂੰ UTF8 ਵਿਸ਼ੇਸ਼ਤਾ ਮੱਦਦ ਬਗੈਰ ਕੰਪਾਇਲ ਕੀਤਾ ਗਿਆ ਹੈ।"
-
-#: glib/gregex.c:1328
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "PCRE ਲਾਇਬਰੇਰੀ ਨੂੰ ਗੈਰ-ਅਨੁਕੂਲ ਚੋਣਾਂ ਨਾਲ ਕੰਪਾਇਲ ਕੀਤਾ ਗਿਆ ਹੈ।"
-#: glib/gregex.c:1357
-#, c-format
-msgid "Error while optimizing regular expression %s: %s"
-msgstr "%s ਰੈਗੂਲਰ ਐਕਸਪਰੈਸ਼ਨ ਅਨੁਕੂਲ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-
-#: glib/gregex.c:1437
-#, c-format
-msgid "Error while compiling regular expression %s at char %d: %s"
+#: glib/gregex.c:1860
+#, fuzzy, c-format
+#| msgid "Error while compiling regular expression %s at char %d: %s"
+msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "ਅੱਖਰ %2$d ਉੱਤੇ ਰੈਗੂਲਰ ਸਮੀਕਰਨ %1$s ਨਾਲ ਕੰਪਾਇਲ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %3$s"
-#: glib/gregex.c:2419
-#, fuzzy
+#: glib/gregex.c:2900
#| msgid "hexadecimal digit or '}' expected"
msgid "hexadecimal digit or “}” expected"
-msgstr "ਹੈਕਸਾਡੈਸੀਮਕ ਅੰਕ ਜਾਂ '}' ਦੀ ਮੰਗ ਸੀ"
+msgstr "ਹੈਕਸਾਡੈਸੀਮਕ ਅੰਕ ਜਾਂ “}“ ਦੀ ਮੰਗ ਸੀ"
-#: glib/gregex.c:2435
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
-msgstr "ਹੈਕਾਡੈਸੀਮਲ ਅੰਕ ਲੋੜੀਦਾ ਸੀ"
+msgstr "ਹੈਕਸਾਡੈਸੀਮਲ ਅੰਕ ਲੋੜੀਦਾ ਸੀ"
-#: glib/gregex.c:2475
-#, fuzzy
+#: glib/gregex.c:2956
#| msgid "missing '<' in symbolic reference"
msgid "missing “<” in symbolic reference"
-msgstr "ਸਿੰਬੋਲਿਕ ਰੈਡਰੈਂਸ ਵਿੱਚ '<' ਨਹੀਂ ਹੈ"
+msgstr "ਸਿੰਬੋਲਿਕ ਰੈਡਰੈਂਸ ਵਿੱਚ “<“ ਨਹੀਂ ਹੈ"
-#: glib/gregex.c:2484
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "ਅਧੂਰਾ ਸਿੰਬੋਲਿਕ ਰੈਡਰੈਂਸ"
-#: glib/gregex.c:2491
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "ਜ਼ੀਰੋ-ਲੰਬਾਈ ਸਿੰਬੋਲਿਕ ਰੈਡਰੈਂਸ"
-#: glib/gregex.c:2502
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "ਅੰਕ ਲੋੜੀਦਾ ਸੀ"
-#: glib/gregex.c:2520
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "ਗਲਤ ਸਿੰਬੋਲਿਕ ਰੈਡਰੈਂਸ"
-#: glib/gregex.c:2583
-#, fuzzy
+#: glib/gregex.c:3064
#| msgid "stray final '\\'"
msgid "stray final “\\”"
-msgstr "ਸਟਰੇ ਫਾਈਨਲ '\\'"
+msgstr "ਸਟਰੇ ਫਾਈਨਲ “\\“"
-#: glib/gregex.c:2587
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "ਅਣਜਾਣ ਇਸਕੇਪ ਕਰਮ"
-#: glib/gregex.c:2597
-#, fuzzy, c-format
+#: glib/gregex.c:3078
+#, c-format
#| msgid "Error while parsing replacement text \"%s\" at char %lu: %s"
msgid "Error while parsing replacement text “%s” at char %lu: %s"
-msgstr "ਬਦਲਣ ਟੈਕਸਟ \"%s\" ਨੂੰ ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਅੱਖਰ %lu ਉੱਤੇ ਗਲਤੀ: %s"
+msgstr "ਬਦਲਣ ਟੈਕਸਟ “%s“ ਨੂੰ ਪਾਰਸ ਕਰਨ ਦੌਰਾਨ ਅੱਖਰ %lu ਉੱਤੇ ਗਲਤੀ: %s"
-#: glib/gshell.c:94
-#, fuzzy
+#: glib/gshell.c:98
#| msgid "Quoted text doesn't begin with a quotation mark"
msgid "Quoted text doesn’t begin with a quotation mark"
msgstr "ਹਵਾਲਾ ਟੈਕਸਟ ਇਕ ਹਵਾਲਾ ਮਾਰਕ ਨਾਲ ਸ਼ੁਰੂ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ"
-#: glib/gshell.c:184
+#: glib/gshell.c:188
msgid "Unmatched quotation mark in command line or other shell-quoted text"
msgstr "ਕਮਾਂਡ ਲਾਈਨ ਜਾਂ ਸੈੱਲ ਟੈਕਸਟ ਵਿੱਚ ਬੇਮੇਲ ਹਵਾਲਾ ਮਾਰਕ ਹੈ"
-#: glib/gshell.c:580
+#: glib/gshell.c:594
#, c-format
-#| msgid "Text ended just after a '\\' character. (The text was '%s')"
msgid "Text ended just after a “\\” character. (The text was “%s”)"
msgstr "ਇੱਕ “\\” ਅੱਖਰ ਮਗਰੋਂ ਟੈਕਸਟ ਖਤਮ ਹੋਣੇ ਹਨ (ਟੈਕਸਟ ਸੀ “%s”)"
-#: glib/gshell.c:587
+#: glib/gshell.c:601
#, c-format
-#| msgid ""
-#| "Text ended before matching quote was found for %c. (The text was '%s')"
msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
msgstr "%c ਲਈ ਹਵਾਲਾ ਲੱਭਣ ਤੋਂ ਪਹਿਲਾਂ ਟੈਕਸਟ ਖਤਮ ਹੈ। (ਟੈਕਸਟ ਸੀ “%s”)"
-#: glib/gshell.c:599
+#: glib/gshell.c:613
msgid "Text was empty (or contained only whitespace)"
msgstr "ਟੈਕਸਟ ਖਾਲੀ ਸੀ (ਜਾਂ ਸਾਫ ਥਾਂ ਹੀ ਹੈ)"
-#: glib/gspawn.c:315
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "ਚਾਈਲਡ ਪਰੋਸੈਸ (%s) ਤੋਂ ਡਾਟਾ ਪੜ੍ਹਨ ਲਈ ਫੇਲ੍ਹ"
-#: glib/gspawn.c:463
+#: glib/gspawn.c:473
#, c-format
-msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr "ਚਾਈਲਡ ਪਰੋਸੈਸ (%s) ਤੋਂ ਡਾਟਾ ਖੋਲ੍ਹਣ ਲਈ select() ਵਿੱਚ ਅਚਾਨਕ ਗਲਤੀ"
+#| msgid "Unexpected error in select() reading data from a child process (%s)"
+msgid "Unexpected error in reading data from a child process (%s)"
+msgstr "ਚਾਈਲਡ ਪਰੋਸੈਸ (%s) ਤੋਂ ਡਾਟਾ ਖੋਲ੍ਹਣ ਲਈ ਵਿੱਚ ਅਚਾਨਕ ਗਲਤੀ"
-#: glib/gspawn.c:548
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "waitpid() (%s) ਵਿੱਚ ਅਚਾਨਕ ਗਲਤੀ"
-#: glib/gspawn.c:1056 glib/gspawn-win32.c:1329
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "ਚਲਾਈਡ ਪਰੋਸੈਸ %ld ਕੋਡ ਨਾਲ ਬੰਦ ਹੋਇਆ"
-#: glib/gspawn.c:1064
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "ਚਲਾਈਡ ਪਰੋਸੈਸ %ld ਸਿਗਨਲ ਰਾਹੀਂ ਖਤਮ ਕੀਤਾ"
-#: glib/gspawn.c:1071
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "ਚਲਾਈਡ ਪਰੋਸੈਸ %ld ਸਿਗਨਲ ਰਾਹੀਂ ਰੋਕਿਆ ਗਿਆ"
-#: glib/gspawn.c:1078
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "ਚਲਾਈਡ ਪਰੋਸੈਸ ਅਸਧਾਰਨ ਢੰਗ ਨਾਲ ਬੰਦ"
-#: glib/gspawn.c:1405 glib/gspawn-win32.c:350 glib/gspawn-win32.c:358
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "ਚਾਈਲਡ ਪਾਈਪ (%s) ਤੋਂ ਡਾਟਾ ਖੋਲ੍ਹਣ ਵਿੱਚ ਫੇਲ੍ਹ ਹੈ"
-#: glib/gspawn.c:1653
+#: glib/gspawn.c:2404
#, c-format
-#| msgid "Failed to fork child process (%s)"
msgid "Failed to spawn child process “%s” (%s)"
msgstr ""
-#: glib/gspawn.c:1692
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "ਫੋਰਕ (%s) ਲਈ ਫੇਲ੍ਹ"
-#: glib/gspawn.c:1841 glib/gspawn-win32.c:381
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
-#| msgid "Failed to change to directory '%s' (%s)"
msgid "Failed to change to directory “%s” (%s)"
msgstr "ਡਾਇਰੈਕਟਰੀ “%s” ਬਦਲਣ ਵਿੱਚ ਫੇਲ੍ਹ (%s)"
-#: glib/gspawn.c:1851
+#: glib/gspawn.c:2700
#, c-format
-#| msgid "Failed to execute child process \"%s\" (%s)"
msgid "Failed to execute child process “%s” (%s)"
msgstr "ਚਾਈਲਡ ਪਰੋਸੈਸ “%s” (%s) ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ"
-#: glib/gspawn.c:1861
-#, c-format
-msgid "Failed to redirect output or input of child process (%s)"
-msgstr "ਚਾਈਲਡ ਪਰੋਸੈਸ (%s) ਦੀ ਆਉਟਪੁੱਟ ਜਾਂ ਇੰਪੁੱਟ ਦੀ ਦਿਸ਼ਾ ਬਦਲਣ 'ਚ ਫੇਲ੍ਹ"
+#: glib/gspawn.c:2710
+#, fuzzy, c-format
+#| msgid "Failed to open file '%s': open() failed: %s"
+msgid "Failed to open file to remap file descriptor (%s)"
+msgstr "ਫਾਇਲ '%s': ਖੋਲ੍ਹਣ ਵਿੱਚ ਫੇਲ੍ਹ: fdopen() ਫੇਲ੍ਹ: %s"
+
+#: glib/gspawn.c:2718
+#, fuzzy, c-format
+#| msgid "Failed to redirect output or input of child process (%s)"
+msgid "Failed to duplicate file descriptor for child process (%s)"
+msgstr "ਚਾਈਲਡ ਪਰੋਸੈਸ (%s) ਦੀ ਆਉਟਪੁੱਟ ਜਾਂ ਇਪੁੱਟ ਦੀ ਦਿਸ਼ਾ ਬਦਲਣ 'ਚ ਫੇਲ੍ਹ"
-#: glib/gspawn.c:1870
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "ਚਾਈਲਡ ਪਰੋਸੈਸ (%s) ਫੋਰਕ ਕਰਨ ਲਈ ਫੇਲ੍ਹ"
-#: glib/gspawn.c:1878
+#: glib/gspawn.c:2735
+#, fuzzy, c-format
+#| msgid "Failed to read data from child process (%s)"
+msgid "Failed to close file descriptor for child process (%s)"
+msgstr "ਚਾਈਲਡ ਪਰੋਸੈਸ (%s) ਤੋਂ ਡਾਟਾ ਪੜ੍ਹਨ ਲਈ ਫੇਲ੍ਹ"
+
+#: glib/gspawn.c:2743
#, c-format
-#| msgid "Unknown error executing child process \"%s\""
msgid "Unknown error executing child process “%s”"
msgstr "ਚਾਈਲਡ ਪਰੋਸੈਸ “%s” ਚਾਲੂ ਕਰਨ ਵਿੱਚ ਅਣਜਾਣੀ ਗਲਤੀ"
-#: glib/gspawn.c:1902
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "ਚਾਈਲਡ pid ਪਾਇਪ (%s) ਤੋਂ ਚਾਹੀਦਾ ਡਾਟਾ ਪੜ੍ਹਨ ਲਈ ਫੇਲ੍ਹ"
-#: glib/gspawn-win32.c:294
+#: glib/gspawn-private.h:134
+#, fuzzy, c-format
+#| msgid "Invalid seek request"
+msgid "Invalid source FDs argument"
+msgstr "ਸੀਕ ਮੰਗ ਗਲਤ ਹੈ"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "ਚਾਈਲਡ ਪਰੋਸੈੱਸ ਤੋਂ ਡਾਟਾ ਪੜ੍ਹਨ ਲਈ ਫੇਲ੍ਹ"
-#: glib/gspawn-win32.c:311
-#, c-format
-msgid "Failed to create pipe for communicating with child process (%s)"
-msgstr "ਚਾਈਲਡ ਪਰੋਸੈਸ (%s) ਨਾਲ ਕਮਿਊਨੀਕੇਸ਼ਨ ਲਈ ਪਾਇਪ ਬਣਾਉਣ ਵਿੱਚ ਫੇਲ੍ਹ"
-
-#: glib/gspawn-win32.c:387 glib/gspawn-win32.c:392 glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "ਚਾਈਲਡ ਕਾਰਵਾਈ (%s) ਚਾਲੂ ਕਰਨ ਵਿੱਚ ਫੇਲ੍ਹ"
-#: glib/gspawn-win32.c:461
+#: glib/gspawn-win32.c:519
+#, fuzzy, c-format
+#| msgid "Failed to fork child process (%s)"
+msgid "Failed to dup() in child process (%s)"
+msgstr "ਚਾਈਲਡ ਪਰੋਸੈਸ (%s) ਫੋਰਕ ਕਰਨ ਲਈ ਫੇਲ੍ਹ"
+
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "ਗਲਤ ਪ੍ਰੋਗਰਾਮ ਨਾਂ: %s"
-#: glib/gspawn-win32.c:471 glib/gspawn-win32.c:725
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "%d ਉੱਤੇ ਮੁੱਲ ਵੈਕਟਰ ਵਿੱਚ ਗਲਤ ਲਾਈਨ: %s"
-#: glib/gspawn-win32.c:482 glib/gspawn-win32.c:740
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "ਇੰਵਾਇਰਨਮਿੰਟ ਵਿੱਚ ਗਲਤ ਲਾਈਨ: %s"
-#: glib/gspawn-win32.c:721
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "ਗਲਤ ਵਰਕਿੰਗ ਡਾਇਰੈਕਟਰੀ: %s"
-#: glib/gspawn-win32.c:783
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "ਮੱਦਦ ਪਰੋਗਰਾਮ (%s) ਸ਼ੁਰੂ ਕਰਨ 'ਚ ਫੇਲ੍ਹ"
-#: glib/gspawn-win32.c:1056
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6192,280 +6097,525 @@ msgstr ""
"ਇੱਕ ਚਾਈਲਡ ਪਰੋਸੈਸ ਤੋਂ ਡਾਟਾ ਪੜ੍ਹਨ ਦੌਰਾਨ g_io_channel_win32_poll() ਵਿੱਚ ਅਚਾਨਕ"
" ਗਲਤੀ"
-#: glib/gstrfuncs.c:3301 glib/gstrfuncs.c:3403
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr ""
-#: glib/gstrfuncs.c:3325
-#, fuzzy, c-format
+#: glib/gstrfuncs.c:3397
+#, c-format
#| msgid "'%s' is not a valid name"
msgid "“%s” is not a signed number"
-msgstr "'%s' ਢੁੱਕਵਾਂ ਨਾਂ ਨਹੀਂ"
+msgstr "“%s“ ਸਾਈਨ ਨੰਬਰ ਨਹੀਂ ਹੈ"
-#: glib/gstrfuncs.c:3335 glib/gstrfuncs.c:3439
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr ""
-#: glib/gstrfuncs.c:3429
-#, fuzzy, c-format
+#: glib/gstrfuncs.c:3501
+#, c-format
#| msgid "'%s' is not a valid name"
msgid "“%s” is not an unsigned number"
-msgstr "'%s' ਢੁੱਕਵਾਂ ਨਾਂ ਨਹੀਂ"
+msgstr "“%s“ ਅਣ-ਸਾਈਨ ਨੰਬਰ ਨਹੀਂ ਹੈ"
-#: glib/gutf8.c:811
+#: glib/guri.c:318
+#, fuzzy, no-c-format
+#| msgid " (invalid encoding)"
+msgid "Invalid %-encoding in URI"
+msgstr "(ਗਲਤ ਇੰਕੋਡਿੰਗ)"
+
+#: glib/guri.c:335
+msgid "Illegal character in URI"
+msgstr ""
+
+#: glib/guri.c:369
+msgid "Non-UTF-8 characters in URI"
+msgstr ""
+
+#: glib/guri.c:549
+#, c-format
+msgid "Invalid IPv6 address ‘%.*s’ in URI"
+msgstr ""
+
+#: glib/guri.c:604
+#, c-format
+msgid "Illegal encoded IP address ‘%.*s’ in URI"
+msgstr ""
+
+#: glib/guri.c:616
+#, c-format
+msgid "Illegal internationalized hostname ‘%.*s’ in URI"
+msgstr ""
+
+#: glib/guri.c:648 glib/guri.c:660
+#, fuzzy, c-format
+#| msgid "Could not parse “%s” as IP address mask"
+msgid "Could not parse port ‘%.*s’ in URI"
+msgstr "“%s” ਨੂੰ IP ਐਡਰੈਸ ਮਾਸਕ ਵਜੋਂ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"
+
+#: glib/guri.c:667
+#, fuzzy, c-format
+#| msgid "Double value '%s' for %s out of range"
+msgid "Port ‘%.*s’ in URI is out of range"
+msgstr "%2$s ਲਈ '%1$s' ਡਬਲ ਮੁੱਲ ਰੇਜ਼ ਤੋਂ ਬਾਹਰ ਹੈ"
+
+#: glib/guri.c:1230 glib/guri.c:1294
+#, fuzzy, c-format
+#| msgid "The pathname '%s' is not an absolute path"
+msgid "URI ‘%s’ is not an absolute URI"
+msgstr "ਮਾਰਗ-ਨਾਂ %s ਇਕ ਅਸਲੀ (absolute) ਮਾਰਗ ਨਹੀਂ ਹੈ"
+
+#: glib/guri.c:1236
+#, c-format
+msgid "URI ‘%s’ has no host component"
+msgstr "URI ‘%s’ ਵਿੱਚ ਕੋਈ ਹੋਸਟ ਭਾਗ ਨਹੀਂ ਹੈ"
+
+#: glib/guri.c:1466
+msgid "URI is not absolute, and no base URI was provided"
+msgstr ""
+
+#: glib/guri.c:2252
+msgid "Missing ‘=’ and parameter value"
+msgstr ""
+
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "ਮੈਮੋਰੀ ਜਾਰੀ ਕਰਨ ਲਈ ਫੇਲ੍ਹ"
-#: glib/gutf8.c:944
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "UTF-8 ਲਈ ਅੱਖਰ ਰੇਜ਼ ਤੋਂ ਬਾਹਰ"
-#: glib/gutf8.c:1045 glib/gutf8.c:1054 glib/gutf8.c:1184 glib/gutf8.c:1193
-#: glib/gutf8.c:1332 glib/gutf8.c:1429
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "ਬਦਲਾਉ ਇੰਪੁੱਟ ਵਿੱਚ ਤਰਤੀਬ ਜਾਇਜ਼ ਨਹੀਂ ਹੈ"
-#: glib/gutf8.c:1343 glib/gutf8.c:1440
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "UTF-੧੬ ਲਈ ਅੱਖਰ ਰੇਜ਼ ਤੋਂ ਬਾਹਰ"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2326
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
+#: glib/gutils.c:2966
+msgid "kB"
+msgstr "kB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
+#: glib/gutils.c:2968
+msgid "MB"
+msgstr "MB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
+#: glib/gutils.c:2970
+msgid "GB"
+msgstr "GB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
+#: glib/gutils.c:2972
+msgid "TB"
+msgstr "TB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
+#: glib/gutils.c:2974
+msgid "PB"
+msgstr "PB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
+#: glib/gutils.c:2976
+msgid "EB"
+msgstr "EB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
+#: glib/gutils.c:2980
+msgid "KiB"
+msgstr "KiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
+#: glib/gutils.c:2982
+msgid "MiB"
+msgstr "MiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
+#: glib/gutils.c:2984
+msgid "GiB"
+msgstr "GiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
+#: glib/gutils.c:2986
+msgid "TiB"
+msgstr "TiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
+#: glib/gutils.c:2988
+msgid "PiB"
+msgstr "PiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
+#: glib/gutils.c:2990
+msgid "EiB"
+msgstr "EiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
+#: glib/gutils.c:2994
+msgid "kb"
+msgstr "kb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
+#: glib/gutils.c:2996
+msgid "Mb"
+msgstr "Mb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
+#: glib/gutils.c:2998
+msgid "Gb"
+msgstr "Gb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
+#: glib/gutils.c:3000
+msgid "Tb"
+msgstr "Tb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
+#: glib/gutils.c:3002
+msgid "Pb"
+msgstr "Pb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
+#: glib/gutils.c:3004
+msgid "Eb"
+msgstr "Eb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
+#: glib/gutils.c:3008
+msgid "Kib"
+msgstr "Kib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
+#: glib/gutils.c:3010
+msgid "Mib"
+msgstr "Mib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
+#: glib/gutils.c:3012
+msgid "Gib"
+msgstr "Gib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
+#: glib/gutils.c:3014
+msgid "Tib"
+msgstr "Tib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
+#: glib/gutils.c:3016
+msgid "Pib"
+msgstr "Pib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
+#: glib/gutils.c:3018
+msgid "Eib"
+msgstr "Eib"
+
+#: glib/gutils.c:3056
+#| msgid "%u byte"
+#| msgid_plural "%u bytes"
+msgid "byte"
+msgid_plural "bytes"
+msgstr[0] "ਬਾਈਟ"
+msgstr[1] "ਬਾਈਟ"
+
+#: glib/gutils.c:3060
+#| msgid "%u bit"
+#| msgid_plural "%u bits"
+msgid "bit"
+msgid_plural "bits"
+msgstr[0] "ਬਿੱਟ"
+msgstr[1] "ਬਿੱਟ"
+
+#. Translators: The "%u" is replaced with the size value, like "13"; it could
+#. * be part of "13 bytes", but only the number is requested this time.
+#: glib/gutils.c:3068
+#, c-format
+msgctxt "format-size"
+msgid "%u"
+msgstr "%u"
+
+#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
+#: glib/gutils.c:3073
+#, c-format
+msgctxt "format-size"
+msgid "%u %s"
+msgstr "%u %s"
+
+#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
+#. * be part of "13.0 MB", but only the number is requested this time.
+#: glib/gutils.c:3109
+#, c-format
+#| msgid "%.1f KB"
+msgctxt "format-size"
+msgid "%.1f"
+msgstr "%.1f"
+
+#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
+#. * the unit symbol. An example: "13.0 MB"
+#: glib/gutils.c:3115
+#, c-format
+#| msgid "%.1f kB"
+msgctxt "format-size"
+msgid "%.1f %s"
+msgstr "%.1f %s"
+
+#. Translators: the %s in "%s bytes" will always be replaced by a number.
+#: glib/gutils.c:3155
#, c-format
-#| msgid "%.1f kB"
-msgid "%.1f kB"
-msgstr "%.1f kB"
+msgid "%s byte"
+msgid_plural "%s bytes"
+msgstr[0] "%s ਬਾਈਟ"
+msgstr[1] "%s ਬਾਈਟ"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2328
+#. Translators: the %s in "%s bits" will always be replaced by a number.
+#: glib/gutils.c:3160
#, c-format
-#| msgid "%.1f MB"
-msgid "%.1f MB"
-msgstr "%.1f MB"
+msgid "%s bit"
+msgid_plural "%s bits"
+msgstr[0] "%s ਬਿੱਟ"
+msgstr[1] "%s ਬਿੱਟ"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2330
+#: glib/gutils.c:3201
#, c-format
-#| msgid "%.1f GB"
-msgid "%.1f GB"
-msgstr "%.1f GB"
+msgid "%u byte"
+msgid_plural "%u bytes"
+msgstr[0] "%u ਬਾਈਟ"
+msgstr[1] "%u ਬਾਈਟ"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2332
+#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
+#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
+#. * compatibility. Users will not see this string unless a program is using this deprecated function.
+#. * Please translate as literally as possible.
+#.
+#: glib/gutils.c:3214
#, c-format
-#| msgid "%.1f TB"
-msgid "%.1f TB"
-msgstr "%.1f TB"
+msgid "%.1f KB"
+msgstr "%.1f KB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2334
+#: glib/gutils.c:3219
#, c-format
-#| msgid "%.1f PB"
-msgid "%.1f PB"
-msgstr "%.1f PB"
+msgid "%.1f MB"
+msgstr "%.1f MB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2336
+#: glib/gutils.c:3224
#, c-format
-#| msgid "%.1f EB"
-msgid "%.1f EB"
-msgstr "%.1f EB"
+msgid "%.1f GB"
+msgstr "%.1f GB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2340
+#: glib/gutils.c:3229
#, c-format
-#| msgid "%.1f KiB"
-msgid "%.1f KiB"
-msgstr "%.1f KiB"
+msgid "%.1f TB"
+msgstr "%.1f TB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2342
+#: glib/gutils.c:3234
#, c-format
-#| msgid "%.1f MiB"
-msgid "%.1f MiB"
-msgstr "%.1f MiB"
+msgid "%.1f PB"
+msgstr "%.1f PB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2344
+#: glib/gutils.c:3239
#, c-format
-#| msgid "%.1f GiB"
-msgid "%.1f GiB"
-msgstr "%.1f GiB"
+msgid "%.1f EB"
+msgstr "%.1f EB"
+
+#~ msgid "GApplication options"
+#~ msgstr "ਜੀ-ਐਪਲੀਕੇਸ਼ਨ ਚੋਣ"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2346
#, c-format
-#| msgid "%.1f TiB"
-msgid "%.1f TiB"
-msgstr "%.1f TiB"
+#~| msgid "Error in address '%s' - the family attribute is malformed"
+#~ msgid "Error in address “%s” — the family attribute is malformed"
+#~ msgstr "ਐਡਰੈੱਸ “%s“ ਵਿੱਚ ਗਲਤੀ - ਫੈਮਲੀ ਗੁਣ ਖ਼ਰਾਬ ਹੈ"
+
+#~ msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
+#~ msgstr "/var/lib/dbus/machine-id ਜਾਂ /etc/machine-id ਲੋਡ ਕਰਨ ਲਈ ਅਸਮਰੱਥ: "
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2348
#, c-format
-#| msgid "%.1f PiB"
-msgid "%.1f PiB"
-msgstr "%.1f PiB"
+#~ msgid "Mounted %s at %s\n"
+#~ msgstr "%s %s ਉੱਤੇ ਮਾਊਂਟ ਹੈ\n"
+
+#~ msgid "Unknown error on connect"
+#~ msgstr "ਕੁਨੈਕਟ ਉੱਤੇ ਅਣਜਾਣ ਗਲਤੀ"
+
+#, fuzzy, c-format
+#~| msgid "The local file URI '%s' may not include a '#'"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "ਲੋਕਲ ਫਾਇਲ URI %s ਵਿੱਚ ਇਹ ਨਿਸ਼ਾਨ # ਨਹੀਂ ਹੈ"
+
+#~ msgid "internal error or corrupted object"
+#~ msgstr "ਅੰਦਰੂਨੀ ਗਲਤੀ ਜਾਂ ਨਿਕਾਰਾ ਆਬਜੈਕਟ"
+
+#~ msgid "backtracking limit reached"
+#~ msgstr "ਬੈਕ-ਟਰੈਕਿੰਗ ਲਿਸਟ ਆ ਗਈ"
+
+#~ msgid "invalid combination of newline flags"
+#~ msgstr "ਗਲਤ ਨਵੀਂ ਲਾਈਨ ਫਲੈਗ ਦਾ ਸੰਯੋਗ"
+
+#~ msgid "short utf8"
+#~ msgstr "ਛੋਟਾ utf8"
+
+#~ msgid "unexpected repeat"
+#~ msgstr "ਅਣਜਾਣ ਰਪੀਟ"
+
+#~ msgid "failed to get memory"
+#~ msgstr "ਮੈਮੋਰੀ ਲੈਣ ਲਈ ਫੇਲ੍ਹ"
+
+#~ msgid ") without opening ("
+#~ msgstr ") ਬਿਨਾਂ ( ਖੋਲ੍ਹਣ ਦੇ ਹੈ"
+
+#~ msgid "unrecognized character after (?<"
+#~ msgstr "(?< ਬਾਅਦ ਬੇਪਛਾਣ ਕਰੈਕਟਰ"
+
+#~ msgid "(?R or (?[+-]digits must be followed by )"
+#~ msgstr "(?R ਜਾਂ (?[+-]ਡਿਜ਼ਟ ਦੇ ਬਾਅਦ ) ਹੋਣਾ ਚਾਹੀਦੀ ਹੈ"
+
+#~ msgid "invalid condition (?(0)"
+#~ msgstr "ਗਲਤ ਕੰਡੀਸ਼ਨ (?(0)"
+
+#~ msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
+#~ msgstr "ਇਸਕੇਪ \\L, \\l, \\N{name}, \\U, ਅਤੇ \\u ਸਹਾਇਕ ਨਹੀਂ"
+
+#~ msgid "recursive call could loop indefinitely"
+#~ msgstr "ਲਗਾਤਾਰ ਕਾਲ ਨਾਲ ਬੇਅੰਤ ਲੂਪ ਚਾਲੂ ਹੋ ਸਕਦਾ ਸੀ"
+
+#~ msgid "digit expected after (?+"
+#~ msgstr "(?+ ਦੇ ਬਾਅਦ ਅੰਕ ਲੋੜੀਦਾ ਸੀ"
+
+#~ msgid "] is an invalid data character in JavaScript compatibility mode"
+#~ msgstr "ਜਾਵਾਸਕ੍ਰਿਪਟ ਮੋਡ ਵਿੱਚ ] ਗਲਤ ਡਾਟਾ ਅੱਖਰ ਹੈ"
+
+#~ msgid "too many forward references"
+#~ msgstr "ਬਹੁਤ ਸਾਰੇ ਅੱਗੇ ਰੈਫਰੈਂਸ"
+
+#~ msgid "character value in \\u.... sequence is too large"
+#~ msgstr "\\u... ਵਿੱਚ ਅੱਖਰ ਮੁੱਖ, ਲੜੀ ਬਹੁਤ ਲੰਮੀ ਹੈ"
+
+#~ msgid "PCRE library is compiled without UTF8 properties support"
+#~ msgstr "PCRE ਲਾਇਬਰੇਰੀ ਨੂੰ UTF8 ਵਿਸ਼ੇਸ਼ਤਾ ਮੱਦਦ ਬਗੈਰ ਕੰਪਾਇਲ ਕੀਤਾ ਗਿਆ ਹੈ।"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2350
#, c-format
-#| msgid "%.1f EiB"
-msgid "%.1f EiB"
-msgstr "%.1f EiB"
+#~ msgid "Error while optimizing regular expression %s: %s"
+#~ msgstr "%s ਰੈਗੂਲਰ ਐਕਸਪਰੈਸ਼ਨ ਅਨੁਕੂਲ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2354
#, c-format
-#| msgid "%.1f kB"
-msgid "%.1f kb"
-msgstr "%.1f kb"
+#~| msgid "%.1f MB"
+#~ msgid "%.1f MB"
+#~ msgstr "%.1f MB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2356
#, c-format
-#| msgid "%.1f MB"
-msgid "%.1f Mb"
-msgstr "%.1f Mb"
+#~| msgid "%.1f GB"
+#~ msgid "%.1f GB"
+#~ msgstr "%.1f GB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2358
#, c-format
-#| msgid "%.1f GB"
-msgid "%.1f Gb"
-msgstr "%.1f Gb"
+#~| msgid "%.1f TB"
+#~ msgid "%.1f TB"
+#~ msgstr "%.1f TB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2360
#, c-format
-#| msgid "%.1f TB"
-msgid "%.1f Tb"
-msgstr "%.1f Tb"
+#~| msgid "%.1f PB"
+#~ msgid "%.1f PB"
+#~ msgstr "%.1f PB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2362
#, c-format
-#| msgid "%.1f PB"
-msgid "%.1f Pb"
-msgstr "%.1f Pb"
+#~| msgid "%.1f EB"
+#~ msgid "%.1f EB"
+#~ msgstr "%.1f EB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2364
#, c-format
-#| msgid "%.1f EB"
-msgid "%.1f Eb"
-msgstr "%.1f Eb"
+#~| msgid "%.1f KiB"
+#~ msgid "%.1f KiB"
+#~ msgstr "%.1f KiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2368
#, c-format
-#| msgid "%.1f KiB"
-msgid "%.1f Kib"
-msgstr "%.1f Kib"
+#~| msgid "%.1f MiB"
+#~ msgid "%.1f MiB"
+#~ msgstr "%.1f MiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2370
#, c-format
-#| msgid "%.1f MiB"
-msgid "%.1f Mib"
-msgstr "%.1f Mib"
+#~| msgid "%.1f GiB"
+#~ msgid "%.1f GiB"
+#~ msgstr "%.1f GiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2372
#, c-format
-#| msgid "%.1f GiB"
-msgid "%.1f Gib"
-msgstr "%.1f Gib"
+#~| msgid "%.1f TiB"
+#~ msgid "%.1f TiB"
+#~ msgstr "%.1f TiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2374
#, c-format
-#| msgid "%.1f TiB"
-msgid "%.1f Tib"
-msgstr "%.1f Tib"
+#~| msgid "%.1f PiB"
+#~ msgid "%.1f PiB"
+#~ msgstr "%.1f PiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2376
#, c-format
-#| msgid "%.1f PiB"
-msgid "%.1f Pib"
-msgstr "%.1f Pib"
+#~| msgid "%.1f EiB"
+#~ msgid "%.1f EiB"
+#~ msgstr "%.1f EiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2378
#, c-format
-#| msgid "%.1f EiB"
-msgid "%.1f Eib"
-msgstr "%.1f Eib"
+#~| msgid "%.1f kB"
+#~ msgid "%.1f kb"
+#~ msgstr "%.1f kb"
-#: glib/gutils.c:2412 glib/gutils.c:2529
#, c-format
-msgid "%u byte"
-msgid_plural "%u bytes"
-msgstr[0] "%u ਬਾਈਟ"
-msgstr[1] "%u ਬਾਈਟ"
+#~| msgid "%.1f MB"
+#~ msgid "%.1f Mb"
+#~ msgstr "%.1f Mb"
-#: glib/gutils.c:2416
#, c-format
-#| msgid "%u byte"
-#| msgid_plural "%u bytes"
-msgid "%u bit"
-msgid_plural "%u bits"
-msgstr[0] "%u ਬਿੱਟ"
-msgstr[1] "%u ਬਿੱਟ"
+#~| msgid "%.1f GB"
+#~ msgid "%.1f Gb"
+#~ msgstr "%.1f Gb"
-#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:2483
#, c-format
-msgid "%s byte"
-msgid_plural "%s bytes"
-msgstr[0] "%s ਬਾਈਟ"
-msgstr[1] "%s ਬਾਈਟ"
+#~| msgid "%.1f TB"
+#~ msgid "%.1f Tb"
+#~ msgstr "%.1f Tb"
-#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:2488
#, c-format
-#| msgid "%s byte"
-#| msgid_plural "%s bytes"
-msgid "%s bit"
-msgid_plural "%s bits"
-msgstr[0] "%s ਬਿੱਟ"
-msgstr[1] "%s ਬਿੱਟ"
+#~| msgid "%.1f PB"
+#~ msgid "%.1f Pb"
+#~ msgstr "%.1f Pb"
-#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
-#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
-#. * compatibility. Users will not see this string unless a program is using this deprecated function.
-#. * Please translate as literally as possible.
-#.
-#: glib/gutils.c:2542
#, c-format
-msgid "%.1f KB"
-msgstr "%.1f KB"
+#~| msgid "%.1f EB"
+#~ msgid "%.1f Eb"
+#~ msgstr "%.1f Eb"
-#: glib/gutils.c:2547
#, c-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
+#~| msgid "%.1f KiB"
+#~ msgid "%.1f Kib"
+#~ msgstr "%.1f Kib"
-#: glib/gutils.c:2552
#, c-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
+#~| msgid "%.1f MiB"
+#~ msgid "%.1f Mib"
+#~ msgstr "%.1f Mib"
-#: glib/gutils.c:2557
#, c-format
-msgid "%.1f TB"
-msgstr "%.1f TB"
+#~| msgid "%.1f GiB"
+#~ msgid "%.1f Gib"
+#~ msgstr "%.1f Gib"
-#: glib/gutils.c:2562
#, c-format
-msgid "%.1f PB"
-msgstr "%.1f PB"
+#~| msgid "%.1f TiB"
+#~ msgid "%.1f Tib"
+#~ msgstr "%.1f Tib"
-#: glib/gutils.c:2567
#, c-format
-msgid "%.1f EB"
-msgstr "%.1f EB"
+#~| msgid "%.1f PiB"
+#~ msgid "%.1f Pib"
+#~ msgstr "%.1f Pib"
+
+#, c-format
+#~| msgid "%.1f EiB"
+#~ msgid "%.1f Eib"
+#~ msgstr "%.1f Eib"
#~ msgid "No such interface"
#~ msgstr "ਕੋਈ ਇੰਟਰਫੇਸ ਨਹੀਂ"
@@ -6505,9 +6655,6 @@ msgstr "%.1f EB"
#~ msgid "Error creating directory: %s"
#~ msgstr "ਡਾਇਰੈਕਟਰੀ ਬਣਾਉਣ ਦੌਰਾਨ ਗਲਤੀ: %s"
-#~ msgid "Error launching application: %s"
-#~ msgstr "ਐਪਲੀਕੇਸ਼ਨ ਲਾਂਚ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ: %s"
-
#~ msgid "association changes not supported on win32"
#~ msgstr "ਸਬੰਧ ਬਦਲਣਾ win32 ਲਈ ਸਹਾਇਕ ਨਹੀਂ ਹੈ"
@@ -6517,9 +6664,6 @@ msgstr "%.1f EB"
#~ msgid "Error reading file '%s': %s"
#~ msgstr "'%s' ਫਾਇਲ ਪੜ੍ਹਨ 'ਚ ਗਲਤੀ: %s"
-#~ msgid "URIs not supported"
-#~ msgstr "URI ਸਹਿਯੋਗੀ ਨਹੀਂ"
-
#~ msgid "Key file does not have key '%s'"
#~ msgstr "ਕੁੰਜੀ ਫਾਇਲ ਵਿੱਚ '%s' ਕੁੰਜੀ ਨਹੀਂ ਹੈ"
diff --git a/po/pl.po b/po/pl.po
index 05b783250..06a1134bb 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,20 +1,20 @@
# Polish translation for glib.
-# Copyright © 2002-2022 the glib authors.
+# Copyright © 2002-2023 the glib authors.
# This file is distributed under the same license as the glib package.
# Zbigniew Chyla <chyla@alice.ci.pwr.wroc.pl>, 2002-2003.
# Artur Flinta <aflinta@at.kernel.pl>, 2003-2006.
# Tomasz Kłoczko <kloczek@rudy.mif.pg.gda.pl>, 2005.
# Wadim Dziedzic <wdziedzic@aviary.pl>, 2007-2009.
# Tomasz Dominikowski <dominikowski@gmail.com>, 2008-2009.
-# Piotr Drąg <piotrdrag@gmail.com>, 2009-2022.
-# Aviary.pl <community-poland@mozilla.org>, 2007-2022.
+# Piotr Drąg <piotrdrag@gmail.com>, 2009-2023.
+# Aviary.pl <community-poland@mozilla.org>, 2007-2023.
#
msgid ""
msgstr ""
"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-05 19:22+0000\n"
-"PO-Revision-Date: 2022-08-21 14:45+0200\n"
+"POT-Creation-Date: 2023-08-31 20:16+0000\n"
+"PO-Revision-Date: 2023-09-02 15:38+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <community-poland@mozilla.org>\n"
"Language: pl\n"
@@ -24,45 +24,45 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Ustawianie domyślnych programów nie jest jeszcze obsługiwane"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Ustawianie programu jako ostatnio używanego dla danego typu nie jest jeszcze "
"obsługiwane"
-#: gio/gappinfo.c:808
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr ""
"Odnalezienie domyślnego programu dla typu zawartości „%s” się nie powiodło"
-#: gio/gappinfo.c:868
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr ""
"Odnalezienie domyślnego programu dla schematu URI „%s” się nie powiodło"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "Opcje GApplication"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "Opcje GApplication:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Wyświetla opcje GApplication"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr "Przechodzi do trybu usługi GApplication (używane z plików usług D-Bus)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Zastępuje identyfikator programu"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Zastępuje działające wystąpienie"
@@ -145,7 +145,7 @@ msgstr ""
"przeglądarka)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "PLIK"
@@ -243,11 +243,11 @@ msgstr "nie można połączyć z usługą D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "błąd podczas wysyłania komunikatu %s do programu: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "nazwa działania musi zostać podana po identyfikatorze programu\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -256,25 +256,25 @@ msgstr ""
"nieprawidłowa nazwa działania: „%s”\n"
"nazwy działań mogą składać się tylko ze znaków alfanumerycznych, „-” i „.”\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "błąd podczas przetwarzania parametru działania: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "działania przyjmują maksymalnie jeden parametr\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "polecenie „list-actions” przyjmuje tylko identyfikator programu"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "nie można odnaleźć pliku .desktop dla programu %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -284,9 +284,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Za duża wartość licznika przekazana do %s"
@@ -300,8 +300,8 @@ msgstr "Szukanie nie jest obsługiwane przez podstawowy potok"
msgid "Cannot truncate GBufferedInputStream"
msgstr "Nie można skrócić GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Potok jest już zamknięty"
@@ -309,7 +309,7 @@ msgstr "Potok jest już zamknięty"
msgid "Truncate not supported on base stream"
msgstr "Skracanie nie jest dozwolone na podstawowym potoku"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -328,28 +328,28 @@ msgid "Not enough space in destination"
msgstr "Brak wystarczającej ilości miejsca w miejscu docelowym"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Nieprawidłowa sekwencja bajtów na wejściu konwersji"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Błąd podczas konwersji: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Zainicjowanie, które można anulować nie jest obsługiwane"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Konwersja z zestawu znaków „%s” na zestaw „%s” nie jest obsługiwana"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Nie można otworzyć konwertera z „%s” na „%s”"
@@ -395,17 +395,17 @@ msgstr ""
msgid "Unexpected early end-of-stream"
msgstr "Nieoczekiwany, przedwczesny koniec potoku"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Nieobsługiwany klucz „%s” we wpisie adresu „%s”"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Para klucz/wartość we wpisie adresu „%s” nie ma znaczenia"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -414,7 +414,7 @@ msgstr ""
"Adres „%s” jest nieprawidłowy (wymaga dokładnie jednej ścieżki, katalogu, "
"katalogu tymczasowego lub kluczy abstrakcyjnych)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -548,7 +548,7 @@ msgstr ""
"Nie można ustalić adresu magistrali sesji (nie jest zaimplementowane dla "
"tego systemu operacyjnego)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -557,7 +557,7 @@ msgstr ""
"Nie można ustalić adresu magistrali ze zmiennej środowiskowej "
"DBUS_STARTER_BUS_TYPE — nieznana wartość „%s”"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -565,7 +565,7 @@ msgstr ""
"Nie można ustalić adresu magistrali, ponieważ nie ustawiono zmiennej "
"środowiskowej DBUS_STARTER_BUS_TYPE"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Nieznany typ magistrali %d"
@@ -587,20 +587,24 @@ msgstr ""
"Wyczerpano wszystkie dostępne mechanizmy uwierzytelniania (próby: %s, "
"dostępne: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Oczekiwano braku zawartości podczas próby odczytania bajtu"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Identyfikatory użytkownika muszą być takie same dla partnera i serwera"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Anulowano przez GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Błąd podczas pobierania informacji o katalogu „%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -608,33 +612,33 @@ msgstr ""
"Uprawnienia katalogu „%s” są błędnie sformatowane. Oczekiwano trybu 0700, "
"otrzymano 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Błąd podczas tworzenia katalogu „%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Działanie nie jest obsługiwane"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Błąd podczas otwierania bazy kluczy „%s” do odczytania: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
"%d. wiersz bazy kluczy w „%s” z zawartością „%s” jest błędnie sformatowany"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -642,7 +646,7 @@ msgstr ""
"Pierwszy token %d. wiersza bazy kluczy w „%s” z zawartością „%s” jest "
"błędnie sformatowany"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -650,161 +654,171 @@ msgstr ""
"Drugi token %d. wiersza bazy kluczy w „%s” z zawartością „%s” jest błędnie "
"sformatowany"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Nie odnaleziono ciasteczka z identyfikatorem %d w bazie kluczy w „%s”"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Błąd podczas tworzenia pliku blokady „%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Błąd podczas usuwania starego pliku blokady „%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Błąd podczas zamykania (niedowiązanego) pliku blokady „%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Błąd podczas odwiązywania pliku blokady „%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Błąd podczas otwierania bazy kluczy „%s” do zapisania: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Dodatkowo, uwolnienie blokady „%s” także się nie powiodło: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "Połączenie jest zamknięte"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Przekroczono czas oczekiwania"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Wystąpiły nieobsługiwane flagi podczas tworzenia połączenia ze strony klienta"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"Brak interfejsu „org.freedesktop.DBus.Properties” w obiekcie w ścieżce %s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Brak właściwości „%s”"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Właściwość „%s” nie jest odczytywalna"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Właściwość „%s” nie jest zapisywalna"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Błąd podczas ustawiania właściwości „%s”: oczekiwano typ „%s”, ale otrzymano "
"„%s”"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Brak interfejsu „%s”"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Brak interfejsu „%s” w obiekcie w ścieżce %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Brak metody „%s”"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Typ komunikatu, „%s”, nie pasuje do oczekiwanego typu „%s”"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Obiekt został już wyeksportowany dla interfejsu %s w %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Nie można pobrać właściwości %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Nie można ustawić właściwości %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Metoda „%s” zwróciła typ „%s”, ale oczekiwano „%s”"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Metoda „%s” w interfejsie „%s” z podpisem „%s” nie istnieje"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Poddrzewo zostało już wyeksportowane dla %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Obiekt nie istnieje w ścieżce „%s”"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "typ jest NIEPRAWIDŁOWY"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "Komunikat METHOD_CALL: brak pola nagłówka PATH lub MEMBER"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"Komunikat METHOD_CALL: brak pola nagłówka PATH lub MEMBER albo jest "
+"nieprawidłowe"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "Komunikat METHOD_RETURN: brak pola nagłówka REPLY_SERIAL"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"Komunikat METHOD_RETURN: brak pola nagłówka REPLY_SERIAL albo jest "
+"nieprawidłowe"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "Komunikat o BŁĘDZIE: brak pola nagłówka REPLY_SERIAL lub ERROR_NAME"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"Komunikat o BŁĘDZIE: brak pola nagłówka REPLY_SERIAL lub ERROR_NAME albo "
+"jest nieprawidłowe"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "Komunikat SYGNAŁU: brak pola nagłówka PATH, INTERFACE lub MEMBER"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"Komunikat SYGNAŁU: brak pola nagłówka PATH, INTERFACE lub MEMBER albo jest "
+"nieprawidłowe"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -812,7 +826,7 @@ msgstr ""
"Komunikat SYGNAŁU: pole nagłówka PATH używa zastrzeżonej wartości /org/"
"freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -820,7 +834,7 @@ msgstr ""
"Komunikat SYGNAŁU: pole nagłówka INTERFACE używa zastrzeżonej wartości org."
"freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
@@ -828,12 +842,12 @@ msgstr[0] "Chciano odczytać %lu bajt, ale otrzymano tylko %lu"
msgstr[1] "Chciano odczytać %lu bajty, ale otrzymano tylko %lu"
msgstr[2] "Chciano odczytać %lu bajtów, ale otrzymano tylko %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Oczekiwano bajtu NUL po ciągu „%s”, ale odnaleziono bajt %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -843,22 +857,22 @@ msgstr ""
"w wyrównaniu bajtu %d (długość ciągu wynosi %d). Prawidłowy ciąg UTF-8 do "
"tego miejsca to „%s”"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Wartość jest zagnieżdżona za głęboko"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr ""
"Przetworzona wartość „%s” nie jest prawidłową ścieżką do obiektu usługi D-Bus"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Przetworzona wartość „%s” nie jest prawidłowym podpisem usługi D-Bus"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -874,7 +888,7 @@ msgstr[2] ""
"Wystąpiła macierz o długości %u bajtów. Maksymalna długość to 2<<26 bajtów "
"(64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -883,18 +897,18 @@ msgstr ""
"Wystąpiła macierz typu „a%c”, której oczekiwana długość jest wielokrotnością "
"%u B, ale wynosi %u B"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Puste struktury (krotki) nie są dozwolone na magistrali D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr ""
"Przetworzona wartość „%s” dla wariantu nie jest prawidłowym podpisem usługi "
"D-Bus"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -902,7 +916,7 @@ msgstr ""
"Błąd podczas deserializowania GVariant za pomocą ciągu typu „%s” z formatu "
"przewodu usługi D-Bus"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -911,30 +925,30 @@ msgstr ""
"Nieprawidłowa wartość kolejności bajtów. Oczekiwano 0x6c („l”) lub 0x42 "
"(„B”), ale odnaleziono wartość 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr ""
"Nieprawidłowa główna wersja protokołu. Oczekiwano 1, ale odnaleziono %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Odnaleziono nagłówek podpisu, ale nie jest podpisem typu"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Odnaleziono nagłówek podpisu z podpisem „%s”, ale treść komunikatu jest pusta"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr ""
"Przetworzona wartość „%s” nie jest prawidłowym podpisem usługi D-Bus (dla "
"treści)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -945,11 +959,11 @@ msgstr[1] ""
msgstr[2] ""
"Brak nagłówka podpisu w komunikacie, ale treść komunikatu liczy %u bajtów"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Nie można deserializować komunikatu: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -957,23 +971,23 @@ msgstr ""
"Błąd podczas serializowania GVariant za pomocą ciągu typu „%s” z formatu "
"przewodu usługi D-Bus"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
"Liczba deskryptorów plików w komunikacie (%d) różni się od pola nagłówka (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Nie można serializować komunikatu: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "Treść komunikatu ma podpis „%s”, ale brak nagłówka podpisu"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -981,54 +995,54 @@ msgid ""
msgstr ""
"Treść komunikatu ma podpis typu „%s”, ale podpis w polu nagłówka to „%s”"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Treść komunikatu jest pusta, ale podpis w polu nagłówka to „(%s)”"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Błąd zwrotu z treścią typu „%s”"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Błąd zwrotu z pustą treścią"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Wpisanie dowolnego znaku zamknie to okno)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr ""
"Magistrala D-Bus sesji nie jest uruchomiona, i automatyczne uruchomienie się "
"nie powiodło"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Nie można pobrać profilu sprzętu: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Nie można wczytać pliku %s ani %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Błąd podczas wywoływania metody StartServiceByName dla %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Nieoczekiwana odpowiedź %d od metody StartServiceByName(\"%s\")"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1038,25 +1052,25 @@ msgstr ""
"właściciela, a pośrednik został utworzony za pomocą flagi "
"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Przestrzeń nazw abstrakcyjnych jest nieobsługiwana"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Nie można określić pliku nonce podczas tworzenia serwera"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Błąd podczas zapisywania pliku nonce w „%s”: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Ciąg „%s” nie jest prawidłowym GUID usługi D-Bus"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Nie można nasłuchiwać na nieobsługiwanym transporcie „%s”"
@@ -1084,14 +1098,14 @@ msgstr ""
"\n"
"Polecenie „%s POLECENIE --help” wyświetla pomoc o każdym poleceniu.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Błąd: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Błąd podczas przetwarzania kodu XML introspekcji: %s\n"
@@ -1101,49 +1115,49 @@ msgstr "Błąd podczas przetwarzania kodu XML introspekcji: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Błąd: %s nie jest prawidłową nazwą\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Błąd: %s nie jest prawidłową ścieżką do obiektu\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Łączy z magistralą systemową"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Łączy z magistralą sesji"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Łączy z podanym adresem usługi D-Bus"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Opcje punktów końcowych połączenia:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Opcje określające punkt końcowy połączenia"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Nie określono żadnych punktów końcowych połączenia"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Określono wiele punktów końcowych połączenia"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "Ostrzeżenie: według danych introspekcji, interfejs „%s” nie istnieje\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1152,165 +1166,165 @@ msgstr ""
"Ostrzeżenie: według danych introspekcji, metoda „%s” nie istnieje "
"w interfejsie „%s”\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Opcjonalny cel sygnału (unikalna nazwa)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Ścieżka do obiektu do wyemitowania sygnału"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Nazwa sygnału i interfejsu"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Emituje sygnał."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Błąd podczas łączenia: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Błąd: %s nie jest prawidłową unikalną nazwą magistrali.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Błąd: nie podano ścieżki do obiektu\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Błąd: nie podano nazwy sygnału\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Błąd: nazwa sygnału „%s” jest nieprawidłowa\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Błąd: %s nie jest prawidłową nazwą interfejsu\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Błąd: %s nie jest prawidłową nazwą elementu\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Błąd podczas przetwarzania parametru %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Błąd podczas czyszczenia połączenia: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Nazwa docelowa do wywołania na niej metody"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Ścieżka do obiektu do wywołania na niej metody"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Nazwa metody i interfejsu"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Czas oczekiwania w sekundach"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Zezwala na interaktywne upoważnienie"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Wywołuje metodę na zdalnym obiekcie."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Błąd: nie podano celu\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Błąd: %s nie jest prawidłową nazwą magistrali\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Błąd: nie podano nazwy metody\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Błąd: nazwa metody „%s” jest nieprawidłowa\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Błąd podczas przetwarzania parametru %d typu „%s”: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Błąd podczas dodawania pliku obsługi %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Nazwa docelowa do zbadania"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Ścieżka do obiektu do zbadania"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Wyświetla kod XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Bada elementy potomne"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Wyświetla tylko właściwości"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Bada zdalny obiekt."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Nazwa docelowa do monitorowania"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Ścieżka do obiektu do monitorowania"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Monitoruje zdalny obiekt."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr ""
"Błąd: nie można monitorować połączenia niebędącego magistralą komunikatów\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Usługa do aktywowania przed oczekiwaniem na drugą (znaną nazwę)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1318,69 +1332,74 @@ msgstr ""
"Czas oczekiwania przed zakończeniem z błędem (w sekundach), 0 oznacza brak "
"ograniczenia (domyślne)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPCJA…] NAZWA-MAGISTRALI"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Oczekuje na pojawienie się nazwy magistrali."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Błąd: należy podać usługę, dla której aktywować.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Błąd: należy podać usługę, na którą oczekiwać.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Błąd: za dużo parametrów.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Błąd: %s nie jest prawidłową znaną nazwą magistrali.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Brak upoważnienia do zmiany ustawień debugowania"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5113
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Bez nazwy"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Plik .desktop nie określa pola Exec"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Nie można odnaleźć terminala wymaganego przez program"
-#: gio/gdesktopappinfo.c:3631
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Nie odnaleziono programu „%s” w $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
"Nie można utworzyć katalogu użytkownika dla konfiguracji programu %s: %s"
-#: gio/gdesktopappinfo.c:3635
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Nie można utworzyć katalogu użytkownika dla konfiguracji MIME %s: %s"
-#: gio/gdesktopappinfo.c:3877 gio/gdesktopappinfo.c:3901
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Brak identyfikatora w informacjach o programie"
-#: gio/gdesktopappinfo.c:4137
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Nie można utworzyć pliku .desktop dla użytkownika %s"
-#: gio/gdesktopappinfo.c:4273
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Niestandardowa definicja dla %s"
@@ -1449,80 +1468,85 @@ msgstr "Oczekiwano obiektu GEmblem dla GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Nie istnieje zawierający punkt montowania"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Nie można skopiować na katalog"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Nie można skopiować katalogu na katalog"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Plik docelowy istnieje"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Nie można skopiować katalogu rekurencyjnie"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "Wywołanie „splice” nie jest obsługiwane"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Kopiowanie zakresu pliku nie jest obsługiwane"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Błąd podczas dzielenia pliku: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Wywołanie „splice” nie jest obsługiwane"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr ""
"Kopiowanie (reflink/clone) między punktami montowania nie jest obsługiwane"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Kopiowanie (reflink/clone) nie jest obsługiwane lub jest nieprawidłowe"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Kopiowanie (reflink/clone) nie jest obsługiwane lub nie zadziałało"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Nie można skopiować pliku specjalnego"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Wprowadzono nieprawidłową wartość dowiązania symbolicznego"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Dowiązania symboliczne nie są obsługiwane"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Kosz nie jest obsługiwany"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Nazwy plików nie mogą zawierać „%c”"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr ""
"Utworzenie katalogu tymczasowego dla szablonu „%s” się nie powiodło: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "wolumin nie obsługuje montowania"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Żaden program nie jest zarejestrowany do obsługi tego pliku"
@@ -1531,11 +1555,11 @@ msgid "Enumerator is closed"
msgstr "Enumerator jest zamknięty"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Enumerator plików ma zaległe działanie"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Enumerator plików jest już zamknięty"
@@ -1548,27 +1572,27 @@ msgstr "Nie można obsłużyć wersji %d kodowania GFileIcon"
msgid "Malformed input data for GFileIcon"
msgstr "Błędny format danych wejściowych dla GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Potok nie obsługuje działania query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Szukanie nie jest obsługiwane przez potok"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Skracanie nie jest dozwolone na potoku wejściowym"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Skracanie nie jest dozwolone na potoku"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Nieprawidłowa nazwa komputera"
@@ -1601,37 +1625,37 @@ msgstr "Odpowiedź pośrednika HTTP jest za duża"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "Serwer pośrednika HTTP nieoczekiwanie zamknął połączenie."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Błędna liczba elementów (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Brak typu dla nazwy klasy %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Typ %s nie obsługuje interfejsu GIcon"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Typ %s nie jest klasowy"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Błędny format numeru wersji: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Typ %s nie obsługuje metody from_tokens() z interfejsu GIcon"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Nie można obsłużyć podanej wersji kodowania ikony"
@@ -1672,7 +1696,7 @@ msgstr "Potok wejściowy nie obsługuje odczytu"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Potok ma zaległe działanie"
@@ -1779,12 +1803,12 @@ msgid "Error writing to stdout"
msgstr "Błąd podczas zapisywania do standardowego wyjścia"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "POŁOŻENIE"
@@ -1802,8 +1826,8 @@ msgstr ""
"GIO zamiast plików lokalnych: przykładowo można użyć czegoś takiego jak\n"
"smb://serwer/zasób/plik.txt jako położenia."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Nie podano położeń"
@@ -1899,57 +1923,64 @@ msgstr "Bez podążania za dowiązaniami symbolicznymi"
msgid "attributes:\n"
msgstr "atrybuty:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "wyświetlana nazwa: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "nazwa modyfikacji: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "nazwa: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "typ: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "rozmiar: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "ukryty\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "URI: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "lokalna ścieżka: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "punkt montowania systemu UNIX: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Atrybuty możliwe do ustawienia:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Przestrzeń nazw atrybutów możliwych do ustawienia:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Wyświetla informacje o położeniach."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2015,11 +2046,11 @@ msgstr "Wyświetla wyświetlane nazwy"
msgid "Print full URIs"
msgstr "Wyświetla pełne adresy URI"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Wyświetla listę zawartości położenia."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2220,19 +2251,19 @@ msgstr "Montuje ukryty wolumin TCRYPT"
msgid "Mount a TCRYPT system volume"
msgstr "Montuje systemowy wolumin TCRYPT"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Odmowa dostępu anonimowego"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Brak napędu dla pliku urządzenia"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Brak woluminu dla podanego identyfikatora"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Montuje lub odmontowuje położenia."
@@ -2434,11 +2465,11 @@ msgstr "Podane położenie nie zaczyna się od trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Podąża za dowiązaniami symbolicznymi, punktami montowania i skrótami"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Wyświetla listę zawartości katalogów w formacie drzewa."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Element <%s> nie jest dozwolony wewnątrz <%s>"
@@ -2496,7 +2527,7 @@ msgstr "Błąd podczas kompresowania pliku %s"
msgid "text may not appear inside <%s>"
msgstr "tekst nie może znajdować się wewnątrz <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Wyświetla wersję programu i kończy działanie"
@@ -2510,8 +2541,8 @@ msgid ""
"directory)"
msgstr "Katalog, z którego wczytywać PLIKI (domyślnie bieżący katalog)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "KATALOG"
@@ -2564,7 +2595,7 @@ msgstr "Nazwa identyfikatora języka C używana dla utworzonego kodu źródłowe
msgid "The target C compiler (default: the CC environment variable)"
msgstr "Docelowy kompilator języka C (domyślnie: zmienna środowiskowa CC)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2574,123 +2605,123 @@ msgstr ""
"zasobów mają rozszerzenie .gresource.xml, a pliki\n"
"zasobów mają rozszerzenie .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Należy podać dokładnie jedną nazwę pliku\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "pseudonim musi mieć co najmniej 2 znaki"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Nieprawidłowa wartość numeryczna"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> zostało już określone"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' zostało już określone"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "wartości flag mogą mieć ustawiony co najwyżej 1 bit"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> musi zawierać co najmniej jeden znacznik <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> nie jest zawarte w określonym zakresie"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> nie jest prawidłowym elementem określonego wyliczonego typu"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> zawiera ciąg spoza określonego typu flag"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> zawiera ciąg, którego nie ma w znaczniku <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> zostało już określone dla tego klucza"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> nie jest dozwolone dla kluczy typu „%s”"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "określony minimum <range> jest wyższy niż maksimum"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "nieobsługiwana kategoria lokalizacji: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "zażądano lokalizacji, ale nie podano domeny gettext"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "podano kontekst tłumaczenia dla wartości bez włączonej lokalizacji"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Przetworzenie wartości <default> typu „%s” się nie powiodło: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> nie może być określane dla kluczy oznaczonych jako mające "
"wyliczony typ"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> zostało już określone dla tego klucza"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> nie jest dozwolone dla kluczy typu „%s”"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> zostało już podane"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> musi zawierać co najmniej jeden znacznik <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> zostało już określone dla tego klucza"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2698,7 +2729,7 @@ msgstr ""
"<aliases> może być określane tylko dla kluczy z wyliczonym typem lub typem "
"flag, albo po znaczniku <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2706,41 +2737,41 @@ msgid ""
msgstr ""
"podano <alias value='%s'/>, kiedy „%s” jest już elementem wyliczonego typu"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr "podano <alias value='%s'/>, kiedy już podano <choice value='%s'/>"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> zostało już określone"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "cel aliasu „%s” nie jest w wyliczonym typie"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "cel aliasu „%s” nie jest w znaczniku <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> musi zawierać co najmniej jeden znacznik <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Puste nazwy nie są dozwolone"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Nieprawidłowa nazwa „%s”: nazwy muszą rozpoczynać się od małej litery"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2749,36 +2780,36 @@ msgstr ""
"Nieprawidłowa nazwa „%s”: niedozwolony znak „%c”. Dozwolone są tylko małe "
"litery, liczby i myślniki („-”)"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "Nieprawidłowa nazwa „%s”: dwa myślniki („--”) nie są dozwolone"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Nieprawidłowa nazwa „%s”: ostatni znak nie może być myślnikiem („-”)"
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Nieprawidłowa nazwa „%s”: maksymalna długość to 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> zostało już określone"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Nie można dodać kluczy do schematu „list-of”"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> zostało już określone"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2787,7 +2818,7 @@ msgstr ""
"<key name='%s'> pokrywa <key name='%s'> w <schema id='%s'>; należy użyć "
"znacznika <override>, aby zmodyfikować wartość"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2796,56 +2827,56 @@ msgstr ""
"Dokładnie jedna z wartości „type”, „enum” lub „flags” musi zostać określona "
"jako atrybut znacznika <key>"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> nie zostało (jeszcze) określone."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Nieprawidłowy typ GVariant ciągu „%s”"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "Podano znacznik <override>, ale schemat nic nie rozszerza"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Brak znacznika <key name='%s'> do zastąpienia"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> zostało już określone"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> zostało już określone"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> rozszerza jeszcze nieistniejący schemat „%s”"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> jest listą jeszcze nieistniejącego schematu „%s”"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Nie można być listą schematów ze ścieżkami"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Nie można rozszerzyć schematu ze ścieżką"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2853,7 +2884,7 @@ msgstr ""
"<schema id='%s'> jest listą rozszerzającą znacznik <schema id='%s'>, który "
"nie jest listą"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2862,18 +2893,18 @@ msgstr ""
"<schema id='%s' list-of='%s'> rozszerza znacznik <schema id='%s' list-"
"of='%s'>, ale „%s” nie rozszerza „%s”"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr ""
"Ścieżka, jeśli zostanie podana, musi rozpoczynać się i kończyć ukośnikiem"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Ścieżka do listy musi kończyć się „:/”"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2882,49 +2913,49 @@ msgstr ""
"Ostrzeżenie: schemat „%s” ma ścieżkę „%s”. Ścieżki zaczynające się od „/"
"apps/”, „/desktop/” i „/system/” są przestarzałe."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> zostało już określone"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Tylko jeden element <%s> jest dozwolony wewnątrz <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Element <%s> nie jest dozwolony jako główny element"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Element <default> jest wymagany w znaczniku <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Tekst nie może znajdować się wewnątrz <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Ostrzeżenie: nieokreślone odniesienie do znacznika <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "Podano opcję --strict; kończenie działania."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Cały plik został zignorowany."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Ignorowanie tego pliku."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2933,7 +2964,7 @@ msgstr ""
"Brak klucza „%s” w schemacie „%s”, jak określono w pliku zastąpienia „%s”; "
"ignorowanie zastąpienia dla tego klucza."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2942,7 +2973,7 @@ msgstr ""
"Brak klucza „%s” w schemacie „%s”, jak określono w pliku zastąpienia „%s”, "
"oraz podano opcję --strict; kończenie działania."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2952,7 +2983,7 @@ msgstr ""
"„%s” w schemacie „%s” (plik zastąpienia „%s”); ignorowanie zastąpienia dla "
"tego klucza."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2962,7 +2993,7 @@ msgstr ""
"„%s” w schemacie „%s” (plik zastąpienia „%s”) oraz podano opcję --strict; "
"kończenie działania."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2971,7 +3002,7 @@ msgstr ""
"Błąd podczas przetwarzania klucza „%s” w schemacie „%s”, jak określono "
"w pliku zastąpienia „%s”: %s. Ignorowanie zastąpienia dla tego klucza."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2980,7 +3011,7 @@ msgstr ""
"Błąd podczas przetwarzania klucza „%s” w schemacie „%s”, jak określono "
"w pliku zastąpienia „%s”: %s. Podano opcję --strict; kończenie działania."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2989,7 +3020,7 @@ msgstr ""
"Zastąpienie dla klucza „%s” w schemacie „%s” w pliku zastąpienia „%s” jest "
"poza zakresem podanym w schemacie; ignorowanie zastąpienia dla tego klucza."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2999,7 +3030,7 @@ msgstr ""
"poza zakresem podanym w schemacie oraz podano opcję --strict; kończenie "
"działania."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3009,7 +3040,7 @@ msgstr ""
"znajduje się na liście prawidłowych wyborów; ignorowanie zastąpienia dla "
"tego klucza."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3019,23 +3050,23 @@ msgstr ""
"znajduje się na liście prawidłowych wyborów oraz podano opcję --strict; "
"kończenie działania."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Gdzie przechowywać plik gschemas.compiled"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Przerywa po każdym błędzie w schematach"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Bez zapisywania pliku gschema.compiled"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Bez wymuszania ograniczeń nazw kluczy"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3046,24 +3077,24 @@ msgstr ""
"rozszerzenie .gschema.xml, a pliki pamięci podręcznej\n"
"nazywają się gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Należy podać dokładnie jedną nazwę katalogu"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Nie odnaleziono plików schematów: nierobienie niczego."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "Nie odnaleziono plików schematów: usunięto istniejący plik wyjściowy."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Nieprawidłowa nazwa pliku %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Błąd podczas pobierania informacji o systemie plików dla %s: %s"
@@ -3072,259 +3103,259 @@ msgstr "Błąd podczas pobierania informacji o systemie plików dla %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Nie odnaleziono punktu montowania zawierającego plik %s"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Nie można zmienić nazwy katalogu głównego"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Błąd podczas zmieniania nazwy pliku %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Nie można zmienić nazwy pliku, plik o takiej nazwie już istnieje"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Nieprawidłowa nazwa pliku"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Błąd podczas otwierania pliku %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Błąd podczas usuwania pliku %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Błąd podczas przenoszenia pliku %s do kosza: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Nie można utworzyć katalogu kosza %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Nie można odnaleźć głównego katalogu dla kosza %s"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
"Przenoszenie do kosza na wewnętrznych punktach montowania systemu nie jest "
"obsługiwane"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Nie można odnaleźć lub utworzyć katalogu kosza %s do kosza %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Nie można utworzyć pliku informacji o koszu dla %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Nie można przenieść pliku %s do kosza pomiędzy systemami plików"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Nie można przenieść pliku %s do kosza: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Nie można przenieść pliku %s do kosza"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Błąd podczas tworzenia katalogu %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "System plików nie obsługuje dowiązań symbolicznych"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Błąd podczas tworzenia dowiązania symbolicznego %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Błąd podczas przenoszenia pliku %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Nie można przenieść katalogu na katalog"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Utworzenie pliku kopii zapasowej się nie powiodło"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Błąd podczas usuwania pliku docelowego: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Przenoszenie między punktami montowania nie jest obsługiwane"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Nie można ustalić wykorzystania dysku %s: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Wartość atrybutu nie może być pusta"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Nieprawidłowy typ atrybutu (oczekiwano „string” lub „invalid”)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Nieprawidłowa nazwa rozszerzonego atrybutu"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Błąd podczas ustawiania rozszerzonego atrybutu „%s”: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (nieprawidłowe kodowanie)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Błąd podczas pobierania informacji o pliku „%s”: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Błąd podczas pobierania informacji o deskryptorze pliku: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Nieprawidłowy typ atrybutu (oczekiwano „uint32”)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Nieprawidłowy typ atrybutu (oczekiwano „uint64”)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Nieprawidłowy typ atrybutu (oczekiwano „byte string”)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Nie można ustawić uprawnień na dowiązaniach symbolicznych"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Błąd podczas ustawiania uprawnień: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Błąd podczas ustawiania właściciela: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "dowiązanie symboliczne nie może być puste"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Błąd podczas ustawiania dowiązania symbolicznego: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"Błąd podczas ustawiania dowiązania symbolicznego: plik nie jest dowiązaniem "
"symbolicznym"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Dodatkowe nanosekundy %d dla czasu uniksowego %lld są ujemne"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr "Dodatkowe nanosekundy %d dla czasu uniksowego %lld osiągają 1 sekundę"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "Czas uniksowy %lld nie mieści się w 64 bitach"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"Czas uniksowy %lld jest poza zakresem obsługiwanym przez system Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Nie można skonwertować nazwy pliku „%s” na kodowanie UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Nie można otworzyć pliku „%s”: błąd %lu systemu Windows"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "Błąd podczas ustawiania czasu modyfikacji lub dostępu pliku „%s”: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Błąd podczas ustawiania czasu modyfikacji lub dostępu: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "Kontekst SELinux nie może być pusty"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux nie jest włączony w tym systemie"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Błąd podczas ustawiania kontekstu SELinux: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Ustawianie atrybutu %s nie jest obsługiwane"
@@ -3371,13 +3402,13 @@ msgstr "Błąd podczas tworzenia kopii zapasowej: %s"
msgid "Error renaming temporary file: %s"
msgstr "Błąd podczas zmieniania nazwy pliku tymczasowego: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Błąd podczas skracania pliku: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Błąd podczas otwierania pliku „%s”: %s"
@@ -3394,7 +3425,7 @@ msgstr "Plik docelowy nie jest zwykłym plikiem"
msgid "The file was externally modified"
msgstr "Plik został zmieniony poza programem"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Błąd podczas usuwania starego pliku: %s"
@@ -3527,42 +3558,42 @@ msgstr "Wersja usługi NetworkManager jest za stara"
msgid "Output stream doesn’t implement write"
msgstr "Potok wyjściowy nie obsługuje zapisu"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Suma wektorów przekazanych do %s jest za duża"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Potok źródłowy jest już zamknięty"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Nieokreślone niepowodzenie wyszukania pośrednika"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Błąd podczas rozwiązywania „%s”: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s nie jest zaimplementowane"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Nieprawidłowa domena"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Zasób w „%s” nie istnieje"
@@ -3572,16 +3603,16 @@ msgstr "Zasób w „%s” nie istnieje"
msgid "The resource at “%s” failed to decompress"
msgstr "Dekompresowanie zasobu w „%s” się nie powiodło"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Nie można zmieniać nazw plików zasobów"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "Zasób w „%s” nie jest katalogiem"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Potok wejściowy nie obsługuje szukania"
@@ -3951,7 +3982,8 @@ msgstr "Nieprawidłowe gniazdo, zainicjowanie się nie powiodło z powodu: %s"
msgid "Socket is already closed"
msgstr "Gniazdo jest już zamknięte"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "Przekroczono czas oczekiwania wejścia/wyjścia gniazda"
@@ -3960,161 +3992,161 @@ msgstr "Przekroczono czas oczekiwania wejścia/wyjścia gniazda"
msgid "creating GSocket from fd: %s"
msgstr "tworzenie GSocket z fd: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Nie można utworzyć gniazda: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Podano nieznaną rodzinę"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Podano nieznany protokół"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "Nie można używać działań datagramowych na niedatagramowych gniazdach."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Nie można używać działań datagramowych na gniazdach z ustawionym czasem "
"oczekiwania."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "nie można uzyskać lokalnego adresu: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "nie można uzyskać zdalnego adresu: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "nie można nasłuchiwać: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Błąd podczas dowiązywania do adresu %s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Błąd podczas dołączania do grupy multicast: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Błąd podczas opuszczania grupy multicast: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Brak obsługi multicastu dla konkretnych źródeł"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Nieobsługiwana rodzina gniazda"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "konkretne źródła nie są adresem IPv4"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Nazwa interfejsu jest za długa"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Nie odnaleziono interfejsu: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Brak obsługi multicastu IPv4 dla konkretnych źródeł"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Brak obsługi multicastu IPv6 dla konkretnych źródeł"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Błąd podczas akceptowania połączenia: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Trwa połączenie"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Nie można uzyskać oczekującego błędu: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Błąd podczas pobierania danych: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Błąd podczas wysyłania danych: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Nie można zamknąć gniazda: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Błąd podczas zamykania gniazda: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Oczekiwanie na warunek gniazda: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Nie można wysłać komunikatu: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Wektory komunikatu są za duże"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Błąd podczas wysyłania komunikatu: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage nie jest obsługiwane w systemie Windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Błąd podczas pobierania komunikatu: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Nie można odczytać danych uwierzytelniających gniazda: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr ""
"g_socket_get_credentials nie jest zaimplementowane dla tego systemu "
@@ -4239,7 +4271,7 @@ msgstr "Pośrednik SOCKSv5 nie obsługuje podanego typu adresu."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Nieznany błąd pośrednika SOCKSv5."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr ""
@@ -4255,47 +4287,47 @@ msgstr "Potoki nie są obsługiwane na tej platformie"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Nie można obsłużyć wersji %d kodowania GThemedIcon"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Nie odnaleziono prawidłowych adresów"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Błąd podczas odwrotnego rozwiązywania „%s”: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr ""
"Błąd podczas przetwarzania wpisu DNS %s: błędnie sformatowany pakiet DNS"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Brak wpisu DNS żądanego typu dla „%s”"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Nie można tymczasowo rozwiązać „%s”"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Błąd podczas rozwiązywania „%s”"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Błędnie sformatowany pakiet DNS"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Przetworzenie odpowiedzi DNS na „%s” się nie powiodło: "
@@ -4355,7 +4387,7 @@ msgstr "Podane hasło jest niepoprawne."
msgid "Sending FD is not supported"
msgstr "Wysyłanie DP nie jest obsługiwane"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
@@ -4363,11 +4395,11 @@ msgstr[0] "Oczekiwano jeden komunikat kontrolny, otrzymano %d"
msgstr[1] "Oczekiwano jeden komunikat kontrolny, otrzymano %d"
msgstr[2] "Oczekiwano jeden komunikat kontrolny, otrzymano %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Nieoczekiwany typ podrzędnych danych"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
@@ -4375,43 +4407,43 @@ msgstr[0] "Oczekiwano jedno fd, a otrzymano %d\n"
msgstr[1] "Oczekiwano jedno fd, a otrzymano %d\n"
msgstr[2] "Oczekiwano jedno fd, a otrzymano %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Pobrano nieprawidłowe fd"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Odbieranie DP nie jest obsługiwane"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Błąd podczas wysyłania danych uwierzytelniających: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr ""
"Błąd podczas sprawdzania, czy zmienna SO_PASSCRED została włączona dla "
"gniazda: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Błąd podczas włączania zmiennej SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Oczekiwano odczytania pojedynczego bajtu dla odbieranych danych "
"uwierzytelniających, ale odczytano zero bajtów"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Nie oczekiwano komunikatu kontrolnego, a otrzymano %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Błąd podczas wyłączania zmiennej SO_PASSCRED: %s"
@@ -4427,7 +4459,7 @@ msgstr "Błąd podczas odczytywania z deskryptora pliku: %s"
msgid "Error closing file descriptor: %s"
msgstr "Błąd podczas zamykania deskryptora pliku: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Katalog główny systemu plików"
@@ -4511,130 +4543,125 @@ msgstr "Uruchamia usługę D-Bus"
msgid "Wrong args\n"
msgstr "Błędne parametry\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Nieoczekiwany atrybut „%s” dla elementu „%s”"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Nie odnaleziono atrybutu „%s” dla elementu „%s”"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Nieoczekiwany znacznik „%s”, oczekiwano znacznika „%s”"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Nieoczekiwany znacznik „%s” wewnątrz „%s”"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Nieprawidłowa data/czas „%s” w pliku zakładek"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Nie można odnaleźć prawidłowego pliku zakładek w katalogach danych"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Zakładka dla adresu URI „%s” już istnieje"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Nie odnaleziono zakładki dla adresu URI „%s”"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Nie zdefiniowano typu MIME w zakładce dla adresu URI „%s”"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Nie zdefiniowano prywatnej flagi w zakładce dla adresu URI „%s”"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "Nie ustawiono grup w zakładce dla adresu URI „%s”"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Żaden program o nazwie „%s” nie zarejestrował zakładki dla „%s”"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Rozwinięcie wiersza exec „%s” z adresem URI „%s” się nie powiodło"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Nieprzedstawialny znak na wejściu konwersji"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Na końcu wejścia występuje sekwencja odpowiadająca części znaku"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Nie można skonwertować napisu zastępczego „%s” na zestaw znaków „%s”"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Osadzony bajt NUL na wejściu konwersji"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Osadzony bajt NUL na wyjściu konwersji"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr ""
"Adres URI „%s” nie jest bezwzględnym adresem URI, używającym schematu „file”"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "Adres URI lokalnego pliku „%s” nie może zawierać znaku „#”"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "Adres URI „%s” jest nieprawidłowy"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Nazwa komputera w adresie URI „%s” jest nieprawidłowa"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "Adres URI „%s” zawiera nieprawidłowe znaki sterujące"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Ścieżka „%s” nie jest ścieżką bezwzględną"
@@ -5057,7 +5084,7 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "Błąd podczas otwierania katalogu „%s”: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
@@ -5065,81 +5092,81 @@ msgstr[0] "Nie można przydzielić %lu bajtu do odczytu pliku „%s”"
msgstr[1] "Nie można przydzielić %lu bajtów do odczytu pliku „%s”"
msgstr[2] "Nie można przydzielić %lu bajtów do odczytu pliku „%s”"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Błąd podczas odczytywania pliku „%s”: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Plik „%s” jest za duży"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Odczytanie z pliku „%s” się nie powiodło: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Otwarcie pliku „%s” się nie powiodło: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr ""
"Uzyskanie atrybutów pliku „%s” się nie powiodło: funkcja fstat() zwróciła "
"błąd: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr ""
"Otwarcie pliku „%s” się nie powiodło: funkcja fdopen() zwróciła błąd: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr ""
"Zmiana nazwy pliku „%s” na „%s” się nie powiodła: funkcja g_rename() "
"zwróciła błąd: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr ""
"Zapisanie pliku „%s” się nie powiodło: funkcja write() zwróciła błąd: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr ""
"Zapisanie pliku „%s” się nie powiodło: funkcja fsync() zwróciła błąd: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Utworzenie pliku „%s” się nie powiodło: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr ""
"Nie można usunąć istniejącego pliku „%s”: funkcja g_unlink() zwróciła błąd: "
"%s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Szablon „%s” jest nieprawidłowy, nie powinien on zawierać „%s”"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Szablon „%s” nie zawiera XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Odczytanie dowiązania symbolicznego „%s” się nie powiodło: %s"
@@ -5166,16 +5193,16 @@ msgstr "Na końcu kanału występuje sekwencja odpowiadająca części znaku"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Nie można wykonać surowego odczytu w zmiennej g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr ""
"Nie można odnaleźć prawidłowego pliku klucza w przeszukiwanych katalogach"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "To nie jest zwykły plik"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5183,45 +5210,45 @@ msgstr ""
"Plik klucza zawiera wiersz „%s”, który nie jest parą klucz-wartość, grupą "
"lub komentarzem"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Nieprawidłowa nazwa grupy: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Plik klucza nie rozpoczyna się od grupy"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Nieprawidłowa nazwa klucza: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Plik klucza zawiera nieobsługiwane kodowanie „%s”"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Plik klucza nie zawiera grupy „%s”"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Plik klucza nie zawiera klucza „%s” w grupie „%s”"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
"Plik klucza zawiera klucz „%s” o wartości „%s”, która nie jest zapisana "
"w UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
@@ -5229,7 +5256,7 @@ msgstr ""
"Plik klucza zawiera klucz „%s”, który ma wartość niemożliwą do "
"zinterpretowania."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5238,86 +5265,86 @@ msgstr ""
"Plik klucza zawiera klucz „%s” w grupie „%s”, która ma wartość niemożliwą do "
"zinterpretowania."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Klucz „%s” w grupie „%s” ma wartość „%s”, podczas gdy oczekiwano %s"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "Plik klucza zawiera znak sterujący na końcu linii"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4378
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Plik klucza zawiera nieprawidłową sekwencję sterującą „%s”"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4530
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Nie można zinterpretować „%s” jako liczby."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4544
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Wartość całkowita „%s” jest spoza dopuszczalnego zakresu"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Nie można zinterpretować „%s” jako liczby zmiennoprzecinkowej."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4616
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Nie można zinterpretować „%s” jako wartości logicznej."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"Uzyskanie atrybutów pliku „%s%s%s%s” się nie powiodło: funkcja fstat() "
"zwróciła błąd: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr ""
"Zmapowanie pliku %s%s%s%s się nie powiodło: funkcja mmap() zwróciła błąd: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Otwarcie pliku „%s” się nie powiodło: funkcja open() zwróciła błąd: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Błąd w %d. wierszu przy %d. znaku: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr ""
"Nazwa zawiera nieprawidłowy tekst zakodowany za pomocą UTF-8 — nieprawidłowe "
"„%s”"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "„%s” nie jest prawidłową nazwą"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "„%s” nie jest prawidłową nazwą: „%c”"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Błąd w %d. wierszu: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5327,7 +5354,7 @@ msgstr ""
"liczba, będąca częścią odniesienia do znaku (np. &#234;) — być może liczba "
"jest za duża"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5337,24 +5364,24 @@ msgstr ""
"został użyty znak &, który nie miał oznaczać jednostki — należy go zapisać "
"jako &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Odniesienie do znaku „%-.*s” nie jest zapisem dozwolonego znaku"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Napotkano pustą jednostkę „&;”; poprawnymi jednostkami są: &amp; &quot; &lt; "
"&gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Nazwa jednostki „%-.*s” nie jest znana"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5362,11 +5389,11 @@ msgstr ""
"Jednostka nie jest zakończona średnikiem; najprawdopodobniej został użyty "
"znak &, który nie miał oznaczać jednostki — należy go zapisać jako &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Dokument musi rozpoczynać się jakimś elementem (np. <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5375,7 +5402,7 @@ msgstr ""
"Znak „%s” nie powinien występować po znaku „<”; nie może on rozpoczynać "
"nazwy elementu"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5384,12 +5411,12 @@ msgstr ""
"Nieoczekiwany znak „%s”, oczekiwano znaku „>”, aby zakończyć znacznik „%s” "
"pustego elementu"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Za dużo atrybutów w elemencie „%s”"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5397,7 +5424,7 @@ msgstr ""
"Nieoczekiwany znak „%s”; po nazwie atrybutu „%s” elementu „%s” oczekiwano "
"znaku „=”"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5408,7 +5435,7 @@ msgstr ""
"początkowy elementu „%s” lub opcjonalnie atrybutu; być może w nazwie "
"atrybutu został użyty nieprawidłowy znak"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5417,7 +5444,7 @@ msgstr ""
"Nieoczekiwany znak „%s”; oczekiwano otwierającego znaku cudzysłowu po znaku "
"równości podczas podawania wartości atrybutu „%s” elementu „%s”"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5426,7 +5453,7 @@ msgstr ""
"Znak „%s” nie jest znakiem, który może pojawić się po sekwencji „</”; „%s” "
"nie może rozpoczynać nazwy elementu"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5435,26 +5462,26 @@ msgstr ""
"Znak „%s” nie jest znakiem, który może wystąpić po domykającej nazwie "
"elementu „%s”; dopuszczalnym znakiem jest „>”"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Element „%s” został zamknięty, ale brak obecnie otwartego elementu"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr ""
"Element „%s” został zamknięty, ale obecnie otwartym elementem jest „%s”"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Dokument jest pusty lub zawiera tylko spacje"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "Zaraz po znaku „<” nastąpił nieoczekiwany koniec dokumentu"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5463,7 +5490,7 @@ msgstr ""
"Nastąpił nieoczekiwany koniec dokumentu, gdy pewne elementy są wciąż otwarte "
"— „%s” był ostatnim otwartym elementem"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5472,21 +5499,21 @@ msgstr ""
"Nastąpił nieoczekiwany koniec dokumentu; oczekiwano znaku „>”, kończącego "
"znacznik <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Nastąpił nieoczekiwany koniec dokumentu wewnątrz nazwy elementu"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Nastąpił nieoczekiwany koniec dokumentu wewnątrz nazwy atrybutu"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr ""
"Nastąpił nieoczekiwany koniec dokumentu wewnątrz znacznika otwierającego "
"element."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5494,25 +5521,25 @@ msgstr ""
"Nastąpił nieoczekiwany koniec dokumentu po znaku równości występującym po "
"nazwie atrybutu; brak wartości atrybutu"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Nastąpił nieoczekiwany koniec dokumentu wewnątrz wartości atrybutu"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr ""
"Nastąpił nieoczekiwany koniec dokumentu wewnątrz znacznika domykającego "
"elementu „%s”"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Nastąpił nieoczekiwany koniec dokumentu wewnątrz znacznika domykającego "
"nieotwartego elementu"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"Nastąpił nieoczekiwany koniec dokumentu wewnątrz komentarza lub instrukcji "
@@ -5578,185 +5605,181 @@ msgstr "Brak parametru dla %s"
msgid "Unknown option %s"
msgstr "Nieznana opcja %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "uszkodzony obiekt"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "brak pamięci"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "osiągnięto limit wyjątku"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "błąd wewnętrzny"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "wzorzec zawiera elementy nieobsługiwane w dopasowywaniu częściowym"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"odniesienia wstecz jako warunki nie są obsługiwane w dopasowywaniu częściowym"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "osiągnięto limit rekurencji"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "błędne wyrównanie"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "pętla rekurencji"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "zażądano trybu dopasowywania, który nie został skompilowany dla JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "nieznany błąd"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ na końcu wzoru"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c na końcu wzoru"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "nierozpoznany znak po \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "liczby w operatorze {} nie są w kolejności"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "liczba za duża w kwantyfikatorze {}"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "brak kończącego znaku „]” dla klasy znaku"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "nieprawidłowa sekwencja sterująca w klasie znaku"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "zakres klasy znaków nie jest w kolejności"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "nic do powtórzenia"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "nierozpoznany znak po (? lub (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "Klasy nazwane z użyciem POSIX są obsługiwane tylko wewnątrz klasy"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "elementy porównujące POSIX nie są obsługiwane"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "brak znaku kończącego )"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "odniesienie do nieistniejącego podwzoru"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "brakujący znak „)” po komentarzu"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "wyrażenie regularne jest za duże"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "błędna liczba lub nazwa za (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "asercja „lookbehind” nie ma stałej długości"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "zależna grupa zawiera więcej niż dwie gałęzie"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "za (?( oczekiwano asercji"
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "liczbowe odniesienie nie może wynosić zero"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "nieznana nazwa klasy POSIX"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "wartość znaku w sekwencji \\x{...} jest za duża"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "znak \\C nie jest dozwolony w asercji „lookbehind”"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "brak terminatora w nazwie podwzoru"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "dwa podwzory mają tę samą nazwę"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "błędna sekwencja \\P lub \\p"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "nieznana nazwa właściwości za \\P lub \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "nazwa podwzoru jest za długa (maksymalnie 32 znaki)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "za dużo nazwanych podwzorów (maksymalnie 10000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "wartość ósemkowa jest większa niż \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "grupa DEFINE zawiera więcej niż jedną gałąź"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "niespójne opcje NEWLINE"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5764,118 +5787,118 @@ msgstr ""
"po \\g nie następuje nazwa lub liczba w nawiasach, nawiasach ostrych, "
"cytowana, ani zwykła liczba"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "parametr nie jest dozwolony dla (*ACCEPT), (*FAIL) lub (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "nie rozpoznano (*VERB)"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "liczba jest za duża"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "brak nazwy podwzoru po (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "różne nazwy dla podwzorów tej samej liczby nie są dozwolone"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) musi mieć parametr"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "po \\c musi być znak ASCII"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"po \\k nie następuje nazwa w nawiasach, nawiasach ostrych, ani cytowana"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N nie jest obsługiwane w klasie"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "nazwa jest za długa w (*MARK), (*PRUNE), (*SKIP) lub (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "przepełnienie kodu"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "nierozpoznany znak po (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "przekroczono przestrzeń roboczą kompilacji"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "nie odnaleziono wcześniej sprawdzonego podwzoru"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Błąd podczas dopasowywania wyrażenia regularnego %s: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "Biblioteka PCRE została skompilowana bez obsługi UTF-8"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "Biblioteka PCRE została skompilowana za pomocą niezgodnych opcji"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Błąd kompilacji wyrażenia regularnego „%s” przy znaku %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "oczekiwano cyfry szesnastkowej lub znaku „}”"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "oczekiwano cyfry szesnastkowej"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "brak znaku „<” w odniesieniu symbolicznym"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "niezakończone odniesienie symboliczne"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "odniesienie symboliczne o zerowej długości"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "oczekiwano cyfry"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "niedozwolone odniesienie symboliczne"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "pominięto końcowe „\\”"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "nieznana sekwencja sterująca"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Błąd podczas przetwarzania tekstu zastępczego „%s” przy znaku %lu: %s"
@@ -5907,144 +5930,149 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Tekst jest pusty (lub zawiera tylko spacje)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Odczytanie danych z procesu potomnego (%s) się nie powiodło"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr ""
"Nieoczekiwany błąd podczas odczytywania danych z procesu potomnego (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Nieoczekiwany błąd w waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Proces potomny został zakończony z kodem %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Proces potomny został zakończony sygnałem %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Proces potomny został zatrzymany sygnałem %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Proces potomny został nieprawidłowo zakończony"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr ""
"Odczytanie danych z potoku łączącego z procesem potomnym (%s) się nie "
"powiodło"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Wywołanie procesu potomnego „%s” (%s) się nie powiodło"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Rozdzielenie procesu (%s) się nie powiodło"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Zmiana katalogu na „%s” (%s) się nie powiodła"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Wykonanie procesu potomnego „%s” (%s) się nie powiodło"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr ""
"Otwarcie pliku do ponownego mapowania deskryptora pliku (%s) się nie powiodło"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr ""
"Powielenie deskryptora pliku dla procesu potomnego (%s) się nie powiodło"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Rozdzielenie procesu potomnego (%s) się nie powiodło"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr ""
"Zamknięcie deskryptora pliku dla procesu potomnego (%s) się nie powiodło"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Podczas wykonywania procesu potomnego „%s” wystąpił nieznany błąd"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
"Odczytanie odpowiedniej liczby danych z potoku procesu potomnego (%s) się "
"nie powiodło"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Nieprawidłowy parametr źródłowych DP"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Odczytanie danych z procesu potomnego się nie powiodło"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Wykonanie procesu potomnego (%s) się nie powiodło"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Wykonanie dup() w procesie potomnym (%s) się nie powiodło"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Nieprawidłowa nazwa programu: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Nieprawidłowy ciąg w wektorze parametrów w %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Nieprawidłowa sekwencja w środowisku: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Nieprawidłowy katalog roboczy: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Wykonanie programu pomocniczego (%s) się nie powiodło"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6052,226 +6080,226 @@ msgstr ""
"Podczas odczytu danych z procesu potomnego w g_io_channel_win32_poll() "
"wystąpił nieznany błąd"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Pusty ciąg nie jest liczbą"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "„%s” nie jest liczbą ze znakiem"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Liczba „%s” jest poza zakresem [%s, %s]"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "„%s” nie jest liczbą bez znaku"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "Nieprawidłowe „%-encoding” w adresie URI"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Niedozwolony znak w adresie URI"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Znaki niebędące UTF-8 w adresie URI"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Nieprawidłowy adres IPv6 „%.*s” w adresie URI"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Niedozwolony zakodowany adres IP „%.*s” w adresie URI"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Niedozwolona umiędzynarodowiona nazwa komputera „%.*s” w adresie URI"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Nie można przetworzyć portu „%.*s” w adresie URI"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Port „%.*s” w adresie URI jest poza zakresem"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "Adres URI „%s” nie jest bezwzględnym adresem URI"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "Adres URI „%s” nie ma składnika komputera"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "Adres URI nie jest bezwzględny i nie podano podstawy adresu URI"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Brak „=” i wartości parametru"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Przydzielenie pamięci się nie powiodło"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Znak jest poza zakresem dla UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Nieprawidłowa sekwencja na wejściu konwersji"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Znak jest poza zakresem dla UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "bajt"
msgstr[1] "bajty"
msgstr[2] "bajtów"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bit"
@@ -6280,7 +6308,7 @@ msgstr[2] "bitów"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6288,7 +6316,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6296,7 +6324,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6305,14 +6333,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6321,7 +6349,7 @@ msgstr[1] "%s bajty"
msgstr[2] "%s bajtów"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
@@ -6329,7 +6357,7 @@ msgstr[0] "%s bit"
msgstr[1] "%s bity"
msgstr[2] "%s bitów"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6342,32 +6370,32 @@ msgstr[2] "%u bajtów"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
diff --git a/po/pt.po b/po/pt.po
index 5ca20610d..8b4936b2d 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -1,19 +1,19 @@
-# glib's Portuguese Translation
-# Copyright © 2001-2022 glib
-# Distributed under the same licence as the glib package
+# Portuguese Translation for glib.
+# Copyright © 2001-2023 glib.
+# Distributed under the same licence as the glib package.
# Duarte Loreto <happyguy_pt@hotmail.com>, 2001-2014.
# Pedro Albuquerque <palbuquerque73@gmail.com>, 2015.
# Sérgio Cardeira <cardeira.sergio@gmail.com>, 2016.
-# Tiago Santos <tiagofsantos81@sapo.pt>, 2014 - 2016.
+# Tiago Santos <tiagofsantos81@sapo.pt>, 2014, 2015, 2016.
# Juliano de Souza Camargo <julianosc@protonmail.com>, 2020.
-# Hugo Carvalho <hugokarvalho@hotmail.com>, 2020, 2021, 2022.
+# Hugo Carvalho <hugokarvalho@hotmail.com>, 2020, 2021, 2022, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: 3.12\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-05 19:22+0000\n"
-"PO-Revision-Date: 2022-08-07 21:30+0100\n"
+"POT-Creation-Date: 2023-07-28 12:53+0000\n"
+"PO-Revision-Date: 2023-08-04 16:53+0100\n"
"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
"Language-Team: Portuguese <https://l10n.gnome.org/teams/pt/>\n"
"Language: pt\n"
@@ -21,46 +21,46 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.1.1\n"
+"X-Generator: Poedit 3.3.2\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Definição de aplicações predefinidas ainda não suportado"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr "Definir aplicação como última utilizada para tipo ainda não suportado"
-#: gio/gappinfo.c:808
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr ""
"Falha ao encontrar uma aplicação predefinida para o tipo de conteúdo '%s'"
-#: gio/gappinfo.c:868
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Falha ao encontrar uma aplicação predefinida para o esquema URI '%s'"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "Opções GApplication"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "Opções GApplication:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Mostrar opções GApplication"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
"Entrar em modo de serviço GApplication (utilizar a partir de ficheiros D-Bus "
"de serviço)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Ignorar o ID da aplicação"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Substituir a instância em execução"
@@ -142,7 +142,7 @@ msgstr ""
"visualizador)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FICHEIRO"
@@ -239,11 +239,11 @@ msgstr "impossível ligar ao D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "erro ao enviar a mensagem %s para a aplicação: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "nome da ação tem de ser especificado após o id de aplicação\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -252,25 +252,25 @@ msgstr ""
"nome de ação inválido: “%s”\n"
"nomes de ações têm de consistir apenas de alfanuméricos, “-” e “.”\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "erro ao processar o parâmetro de ação: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "ação aceita no máximo um parâmetro\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "o comando list-actions apenas aceita o id de aplicação"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "impossível encontrar o ficheiro desktop da aplicação %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -280,9 +280,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Valor de contagem demasiado grande passado para %s"
@@ -296,8 +296,8 @@ msgstr "Procura não é suportada no fluxo base"
msgid "Cannot truncate GBufferedInputStream"
msgstr "Impossível truncar um GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "O fluxo já se encontra fechado"
@@ -305,7 +305,7 @@ msgstr "O fluxo já se encontra fechado"
msgid "Truncate not supported on base stream"
msgstr "Truncar não é suportado no fluxo base"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -324,28 +324,28 @@ msgid "Not enough space in destination"
msgstr "Espaço insuficiente no destino"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Sequência de bytes inválida na origem da conversão"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Erro durante a conversão: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Não é suportada a inicialização cancelável"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Conversão do conjunto de caracteres “%s” para “%s” não é suportada"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Impossível abrir conversor de “%s” para “%s”"
@@ -388,17 +388,17 @@ msgstr "Simular credenciais não é possível neste SO"
msgid "Unexpected early end-of-stream"
msgstr "Final precoce de fluxo inesperado"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Chave “%s” não suportada na entrada de endereço “%s”"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Combinação chave/valor sem sentido na entrada de endereço “%s”"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -407,7 +407,7 @@ msgstr ""
"Endereço “%s” é inválido (é necessário um de caminho, dir, tmpdir ou chaves "
"abstratas)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -533,7 +533,7 @@ msgstr ""
"Impossível determinar o endereço do canal de sessão (não implementado para "
"este SO)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7326
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -542,7 +542,7 @@ msgstr ""
"Impossível determinar o endereço de canal a partir da variável de sessão "
"DBUS_STARTER_BUS_TYPE — valor “%s” desconhecido"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7335
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -550,7 +550,7 @@ msgstr ""
"Impossível determinar o endereço do canal porque a variável de ambiente "
"DBUS_STARTER_BUS_TYPE não está definida"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Tipo de canal %d desconhecido"
@@ -571,21 +571,25 @@ msgstr ""
"Esgotados todos os mecanismos de autenticação disponíveis (tentados: %s) "
"(disponíveis: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Falta de conteúdo inesperada ao tentar ler um byte"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr ""
"As IDs dos utilizadores devem ser as mesmas para os pares e para o servidor"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Cancelado via GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Erro ao obter informação da diretório “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -593,32 +597,32 @@ msgstr ""
"As permissões da diretório “%s” estão mal formadas. Esperado o modo 0700, "
"obtido 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Erro ao criar o diretório “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Operação não suportada"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Erro ao abrir o chaveiro “%s” para leitura: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "Linha %d do chaveiro em “%s” com o conteúdo “%s” está mal formada"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -626,7 +630,7 @@ msgstr ""
"O primeiro bloco da linha %d do chaveiro em “%s” com o conteúdo “%s” está "
"mal formado"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -634,56 +638,56 @@ msgstr ""
"O segundo bloco da linha %d do chaveiro em “%s” com o conteúdo “%s” está mal "
"formado"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Impossível encontrar a cookie com o id %d no chaveiro em “%s”"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Erro ao criar o ficheiro de acesso exclusivo “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Erro ao eliminar o ficheiro de acesso exclusivo “%s” abandonado: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Erro ao fechar o ficheiro de acesso exclusivo “%s” (não ligado): %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Erro ao desfazer a ligação do ficheiro de acesso exclusivo “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Erro ao abrir o chaveiro “%s” para escrita: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(adicionalmente, também falhou a libertação para “%s”: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "A ligação está fechada"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Foi atingido o tempo de expiração"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Foram encontrados parâmetros não suportados ao construir a ligação de cliente"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4267 gio/gdbusconnection.c:4621
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -691,104 +695,104 @@ msgstr ""
"Não existe o ambiente “org.freedesktop.DBus.Properties” no objeto no caminho "
"%s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4412
#, c-format
msgid "No such property “%s”"
msgstr "Não existe a propriedade “%s”"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4424
#, c-format
msgid "Property “%s” is not readable"
msgstr "A propriedade “%s” não pode ser lida"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4435
#, c-format
msgid "Property “%s” is not writable"
msgstr "A propriedade “%s” não pode ser escrita"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4455
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Erro ao definir a propriedade “%s”: esperado o tipo “%s”, obtido o “%s”"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4560 gio/gdbusconnection.c:4775
+#: gio/gdbusconnection.c:6752
#, c-format
msgid "No such interface “%s”"
msgstr "Não existe o ambiente “%s”"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:4991 gio/gdbusconnection.c:7266
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Não existe o ambiente “%s” no objeto no caminho %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5092
#, c-format
msgid "No such method “%s”"
msgstr "Não existe o método “%s”"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5123
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Tipo de mensagem, “%s”, não corresponde ao tipo “%s” esperado"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5326
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Já existe um objeto exportado para o ambiente %s em %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5553
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Impossível obter propriedade %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5609
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Impossível definir propriedade %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5788
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "O método “%s” devolveu o tipo “%s”, mas era esperado “%s”"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6864
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "O método “%s” no ambiente “%s” com a assinatura “%s” não existe"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6985
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Já existe uma subárvore exportada para %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7274
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "O objeto não existe no caminho \"%s\""
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "tipo é INVÁLIDO"
-#: gio/gdbusmessage.c:1314
+#: gio/gdbusmessage.c:1317
msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
msgstr "Mensagem METHOD_CALL: falta campo de cabeçalho PATH ou MEMBER"
-#: gio/gdbusmessage.c:1325
+#: gio/gdbusmessage.c:1328
msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
msgstr "Mensagem ETHOD_RETURN: falta campo de cabeçalho REPLY_SERIAL"
-#: gio/gdbusmessage.c:1337
+#: gio/gdbusmessage.c:1340
msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
msgstr "Mensagem ERROR: Falta campo de cabeçalho REPLY_SERIAL ou ERROR_NAME"
-#: gio/gdbusmessage.c:1350
+#: gio/gdbusmessage.c:1353
msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
msgstr "Mensagem SIGNAL: falta campo de cabeçalho PATH, INTERFACE ou MEMBER"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1361
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -796,7 +800,7 @@ msgstr ""
"Mensagem SIGNAL: o campo de cabeçalho PATH está a utilizar o valor "
"reservado /org/freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1369
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -804,19 +808,19 @@ msgstr ""
"Mensagem SIGNAL: o campo de cabeçalho INTERFACE está a utilizar o valor "
"reservado org.freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1417 gio/gdbusmessage.c:1477
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "Tentativa de ler %lu byte mas só obtido %lu"
msgstr[1] "Tentativa de ler %lu bytes mas só obtidos %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1431
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Esperado o byte NUL após a cadeia “%s” mas encontrado o byte %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1450
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -826,21 +830,21 @@ msgstr ""
"de bytes %d (comprimento da cadeia é %d). A cadeia UTF-8 válida até esse "
"ponto era “%s”"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1514 gio/gdbusmessage.c:1790 gio/gdbusmessage.c:2001
msgid "Value nested too deeply"
msgstr "Origem do valor muito antiga"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1682
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Valor processado “%s” não é um caminho de objeto D-Bus válido"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1706
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Valor processado “%s” não é uma assinatura D-Bus válida"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1757
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -853,7 +857,7 @@ msgstr[1] ""
"Encontrado um vetor de %u bytes de comprimento. Tamanho máximo é 2<<26 bytes "
"(64MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1777
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -862,16 +866,16 @@ msgstr ""
"Encontrado um vetor de tipo \"a%c\", esperado um comprimento múltiplo de %u "
"bytes, obtidos %u bytes de comprimento"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1931 gio/gdbusmessage.c:2650
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Estruturas vazias (tuples) não são permitidas no D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:1985
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Valor processado “%s” para variante não é uma assinatura D-Bus válida"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2026
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -879,7 +883,7 @@ msgstr ""
"Erro ao remover serialização GVariant com a cadeia de tipo “%s” do formato "
"de ligação D-Bus"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2211
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -888,28 +892,28 @@ msgstr ""
"Valor de \"endianness\" inválido. Esperado 0x6c (“l”) ou 0x42 (“B”) mas "
"obtido o valor 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2230
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Versão principal de protocolo inválida. Esperada 1 mas obtida %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2288 gio/gdbusmessage.c:2886
msgid "Signature header found but is not of type signature"
msgstr "Assinatura de cabeçalho encontrada, mas não do tipo assinatura"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2300
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Assinatura de cabeçalho com a assinatura “%s” encontrada, mas o corpo da "
"mensagem está vazio"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2315
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Valor processado “%s” não é uma assinatura D-Bus válida (para corpo)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -920,11 +924,11 @@ msgstr[1] ""
"Nenhum cabeçalho de assinatura na mensagem mas o corpo da mensagem tem %u "
"bytes"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2357
msgid "Cannot deserialize message: "
msgstr "Impossível remover serialização da mensagem: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2703
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -932,7 +936,7 @@ msgstr ""
"Erro ao serializar GVariant com a cadeia de tipo “%s” para o formato de "
"ligação D-Bus"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2840
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
@@ -940,18 +944,18 @@ msgstr ""
"Número de descritores de ficheiro na mensagem (%d) difere do campo no "
"cabeçalho (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2848
msgid "Cannot serialize message: "
msgstr "Impossível serializar a mensagem: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2901
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
"O corpo da mensagem tem a assinatura “%s” mas não existe a assinatura de "
"cabeçalho"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2911
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -960,55 +964,55 @@ msgstr ""
"O corpo da mensagem tem o tipo de assinatura “%s”, mas a assinatura no campo "
"de cabeçalho é “%s”"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2927
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
"O corpo da mensagem está vazio mas a assinatura no campo de cabeçalho é "
"“(%s)”"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3482
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Resposta de erro com corpo do tipo “%s”"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3490
msgid "Error return with empty body"
msgstr "Resposta de erro com corpo vazio"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(insira um qualquer carácter para fechar esta janela)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr ""
"Dbus de sessão não se encontra em execução e o início automático falhou"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Impossível obter o perfil de equipamento: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Incapaz de carregar %s ou %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Erro ao invocar StartServiceByName para %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Resposta %d inesperada do método StartServiceByName(“%s”)"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1017,25 +1021,25 @@ msgstr ""
"Impossível invocar o método; o proxy é para o nome conhecido %s sem um dono "
"e o proxy foi construído com o parâmetro G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Não é suportado nome de espaço abstrato"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Impossível especificar ficheiro nonce ao criar um servidor"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Erro ao escrever no ficheiro nonce em “%s”: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "A cadeia “%s” não é um GUID D-Bus válido"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Impossível ouvir no transporte não suportado “%s”"
@@ -1063,14 +1067,14 @@ msgstr ""
"\n"
"Utilize \"%s COMMAND --help\" para obter ajuda sobre cada comando.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Erro: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Erro ao processar XML de introspeção: %s\n"
@@ -1080,50 +1084,50 @@ msgstr "Erro ao processar XML de introspeção: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Erro: %s não é um nome válido\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Erro: %s não é um caminho de objeto válido\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Ligar ao bus de sistema"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Ligar ao bus de sessão"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Ligar ao endereço D-Bus especificado"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Opções de destino da ligação:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Opções que especificam o destino da ligação"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Nenhum destino de ligação especificado"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Múltiplos destinos de ligação especificados"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr ""
"Aviso: De acordo com os dados de introspeção, o ambiente “%s” não existe\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1132,164 +1136,164 @@ msgstr ""
"Aviso: De acordo com os dados de introspeção, o método “%s” não existe no "
"ambiente “%s”\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Destino opcional para o sinal (nome único)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Caminho do objeto sobre o qual emitir sinal"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Nome do sinal e do ambiente"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Emitir um sinal."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Erro ao ligar: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Erro: %s não é um nome único de canal (bus) válido.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Erro: caminho de objeto não está especificado\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Erro: nome do sinal não é especificado\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Erro: nome do sinal “%s” é inválido\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Erro: %s não é um nome de ambiente válido\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Erro: %s não é um nome de membro válido\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Erro ao processar o parâmetro %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Erro ao despejar a ligação: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Nome de destino no qual invocar o método"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Caminho do objeto no qual invocar o método"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Método e nome de ambiente"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Tempo limite em segundos"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Permitir autorização interativa"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Invocar um método num objeto remoto."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Erro: Destino não está especificado\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Erro: %s não é um nome de canal válido\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Erro: nome de método não é especificado\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Erro: nome de método “%s” é inválido\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Erro ao processar o parâmetro %d do tipo “%s”: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Erro ao adicionar manipulador: %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Nome do destino sobre o qual realizar a introspeção"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Caminho do objeto sobre o qual realizar a introspeção"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Imprimir XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Realizar introspeção dos sub processos"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Imprimir só propriedades"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Realizar a introspeção de um objeto remoto."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Nome do destino a monitorizar"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Caminho do objeto a monitorizar"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Monitorizar um objeto remoto."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Erro: impossível monitorizar um ligação non-message-bus\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Serviço a ativar enquanto espera por um outro (nome conhecido)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1297,69 +1301,74 @@ msgstr ""
"Compasso de espera antes de sair com erro (segundos); 0 para nenhum "
"(predefinição)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPÇÃO…] BUS-NAME"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Esperar por um nome de canal aparecer."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Erro: um serviço para ser ativado precisa ser especificado.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Erro: um serviço a ser esperado precisa ser especificado\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Erro: demasiados argumentos\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Erro: %s não é um nome de canal válido\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Não autorizado a alterar as definições de depuração"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5113
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Sem nome"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Ficheiro do ambiente de trabalho não especificou campo Exec"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Impossível encontrar o terminal necessário à aplicação"
-#: gio/gdesktopappinfo.c:3631
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Programa '%s' não encontrado em $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
"Impossível criar a pasta de configurações de utilizador da aplicação %s: %s"
-#: gio/gdesktopappinfo.c:3635
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Impossível criar a pasta de configurações MIME do utilizador %s: %s"
-#: gio/gdesktopappinfo.c:3877 gio/gdesktopappinfo.c:3901
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Informação da aplicação não possui um identificador"
-#: gio/gdesktopappinfo.c:4137
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Impossível criar ficheiro do ambiente de trabalho do utilizador %s"
-#: gio/gdesktopappinfo.c:4273
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Definição personalizada de %s"
@@ -1428,78 +1437,83 @@ msgstr "Esperado um GEmblem para o GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Montagem contida não existe"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Impossível copiar sobre um diretório"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Impossível copiar uma pasta sobre uma pasta"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Ficheiro de destino já existe"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Impossível copiar diretório recursivamente"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "Dividir ficheiros não é suportado"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Copiar intervalo de ficheiros não suportado"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Erro ao dividir o ficheiro: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Dividir ficheiros não é suportado"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Copiar (reflink/clonar) entre montados não é suportado"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Copiar (reflink/clonar) não é suportado ou é inválido"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Copiar (reflink/clonar) não é suportado ou falhou"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Impossível copiar ficheiro especial"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Dado um valor de ligação simbólica inválida"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Ligações simbólicas não são suportadas"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Não existe suporte para o lixo"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Nomes de ficheiros não podem conter “%c”"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Falha ao criar um diretório temporário para o modelo \"%s\": %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "unidade não implementa a montagem"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Não existe nenhuma aplicação registada para gerir este ficheiro"
@@ -1508,11 +1522,11 @@ msgid "Enumerator is closed"
msgstr "Enumerador está fechado"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Enumerador de ficheiro tem uma operação por terminar"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Enumerador de ficheiro já está fechado"
@@ -1525,27 +1539,27 @@ msgstr "Impossível manipular a versão %d da codificação GFileIcon"
msgid "Malformed input data for GFileIcon"
msgstr "Dados de entrada mal-formados para o GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Fluxo não suporta query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Fluxo não suporta procura"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Fluxo de entrada não permite truncar"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Fluxo não suporta truncar"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Nome de máquina inválido"
@@ -1578,37 +1592,37 @@ msgstr "Resposta de proxy HTTP demasiado grande"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "O servidor proxy HTTP fechou a ligação inesperadamente."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Número incorreto de blocos (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Nenhum tipo para o nome da classe %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "O tipo %s não implementa o ambiente GIcon"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "O tipo %s não possui uma classe"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Número de versão mal-formado: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "O tipo %s não implementa from_tokens() no ambiente GIcon"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Impossível manipular a versão especificada da codificação do ícone"
@@ -1649,7 +1663,7 @@ msgstr "Fluxo de entrada não implementa a leitura"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Fluxo tem uma operação por terminar"
@@ -1755,12 +1769,12 @@ msgid "Error writing to stdout"
msgstr "Erro ao escrever no stdout"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "LOCALIZAÇÃO"
@@ -1778,8 +1792,8 @@ msgstr ""
"utilizando localizações GIO em vez de ficheiros locais: por exemplo\n"
"pode utilizar smb://server/resource/ficheiro.txt como localização."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Nenhuma localização fornecida"
@@ -1875,57 +1889,62 @@ msgstr "Não seguir ligações simbólicas"
msgid "attributes:\n"
msgstr "atributos:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "nome de apresentação: %s\n"
-#: gio/gio-tool-info.c:182
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "nome de edição: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "nome: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "tipo: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "tamanho: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "escondido\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "caminho local: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "montagem unix: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Atributos definíveis:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Espaço de nomes de atributos graváveis:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Mostrar informação sobre as localizações."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1992,11 +2011,11 @@ msgstr "Imprimir os nomes de apresentação"
msgid "Print full URIs"
msgstr "Imprimir URIs completos"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Lista de conteúdos das localizações."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2193,19 +2212,19 @@ msgstr "Montar uma unidade TCRYPT oculta"
msgid "Mount a TCRYPT system volume"
msgstr "Montar uma unidade TCRYPT de sistema"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Acesso anónimo negado"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Nenhum volume para o ficheiro de dispositivo"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Nenhum volume para o dado ID"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Montar ou desmontar localizações."
@@ -2406,11 +2425,11 @@ msgstr "O local dado não começa com o trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Seguir ligações simbólicos, montagens e atalhos"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Listar conteúdos de diretórios num formato tipo árvore."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Elemento <%s> não é permitido dentro de <%s>"
@@ -2466,7 +2485,7 @@ msgstr "Erro ao comprimir o ficheiro %s"
msgid "text may not appear inside <%s>"
msgstr "não pode surgir texto dentro de <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Mostrar a versão da aplicação e sair"
@@ -2482,8 +2501,8 @@ msgstr ""
"O diretório de onde ler os ficheiros referenciados no FICHEIRO do "
"(predefinição: diretório atual)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "PASTA"
@@ -2538,7 +2557,7 @@ msgstr "Nome do identificador C utilizado no código fonte gerado"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "O compilador C de destino (padrão: a variável de ambiente CC)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2549,123 +2568,123 @@ msgstr ""
"xml,\n"
"e o ficheiro de recurso tem a extensão .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Deverá indicar apenas um nome de ficheiro\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "nome deve ter um mínimo de 2 caracteres"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Valor numérico inválido"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> já especificado"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "valor=“%s” já especificado"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "valores de parâmetros devem ter ao menos 1 bit definido"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> deve conter ao menos um <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> não está contido na região especificada"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> não é um membro válido do tipo enumerado especificado"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> contém cadeias não inclusas no tipo de parâmetros especificados"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> contém uma cadeia não inclusa em <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> já especificado para esta chave"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> não permitido para chaves do tipo “%s”"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "<range> o mínimo especificado é maior que o máximo"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "categoria l10n não suportada: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "o l10n requisitou, mas nenhum domínio gettext foi dado"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "contexto de tradução dado a um valor sem l10n ativado"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Falha ao processar o valor <default> do tipo “%s”: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> não podem ser especificadas a chaves marcadas como tendo um tipo "
"enumerado"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> já especificadas para esta chave"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> não permitidas para chaves do tipo “%s”"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> já especificado"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> devem conter ao menos uma <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> já especificados para esta chave"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2673,49 +2692,49 @@ msgstr ""
"<aliases> podem serem especificados só a chaves com tipo enumerada ou "
"parâmetro ou após <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
"type"
msgstr "<alias value='%s'/> dado quando “%s” já é um membro do tipo enumerado"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"<alias value='%s'/> dado quando <choice value='%s'/> já foi especificada"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> já especificado"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "alcunha alvo “%s” não é do tipo enumerada"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "alcunha alvo “%s” não está inclusa em <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> devem conter ao menos uma <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Não são permitidos nomes vazios"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Nome “%s” inválido: nomes têm de começar com uma letra minúscula"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2724,36 +2743,36 @@ msgstr ""
"Nome “%s” inválido: carácter “%c” inválido; apenas são permitidas letras "
"minúsculas, números e um traço (“-”)"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "Nome “%s” inválido: não são permitidos dois traços (“--”) consecutivos"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Nome “%s” inválido: o último carácter não pode ser um traço (“-”)"
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Nome “%s” inválido: o tamanho máximo é 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name=“%s”> já especificado"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Não é possível adicionar chaves a um esquema de “lista-de”"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name=“%s”> já especificado"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2762,7 +2781,7 @@ msgstr ""
"<key name=“%s”> sobrepõe-se a <key name=“%s”> no <schema id=“%s”>; utilize "
"<override> para alterar o valor"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2771,56 +2790,56 @@ msgstr ""
"Exatamente “type”, “enum” ou “flags” tem de ser especificado como um "
"atributo de <key>"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id=“%s”> (ainda) não definido."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Cadeia de tipo GVariante “%s” inválida"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> especificado mas o esquema não estende nada"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Nenhum <key name='%s'> a sobrepor"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name=“%s”> já especificado"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id=“%s”> já especificado"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> estende-se a um esquema “%s” ainda não existente"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> é uma lista do esquema “%s” que ainda não existe"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Não é possível ser uma lista de um esquema com um caminho"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Impossível estender um esquema com um caminho"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2828,7 +2847,7 @@ msgstr ""
"<schema id=“%s”> é uma lista, que estende o <schema id=“%s”> que não é uma "
"lista"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2837,17 +2856,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> estende <schema id='%s' list-of='%s'> mas “%s” "
"não estende “%s”"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "Um caminho, se indicado, tem de começar e terminar com uma barra"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "O caminho de uma lista tem de terminar com “:/”"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2856,49 +2875,49 @@ msgstr ""
"Aviso: o esquema “%s” tem um caminho “%s”. Caminhos começando com “/apps/”, "
"“/desktop/” ou “/system/” estão obsoletos."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id=“%s”> já especificado"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Elemento <%s> não é permitido dentro de <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Elemento <%s> não é permitido no nível de topo"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Elemento <default> é requerido em <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Não pode surgir texto dentro de <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Aviso: referência unificada a <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "Foi especificado --strict; a terminar."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Todo este ficheiro foi ignorado."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "A ignorar este ficheiro."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2907,7 +2926,7 @@ msgstr ""
"Nenhuma chave “%s” no esquema “%s” tal como especificado no ficheiro de "
"sobreposição “%s”; a ignorar sobreposição desta chave."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2916,7 +2935,7 @@ msgstr ""
"Nenhuma chave “%s” no esquema “%s” tal como especificado no ficheiro de "
"sobreposição “%s” e --strict foi definido; a terminar."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2926,7 +2945,7 @@ msgstr ""
"no esquema “%s” (ficheiro de sobreposição “%s”); a ignorar sobreposição para "
"esta chave."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2936,7 +2955,7 @@ msgstr ""
"no esquema “%s” (ficheiro de sobreposição “%s”) e --strict foi definido; a "
"terminar."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2945,7 +2964,7 @@ msgstr ""
"Erro ao processar a chave “%s” no esquema “%s” tal como especificado no "
"ficheiro de sobreposição “%s”: %s. A ignorar sobreposição para esta chave."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2954,7 +2973,7 @@ msgstr ""
"Erro ao processar a chave “%s” no esquema “%s” tal como especificado no "
"ficheiro de sobreposição “%s”: %s. --strict foi definido; a terminar."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2964,7 +2983,7 @@ msgstr ""
"“%s” está fora do intervalo indicado no esquema; a ignorar sobreposição "
"desta chave."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2974,7 +2993,7 @@ msgstr ""
"“%s” está fora do intervalo indicado no esquema e --strict foi definido; a "
"terminar."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2984,7 +3003,7 @@ msgstr ""
"“%s” não pertence à lista de opções válidas; a ignorar sobreposição desta "
"chave."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2994,23 +3013,23 @@ msgstr ""
"“%s” não pertence à lista de opções válidas e --strict foi definido; a "
"terminar."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Onde armazenar o ficheiro gschemas.compiled"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Abortar em qualquer erro nos esquemas"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Não escrever o ficheiro gschemas.compiled"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Não forçar restrições de nomes de chaves"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3020,26 +3039,26 @@ msgstr ""
"Ficheiros de esquema têm de ter a extensão .gschema.xml,\n"
"e o ficheiro de cache é designado gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Deverá indicar apenas um nome de pasta"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Nenhum ficheiro de esquema encontrado: nada a fazer."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr ""
"Nenhum ficheiro de esquema encontrado: removido o ficheiro de resultado "
"existente."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Nome de ficheiro %s inválido"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Erro ao obter a informação do sistema de ficheiros para %s: %s"
@@ -3048,258 +3067,258 @@ msgstr "Erro ao obter a informação do sistema de ficheiros para %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Montagem que contém o ficheiro %s não encontrada"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Impossível renomear o diretório raiz"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Erro ao renomear o ficheiro %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Impossível renomear o ficheiro, o nome já existe"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Nome de ficheiro inválido"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Erro ao abrir o ficheiro %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Erro ao remover o ficheiro %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Erro ao enviar o ficheiro %s para o lixo: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Impossível criar o diretório de lixo %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Impossível encontrar o diretório de topo para o lixo %s"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Impossível enviar para o lixo montagens internas do sistema"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Impossível encontrar ou criar o diretório de lixo %s para o lixo %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Impossível criar o ficheiro de informação do lixo para %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr ""
"Impossível enviar o ficheiro %s para o lixo através dos limites do sistema "
"de ficheiros"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Impossível enviar o ficheiro %s para o lixo: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Impossível enviar o ficheiro %s para o lixo"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Erro ao criar o diretório %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "O sistema de ficheiros não suporta ligações simbólicas"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Erro ao criar ligação simbólica %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Erro ao mover o ficheiro %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Impossível mover uma pasta sobre uma pasta"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Falha ao criar o ficheiro de cópia de segurança"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Erro ao remover o ficheiro de destino: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Não é suportado mover entre montados"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Impossível determinar a utilização de disco de %s: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Valor do atributo tem de ser não-NULL"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Tipo de atributo inválido (esperada uma cadeia ou inválido)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Nome de atributo extendido inválido"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Erro ao definir o atributo extendido “%s”: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (codificação inválida)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Erro ao obter informação para o ficheiro “%s”: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Erro ao obter informação sobre o descritor do ficheiro: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Tipo de atributo inválido (esperado um uint32)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Tipo de atributo inválido (esperado um uint64)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Tipo de atributo inválido (esperado uma cadeia byte)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Impossível definir permissões em ligações simbólicas"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Erro ao definir as permissões: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Erro ao definir o dono: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "ligação simbólica tem de ser não-NULL"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Erro ao definir a ligação simbólica: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"Erro ao definir a ligação simbólica: ficheiro não é uma ligação simbólica"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Nanosegundos %d extras para a data/hora UNIX %lld são negativos"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr "Nanosegundos %d extras para a data/hora UNIX %lld atinge 1 segundo"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "Data/hora UNIX %lld não cabem em 64 bits"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "Data/hora UNIX %lld estão fora do alcance suportado pelo Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Nome de ficheiro “%s” não pode ser convertido para UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Ficheiro “%s” não pode ser aberto: erro do Windows %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
"Erro ao definir ou modificar a hora de acesso para o ficheiro “%s”: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Erro ao definir a hora de modificação ou acesso: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "O contexto SELinux tem de ser não-NULL"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "O SELinux não está ativo neste sistema"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Erro ao definir o contexto SELinux: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Não é suportada a definição do atributo %s"
@@ -3346,13 +3365,13 @@ msgstr "Erro ao criar a cópia da cópia de segurança: %s"
msgid "Error renaming temporary file: %s"
msgstr "Erro ao renomear ficheiro temporário: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Erro ao truncar ficheiro: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Erro ao abrir o ficheiro “%s”: %s"
@@ -3369,7 +3388,7 @@ msgstr "O ficheiro de destino não é um ficheiro comum"
msgid "The file was externally modified"
msgstr "O ficheiro foi alterado externamente"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Erro ao remover o ficheiro antigo: %s"
@@ -3502,42 +3521,42 @@ msgstr "Versão do gestor de rede demasiado antiga"
msgid "Output stream doesn’t implement write"
msgstr "Fluxo de saída não implementa a escrita"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Soma dos vetores passados ao %s demasiado longa"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Fluxo de origem já está fechado"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Falha de pesquisa de proxy não especificada"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Erro ao resolver “%s”: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s não implementado"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Domínio inválido"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:602
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "O recurso em “%s” não existe"
@@ -3547,16 +3566,16 @@ msgstr "O recurso em “%s” não existe"
msgid "The resource at “%s” failed to decompress"
msgstr "Falha ao descomprimir o recurso em “%s”"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:659
msgid "Resource files cannot be renamed"
msgstr "Os ficheiros de recurso não podem ser renomeados"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:749
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "O recurso em “%s” não é um diretório"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:957
msgid "Input stream doesn’t implement seek"
msgstr "Fluxo de entrada não implementa procura"
@@ -3923,7 +3942,8 @@ msgstr "Socket inválido, a inicialização falhou devido a: %s"
msgid "Socket is already closed"
msgstr "Socket já está fechado"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "Tempo expirou no I/O de socket"
@@ -3932,161 +3952,161 @@ msgstr "Tempo expirou no I/O de socket"
msgid "creating GSocket from fd: %s"
msgstr "a criar o GSocket do fd: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Impossível criar socket: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Foi especificada uma família desconhecida"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Foi especificado um protocolo desconhecido"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "Impossível utilizar operações datagram em sockets não datagram."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Impossível utilizar operações datagram num socket com um tempo de expiração "
"definido."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "impossível obter o endereço local: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "impossível obter o endereço remoto: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "impossível escutar: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Erro ao ligar-se ao endereço: %s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Erro ao juntar-se a um grupo multicast: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Erro ao sair do grupo multicast: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Suporte indisponível para multicast específico da origem"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Família de socket não suportada"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "fonte-específica não é um endereço IPv4"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Nome de ambiente demasiado extenso"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Ambiente não encontrado: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Suporte indisponível para difusão de fonte-específica IPv4"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Suporte indisponível para difusão de fonte-específica IPv6"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Erro ao aceitar a ligação: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Ligação em curso"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Impossível obter o erro pendente: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Erro ao receber os dados: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Erro ao enviar os dados: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Impossível desligar o socket: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Erro ao fechar o socket: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "A aguardar pela condição do socket: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Incapaz de enviar a mensagem: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Vectores de mensagem demasiado grandes"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Erro ao enviar a mensagem: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage não é suportada em Windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Erro ao receber a mensagem: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Impossível ler as credenciais do socket: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials não implementado neste SO"
@@ -4210,7 +4230,7 @@ msgstr "Proxy SOCKSv5 não suporta o tipo de endereço indicado."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Erro de proxy SOCKSv5 desconhecido."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "Falha ao criar canal para comunicar com sub processo (%s)"
@@ -4225,46 +4245,46 @@ msgstr "Os canais não são suportados nesta plataforma"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Impossível manipular a versão %d da codificação GThemedIcon"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Não foram encontrados endereços válidos"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Erro ao realizar a resolução invertida de “%s”: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Erro ao analisar o registo DNS %s: pacote DNS malformado"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Nenhum registo DNS do tipo pedido para “%s”"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Temporariamente indisponível para resolver “%s”"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Erro ao resolver “%s”"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Pacote DNS malformado"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Falha ao analisar a resposta do DNS para \"%s\": "
@@ -4323,58 +4343,58 @@ msgstr "A palavra-passe introduzida está incorreta."
msgid "Sending FD is not supported"
msgstr "O envio de FD não é suportado"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "Era esperada 1 mensagem de controlo, obtida %d"
msgstr[1] "Era esperada 1 mensagem de controlo, obtidas %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Tipo inesperado de dados basilares"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "Esperado um fd, obtido %d\n"
msgstr[1] "Esperado um fd, obtidos %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Recebido um fd inválido"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "A receção FD não é suportada"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Erro ao enviar as credenciais: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Erro ao verificar se SO_PASSCRED está ativo para o socket: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Erro ao ativar SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Deveria ler um único byte para receber credenciais mas foram lidos zero bytes"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Não eram esperadas mensagens de controlo, obtidas %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Erro ao desativar SO_PASSCRED: %s"
@@ -4390,7 +4410,7 @@ msgstr "Erro ao ler do descritor do ficheiro: %s"
msgid "Error closing file descriptor: %s"
msgstr "Erro ao fechar o descritor do ficheiro: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Raiz do sistema de ficheiros"
@@ -4474,131 +4494,126 @@ msgstr "Executar um serviço dbus"
msgid "Wrong args\n"
msgstr "Argumentos incorretos\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Atributo “%s” inesperado para o elemento “%s”"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Atributo “%s” do elemento “%s” não foi encontrado"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Etiqueta “%s” inesperada, esperada a etiqueta “%s”"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Etiqueta “%s” inesperada dentro de “%s”"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Data/hora “%s” inválida no ficheiro marcado"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr ""
"Não foi encontrado nenhum ficheiro de marcador válido nos pastas de dados"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Já existe um marcador para o URI “%s”"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Não foi encontrado nenhum marcador para o URI “%s”"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Nenhum tipo MIME definido no marcador para o URI “%s”"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Nenhum sinal privado definido no marcador para o URI “%s”"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "Nenhum grupo definido no marcador para o URI “%s”"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Nenhuma aplicação denominada “%s” registou um marcador para “%s”"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Falha ao expandir a linha de execução “%s” com o URI “%s”"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Sequência inválida na conversão da entrada"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Sequência de caracteres parcial no final da origem"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr ""
"Impossível converter contingência “%s” para conjunto de caracteres “%s”"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Sequência de bytes nula na origem da conversão"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Sequência de bytes nula na saída da conversão"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "O URI “%s” não é um URI absoluto que utiliza o esquema “file”"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "O URI de ficheiro local “%s” não deverá incluir um “#”"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "O URI “%s” é inválido"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "O nome de máquina do URI “%s” é inválido"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "O URI “%s” contém caracteres mascarados inválidos"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "O nome de caminho “%s” não é um caminho absoluto"
@@ -5021,79 +5036,79 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "Erro ao abrir o diretório “%s”: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "Impossível alocar %lu byte para ler o ficheiro “%s”"
msgstr[1] "Impossível alocar %lu bytes para ler o ficheiro “%s”"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Erro ao ler o ficheiro %s: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Ficheiro “%s” é demasiado grande"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Falha ao ler do ficheiro “%s”: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Falha ao abrir o ficheiro “%s”: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Falha ao obter atributos do ficheiro “%s”: falha no fstat(): %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Falha ao abrir o ficheiro “%s”: falha no fdopen(): %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "Falha ao renomear o ficheiro “%s” para “%s”: falha no g_rename(): %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Falha ao escrever o ficheiro “%s”: falha no write(): %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Falha ao escrever o ficheiro “%s”: falha no fsync(): %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Falha ao criar o ficheiro “%s”: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "Impossível remover o ficheiro “%s” existente: falha no g_unlink(): %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Modelo “%s” inválido, não deveria conter um “%s”"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Modelo “%s” não contém XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Falha ao ler a ligação simbólica “%s”: %s"
@@ -5120,15 +5135,15 @@ msgstr "Canal termina num carácter parcial"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Impossível efetuar uma leitura em bruto em g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Impossível encontrar um ficheiro de chave válido nas pastas procuradas"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Não é um ficheiro normal"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5136,49 +5151,49 @@ msgstr ""
"O ficheiro de chave contém a linha “%s” que não é um par chave-valor, grupo "
"ou comentário"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Nome de grupo inválido: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Ficheiro de chave não começa com um grupo"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Nome de chave inválida: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Ficheiro de chave contém uma codificação não suportada “%s”"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Ficheiro de chave não possui um grupo “%s”"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Ficheiro de chave não possui a chave “%s” no grupo “%s”"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "Ficheiro de chave contém a chave “%s” com o valor “%s” que não é UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr "Ficheiro de chaves contém a chave “%s” cujo valor não é interpretável."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5187,82 +5202,82 @@ msgstr ""
"Ficheiro de chave contém a chave “%s” no grupo “%s” que tem um valor que não "
"pode ser interpretado."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Chave “%s” no grupo “%s” tem o valor “%s” onde %s era esperado"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4353
msgid "Key file contains escape character at end of line"
msgstr "Ficheiro de chave contém caracteres mascarados no final da linha"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4375
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr ""
"Ficheiro de chave contém uma sequência de caracteres mascarados inválida “%s”"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4520
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Impossível interpretar o valor “%s” como um numérico."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4534
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Valor inteiro “%s” para além do limite permitido"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4567
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Impossível interpretar o valor “%s” como um número vírgula flutuante."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4606
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Impossível interpretar o valor “%s” como lógico."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr "Falha ao obter atributos do ficheiro “%s%s%s%s”: falha no fstat(): %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Falha ao mapear %s%s%s%s: falha no mmap(): %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Falha ao abrir o ficheiro “%s”: falha no open(): %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Erro na linha %d, carácter %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Texto codificado em UTF-8 no nome inválido — “%s” inválido"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "“%s” não é um nome válido"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "“%s” não é um nome válido: “%c”"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Erro na linha %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5272,7 +5287,7 @@ msgstr ""
"referência de carácter (&#234; por exemplo) — talvez o dígito seja demasiado "
"grande"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5282,24 +5297,24 @@ msgstr ""
"utilizado um carácter “i comercial” sem intenção de iniciar uma entidade — "
"mascare-o como &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Referência de carácter “%-.*s” não codifica um carácter permitido"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Entidade vazia “&;” avistada; entidades válidas são: &amp; &quot; &lt; &gt; "
"&apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Nome de entidade “%-.*s” é desconhecido"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5308,11 +5323,11 @@ msgstr ""
"carácter “e comercial” sem intenção de iniciar uma entidade — mascare-o como "
"&amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Documento tem de começar com um elemento (ex. <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5321,7 +5336,7 @@ msgstr ""
"“%s” não é um carácter válido após um carácter “<”; pode não iniciar um nome "
"de elemento"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5330,12 +5345,12 @@ msgstr ""
"Carácter estranho “%s”, era esperado um carácter “>” para terminar a "
"etiqueta de elemento vazio “%s”"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Demasiados atributos no elemento “%s”"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5343,7 +5358,7 @@ msgstr ""
"Carácter estranho “%s”, era esperado um “=” após o nome do atributo “%s” do "
"elemento “%s”"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5354,7 +5369,7 @@ msgstr ""
"etiqueta inicial do elemento “%s”, ou opcionalmente um atributo; talvez "
"tenha sido utilizado um carácter inválido no nome de um atributo"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5363,7 +5378,7 @@ msgstr ""
"Carácter estranho “%s”, era esperada uma abertura de aspa após o sinal de "
"igual ao atribuir valor ao atributo “%s” do elemento “%s”"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5372,7 +5387,7 @@ msgstr ""
"“%s” não é um carácter válido após os caracteres \"</\"; “%s” pode não "
"iniciar o nome de um elemento"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5381,25 +5396,25 @@ msgstr ""
"“%s” não é um carácter válido após o nome do elemento de fecho “%s”; o "
"carácter permitido é “>”"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Elemento “%s” foi fechado, nenhum elemento está atualmente aberto"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "Elemento “%s” foi fechado, mas o elemento atualmente aberto é “%s”"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Documento estava vazio ou só continha espaços"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "Documento terminou inesperadamente logo após um carácter menor que “<”"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5408,7 +5423,7 @@ msgstr ""
"Documento terminou inesperadamente com elementos ainda abertos — “%s” foi o "
"último elemento aberto"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5417,21 +5432,21 @@ msgstr ""
"Documento terminou inesperadamente, era esperado um maior que \">\" para "
"terminar a etiqueta <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Documento terminou inesperadamente dentro do nome de um elemento"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Documento terminou inesperadamente dentro do nome de um atributo"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr ""
"Documento terminou inesperadamente dentro da etiqueta de abertura de um "
"elemento."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5439,25 +5454,25 @@ msgstr ""
"Documento terminou inesperadamente após o sinal de igual posterior a um nome "
"de atributo; nenhum valor de atributo"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Documento terminou inesperadamente dentro do valor de um atributo"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr ""
"Documento terminou inesperadamente dentro da etiqueta de fecho do elemento "
"“%s”"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Documento terminou inesperadamente dentro da etiqueta de fecho do elemento "
"para um elemento não aberto"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"Documento terminou inesperadamente dentro de um comentário ou instrução de "
@@ -5522,187 +5537,187 @@ msgstr "Argumento em falta para %s"
msgid "Unknown option %s"
msgstr "Opção %s desconhecida"
-#: glib/gregex.c:436
+#: glib/gregex.c:479
msgid "corrupted object"
msgstr "objeto corrompido"
-#: glib/gregex.c:438
+#: glib/gregex.c:481
msgid "out of memory"
msgstr "sem memória livre"
-#: glib/gregex.c:443
+#: glib/gregex.c:487
msgid "backtracking limit reached"
msgstr "limite de retroceder alcançado"
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:498
msgid "internal error"
msgstr "erro interno"
-#: glib/gregex.c:456
+#: glib/gregex.c:500
msgid "the pattern contains items not supported for partial matching"
msgstr "o padrão contém itens não suportados para comparação parcial"
-#: glib/gregex.c:458
+#: glib/gregex.c:502
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"referências anteriores como condições não são suportadas para comparação "
"parcial"
-#: glib/gregex.c:464
+#: glib/gregex.c:508
msgid "recursion limit reached"
msgstr "alcançado o limite de recursividade"
-#: glib/gregex.c:466
+#: glib/gregex.c:510
msgid "bad offset"
msgstr "desvio inválido"
-#: glib/gregex.c:468
+#: glib/gregex.c:512
msgid "recursion loop"
msgstr "recursão infinita"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:515
msgid "matching mode is requested that was not compiled for JIT"
msgstr ""
"é solicitado o modo de correspondência que não foi compilado para o EIC"
-#: glib/gregex.c:475
+#: glib/gregex.c:536 glib/gregex.c:1838
msgid "unknown error"
msgstr "erro desconhecido"
-#: glib/gregex.c:496
+#: glib/gregex.c:557
msgid "\\ at end of pattern"
msgstr "\\ no final do padrão"
-#: glib/gregex.c:500
+#: glib/gregex.c:561
msgid "\\c at end of pattern"
msgstr "\\c no final do padrão"
-#: glib/gregex.c:505
+#: glib/gregex.c:566
msgid "unrecognized character following \\"
msgstr "carácter desconhecido após \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:570
msgid "numbers out of order in {} quantifier"
msgstr "números fora da ordem no quantificador {}"
-#: glib/gregex.c:513
+#: glib/gregex.c:574
msgid "number too big in {} quantifier"
msgstr "número demasiado grande no quantificador {}"
-#: glib/gregex.c:517
+#: glib/gregex.c:578
msgid "missing terminating ] for character class"
msgstr "falta o ] de fecho da classe de carácter"
-#: glib/gregex.c:521
+#: glib/gregex.c:582
msgid "invalid escape sequence in character class"
msgstr "sequência de escape inválida na classe de carácter"
-#: glib/gregex.c:525
+#: glib/gregex.c:586
msgid "range out of order in character class"
msgstr "intervalo fora da ordem na classe de carácter"
-#: glib/gregex.c:530
+#: glib/gregex.c:591
msgid "nothing to repeat"
msgstr "nada a repetir"
-#: glib/gregex.c:534
+#: glib/gregex.c:595
msgid "unrecognized character after (? or (?-"
msgstr "carácter desconhecido após (? or (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:599
msgid "POSIX named classes are supported only within a class"
msgstr "Classes denominadas POSIX apenas são suportadas dentro de uma classe"
-#: glib/gregex.c:542
+#: glib/gregex.c:603
msgid "POSIX collating elements are not supported"
msgstr "Não são suportados os elementos de junção POSIX"
-#: glib/gregex.c:548
+#: glib/gregex.c:609
msgid "missing terminating )"
msgstr "falta o ) de fecho"
-#: glib/gregex.c:552
+#: glib/gregex.c:613
msgid "reference to non-existent subpattern"
msgstr "referência a padrão inexistente"
-#: glib/gregex.c:556
+#: glib/gregex.c:617
msgid "missing ) after comment"
msgstr "falta o ) após o comentário"
-#: glib/gregex.c:560
+#: glib/gregex.c:621
msgid "regular expression is too large"
msgstr "expressão regular demasiado extensa"
-#: glib/gregex.c:564
+#: glib/gregex.c:625
msgid "malformed number or name after (?("
msgstr "número ou nome mal formado após (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:629
msgid "lookbehind assertion is not fixed length"
msgstr "asserção de verificação anterior não é de largura fixa"
-#: glib/gregex.c:572
+#: glib/gregex.c:633
msgid "conditional group contains more than two branches"
msgstr "grupo condicional contém mais de dois ramos"
-#: glib/gregex.c:576
+#: glib/gregex.c:637
msgid "assertion expected after (?("
msgstr "esperada uma asserção após (?("
-#: glib/gregex.c:580
+#: glib/gregex.c:641
msgid "a numbered reference must not be zero"
msgstr "uma referência numerada não pode ser zero"
-#: glib/gregex.c:584
+#: glib/gregex.c:645
msgid "unknown POSIX class name"
msgstr "nome de classe POSIX desconhecido"
-#: glib/gregex.c:589
+#: glib/gregex.c:650
msgid "character value in \\x{...} sequence is too large"
msgstr "valor do carácter na sequência \\x{...} é demasiado grande"
-#: glib/gregex.c:593
+#: glib/gregex.c:654
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C não é permitido numa asserção de verificação anterior"
-#: glib/gregex.c:597
+#: glib/gregex.c:658
msgid "missing terminator in subpattern name"
msgstr "falta o terminador no nome do subpadrão"
-#: glib/gregex.c:601
+#: glib/gregex.c:662
msgid "two named subpatterns have the same name"
msgstr "dois subpadrões denominados têm o mesmo nome"
-#: glib/gregex.c:605
+#: glib/gregex.c:666
msgid "malformed \\P or \\p sequence"
msgstr "sequência \\P ou \\p mal formada"
-#: glib/gregex.c:609
+#: glib/gregex.c:670
msgid "unknown property name after \\P or \\p"
msgstr "nome de propriedade desconhecido após \\P ou \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:674
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "nome do subpadrão é demasiado extenso (máximo de 32 caracteres)"
-#: glib/gregex.c:617
+#: glib/gregex.c:678
msgid "too many named subpatterns (maximum 10,000)"
msgstr "demasiados subpadrões denominados (máximo de 10.000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:682
msgid "octal value is greater than \\377"
msgstr "valor octal é maior do que \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:686
msgid "DEFINE group contains more than one branch"
msgstr "Grupo DEFINE contém mais de um ramo"
-#: glib/gregex.c:629
+#: glib/gregex.c:690
msgid "inconsistent NEWLINE options"
msgstr "opções de NEWLINE inconsistentes"
-#: glib/gregex.c:633
+#: glib/gregex.c:694
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5710,119 +5725,119 @@ msgstr ""
"\\g não é seguido de um nome ou número delimitado por chavetas, parenteses "
"ou aspas ou um número simples"
-#: glib/gregex.c:638
+#: glib/gregex.c:699
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "não é permitido um argumento para (*ACCEPT), (*FAIL), ou (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:703
msgid "(*VERB) not recognized"
msgstr "(*VERB) não é reconhecido"
-#: glib/gregex.c:646
+#: glib/gregex.c:707
msgid "number is too big"
msgstr "número é demasiado grande"
-#: glib/gregex.c:650
+#: glib/gregex.c:711
msgid "missing subpattern name after (?&"
msgstr "falta o nome do subpadrão após (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:715
msgid "different names for subpatterns of the same number are not allowed"
msgstr "não são permitidos nomes diferentes para subpadrões do mesmo número"
-#: glib/gregex.c:658
+#: glib/gregex.c:719
msgid "(*MARK) must have an argument"
msgstr "(*MARK) tem de ter um argumento"
-#: glib/gregex.c:662
+#: glib/gregex.c:723
msgid "\\c must be followed by an ASCII character"
msgstr "\\c não pode ser seguido de um carácter ASCII"
-#: glib/gregex.c:666
+#: glib/gregex.c:727
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"\\k não é seguido de um nome delimitado por chavetas, parenteses angulares "
"ou aspas"
-#: glib/gregex.c:670
+#: glib/gregex.c:731
msgid "\\N is not supported in a class"
msgstr "\\N não é suportado numa classe"
-#: glib/gregex.c:674
+#: glib/gregex.c:735
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "nome é demasiado extenso em (*MARK), (*PRUNE), (*SKIP), ou (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:739 glib/gregex.c:875
msgid "code overflow"
msgstr "código fora dos limites"
-#: glib/gregex.c:682
+#: glib/gregex.c:743
msgid "unrecognized character after (?P"
msgstr "carácter desconhecido após (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:747
msgid "overran compiling workspace"
msgstr "derramou fora da área de trabalho de compilação"
-#: glib/gregex.c:690
+#: glib/gregex.c:751
msgid "previously-checked referenced subpattern not found"
msgstr "subpadrão referenciado previamente verificado não foi encontrado"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:874 glib/gregex.c:1121 glib/gregex.c:2444
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Erro ao comparar a expressão regular %s: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1721
msgid "PCRE library is compiled without UTF8 support"
msgstr "Biblioteca PCRE está compilada sem suporte UTF8"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1729
msgid "PCRE library is compiled with incompatible options"
msgstr "Biblioteca PCRE está compilada com opções incompatíveis"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1847
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Erro ao compilar a expressão regular '%s' no carácter %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2887
msgid "hexadecimal digit or “}” expected"
msgstr "esperado um dígito hexadecimal ou \"}\""
-#: glib/gregex.c:2802
+#: glib/gregex.c:2903
msgid "hexadecimal digit expected"
msgstr "esperado um dígito hexadecimal"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2943
msgid "missing “<” in symbolic reference"
msgstr "falta “<” na referência simbólica"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2952
msgid "unfinished symbolic reference"
msgstr "referência simbólica por terminar"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2959
msgid "zero-length symbolic reference"
msgstr "referência simbólica de tamanho zero"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2970
msgid "digit expected"
msgstr "esperado um dígito"
-#: glib/gregex.c:2887
+#: glib/gregex.c:2988
msgid "illegal symbolic reference"
msgstr "referência simbólica ilegal"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3051
msgid "stray final “\\”"
msgstr "“\\” final a mais"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3055
msgid "unknown escape sequence"
msgstr "sequência de escape desconhecida"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3065
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Erro ao processar o texto de substituição “%s” no carácter %lu: %s"
@@ -5851,361 +5866,366 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Texto estava vazio (ou apenas continha espaços)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:319
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Falha ao ler dados de sub processo (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:471
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Erro inesperado ao ler dados de sub processo (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:556
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Erro inesperado em waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1175 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Sub processo terminou com o código %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1183
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Sub processo morto com o sinal %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1190
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Sub processo parado com o sinal %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1197
#, c-format
msgid "Child process exited abnormally"
msgstr "O sub processo terminou anormalmente"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2027 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Falha ao ler de canal acima (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2399
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Falha ao criar sub processo “%s” (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2525
#, c-format
msgid "Failed to fork (%s)"
msgstr "Falha ao bifurcar \"fork\" (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2685 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Falha ao ir para o diretório “%s” (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2695
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Falha ao executar o sub processo “%s” (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2705
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Falha ao abrir o ficheiro para remapear o descritor do ficheiro (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2713
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Falha ao duplicar descritor do ficheiro para o sub processo (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2722
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Falha ao efetuar fork de sub processo (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2730
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
-msgstr "Falha em fechar o descritor de ficheiro para sub processo (%s)"
+msgstr "Falha ao fechar o descritor de ficheiro para sub processo (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2738
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Erro desconhecido ao executar sub processo “%s”"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2762
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
-msgstr "Impossível ler dados suficientes de canal pid acima (%s)"
+msgstr "Falha ao ler dados suficientes de canal pid acima (%s)"
+
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Argumento de fontes FDs inválido"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Falha ao ler dados de sub processo"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Falha ao executar sub processo (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Falha ao dup() no sub processo (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Nome de programa inválido: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Cadeia inválida no vetor de argumentos na posição %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Cadeia inválida no ambiente: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Pasta de trabalho inválida: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Falha ao executar aplicação auxiliar (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
msgstr ""
"Erro inesperado no g_io_channel_win32_poll() ao ler dados de um sub processo"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Cadeia vazia não é um número"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "“%s” não é um número com sinal"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Número “%s” está fora do limite [%s, %s]"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "“%s” não é um valor sem sinal"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "%-encoding inválido no URI"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Carácter ilegal no URI"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Caracteres non-UTF-8 no URI"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Endereço IPv6 inválido ‘%.*s’ no URI"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Endereço IP codificado ilegal ‘%.*s’ no URI"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Nome de máquina ilegalmente internacionalizado '%.*s' no URI"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Impossível processar porto ‘%.*s’ no URI"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Porto ‘%.*s’ no URI fora de alcance"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "URI ‘%s’ não é um URI absoluto"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "URI ‘%s’ não possui uma componente destino"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "URI não é absoluto, e nenhuma base URI foi fornecida"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "‘=’ e valor de parâmetro em falta"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Falha ao alocar memória"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Carácter fora do limite para UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Sequência inválida na conversão da entrada"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Carácter fora do limite para UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "byte"
msgstr[1] "bytes"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bit"
@@ -6213,7 +6233,7 @@ msgstr[1] "bits"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6221,7 +6241,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6229,7 +6249,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6238,14 +6258,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6253,14 +6273,14 @@ msgstr[0] "%s byte"
msgstr[1] "%s bytes"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s bit"
msgstr[1] "%s bits"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6272,39 +6292,42 @@ msgstr[1] "%u bytes"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
+#~ msgid "GApplication options"
+#~ msgstr "Opções GApplication"
+
#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "nome de edição: %s\n"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "O URI de ficheiro local “%s” não deverá incluir um “#”"
#~ msgid "internal error or corrupted object"
#~ msgstr "erro interno ou objeto corrompido"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 4b9c9bf34..b159cc327 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -15,24 +15,24 @@
# Felipe Braga <fbobraga@gmail.com>, 2015.
# Artur de Aquino Morais <artur.morais93@outlook.com>, 2016.
# Enrico Nicoletto <hiko@duck.com>, 2013-2014, 2016, 2021-2022.
-# Rafael Fontenelle <rafaelff@gnome.org>, 2013-2022.
# Matheus Barbosa <mdpb.matheus@gmail.com>, 2022.
-# Leônidas Araújo <leorusvellt@hotmail.com>, 2022.
+# Leônidas Araújo <leorusvellt@hotmail.com>, 2022-2023.
+# Rafael Fontenelle <rafaelff@gnome.org>, 2013-2023.
#
msgid ""
msgstr ""
"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-27 14:11+0000\n"
-"PO-Revision-Date: 2022-08-05 13:11-0300\n"
-"Last-Translator: Leônidas Araújo <leorusvellt@hotmail.com>\n"
-"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
+"POT-Creation-Date: 2023-08-31 11:01+0000\n"
+"PO-Revision-Date: 2023-09-17 22:27-0300\n"
+"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
+"Language-Team: Brazilian Portuguese <https://br.gnome.org/traducao>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
-"X-Generator: Gtranslator 40.0\n"
+"X-Generator: Gtranslator 45.alpha0\n"
"X-Project-Style: gnome\n"
"X-DL-Team: pt_BR\n"
"X-DL-Module: glib\n"
@@ -40,22 +40,22 @@ msgstr ""
"X-DL-Domain: po\n"
"X-DL-State: Translating\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Definir aplicativos padrão ainda não suportado"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Definir o aplicativo como usado pela última vez para o tipo ainda não "
"suportado"
-#: gio/gappinfo.c:810
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "Falha ao encontrar o aplicativo padrão para o tipo de conteúdo '%s'"
-#: gio/gappinfo.c:870
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Falha ao encontrar o aplicativo padrão para o Esquema de URI “%s”"
@@ -159,7 +159,7 @@ msgstr ""
"Identificador do aplicativo em formato D-Bus (ex: org.exemplo.visualizador)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "ARQUIVO"
@@ -258,11 +258,11 @@ msgstr "não foi possível se conectar ao D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "erro ao enviar %s mensagens ao aplicativo: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "o nome da ação deve ser fornecido após o id do aplicativo\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -272,25 +272,25 @@ msgstr ""
"os nomes de ações devem consistir de apenas caracteres alfanuméricos, “-” e "
"“.”\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "erro ao analisar o parâmetro da ação: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "as ações aceitam um máximo de um parâmetro\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "o comando list-actions leva apenas um id de aplicativo"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "não foi possível localizar o arquivo desktop para o aplicativo %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -302,7 +302,7 @@ msgstr ""
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Valor muito alto passado para %s"
@@ -325,7 +325,7 @@ msgstr "O fluxo já está fechado"
msgid "Truncate not supported on base stream"
msgstr "Não há suporte para truncar fluxo base"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -345,13 +345,13 @@ msgstr "Espaço insuficiente no destino"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
#: glib/gutf8.c:892 glib/gutf8.c:1346
msgid "Invalid byte sequence in conversion input"
msgstr "Sequência de bytes inválida na entrada de conversão"
#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Erro durante a conversão: %s"
@@ -410,18 +410,18 @@ msgstr ""
msgid "Unexpected early end-of-stream"
msgstr "Fim do fluxo inesperadamente prematuro"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Não há suporte a chave “%s” na entrada de endereço “%s”"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr ""
"Combinação de pares chave/valor sem sentido na entrada de endereço “%s”"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -430,7 +430,7 @@ msgstr ""
"O endereço “%s” é inválido (é necessário exatamente um dentre: caminho, "
"diretório, diretório temporário ou chaves abstratas)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -563,7 +563,7 @@ msgstr ""
"Não foi possível determinar o endereço de barramento da sessão (sem "
"implementação para este SO)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -572,7 +572,7 @@ msgstr ""
"Não foi possível determinar o endereço de barramento da variável de ambiente "
"DBUS_STARTER_BUS_TYPE — valor desconhecido “%s”"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -580,7 +580,7 @@ msgstr ""
"Não foi possível determinar o endereço do barramento porque a variável de "
"ambiente DBUS_STARTER_BUS_TYPE não está definida"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Tipo de barramento %d desconhecido"
@@ -601,20 +601,24 @@ msgstr ""
"Foram esgotados todos mecanismos de autenticação disponíveis (tentado: %s) "
"(disponível: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Falta de conteúdo inesperada ao tentar ler um byte"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "IDs de usuário devem ser o mesmo para a ponta e o servidor"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Cancelado via GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Erro ao obter informação para o diretório “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -622,32 +626,32 @@ msgstr ""
"As permissões no diretório “%s” estão malformadas. É esperado 0700, mas foi "
"obtido 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Erro ao criar o diretório “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1095 gio/gfile.c:1333
#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gfile.c:3797 gio/gfile.c:3937 gio/gfile.c:4349 gio/gfile.c:4819
+#: gio/gfile.c:5230 gio/gfile.c:5315 gio/gfile.c:5405 gio/gfile.c:5502
+#: gio/gfile.c:5589 gio/gfile.c:5690 gio/gfile.c:8819 gio/gfile.c:8909
+#: gio/gfile.c:8993 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Operação sem suporte"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Erro ao abrir o chaveiro “%s” para leitura: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "A linha %d do chaveiro em “%s” com o conteúdo “%s” está malformado"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -655,7 +659,7 @@ msgstr ""
"O primeiro símbolo da linha %d do chaveiro em “%s” com o conteúdo “%s” está "
"malformado"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -663,167 +667,171 @@ msgstr ""
"O segundo símbolo da linha %d do chaveiro em “%s” com o conteúdo “%s” está "
"malformado"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Não foi possível localizar um anexo com o ID %d no chaveiro em “%s”"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Erro ao criar o arquivo de bloqueio “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Erro ao excluir o arquivo de bloqueio anterior “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Erro ao fechar o arquivo de bloqueio (desvinculado) “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Erro ao desvincular o arquivo de bloqueio “%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Erro ao abrir o chaveiro “%s” para escrita: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Adicionalmente, liberar o bloqueio de “%s” também falhou: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "A conexão está fechada"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "O tempo limite foi alcançado"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Foram encontrados sinalizadores sem suporte ao construir uma conexão do lado "
"do cliente"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"Nenhuma interface “org.freedesktop.DBus.Properties” no objeto no caminho %s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Nenhuma propriedade “%s”"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "A propriedade “%s” não pode ser lida"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "A propriedade “%s” não pode ser escrita"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Erro ao definir a propriedade “%s”: o tipo esperado é “%s”, mas obteve “%s”"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Nenhuma interface “%s”"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Nenhuma interface “%s” no objeto no caminho %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Método inexistente “%s”"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "O tipo da mensagem, “%s”, não equivale ao tipo esperado “%s”"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Um objeto já foi exportado para a interface %s em %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Não foi possível obter a propriedade %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Não foi possível definir a propriedade %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "O método “%s” retornou o tipo “%s”, mas é esperado “%s”"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "O método “%s” na interface “%s” com a assinatura “%s” não existe"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Uma subárvore já foi exportada para %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "O objeto não existe no caminho “%s”"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "o tipo é INVALID"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
msgstr ""
-"Mensagem de METHOD_CALL: O campo de cabeçalho PATH ou MEMBER está faltando"
+"Mensagem de METHOD_CALL: O campo de cabeçalho PATH ou MEMBER está faltando "
+"ou é inválido"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
msgstr ""
-"Mensagem de METHOD_RETURN: O campo de cabeçalho REPLY_SERIAL está faltando"
+"Mensagem de METHOD_RETURN: O campo de cabeçalho REPLY_SERIAL está faltando "
+"ou é inválido"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
msgstr ""
"Mensagem de ERROR: O campo de cabeçalho REPLY_SERIAL ou ERROR_NAME está "
-"faltando"
+"faltando ou é inválido"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
msgstr ""
"Mensagem de SIGNAL: O campo de cabeçalho PATH, INTERFACE ou MEMBER está "
-"faltando"
+"faltando ou é inválido"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -831,7 +839,7 @@ msgstr ""
"Mensagem de SIGNAL: O campo de cabeçalho PATH está usando o valor reservado /"
"org/freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -839,21 +847,21 @@ msgstr ""
"Mensagem de SIGNAL: O campo de cabeçalho INTERFACE está usando o valor "
"reservado org.freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "Ao tentar ler %lu byte obteve-se %lu"
msgstr[1] "Ao tentar ler %lu bytes obteve-se %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr ""
"Era esperado um byte NUL (nulo) após o texto “%s”, mas foi localizado o byte "
"%d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -863,21 +871,21 @@ msgstr ""
"posição %d (tamanho do texto é %d). O texto UTF-8 válido até este ponto era "
"“%s”"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Valor aninhado profundo demais"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "O valor “%s” analisado não é um objeto de caminho D-Bus válido"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "O valor “%s” analisado não é uma assinatura D-Bus válida"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -890,7 +898,7 @@ msgstr[1] ""
"Foi encontrado um vetor com tamanho de %u bytes. O tamanho máximo é de 2<<26 "
"bytes (64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -900,16 +908,16 @@ msgstr ""
"comprimento múltiplo de %u bytes, porém foi localizado %u bytes em "
"comprimento"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Estruturas (tuplas) vazias não são permitidas no D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "O valor “%s” analisado para variante não é uma assinatura D-Bus válida"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -917,7 +925,7 @@ msgstr ""
"Erro ao desserializar GVariant com o texto de tipo “%s” do formato "
"delimitado pelo D-Bus"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -926,31 +934,31 @@ msgstr ""
"Valor identificador de endian inválido. Era esperado 0x6c (“l”) ou 0x42 "
"(“B”), mas foi localizado o valor 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr ""
"Versão majoritária de protocolo inválida. Era esperado 1, mas foi localizado "
"%d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Cabeçalho da assinatura localizado, mas não é do tipo assinatura"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"O cabeçalho de assinatura foi localizado com a assinatura “%s”, mas o corpo "
"da mensagem está vazio"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr ""
"O valor “%s” analisado não é uma assinatura D-Bus válida (para o corpo)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -961,11 +969,11 @@ msgstr[1] ""
"Nenhum cabeçalho de assinatura na mensagem, mas o corpo da mensagem tem %u "
"bytes"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Não foi possível desserializar a mensagem: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -973,7 +981,7 @@ msgstr ""
"Erro ao serializar GVariant com o texto de tipo “%s” para o formato "
"delimitado pelo D-Bus"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
@@ -981,18 +989,18 @@ msgstr ""
"O número de descritores de arquivo na mensagem (%d) difere do campo de "
"cabeçalho (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Não foi possível serializar a mensagem: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
"O corpo da mensagem tem a assinatura “%s”, mas não há um cabeçalho de "
"assinatura"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -1001,54 +1009,54 @@ msgstr ""
"O corpo da mensagem tem o tipo de assinatura “%s”, mas a assinatura no campo "
"de cabeçalho é “%s”"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
"O corpo da mensagem está vazio, mas a assinatura no campo de cabeçalho é "
"“(%s)”"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Retorno de erro com o corpo de tipo “%s”"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Retorno de erro com o corpo vazio"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Digite qualquer tecla para fechar esta janela)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "A sessão dbus não está em execução, e o início automático falhou"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Não foi possível obter o perfil da máquina: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Não foi possível carregar %s ou %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Erro ao chamar StartServiceByName para %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Resposta %d inesperada do método StartServiceByName(\"%s\")"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1058,27 +1066,27 @@ msgstr ""
"dono e o proxy foi construído com o sinalizador "
"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Sem suporte a espaço de nome abstrato"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr ""
"Não foi possível especificar o arquivo de valor de uso único ao criar um "
"servidor"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Erro ao gravar o arquivo de valor de uso único em “%s”: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "O texto “%s” não é válido para GUID D-Bus"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Não é possível escutar no transporte “%s” por falta de suporte"
@@ -1106,14 +1114,14 @@ msgstr ""
"\n"
"Use “%s COMANDO --help” para obter ajuda de cada comando.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Erro: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Erro ao analisar XML de introspecção: %s\n"
@@ -1123,50 +1131,50 @@ msgstr "Erro ao analisar XML de introspecção: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Erro: %s não é um nome válido\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Erro: %s não é um caminho de objeto válido\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Conectar ao barramento de sistema"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Conectar ao barramento de sessão"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Conectar ao endereço D-Bus escolhido"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Opções de conexão de ponto final:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Opções especificando a conexão de ponto final"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Nenhuma conexão de ponto final especificada"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Múltiplas conexões de ponto final especificadas"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr ""
"Aviso: De acordo com os dados de introspecção a interface “%s” não existe\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1175,166 +1183,166 @@ msgstr ""
"Aviso: De acordo com os dados de introspecção o método “%s” não existe na "
"interface “%s”\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Destino opcional para o sinal (nome único)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Caminho do objeto para emitir sinal"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Nome de sinal e de interface"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Emitir um sinal."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Erro ao conectar: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Erro: %s não é um nome válido de barramento exclusivo.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Erro: O caminho do objeto não foi especificado\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Erro: O nome do sinal não foi especificado\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Erro: O nome do sinal “%s” é inválido\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Erro: %s não é um nome de interface válido\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Erro: %s não é um nome de membro válido\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Erro ao analisar o parâmetro %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Erro limpando conexão: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Nome do destino para chamar um método"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Caminho do objeto para chamar um método"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Nome de método e de interface"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Tempo limite em segundos"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Permitir autorização interativa"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Chamar um método no objeto remoto."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Erro: O destino não foi especificado\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Erro: %s não é um nome de barramento válido\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Erro: O nome do método não foi especificado\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Erro: O nome do método “%s” é inválido\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Erro ao analisar o parâmetro %d do tipo “%s”: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Erro ao adicionar manipulador %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Nome do destino para introspecção"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Caminho do objeto para introspecção"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Exibir XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Auto-examinar filhos"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Apenas imprimir as propriedades"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Introspecção de um objeto remoto."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Nome do destino para monitorar"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Caminho do objeto para monitorar"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Monitora um objeto remoto."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr ""
"Erro: não é possível monitorar uma conexão que não seja de barramento de "
"mensagem\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Serviço a ser ativado antes de esperar por uma outra (nome conhecido)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1342,69 +1350,74 @@ msgstr ""
"Tempo limite de espera antes de sair com um erro (segundos); 0 para nenhum "
"tempo limite (padrão)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPÇÃO…] NOME-BARRAMENTO"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Espera por um nome de barramento para aparecer."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Erro: Um serviço a ser ativado deve ser especificado.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Erro: Um serviço a ser esperado deve ser especificado.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Erro: Número excessivo de argumentos.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Erro: %s não é um nome válido de barramento conhecido.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Não autorizado para alterar configurações de depuração"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5112
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Sem nome"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "O arquivo da área de trabalho não especifica o campo Exec"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Não é possível localizar o terminal requerido para o aplicativo"
-#: gio/gdesktopappinfo.c:3630
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Programa “%s” não encontrado em $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
"Não é possível criar pasta de configuração do aplicativo do usuário %s: %s"
-#: gio/gdesktopappinfo.c:3634
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Não é possível criar pasta de configuração MIME do usuário %s: %s"
-#: gio/gdesktopappinfo.c:3876 gio/gdesktopappinfo.c:3900
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "A informação do aplicativo carece de um identificador"
-#: gio/gdesktopappinfo.c:4136
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Não é possível criar arquivo %s da área de trabalho do usuário"
-#: gio/gdesktopappinfo.c:4272
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Definição personalizada para %s"
@@ -1477,7 +1490,7 @@ msgstr "Esperado um GEmblem para o GEmblemedIcon"
msgid "Containing mount does not exist"
msgstr "Ponto de montagem contido não existe"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2641 gio/glocalfile.c:2515
msgid "Can’t copy over directory"
msgstr "Não é possível copiar sobre diretório"
@@ -1502,49 +1515,49 @@ msgstr "Não há suporte a união de arquivos"
msgid "Error splicing file: %s"
msgstr "Erro ao unir o arquivo: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3195
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Não há suporte a copiar (reflink/clone) entre montagens"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3199
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Não há suporte a copiar (reflink/clone) ou é inválido"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3204
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Não há suporte a copiar (reflink/clone) ou não funcionou"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3269
msgid "Can’t copy special file"
msgstr "Não é possível copiar o arquivo especial"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4163
msgid "Invalid symlink value given"
msgstr "Fornecido valor inválido de link simbólico"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4173 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Não há suporte a links simbólicos"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4460
msgid "Trash not supported"
msgstr "Não há suporte para lixeira"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4572
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Nomes de arquivo não podem conter “%c”"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7003 gio/gfile.c:7129
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Falha ao criar um diretório temporário para o modelo “%s”: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7418 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "volume não implementa montagem"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7532 gio/gfile.c:7609
msgid "No application is registered as handling this file"
msgstr "Nenhum aplicativo está registrado como manipulador deste arquivo"
@@ -1553,11 +1566,11 @@ msgid "Enumerator is closed"
msgstr "O enumerador está fechado"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:424 gio/gfileenumerator.c:523
msgid "File enumerator has outstanding operation"
msgstr "O enumerador do arquivo tem operação pendente"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:415 gio/gfileenumerator.c:514
msgid "File enumerator is already closed"
msgstr "O enumerador do arquivo já está fechado"
@@ -1623,37 +1636,37 @@ msgstr "Resposta do proxy HTTP grande demais"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "O servidor proxy HTTP fechou a conexão de forma inesperada."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Número errado de tokens (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Sem tipo para a classe chamada %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "O tipo %s não implementa a interface GIcon"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "O tipo %s não tem classe"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Número de versão malformado: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "O tipo %s não implementa from_tokens() na interface GIcon"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Não é possível lidar com a versão fornecida da codificação do ícone"
@@ -1800,12 +1813,12 @@ msgid "Error writing to stdout"
msgstr "Erro ao gravar para a saída padrão"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1210 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "LOCAL"
@@ -1823,8 +1836,8 @@ msgstr ""
"usando locais GIO em vez de arquivos locais: por exemplo, você pode\n"
"usar alguma coisa como smb://servidor/recurso/arquivo.txt como local."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1261 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Nenhum local fornecido"
@@ -1920,57 +1933,57 @@ msgstr "Não segue links simbólicos"
msgid "attributes:\n"
msgstr "atributos:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#: gio/gio-tool-info.c:166 gio/gio-tool-info.c:176
#, c-format
msgid "display name: %s\n"
msgstr "nome de exibição: %s\n"
-#: gio/gio-tool-info.c:182
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "nome: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "tipo: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "tamanho: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "oculto\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "caminho local: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "montagem unix: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Atributos definíveis:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Atributos graváveis no namespace:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Mostra informações sobre locais."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2038,11 +2051,11 @@ msgstr "Exibe nomes de exibição"
msgid "Print full URIs"
msgstr "Imprime URIs completas"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Lista o conteúdo dos locais."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2238,19 +2251,19 @@ msgstr "Mota um volume TCRYPT oculto"
msgid "Mount a TCRYPT system volume"
msgstr "Mota um volume TCRYPT de sistema"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Acesso anônimo negado"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:533
msgid "No drive for device file"
msgstr "Nenhuma unidade para o arquivo de dispositivo"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1025
msgid "No volume for given ID"
msgstr "Nenhum volume para o ID dado"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1214
msgid "Mount or unmount the locations."
msgstr "Monta ou desmontar os locais."
@@ -2450,11 +2463,11 @@ msgstr "O local fornecido não inicia com trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Segue links simbólicos, montagens e atalhos"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Lista conteúdos de diretórios em um formato tipo árvore."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "O elemento <%s> não é permitido dentro de <%s>"
@@ -2511,7 +2524,7 @@ msgstr "Ocorreu erro ao comprimir o arquivo %s"
msgid "text may not appear inside <%s>"
msgstr "texto não pode aparecer dentro de <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Mostra a versão do programa e sai"
@@ -2527,8 +2540,8 @@ msgstr ""
"Os diretórios do quais serão carregados arquivos referenciados em ARQUIVO "
"(padrão: diretório atual)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "DIRETÓRIO"
@@ -2581,7 +2594,7 @@ msgstr "Nome do identificador C usado no código-fonte gerado"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "O compilador C alvo (padrão: a variável de ambiente CC)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2591,123 +2604,123 @@ msgstr ""
"Arquivos de especificação de recurso têm a extensão .gresource.xml,\n"
"e um arquivo de recurso tem a extensão .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Você deve fornecer exatamente um arquivo\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "o apelido deve ter um mínimo de 2 caracteres"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Valor numérico inválido"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> já especificado"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' já especificado"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "valores de sinalizadores devem ter no máximo 1 bit definido"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> deve conter pelo menos um <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> não está contido no intervalo especificado"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> não é um membro válido do tipo enumerado especificado"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> contém string ausente no tipo de sinalizadores especializados"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> contém uma string ausente em <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> já especificado para essa chave"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> não permitido para as chaves de tipo “%s”"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "o mínimo do <range> especificado é maior que o máximo"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "categoria de l10n sem suporte: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n requisitado, mas nenhum domínio gettext dado"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "contexto de tradução dado para o valor sem l10n habilitado"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Falha ao analisar o valor <default> de tipo “%s”: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> não pode ser especificado para chaves marcadas como tendo um tipo "
"enumerado"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> já especificado para essa chave"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> não permitido para as chaves de tipo “%s”"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> já dado"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> deve conter pelo menos um <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> já especificado para essa chave"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2715,49 +2728,49 @@ msgstr ""
"<aliases> só pode ser especificado para chaves com tipos enumerados ou "
"sinalizadores ou após <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
"type"
msgstr "<alias value='%s'/> dado quando “%s” já é um membro do tipo enumerado"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"<alias value='%s'/> dado quando <choice value='%s'/> já tinha sido dado"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> já especificado"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "o alvo do alias “%s” não é um tipo enumerado"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "o alvo alias “%s” não está em <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> deve conter pelo menos um <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Nomes vazios não são permitidos"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Nome inválido “%s”: nomes precisam começar com uma letra minúscula"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2766,36 +2779,36 @@ msgstr ""
"Nome inválido “%s”: caractere inválido “%c”; apenas é permitido letras "
"minúsculas, números e traços (”-”)"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "Nome inválido “%s”: dois hifens (”--”) consecutivos não são permitidos"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Nome inválido “%s”: o último caractere não pode ser um hífen (”-”)"
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Nome inválido “%s”: o tamanho máximo é 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> já especificado"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Não é possível adicionar chaves ao esquema “list-of”"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> já especificado"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2804,7 +2817,7 @@ msgstr ""
"<key name='%s'> oculta <key name='%s'> em <schema id='%s'>; use <override> "
"para modificar o valor"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2813,63 +2826,63 @@ msgstr ""
"Apenas um entre “type”, “enum” ou “flags” deve ser especificado como "
"atributo para <key>"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> não está (ainda) definido."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Tipo inválido de texto GVariant “%s”"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> determinado, mas o esquema não está estendendo nada"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Nenhum <key name='%s'> para sobrescrever"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> já especificado"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> já especificado"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> estende um esquema ainda não existente “%s”"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> é uma lista de esquema ainda não existente “%s”"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Não pode ser uma lista de um esquema com um caminho"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Não é possível estender um esquema com um caminho"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
"<schema id='%s'> é uma lista, estendendo <schema id='%s'> que não é uma lista"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2878,17 +2891,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> estende <schema id='%s' list-of='%s'>, mas "
"“%s” não estende “%s”"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "Um caminho, se determinado, precisa começar e terminar com uma barra"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "O caminho de uma lista precisa terminar com “:/”"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2897,49 +2910,49 @@ msgstr ""
"Aviso: Esquema “%s” possui caminho “%s”. Caminhos iniciando com “/apps/”, “/"
"desktop/” ou “/system/” são obsoletos."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> já especificado"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Apenas um elemento <%s> é permitido dentro de um <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "O elemento <%s> não é permitido no nível mais alto"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "O elemento <default> é exigido por <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Texto não pode aparecer dentro de <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Aviso: referência indefinida a <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "--strict foi especificado; saindo."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Todo o arquivo foi ignorado."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Ignorando este arquivo."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2948,7 +2961,7 @@ msgstr ""
"Nenhuma chave “%s” no esquema “%s” como especificado no arquivo de "
"sobrescrita “%s”; ignorando sobrescrita para essa chave."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2957,7 +2970,7 @@ msgstr ""
"Nenhuma chave “%s” no esquema “%s” como especificado no arquivo de "
"sobrescrita “%s” e --strict foi especificado; saindo."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2967,7 +2980,7 @@ msgstr ""
"“%s” no esquema “%s” (arquivo de substituição “%s”); ignorando substituição "
"para esta chave."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2977,7 +2990,7 @@ msgstr ""
"“%s” no esquema “%s” (arquivo de substituição “%s”) e --script foi "
"especificado; saindo."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2986,7 +2999,7 @@ msgstr ""
"Erro ao analisar chave “%s” no esquema “%s” como especificado no arquivo de "
"sobrescrita “%s”: %s. Ignorando sobrescrita para essa chave."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2995,7 +3008,7 @@ msgstr ""
"Erro ao analisar chave “%s” no esquema “%s” como especificado no arquivo de "
"sobrescrita “%s”: %s. --script foi especificado; saindo."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3005,7 +3018,7 @@ msgstr ""
"está fora dos limites dado pelo esquema; ignorando sobrescrita para essa "
"chave."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3014,7 +3027,7 @@ msgstr ""
"Sobrescrita para chave “%s” no esquema “%s” no arquivo de sobrescrita “%s” "
"está fora dos limites dado pelo esquema e --script foi especificado; saindo."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3023,7 +3036,7 @@ msgstr ""
"Sobrescrita para a chave “%s” no esquema “%s” no arquivo de sobrescrita “%s” "
"não está na lista de escolhas válidas; ignorando sobrescrita para essa chave."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3032,23 +3045,23 @@ msgstr ""
"Sobrescrita para a chave “%s” no esquema “%s” no arquivo de sobrescrita “%s” "
"não está na lista de escolhas válidas e --scrict foi especificado; saindo."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Onde armazenar o arquivo gschemas compilado"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Aborta se ocorrer erros nos esquemas"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Não escreve o arquivo gschema compilado"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Não força restrições de nome de chave"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3058,25 +3071,25 @@ msgstr ""
"É necessário que os arquivos schema tenham a extensão\n"
".gschema.xml, e o arquivo de cache é chamado gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Você deveria dar exatamente um nome de diretório"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Nenhum arquivo schema localizado: fazendo nada."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr ""
"Nenhum arquivo de schema encontrado: arquivo de saída existente removido."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:567 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Nome de arquivo inválido: %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1009
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Erro ao obter informações do sistema de arquivos para %s: %s"
@@ -3085,262 +3098,262 @@ msgstr "Erro ao obter informações do sistema de arquivos para %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1145
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Ponto de montagem contido para arquivo %s não existe"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1168
msgid "Can’t rename root directory"
msgstr "Não é possível renomear o diretório root"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1186 gio/glocalfile.c:1209
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Erro ao renomear arquivo %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1193
msgid "Can’t rename file, filename already exists"
msgstr "Não é possível renomear o arquivo, o nome do arquivo já existe"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1206 gio/glocalfile.c:2409 gio/glocalfile.c:2437
+#: gio/glocalfile.c:2576 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Nome de arquivo inválido"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1374 gio/glocalfile.c:1385
#, c-format
msgid "Error opening file %s: %s"
msgstr "Erro ao abrir arquivo %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1510
#, c-format
msgid "Error removing file %s: %s"
msgstr "Erro ao remover arquivo %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2004 gio/glocalfile.c:2015 gio/glocalfile.c:2042
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Erro ao mover para a lixeira o arquivo %s: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2062
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Não é possível criar o diretório da lixeira %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2083
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Não é possível localizar diretório de nível superior para a lixeira %s"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2091
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Não há suporte a mover para lixeira em montagens internas do sistema"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2177 gio/glocalfile.c:2205
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr ""
"Não é possível localizar ou criar o diretório da lixeira %s para a lixeira %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2249
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Não é possível criar o arquivo de informações da lixeira para %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2320
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr ""
"Não é possível mover para a lixeira o arquivo %s entre os limites de sistema "
"de arquivos"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2324 gio/glocalfile.c:2380
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Não é possível mover para a lixeira o arquivo %s: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2386
#, c-format
msgid "Unable to trash file %s"
msgstr "Não é possível mover para a lixeira o arquivo %s"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2412
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Erro ao criar o diretório %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2441
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "O sistema de arquivos não tem suporte a links simbólicos"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2444
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Erro ao criar link simbólico %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2487 gio/glocalfile.c:2522 gio/glocalfile.c:2579
#, c-format
msgid "Error moving file %s: %s"
msgstr "Erro ao mover arquivo %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2510
msgid "Can’t move directory over directory"
msgstr "Não é possível mover diretório sobre diretório"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2536 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Falha ao criar arquivo de backup"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2555
#, c-format
msgid "Error removing target file: %s"
msgstr "Erro ao remover arquivo alvo: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2569
msgid "Move between mounts not supported"
msgstr "Não há suporte a mover entre montagens"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2745
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Não foi possível determinar a utilização de disco de %s: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Valor de atributo deve ser não-NULO"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Tipo de atributo inválido (string ou inválido esperado)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Nome de atributo estendido inválido"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Erro ao definir atributo estendido “%s”: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (codificação inválida)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Erro ao obter informação para o arquivo “%s”: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Erro ao obter informação para o descritor de arquivo: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Tipo de atributo inválido (esperado uint32)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Tipo de atributo inválido (esperado uint64)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Tipo de atributo inválido (expressão de byte esperada)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Não foi possível definir permissões aos links simbólicos"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Erro ao definir permissões: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Erro ao definir proprietário: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "o link simbólico deve ser não-NULO"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Erro ao definir link simbólico: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "Erro ao definir link simbólico: o arquivo não é um link simbólico"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
"Os nanossegundos extras %d para a marca de data/hora UNIX %lld são negativos"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"Os nanossegundos extras %d para a marca de data/hora UNIX %lld alcança 1 "
"segundo"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "A marca de data/hora UNIX %lld não cabe em 64 bits"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"A marca de data/hora UNIX %lld está fora do intervalo suportado pelo Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "O nome de arquivo “%s” não pode ser convertido para UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "O arquivo “%s” não pôde ser aberto: Erro %lu do Windows"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
"Erro ao definir data/hora de modificação ou acesso para o arquivo “%s”: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Erro ao definir data/hora de modificação ou acesso: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "O contexto SELinux deve ser não-NULO"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux não está habilitado neste sistema"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Erro ao definir o contexto SELinux: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Não há suporte à definição do atributo %s"
@@ -3387,13 +3400,13 @@ msgstr "Erro ao criar cópia de backup: %s"
msgid "Error renaming temporary file: %s"
msgstr "Erro ao renomear arquivo temporário: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Erro ao truncar arquivo: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Erro ao abrir arquivo “%s”: %s"
@@ -3410,7 +3423,7 @@ msgstr "Arquivo alvo não é um arquivo comum"
msgid "The file was externally modified"
msgstr "O arquivo foi modificado externamente"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Erro ao remover arquivo antigo: %s"
@@ -3559,8 +3572,8 @@ msgstr "Falha não especificada na pesquisa de proxy"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:798 gio/gthreadedresolver.c:822
+#: gio/gthreadedresolver.c:847 gio/gthreadedresolver.c:862
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Erro ao resolver “%s”: %s"
@@ -3577,8 +3590,8 @@ msgstr "Domínio inválido"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "O recurso em “%s” não existe"
@@ -3588,16 +3601,16 @@ msgstr "O recurso em “%s” não existe"
msgid "The resource at “%s” failed to decompress"
msgstr "Falha ao descompactar o recurso em “%s”"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Os arquivos de recursos não podem ser renomeados"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "O recurso em “%s” não é um diretório"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Fluxo de entrada não implementa busca"
@@ -3963,7 +3976,7 @@ msgstr "Soquete inválido, inicialização falhou devido a: %s"
msgid "Socket is already closed"
msgstr "O soquete já está fechado"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3225 gio/gsocket.c:4458 gio/gsocket.c:4516
msgid "Socket I/O timed out"
msgstr "Tempo de E/S do soquete foi esgotado"
@@ -4060,74 +4073,74 @@ msgstr "Não há suporte para multicast específico da origem IPv4"
msgid "No support for IPv6 source-specific multicast"
msgstr "Não há suporte para multicast específico da origem IPv6"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2924
#, c-format
msgid "Error accepting connection: %s"
msgstr "Erro ao aceitar a conexão: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3050
msgid "Connection in progress"
msgstr "Conexão em progresso"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3101
msgid "Unable to get pending error: "
msgstr "Não é possível obter erro pendente: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3290
#, c-format
msgid "Error receiving data: %s"
msgstr "Erro ao receber dados: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3487
#, c-format
msgid "Error sending data: %s"
msgstr "Erro ao enviar dados: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3674
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Não é possível encerrar soquete: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3755
#, c-format
msgid "Error closing socket: %s"
msgstr "Erro ao fechar soquete: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4451
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Aguardando pela condição do soquete: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4841 gio/gsocket.c:4857 gio/gsocket.c:4870
#, c-format
msgid "Unable to send message: %s"
msgstr "Não foi possível enviar mensagem: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4842 gio/gsocket.c:4858 gio/gsocket.c:4871
msgid "Message vectors too large"
msgstr "Vetores da mensagem muito grandes"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4887 gio/gsocket.c:4889 gio/gsocket.c:5036 gio/gsocket.c:5121
+#: gio/gsocket.c:5299 gio/gsocket.c:5339 gio/gsocket.c:5341
#, c-format
msgid "Error sending message: %s"
msgstr "Erro ao enviar mensagem: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5063
msgid "GSocketControlMessage not supported on Windows"
msgstr "Não há suporte a GSocketControlMessage no Windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5536 gio/gsocket.c:5612 gio/gsocket.c:5838
#, c-format
msgid "Error receiving message: %s"
msgstr "Erro ao receber mensagem: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6123 gio/gsocket.c:6134 gio/gsocket.c:6197
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Não é possível ler as credenciais do soquete: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6206
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials não está implementado para este SO"
@@ -4249,12 +4262,12 @@ msgstr "Proxy SOCKSv5 sem suporte ao tipo de endereço fornecido."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Erro de proxy SOCKSv5 desconhecido."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:615 glib/gspawn-win32.c:354
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "Falha ao criar canal para comunicar com processo filho (%s)"
-#: gio/gtestdbus.c:621
+#: gio/gtestdbus.c:622
#, c-format
msgid "Pipes are not supported in this platform"
msgstr "Não há suporte a canais nesta plataforma"
@@ -4275,35 +4288,35 @@ msgstr "Erro ao resolver reversalmente “%s”: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:628 gio/gthreadedresolver.c:675
+#: gio/gthreadedresolver.c:704 gio/gthreadedresolver.c:716
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Erro ao analisar registro %s do DNS: pacote DNS mal formado"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:774 gio/gthreadedresolver.c:911
+#: gio/gthreadedresolver.c:1009 gio/gthreadedresolver.c:1059
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Nenhum registro DNS do tipo de requisição para “%s”"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:779 gio/gthreadedresolver.c:1014
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Temporariamente sem condições de resolver “%s”"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:784 gio/gthreadedresolver.c:1019
+#: gio/gthreadedresolver.c:1129
#, c-format
msgid "Error resolving “%s”"
msgstr "Erro ao resolver “%s”"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:798 gio/gthreadedresolver.c:822
+#: gio/gthreadedresolver.c:847 gio/gthreadedresolver.c:862
msgid "Malformed DNS packet"
msgstr "Pacote DNS mal formado"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:904
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Falha ao analisar resposta DNS para “%s”: "
@@ -4363,59 +4376,59 @@ msgstr "A senha digitada está incorreta."
msgid "Sending FD is not supported"
msgstr "Não há suporte ao envio de FD"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:601
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "Esperando 1 mensagem de controle, obtive %d"
msgstr[1] "Esperando 1 mensagem de controle, obtive %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:613
msgid "Unexpected type of ancillary data"
msgstr "Tipo de dado auxiliar não esperado"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "Esperando um fd, mas obtive %d\n"
msgstr[1] "Esperando um fd, mas obtive %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Recebido fd inválido"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Não há suporte ao recebimento de FD"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Erro ao enviar credenciais: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:541
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Erro ao verificar se SO_PASSCRED está habilitado pelo soquete: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:557
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Erro ao habilitar SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:586
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Era esperado ler apenas um byte para receber credenciais, mas foi lido zero "
"byte"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:627
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Não esperava mensagem de controle, mas recebeu %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:652
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Erro ao desabilitar SO_PASSCRED: %s"
@@ -4431,7 +4444,7 @@ msgstr "Erro ao ler do descritor de arquivo: %s"
msgid "Error closing file descriptor: %s"
msgstr "Erro ao fechar o descritor de arquivo: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2817 gio/gunixmounts.c:2870
msgid "Filesystem root"
msgstr "Sistema de arquivos root"
@@ -4515,78 +4528,78 @@ msgstr "Executa um serviço dbus"
msgid "Wrong args\n"
msgstr "Args. incorretos\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Atributo “%s” inesperado para o elemento “%s”"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Atributo “%s” do elemento “%s” não localizado"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Marca “%s” inesperada, esperava marca “%s”"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Marca “%s” inesperada dentro de “%s”"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Data/hora “%s” inválida no arquivo de marcadores"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr ""
"Nenhum arquivo de marcadores válido foi localizado nos diretórios de dados"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Já existe um marcador para o URI “%s”"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Nenhum marcador localizado para o URI “%s”"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Não foi definido tipo MIME no marcador para o URI “%s”"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Não foi definido sinal de particular no marcador para o URI “%s”"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "Não há grupos definidos no marcador para o URI “%s”"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Nenhum aplicativo chamado “%s” registrou um marcador para “%s”"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Falha em expandir linha de execução “%s” com URI “%s”"
@@ -5062,79 +5075,79 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "Erro ao abrir o diretório “%s”: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "Não foi possível alocar %lu byte para ler arquivo “%s”"
msgstr[1] "Não foi possível alocar %lu bytes para ler arquivo “%s”"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Ocorreu erro ao ler arquivo “%s”: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Arquivo “%s” é muito grande"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Falha ao ler do arquivo “%s”: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Falha ao abrir arquivo “%s”: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Falha ao obter atributos do arquivo “%s”: fstat() falhou: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Falha ao abrir arquivo “%s”: fdopen() falhou: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "Falha ao renomear arquivo “%s” para “%s”: g_rename() falhou: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Falha ao gravar o arquivo “%s”: write() falhou: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Falha ao gravar o arquivo “%s”: fsync() falhou: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Falha ao criar arquivo “%s”: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "O arquivo “%s” não pôde ser removido: g_unlink() falhou: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Modelo “%s” inválido, não deveria conter um “%s”"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Modelo “%s” não contém XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Falha ao ler link simbólico “%s”: %s"
@@ -5161,16 +5174,16 @@ msgstr "Canal termina em um caractere parcial"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Não é possível fazer uma leitura em bruto de g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:800
msgid "Valid key file could not be found in search dirs"
msgstr ""
"Não foi possível localizar arquivo de chave válido nos diretórios pesquisados"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:837
msgid "Not a regular file"
msgstr "Não é um arquivo comum"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1295
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5178,50 +5191,50 @@ msgstr ""
"Arquivo de chave contém a linha “%s” que não é um par chave-valor, grupo ou "
"comentário"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1352
#, c-format
msgid "Invalid group name: %s"
msgstr "Nome de grupo inválido: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1376
msgid "Key file does not start with a group"
msgstr "Arquivo de chave não começa com um grupo"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1400
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Nome de chave inválido: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1428
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Arquivo de chave contém codificação “%s” sem suporte"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1683 glib/gkeyfile.c:1856 glib/gkeyfile.c:3303
+#: glib/gkeyfile.c:3367 glib/gkeyfile.c:3497 glib/gkeyfile.c:3626
+#: glib/gkeyfile.c:3772 glib/gkeyfile.c:4007 glib/gkeyfile.c:4074
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Arquivo de chave não tem grupo “%s”"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1811
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Arquivo de chave não tem chave “%s” no grupo “%s”"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1973 glib/gkeyfile.c:2089
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "Arquivo de chave contém chave “%s” com valor “%s” que não é UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1993 glib/gkeyfile.c:2109 glib/gkeyfile.c:2548
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr ""
"Arquivo de chave contém chave “%s” cujo valor não pode ser interpretado."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2763 glib/gkeyfile.c:3132
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5230,81 +5243,81 @@ msgstr ""
"Arquivo de chave contém chave “%s” no grupo “%s” que tem um valor que não "
"pode ser interpretado."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2841 glib/gkeyfile.c:2918
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Chave “%s” no grupo “%s” tem o valor “%s” onde %s era esperado"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4330
msgid "Key file contains escape character at end of line"
msgstr "Arquivo de chave contém caractere de escape no fim da linha"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4352
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Arquivo de chave contém sequência de escape “%s” inválida"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4504
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "O valor “%s” não pode ser interpretado como um número."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4518
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Valor inteiro “%s” fora dos limites"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4551
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "O valor “%s” não pode ser interpretado como ponto flutuante."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4590
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "O valor “%s” não pode ser interpretado como um booleano."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr "Falha ao obter atributos do arquivo “%s%s%s%s”: fstat() falhou: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Falha ao mapear arquivo “%s%s%s%s”: mmap() falhou: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Falha ao abrir arquivo “%s”: open() falhou: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Erro na linha %d caractere %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Texto do nome codificado em UTF-8 inválido — “%s” não válido"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "“%s” não é um nome válido"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "“%s” não é um nome válido: “%c”"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Erro na linha %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5314,7 +5327,7 @@ msgstr ""
"referência de caractere (&#234; por exemplo) — talvez o dígito seja grande "
"demais"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5324,23 +5337,23 @@ msgstr ""
"utilizou um caractere “e comercial” sem desejar iniciar uma entidade — "
"escape-o com &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Referência de caractere “%-.*s” não codifica um caractere permitido"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Entidade “&;” vazia; as entidades válidas são: &amp; &quot; &lt; &gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Nome de entidade “%-.*s” não é conhecido"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5348,11 +5361,11 @@ msgstr ""
"Entidade não termina com um ponto e vírgula; provavelmente você utilizou um "
"“e comercial” sem desejar iniciar uma entidade — escape-o com &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Documento tem de começar com um elemento (ex. <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5361,7 +5374,7 @@ msgstr ""
"“%s” não é um caractere válido após um caractere “<”; não poderá começar um "
"nome de elemento"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5370,12 +5383,12 @@ msgstr ""
"Caractere estranho “%s”, esperado um caractere “>” para finalizar a marca "
"“%s” de elemento vazio"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Número excessivo de atributos no elemento “%s”"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5383,7 +5396,7 @@ msgstr ""
"Caractere estranho “%s”, esperava-se um “=” após o nome do atributo “%s” do "
"elemento “%s”"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5394,7 +5407,7 @@ msgstr ""
"marca inicial do elemento “%s”, ou opcionalmente um atributo; talvez tenha "
"utilizado um caractere inválido no nome de atributo"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5403,7 +5416,7 @@ msgstr ""
"Caractere estranho “%s”, esperava-se uma abertura de aspas após o sinal de "
"igual ao atribuir o valor ao atributo “%s” do elemento “%s”"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5412,7 +5425,7 @@ msgstr ""
"“%s” não é um caractere válido após os caracteres “</”; “%s” não poderá "
"começar o nome de um elemento"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5421,25 +5434,25 @@ msgstr ""
"“%s” não é um caractere válido após o nome do elemento de fecho “%s”; o "
"caractere permitido é “>”"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Elemento “%s” foi fechado, nenhum elemento está atualmente aberto"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "Elemento “%s” foi fechado, mas o elemento atualmente aberto é “%s”"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Documento estava vazio ou apenas continha espaços"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "Documento terminou inesperadamente logo após um menor que “<”"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5448,7 +5461,7 @@ msgstr ""
"Documento terminou inesperadamente com elementos ainda abertos — “%s” foi o "
"último elemento aberto"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5457,21 +5470,21 @@ msgstr ""
"Documento terminou inesperadamente, esperava-se ver um sinal de maior (“>”) "
"para terminar a marca <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Documento terminou inesperadamente dentro de um nome de elemento"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Documento terminou inesperadamente dentro de um nome de atributo"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr ""
"Documento terminou inesperadamente dentro de uma marca de abertura de "
"elemento."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5479,24 +5492,24 @@ msgstr ""
"Documento terminou inesperadamente após o sinal de igual que se seguiu a um "
"nome de atributo; nenhum valor de atributo"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Documento terminou inesperadamente dentro de um valor de atributo"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr ""
"Documento terminou inesperadamente dentro da marca de fechamento do elemento "
"“%s”"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Documento terminou inesperadamente dentro da marca de um elemento não aberto"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"Documento terminou inesperadamente dentro de um comentário ou instrução de "
@@ -5562,187 +5575,187 @@ msgstr "Falta argumento para %s"
msgid "Unknown option %s"
msgstr "Opção %s desconhecida"
-#: glib/gregex.c:436
+#: glib/gregex.c:479
msgid "corrupted object"
msgstr "objeto corrompido"
-#: glib/gregex.c:438
+#: glib/gregex.c:481
msgid "out of memory"
msgstr "memória insuficiente"
-#: glib/gregex.c:443
+#: glib/gregex.c:487
msgid "backtracking limit reached"
msgstr "limite de backtracking alcançado"
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:498
msgid "internal error"
msgstr "erro interno"
-#: glib/gregex.c:456
+#: glib/gregex.c:500
msgid "the pattern contains items not supported for partial matching"
msgstr "o padrão contém itens sem suporte para correspondência parcial"
-#: glib/gregex.c:458
+#: glib/gregex.c:502
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"não há suporte à referência retroativa como condição para correspondência "
"parcial"
-#: glib/gregex.c:464
+#: glib/gregex.c:508
msgid "recursion limit reached"
msgstr "limite de recursão alcançado"
-#: glib/gregex.c:466
+#: glib/gregex.c:510
msgid "bad offset"
msgstr "deslocamento ruim"
-#: glib/gregex.c:468
+#: glib/gregex.c:512
msgid "recursion loop"
msgstr "recursão infinita"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:515
msgid "matching mode is requested that was not compiled for JIT"
msgstr "é solicitado o modo de correspondência que não foi compilado para JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:536 glib/gregex.c:1838
msgid "unknown error"
msgstr "erro desconhecido"
-#: glib/gregex.c:496
+#: glib/gregex.c:557
msgid "\\ at end of pattern"
msgstr "\\ no fim do padrão"
-#: glib/gregex.c:500
+#: glib/gregex.c:561
msgid "\\c at end of pattern"
msgstr "\\c no fim do padrão"
-#: glib/gregex.c:505
+#: glib/gregex.c:566
msgid "unrecognized character following \\"
msgstr "caractere não reconhecido seguindo \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:570
msgid "numbers out of order in {} quantifier"
msgstr "números fora de ordem no quantificador {}"
-#: glib/gregex.c:513
+#: glib/gregex.c:574
msgid "number too big in {} quantifier"
msgstr "número grande demais no quantificador {}"
-#: glib/gregex.c:517
+#: glib/gregex.c:578
msgid "missing terminating ] for character class"
msgstr "terminação ] em falta para classe de caracteres"
-#: glib/gregex.c:521
+#: glib/gregex.c:582
msgid "invalid escape sequence in character class"
msgstr "sequência de escape inválida na classe de caracteres"
-#: glib/gregex.c:525
+#: glib/gregex.c:586
msgid "range out of order in character class"
msgstr "intervalo fora de ordem na classe de caracteres"
-#: glib/gregex.c:530
+#: glib/gregex.c:591
msgid "nothing to repeat"
msgstr "nada a repetir"
-#: glib/gregex.c:534
+#: glib/gregex.c:595
msgid "unrecognized character after (? or (?-"
msgstr "caractere não reconhecido após (? ou (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:599
msgid "POSIX named classes are supported only within a class"
msgstr "Classes nomeadas POSIX têm suporte apenas dentro de uma classe"
-#: glib/gregex.c:542
+#: glib/gregex.c:603
msgid "POSIX collating elements are not supported"
msgstr "Elementos de arranjo POSIX sem suporte"
-#: glib/gregex.c:548
+#: glib/gregex.c:609
msgid "missing terminating )"
msgstr "faltando terminação )"
-#: glib/gregex.c:552
+#: glib/gregex.c:613
msgid "reference to non-existent subpattern"
msgstr "referência a subpadrão não existente"
-#: glib/gregex.c:556
+#: glib/gregex.c:617
msgid "missing ) after comment"
msgstr "faltando ) após o comentário"
-#: glib/gregex.c:560
+#: glib/gregex.c:621
msgid "regular expression is too large"
msgstr "expressão regular é grande demais"
-#: glib/gregex.c:564
+#: glib/gregex.c:625
msgid "malformed number or name after (?("
msgstr "número mal formado ou nome após (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:629
msgid "lookbehind assertion is not fixed length"
msgstr "declaração de verificação anterior não é de largura fixa"
-#: glib/gregex.c:572
+#: glib/gregex.c:633
msgid "conditional group contains more than two branches"
msgstr "grupo condicional contém mais que duas ramificações"
-#: glib/gregex.c:576
+#: glib/gregex.c:637
msgid "assertion expected after (?("
msgstr "esperava-se declaração após (?("
-#: glib/gregex.c:580
+#: glib/gregex.c:641
msgid "a numbered reference must not be zero"
msgstr "uma referência numerada não pode ser zero"
-#: glib/gregex.c:584
+#: glib/gregex.c:645
msgid "unknown POSIX class name"
msgstr "nome de classe POSIX desconhecido"
-#: glib/gregex.c:589
+#: glib/gregex.c:650
msgid "character value in \\x{...} sequence is too large"
msgstr "valor de caractere na sequência \\x{...} é grande demais"
-#: glib/gregex.c:593
+#: glib/gregex.c:654
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C não permitido na declaração de verificação anterior"
-#: glib/gregex.c:597
+#: glib/gregex.c:658
msgid "missing terminator in subpattern name"
msgstr "terminação em falta no nome do subpadrão"
-#: glib/gregex.c:601
+#: glib/gregex.c:662
msgid "two named subpatterns have the same name"
msgstr "dois subpadrões nomeados têm o mesmo nome"
-#: glib/gregex.c:605
+#: glib/gregex.c:666
msgid "malformed \\P or \\p sequence"
msgstr "sequência \\P ou \\p mal formada"
-#: glib/gregex.c:609
+#: glib/gregex.c:670
msgid "unknown property name after \\P or \\p"
msgstr "nome de propriedade desconhecido após \\P ou \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:674
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "nome de subpadrão é grande demais (máximo 32 caracteres)"
-#: glib/gregex.c:617
+#: glib/gregex.c:678
msgid "too many named subpatterns (maximum 10,000)"
msgstr "excesso de subpadrões nomeados (máximo 10.000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:682
msgid "octal value is greater than \\377"
msgstr "valor octal é maior que \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:686
msgid "DEFINE group contains more than one branch"
msgstr "O grupo DEFINE contém mais que uma ramificação"
-#: glib/gregex.c:629
+#: glib/gregex.c:690
msgid "inconsistent NEWLINE options"
msgstr "opções do NEWLINE inconsistentes"
# obs.: "angle-brackets" não existe no Brasil, mas existe brackets, que é '<' e '>'
-#: glib/gregex.c:633
+#: glib/gregex.c:694
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5750,120 +5763,120 @@ msgstr ""
"\\g não é seguido por um número ou nome entre aspas, chaves ou sinais de "
"menor que ou maior que um número diferente de zero opcionalmente entre chaves"
-#: glib/gregex.c:638
+#: glib/gregex.c:699
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "um argumento não é permitido para (*ACCEPT), (*FAIL) ou (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:703
msgid "(*VERB) not recognized"
msgstr "(*VERB) não reconhecido"
-#: glib/gregex.c:646
+#: glib/gregex.c:707
msgid "number is too big"
msgstr "número é muito grande"
-#: glib/gregex.c:650
+#: glib/gregex.c:711
msgid "missing subpattern name after (?&"
msgstr "faltando o nome do subpadrão após (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:715
msgid "different names for subpatterns of the same number are not allowed"
msgstr "não é permitido dois subpadrões nomeados com o mesmo nome"
-#: glib/gregex.c:658
+#: glib/gregex.c:719
msgid "(*MARK) must have an argument"
msgstr "(*MARK) deve possuir um argumento"
-#: glib/gregex.c:662
+#: glib/gregex.c:723
msgid "\\c must be followed by an ASCII character"
msgstr "\\c pode ser seguido por um caractere ASCII"
# obs.: "angle-brackets" não existe no Brasil, mas existe brackets, que é '<' e '>'
-#: glib/gregex.c:666
+#: glib/gregex.c:727
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"\\k não é seguido por um nome entre aspas, chaves ou sinais de menor que ou "
"maior que"
-#: glib/gregex.c:670
+#: glib/gregex.c:731
msgid "\\N is not supported in a class"
msgstr "\\N não é suportado em uma classe"
-#: glib/gregex.c:674
+#: glib/gregex.c:735
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "nome é muito cumprido em (*MARK), (*PRUNE), (*SKIP) ou (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:739 glib/gregex.c:875
msgid "code overflow"
msgstr "estouro de código"
-#: glib/gregex.c:682
+#: glib/gregex.c:743
msgid "unrecognized character after (?P"
msgstr "caractere não reconhecido após (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:747
msgid "overran compiling workspace"
msgstr "espaço de trabalho de compilação invadido"
-#: glib/gregex.c:690
+#: glib/gregex.c:751
msgid "previously-checked referenced subpattern not found"
msgstr "subpadrão de referência verificado anteriormente não localizado"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:874 glib/gregex.c:1121 glib/gregex.c:2444
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Erro ao coincidir expressão regular %s: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1721
msgid "PCRE library is compiled without UTF8 support"
msgstr "Biblioteca PCRE compilada sem suporte a UTF-8"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1729
msgid "PCRE library is compiled with incompatible options"
msgstr "Biblioteca PCRE compilada com opções incompatíveis"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1847
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Erro ao compilar a expressão regular “%s” no caractere %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2887
msgid "hexadecimal digit or “}” expected"
msgstr "esperava-se dígito hexadecimal ou “}”"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2903
msgid "hexadecimal digit expected"
msgstr "esperava-se dígito hexadecimal"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2943
msgid "missing “<” in symbolic reference"
msgstr "“<” em falta na referência simbólica"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2952
msgid "unfinished symbolic reference"
msgstr "referência simbólica inacabada"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2959
msgid "zero-length symbolic reference"
msgstr "referência simbólica de comprimento zero"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2970
msgid "digit expected"
msgstr "esperava-se dígito"
-#: glib/gregex.c:2887
+#: glib/gregex.c:2988
msgid "illegal symbolic reference"
msgstr "referência simbólica ilegal"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3051
msgid "stray final “\\”"
msgstr "“\\” final errado"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3055
msgid "unknown escape sequence"
msgstr "sequência de escape desconhecida"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3065
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Erro ao analisar texto de substituição “%s” no caractere %lu: %s"
@@ -5892,96 +5905,101 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Texto estava vazio (ou apenas continha espaços)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:319
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Falha ao ler dados de processo filho (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:471
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Erro inesperado na leitura de dados de um processo filho (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:556
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Erro inesperado em waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1175 glib/gspawn-win32.c:1503
#, c-format
msgid "Child process exited with code %ld"
msgstr "Processo filho concluiu com código %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1183
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Processo filho foi terminado pelo sinal %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1190
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Processo filho foi parado pelo sinal %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1197
#, c-format
msgid "Child process exited abnormally"
msgstr "Processo filho concluiu anormalmente"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2027 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Falha ao ler de canal filho (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2399
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Falha ao criar processo filho “%s” (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2525
#, c-format
msgid "Failed to fork (%s)"
msgstr "Falha no fork (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2685 glib/gspawn-win32.c:424
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Falha ao ir para diretório “%s” (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2695
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Falha ao executar processo filho “%s” (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2705
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Falha ao abrir o arquivo para remapear o descritor de arquivo (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2713
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Falha ao duplicar o descritor de arquivo para o processo filho (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2722
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Falha no fork de processo filho (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2730
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Falha ao fechar o descritor de arquivo para o processo filho (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2738
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Erro desconhecido ao executar processo filho “%s”"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2762
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "Falha ao ler dados suficientes de canal pid do filho (%s)"
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Argumento de FDs de origem inválido"
+
#: glib/gspawn-win32.c:337
msgid "Failed to read data from child process"
msgstr "Falha ao ler dados de processo filho"
@@ -6001,27 +6019,27 @@ msgstr "Falha em dup() no processo filho (%s)"
msgid "Invalid program name: %s"
msgstr "Nome de programa inválido: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:868
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "String inválida no vetor de argumentos em %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:884
#, c-format
msgid "Invalid string in environment: %s"
msgstr "String inválida no ambiente: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:864
#, c-format
msgid "Invalid working directory: %s"
msgstr "Diretório de trabalho inválido: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:929
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Falha ao executar programa auxiliar (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1158
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6029,21 +6047,21 @@ msgstr ""
"Erro inesperado no g_io_channel_win32_poll() ao ler dados de um processo "
"filho"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Texto vazio não é um número"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "“%s” não é um número assinado"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "O número “%s” está fora dos limites [%s, %s]"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "“%s” não é um número não assinado"
@@ -6122,132 +6140,132 @@ msgid "Character out of range for UTF-16"
msgstr "Caractere fora do limite para UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "byte"
msgstr[1] "bytes"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bit"
@@ -6255,7 +6273,7 @@ msgstr[1] "bits"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6263,7 +6281,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6271,7 +6289,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6280,14 +6298,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6295,14 +6313,14 @@ msgstr[0] "%s byte"
msgstr[1] "%s bytes"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s bit"
msgstr[1] "%s bits"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6314,32 +6332,32 @@ msgstr[1] "%u bytes"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
diff --git a/po/ro.po b/po/ro.po
index 079234450..36165bcbb 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -10,9 +10,10 @@ msgid ""
msgstr ""
"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-02-19 13:43+0000\n"
-"PO-Revision-Date: 2022-03-06 12:47+0100\n"
-"Last-Translator: Daniel Șerbănescu <daniel [at] serbanescu [dot] dk>\n"
+"POT-Creation-Date: 2023-10-18 18:26+0000\n"
+"PO-Revision-Date: 2023-10-18 20:27+0200\n"
+"Last-Translator: Florentina Mușat <florentina [dot] musat [dot] 28 [at] "
+"gmail [dot] com>\n"
"Language-Team: Gnome Romanian Translation Team <gnomero-list@lists."
"sourceforge.net>\n"
"Language: ro\n"
@@ -21,142 +22,153 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2);\n"
-"X-Generator: Poedit 3.0.1\n"
+"X-Generator: Poedit 3.3.2\n"
"X-Project-Style: gnome\n"
"X-Poedit-SourceCharset: UTF-8\n"
-#: gio/gappinfo.c:333
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Stabilirea aplicațiilor implicite nu este suportată încă"
-#: gio/gappinfo.c:366
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Stabilirea aplicației ca ultima folosită pentru acest tip nu este suportată"
-#: gio/gapplication.c:497
-msgid "GApplication options"
-msgstr "Opțiuni GApplication"
+#: gio/gappinfo.c:814
+#, c-format
+msgid "Failed to find default application for content type ‘%s’"
+msgstr "Nu s-a putut găsi aplicația implicită pentru tipul de conținut „%s”"
+
+#: gio/gappinfo.c:874
+#, c-format
+msgid "Failed to find default application for URI Scheme ‘%s’"
+msgstr "Nu s-a putut găsi aplicația implicită pentru schema URI „%s”"
+
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "Opțiuni GApplication:"
-#: gio/gapplication.c:497
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Arată opțiunile GApplication"
-#: gio/gapplication.c:542
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
"Intră în modul de serviciu GApplication (utilizează de la fișierele de "
"serviciu D-Bus)"
-#: gio/gapplication.c:554
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Suprascrie ID-ul aplicației"
-#: gio/gapplication.c:566
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Înlocuiește instanța care rulează"
-#: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:494 gio/gsettings-tool.c:584
+#: gio/gapplication-tool.c:47 gio/gapplication-tool.c:48 gio/gio-tool.c:229
+#: gio/gresource-tool.c:496 gio/gsettings-tool.c:586
msgid "Print help"
msgstr "Afișează ajutorul"
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:495 gio/gresource-tool.c:563
+#: gio/gapplication-tool.c:49 gio/gresource-tool.c:497 gio/gresource-tool.c:565
msgid "[COMMAND]"
msgstr "[COMANDĂ]"
-#: gio/gapplication-tool.c:49 gio/gio-tool.c:228
+#: gio/gapplication-tool.c:51 gio/gio-tool.c:230
msgid "Print version"
msgstr "Tipărește versiunea"
-#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:590
+#: gio/gapplication-tool.c:52 gio/gsettings-tool.c:592
msgid "Print version information and exit"
msgstr "Afișează informațiile despre versiune și ieși"
-#: gio/gapplication-tool.c:53
+#: gio/gapplication-tool.c:55
msgid "List applications"
msgstr "Listează aplicațiile"
-#: gio/gapplication-tool.c:54
+#: gio/gapplication-tool.c:56
msgid "List the installed D-Bus activatable applications (by .desktop files)"
msgstr "Listează aplicațiile D-Bus care se pot activa (după fișiere .desktop)"
-#: gio/gapplication-tool.c:57
+#: gio/gapplication-tool.c:59
msgid "Launch an application"
msgstr "Lansează o aplicație"
-#: gio/gapplication-tool.c:58
+#: gio/gapplication-tool.c:60
msgid "Launch the application (with optional files to open)"
msgstr "Lansează aplicația (cu fișiere opționale de deschis)"
-#: gio/gapplication-tool.c:59
+#: gio/gapplication-tool.c:61
msgid "APPID [FILE…]"
msgstr "APPID [FIȘIER…]"
-#: gio/gapplication-tool.c:61
+#: gio/gapplication-tool.c:63
msgid "Activate an action"
msgstr "Activează o acțiune"
-#: gio/gapplication-tool.c:62
+#: gio/gapplication-tool.c:64
msgid "Invoke an action on the application"
msgstr "Invocă o acțiune pe aplicație"
-#: gio/gapplication-tool.c:63
+#: gio/gapplication-tool.c:65
msgid "APPID ACTION [PARAMETER]"
msgstr "ACȚIUNE APPID [PARAMETRU]"
-#: gio/gapplication-tool.c:65
+#: gio/gapplication-tool.c:67
msgid "List available actions"
msgstr "Listează acțiunile disponibile"
-#: gio/gapplication-tool.c:66
+#: gio/gapplication-tool.c:68
msgid "List static actions for an application (from .desktop file)"
msgstr "Listează acțiuni statice pentru o aplicație (din fișierul .desktop)"
-#: gio/gapplication-tool.c:67 gio/gapplication-tool.c:73
+#: gio/gapplication-tool.c:69 gio/gapplication-tool.c:75
msgid "APPID"
msgstr "APPID"
-#: gio/gapplication-tool.c:72 gio/gapplication-tool.c:135 gio/gdbus-tool.c:106
-#: gio/gio-tool.c:224
+#: gio/gapplication-tool.c:74 gio/gapplication-tool.c:137 gio/gdbus-tool.c:108
+#: gio/gio-tool.c:226
msgid "COMMAND"
msgstr "COMANDĂ"
-#: gio/gapplication-tool.c:72
+#: gio/gapplication-tool.c:74
msgid "The command to print detailed help for"
msgstr "Comanda pentru care să se afișeze ajutorul detaliat"
-#: gio/gapplication-tool.c:73
+#: gio/gapplication-tool.c:75
msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Identificatorul de aplicație în format D-Bus (eg: org.example.viewer)"
-#: gio/gapplication-tool.c:74 gio/glib-compile-resources.c:820
-#: gio/glib-compile-resources.c:826 gio/glib-compile-resources.c:855
-#: gio/gresource-tool.c:501 gio/gresource-tool.c:567
+#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
+#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FIȘIER"
-#: gio/gapplication-tool.c:74
+#: gio/gapplication-tool.c:76
msgid "Optional relative or absolute filenames, or URIs to open"
msgstr "Calea relativă sau absolută a fisierelor, sau URIs pentru deschidere"
-#: gio/gapplication-tool.c:75
+#: gio/gapplication-tool.c:77
msgid "ACTION"
msgstr "ACȚIUNE"
-#: gio/gapplication-tool.c:75
+#: gio/gapplication-tool.c:77
msgid "The action name to invoke"
msgstr "Numele acțiunii de invocat"
-#: gio/gapplication-tool.c:76
+#: gio/gapplication-tool.c:78
msgid "PARAMETER"
msgstr "PARAMETRU"
-#: gio/gapplication-tool.c:76
+#: gio/gapplication-tool.c:78
msgid "Optional parameter to the action invocation, in GVariant format"
msgstr "Parametru opțional pentru invocarea acțiunii, în formatul GVariant"
-#: gio/gapplication-tool.c:98 gio/gresource-tool.c:532 gio/gsettings-tool.c:676
+#: gio/gapplication-tool.c:100 gio/gresource-tool.c:534
+#: gio/gsettings-tool.c:678
#, c-format
msgid ""
"Unknown command %s\n"
@@ -165,26 +177,26 @@ msgstr ""
"Comandă necunoscută %s\n"
"\n"
-#: gio/gapplication-tool.c:103
+#: gio/gapplication-tool.c:105
msgid "Usage:\n"
msgstr "Utilizare:\n"
-#: gio/gapplication-tool.c:116 gio/gresource-tool.c:557
-#: gio/gsettings-tool.c:711
+#: gio/gapplication-tool.c:118 gio/gresource-tool.c:559
+#: gio/gsettings-tool.c:713
msgid "Arguments:\n"
msgstr "Argumente:\n"
-#: gio/gapplication-tool.c:135 gio/gio-tool.c:224
+#: gio/gapplication-tool.c:137 gio/gio-tool.c:226
msgid "[ARGS…]"
msgstr "[ARGUMENTE…]"
-#: gio/gapplication-tool.c:136
+#: gio/gapplication-tool.c:138
#, c-format
msgid "Commands:\n"
msgstr "Comenzi:\n"
#. Translators: do not translate 'help', but please translate 'COMMAND'.
-#: gio/gapplication-tool.c:148
+#: gio/gapplication-tool.c:150
#, c-format
msgid ""
"Use “%s help COMMAND” to get detailed help.\n"
@@ -193,7 +205,7 @@ msgstr ""
"Utilizați „%s help COMANDĂ” pentru a obține ajutor detaliat.\n"
"\n"
-#: gio/gapplication-tool.c:167
+#: gio/gapplication-tool.c:169
#, c-format
msgid ""
"%s command requires an application id to directly follow\n"
@@ -202,13 +214,13 @@ msgstr ""
"comanda %s trebuie să fie urmată imediat de un id de aplicație\n"
"\n"
-#: gio/gapplication-tool.c:173
+#: gio/gapplication-tool.c:175
#, c-format
msgid "invalid application id: “%s”\n"
msgstr "id de aplicație nevalid: „%s”\n"
#. Translators: %s is replaced with a command name like 'list-actions'
-#: gio/gapplication-tool.c:184
+#: gio/gapplication-tool.c:186
#, c-format
msgid ""
"“%s” takes no arguments\n"
@@ -217,21 +229,21 @@ msgstr ""
"„%s” nu ia argumente\n"
"\n"
-#: gio/gapplication-tool.c:268
+#: gio/gapplication-tool.c:270
#, c-format
msgid "unable to connect to D-Bus: %s\n"
msgstr "nu se poate conecta la D-Bus: %s\n"
-#: gio/gapplication-tool.c:288
+#: gio/gapplication-tool.c:290
#, c-format
msgid "error sending %s message to application: %s\n"
msgstr "eroare la trimiterea mesajului %s la aplicația: %s\n"
-#: gio/gapplication-tool.c:319
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "numele acțiunii trebuie introdus după id-ul aplicației\n"
-#: gio/gapplication-tool.c:327
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -241,25 +253,25 @@ msgstr ""
"numele de acțiuni trebuie să fie formate doar din caractere alfanumerice, "
"„-” și „.”\n"
-#: gio/gapplication-tool.c:346
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "eroare la parsarea parametrului: %s\n"
-#: gio/gapplication-tool.c:358
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "acțiunile acceptă maximum un parametru\n"
-#: gio/gapplication-tool.c:413
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "comanda list-actions ia numai id-ul aplicației"
-#: gio/gapplication-tool.c:423
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "nu se poate găsi fișierul desktop pentru aplicația %s\n"
-#: gio/gapplication-tool.c:468
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -268,126 +280,126 @@ msgstr ""
"comandă nerecunoscută: %s\n"
"\n"
-#: gio/gbufferedinputstream.c:420 gio/gbufferedinputstream.c:498
-#: gio/ginputstream.c:179 gio/ginputstream.c:379 gio/ginputstream.c:648
-#: gio/ginputstream.c:1050 gio/goutputstream.c:223 gio/goutputstream.c:1049
-#: gio/gpollableinputstream.c:205 gio/gpollableoutputstream.c:277
+#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "S-a pasat o valoare prea mare către %s"
-#: gio/gbufferedinputstream.c:891 gio/gbufferedoutputstream.c:575
-#: gio/gdataoutputstream.c:562
+#: gio/gbufferedinputstream.c:893 gio/gbufferedoutputstream.c:577
+#: gio/gdataoutputstream.c:564
msgid "Seek not supported on base stream"
msgstr "Căutarea în fluxul de bază nu este suportată"
-#: gio/gbufferedinputstream.c:938
+#: gio/gbufferedinputstream.c:940
msgid "Cannot truncate GBufferedInputStream"
msgstr "Nu se poate trunchia GBufferedInputStream"
-#: gio/gbufferedinputstream.c:983 gio/ginputstream.c:1239 gio/giostream.c:300
-#: gio/goutputstream.c:2198
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Flux deja închis"
-#: gio/gbufferedoutputstream.c:612 gio/gdataoutputstream.c:592
+#: gio/gbufferedoutputstream.c:614 gio/gdataoutputstream.c:594
msgid "Truncate not supported on base stream"
msgstr "Trunchierea fluxului de bază nu este suportată"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1873 gio/gdbusprivate.c:1418
-#: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
+#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
msgstr "Operațiunea a fost anulată"
-#: gio/gcharsetconverter.c:260
+#: gio/gcharsetconverter.c:262
msgid "Invalid object, not initialized"
msgstr "Obiect nevalid, neinițializat"
-#: gio/gcharsetconverter.c:281 gio/gcharsetconverter.c:309
+#: gio/gcharsetconverter.c:283 gio/gcharsetconverter.c:311
msgid "Incomplete multibyte sequence in input"
msgstr "Secvență de octeți incompletă la intrare"
-#: gio/gcharsetconverter.c:315 gio/gcharsetconverter.c:324
+#: gio/gcharsetconverter.c:317 gio/gcharsetconverter.c:326
msgid "Not enough space in destination"
msgstr "Spațiu insuficient în destinație"
-#: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1266 glib/gconvert.c:449 glib/gconvert.c:879
-#: glib/giochannel.c:1573 glib/giochannel.c:1615 glib/giochannel.c:2470
-#: glib/gutf8.c:890 glib/gutf8.c:1344
+#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Secvență de octeți incorectă în inputul conversiei"
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:457 glib/gconvert.c:793
-#: glib/giochannel.c:1580 glib/giochannel.c:2482
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Eroare în timpul conversiei: %s"
-#: gio/gcharsetconverter.c:445 gio/gsocket.c:1147
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Inițializarea întreruptibilă nu este implementată"
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:322 glib/giochannel.c:1401
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Conversia de la setul de caractere „%s” la „%s” nu este suportată"
-#: gio/gcharsetconverter.c:460 glib/gconvert.c:326
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Nu s-a putut deschide convertorul de la „%s” la „%s”"
-#: gio/gcontenttype.c:470
+#: gio/gcontenttype.c:472
#, c-format
msgid "%s type"
msgstr "tip %s"
-#: gio/gcontenttype-win32.c:192
+#: gio/gcontenttype-win32.c:198
msgid "Unknown type"
msgstr "Tip necunoscută"
-#: gio/gcontenttype-win32.c:194
+#: gio/gcontenttype-win32.c:200
#, c-format
msgid "%s filetype"
msgstr "tip de fișier %s"
-#: gio/gcredentials.c:335
+#: gio/gcredentials.c:337
msgid "GCredentials contains invalid data"
msgstr "GCredentials conține date nevalide"
-#: gio/gcredentials.c:395 gio/gcredentials.c:686
+#: gio/gcredentials.c:397 gio/gcredentials.c:688
msgid "GCredentials is not implemented on this OS"
msgstr "GCredentials nu este implementat pe acest SO"
-#: gio/gcredentials.c:550 gio/gcredentials.c:568
+#: gio/gcredentials.c:552 gio/gcredentials.c:570
msgid "There is no GCredentials support for your platform"
msgstr "Nu există suport pentru GCredentials pe platforma dumneavoastră"
-#: gio/gcredentials.c:626
+#: gio/gcredentials.c:628
msgid "GCredentials does not contain a process ID on this OS"
msgstr "GCredentials nu conține un ID de proces pe acest SO"
-#: gio/gcredentials.c:680
+#: gio/gcredentials.c:682
msgid "Credentials spoofing is not possible on this OS"
msgstr "Spoofing-ul certificărilor nu este posibil pe acest SO"
-#: gio/gdatainputstream.c:304
+#: gio/gdatainputstream.c:306
msgid "Unexpected early end-of-stream"
msgstr "Flux terminat neașteptat de repede"
-#: gio/gdbusaddress.c:162 gio/gdbusaddress.c:236 gio/gdbusaddress.c:325
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Cheie „%s” nesuportată în intrarea de adresă „%s”"
-#: gio/gdbusaddress.c:175
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Pereche cheie/valoare fără sens în intrarea de adresă „%s”"
-#: gio/gdbusaddress.c:184
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -396,28 +408,28 @@ msgstr ""
"Adresa „%s” nu este validă (este nevoie de exact una din cale, dir, tmpdir "
"sau chei abstracte)"
-#: gio/gdbusaddress.c:251 gio/gdbusaddress.c:262 gio/gdbusaddress.c:277
-#: gio/gdbusaddress.c:340 gio/gdbusaddress.c:351
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
+#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
msgstr "Eroare în adresa „%s” — atributul „%s” este malformat"
-#: gio/gdbusaddress.c:421 gio/gdbusaddress.c:680
+#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:682
#, c-format
msgid "Unknown or unsupported transport “%s” for address “%s”"
msgstr "Transport „%s” necunoscut sau nesuportat pentru adresa „%s”"
-#: gio/gdbusaddress.c:465
+#: gio/gdbusaddress.c:467
#, c-format
msgid "Address element “%s” does not contain a colon (:)"
msgstr "Elementul de adresă „%s” nu conține două puncte (:)"
-#: gio/gdbusaddress.c:474
+#: gio/gdbusaddress.c:476
#, c-format
msgid "Transport name in address element “%s” must not be empty"
msgstr "Numele de transport în elementul de adresă „%s” nu trebuie să fie gol"
-#: gio/gdbusaddress.c:495
+#: gio/gdbusaddress.c:497
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
@@ -426,7 +438,7 @@ msgstr ""
"Perechea cheie/valoare %d, „%s”, în elementul de adresă „%s”, nu conține un "
"semn de egalitate"
-#: gio/gdbusaddress.c:506
+#: gio/gdbusaddress.c:508
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
@@ -434,7 +446,7 @@ msgstr ""
"Perechea cheie/valoare %d, „%s”, în elementul de adresă „%s”, nu trebuie să "
"aibă o cheie goală"
-#: gio/gdbusaddress.c:520
+#: gio/gdbusaddress.c:522
#, c-format
msgid ""
"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
@@ -443,7 +455,7 @@ msgstr ""
"Eroare la conversia din formatul „escaped” a cheii sau a valorii din "
"perechea cheie/valoare %d, „%s”, în elementul de adresă „%s”"
-#: gio/gdbusaddress.c:588
+#: gio/gdbusaddress.c:590
#, c-format
msgid ""
"Error in address “%s” — the unix transport requires exactly one of the keys "
@@ -452,79 +464,79 @@ msgstr ""
"Eroare în adresa „%s” - transportul unix necesită exact una din cheile "
"„path” sau „abstract” să fie stabilită"
-#: gio/gdbusaddress.c:623
+#: gio/gdbusaddress.c:625
#, c-format
msgid "Error in address “%s” — the host attribute is missing or malformed"
msgstr "Eroare în adresa „%s” - atributul gazdă lipsește sau este eronat"
-#: gio/gdbusaddress.c:637
+#: gio/gdbusaddress.c:639
#, c-format
msgid "Error in address “%s” — the port attribute is missing or malformed"
msgstr "Eroare la adresa „%s” - atributul port lipsește sau este eronat"
-#: gio/gdbusaddress.c:651
+#: gio/gdbusaddress.c:653
#, c-format
msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
msgstr "Eroare în adresa „%s” - atributul noncefile lipsește sau este eronat"
-#: gio/gdbusaddress.c:672
+#: gio/gdbusaddress.c:674
msgid "Error auto-launching: "
msgstr "Eroare la auto-lansare: "
-#: gio/gdbusaddress.c:725
+#: gio/gdbusaddress.c:727
#, c-format
msgid "Error opening nonce file “%s”: %s"
msgstr "Eroare la deschiderea fișierului nonce „%s”: %s"
-#: gio/gdbusaddress.c:744
+#: gio/gdbusaddress.c:746
#, c-format
msgid "Error reading from nonce file “%s”: %s"
msgstr "Eroare la citirea din fișierul nonce „%s”: %s"
-#: gio/gdbusaddress.c:753
+#: gio/gdbusaddress.c:755
#, c-format
msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
msgstr ""
"Eroare la citirea din fișierul nonce „%s”, se așteptau 16 octeți, s-au "
"primit %d"
-#: gio/gdbusaddress.c:771
+#: gio/gdbusaddress.c:773
#, c-format
msgid "Error writing contents of nonce file “%s” to stream:"
msgstr "Eroare la scrierea conținutului fișierului nonce „%s” la flux:"
-#: gio/gdbusaddress.c:986
+#: gio/gdbusaddress.c:988
msgid "The given address is empty"
msgstr "Adresa oferită este goală"
-#: gio/gdbusaddress.c:1099
+#: gio/gdbusaddress.c:1101
#, c-format
msgid "Cannot spawn a message bus when AT_SECURE is set"
msgstr "Nu se poate lansa o magistrală de mesaje când AT_SECURE este stabilit"
-#: gio/gdbusaddress.c:1106
+#: gio/gdbusaddress.c:1108
msgid "Cannot spawn a message bus without a machine-id: "
msgstr ""
"Nu se poate lansa o magistrală de mesaje fără un identificator de mașină: "
-#: gio/gdbusaddress.c:1113
+#: gio/gdbusaddress.c:1115
#, c-format
msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
msgstr "Nu se poate lansa automat D-Bus fără $DISPLAY X11"
-#: gio/gdbusaddress.c:1155
+#: gio/gdbusaddress.c:1157
#, c-format
msgid "Error spawning command line “%s”: "
msgstr "Eroare la crearea liniei de comandă „%s”: "
-#: gio/gdbusaddress.c:1224
+#: gio/gdbusaddress.c:1226
#, c-format
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
"Nu se poate determina adresa magistralei de sesiune (neimplementat pe acest "
"sistem de operare)"
-#: gio/gdbusaddress.c:1373 gio/gdbusconnection.c:7334
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -533,7 +545,7 @@ msgstr ""
"Nu se poate determina adresa magistralei din variabila de mediu "
"DBUS_STARTER_BUS_TYPE — valoare necunoscută „%s”"
-#: gio/gdbusaddress.c:1382 gio/gdbusconnection.c:7343
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -541,7 +553,7 @@ msgstr ""
"Nu s-a putut determina adresa magistralei pentru că variabila de mediu "
"DBUS_STARTER_BUS_TYPE nu este setată"
-#: gio/gdbusaddress.c:1392
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Tip de magistrală %d necunoscut"
@@ -564,21 +576,25 @@ msgstr ""
"S-au epuizat toate mecanismele de autentificare disponibile (încercat: %s) "
"(disponibile: %s)"
-#: gio/gdbusauth.c:1171
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Lipsă de conținut neașteptată în timp ce se încerca citirea unui octet"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr ""
"ID-urile utilizatorului trebuie să fie aceleași pentru client și server"
-#: gio/gdbusauth.c:1183
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Anulat via GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:299
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Eroare în timpul obținerii de informații pentru directorul „%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:314
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -586,32 +602,32 @@ msgstr ""
"Permisiunile pentru dosarul „%s” sunt eronate. Se aștepta modul 0700, s-a "
"primit 0%o"
-#: gio/gdbusauthmechanismsha1.c:347 gio/gdbusauthmechanismsha1.c:358
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Eroare la crearea directorului „%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:360 gio/gfile.c:1080 gio/gfile.c:1318
-#: gio/gfile.c:1456 gio/gfile.c:1694 gio/gfile.c:1749 gio/gfile.c:1807
-#: gio/gfile.c:1891 gio/gfile.c:1948 gio/gfile.c:2012 gio/gfile.c:2067
-#: gio/gfile.c:3772 gio/gfile.c:3912 gio/gfile.c:4205 gio/gfile.c:4675
-#: gio/gfile.c:5086 gio/gfile.c:5171 gio/gfile.c:5261 gio/gfile.c:5358
-#: gio/gfile.c:5445 gio/gfile.c:5546 gio/gfile.c:8375 gio/gfile.c:8465
-#: gio/gfile.c:8549 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:8996 gio/gfile.c:9086
+#: gio/gfile.c:9170 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Operațiune neimplementată"
-#: gio/gdbusauthmechanismsha1.c:403
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Eroare la deschiderea inelului de chei „%s” pentru citire: "
-#: gio/gdbusauthmechanismsha1.c:426 gio/gdbusauthmechanismsha1.c:748
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "Linia %d a inelului de chei de la „%s” cu conținutul „%s” este eronată"
-#: gio/gdbusauthmechanismsha1.c:440 gio/gdbusauthmechanismsha1.c:762
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -619,7 +635,7 @@ msgstr ""
"Primul jeton al liniei %d a inelului de chei de la „%s” cu conținutul „%s” "
"este eronat"
-#: gio/gdbusauthmechanismsha1.c:454 gio/gdbusauthmechanismsha1.c:776
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -627,57 +643,57 @@ msgstr ""
"Al doilea jeton al liniei %d a inelului de chei de la „%s” cu conținutul "
"„%s” este eronat"
-#: gio/gdbusauthmechanismsha1.c:478
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Nu s-a găsit un cookie cu id-ul %d în inelul de chei de la „%s”"
-#: gio/gdbusauthmechanismsha1.c:524
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Eroare la crearea fișierului de blocare „%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:588
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Eroare la ștergerea fișierului de blocare învechit „%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:627
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Eroare la închiderea fișierului de blocare (deconectat) „%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:638
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Eroare la deconectarea fișierului de blocare „%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:715
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Eroare la deschiderea inelului de chei „%s” pentru citire: "
-#: gio/gdbusauthmechanismsha1.c:909
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Adițional, a eșuat și eliberarea blocării pentru „%s”: %s) "
-#: gio/gdbusconnection.c:604 gio/gdbusconnection.c:2418
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "Conexiunea este închisă"
-#: gio/gdbusconnection.c:1903
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Limita de timp a fost atinsă"
-#: gio/gdbusconnection.c:2541
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"S-au întâlnit fanioane nesuportate când se construia partea de client a "
"conexiunii"
-#: gio/gdbusconnection.c:4269 gio/gdbusconnection.c:4623
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -685,109 +701,114 @@ msgstr ""
"Nu există interfața „org.freedesktop.DBus.Properties” în obiectul de la "
"calea %s"
-#: gio/gdbusconnection.c:4414
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Nu există proprietatea „%s”"
-#: gio/gdbusconnection.c:4426
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Proprietatea „%s” nu poate fi citită"
-#: gio/gdbusconnection.c:4437
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Proprietatea „%s” nu poate fi scrisă"
-#: gio/gdbusconnection.c:4457
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Eroare la stabilirea proprietății „%s”: Se aștepta tipul „%s”, dar s-a "
"primit „%s”"
-#: gio/gdbusconnection.c:4562 gio/gdbusconnection.c:4777
-#: gio/gdbusconnection.c:6760
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Nu există interfața „%s”"
-#: gio/gdbusconnection.c:4999 gio/gdbusconnection.c:7274
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Nu există interfața „%s” în obiectul de la calea %s"
-#: gio/gdbusconnection.c:5100
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Nu există metoda „%s”"
-#: gio/gdbusconnection.c:5131
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Tipul de mesaj, „%s”, nu se potrivește cu cel așteptat „%s”"
-#: gio/gdbusconnection.c:5334
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Există deja un obiect exportat pentru interfața %s de la %s"
-#: gio/gdbusconnection.c:5561
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Nu se poate obține proprietatea %s.%s"
-#: gio/gdbusconnection.c:5617
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Nu se poate stabili proprietatea %s.%s"
-#: gio/gdbusconnection.c:5796
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Metoda „%s” a întors tipul „%s”, dar se aștepta „%s”"
-#: gio/gdbusconnection.c:6872
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Metoda „%s” din interfața „%s” cu semnătura „%s” nu există"
-#: gio/gdbusconnection.c:6993
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Un subarbore este deja exporta pentru %s"
-#: gio/gdbusconnection.c:7282
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Obiectul nu există la calea „%s”"
-#: gio/gdbusmessage.c:1301
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "tipul este NEVALID"
-#: gio/gdbusmessage.c:1312
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
msgstr ""
-"Mesaj METHOD_CALL: unul din câmpurile de antet PATH sau MEMBER lipsește"
+"Mesaj METHOD_CALL: unul din câmpurile de antet PATH sau MEMBER lipsește sau "
+"nu este valid"
-#: gio/gdbusmessage.c:1323
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "Mesaj METHOD_RETURN: câmpul antet REPLY_SERIAL lipsește"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"Mesaj METHOD_RETURN: câmpul antet REPLY_SERIAL lipsește sau nu este valid"
-#: gio/gdbusmessage.c:1335
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
msgstr ""
"Mesaj de EROARE: unul din câmpurile de antet REPLY_SERIAL sau ERROR_NAME "
-"lipsește"
+"lipsește sau nu este valid"
-#: gio/gdbusmessage.c:1348
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
msgstr ""
-"Mesaj SIGNAL: unul din câmpurile de antet PATH, INTERFACE sau MEMBER lipsește"
+"Mesaj SIGNAL: unul din câmpurile de antet PATH, INTERFACE sau MEMBER "
+"lipsește sau nu este valid"
-#: gio/gdbusmessage.c:1356
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -795,7 +816,7 @@ msgstr ""
"Mesaj SIGNAL: câmpul de antet PATH utilizează valoarea rezervată /org/"
"freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1364
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -803,7 +824,7 @@ msgstr ""
"Mesaj SIGNAL: câmpul de antet INTERFACE utilizează valoarea rezervată org."
"freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1412 gio/gdbusmessage.c:1472
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
@@ -811,12 +832,12 @@ msgstr[0] "S-a încercat să se citească %lu octet, dar s-a primit doar %lu"
msgstr[1] "S-a încercat să se citească %lu octeți, dar s-au primit doar %lu"
msgstr[2] "S-a încercat să se citească %lu de octeți, dar s-au primit doar %lu"
-#: gio/gdbusmessage.c:1426
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "S-a așteptat un octet NUL după șirul „%s”, dar s-a găsit octetul %d"
-#: gio/gdbusmessage.c:1445
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -826,21 +847,21 @@ msgstr ""
"%d (lungimea șirului este %d). Șirul UTF-8 valid până la acel punct a fost "
"„%s”"
-#: gio/gdbusmessage.c:1509 gio/gdbusmessage.c:1785 gio/gdbusmessage.c:1996
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Valoare imbricată prea adânc"
-#: gio/gdbusmessage.c:1677
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Valoarea parsată „%s” nu este o cale de obiect D-Bus validă"
-#: gio/gdbusmessage.c:1701
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Valoarea parsată „%s” nu este o semnătură D-Bus validă"
-#: gio/gdbusmessage.c:1752
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -856,7 +877,7 @@ msgstr[2] ""
"S-a întâlnit un șir cu lungimea de %u de octeți. Lungimea maximă este de "
"2<<26 de octeți (64 MiB)."
-#: gio/gdbusmessage.c:1772
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -865,16 +886,16 @@ msgstr ""
"S-a întâlnit un șir de tipul „a%c”, se aștepta să aibă o lungime un multiplu "
"de %u octeți, dar s-a constatat că are o lungime de %u octeți"
-#: gio/gdbusmessage.c:1926 gio/gdbusmessage.c:2645
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Structuri goale (tuple) nu sunt permise în D-Bus"
-#: gio/gdbusmessage.c:1980
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Valoarea parsată „%s” pentru variantă nu este o semnătură D-Bus validă"
-#: gio/gdbusmessage.c:2021
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -882,7 +903,7 @@ msgstr ""
"Eroare la deserializarea GVariant cu șirul de tipul „%s” din formatul de "
"rețea D-Bus"
-#: gio/gdbusmessage.c:2206
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -891,28 +912,28 @@ msgstr ""
"Valoare de endianness nevalidă. Se aștepta 0x6c („l”) sau 0x42 („B”), dar s-"
"a găsit valoarea 0x%02x"
-#: gio/gdbusmessage.c:2225
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Versiune majoră de protocol nevalidă. Se aștepta 1 dar s-a găsit %d"
-#: gio/gdbusmessage.c:2283 gio/gdbusmessage.c:2881
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Antet de semnătură găsit dar nu este de tipul semnătură"
-#: gio/gdbusmessage.c:2295
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"S-a găsit un antet de semnătură cu semnătura „%s”, dar corpul mesajului este "
"vid"
-#: gio/gdbusmessage.c:2310
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Valoarea parsată „%s” nu este o semnătură D-Bus validă (pentru corp)"
-#: gio/gdbusmessage.c:2342
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -926,11 +947,11 @@ msgstr[2] ""
"Nu există niciun antet de semnătură în mesaj, dar corpul mesajului este de "
"%u de octeți"
-#: gio/gdbusmessage.c:2352
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Nu se poate deserializa mesajul: "
-#: gio/gdbusmessage.c:2698
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -938,24 +959,24 @@ msgstr ""
"Eroare la serializarea GVariant cu șirul de tipul „%s” în formatul de rețea "
"D-Bus"
-#: gio/gdbusmessage.c:2835
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
"Numărul de descriptori de fișier în mesaj (%d) diferă de câmpul de antet (%d)"
-#: gio/gdbusmessage.c:2843
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Nu se poate serializa mesajul: "
-#: gio/gdbusmessage.c:2896
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
"Corpul mesajului are semnătura „%s”, dar nu există nicio semnătură de antet"
-#: gio/gdbusmessage.c:2906
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -964,53 +985,53 @@ msgstr ""
"Corpul mesajului are semnătura „%s”, dar semnătura din câmpul de antet este "
"„%s”"
-#: gio/gdbusmessage.c:2922
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
"Corpul mesajului este vid, dar semnătura din câmpul de antet este „(%s)”"
-#: gio/gdbusmessage.c:3477
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Eroare la întoarcere cu corpul de tipul „%s”"
-#: gio/gdbusmessage.c:3485
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Rezultat de eroare cu corp vid"
-#: gio/gdbusprivate.c:2185
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Tastați orice caracter pentru a închide această fereastră)\n"
-#: gio/gdbusprivate.c:2371
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "Sesiunea dbus nu rulează, și lansarea automată a eșuat"
-#: gio/gdbusprivate.c:2394
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Nu se poate obține profilul hardware: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2445
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Nu s-a putut încărca %s sau %s: "
-#: gio/gdbusproxy.c:1573
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Eroare la apelul StartServiceByName pentru %s: "
-#: gio/gdbusproxy.c:1596
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Răspuns neașteptat %d de la metoda StartServiceByName(\"%s\")"
-#: gio/gdbusproxy.c:2707 gio/gdbusproxy.c:2842
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1020,30 +1041,30 @@ msgstr ""
"proprietar, și a fost construit utilizând fanionul "
"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:767
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Spațiul de nume abstract nu este suportat"
-#: gio/gdbusserver.c:860
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Nu se poate specifica un fișier nonce când se creează un server"
-#: gio/gdbusserver.c:942
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Eroare la scrierea fișierului nonce la „%s”: %s"
-#: gio/gdbusserver.c:1117
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Șirul „%s” nu este un GUID D-Bus valid"
-#: gio/gdbusserver.c:1157
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Nu se poate asculta pe transportul nesuportat „%s”"
-#: gio/gdbus-tool.c:111
+#: gio/gdbus-tool.c:113
#, c-format
msgid ""
"Commands:\n"
@@ -1067,69 +1088,69 @@ msgstr ""
"Utilizați \"%s COMANDĂ --help\" pentru a obține ajutor pentru fiecare "
"comandă.\n"
-#: gio/gdbus-tool.c:201 gio/gdbus-tool.c:273 gio/gdbus-tool.c:345
-#: gio/gdbus-tool.c:369 gio/gdbus-tool.c:859 gio/gdbus-tool.c:1244
-#: gio/gdbus-tool.c:1732
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Eroare: %s\n"
-#: gio/gdbus-tool.c:212 gio/gdbus-tool.c:286 gio/gdbus-tool.c:1748
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Eroare la parsarea introspecției XML: %s\n"
-#: gio/gdbus-tool.c:250
+#: gio/gdbus-tool.c:253
#, c-format
msgid "Error: %s is not a valid name\n"
msgstr ""
"Eroare: %s nu este un nume valid\n"
"\n"
-#: gio/gdbus-tool.c:255 gio/gdbus-tool.c:745 gio/gdbus-tool.c:1063
-#: gio/gdbus-tool.c:1898 gio/gdbus-tool.c:2138
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Eroare: calea %s către obiect nu este validă\n"
-#: gio/gdbus-tool.c:403
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Conectare la magistrala sistemului"
-#: gio/gdbus-tool.c:404
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Conectare la magistrala de sesiune"
-#: gio/gdbus-tool.c:405
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Conectare la adresa D-Bus dată"
-#: gio/gdbus-tool.c:415
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Opțiuni ale capătului conexiunii:"
-#: gio/gdbus-tool.c:416
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Opțiuni care specifică capătul conexiunii"
-#: gio/gdbus-tool.c:439
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Niciun capăt de conexiune specificat"
-#: gio/gdbus-tool.c:449
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Mai multe capete de conexiune specificate"
-#: gio/gdbus-tool.c:522
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr ""
"Avertisment: conform datelor de introspecție, interfața „%s” nu există\n"
-#: gio/gdbus-tool.c:531
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1138,171 +1159,171 @@ msgstr ""
"Avertisment: conform datelor de introspecție, metoda „%s” nu există în "
"interfața „%s”\n"
-#: gio/gdbus-tool.c:593
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Destinația opțională pentru semnal (nume unic)"
-#: gio/gdbus-tool.c:594
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Calea obiectului pe care se emite semnalul"
-#: gio/gdbus-tool.c:595
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Numele semnalului și interfeței"
-#: gio/gdbus-tool.c:628
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Emite un semnal."
-#: gio/gdbus-tool.c:683 gio/gdbus-tool.c:1000 gio/gdbus-tool.c:1835
-#: gio/gdbus-tool.c:2067 gio/gdbus-tool.c:2287
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Eroare la conectare: %s\n"
-#: gio/gdbus-tool.c:703
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Eroare: %s nu este un nume de magistrală unic valid.\n"
-#: gio/gdbus-tool.c:722 gio/gdbus-tool.c:1043 gio/gdbus-tool.c:1878
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Eroare: calea către obiect nu a fost specificată\n"
-#: gio/gdbus-tool.c:765
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Eroare: numele de semnal nu a fost specificat\n"
-#: gio/gdbus-tool.c:779
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr ""
"Eroare: numele de semnal „%s” nu este valid\n"
"\n"
-#: gio/gdbus-tool.c:791
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Eroare: %s nu este un nume de interfață valid\n"
-#: gio/gdbus-tool.c:797
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Eroare: %s nu este un nume de membru valid\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:834 gio/gdbus-tool.c:1175
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Eroare la parsarea parametrului %d: %s\n"
-#: gio/gdbus-tool.c:866
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Eroare la golirea conexiunii: %s\n"
-#: gio/gdbus-tool.c:894
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Numele destinației pe care se va invoca metoda"
-#: gio/gdbus-tool.c:895
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Calea către obiectul pe care se va invoca metoda"
-#: gio/gdbus-tool.c:896
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Metoda și numele interfeței"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Limita de timp în secunde"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Permite autorizarea interactivă"
-#: gio/gdbus-tool.c:945
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Invocă o metodă pe un obiect la distanță."
-#: gio/gdbus-tool.c:1017 gio/gdbus-tool.c:1852 gio/gdbus-tool.c:2092
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Eroare: destinația nu a fost specificată\n"
-#: gio/gdbus-tool.c:1028 gio/gdbus-tool.c:1869 gio/gdbus-tool.c:2103
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr ""
"Eroare: %s nu este un nume de magistrală valid\n"
"\n"
-#: gio/gdbus-tool.c:1078
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Eroare: numele metodei nu a fost specificat\n"
-#: gio/gdbus-tool.c:1089
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr ""
"Eroare: numele de metodă „%s” nu este valid\n"
"\n"
-#: gio/gdbus-tool.c:1167
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Eroare la parsarea parametrului %d cu tipul „%s”: %s\n"
-#: gio/gdbus-tool.c:1193
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Eroare la adăugarea mânerului %d: %s\n"
-#: gio/gdbus-tool.c:1694
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Numele destinației de introspectat"
-#: gio/gdbus-tool.c:1695
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Calea obiectului de introspectat"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Afișează XML"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Introspectează inferiorii"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Tipărește doar proprietățile"
-#: gio/gdbus-tool.c:1787
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Introspectează un obiect la distanță."
-#: gio/gdbus-tool.c:1993
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Numele destinației de monitorizat"
-#: gio/gdbus-tool.c:1994
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Calea către obiectul de monitorizat"
-#: gio/gdbus-tool.c:2019
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Monitorizează un obiect la distanță."
-#: gio/gdbus-tool.c:2077
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Eroare: nu se poate monitoriza o conexiune non-magistrală-mesaj\n"
-#: gio/gdbus-tool.c:2201
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr ""
"Serviciu de activat înainte de a-l aștepta pe celălalt (nume bine cunoscut)"
-#: gio/gdbus-tool.c:2204
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1310,132 +1331,137 @@ msgstr ""
"Limita de timp de așteptat înainte de a ieși cu o eroare (secunde); 0 pentru "
"nicio limită de timp (implicit)"
-#: gio/gdbus-tool.c:2252
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[OPȚIUNE…] NUME-MAGISTRALĂ"
-#: gio/gdbus-tool.c:2253
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Așteaptă apariția unui nume de magistrală."
-#: gio/gdbus-tool.c:2329
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Eroare: trebuie specificat un serviciu pentru care să se activeze.\n"
-#: gio/gdbus-tool.c:2334
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Eroare: trebuie specificat un serviciu după care să se aștepte.\n"
-#: gio/gdbus-tool.c:2339
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Eroare: prea multe argumente.\n"
-#: gio/gdbus-tool.c:2347 gio/gdbus-tool.c:2354
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Eroare: %s nu este un nume de magistrală popular valid.\n"
-#: gio/gdebugcontrollerdbus.c:357
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Neautorizat pentru a modifica configurările de depanare"
-#: gio/gdesktopappinfo.c:2174 gio/gdesktopappinfo.c:5101
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Nedenumit"
-#: gio/gdesktopappinfo.c:2584
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Fișierul desktop nu a specificat un câmp Exec"
-#: gio/gdesktopappinfo.c:2892
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Nu s-a găsit un terminal pentru pornirea aplicației"
-#: gio/gdesktopappinfo.c:3621
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Programul „%s” nu a fost găsit în $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr ""
"Nu se poate crea dosarul de configurare pentru aplicațiile utilizatorului "
"%s: %s"
-#: gio/gdesktopappinfo.c:3625
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Nu se poate crea dosarul de configurare MIME al utilizatorului %s: %s"
-#: gio/gdesktopappinfo.c:3867 gio/gdesktopappinfo.c:3891
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Informațiile despre aplicație nu au un indentificator"
-#: gio/gdesktopappinfo.c:4127
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Nu se poate crea fișierul desktop al utilizatorului %s"
-#: gio/gdesktopappinfo.c:4263
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Definiție personalizată pentru %s"
-#: gio/gdrive.c:417
+#: gio/gdrive.c:419
msgid "drive doesn’t implement eject"
msgstr "unitatea nu implementează scoaterea"
#. Translators: This is an error
#. * message for drive objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gdrive.c:495
+#: gio/gdrive.c:497
msgid "drive doesn’t implement eject or eject_with_operation"
msgstr "unitatea nu implementează comenzile eject sau eject_with_operation"
-#: gio/gdrive.c:571
+#: gio/gdrive.c:573
msgid "drive doesn’t implement polling for media"
msgstr ""
"unitatea nu implementează verificarea periodică pentru medii de stocare noi"
-#: gio/gdrive.c:778
+#: gio/gdrive.c:780
msgid "drive doesn’t implement start"
msgstr "unitatea nu implementează comanda start"
-#: gio/gdrive.c:880
+#: gio/gdrive.c:882
msgid "drive doesn’t implement stop"
msgstr "unitatea nu implementează comanda stop"
-#: gio/gdtlsconnection.c:1186 gio/gtlsconnection.c:955
+#: gio/gdtlsconnection.c:1188 gio/gtlsconnection.c:957
msgid "TLS backend does not implement TLS binding retrieval"
msgstr "Suportul TLS nu implementează obținerea legăturii TLS"
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
-#: gio/gdummytlsbackend.c:513
+#: gio/gdummytlsbackend.c:197 gio/gdummytlsbackend.c:323
+#: gio/gdummytlsbackend.c:515
msgid "TLS support is not available"
msgstr "Suportul TLS nu este disponibil"
-#: gio/gdummytlsbackend.c:423
+#: gio/gdummytlsbackend.c:425
msgid "DTLS support is not available"
msgstr "Suportul DTLS nu este disponibil"
-#: gio/gemblem.c:323
+#: gio/gemblem.c:325
#, c-format
msgid "Can’t handle version %d of GEmblem encoding"
msgstr "Nu se poate lucra cu versiunea %d a codării GEmblem"
-#: gio/gemblem.c:333
+#: gio/gemblem.c:335
#, c-format
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr "Număr de jetoane formatat eronat (%d) în codarea GEmblem"
-#: gio/gemblemedicon.c:362
+#: gio/gemblemedicon.c:364
#, c-format
msgid "Can’t handle version %d of GEmblemedIcon encoding"
msgstr "Nu se poate lucra cu versiunea %d a codării GEmblemedIcon"
-#: gio/gemblemedicon.c:372
+#: gio/gemblemedicon.c:374
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr "Număr de jetoane formatat eronat (%d) în codarea GEmblemedIcon"
-#: gio/gemblemedicon.c:395
+#: gio/gemblemedicon.c:397
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "Se aștepta un GEmblem pentru GEmblemedIcon"
@@ -1443,217 +1469,227 @@ msgstr "Se aștepta un GEmblem pentru GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1579
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Montarea conținută nu există"
-#: gio/gfile.c:2626 gio/glocalfile.c:2486
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Nu se poate copia peste director"
-#: gio/gfile.c:2686
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Nu se poate copia un director peste alt director"
-#: gio/gfile.c:2694
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Fișierul destinație există deja"
-#: gio/gfile.c:2713
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Nu se poate copia recursiv directorul"
-#: gio/gfile.c:3014
-msgid "Splice not supported"
-msgstr "Nu există suport pentru funcția splice"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Intervalul de fișier de copiere nu este suportat"
-#: gio/gfile.c:3018
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Eroare la aplicarea funcției „splice” fișierului: %s"
-#: gio/gfile.c:3170
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Nu există suport pentru funcția splice"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Copierea (reflink/clonarea) între două montări nu este suportată"
-#: gio/gfile.c:3174
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr ""
"Copierea (legătura de referință/clonarea) nu este suportată sau nu este "
"validă"
-#: gio/gfile.c:3179
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr ""
"Copierea (legătura de referință/clonarea) nu este suportată sau nu a "
"funcționat"
-#: gio/gfile.c:3244
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Nu se poate copia fișierul special"
-#: gio/gfile.c:4138
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "S-a primit o valoare incorectă pentru legătura simbolică"
-#: gio/gfile.c:4148 glib/gfileutils.c:2333
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Legăturile simbolice nu sunt implementate"
-#: gio/gfile.c:4316
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Nu există o implementare pentru coșul de gunoi"
-#: gio/gfile.c:4428
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Numele de fișiere nu pot conține „%c”"
-#: gio/gfile.c:7028 gio/gvolume.c:364
+#: gio/gfile.c:7151 gio/gfile.c:7277
+#, c-format
+msgid "Failed to create a temporary directory for template “%s”: %s"
+msgstr "Nu s-a putut crea un director temporar pentru șablonul „%s”: %s"
+
+#: gio/gfile.c:7595 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "volumul nu implementează montarea"
-#: gio/gfile.c:7142 gio/gfile.c:7190
+#: gio/gfile.c:7709 gio/gfile.c:7786
msgid "No application is registered as handling this file"
msgstr "Nu există o aplicație înregistrată pentru deschiderea acestui fișier"
-#: gio/gfileenumerator.c:212
+#: gio/gfileenumerator.c:214
msgid "Enumerator is closed"
msgstr "Enumeratorul este închis"
-#: gio/gfileenumerator.c:219 gio/gfileenumerator.c:278
-#: gio/gfileenumerator.c:377 gio/gfileenumerator.c:476
+#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Enumeratorul fișierului este deja deschis de o altă operațiune"
-#: gio/gfileenumerator.c:368 gio/gfileenumerator.c:467
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Enumeratorul fișierului este deja închis"
-#: gio/gfileicon.c:250
+#: gio/gfileicon.c:252
#, c-format
msgid "Can’t handle version %d of GFileIcon encoding"
msgstr "Nu se poate lucra cu versiunea %d a codării GFileIcon"
-#: gio/gfileicon.c:260
+#: gio/gfileicon.c:262
msgid "Malformed input data for GFileIcon"
msgstr "Date de intrare eronate pentru GFileIcon"
-#: gio/gfileinputstream.c:149 gio/gfileinputstream.c:394
-#: gio/gfileiostream.c:167 gio/gfileoutputstream.c:164
-#: gio/gfileoutputstream.c:497
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
+#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
+#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Fluxul nu suportă query_info"
-#: gio/gfileinputstream.c:325 gio/gfileiostream.c:379
-#: gio/gfileoutputstream.c:371
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
+#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Căutarea în flux nu este implementată"
-#: gio/gfileinputstream.c:369
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Nu se permite trunchierea fluxului de intrare"
-#: gio/gfileiostream.c:455 gio/gfileoutputstream.c:447
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Trunchierea fluxului nu este implementată"
-#: gio/ghttpproxy.c:91 gio/gresolver.c:458 gio/gresolver.c:611
-#: glib/gconvert.c:1825
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Nume nevalid"
-#: gio/ghttpproxy.c:143
+#: gio/ghttpproxy.c:145
msgid "Bad HTTP proxy reply"
msgstr "Răspuns proxy HTTP greșit"
-#: gio/ghttpproxy.c:159
+#: gio/ghttpproxy.c:161
msgid "HTTP proxy connection not allowed"
msgstr "Conexiunea proxy HTTP nu este permisă"
-#: gio/ghttpproxy.c:164
+#: gio/ghttpproxy.c:166
msgid "HTTP proxy authentication failed"
msgstr "A eșuat autentificarea la proxy-ul HTTP"
-#: gio/ghttpproxy.c:167
+#: gio/ghttpproxy.c:169
msgid "HTTP proxy authentication required"
msgstr "Este necesară autentificarea la proxy-ul HTTP"
-#: gio/ghttpproxy.c:171
+#: gio/ghttpproxy.c:173
#, c-format
msgid "HTTP proxy connection failed: %i"
msgstr "Conexiunea proxy HTTP a eșuat: %i"
-#: gio/ghttpproxy.c:266
+#: gio/ghttpproxy.c:268
msgid "HTTP proxy response too big"
msgstr "Răspunsul proxy HTTP este prea mare"
-#: gio/ghttpproxy.c:283
+#: gio/ghttpproxy.c:285
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "Conexiunea la serverul proxy HTTP s-a închis în mod neașteptat."
-#: gio/gicon.c:298
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Număr greșit de elemente (%d)"
-#: gio/gicon.c:318
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Niciun tip pentru numele clasei %s"
-#: gio/gicon.c:328
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Tipul %s nu implementează interfața GIcon"
-#: gio/gicon.c:339
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Tipul %s nu este clasificat"
-#: gio/gicon.c:353
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Număr de versiune eronat: %s"
-#: gio/gicon.c:367
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Tipul %s nu implementează from_tokens() în interfața GIcon"
-#: gio/gicon.c:469
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Nu se poate lucra cu versiunea furnizată pentru codarea iconiței"
-#: gio/ginetaddressmask.c:182
+#: gio/ginetaddressmask.c:184
msgid "No address specified"
msgstr "Nu s-a specificat o adresă"
-#: gio/ginetaddressmask.c:190
+#: gio/ginetaddressmask.c:192
#, c-format
msgid "Length %u is too long for address"
msgstr "Lungimea %u este prea mare pentru adresă"
-#: gio/ginetaddressmask.c:223
+#: gio/ginetaddressmask.c:225
msgid "Address has bits set beyond prefix length"
msgstr "Adresa are biți stabiliți peste lungimea prefixului"
-#: gio/ginetaddressmask.c:300
+#: gio/ginetaddressmask.c:302
#, c-format
msgid "Could not parse “%s” as IP address mask"
msgstr "Nu s-a putut parsa „%s” ca mască de adresă IP"
-#: gio/ginetsocketaddress.c:203 gio/ginetsocketaddress.c:220
-#: gio/gnativesocketaddress.c:109 gio/gunixsocketaddress.c:228
+#: gio/ginetsocketaddress.c:205 gio/ginetsocketaddress.c:222
+#: gio/gnativesocketaddress.c:111 gio/gunixsocketaddress.c:230
msgid "Not enough space for socket address"
msgstr "Spațiu insuficient pentru adresa socket-ului"
-#: gio/ginetsocketaddress.c:235
+#: gio/ginetsocketaddress.c:237
msgid "Unsupported socket address"
msgstr "Adresă nesuportată de socket"
-#: gio/ginputstream.c:188
+#: gio/ginputstream.c:190
msgid "Input stream doesn’t implement read"
msgstr "Fluxul de intrare nu implementează citirea"
@@ -1663,126 +1699,126 @@ msgstr "Fluxul de intrare nu implementează citirea"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1249 gio/giostream.c:310 gio/goutputstream.c:2208
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Asupra fluxului se execută deja o operațiune"
-#: gio/gio-tool.c:160
+#: gio/gio-tool.c:162
msgid "Copy with file"
msgstr "Copiază cu fișier"
-#: gio/gio-tool.c:164
+#: gio/gio-tool.c:166
msgid "Keep with file when moved"
msgstr "Păstrează cu fișierul când este mutat"
-#: gio/gio-tool.c:205
+#: gio/gio-tool.c:207
msgid "“version” takes no arguments"
msgstr "„version” nu ia argumente"
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:869
+#: gio/gio-tool.c:209 gio/gio-tool.c:225 glib/goption.c:871
msgid "Usage:"
msgstr "Utilizare:"
-#: gio/gio-tool.c:210
+#: gio/gio-tool.c:212
msgid "Print version information and exit."
msgstr "Tipărește informația versiunii și ieși."
-#: gio/gio-tool.c:226
+#: gio/gio-tool.c:228
msgid "Commands:"
msgstr "Comenzi:"
-#: gio/gio-tool.c:229
+#: gio/gio-tool.c:231
msgid "Concatenate files to standard output"
msgstr "Concatenează fișierele la ieșirea standard"
-#: gio/gio-tool.c:230
+#: gio/gio-tool.c:232
msgid "Copy one or more files"
msgstr "Copiază unul sau mai multe fișiere"
-#: gio/gio-tool.c:231
+#: gio/gio-tool.c:233
msgid "Show information about locations"
msgstr "Arată informațiile despre locații"
-#: gio/gio-tool.c:232
+#: gio/gio-tool.c:234
msgid "Launch an application from a desktop file"
msgstr "Lansează o aplicație de la un fișier desktop"
-#: gio/gio-tool.c:233
+#: gio/gio-tool.c:235
msgid "List the contents of locations"
msgstr "Listează conținuturile locațiilor"
-#: gio/gio-tool.c:234
+#: gio/gio-tool.c:236
msgid "Get or set the handler for a mimetype"
msgstr "Obține sau stabilește operatorul pentru un tip mime"
-#: gio/gio-tool.c:235
+#: gio/gio-tool.c:237
msgid "Create directories"
msgstr "Creează directoare"
-#: gio/gio-tool.c:236
+#: gio/gio-tool.c:238
msgid "Monitor files and directories for changes"
msgstr "Monitorizează fișierele și directoarele pentru modificări"
-#: gio/gio-tool.c:237
+#: gio/gio-tool.c:239
msgid "Mount or unmount the locations"
msgstr "Montează sau demontează locațiile"
-#: gio/gio-tool.c:238
+#: gio/gio-tool.c:240
msgid "Move one or more files"
msgstr "Mută unul sau mai multe fișiere"
-#: gio/gio-tool.c:239
+#: gio/gio-tool.c:241
msgid "Open files with the default application"
msgstr "Deschide fișierele cu aplicația implicită"
-#: gio/gio-tool.c:240
+#: gio/gio-tool.c:242
msgid "Rename a file"
msgstr "Redenumește un fișier"
-#: gio/gio-tool.c:241
+#: gio/gio-tool.c:243
msgid "Delete one or more files"
msgstr "Șterge unul sau mai multe fișiere"
-#: gio/gio-tool.c:242
+#: gio/gio-tool.c:244
msgid "Read from standard input and save"
msgstr "Citește de la intrarea standard și salvează"
-#: gio/gio-tool.c:243
+#: gio/gio-tool.c:245
msgid "Set a file attribute"
msgstr "Stabilește un atribut de fișier"
-#: gio/gio-tool.c:244
+#: gio/gio-tool.c:246
msgid "Move files or directories to the trash"
msgstr "Mută fișiere sau directoare la gunoi"
-#: gio/gio-tool.c:245
+#: gio/gio-tool.c:247
msgid "Lists the contents of locations in a tree"
msgstr "Listează conținuturile locațiilor într-un arbore"
-#: gio/gio-tool.c:247
+#: gio/gio-tool.c:249
#, c-format
msgid "Use %s to get detailed help.\n"
msgstr "Utilizați %s pentru a obține ajutor detaliat.\n"
-#: gio/gio-tool-cat.c:87
+#: gio/gio-tool-cat.c:89
msgid "Error writing to stdout"
msgstr "Eroare la scrierea la stdout"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:133 gio/gio-tool-info.c:340 gio/gio-tool-list.c:172
-#: gio/gio-tool-mkdir.c:48 gio/gio-tool-monitor.c:37 gio/gio-tool-monitor.c:39
-#: gio/gio-tool-monitor.c:41 gio/gio-tool-monitor.c:43
-#: gio/gio-tool-monitor.c:204 gio/gio-tool-mount.c:1199 gio/gio-tool-open.c:70
-#: gio/gio-tool-remove.c:48 gio/gio-tool-rename.c:45 gio/gio-tool-set.c:89
-#: gio/gio-tool-trash.c:220 gio/gio-tool-tree.c:239
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
+#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
+#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "LOCAȚIE"
-#: gio/gio-tool-cat.c:138
+#: gio/gio-tool-cat.c:140
msgid "Concatenate files and print to standard output."
msgstr "Concatenează fișierele și tipărește la ieșirea standard."
-#: gio/gio-tool-cat.c:140
+#: gio/gio-tool-cat.c:142
msgid ""
"gio cat works just like the traditional cat utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1794,60 +1830,60 @@ msgstr ""
"asemănător\n"
"cu smb://server/resource/file.txt ca locație."
-#: gio/gio-tool-cat.c:162 gio/gio-tool-info.c:371 gio/gio-tool-mkdir.c:76
-#: gio/gio-tool-monitor.c:229 gio/gio-tool-mount.c:1250 gio/gio-tool-open.c:96
-#: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:303
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
+#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Nu s-au furnizat locații"
-#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:38
+#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
msgid "No target directory"
msgstr "Nu este niciun director țintă"
-#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:39
+#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41
msgid "Show progress"
msgstr "Arată progresul"
-#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
+#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:42
msgid "Prompt before overwrite"
msgstr "Solicită înainte de suprascriere"
-#: gio/gio-tool-copy.c:46
+#: gio/gio-tool-copy.c:48
msgid "Preserve all attributes"
msgstr "Păstrează toate atributele"
-#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
+#: gio/gio-tool-copy.c:49 gio/gio-tool-move.c:43 gio/gio-tool-save.c:51
msgid "Backup existing destination files"
msgstr "Creează o copie de siguranță a fișierelor destinație existente"
-#: gio/gio-tool-copy.c:48
+#: gio/gio-tool-copy.c:50
msgid "Never follow symbolic links"
msgstr "Nu urmări niciodată legăturile simbolice"
-#: gio/gio-tool-copy.c:49
+#: gio/gio-tool-copy.c:51
msgid "Use default permissions for the destination"
msgstr "Utilizează permisiunile implicite pentru destinație"
-#: gio/gio-tool-copy.c:74 gio/gio-tool-move.c:67
+#: gio/gio-tool-copy.c:76 gio/gio-tool-move.c:69
#, c-format
msgid "Transferred %s out of %s (%s/s)"
msgstr "Transferat %s din %s (%s/s)"
#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96
msgid "SOURCE"
msgstr "SURSĂ"
#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94 gio/gio-tool-save.c:160
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96 gio/gio-tool-save.c:162
msgid "DESTINATION"
msgstr "DESTINAȚIE"
-#: gio/gio-tool-copy.c:105
+#: gio/gio-tool-copy.c:107
msgid "Copy one or more files from SOURCE to DESTINATION."
msgstr "Copiază unul sau mai multe fișiere de la SURSĂ la DESTINAȚIE."
-#: gio/gio-tool-copy.c:107
+#: gio/gio-tool-copy.c:109
msgid ""
"gio copy is similar to the traditional cp utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1859,98 +1895,98 @@ msgstr ""
"asemănător\n"
"cu smb://server/resource/file.txt ca locație."
-#: gio/gio-tool-copy.c:149
+#: gio/gio-tool-copy.c:151
#, c-format
msgid "Destination %s is not a directory"
msgstr "Destinația %s nu este un director"
-#: gio/gio-tool-copy.c:196 gio/gio-tool-move.c:186
+#: gio/gio-tool-copy.c:198 gio/gio-tool-move.c:188
#, c-format
msgid "%s: overwrite “%s”? "
msgstr "%s: se suprascrie „%s”? "
-#: gio/gio-tool-info.c:37
+#: gio/gio-tool-info.c:39
msgid "List writable attributes"
msgstr "Listează atributele inscripționabile"
-#: gio/gio-tool-info.c:38
+#: gio/gio-tool-info.c:40
msgid "Get file system info"
msgstr "Obține informațiile sistemului de fișiere"
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
msgid "The attributes to get"
msgstr "Atributele de obținut"
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
msgid "ATTRIBUTES"
msgstr "ATRIBUTE"
-#: gio/gio-tool-info.c:40 gio/gio-tool-list.c:39 gio/gio-tool-set.c:34
+#: gio/gio-tool-info.c:42 gio/gio-tool-list.c:40 gio/gio-tool-set.c:37
msgid "Don’t follow symbolic links"
msgstr "Nu urmări legăturile simbolice"
-#: gio/gio-tool-info.c:78
+#: gio/gio-tool-info.c:105
msgid "attributes:\n"
msgstr "atribute:\n"
#. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:134
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "nume de afișaj: %s\n"
#. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:139
+#: gio/gio-tool-info.c:176
#, c-format
msgid "edit name: %s\n"
msgstr "editează numele: %s\n"
-#: gio/gio-tool-info.c:145
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "nume: %s\n"
-#: gio/gio-tool-info.c:152
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "tip: %s\n"
-#: gio/gio-tool-info.c:158
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "dimensiune: "
-#: gio/gio-tool-info.c:163
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "ascuns\n"
-#: gio/gio-tool-info.c:166
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:172
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "cale locală: %s\n"
-#: gio/gio-tool-info.c:205
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "montare unix: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:286
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Atribute care se pot stabili:\n"
-#: gio/gio-tool-info.c:310
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Spații de nume de atribut inscripționabile:\n"
-#: gio/gio-tool-info.c:345
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Arată informațiile despre locații."
-#: gio/gio-tool-info.c:347
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1968,11 +2004,11 @@ msgstr ""
"atributele"
#. Translators: commandline placeholder
-#: gio/gio-tool-launch.c:54
+#: gio/gio-tool-launch.c:56
msgid "DESKTOP-FILE [FILE-ARG …]"
msgstr "FIȘIER-DESKTOP [ARG-FIȘIER …]"
-#: gio/gio-tool-launch.c:57
+#: gio/gio-tool-launch.c:59
msgid ""
"Launch an application from a desktop file, passing optional filename "
"arguments to it."
@@ -1980,51 +2016,51 @@ msgstr ""
"Lansează o aplicație de la un fișier desktop, trecându-i argumente opționale "
"de nume de fișiere."
-#: gio/gio-tool-launch.c:77
+#: gio/gio-tool-launch.c:79
msgid "No desktop file given"
msgstr "Nu a fost furnizat niciun fișier desktop"
-#: gio/gio-tool-launch.c:85
+#: gio/gio-tool-launch.c:87
msgid "The launch command is not currently supported on this platform"
msgstr ""
"Comanda de lansare nu este suportată în mod curent pe această platformă"
-#: gio/gio-tool-launch.c:98
+#: gio/gio-tool-launch.c:100
#, c-format
msgid "Unable to load ‘%s‘: %s"
msgstr "Nu s-a putut încărca „%s”: %s"
-#: gio/gio-tool-launch.c:107
+#: gio/gio-tool-launch.c:109
#, c-format
msgid "Unable to load application information for ‘%s‘"
msgstr "Nu s-au putut încărca informațiile aplicației pentru „%s”"
-#: gio/gio-tool-launch.c:119
+#: gio/gio-tool-launch.c:121
#, c-format
msgid "Unable to launch application ‘%s’: %s"
msgstr "Nu s-a putut lansa aplicația „%s”: %s"
-#: gio/gio-tool-list.c:37 gio/gio-tool-tree.c:32
+#: gio/gio-tool-list.c:38 gio/gio-tool-tree.c:34
msgid "Show hidden files"
msgstr "Arată fișierele ascunse"
-#: gio/gio-tool-list.c:38
+#: gio/gio-tool-list.c:39
msgid "Use a long listing format"
msgstr "Utilizează un format de listare lung"
-#: gio/gio-tool-list.c:40
+#: gio/gio-tool-list.c:41
msgid "Print display names"
msgstr "Tipărește nume de afișaje"
-#: gio/gio-tool-list.c:41
+#: gio/gio-tool-list.c:42
msgid "Print full URIs"
msgstr "Tipărește URI-uri complete"
-#: gio/gio-tool-list.c:177
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Listează conținuturile locațiilor."
-#: gio/gio-tool-list.c:179
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2039,19 +2075,19 @@ msgstr ""
"specificate cu numele lor GIO, ex. standard:icon"
#. Translators: commandline placeholder
-#: gio/gio-tool-mime.c:71
+#: gio/gio-tool-mime.c:73
msgid "MIMETYPE"
msgstr "TIP MIME"
-#: gio/gio-tool-mime.c:71
+#: gio/gio-tool-mime.c:73
msgid "HANDLER"
msgstr "OPERATOR"
-#: gio/gio-tool-mime.c:76
+#: gio/gio-tool-mime.c:78
msgid "Get or set the handler for a mimetype."
msgstr "Obține sau stabilește operatorul pentru un tip mime."
-#: gio/gio-tool-mime.c:78
+#: gio/gio-tool-mime.c:80
msgid ""
"If no handler is given, lists registered and recommended applications\n"
"for the mimetype. If a handler is given, it is set as the default\n"
@@ -2063,55 +2099,55 @@ msgstr ""
"operatorul\n"
"implicit pentru tipul mime."
-#: gio/gio-tool-mime.c:100
+#: gio/gio-tool-mime.c:102
msgid "Must specify a single mimetype, and maybe a handler"
msgstr "Trebuie să specificați un singur tip mime, și poate un operator"
-#: gio/gio-tool-mime.c:116
+#: gio/gio-tool-mime.c:118
#, c-format
msgid "No default applications for “%s”\n"
msgstr "Nu sunt aplicații implicite pentru „%s”\n"
-#: gio/gio-tool-mime.c:122
+#: gio/gio-tool-mime.c:124
#, c-format
msgid "Default application for “%s”: %s\n"
msgstr "Aplicația implicită pentru „%s”: %s\n"
-#: gio/gio-tool-mime.c:127
+#: gio/gio-tool-mime.c:129
msgid "Registered applications:\n"
msgstr "Aplicații înregistrate:\n"
-#: gio/gio-tool-mime.c:129
+#: gio/gio-tool-mime.c:131
msgid "No registered applications\n"
msgstr "Nu sunt aplicații înregistrate\n"
-#: gio/gio-tool-mime.c:140
+#: gio/gio-tool-mime.c:142
msgid "Recommended applications:\n"
msgstr "Aplicații recomandate:\n"
-#: gio/gio-tool-mime.c:142
+#: gio/gio-tool-mime.c:144
msgid "No recommended applications\n"
msgstr "Nu sunt aplicații recomandate\n"
-#: gio/gio-tool-mime.c:162
+#: gio/gio-tool-mime.c:164
#, c-format
msgid "Failed to load info for handler “%s”"
msgstr "Nu s-au putut încărca informațiile pentru operatorul „%s”"
-#: gio/gio-tool-mime.c:168
+#: gio/gio-tool-mime.c:170
#, c-format
msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
msgstr "Nu s-a putut stabili „%s” ca operatorul implicit pentru „%s”: %s\n"
-#: gio/gio-tool-mkdir.c:31
+#: gio/gio-tool-mkdir.c:33
msgid "Create parent directories"
msgstr "Creează directoare superioare"
-#: gio/gio-tool-mkdir.c:52
+#: gio/gio-tool-mkdir.c:54
msgid "Create directories."
msgstr "Creează directoare."
-#: gio/gio-tool-mkdir.c:54
+#: gio/gio-tool-mkdir.c:56
msgid ""
"gio mkdir is similar to the traditional mkdir utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2123,137 +2159,137 @@ msgstr ""
"asemănător\n"
"cu smb://server/resource/mydir ca locație."
-#: gio/gio-tool-monitor.c:37
+#: gio/gio-tool-monitor.c:39
msgid "Monitor a directory (default: depends on type)"
msgstr "Monitorizează un director (implicit: depinde de tip)"
-#: gio/gio-tool-monitor.c:39
+#: gio/gio-tool-monitor.c:41
msgid "Monitor a file (default: depends on type)"
msgstr "Monitorizează un fișier (implicit: depinde de tip)"
-#: gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43
msgid "Monitor a file directly (notices changes made via hardlinks)"
msgstr ""
"Monitorizează un fișier direct (observă modificările făcute via legături "
"fizice)"
-#: gio/gio-tool-monitor.c:43
+#: gio/gio-tool-monitor.c:45
msgid "Monitors a file directly, but doesn’t report changes"
msgstr "Monitorizează un fișier direct, dar nu raportează modificările"
-#: gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:47
msgid "Report moves and renames as simple deleted/created events"
msgstr ""
"Raportează mutările și redenumirile ca simple evenimente șterse / create"
-#: gio/gio-tool-monitor.c:47
+#: gio/gio-tool-monitor.c:49
msgid "Watch for mount events"
msgstr "Urmărește evenimentele de montare"
-#: gio/gio-tool-monitor.c:209
+#: gio/gio-tool-monitor.c:211
msgid "Monitor files or directories for changes."
msgstr "Monitorizează fișierele sau directoarele pentru modificări."
-#: gio/gio-tool-mount.c:63
+#: gio/gio-tool-mount.c:65
msgid "Mount as mountable"
msgstr "Montează ca montabil"
-#: gio/gio-tool-mount.c:64
+#: gio/gio-tool-mount.c:66
msgid "Mount volume with device file, or other identifier"
msgstr "Montează volumul cu fișier de dispozitiv, sau alt indicator"
-#: gio/gio-tool-mount.c:64
+#: gio/gio-tool-mount.c:66
msgid "ID"
msgstr "ID"
-#: gio/gio-tool-mount.c:65
+#: gio/gio-tool-mount.c:67
msgid "Unmount"
msgstr "Demontează"
-#: gio/gio-tool-mount.c:66
+#: gio/gio-tool-mount.c:68
msgid "Eject"
msgstr "Scoate"
-#: gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:69
msgid "Stop drive with device file"
msgstr "Oprește unitatea cu fișierul de dispozitiv"
-#: gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:69
msgid "DEVICE"
msgstr "DISPOZITIV"
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:70
msgid "Unmount all mounts with the given scheme"
msgstr "Demontează toate montările cu schema dată"
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:70
msgid "SCHEME"
msgstr "SCHEMA"
-#: gio/gio-tool-mount.c:69
+#: gio/gio-tool-mount.c:71
msgid "Ignore outstanding file operations when unmounting or ejecting"
msgstr ""
"Ignoră operațiile de fișier importante atunci când se demontează sau se "
"scoate"
-#: gio/gio-tool-mount.c:70
+#: gio/gio-tool-mount.c:72
msgid "Use an anonymous user when authenticating"
msgstr "Utilizează un utilizator anonim la autentificare"
#. Translator: List here is a verb as in 'List all mounts'
-#: gio/gio-tool-mount.c:72
+#: gio/gio-tool-mount.c:74
msgid "List"
msgstr "Listează"
-#: gio/gio-tool-mount.c:73
+#: gio/gio-tool-mount.c:75
msgid "Monitor events"
msgstr "Monitorizează evenimente"
-#: gio/gio-tool-mount.c:74
+#: gio/gio-tool-mount.c:76
msgid "Show extra information"
msgstr "Arată informațiile suplimentare"
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:77
msgid "The numeric PIM when unlocking a VeraCrypt volume"
msgstr "PIM-ul numeric la deblocarea unui volum VeraCrypt"
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:77
msgid "PIM"
msgstr "PM"
-#: gio/gio-tool-mount.c:76
+#: gio/gio-tool-mount.c:78
msgid "Mount a TCRYPT hidden volume"
msgstr "Montează un volum ascuns TCRYPT"
-#: gio/gio-tool-mount.c:77
+#: gio/gio-tool-mount.c:79
msgid "Mount a TCRYPT system volume"
msgstr "Montează un volum de sistem TCRYPT"
-#: gio/gio-tool-mount.c:265 gio/gio-tool-mount.c:297
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Accesul anonim respins"
-#: gio/gio-tool-mount.c:522
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Nu există nicio unitate pentru fișierul de dispozitiv"
-#: gio/gio-tool-mount.c:1014
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Nu există niciun volum pentru ID-ul dat"
-#: gio/gio-tool-mount.c:1203
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Montează sau demontează locațiile."
-#: gio/gio-tool-move.c:42
+#: gio/gio-tool-move.c:44
msgid "Don’t use copy and delete fallback"
msgstr "Nu utiliza opțiunile de revenire pentru copiere și ștergere"
-#: gio/gio-tool-move.c:99
+#: gio/gio-tool-move.c:101
msgid "Move one or more files from SOURCE to DEST."
msgstr "Mută unul sau mai multe fișiere de la SURSĂ la DEST."
-#: gio/gio-tool-move.c:101
+#: gio/gio-tool-move.c:103
msgid ""
"gio move is similar to the traditional mv utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2265,12 +2301,12 @@ msgstr ""
"asemănător\n"
"cu smb://server/resource/file.txt ca locație"
-#: gio/gio-tool-move.c:143
+#: gio/gio-tool-move.c:145
#, c-format
msgid "Target %s is not a directory"
msgstr "Ținta %s nu este un director"
-#: gio/gio-tool-open.c:75
+#: gio/gio-tool-open.c:77
msgid ""
"Open files with the default application that\n"
"is registered to handle files of this type."
@@ -2278,128 +2314,132 @@ msgstr ""
"Deschide fișierele cu aplicația implicită care\n"
"este înregistrată pentru a lucra cu fișiere de acest tip."
-#: gio/gio-tool-remove.c:31 gio/gio-tool-trash.c:33
+#: gio/gio-tool-remove.c:33 gio/gio-tool-trash.c:35
msgid "Ignore nonexistent files, never prompt"
msgstr "Ignoră fișierele care nu există, nu solicita niciodată"
-#: gio/gio-tool-remove.c:52
+#: gio/gio-tool-remove.c:54
msgid "Delete the given files."
msgstr "Șterge fișierele date."
-#: gio/gio-tool-rename.c:45
+#: gio/gio-tool-rename.c:47
msgid "NAME"
msgstr "NUME"
-#: gio/gio-tool-rename.c:50
+#: gio/gio-tool-rename.c:52
msgid "Rename a file."
msgstr "Redenumește un fișier."
-#: gio/gio-tool-rename.c:70
+#: gio/gio-tool-rename.c:72
msgid "Missing argument"
msgstr "Lipsește un argument"
-#: gio/gio-tool-rename.c:76 gio/gio-tool-save.c:190 gio/gio-tool-set.c:137
+#: gio/gio-tool-rename.c:78 gio/gio-tool-save.c:192 gio/gio-tool-set.c:150
msgid "Too many arguments"
msgstr "Prea multe argumente"
-#: gio/gio-tool-rename.c:95
+#: gio/gio-tool-rename.c:97
#, c-format
msgid "Rename successful. New uri: %s\n"
msgstr "Redenumire cu succes. Uri nou: %s\n"
-#: gio/gio-tool-save.c:50
+#: gio/gio-tool-save.c:52
msgid "Only create if not existing"
msgstr "Creează doar dacă nu există"
-#: gio/gio-tool-save.c:51
+#: gio/gio-tool-save.c:53
msgid "Append to end of file"
msgstr "Adaugă la sfârșitul fișierului"
-#: gio/gio-tool-save.c:52
+#: gio/gio-tool-save.c:54
msgid "When creating, restrict access to the current user"
msgstr "La creare, restricționează accesul pentru utilizatorul curent"
-#: gio/gio-tool-save.c:53
+#: gio/gio-tool-save.c:55
msgid "When replacing, replace as if the destination did not exist"
msgstr "La înlocuire, înlocuiește ca și cum destinația nu ar exista"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:55
+#: gio/gio-tool-save.c:57
msgid "Print new etag at end"
msgstr "Tipărește etag nou la sfârșit"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:59
msgid "The etag of the file being overwritten"
msgstr "Etag-ul fișierului care este suprascris"
-#: gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:59
msgid "ETAG"
msgstr "ETAG"
-#: gio/gio-tool-save.c:113
+#: gio/gio-tool-save.c:115
msgid "Error reading from standard input"
msgstr "Eroare la citirea din intrarea standard"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:139
+#: gio/gio-tool-save.c:141
msgid "Etag not available\n"
msgstr "Etag nu este disponibil\n"
-#: gio/gio-tool-save.c:163
+#: gio/gio-tool-save.c:165
msgid "Read from standard input and save to DEST."
msgstr "Citește de la intrarea standard și salvează la DEST."
-#: gio/gio-tool-save.c:183
+#: gio/gio-tool-save.c:185
msgid "No destination given"
msgstr "Nu s-a furnizat o destinație"
-#: gio/gio-tool-set.c:33
+#: gio/gio-tool-set.c:36
msgid "Type of the attribute"
msgstr "Tipul atributului"
-#: gio/gio-tool-set.c:33
+#: gio/gio-tool-set.c:36
msgid "TYPE"
msgstr "TIP"
-#: gio/gio-tool-set.c:89
+#: gio/gio-tool-set.c:38
+msgid "Unset given attribute"
+msgstr "Destabilește atributul dat"
+
+#: gio/gio-tool-set.c:95
msgid "ATTRIBUTE"
msgstr "ATRIBUT"
-#: gio/gio-tool-set.c:89
+#: gio/gio-tool-set.c:95
msgid "VALUE"
msgstr "VALOARE"
-#: gio/gio-tool-set.c:93
+#: gio/gio-tool-set.c:99
msgid "Set a file attribute of LOCATION."
msgstr "Stabilește un atribut de fișier pentru LOCAȚIE."
-#: gio/gio-tool-set.c:113
+#: gio/gio-tool-set.c:119
msgid "Location not specified"
msgstr "Locația nu a fost specificată"
-#: gio/gio-tool-set.c:120
+#: gio/gio-tool-set.c:126
msgid "Attribute not specified"
msgstr "Atributul nu a fost specificat"
-#: gio/gio-tool-set.c:130
+#: gio/gio-tool-set.c:143
msgid "Value not specified"
msgstr "Valoarea nu a fost specificată"
-#: gio/gio-tool-set.c:180
+#: gio/gio-tool-set.c:193
#, c-format
msgid "Invalid attribute type “%s”"
msgstr "Tip de atribut nevalid „%s”"
-#: gio/gio-tool-trash.c:34
+#: gio/gio-tool-trash.c:36
msgid "Empty the trash"
msgstr "Golește gunoiul"
-#: gio/gio-tool-trash.c:35
+#: gio/gio-tool-trash.c:37
msgid "List files in the trash with their original locations"
msgstr "Listează fișierele de la gunoi cu locațiile originale"
-#: gio/gio-tool-trash.c:36
+#: gio/gio-tool-trash.c:38
msgid ""
"Restore a file from trash to its original location (possibly recreating the "
"directory)"
@@ -2407,23 +2447,23 @@ msgstr ""
"Restaurează un fișier de la gunoi la locația originală a acestuia (eventual "
"recreând directorul)"
-#: gio/gio-tool-trash.c:106
+#: gio/gio-tool-trash.c:108
msgid "Unable to find original path"
msgstr "Nu s-a putut găsi calea originală"
-#: gio/gio-tool-trash.c:123
+#: gio/gio-tool-trash.c:125
msgid "Unable to recreate original location: "
msgstr "Nu s-a putut recrea locația originală: "
-#: gio/gio-tool-trash.c:136
+#: gio/gio-tool-trash.c:138
msgid "Unable to move file to its original location: "
msgstr "Nu s-a putut muta fișierul în locația originală: "
-#: gio/gio-tool-trash.c:225
+#: gio/gio-tool-trash.c:227
msgid "Move/Restore files or directories to the trash."
msgstr "Mută/Restaurează fișierele sau directoarele la gunoi."
-#: gio/gio-tool-trash.c:227
+#: gio/gio-tool-trash.c:229
msgid ""
"Note: for --restore switch, if the original location of the trashed file \n"
"already exists, it will not be overwritten unless --force is set."
@@ -2432,44 +2472,44 @@ msgstr ""
"trimis la gunoi \n"
"există deja, aceasta nu va fi suprascrisă decât dacă --force este stabilit."
-#: gio/gio-tool-trash.c:258
+#: gio/gio-tool-trash.c:260
msgid "Location given doesn't start with trash:///"
msgstr "Locația dată nu începe cu trash:///"
-#: gio/gio-tool-tree.c:33
+#: gio/gio-tool-tree.c:35
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Urmărește legăturile simbolice, montările și scurtăturile"
-#: gio/gio-tool-tree.c:244
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Listează conținuturile directoarelor într-un format arborescent."
-#: gio/glib-compile-resources.c:140 gio/glib-compile-schemas.c:1514
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Elementul <%s> nu este permis în <%s>"
-#: gio/glib-compile-resources.c:144
+#: gio/glib-compile-resources.c:146
#, c-format
msgid "Element <%s> not allowed at toplevel"
msgstr "Elementul <%s> nu este permis la nivelul cel mai de sus"
-#: gio/glib-compile-resources.c:234
+#: gio/glib-compile-resources.c:236
#, c-format
msgid "File %s appears multiple times in the resource"
msgstr "Fișierul %s apare de mai multe ori în resursă"
-#: gio/glib-compile-resources.c:245
+#: gio/glib-compile-resources.c:247
#, c-format
msgid "Failed to locate “%s” in any source directory"
msgstr "Nu s-a putut localiza „%s” în niciun director sursă"
-#: gio/glib-compile-resources.c:256
+#: gio/glib-compile-resources.c:258
#, c-format
msgid "Failed to locate “%s” in current directory"
msgstr "Nu s-a putut localiza %s” în directorul curent"
-#: gio/glib-compile-resources.c:290
+#: gio/glib-compile-resources.c:292
#, c-format
msgid "Unknown processing option “%s”"
msgstr "Opțiune de procesare necunoscută „%s”"
@@ -2478,38 +2518,38 @@ msgstr "Opțiune de procesare necunoscută „%s”"
#. * the second %s is an environment variable, and the third
#. * %s is a command line tool
#.
-#: gio/glib-compile-resources.c:310 gio/glib-compile-resources.c:367
-#: gio/glib-compile-resources.c:424
+#: gio/glib-compile-resources.c:312 gio/glib-compile-resources.c:369
+#: gio/glib-compile-resources.c:426
#, c-format
msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
msgstr ""
"preprocesarea %s a fost solicitată, dar nu este stabilit %s, și %s nu se "
"află în CALE"
-#: gio/glib-compile-resources.c:457
+#: gio/glib-compile-resources.c:459
#, c-format
msgid "Error reading file %s: %s"
msgstr "Eroare la citirea fișierului %s: %s"
-#: gio/glib-compile-resources.c:477
+#: gio/glib-compile-resources.c:479
#, c-format
msgid "Error compressing file %s"
msgstr "Eroare la comprimarea fișierului %s"
-#: gio/glib-compile-resources.c:541
+#: gio/glib-compile-resources.c:543
#, c-format
msgid "text may not appear inside <%s>"
msgstr "textul nu are voie să apară în <%s>"
-#: gio/glib-compile-resources.c:819 gio/glib-compile-schemas.c:2172
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Arată versiunea programului și ieși"
-#: gio/glib-compile-resources.c:820
+#: gio/glib-compile-resources.c:822
msgid "Name of the output file"
msgstr "Numele fișierului de ieșire"
-#: gio/glib-compile-resources.c:821
+#: gio/glib-compile-resources.c:823
msgid ""
"The directories to load files referenced in FILE from (default: current "
"directory)"
@@ -2517,60 +2557,60 @@ msgstr ""
"Directoarele de unde se vor încărca fișierele referențiate în FILE "
"(implicit: directorul curent)"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2173
-#: gio/glib-compile-schemas.c:2202
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "DOSAR"
-#: gio/glib-compile-resources.c:822
+#: gio/glib-compile-resources.c:824
msgid ""
"Generate output in the format selected for by the target filename extension"
msgstr ""
"Generează rezultatul în formatul selectat de extensia numelui de fișier țintă"
-#: gio/glib-compile-resources.c:823
+#: gio/glib-compile-resources.c:825
msgid "Generate source header"
msgstr "Generează antetul sursei"
-#: gio/glib-compile-resources.c:824
+#: gio/glib-compile-resources.c:826
msgid "Generate source code used to link in the resource file into your code"
msgstr "Generează codul sursă utilizat pentru a lega fișierul resursă în cod"
-#: gio/glib-compile-resources.c:825
+#: gio/glib-compile-resources.c:827
msgid "Generate dependency list"
msgstr "Generează lista de dependențe"
-#: gio/glib-compile-resources.c:826
+#: gio/glib-compile-resources.c:828
msgid "Name of the dependency file to generate"
msgstr "Numele fișierului de dependențe de generat"
-#: gio/glib-compile-resources.c:827
+#: gio/glib-compile-resources.c:829
msgid "Include phony targets in the generated dependency file"
msgstr "Include țintele false în fișierul de dependențe generat"
-#: gio/glib-compile-resources.c:828
+#: gio/glib-compile-resources.c:830
msgid "Don’t automatically create and register resource"
msgstr "Nu crea și înregistra automat resursa"
-#: gio/glib-compile-resources.c:829
+#: gio/glib-compile-resources.c:831
msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
msgstr "Nu exporta funcțiile; declară-le G_GNUC_INTERNAL"
-#: gio/glib-compile-resources.c:830
+#: gio/glib-compile-resources.c:832
msgid ""
"Don’t embed resource data in the C file; assume it's linked externally "
"instead"
msgstr "Nu îngloba date în fișierul C; presupuneți că este legat extern"
-#: gio/glib-compile-resources.c:831
+#: gio/glib-compile-resources.c:833
msgid "C identifier name used for the generated source code"
msgstr "Nume de identificator C utilizat pentru codul sursă generat"
-#: gio/glib-compile-resources.c:832
+#: gio/glib-compile-resources.c:834
msgid "The target C compiler (default: the CC environment variable)"
msgstr "Compilatorul C țintă (implicit: variabila de mediu CC)"
-#: gio/glib-compile-resources.c:858
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2580,123 +2620,123 @@ msgstr ""
"Fișierele specificație de resursă au extensia .gresource.xml,\n"
"iar fișierul resursă are extensia cu numele .gresource."
-#: gio/glib-compile-resources.c:880
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Ar trebui să furnizați exact un nume de fișier\n"
-#: gio/glib-compile-schemas.c:92
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "pseudonimul trebuie să aibă minim 2 caractere"
-#: gio/glib-compile-schemas.c:103
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Valoare numerică nevalidă"
-#: gio/glib-compile-schemas.c:111
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> a fost specificat deja"
-#: gio/glib-compile-schemas.c:119
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value=„%s” deja specificată"
-#: gio/glib-compile-schemas.c:133
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "valorile fanioanelor trebuie să aibă stabilit cel mult 1 bit"
-#: gio/glib-compile-schemas.c:158
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> trebuie să conțină cel puțin o <value>"
-#: gio/glib-compile-schemas.c:314
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> nu este conținut în intervalul specificat"
-#: gio/glib-compile-schemas.c:326
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> nu este un membru valid al tipului enumerat specificat"
-#: gio/glib-compile-schemas.c:332
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> conține un șir care nu se află în tipul de fanioane specificat"
-#: gio/glib-compile-schemas.c:338
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> conține un șir care nu se află în <choices>"
-#: gio/glib-compile-schemas.c:372
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> a fost specificat deja pentru această cheie"
-#: gio/glib-compile-schemas.c:390
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> nu este permis pentru cheile de tipul „%s”"
-#: gio/glib-compile-schemas.c:407
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "minimul specificat al <range> este mai mare decât maximul"
-#: gio/glib-compile-schemas.c:432
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "categorie l10n nesuportată: %s"
-#: gio/glib-compile-schemas.c:440
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "s-a solicitat l10n, dar nu s-a furnizat niciun domeniu gettext"
-#: gio/glib-compile-schemas.c:452
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "context de traducere furnizat pentru valoare fără să fie activat l10n"
-#: gio/glib-compile-schemas.c:474
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Nu s-a putut parsa valoarea <default> de tipul „%s”: "
-#: gio/glib-compile-schemas.c:491
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> nu pot fi specificate pentru cheile etichetate ca având un tip "
"enumerat"
-#: gio/glib-compile-schemas.c:500
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> au fost specificate deja pentru această cheie"
-#: gio/glib-compile-schemas.c:512
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> nu sunt permise pentru cheile de tipul „%s”"
-#: gio/glib-compile-schemas.c:528
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> a fost furnizat deja"
-#: gio/glib-compile-schemas.c:543
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> trebuie să conțină cel puțin o <choice>"
-#: gio/glib-compile-schemas.c:557
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> au fost specificate deja pentru această cheie"
-#: gio/glib-compile-schemas.c:561
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2704,7 +2744,7 @@ msgstr ""
"<aliases> pot fi specificate doar pentru cheile cu tipuri fanioane sau "
"enumerate sau după <choices>"
-#: gio/glib-compile-schemas.c:580
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2713,29 +2753,29 @@ msgstr ""
"<alias value='%s'/> furnizată atunci când „%s” este deja un membru al "
"tipului enumerat"
-#: gio/glib-compile-schemas.c:586
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"<alias value='%s'/> furnizată atunci când <choice value='%s'/> a fost dată "
"deja"
-#: gio/glib-compile-schemas.c:594
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> a fost specificat deja"
-#: gio/glib-compile-schemas.c:604
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "ținta aliasului „%s” nu este un tip enumerat"
-#: gio/glib-compile-schemas.c:605
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "ținta aliasului „%s” nu este în <choices>"
-#: gio/glib-compile-schemas.c:620
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> trebuie să conțină cel puțin un <alias>"
@@ -3045,7 +3085,7 @@ msgstr "Nu scrie fișierul gschemas.compiled"
msgid "Do not enforce key name restrictions"
msgstr "Nu impune restricții numelor cheilor"
-#: gio/glib-compile-schemas.c:2205
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3055,25 +3095,25 @@ msgstr ""
"Fișierele schemă trebuie să aibă extensia .gschema.xml,\n"
"iar fișierul cache se numește gschemas.compiled."
-#: gio/glib-compile-schemas.c:2226
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Trebuie să dați exact un nume de dosar"
-#: gio/glib-compile-schemas.c:2269
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Nu s-a găsit niciun fișier schemă: nu se face nimic."
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr ""
"Nu s-a găsit niciun fișier schemă: s-a șters fișierul de ieșire existent."
-#: gio/glocalfile.c:549 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Nume incorect de fișier %s"
-#: gio/glocalfile.c:982
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Eroare la obținerea informațiilor sistemului de fișiere pentru %s: %s"
@@ -3082,361 +3122,361 @@ msgstr "Eroare la obținerea informațiilor sistemului de fișiere pentru %s: %s
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1123
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Montarea conținătoare pentru fișierul %s nu a fost găsită"
-#: gio/glocalfile.c:1146
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Nu se poate redenumi directorul rădăcină"
-#: gio/glocalfile.c:1164 gio/glocalfile.c:1187
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Eroare la redenumirea fișierului %s: %s"
-#: gio/glocalfile.c:1171
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Nu se poate redenumi fișierul, numele de fișier există deja"
-#: gio/glocalfile.c:1184 gio/glocalfile.c:2380 gio/glocalfile.c:2408
-#: gio/glocalfile.c:2547 gio/glocalfileoutputstream.c:656
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Nume nevalid de fișier"
-#: gio/glocalfile.c:1352 gio/glocalfile.c:1363
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Eroare la deschiderea fișierului %s: %s"
-#: gio/glocalfile.c:1488
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Eroare la eliminarea fișierului %s: %s"
-#: gio/glocalfile.c:1982 gio/glocalfile.c:1993 gio/glocalfile.c:2020
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Eroare la mutarea la coșul de gunoi a fișierului %s: %s"
-#: gio/glocalfile.c:2040
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Nu s-a putut crea directorul coșului de gunoi %s: %s"
-#: gio/glocalfile.c:2061
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Nu se poate găsi directorul de top pentru a muta la coșul de gunoi %s"
-#: gio/glocalfile.c:2069
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
"Mutarea la coșul de gunoi în montările interne de sistem nu este suportată"
-#: gio/glocalfile.c:2155 gio/glocalfile.c:2183
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr ""
"Nu se poate găsi sau crea directorul coșului de gunoi %s pentru a șterge %s"
-#: gio/glocalfile.c:2229
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr ""
"Nu se poate crea fișierul cu informații despre mutarea la coșul de gunoi "
"pentru %s: %s"
-#: gio/glocalfile.c:2291
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr ""
"Nu se poate muta la coșul de gunoi fișierul %s dincolo de limitele "
"sistemului de fișiere"
-#: gio/glocalfile.c:2295 gio/glocalfile.c:2351
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Nu se poate muta la coșul de gunoi fișierul %s: %s"
-#: gio/glocalfile.c:2357
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Nu se poate muta la gunoi fișierul %s"
-#: gio/glocalfile.c:2383
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Eroare la crearea directorului %s: %s"
-#: gio/glocalfile.c:2412
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Sistemul de fișiere nu suportă legături simbolice"
-#: gio/glocalfile.c:2415
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Eroare la crearea legăturii simbolice %s: %s"
-#: gio/glocalfile.c:2458 gio/glocalfile.c:2493 gio/glocalfile.c:2550
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Eroare la mutarea fișierului %s: %s"
-#: gio/glocalfile.c:2481
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Nu se poate muta un director peste alt director"
-#: gio/glocalfile.c:2507 gio/glocalfileoutputstream.c:1108
-#: gio/glocalfileoutputstream.c:1122 gio/glocalfileoutputstream.c:1137
-#: gio/glocalfileoutputstream.c:1154 gio/glocalfileoutputstream.c:1168
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
+#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Crearea fișierului pentru copia de siguranță a eșuat"
-#: gio/glocalfile.c:2526
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Eroare la ștergerea fișierului destinație: %s"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr ""
"Operațiunea de mutare între două dispozitive montate nu este implementată"
-#: gio/glocalfile.c:2714
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Nu s-a putut determina utilizarea discului a %s: %s"
-#: gio/glocalfileinfo.c:767
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Valoarea atributului trebuie să fie diferită de NULL"
-#: gio/glocalfileinfo.c:774
-msgid "Invalid attribute type (string expected)"
-msgstr "Tip incorect de atribut (se aștepta un șir)"
+#: gio/glocalfileinfo.c:772
+msgid "Invalid attribute type (string or invalid expected)"
+msgstr "Tip incorect de atribut (se aștepta un șir sau nevalid)"
-#: gio/glocalfileinfo.c:781
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Nume incorect de atribut extins"
-#: gio/glocalfileinfo.c:821
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Eroare la stabilirea atributului extins „%s”: %s"
-#: gio/glocalfileinfo.c:1709 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (codare incorectă)"
-#: gio/glocalfileinfo.c:1868 gio/glocalfileoutputstream.c:943
-#: gio/glocalfileoutputstream.c:995
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Eroare în timpul obținerii de informații pentru fișierul „%s”: %s"
-#: gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr ""
"Eroare în timpul obținerii de informații pentru descriptorul de fișier: %s"
-#: gio/glocalfileinfo.c:2179
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Tip incorect de atribut (se aștepta o valoare uint32)"
-#: gio/glocalfileinfo.c:2197
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Tip incorect de atribut (se aștepta o valoare uint64)"
-#: gio/glocalfileinfo.c:2216 gio/glocalfileinfo.c:2235
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Tip incorect de atribut (se aștepta un șir de octeți)"
-#: gio/glocalfileinfo.c:2282
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Nu se pot defini drepturi pentru legături simbolice"
-#: gio/glocalfileinfo.c:2298
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Eroare la definirea drepturilor: %s"
-#: gio/glocalfileinfo.c:2349
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Eroare la definirea deținătorului: %s"
-#: gio/glocalfileinfo.c:2372
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "legătura simbolică trebuie să fie diferită de NULL"
-#: gio/glocalfileinfo.c:2382 gio/glocalfileinfo.c:2401
-#: gio/glocalfileinfo.c:2412
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Eroare la definirea legăturii simbolice: %s"
-#: gio/glocalfileinfo.c:2391
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"Eroare la definirea legăturii simbolice: fișierul nu este o legătură "
"simbolică"
-#: gio/glocalfileinfo.c:2463
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Nanosecundele extra %d pentru datarea UNIX %lld sunt negative"
-#: gio/glocalfileinfo.c:2472
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr "Nanosecundele extra %d pentru datarea UNIX %lld au ajuns la 1 secundă"
-#: gio/glocalfileinfo.c:2482
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "Datarea UNIVX %lld nu se potrivește pe 64 de biți"
-#: gio/glocalfileinfo.c:2493
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "Datarea UNIX %lld este în afara intervalului suportate de Windows"
-#: gio/glocalfileinfo.c:2570
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Numele de fișier „%s” nu poate fi convertit la UTF-16"
-#: gio/glocalfileinfo.c:2589
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Fișierul „%s” nu poate fi deschis: eroare de Windows %lu"
-#: gio/glocalfileinfo.c:2602
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
"Eroare la stabilirea modificării sau timpului de acces pentru fișierul „%s”: "
"%lu"
-#: gio/glocalfileinfo.c:2703
+#: gio/glocalfileinfo.c:2970
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Eroare la schimbarea datei de acces ori modificare: %s"
-#: gio/glocalfileinfo.c:2726
+#: gio/glocalfileinfo.c:2993
msgid "SELinux context must be non-NULL"
msgstr "Contextul SELinux trebuie să fie diferit de NULL"
-#: gio/glocalfileinfo.c:2733
+#: gio/glocalfileinfo.c:3000
msgid "SELinux is not enabled on this system"
msgstr "SELinux nu este activat pentru acest sistem"
-#: gio/glocalfileinfo.c:2743
+#: gio/glocalfileinfo.c:3010
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Eroare la definirea contextului SELinux: %s"
-#: gio/glocalfileinfo.c:2836
+#: gio/glocalfileinfo.c:3107
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Definirea atributului %s nu este implementată"
-#: gio/glocalfileinputstream.c:163 gio/glocalfileoutputstream.c:801
+#: gio/glocalfileinputstream.c:165 gio/glocalfileoutputstream.c:803
#, c-format
msgid "Error reading from file: %s"
msgstr "Eroare la citirea din fișier: %s"
-#: gio/glocalfileinputstream.c:194 gio/glocalfileoutputstream.c:353
-#: gio/glocalfileoutputstream.c:447
+#: gio/glocalfileinputstream.c:196 gio/glocalfileoutputstream.c:355
+#: gio/glocalfileoutputstream.c:449
#, c-format
msgid "Error closing file: %s"
msgstr "Eroare la închiderea fișierului: %s"
-#: gio/glocalfileinputstream.c:272 gio/glocalfileoutputstream.c:563
-#: gio/glocalfileoutputstream.c:1186
+#: gio/glocalfileinputstream.c:274 gio/glocalfileoutputstream.c:565
+#: gio/glocalfileoutputstream.c:1188
#, c-format
msgid "Error seeking in file: %s"
msgstr "Eroare la căutarea în fișier: %s"
-#: gio/glocalfilemonitor.c:866
+#: gio/glocalfilemonitor.c:882
msgid "Unable to find default local file monitor type"
msgstr "Nu s-a găsit tipul implicit de monitorizare a fișierelor locale"
-#: gio/glocalfileoutputstream.c:220 gio/glocalfileoutputstream.c:298
-#: gio/glocalfileoutputstream.c:334 gio/glocalfileoutputstream.c:822
+#: gio/glocalfileoutputstream.c:222 gio/glocalfileoutputstream.c:300
+#: gio/glocalfileoutputstream.c:336 gio/glocalfileoutputstream.c:824
#, c-format
msgid "Error writing to file: %s"
msgstr "Eroare la scrierea în fișier: %s"
-#: gio/glocalfileoutputstream.c:380
+#: gio/glocalfileoutputstream.c:382
#, c-format
msgid "Error removing old backup link: %s"
msgstr "Eroare la ștergerea vechii legături simbolice de backup: %s"
-#: gio/glocalfileoutputstream.c:394 gio/glocalfileoutputstream.c:407
+#: gio/glocalfileoutputstream.c:396 gio/glocalfileoutputstream.c:409
#, c-format
msgid "Error creating backup copy: %s"
msgstr "Eroare la crearea copiei de backup: %s"
-#: gio/glocalfileoutputstream.c:425
+#: gio/glocalfileoutputstream.c:427
#, c-format
msgid "Error renaming temporary file: %s"
msgstr "Eroare la redenumirea fișierului temporar: %s"
-#: gio/glocalfileoutputstream.c:609 gio/glocalfileoutputstream.c:1237
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Eroare la trunchierea fișierului: %s"
-#: gio/glocalfileoutputstream.c:662 gio/glocalfileoutputstream.c:907
-#: gio/glocalfileoutputstream.c:1218 gio/gsubprocess.c:229
+#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Eroare la deschiderea fișierului „%s”: %s"
-#: gio/glocalfileoutputstream.c:957
+#: gio/glocalfileoutputstream.c:959
msgid "Target file is a directory"
msgstr "Fișierul destinație este un director"
-#: gio/glocalfileoutputstream.c:971
+#: gio/glocalfileoutputstream.c:973
msgid "Target file is not a regular file"
msgstr "Fișierul destinație nu este un fișier obișnuit"
-#: gio/glocalfileoutputstream.c:1013
+#: gio/glocalfileoutputstream.c:1015
msgid "The file was externally modified"
msgstr "Fișierul a fost modificat de o terță parte"
-#: gio/glocalfileoutputstream.c:1202
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Eroare la ștergerea vechiului fișier: %s"
-#: gio/gmemoryinputstream.c:474 gio/gmemoryoutputstream.c:762
+#: gio/gmemoryinputstream.c:476 gio/gmemoryoutputstream.c:764
msgid "Invalid GSeekType supplied"
msgstr "S-a primit un GSeekType nevalid"
-#: gio/gmemoryinputstream.c:484
+#: gio/gmemoryinputstream.c:486
msgid "Invalid seek request"
msgstr "Cerere de căutare nevalidă"
-#: gio/gmemoryinputstream.c:508
+#: gio/gmemoryinputstream.c:510
msgid "Cannot truncate GMemoryInputStream"
msgstr "Nu se poate trunchia GMemoryInputStream"
-#: gio/gmemoryoutputstream.c:568
+#: gio/gmemoryoutputstream.c:570
msgid "Memory output stream not resizable"
msgstr "Fluxul de ieșire al memoriei nu poate fi redimensionat"
-#: gio/gmemoryoutputstream.c:584
+#: gio/gmemoryoutputstream.c:586
msgid "Failed to resize memory output stream"
msgstr "Nu s-a putut redimensiona fluxul de ieșire al memoriei"
-#: gio/gmemoryoutputstream.c:663
+#: gio/gmemoryoutputstream.c:665
msgid ""
"Amount of memory required to process the write is larger than available "
"address space"
@@ -3444,155 +3484,167 @@ msgstr ""
"Cantitatea de memorie necesară pentru a procesa scrierea este mai mare decât "
"spațiul de adrese disponibil"
-#: gio/gmemoryoutputstream.c:772
+#: gio/gmemoryoutputstream.c:774
msgid "Requested seek before the beginning of the stream"
msgstr "S-a cerut mutarea cursorului înaintea începutului fluxului"
-#: gio/gmemoryoutputstream.c:787
+#: gio/gmemoryoutputstream.c:789
msgid "Requested seek beyond the end of the stream"
msgstr "S-a cerut mutarea cursorului după sfârșitul fluxului"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement unmount.
-#: gio/gmount.c:399
+#: gio/gmount.c:401
msgid "mount doesn’t implement “unmount”"
msgstr "montarea nu implementează operația de demontare „unmount”"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement eject.
-#: gio/gmount.c:475
+#: gio/gmount.c:477
msgid "mount doesn’t implement “eject”"
msgstr "montarea nu implementează operația de scoatere „eject”"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of unmount or unmount_with_operation.
-#: gio/gmount.c:553
+#: gio/gmount.c:555
msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
msgstr "montarea nu implementează „unmount” sau „unmount_with_operation”"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gmount.c:638
+#: gio/gmount.c:640
msgid "mount doesn’t implement “eject” or “eject_with_operation”"
msgstr "montarea nu implementează „eject” sau „eject_with_operation”"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement remount.
-#: gio/gmount.c:726
+#: gio/gmount.c:728
msgid "mount doesn’t implement “remount”"
msgstr "montarea nu implementează operația de remontare „remount”"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:808
+#: gio/gmount.c:810
msgid "mount doesn’t implement content type guessing"
msgstr "montarea nu implementează detecția tipului de conținut"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:895
+#: gio/gmount.c:897
msgid "mount doesn’t implement synchronous content type guessing"
msgstr "montarea nu implementează detecția sincronizată a tipului de conținut"
-#: gio/gnetworkaddress.c:415
+#: gio/gnetworkaddress.c:417
#, c-format
msgid "Hostname “%s” contains “[” but not “]”"
msgstr "Numele de gazdă „%s” conține „[” dar nu și „]”"
-#: gio/gnetworkmonitorbase.c:219 gio/gnetworkmonitorbase.c:323
+#: gio/gnetworkmonitorbase.c:221 gio/gnetworkmonitorbase.c:325
msgid "Network unreachable"
msgstr "Nu se poate accesa rețeaua"
-#: gio/gnetworkmonitorbase.c:257 gio/gnetworkmonitorbase.c:287
+#: gio/gnetworkmonitorbase.c:259 gio/gnetworkmonitorbase.c:289
msgid "Host unreachable"
msgstr "Nu se poate accesa gazda"
-#: gio/gnetworkmonitornetlink.c:99 gio/gnetworkmonitornetlink.c:111
-#: gio/gnetworkmonitornetlink.c:130
+#: gio/gnetworkmonitornetlink.c:101 gio/gnetworkmonitornetlink.c:113
+#: gio/gnetworkmonitornetlink.c:132
#, c-format
msgid "Could not create network monitor: %s"
msgstr "Nu s-a putut crea monitorul de rețea: %s"
-#: gio/gnetworkmonitornetlink.c:120
+#: gio/gnetworkmonitornetlink.c:122
msgid "Could not create network monitor: "
msgstr "Nu s-a putut crea monitorul de rețea: "
-#: gio/gnetworkmonitornetlink.c:183
+#: gio/gnetworkmonitornetlink.c:185
msgid "Could not get network status: "
msgstr "Nu s-a putut obține starea rețelei: "
-#: gio/gnetworkmonitornm.c:311
+#: gio/gnetworkmonitornm.c:313
#, c-format
msgid "NetworkManager not running"
msgstr "NetworkManager nu rulează"
-#: gio/gnetworkmonitornm.c:322
+#: gio/gnetworkmonitornm.c:324
#, c-format
msgid "NetworkManager version too old"
msgstr "Versiunea de NetworkManager este prea veche"
-#: gio/goutputstream.c:232 gio/goutputstream.c:775
+#: gio/goutputstream.c:234 gio/goutputstream.c:777
msgid "Output stream doesn’t implement write"
msgstr "Fluxul de ieșire nu implementează scrierea"
-#: gio/goutputstream.c:472 gio/goutputstream.c:1533
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Suma vectorilor oferiți la %s este prea mare"
-#: gio/goutputstream.c:736 gio/goutputstream.c:1761
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Sursa fluxului este deja închisă"
-#: gio/gresolver.c:401 gio/gthreadedresolver.c:150 gio/gthreadedresolver.c:168
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
+msgid "Unspecified proxy lookup failure"
+msgstr "Eroare nespecificată de căutare proxy"
+
+#. Translators: the first placeholder is a domain name, the
+#. * second is an error message
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Eroare la rezolvarea „%s”: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:470 gio/gresolver.c:630
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s nu este implementat"
-#: gio/gresolver.c:999 gio/gresolver.c:1051
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Domeniu nevalid"
-#: gio/gresource.c:681 gio/gresource.c:943 gio/gresource.c:983
-#: gio/gresource.c:1107 gio/gresource.c:1179 gio/gresource.c:1253
-#: gio/gresource.c:1334 gio/gresourcefile.c:476 gio/gresourcefile.c:599
-#: gio/gresourcefile.c:736
+#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
+#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Resursa de la „%s” nu există"
-#: gio/gresource.c:848
+#: gio/gresource.c:850
#, c-format
msgid "The resource at “%s” failed to decompress"
msgstr "Resursa de la „%s” nu s-a putut decomprima"
-#: gio/gresourcefile.c:732
+#: gio/gresourcefile.c:663
+msgid "Resource files cannot be renamed"
+msgstr "Fișierul resursă nu poate fi redenumit"
+
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "Resursa de la „%s” nu este un director"
-#: gio/gresourcefile.c:940
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Fluxul de intrare nu implementează căutarea"
-#: gio/gresource-tool.c:500
+#: gio/gresource-tool.c:502
msgid "List sections containing resources in an elf FILE"
msgstr "Listează secțiunile care conțin resurse într-un FIȘIER elf"
-#: gio/gresource-tool.c:506
+#: gio/gresource-tool.c:508
msgid ""
"List resources\n"
"If SECTION is given, only list resources in this section\n"
@@ -3602,15 +3654,15 @@ msgstr ""
"Dacă s-a furnizat SECȚIUNE, listează resursele doar din această secțiune\n"
"Dacă s-a furnizat CALE, listează doar resursele care se potrivesc"
-#: gio/gresource-tool.c:509 gio/gresource-tool.c:519
+#: gio/gresource-tool.c:511 gio/gresource-tool.c:521
msgid "FILE [PATH]"
msgstr "FIȘIER [CALE]"
-#: gio/gresource-tool.c:510 gio/gresource-tool.c:520 gio/gresource-tool.c:527
+#: gio/gresource-tool.c:512 gio/gresource-tool.c:522 gio/gresource-tool.c:529
msgid "SECTION"
msgstr "SECȚIUNE"
-#: gio/gresource-tool.c:515
+#: gio/gresource-tool.c:517
msgid ""
"List resources with details\n"
"If SECTION is given, only list resources in this section\n"
@@ -3622,15 +3674,15 @@ msgstr ""
"Dacă s-a furnizat CALE, listează doar resursele care se potrivesc\n"
"Detaliile includ secțiunea, dimensiunea și compresia"
-#: gio/gresource-tool.c:525
+#: gio/gresource-tool.c:527
msgid "Extract a resource file to stdout"
msgstr "Extrage un fișier resursă la stdout"
-#: gio/gresource-tool.c:526
+#: gio/gresource-tool.c:528
msgid "FILE PATH"
msgstr "CALE FIȘIER"
-#: gio/gresource-tool.c:540
+#: gio/gresource-tool.c:542
msgid ""
"Usage:\n"
" gresource [--section SECTION] COMMAND [ARGS…]\n"
@@ -3658,7 +3710,7 @@ msgstr ""
"Utilizați “gresource help COMANDĂ” pentru a obține ajutor detaliat.\n"
"\n"
-#: gio/gresource-tool.c:554
+#: gio/gresource-tool.c:556
#, c-format
msgid ""
"Usage:\n"
@@ -3673,19 +3725,19 @@ msgstr ""
"%s\n"
"\n"
-#: gio/gresource-tool.c:561
+#: gio/gresource-tool.c:563
msgid " SECTION An (optional) elf section name\n"
msgstr " SECȚIUNE Un nume (opțional) de secțiune elf\n"
-#: gio/gresource-tool.c:565 gio/gsettings-tool.c:718
+#: gio/gresource-tool.c:567 gio/gsettings-tool.c:720
msgid " COMMAND The (optional) command to explain\n"
msgstr " COMANDĂ Comandă (opțională) de explicat\n"
-#: gio/gresource-tool.c:571
+#: gio/gresource-tool.c:573
msgid " FILE An elf file (a binary or a shared library)\n"
msgstr " FIȘIER Un fișier elf (o bibliotecă binară sau partajată)\n"
-#: gio/gresource-tool.c:574
+#: gio/gresource-tool.c:576
msgid ""
" FILE An elf file (a binary or a shared library)\n"
" or a compiled resource file\n"
@@ -3693,82 +3745,82 @@ msgstr ""
" FIȘIER Un fișier elf (o bibliotecă binară sau partajată)\n"
" sau un fișier resursă partajat\n"
-#: gio/gresource-tool.c:578
+#: gio/gresource-tool.c:580
msgid "[PATH]"
msgstr "[CALE]"
-#: gio/gresource-tool.c:580
+#: gio/gresource-tool.c:582
msgid " PATH An (optional) resource path (may be partial)\n"
msgstr " CALE O cale (opțională) de resursă (poate fi parțială)\n"
-#: gio/gresource-tool.c:581
+#: gio/gresource-tool.c:583
msgid "PATH"
msgstr "CALE"
-#: gio/gresource-tool.c:583
+#: gio/gresource-tool.c:585
msgid " PATH A resource path\n"
msgstr " CALE O cale de resursă\n"
-#: gio/gsettings-tool.c:49 gio/gsettings-tool.c:70 gio/gsettings-tool.c:923
+#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:925
#, c-format
msgid "No such schema “%s”\n"
msgstr "Nu există schema „%s”\n"
-#: gio/gsettings-tool.c:55
+#: gio/gsettings-tool.c:57
#, c-format
msgid "Schema “%s” is not relocatable (path must not be specified)\n"
msgstr "Schema „%s” nu este relocalizabilă (nu trebuie specificată calea)\n"
-#: gio/gsettings-tool.c:76
+#: gio/gsettings-tool.c:78
#, c-format
msgid "Schema “%s” is relocatable (path must be specified)\n"
msgstr "Schema „%s” este relocalizabilă (trebuie specificată calea)\n"
-#: gio/gsettings-tool.c:90
+#: gio/gsettings-tool.c:92
msgid "Empty path given.\n"
msgstr "Calea dată este goală.\n"
-#: gio/gsettings-tool.c:96
+#: gio/gsettings-tool.c:98
msgid "Path must begin with a slash (/)\n"
msgstr "Calea trebuie să înceapă cu o bară oblică (/)\n"
-#: gio/gsettings-tool.c:102
+#: gio/gsettings-tool.c:104
msgid "Path must end with a slash (/)\n"
msgstr "Calea trebuie să se termine cu o bară oblică (/)\n"
-#: gio/gsettings-tool.c:108
+#: gio/gsettings-tool.c:110
msgid "Path must not contain two adjacent slashes (//)\n"
msgstr "Calea trebuie să nu conțină două bare oblice adiacente (//)\n"
-#: gio/gsettings-tool.c:553
+#: gio/gsettings-tool.c:555
msgid "The provided value is outside of the valid range\n"
msgstr "Valoarea furnizată este în afara intervalului valid\n"
-#: gio/gsettings-tool.c:560
+#: gio/gsettings-tool.c:562
msgid "The key is not writable\n"
msgstr "Cheia nu este inscripționabilă\n"
-#: gio/gsettings-tool.c:596
+#: gio/gsettings-tool.c:598
msgid "List the installed (non-relocatable) schemas"
msgstr "Listează schemele (nerelocalizabile) instalate"
-#: gio/gsettings-tool.c:602
+#: gio/gsettings-tool.c:604
msgid "List the installed relocatable schemas"
msgstr "Listează schemele relocalizabile instalate"
-#: gio/gsettings-tool.c:608
+#: gio/gsettings-tool.c:610
msgid "List the keys in SCHEMA"
msgstr "Listează cheile din SCHEMĂ"
-#: gio/gsettings-tool.c:609 gio/gsettings-tool.c:615 gio/gsettings-tool.c:658
+#: gio/gsettings-tool.c:611 gio/gsettings-tool.c:617 gio/gsettings-tool.c:660
msgid "SCHEMA[:PATH]"
msgstr "SCHEMĂ[:CALE]"
-#: gio/gsettings-tool.c:614
+#: gio/gsettings-tool.c:616
msgid "List the children of SCHEMA"
msgstr "Listează copiii SCHEMEI"
-#: gio/gsettings-tool.c:620
+#: gio/gsettings-tool.c:622
msgid ""
"List keys and values, recursively\n"
"If no SCHEMA is given, list all keys\n"
@@ -3776,48 +3828,48 @@ msgstr ""
"Listează chei și valori, recursiv\n"
"Dacă nu a fost furnizată nicio SCHEMĂ, listează toate cheile\n"
-#: gio/gsettings-tool.c:622
+#: gio/gsettings-tool.c:624
msgid "[SCHEMA[:PATH]]"
msgstr "[SCHEMĂ[:CALE]]"
-#: gio/gsettings-tool.c:627
+#: gio/gsettings-tool.c:629
msgid "Get the value of KEY"
msgstr "Obține valoarea CHEII"
-#: gio/gsettings-tool.c:628 gio/gsettings-tool.c:634 gio/gsettings-tool.c:640
-#: gio/gsettings-tool.c:652 gio/gsettings-tool.c:664
+#: gio/gsettings-tool.c:630 gio/gsettings-tool.c:636 gio/gsettings-tool.c:642
+#: gio/gsettings-tool.c:654 gio/gsettings-tool.c:666
msgid "SCHEMA[:PATH] KEY"
msgstr "SCHEMĂ[:CALE] CHEIE"
-#: gio/gsettings-tool.c:633
+#: gio/gsettings-tool.c:635
msgid "Query the range of valid values for KEY"
msgstr "Interoghează intervalul valorilor valide pentru CHEIE"
-#: gio/gsettings-tool.c:639
+#: gio/gsettings-tool.c:641
msgid "Query the description for KEY"
msgstr "Interoghează descrierea pentru CHEIE"
-#: gio/gsettings-tool.c:645
+#: gio/gsettings-tool.c:647
msgid "Set the value of KEY to VALUE"
msgstr "Setează valoarea CHEII la VALOARE"
-#: gio/gsettings-tool.c:646
+#: gio/gsettings-tool.c:648
msgid "SCHEMA[:PATH] KEY VALUE"
msgstr "SCHEMĂ[:CALE] CHEIE VALOARE"
-#: gio/gsettings-tool.c:651
+#: gio/gsettings-tool.c:653
msgid "Reset KEY to its default value"
msgstr "Resetează CHEIA la valoarea ei implicită"
-#: gio/gsettings-tool.c:657
+#: gio/gsettings-tool.c:659
msgid "Reset all keys in SCHEMA to their defaults"
msgstr "Restabilește toate cheile în SCHEMA la valorile implicite"
-#: gio/gsettings-tool.c:663
+#: gio/gsettings-tool.c:665
msgid "Check if KEY is writable"
msgstr "Verifică dacă CHEIA poate fi scrisă"
-#: gio/gsettings-tool.c:669
+#: gio/gsettings-tool.c:671
msgid ""
"Monitor KEY for changes.\n"
"If no KEY is specified, monitor all keys in SCHEMA.\n"
@@ -3828,11 +3880,11 @@ msgstr ""
"SCHEMĂ.\n"
"Folosiți ^C pentru a opri monitorizarea.\n"
-#: gio/gsettings-tool.c:672
+#: gio/gsettings-tool.c:674
msgid "SCHEMA[:PATH] [KEY]"
msgstr "SCHEMĂ[:CALE] [CHEIE]"
-#: gio/gsettings-tool.c:684
+#: gio/gsettings-tool.c:686
msgid ""
"Usage:\n"
" gsettings --version\n"
@@ -3880,7 +3932,7 @@ msgstr ""
"Folosiți comanda „gsettings help COMANDĂ” pentru a obține ajutor detaliat.\n"
"\n"
-#: gio/gsettings-tool.c:708
+#: gio/gsettings-tool.c:710
#, c-format
msgid ""
"Usage:\n"
@@ -3895,11 +3947,11 @@ msgstr ""
"%s\n"
"\n"
-#: gio/gsettings-tool.c:714
+#: gio/gsettings-tool.c:716
msgid " SCHEMADIR A directory to search for additional schemas\n"
msgstr " SCHEMADIR Un director pentru căutarea de scheme adiționale\n"
-#: gio/gsettings-tool.c:722
+#: gio/gsettings-tool.c:724
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
@@ -3907,410 +3959,429 @@ msgstr ""
" SCHEMĂ Numele schemei\n"
" CALE Calea, pentru schemele relocalizabile\n"
-#: gio/gsettings-tool.c:727
+#: gio/gsettings-tool.c:729
msgid " KEY The (optional) key within the schema\n"
msgstr " CHEIE Cheia (opțională) din schemă\n"
-#: gio/gsettings-tool.c:731
+#: gio/gsettings-tool.c:733
msgid " KEY The key within the schema\n"
msgstr " CHEIE Cheia din schemă\n"
-#: gio/gsettings-tool.c:735
+#: gio/gsettings-tool.c:737
msgid " VALUE The value to set\n"
msgstr " VALOARE Valoarea de setat\n"
-#: gio/gsettings-tool.c:790
+#: gio/gsettings-tool.c:792
#, c-format
msgid "Could not load schemas from %s: %s\n"
msgstr "Nu s-au putut încărca schemele de la %s: %s\n"
-#: gio/gsettings-tool.c:802
+#: gio/gsettings-tool.c:804
msgid "No schemas installed\n"
msgstr "Nu sunt scheme instalate\n"
-#: gio/gsettings-tool.c:881
+#: gio/gsettings-tool.c:883
msgid "Empty schema name given\n"
msgstr "Numele schemei dat este gol \n"
-#: gio/gsettings-tool.c:936
+#: gio/gsettings-tool.c:938
#, c-format
msgid "No such key “%s”\n"
msgstr "Nu există cheia „%s”\n"
-#: gio/gsocket.c:417
+#: gio/gsocket.c:419
msgid "Invalid socket, not initialized"
msgstr "Socket nevalid (neinițializat)"
-#: gio/gsocket.c:424
+#: gio/gsocket.c:426
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
msgstr "Socket nevalid, inițializarea a eșuat din următoarea cauză: %s"
-#: gio/gsocket.c:432
+#: gio/gsocket.c:434
msgid "Socket is already closed"
msgstr "Socket-ul este deja închis"
-#: gio/gsocket.c:447 gio/gsocket.c:3194 gio/gsocket.c:4427 gio/gsocket.c:4485
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1445
msgid "Socket I/O timed out"
msgstr "A expirat limita de timp la I/O pe socket"
-#: gio/gsocket.c:582
+#: gio/gsocket.c:586
#, c-format
msgid "creating GSocket from fd: %s"
msgstr "se creează GSocket din fd: %s"
-#: gio/gsocket.c:611 gio/gsocket.c:675 gio/gsocket.c:682
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Nu s-a putut crea socket-ul: %s"
-#: gio/gsocket.c:675
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "S-a specificat o familie necunoscută"
-#: gio/gsocket.c:682
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "S-a specificat un protocol necunoscut"
-#: gio/gsocket.c:1173
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "Nu se pot utiliza operațiile de datagramă pe un soclu non-datagramă."
-#: gio/gsocket.c:1190
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Nu se pot utiliza operațiile de datagramă pe un soclu care are stabilită o "
"limită de timp."
-#: gio/gsocket.c:1997
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "nu s-a putut obține adresa locală: %s"
-#: gio/gsocket.c:2043
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "nu s-a putut obține adresa la distanță: %s"
-#: gio/gsocket.c:2109
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "nu s-a putut asculta: %s"
-#: gio/gsocket.c:2213
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Eroare la asocierea adresei %s: %s"
-#: gio/gsocket.c:2389 gio/gsocket.c:2426 gio/gsocket.c:2536 gio/gsocket.c:2561
-#: gio/gsocket.c:2624 gio/gsocket.c:2682 gio/gsocket.c:2700
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Eroare la alăturarea grupului multicast: %s"
-#: gio/gsocket.c:2390 gio/gsocket.c:2427 gio/gsocket.c:2537 gio/gsocket.c:2562
-#: gio/gsocket.c:2625 gio/gsocket.c:2683 gio/gsocket.c:2701
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Eroare la părăsirea grupului multicast: %s"
-#: gio/gsocket.c:2391
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Nu există niciun suport pentru difuzarea multiplă specifică sursei"
-#: gio/gsocket.c:2538
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Familie de soclu nesuportată"
-#: gio/gsocket.c:2563
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "specific sursei nu o adresă IPv4"
-#: gio/gsocket.c:2587
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Numele de interfață este prea lung"
-#: gio/gsocket.c:2600 gio/gsocket.c:2650
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Nu s-a putut găsi interfața: %s"
-#: gio/gsocket.c:2626
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr ""
"Nu există niciun suport pentru difuzarea multiplă specifică sursei IPv4"
-#: gio/gsocket.c:2684
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr ""
"Nu există niciun suport pentru difuzarea multiplă specifică sursei IPv6"
-#: gio/gsocket.c:2893
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Eroare la acceptarea conexiunii: %s"
-#: gio/gsocket.c:3019
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Conectare în progres"
-#: gio/gsocket.c:3070
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Nu se poate obține eroarea în așteptare: "
-#: gio/gsocket.c:3259
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Eroare la primirea datelor: %s"
-#: gio/gsocket.c:3456
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Eroare la trimiterea datelor: %s"
-#: gio/gsocket.c:3643
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Nu se poate opri soclul: %s"
-#: gio/gsocket.c:3724
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Eroare la închiderea socket-ului: %s"
-#: gio/gsocket.c:4420
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Se așteaptă condiția socket-ului: %s"
-#: gio/gsocket.c:4810 gio/gsocket.c:4826 gio/gsocket.c:4839
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Nu s-a putut trimite mesajul: %s"
-#: gio/gsocket.c:4811 gio/gsocket.c:4827 gio/gsocket.c:4840
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Vectorii mesaj prea mari"
-#: gio/gsocket.c:4856 gio/gsocket.c:4858 gio/gsocket.c:5005 gio/gsocket.c:5090
-#: gio/gsocket.c:5268 gio/gsocket.c:5308 gio/gsocket.c:5310
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Eroare la trimiterea mesajului: %s"
-#: gio/gsocket.c:5032
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage nu este suportat pe Windows"
-#: gio/gsocket.c:5505 gio/gsocket.c:5581 gio/gsocket.c:5807
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Eroare la primirea mesajului: %s"
-#: gio/gsocket.c:6090 gio/gsocket.c:6101 gio/gsocket.c:6164
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Nu se pot citi certificările soclului: %s"
-#: gio/gsocket.c:6173
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr ""
"g_socket_get_credentials nu este implementat pe acest sistem de operare"
-#: gio/gsocketclient.c:191
+#: gio/gsocketclient.c:193
#, c-format
msgid "Could not connect to proxy server %s: "
msgstr "Nu s-a putut conecta la serverul proxy %s: "
-#: gio/gsocketclient.c:205
+#: gio/gsocketclient.c:207
#, c-format
msgid "Could not connect to %s: "
msgstr "Nu s-a putut conecta la %s: "
-#: gio/gsocketclient.c:207
+#: gio/gsocketclient.c:209
msgid "Could not connect: "
msgstr "Nu s-a putut conecta: "
-#: gio/gsocketclient.c:1202 gio/gsocketclient.c:1793
+#: gio/gsocketclient.c:1204 gio/gsocketclient.c:1807
msgid "Proxying over a non-TCP connection is not supported."
msgstr "Nu se poate utiliza proxy peste o conexiune non-TCP."
-#: gio/gsocketclient.c:1234 gio/gsocketclient.c:1822
+#: gio/gsocketclient.c:1236 gio/gsocketclient.c:1836
#, c-format
msgid "Proxy protocol “%s” is not supported."
msgstr "Protocolul proxy „%s” nu este suportat."
-#: gio/gsocketlistener.c:230
+#: gio/gsocketlistener.c:232
msgid "Listener is already closed"
msgstr "Procesul de ascultare este deja închis"
-#: gio/gsocketlistener.c:276
+#: gio/gsocketlistener.c:278
msgid "Added socket is closed"
msgstr "Socket-ul adăugat este închis"
-#: gio/gsocks4aproxy.c:118
+#: gio/gsocks4aproxy.c:120
#, c-format
msgid "SOCKSv4 does not support IPv6 address “%s”"
msgstr "SOCKSv4 nu suportă adresa IPv6 „%s”"
-#: gio/gsocks4aproxy.c:136
+#: gio/gsocks4aproxy.c:138
msgid "Username is too long for SOCKSv4 protocol"
msgstr "Numele de utilizator este prea lung pentru protocolul SOCKSv4"
-#: gio/gsocks4aproxy.c:153
+#: gio/gsocks4aproxy.c:155
#, c-format
msgid "Hostname “%s” is too long for SOCKSv4 protocol"
msgstr "Numele de gazdă „%s” este prea lung pentru protocolul SOCKSv4"
-#: gio/gsocks4aproxy.c:179
+#: gio/gsocks4aproxy.c:181
msgid "The server is not a SOCKSv4 proxy server."
msgstr "Serverul nu este un server de proxy SOCKSv4."
-#: gio/gsocks4aproxy.c:186
+#: gio/gsocks4aproxy.c:188
msgid "Connection through SOCKSv4 server was rejected"
msgstr "Conectarea prin serverul SOCKSv4 a fost respinsă"
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:338 gio/gsocks5proxy.c:348
+#: gio/gsocks5proxy.c:155 gio/gsocks5proxy.c:340 gio/gsocks5proxy.c:350
msgid "The server is not a SOCKSv5 proxy server."
msgstr "Serverul nu este un server de proxy SOCKSv5."
-#: gio/gsocks5proxy.c:167 gio/gsocks5proxy.c:184
+#: gio/gsocks5proxy.c:169 gio/gsocks5proxy.c:186
msgid "The SOCKSv5 proxy requires authentication."
msgstr "Proxy-ul SOCKSv5 necesită autentificare."
-#: gio/gsocks5proxy.c:191
+#: gio/gsocks5proxy.c:193
msgid ""
"The SOCKSv5 proxy requires an authentication method that is not supported by "
"GLib."
msgstr ""
"SOCKSv5 necesită o metodă de autentificare ce nu este acceptată de GLib."
-#: gio/gsocks5proxy.c:220
+#: gio/gsocks5proxy.c:222
msgid "Username or password is too long for SOCKSv5 protocol."
msgstr ""
"Numele de utilizator sau parola este prea lungă pentru protocolul SOCKSv5."
-#: gio/gsocks5proxy.c:250
+#: gio/gsocks5proxy.c:252
msgid "SOCKSv5 authentication failed due to wrong username or password."
msgstr ""
"Autentificarea SOCKSv5 a eșuat din cauza unui nume de utilizator sau a unei "
"parole greșite."
-#: gio/gsocks5proxy.c:300
+#: gio/gsocks5proxy.c:302
#, c-format
msgid "Hostname “%s” is too long for SOCKSv5 protocol"
msgstr "Numele de gazdă „%s” este prea lung pentru protocolul SOCKSv5"
-#: gio/gsocks5proxy.c:362
+#: gio/gsocks5proxy.c:364
msgid "The SOCKSv5 proxy server uses unknown address type."
msgstr "Serverul proxy SOCKSv5 utilizează un tip de adresă necunoscut."
-#: gio/gsocks5proxy.c:369
+#: gio/gsocks5proxy.c:371
msgid "Internal SOCKSv5 proxy server error."
msgstr "Eroare internă a serverului proxy SOCKSv5."
-#: gio/gsocks5proxy.c:375
+#: gio/gsocks5proxy.c:377
msgid "SOCKSv5 connection not allowed by ruleset."
msgstr "Setul de reguli nu permite conexiuni SOCKSv5."
-#: gio/gsocks5proxy.c:382
+#: gio/gsocks5proxy.c:384
msgid "Host unreachable through SOCKSv5 server."
msgstr "Gazda nu poate fi contactată prin intermediul serverului SOCKSv5."
-#: gio/gsocks5proxy.c:388
+#: gio/gsocks5proxy.c:390
msgid "Network unreachable through SOCKSv5 proxy."
msgstr "Rețeaua nu poate fi contactată prin intermediul proxy-ului SOCKSv5."
-#: gio/gsocks5proxy.c:394
+#: gio/gsocks5proxy.c:396
msgid "Connection refused through SOCKSv5 proxy."
msgstr "Conexiune refuzată prin proxy-ul SOCKSv5."
-#: gio/gsocks5proxy.c:400
+#: gio/gsocks5proxy.c:402
msgid "SOCKSv5 proxy does not support “connect” command."
msgstr "Proxy-ul SOCKSv5 nu suportă comanda „connect”."
-#: gio/gsocks5proxy.c:406
+#: gio/gsocks5proxy.c:408
msgid "SOCKSv5 proxy does not support provided address type."
msgstr "Proxy-ul SOCKSv5 nu acceptă tipul de adresă furnizat."
-#: gio/gsocks5proxy.c:412
+#: gio/gsocks5proxy.c:414
msgid "Unknown SOCKSv5 proxy error."
msgstr "Eroare necunoscută a proxy-ului SOCKSv5."
-#: gio/gtestdbus.c:612 glib/gspawn-win32.c:314
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr ""
"Nu s-a putut crea conectorul „pipe” pentru comunicarea cu procesul copil (%s)"
-#: gio/gtestdbus.c:619
+#: gio/gtestdbus.c:621
#, c-format
msgid "Pipes are not supported in this platform"
msgstr "Conductele nu sunt suportate pe această platformă"
-#: gio/gthemedicon.c:595
+#: gio/gthemedicon.c:597
#, c-format
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Nu se poate lucra cu versiunea %d a codării GThemedIcon"
-#: gio/gthreadedresolver.c:152
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Nu s-au găsit adrese valide"
-#: gio/gthreadedresolver.c:337
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Eroare la rezolvarea inversă a „%s”: %s"
-#: gio/gthreadedresolver.c:676 gio/gthreadedresolver.c:755
-#: gio/gthreadedresolver.c:853 gio/gthreadedresolver.c:903
+#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
+#, c-format
+msgid "Error parsing DNS %s record: malformed DNS packet"
+msgstr "Eroare la parsarea înregistrării DNS %s: pachet DNS malformat"
+
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Nu există nicio înregistrare DNS a tipului solicitat pentru „%s”"
-#: gio/gthreadedresolver.c:681 gio/gthreadedresolver.c:858
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Nu se poate rezolva temporar „%s”"
-#: gio/gthreadedresolver.c:686 gio/gthreadedresolver.c:863
-#: gio/gthreadedresolver.c:973
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Eroare la rezolvarea „%s”"
-#: gio/gtlscertificate.c:478
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
+msgid "Malformed DNS packet"
+msgstr "Pachet DNS malformat"
+
+#: gio/gthreadedresolver.c:1089
+#, c-format
+msgid "Failed to parse DNS response for “%s”: "
+msgstr "Nu s-a putut parsa răspunsul DNS pentru „%s”: "
+
+#: gio/gtlscertificate.c:480
msgid "No PEM-encoded private key found"
msgstr "Nu s-a găsit nicio cheie privată codată PEM"
-#: gio/gtlscertificate.c:488
+#: gio/gtlscertificate.c:490
msgid "Cannot decrypt PEM-encoded private key"
msgstr "Nu se poate decripta cheia privată codată PEM"
-#: gio/gtlscertificate.c:499
+#: gio/gtlscertificate.c:501
msgid "Could not parse PEM-encoded private key"
msgstr "Nu s-a putut parsa cheia privată codificată PEM"
-#: gio/gtlscertificate.c:526
+#: gio/gtlscertificate.c:528
msgid "No PEM-encoded certificate found"
msgstr "Nu s-a găsit niciun certificat codificat PEM"
-#: gio/gtlscertificate.c:535
+#: gio/gtlscertificate.c:537
msgid "Could not parse PEM-encoded certificate"
msgstr "Nu s-a putut parsa certificatul codificat PEM"
-#: gio/gtlscertificate.c:796
+#: gio/gtlscertificate.c:800
msgid "The current TLS backend does not support PKCS #12"
msgstr "Backendul TLS curent nu suportă PKCS #12"
-#: gio/gtlscertificate.c:1013
+#: gio/gtlscertificate.c:1017
msgid "This GTlsBackend does not support creating PKCS #11 certificates"
msgstr "Acest GTlsBackend nu suportă crearea de certificate PKCS #11"
-#: gio/gtlspassword.c:111
+#: gio/gtlspassword.c:113
msgid ""
"This is the last chance to enter the password correctly before your access "
"is locked out."
@@ -4320,7 +4391,7 @@ msgstr ""
#. Translators: This is not the 'This is the last chance' string. It is
#. * displayed when more than one attempt is allowed.
-#: gio/gtlspassword.c:115
+#: gio/gtlspassword.c:117
msgid ""
"Several passwords entered have been incorrect, and your access will be "
"locked out after further failures."
@@ -4328,15 +4399,15 @@ msgstr ""
"Mai multe parole introduse nu au fost corecte, și accesul va fi blocat după "
"alte eșecuri."
-#: gio/gtlspassword.c:117
+#: gio/gtlspassword.c:119
msgid "The password entered is incorrect."
msgstr "Parola introdusă nu este corectă."
-#: gio/gunixconnection.c:125
+#: gio/gunixconnection.c:127
msgid "Sending FD is not supported"
msgstr "Trimiterea FD nu este suportată"
-#: gio/gunixconnection.c:178 gio/gunixconnection.c:596
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
@@ -4344,11 +4415,11 @@ msgstr[0] "S-a așteptat un mesaj de control, dar s-a primit %d"
msgstr[1] "S-a așteptat un mesaj de control, dar s-au primit %d"
msgstr[2] "S-a așteptat un mesaj de control, dar s-au primit %d"
-#: gio/gunixconnection.c:194 gio/gunixconnection.c:608
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Tip neașteptat de date auxiliare"
-#: gio/gunixconnection.c:212
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
@@ -4356,113 +4427,113 @@ msgstr[0] "S-a așteptat un fd, dar s-a primit %d\n"
msgstr[1] "S-a așteptat un fd, dar s-a primit %d\n"
msgstr[2] "S-a așteptat un fd, dar s-a primit %d\n"
-#: gio/gunixconnection.c:231
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "S-a primit un fd nevalid"
-#: gio/gunixconnection.c:238
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Primirea FD nu este suportată"
-#: gio/gunixconnection.c:380
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Eroare la trimiterea credențialelor: "
-#: gio/gunixconnection.c:537
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Eroare la verificarea dacă SO_PASSCRED este activat pe socket: %s"
-#: gio/gunixconnection.c:553
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Eroare la activarea SO_PASSCRED: %s"
-#: gio/gunixconnection.c:582
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Se aștepta să se citească un singur octet pentru a primi credențialele, dar "
"s-au citi zero octeți"
-#: gio/gunixconnection.c:622
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Nu s-a așteptat un mesaj de control, dar s-a primit %d"
-#: gio/gunixconnection.c:647
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Eroare la dezactivarea SO_PASSCRED: %s"
-#: gio/gunixinputstream.c:357 gio/gunixinputstream.c:378
+#: gio/gunixinputstream.c:359 gio/gunixinputstream.c:380
#, c-format
msgid "Error reading from file descriptor: %s"
msgstr "Eroare la citirea din descriptorul de fișier: %s"
-#: gio/gunixinputstream.c:411 gio/gunixoutputstream.c:520
-#: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
+#: gio/gunixinputstream.c:413 gio/gunixoutputstream.c:522
+#: gio/gwin32inputstream.c:219 gio/gwin32outputstream.c:206
#, c-format
msgid "Error closing file descriptor: %s"
msgstr "Eroare la închiderea descriptorului de fișier: %s"
-#: gio/gunixmounts.c:2809 gio/gunixmounts.c:2862
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Rădăcina sistemului de fișiere"
-#: gio/gunixoutputstream.c:357 gio/gunixoutputstream.c:377
-#: gio/gunixoutputstream.c:464 gio/gunixoutputstream.c:484
-#: gio/gunixoutputstream.c:630
+#: gio/gunixoutputstream.c:359 gio/gunixoutputstream.c:379
+#: gio/gunixoutputstream.c:466 gio/gunixoutputstream.c:486
+#: gio/gunixoutputstream.c:632
#, c-format
msgid "Error writing to file descriptor: %s"
msgstr "Eroare la scrierea în descriptorul de fișier: %s"
-#: gio/gunixsocketaddress.c:251
+#: gio/gunixsocketaddress.c:253
msgid "Abstract UNIX domain socket addresses not supported on this system"
msgstr ""
"Adresele de soclu abstracte pentru domeniul UNIX nu sunt suportate pe acest "
"sistem"
-#: gio/gvolume.c:438
+#: gio/gvolume.c:440
msgid "volume doesn’t implement eject"
msgstr "volumul nu implementează eject"
#. Translators: This is an error
#. * message for volume objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gvolume.c:515
+#: gio/gvolume.c:517
msgid "volume doesn’t implement eject or eject_with_operation"
msgstr "volumul nu implementează eject sau eject_with_operation"
-#: gio/gwin32inputstream.c:185
+#: gio/gwin32inputstream.c:187
#, c-format
msgid "Error reading from handle: %s"
msgstr "Eroare la citirea din handle: %s"
-#: gio/gwin32inputstream.c:232 gio/gwin32outputstream.c:219
+#: gio/gwin32inputstream.c:234 gio/gwin32outputstream.c:221
#, c-format
msgid "Error closing handle: %s"
msgstr "Eroare la închiderea handle-ului: %s"
-#: gio/gwin32outputstream.c:172
+#: gio/gwin32outputstream.c:174
#, c-format
msgid "Error writing to handle: %s"
msgstr "Eroare la scrierea în handle: %s"
-#: gio/gzlibcompressor.c:394 gio/gzlibdecompressor.c:347
+#: gio/gzlibcompressor.c:396 gio/gzlibdecompressor.c:349
msgid "Not enough memory"
msgstr "Memorie insuficientă"
-#: gio/gzlibcompressor.c:401 gio/gzlibdecompressor.c:354
+#: gio/gzlibcompressor.c:403 gio/gzlibdecompressor.c:356
#, c-format
msgid "Internal error: %s"
msgstr "Eroare internă: %s"
-#: gio/gzlibcompressor.c:414 gio/gzlibdecompressor.c:368
+#: gio/gzlibcompressor.c:416 gio/gzlibdecompressor.c:370
msgid "Need more input"
msgstr "Sunt necesare date suplimentare de la intrare"
-#: gio/gzlibdecompressor.c:340
+#: gio/gzlibdecompressor.c:342
msgid "Invalid compressed data"
msgstr "Date comprimate nevalid"
@@ -4490,153 +4561,148 @@ msgstr "Rulează un serviciu dbus"
msgid "Wrong args\n"
msgstr "Argumente greșite\n"
-#: glib/gbookmarkfile.c:777
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Atribut neașteptat „%s” pentru elementul „%s”"
-#: glib/gbookmarkfile.c:788 glib/gbookmarkfile.c:868 glib/gbookmarkfile.c:878
-#: glib/gbookmarkfile.c:991
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Atributul „%s” al elementului „%s” nu a fost găsit"
-#: glib/gbookmarkfile.c:1200 glib/gbookmarkfile.c:1265
-#: glib/gbookmarkfile.c:1329 glib/gbookmarkfile.c:1339
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Etichetă neașteptată „%s”, se aștepta eticheta „%s”"
-#: glib/gbookmarkfile.c:1225 glib/gbookmarkfile.c:1239
-#: glib/gbookmarkfile.c:1307 glib/gbookmarkfile.c:1353
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Etichetă neașteptată „%s” în „%s”"
-#: glib/gbookmarkfile.c:1633
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Dată/oră nevalidă „%s” în fișierul de favorit"
-#: glib/gbookmarkfile.c:1836
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Nu s-a găsit un fișier valid cu favorite în directoarele de date"
-#: glib/gbookmarkfile.c:2037
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Un favorit pentru URI-ul „%s” există deja"
-#: glib/gbookmarkfile.c:2086 glib/gbookmarkfile.c:2244
-#: glib/gbookmarkfile.c:2329 glib/gbookmarkfile.c:2409
-#: glib/gbookmarkfile.c:2494 glib/gbookmarkfile.c:2628
-#: glib/gbookmarkfile.c:2761 glib/gbookmarkfile.c:2896
-#: glib/gbookmarkfile.c:2938 glib/gbookmarkfile.c:3035
-#: glib/gbookmarkfile.c:3156 glib/gbookmarkfile.c:3350
-#: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3710
-#: glib/gbookmarkfile.c:3799 glib/gbookmarkfile.c:3888
-#: glib/gbookmarkfile.c:4007
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Nu s-a găsit niciun favorit pentru URI-ul „%s”"
-#: glib/gbookmarkfile.c:2418
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Nu s-a definit niciun tip MIME în favorit pentru URI-ul „%s”"
-#: glib/gbookmarkfile.c:2503
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Nu s-a definit niciun fanion privat în favorit pentru URI-ul „%s”"
-#: glib/gbookmarkfile.c:3044
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "Nu s-au stabilit grupuri în favorit pentru URI-ul „%s”"
-#: glib/gbookmarkfile.c:3512 glib/gbookmarkfile.c:3720
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Nicio aplicație cu numele „%s” nu a înregistrat un favorit pentru „%s”"
-#: glib/gbookmarkfile.c:3743
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Nu s-a putut extinde linia de exec „%s” cu URI-ul „%s”"
-#: glib/gconvert.c:468
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Caracter nereprezentabil în intrarea conversiei"
-#: glib/gconvert.c:495 glib/gutf8.c:886 glib/gutf8.c:1099 glib/gutf8.c:1236
-#: glib/gutf8.c:1340
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Secvență parțială de caractere la sfârșitul inputului"
-#: glib/gconvert.c:764
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Nu se poate converti rezerva „%s” la setul de codare „%s”"
-#: glib/gconvert.c:936
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Octet NUL încorporat în intrarea conversiei"
-#: glib/gconvert.c:957
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Octet NUL încorporat în ieșirea conversiei"
-#: glib/gconvert.c:1688
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "URI-ul „%s” nu este un URI absolut care utilizează schema „file”"
-#: glib/gconvert.c:1698
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "URI-ul fișierului local „%s” nu poate include un „#”"
-
-#: glib/gconvert.c:1715
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "URI-ul „%s” nu este valid"
-#: glib/gconvert.c:1727
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Numele de gazdă al URI-ului „%s” nu este valid"
-#: glib/gconvert.c:1743
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "URI-ul „%s” conține caractere eludate nevalid"
-#: glib/gconvert.c:1815
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Numele căii „%s” nu este o cale absolută"
#. Translators: this is the preferred format for expressing the date and the time
-#: glib/gdatetime.c:226
+#: glib/gdatetime.c:228
msgctxt "GDateTime"
msgid "%a %b %e %H:%M:%S %Y"
msgstr "%a %d %b %Y %T %z"
#. Translators: this is the preferred format for expressing the date
-#: glib/gdatetime.c:229
+#: glib/gdatetime.c:231
msgctxt "GDateTime"
msgid "%m/%d/%y"
msgstr "%d/%m/%y"
#. Translators: this is the preferred format for expressing the time
-#: glib/gdatetime.c:232
+#: glib/gdatetime.c:234
msgctxt "GDateTime"
msgid "%H:%M:%S"
msgstr "%H:%M:%S"
#. Translators: this is the preferred format for expressing 12 hour time
-#: glib/gdatetime.c:235
+#: glib/gdatetime.c:237
msgctxt "GDateTime"
msgid "%I:%M:%S %p"
msgstr "%I:%M:%S %p"
@@ -4657,62 +4723,62 @@ msgstr "%I:%M:%S %p"
#. * non-European) there is no difference between the standalone and
#. * complete date form.
#.
-#: glib/gdatetime.c:274
+#: glib/gdatetime.c:276
msgctxt "full month name"
msgid "January"
msgstr "Ianuarie"
-#: glib/gdatetime.c:276
+#: glib/gdatetime.c:278
msgctxt "full month name"
msgid "February"
msgstr "Februarie"
-#: glib/gdatetime.c:278
+#: glib/gdatetime.c:280
msgctxt "full month name"
msgid "March"
msgstr "Martie"
-#: glib/gdatetime.c:280
+#: glib/gdatetime.c:282
msgctxt "full month name"
msgid "April"
msgstr "Aprilie"
-#: glib/gdatetime.c:282
+#: glib/gdatetime.c:284
msgctxt "full month name"
msgid "May"
msgstr "Mai"
-#: glib/gdatetime.c:284
+#: glib/gdatetime.c:286
msgctxt "full month name"
msgid "June"
msgstr "Iunie"
-#: glib/gdatetime.c:286
+#: glib/gdatetime.c:288
msgctxt "full month name"
msgid "July"
msgstr "Iulie"
-#: glib/gdatetime.c:288
+#: glib/gdatetime.c:290
msgctxt "full month name"
msgid "August"
msgstr "August"
-#: glib/gdatetime.c:290
+#: glib/gdatetime.c:292
msgctxt "full month name"
msgid "September"
msgstr "Septembrie"
-#: glib/gdatetime.c:292
+#: glib/gdatetime.c:294
msgctxt "full month name"
msgid "October"
msgstr "Octombrie"
-#: glib/gdatetime.c:294
+#: glib/gdatetime.c:296
msgctxt "full month name"
msgid "November"
msgstr "Noiembrie"
-#: glib/gdatetime.c:296
+#: glib/gdatetime.c:298
msgctxt "full month name"
msgid "December"
msgstr "Decembrie"
@@ -4734,132 +4800,132 @@ msgstr "Decembrie"
#. * other platform. Here are abbreviated month names in a form
#. * appropriate when they are used standalone.
#.
-#: glib/gdatetime.c:328
+#: glib/gdatetime.c:330
msgctxt "abbreviated month name"
msgid "Jan"
msgstr "Ian"
-#: glib/gdatetime.c:330
+#: glib/gdatetime.c:332
msgctxt "abbreviated month name"
msgid "Feb"
msgstr "Feb"
-#: glib/gdatetime.c:332
+#: glib/gdatetime.c:334
msgctxt "abbreviated month name"
msgid "Mar"
msgstr "Mar"
-#: glib/gdatetime.c:334
+#: glib/gdatetime.c:336
msgctxt "abbreviated month name"
msgid "Apr"
msgstr "Apr"
-#: glib/gdatetime.c:336
+#: glib/gdatetime.c:338
msgctxt "abbreviated month name"
msgid "May"
msgstr "Mai"
-#: glib/gdatetime.c:338
+#: glib/gdatetime.c:340
msgctxt "abbreviated month name"
msgid "Jun"
msgstr "Iun"
-#: glib/gdatetime.c:340
+#: glib/gdatetime.c:342
msgctxt "abbreviated month name"
msgid "Jul"
msgstr "Iul"
-#: glib/gdatetime.c:342
+#: glib/gdatetime.c:344
msgctxt "abbreviated month name"
msgid "Aug"
msgstr "Aug"
-#: glib/gdatetime.c:344
+#: glib/gdatetime.c:346
msgctxt "abbreviated month name"
msgid "Sep"
msgstr "Sep"
-#: glib/gdatetime.c:346
+#: glib/gdatetime.c:348
msgctxt "abbreviated month name"
msgid "Oct"
msgstr "Oct"
-#: glib/gdatetime.c:348
+#: glib/gdatetime.c:350
msgctxt "abbreviated month name"
msgid "Nov"
msgstr "Noi"
-#: glib/gdatetime.c:350
+#: glib/gdatetime.c:352
msgctxt "abbreviated month name"
msgid "Dec"
msgstr "Dec"
-#: glib/gdatetime.c:365
+#: glib/gdatetime.c:367
msgctxt "full weekday name"
msgid "Monday"
msgstr "Luni"
-#: glib/gdatetime.c:367
+#: glib/gdatetime.c:369
msgctxt "full weekday name"
msgid "Tuesday"
msgstr "Marți"
-#: glib/gdatetime.c:369
+#: glib/gdatetime.c:371
msgctxt "full weekday name"
msgid "Wednesday"
msgstr "Miercuri"
-#: glib/gdatetime.c:371
+#: glib/gdatetime.c:373
msgctxt "full weekday name"
msgid "Thursday"
msgstr "Joi"
-#: glib/gdatetime.c:373
+#: glib/gdatetime.c:375
msgctxt "full weekday name"
msgid "Friday"
msgstr "Vineri"
-#: glib/gdatetime.c:375
+#: glib/gdatetime.c:377
msgctxt "full weekday name"
msgid "Saturday"
msgstr "Sâmbătă"
-#: glib/gdatetime.c:377
+#: glib/gdatetime.c:379
msgctxt "full weekday name"
msgid "Sunday"
msgstr "Duminică"
-#: glib/gdatetime.c:392
+#: glib/gdatetime.c:394
msgctxt "abbreviated weekday name"
msgid "Mon"
msgstr "Lun"
-#: glib/gdatetime.c:394
+#: glib/gdatetime.c:396
msgctxt "abbreviated weekday name"
msgid "Tue"
msgstr "Mar"
-#: glib/gdatetime.c:396
+#: glib/gdatetime.c:398
msgctxt "abbreviated weekday name"
msgid "Wed"
msgstr "Mie"
-#: glib/gdatetime.c:398
+#: glib/gdatetime.c:400
msgctxt "abbreviated weekday name"
msgid "Thu"
msgstr "Joi"
-#: glib/gdatetime.c:400
+#: glib/gdatetime.c:402
msgctxt "abbreviated weekday name"
msgid "Fri"
msgstr "Vin"
-#: glib/gdatetime.c:402
+#: glib/gdatetime.c:404
msgctxt "abbreviated weekday name"
msgid "Sat"
msgstr "Sâm"
-#: glib/gdatetime.c:404
+#: glib/gdatetime.c:406
msgctxt "abbreviated weekday name"
msgid "Sun"
msgstr "Dum"
@@ -4881,62 +4947,62 @@ msgstr "Dum"
#. * (western European, non-European) there is no difference between the
#. * standalone and complete date form.
#.
-#: glib/gdatetime.c:468
+#: glib/gdatetime.c:470
msgctxt "full month name with day"
msgid "January"
msgstr "Ianuarie"
-#: glib/gdatetime.c:470
+#: glib/gdatetime.c:472
msgctxt "full month name with day"
msgid "February"
msgstr "Februarie"
-#: glib/gdatetime.c:472
+#: glib/gdatetime.c:474
msgctxt "full month name with day"
msgid "March"
msgstr "Martie"
-#: glib/gdatetime.c:474
+#: glib/gdatetime.c:476
msgctxt "full month name with day"
msgid "April"
msgstr "Aprilie"
-#: glib/gdatetime.c:476
+#: glib/gdatetime.c:478
msgctxt "full month name with day"
msgid "May"
msgstr "Mai"
-#: glib/gdatetime.c:478
+#: glib/gdatetime.c:480
msgctxt "full month name with day"
msgid "June"
msgstr "Iunie"
-#: glib/gdatetime.c:480
+#: glib/gdatetime.c:482
msgctxt "full month name with day"
msgid "July"
msgstr "Iulie"
-#: glib/gdatetime.c:482
+#: glib/gdatetime.c:484
msgctxt "full month name with day"
msgid "August"
msgstr "August"
-#: glib/gdatetime.c:484
+#: glib/gdatetime.c:486
msgctxt "full month name with day"
msgid "September"
msgstr "Septembrie"
-#: glib/gdatetime.c:486
+#: glib/gdatetime.c:488
msgctxt "full month name with day"
msgid "October"
msgstr "Octombrie"
-#: glib/gdatetime.c:488
+#: glib/gdatetime.c:490
msgctxt "full month name with day"
msgid "November"
msgstr "Noiembrie"
-#: glib/gdatetime.c:490
+#: glib/gdatetime.c:492
msgctxt "full month name with day"
msgid "December"
msgstr "Decembrie"
@@ -4958,84 +5024,84 @@ msgstr "Decembrie"
#. * month names almost ready to copy and paste here. In other systems
#. * due to a bug the result is incorrect in some languages.
#.
-#: glib/gdatetime.c:555
+#: glib/gdatetime.c:557
msgctxt "abbreviated month name with day"
msgid "Jan"
msgstr "Ian"
-#: glib/gdatetime.c:557
+#: glib/gdatetime.c:559
msgctxt "abbreviated month name with day"
msgid "Feb"
msgstr "Feb"
-#: glib/gdatetime.c:559
+#: glib/gdatetime.c:561
msgctxt "abbreviated month name with day"
msgid "Mar"
msgstr "Mar"
-#: glib/gdatetime.c:561
+#: glib/gdatetime.c:563
msgctxt "abbreviated month name with day"
msgid "Apr"
msgstr "Apr"
-#: glib/gdatetime.c:563
+#: glib/gdatetime.c:565
msgctxt "abbreviated month name with day"
msgid "May"
msgstr "Mai"
-#: glib/gdatetime.c:565
+#: glib/gdatetime.c:567
msgctxt "abbreviated month name with day"
msgid "Jun"
msgstr "Iun"
-#: glib/gdatetime.c:567
+#: glib/gdatetime.c:569
msgctxt "abbreviated month name with day"
msgid "Jul"
msgstr "Iul"
-#: glib/gdatetime.c:569
+#: glib/gdatetime.c:571
msgctxt "abbreviated month name with day"
msgid "Aug"
msgstr "Aug"
-#: glib/gdatetime.c:571
+#: glib/gdatetime.c:573
msgctxt "abbreviated month name with day"
msgid "Sep"
msgstr "Sep"
-#: glib/gdatetime.c:573
+#: glib/gdatetime.c:575
msgctxt "abbreviated month name with day"
msgid "Oct"
msgstr "Oct"
-#: glib/gdatetime.c:575
+#: glib/gdatetime.c:577
msgctxt "abbreviated month name with day"
msgid "Nov"
msgstr "Noi"
-#: glib/gdatetime.c:577
+#: glib/gdatetime.c:579
msgctxt "abbreviated month name with day"
msgid "Dec"
msgstr "Dec"
#. Translators: 'before midday' indicator
-#: glib/gdatetime.c:594
+#: glib/gdatetime.c:596
msgctxt "GDateTime"
msgid "AM"
msgstr "AM"
#. Translators: 'after midday' indicator
-#: glib/gdatetime.c:597
+#: glib/gdatetime.c:599
msgctxt "GDateTime"
msgid "PM"
msgstr "PM"
-#: glib/gdir.c:156
+#: glib/gdir.c:158
#, c-format
msgid "Error opening directory “%s”: %s"
msgstr "Eroare la deschiderea directorului „%s”: %s"
-#: glib/gfileutils.c:733 glib/gfileutils.c:825
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
@@ -5043,106 +5109,106 @@ msgstr[0] "Nu s-a putut aloca %lu octet pentru a citi fișierul „%s”"
msgstr[1] "Nu s-au putut aloca %lu octeți pentru a citi fișierul „%s”"
msgstr[2] "Nu s-au putut aloca %lu de octeți pentru a citi fișierul „%s”"
-#: glib/gfileutils.c:750
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Eroare la citirea fișierului „%s”: %s"
-#: glib/gfileutils.c:786
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Fișierul „%s” este prea mare"
-#: glib/gfileutils.c:850
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Nu s-a putut citi din fișierul „%s”: %s"
-#: glib/gfileutils.c:900 glib/gfileutils.c:975 glib/gfileutils.c:1447
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Nu s-a putut deschide fișierul „%s”: %s"
-#: glib/gfileutils.c:913
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Nu s-au putut obține atributele fișierului „%s”: fstat() a eșuat: %s"
-#: glib/gfileutils.c:944
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Nu s-a putut deschide fișierul „%s”: fdopen() a eșuat: %s"
-#: glib/gfileutils.c:1045
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "Nu s-a putut redenumi fișierul „%s” în „%s”: g_rename() a eșuat: %s"
-#: glib/gfileutils.c:1154
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Nu s-a putut scrie fișierul „%s”: write() a eșuat: %s"
-#: glib/gfileutils.c:1175
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Nu s-a putut scrie fișierul „%s”: fsync() a eșuat: %s"
-#: glib/gfileutils.c:1336 glib/gfileutils.c:1751
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Nu s-a putut crea fișierul „%s”: %s"
-#: glib/gfileutils.c:1381
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "Fișierul existent „%s” nu a putut fi eliminat: g_unlink() a eșuat: %s"
-#: glib/gfileutils.c:1716
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Șablonul „%s” nu este valid, nu ar trebui să conțină un „%s”"
-#: glib/gfileutils.c:1729
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Șablonul „%s” nu conține XXXXXX"
-#: glib/gfileutils.c:2289 glib/gfileutils.c:2318
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Nu s-a putut citi legătura simbolică „%s”: %s"
-#: glib/giochannel.c:1405
+#: glib/giochannel.c:1408
#, c-format
msgid "Could not open converter from “%s” to “%s”: %s"
msgstr "Nu s-a putut deschide convertorul de la „%s” la „%s”: %s"
-#: glib/giochannel.c:1758
+#: glib/giochannel.c:1761
msgid "Can’t do a raw read in g_io_channel_read_line_string"
msgstr "Nu se poate efectua o citire brută în g_io_channel_read_line_string"
-#: glib/giochannel.c:1805 glib/giochannel.c:2063 glib/giochannel.c:2150
+#: glib/giochannel.c:1808 glib/giochannel.c:2066 glib/giochannel.c:2153
msgid "Leftover unconverted data in read buffer"
msgstr "Date neconvertite rămase în memoria tampon pentru citire"
-#: glib/giochannel.c:1886 glib/giochannel.c:1963
+#: glib/giochannel.c:1889 glib/giochannel.c:1966
msgid "Channel terminates in a partial character"
msgstr "Canalul se termină cu un caracter parțial"
-#: glib/giochannel.c:1949
+#: glib/giochannel.c:1952
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Nu se poate efectua o citire brută în g_io_channel_read_to_end"
-#: glib/gkeyfile.c:794
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Nu s-a găsit un fișier cheie valid în directoarele de căutare"
-#: glib/gkeyfile.c:831
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Nu e un fișier obișnuit"
-#: glib/gkeyfile.c:1289
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5150,44 +5216,44 @@ msgstr ""
"Fișierul cheii conține linia „%s” care nu este o pereche cheie-valoare, un "
"grup, sau un comentariu"
-#: glib/gkeyfile.c:1346
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Nume incorect de grup: %s"
-#: glib/gkeyfile.c:1370
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Fișierul cheie nu începe cu un grup"
-#: glib/gkeyfile.c:1394
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Nume nevalid de cheie: %.*s"
-#: glib/gkeyfile.c:1422
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Fișierul cheii conține codarea nesuportată „%s”"
-#: glib/gkeyfile.c:1677 glib/gkeyfile.c:1850 glib/gkeyfile.c:3297
-#: glib/gkeyfile.c:3361 glib/gkeyfile.c:3491 glib/gkeyfile.c:3623
-#: glib/gkeyfile.c:3769 glib/gkeyfile.c:4004 glib/gkeyfile.c:4071
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Fișierul cheii nu are grupul „%s”"
-#: glib/gkeyfile.c:1805
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Fișierul cheii nu are cheia „%s” în grupul „%s”"
-#: glib/gkeyfile.c:1967 glib/gkeyfile.c:2083
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
"Fișierul cheii conține cheia „%s”, cu valoarea „%s”, care nu este UTF-8"
-#: glib/gkeyfile.c:1987 glib/gkeyfile.c:2103 glib/gkeyfile.c:2542
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
@@ -5195,7 +5261,7 @@ msgstr ""
"Fișierul cheii conține cheia „%s” care are o valoare care nu se poate "
"interpreta."
-#: glib/gkeyfile.c:2757 glib/gkeyfile.c:3126
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5204,52 +5270,52 @@ msgstr ""
"Fișierul cheie conține cheia „%s” în grupul „%s”, care are o valoare ce nu "
"poate fi interpretată."
-#: glib/gkeyfile.c:2835 glib/gkeyfile.c:2912
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Cheia „%s” în grupul „%s” are valoarea „%s” unde %s a fost așteptat"
-#: glib/gkeyfile.c:4324
+#: glib/gkeyfile.c:4357
msgid "Key file contains escape character at end of line"
msgstr "Fișieul cheie conține caractere „escape” la sfârșit de linie"
-#: glib/gkeyfile.c:4346
+#: glib/gkeyfile.c:4394
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Fișierul cheie conține secvența de eludare nevalidă „%s”"
-#: glib/gkeyfile.c:4491
+#: glib/gkeyfile.c:4545
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Valoarea „%s” nu poate fi interpretată ca un număr."
-#: glib/gkeyfile.c:4505
+#: glib/gkeyfile.c:4559
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Valoarea întreagă „%s” este în afara limitelor"
-#: glib/gkeyfile.c:4538
+#: glib/gkeyfile.c:4592
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Valoarea „%s” nu poate fi interpretată ca un număr rațional."
-#: glib/gkeyfile.c:4577
+#: glib/gkeyfile.c:4631
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Valoarea „%s” nu poate fi interpretată ca o valoare logică."
-#: glib/gmappedfile.c:129
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"Nu s-au putut obține atributele fișierului „%s%s%s%s”: fstat() a eșuat: %s"
-#: glib/gmappedfile.c:195
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Nu s-a putut mapa %s%s%s%s: mmap() a eșuat: %s"
-#: glib/gmappedfile.c:262
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Nu s-a putut deschide fișierul „%s”: open() a eșuat: %s"
@@ -5484,301 +5550,242 @@ msgstr ""
"Documentul s-a terminat în mod neașteptat în cadrul unui comentariu sau a "
"unei instrucțiuni de procesare"
-#: glib/goption.c:873
+#: glib/goption.c:875
msgid "[OPTION…]"
msgstr "[OPȚIUNE…]"
-#: glib/goption.c:989
+#: glib/goption.c:991
msgid "Help Options:"
msgstr "Opțiuni ajutor:"
-#: glib/goption.c:990
+#: glib/goption.c:992
msgid "Show help options"
msgstr "Arată opțiunile de ajutor"
-#: glib/goption.c:996
+#: glib/goption.c:998
msgid "Show all help options"
msgstr "Arată toate opțiunile de ajutor"
-#: glib/goption.c:1059
+#: glib/goption.c:1061
msgid "Application Options:"
msgstr "Opțiuni aplicație:"
-#: glib/goption.c:1061
+#: glib/goption.c:1063
msgid "Options:"
msgstr "Opțiuni:"
-#: glib/goption.c:1125 glib/goption.c:1195
+#: glib/goption.c:1127 glib/goption.c:1197
#, c-format
msgid "Cannot parse integer value “%s” for %s"
msgstr "Nu se poate parsa valoarea întreagă „%s” pentru %s"
-#: glib/goption.c:1135 glib/goption.c:1203
+#: glib/goption.c:1137 glib/goption.c:1205
#, c-format
msgid "Integer value “%s” for %s out of range"
msgstr "Valoarea întreagă „%s” pentru %s este în afara limitelor"
-#: glib/goption.c:1160
+#: glib/goption.c:1162
#, c-format
msgid "Cannot parse double value “%s” for %s"
msgstr "Nu se poate parsa valoarea dublă „%s” pentru %s"
-#: glib/goption.c:1168
+#: glib/goption.c:1170
#, c-format
msgid "Double value “%s” for %s out of range"
msgstr "Valoarea dublă „%s” pentru %s este în afara limitelor"
-#: glib/goption.c:1460 glib/goption.c:1539
+#: glib/goption.c:1462 glib/goption.c:1541
#, c-format
msgid "Error parsing option %s"
msgstr "Eroare la prelucrarea opțiunii %s"
-#: glib/goption.c:1561 glib/goption.c:1674
+#: glib/goption.c:1563 glib/goption.c:1676
#, c-format
msgid "Missing argument for %s"
msgstr "Argument lipsă pentru %s"
-#: glib/goption.c:2184
+#: glib/goption.c:2186
#, c-format
msgid "Unknown option %s"
msgstr "Opțiune necunoscută %s"
-#: glib/gregex.c:255
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "obiect corupt"
-#: glib/gregex.c:257
-msgid "internal error or corrupted object"
-msgstr "eroare internă sau obiect corupt"
-
-#: glib/gregex.c:259
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "memorie insuficientă"
-#: glib/gregex.c:264
-msgid "backtracking limit reached"
-msgstr "s-a atins limita de backtracking"
+#: glib/gregex.c:497
+msgid "internal error"
+msgstr "eroare internă"
-#: glib/gregex.c:276 glib/gregex.c:284
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr ""
"modelul de căutare conține elemente pentru care nu se pot face comparații "
"parțiale"
-#: glib/gregex.c:278
-msgid "internal error"
-msgstr "eroare internă"
-
-#: glib/gregex.c:286
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"pentru condițiile de tip „back reference” nu se pot face comparații parțiale"
-#: glib/gregex.c:295
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "s-a atins limita de recursivitate"
-#: glib/gregex.c:297
-msgid "invalid combination of newline flags"
-msgstr "combinație incorectă de indicatori de linie nouă"
-
-#: glib/gregex.c:299
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "deplasament greșit"
-#: glib/gregex.c:301
-msgid "short utf8"
-msgstr "utf8 scurt"
-
-#: glib/gregex.c:303
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "buclă de recursivitate"
-#: glib/gregex.c:307
+#. should not happen in GRegex since we check modes before each match
+#: glib/gregex.c:514
+msgid "matching mode is requested that was not compiled for JIT"
+msgstr "este cerut un mod de potrivire care nu a fost compilat pentru JIT"
+
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "eroare necunoscută"
-#: glib/gregex.c:327
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ la sfârșitul unui model"
-#: glib/gregex.c:330
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c la sfârșitul unui model"
-#: glib/gregex.c:333
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "caracter nerecunoscut după \\"
-#: glib/gregex.c:336
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "numere neordonate în cuantificatorul {}"
-#: glib/gregex.c:339
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "număr prea mare în cuantificatorul {}"
-#: glib/gregex.c:342
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "lipsește un ] de închidere pentru clasa caracter"
-#: glib/gregex.c:345
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "secvență de eludare incorectă în clasa caracter"
-#: glib/gregex.c:348
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "interval depășit în clasa caracter"
-#: glib/gregex.c:351
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "nimic de repetat"
-#: glib/gregex.c:355
-msgid "unexpected repeat"
-msgstr "repetare neașteptată"
-
-#: glib/gregex.c:358
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "caracter nerecunoscut după (? sau (?-"
-#: glib/gregex.c:361
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "Clasele cu nume POSIX sunt implementate doar înăuntrul altei clase"
-#: glib/gregex.c:364
+#: glib/gregex.c:602
+msgid "POSIX collating elements are not supported"
+msgstr "Elementele POSIX de unire nu sunt suportate"
+
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "lipsește un ) de închidere"
-#: glib/gregex.c:367
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "referință la un submodel inexistent"
-#: glib/gregex.c:370
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "lipsește un ) după comentariu"
-#: glib/gregex.c:373
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "expresia regulată este prea lungă"
-#: glib/gregex.c:376
-msgid "failed to get memory"
-msgstr "nu s-a putut aloca memoria"
-
-#: glib/gregex.c:380
-msgid ") without opening ("
-msgstr ") fără paranteza de deschidere ("
-
-#: glib/gregex.c:384
-msgid "code overflow"
-msgstr "„overflow” în cod"
-
-#: glib/gregex.c:388
-msgid "unrecognized character after (?<"
-msgstr "caracter nerecunoscut după (?<"
+#: glib/gregex.c:624
+msgid "malformed number or name after (?("
+msgstr "număr sau nume formatat eronat după (?("
-#: glib/gregex.c:391
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "aserțiunea „lookbehind” nu e de lungime fixă"
-#: glib/gregex.c:394
-msgid "malformed number or name after (?("
-msgstr "număr sau nume formatat eronat după (?("
-
-#: glib/gregex.c:397
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "grupul de condiții conține mai mult de două ramuri"
-#: glib/gregex.c:400
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "se așteaptă o aserțiune după (?("
-#. translators: '(?R' and '(?[+-]digits' are both meant as (groups of)
-#. * sequences here, '(?-54' would be an example for the second group.
-#.
-#: glib/gregex.c:407
-msgid "(?R or (?[+-]digits must be followed by )"
-msgstr "(?R sau (?[+-]digiți trebuie urmați de )"
+#: glib/gregex.c:640
+msgid "a numbered reference must not be zero"
+msgstr "o referință numerotată trebuie să fie diferită de zero"
-#: glib/gregex.c:410
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "nume necunoscut de clasă POSIX"
-#: glib/gregex.c:413
-msgid "POSIX collating elements are not supported"
-msgstr "Elementele POSIX de unire nu sunt suportate"
-
-#: glib/gregex.c:416
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "valoarea caracterului în secvența \\x{...} este prea mare"
-#: glib/gregex.c:419
-msgid "invalid condition (?(0)"
-msgstr "condiție nevalidă (?(0)"
-
-#: glib/gregex.c:422
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C nu este permis în aserțiunea lookbehind"
-#: glib/gregex.c:429
-msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
-msgstr ""
-"caracterele de eludare \\L, \\l, \\N{nume}, \\U, și \\u nu sunt suportate"
-
-#: glib/gregex.c:432
-msgid "recursive call could loop indefinitely"
-msgstr "apelul recursiv ar putea intra în buclă infinită"
-
-#: glib/gregex.c:436
-msgid "unrecognized character after (?P"
-msgstr "caracter nerecunoscut după (?P"
-
-#: glib/gregex.c:439
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "terminator lipsă în numele de submodel"
-#: glib/gregex.c:442
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "două submodele au același nume"
-#: glib/gregex.c:445
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "secvență eronată \\P sau \\p"
-#: glib/gregex.c:448
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "nume necunoscut de proprietate după \\P ori \\p"
-#: glib/gregex.c:451
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "nume de submodel prea lung (sunt permise cel mult 32 de caractere)"
-#: glib/gregex.c:454
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "prea multe nume de submodeluri (sunt permise cel mult 10.000)"
-#: glib/gregex.c:457
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "valoarea octală este mai mare decât \\377"
-#: glib/gregex.c:461
-msgid "overran compiling workspace"
-msgstr "spațiul de compilare a fost depășit"
-
-#: glib/gregex.c:465
-msgid "previously-checked referenced subpattern not found"
-msgstr "nu s-a găsit submodelul referit și verificat anterior"
-
-#: glib/gregex.c:468
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "Grupul DEFINE conține mai mult de o ramură"
-#: glib/gregex.c:471
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "opțiuni NEWLINE inconsistente"
-#: glib/gregex.c:474
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5786,295 +5793,286 @@ msgstr ""
"\\g nu este urmat de un nume sau un număr între acolade, paranteze "
"unghiulare sau citate, sau de un număr simplu"
-#: glib/gregex.c:478
-msgid "a numbered reference must not be zero"
-msgstr "o referință numerotată trebuie să fie diferită de zero"
-
-#: glib/gregex.c:481
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "nu este permis un argument pentru (*ACCEPT), (*FAIL), sau (*COMMIT)"
-#: glib/gregex.c:484
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) nu este recunoscut"
-#: glib/gregex.c:487
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "numărul este prea mare"
-#: glib/gregex.c:490
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "lipsește numele de sub-mostră după (?&"
-#: glib/gregex.c:493
-msgid "digit expected after (?+"
-msgstr "s-a așteptat o cifră după (?+"
-
-#: glib/gregex.c:496
-msgid "] is an invalid data character in JavaScript compatibility mode"
-msgstr ""
-"] este un caracter de date nevalid în modul de compatibilitate JavaScript"
-
-#: glib/gregex.c:499
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "nume diferite pentru submodele ale aceluiași număr nu sunt permise"
-#: glib/gregex.c:502
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) trebuie să aibă un argument"
-#: glib/gregex.c:505
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c trebuie să fie urmat de un caracter ASCII"
-#: glib/gregex.c:508
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"\\k nu este urmat de un nume scris între paranteze acolade, unghiulare sau "
"cu citate"
-#: glib/gregex.c:511
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N nu este suportat într-o clasă"
-#: glib/gregex.c:514
-msgid "too many forward references"
-msgstr "prea multe referințe de înaintare"
-
-#: glib/gregex.c:517
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "numele este prea lung în (*MARK), (*PRUNE), (*SKIP), sau (*THEN)"
-#: glib/gregex.c:520
-msgid "character value in \\u.... sequence is too large"
-msgstr "valoarea caracterului în secvența \\u.... este prea mare"
+#: glib/gregex.c:738 glib/gregex.c:874
+msgid "code overflow"
+msgstr "„overflow” în cod"
+
+#: glib/gregex.c:742
+msgid "unrecognized character after (?P"
+msgstr "caracter nerecunoscut după (?P"
-#: glib/gregex.c:743 glib/gregex.c:1988
+#: glib/gregex.c:746
+msgid "overran compiling workspace"
+msgstr "spațiul de compilare a fost depășit"
+
+#: glib/gregex.c:750
+msgid "previously-checked referenced subpattern not found"
+msgstr "nu s-a găsit submodelul referit și verificat anterior"
+
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Eroare la compararea expresiei regulate %s: %s"
-#: glib/gregex.c:1321
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "Biblioteca PCRE este compilată cu suport UTF-8"
-#: glib/gregex.c:1325
-msgid "PCRE library is compiled without UTF8 properties support"
-msgstr "Biblioteca PCRE este compilată fără suport pentru proprietăți UTF-8"
-
-#: glib/gregex.c:1333
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "Biblioteca PCRE este compilată cu opțiuni incompatibile"
-#: glib/gregex.c:1362
+#: glib/gregex.c:1860
#, c-format
-msgid "Error while optimizing regular expression %s: %s"
-msgstr "Eroare la optimizarea expresiei regulate %s: %s"
+msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
+msgstr "Eroare la compilarea expresiei regulate „%s” la caracterul %s: %s"
-#: glib/gregex.c:1442
-#, c-format
-msgid "Error while compiling regular expression %s at char %d: %s"
-msgstr "Eroare la parsarea expresiei regulate %s la caracterul %d: %s"
-
-#: glib/gregex.c:2427
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "s-a așteptat o cifră hexazecimală sau „}”"
-#: glib/gregex.c:2443
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "se aștepta un digit hexadecimal"
-#: glib/gregex.c:2483
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "lipsește „<” în referința simbolică"
-#: glib/gregex.c:2492
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "referință simbolică neterminată"
-#: glib/gregex.c:2499
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "referință simbolică de lungime zero"
-#: glib/gregex.c:2510
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "se aștepta un digit"
-#: glib/gregex.c:2528
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "referință simbolică ilegală"
-#: glib/gregex.c:2591
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "caracter neprevăzut la final „\\”"
-#: glib/gregex.c:2595
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "secvență de eludare necunoscută"
-#: glib/gregex.c:2605
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr ""
"Eroare în timpul parsării textului de înlocuire „%s” la caracterul %lu: %s"
-#: glib/gshell.c:96
+#: glib/gshell.c:98
msgid "Quoted text doesn’t begin with a quotation mark"
msgstr "Textul citat nu începe cu un semn de citare"
-#: glib/gshell.c:186
+#: glib/gshell.c:188
msgid "Unmatched quotation mark in command line or other shell-quoted text"
msgstr ""
"Semn de citare nepereche în linia de comandă sau alt text „shell-quoted”"
-#: glib/gshell.c:592
+#: glib/gshell.c:594
#, c-format
msgid "Text ended just after a “\\” character. (The text was “%s”)"
msgstr "Textul s-a terminat imediat după un caracter „\\”. (Textul era „%s”)"
-#: glib/gshell.c:599
+#: glib/gshell.c:601
#, c-format
msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
msgstr ""
"Textul s-a terminat înainte de semnul de citare pereche pentru %c. (Textul "
"era „%s”)"
-#: glib/gshell.c:611
+#: glib/gshell.c:613
msgid "Text was empty (or contained only whitespace)"
msgstr "Textul era gol (sau conținea doar spațiu gol)"
-#: glib/gspawn.c:310
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Nu s-au putut citi datele din procesul copil (%s)"
-#: glib/gspawn.c:461
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Eroare neașteptată la citirea datelor din procesul copil (%s)"
-#: glib/gspawn.c:546
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Eroare neașteptată în waitpid() (%s)"
-#: glib/gspawn.c:1168 glib/gspawn-win32.c:1426
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Procesul inferior a ieșit cu codul %ld"
-#: glib/gspawn.c:1176
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Procesul inferior a fost terminat de semnalul %ld"
-#: glib/gspawn.c:1183
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Procesul inferior a fost oprit de semnalul %ld"
-#: glib/gspawn.c:1190
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Procesul inferior a ieșit în mod neobișnuit"
-#: glib/gspawn.c:1881 glib/gspawn-win32.c:353 glib/gspawn-win32.c:361
+#: glib/gspawn.c:2039 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Nu s-au putut citi datele din conectorul „pipe” copil (%s)"
-#: glib/gspawn.c:2241
+#: glib/gspawn.c:2411
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Nu s-a putut crea procesul inferior „%s” (%s)"
-#: glib/gspawn.c:2358
+#: glib/gspawn.c:2537
#, c-format
msgid "Failed to fork (%s)"
msgstr "Nu s-a putut clona procesul (%s)"
-#: glib/gspawn.c:2518 glib/gspawn-win32.c:384
+#: glib/gspawn.c:2697 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Nu s-a putut schimba la directorul „%s” (%s)"
-#: glib/gspawn.c:2528
+#: glib/gspawn.c:2707
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Nu s-a putut executa procesul inferior „%s” (%s)"
-#: glib/gspawn.c:2538
+#: glib/gspawn.c:2717
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr ""
"Nu s-a putut deschide fișierul pentru a recartografia descriptorul de "
"fișiere (%s)"
-#: glib/gspawn.c:2546
+#: glib/gspawn.c:2725
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Nu s-a putut duplica descriptorul de fișier pentru procesul copil (%s)"
-#: glib/gspawn.c:2555
+#: glib/gspawn.c:2734
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Nu s-a putut clona procesul copil (%s)"
-#: glib/gspawn.c:2563
+#: glib/gspawn.c:2742
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Nu s-a putut închide descriptorul de fișier pentru procesul copil (%s)"
-#: glib/gspawn.c:2571
+#: glib/gspawn.c:2750
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Eroare necunoscută la executarea procesului inferior „%s”"
-#: glib/gspawn.c:2595
+#: glib/gspawn.c:2774
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "Nu s-au putut citi date suficiente de la procesul copil (%s)"
-#: glib/gspawn-win32.c:297
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Argument de sursă FDs nevalid"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Nu s-au putut citi datele de la procesul copil"
-#: glib/gspawn-win32.c:390 glib/gspawn-win32.c:395 glib/gspawn-win32.c:519
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Nu s-a putut executa procesul copil (%s)"
-#: glib/gspawn-win32.c:400
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Nu s-a putut clona «dup()» procesul copil (%s)"
-#: glib/gspawn-win32.c:469
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Nume incorect de program: %s"
-#: glib/gspawn-win32.c:479 glib/gspawn-win32.c:797
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Secvență incorectă în vectorul argumentului la %d: %s"
-#: glib/gspawn-win32.c:490 glib/gspawn-win32.c:813
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Secvență incorectă în variabilele de mediu: %s"
-#: glib/gspawn-win32.c:793
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Director curent nevalid: %s"
-#: glib/gspawn-win32.c:858
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Nu s-a putut porni programul asociat (%s)"
-#: glib/gspawn-win32.c:1086
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6082,310 +6080,486 @@ msgstr ""
"Eroare neașteptată în g_io_channel_win32_poll() la citirea datelor de la "
"procesul copil"
-#: glib/gstrfuncs.c:3351 glib/gstrfuncs.c:3453
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Șirul gol nu este un număr"
-#: glib/gstrfuncs.c:3375
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "„%s” nu este un număr negativ"
-#: glib/gstrfuncs.c:3385 glib/gstrfuncs.c:3489
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Numărul „%s” se află în afara intervalului [%s, %s]"
-#: glib/gstrfuncs.c:3479
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "„%s” nu este un număr pozitiv"
-#: glib/guri.c:315
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "%-e codare nevalidă în URI"
-#: glib/guri.c:332
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Caracter ilegal în URI"
-#: glib/guri.c:366
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Caractere non-UTF-8 în URI"
-#: glib/guri.c:546
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Adresă IPv6 nevalidă „%.*s” în URI"
-#: glib/guri.c:601
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Adresă IP codată ilegal „%.*s” în URI"
-#: glib/guri.c:613
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Nume de gazdă internaționalizat ilegal „%.*s” în URI"
-#: glib/guri.c:645 glib/guri.c:657
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Nu s-a putut parsa portul „%.*s” în URI"
-#: glib/guri.c:664
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Portul „%.*s” în URI este în afara intervalului"
-#: glib/guri.c:1224 glib/guri.c:1288
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "URI-ul „%s” nu este un URI absolut"
-#: glib/guri.c:1230
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "URI-ul „%s” nu are nicio componentă gazdă"
-#: glib/guri.c:1460
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "URI-ul nu este absolut, și nu s-a furnizat nicio bază URI"
-#: glib/guri.c:2238
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Lipsește „=” și valoarea parametrului"
-#: glib/gutf8.c:832
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Nu s-a putut aloca memoria"
-#: glib/gutf8.c:965
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Caracter în afara limitelor standardului UTF-8"
-#: glib/gutf8.c:1067 glib/gutf8.c:1076 glib/gutf8.c:1206 glib/gutf8.c:1215
-#: glib/gutf8.c:1354 glib/gutf8.c:1451
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Secvență incorectă în inputul conversiei"
-#: glib/gutf8.c:1365 glib/gutf8.c:1462
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Caracter în afara limitelor standardului UTF-16"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2849
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
+#: glib/gutils.c:2966
+msgid "kB"
+msgstr "kO"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
+#: glib/gutils.c:2968
+msgid "MB"
+msgstr "MO"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
+#: glib/gutils.c:2970
+msgid "GB"
+msgstr "GO"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
+#: glib/gutils.c:2972
+msgid "TB"
+msgstr "TO"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
+#: glib/gutils.c:2974
+msgid "PB"
+msgstr "PO"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
+#: glib/gutils.c:2976
+msgid "EB"
+msgstr "EO"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
+#: glib/gutils.c:2980
+msgid "KiB"
+msgstr "KiO"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
+#: glib/gutils.c:2982
+msgid "MiB"
+msgstr "MiO"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
+#: glib/gutils.c:2984
+msgid "GiB"
+msgstr "GiO"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
+#: glib/gutils.c:2986
+msgid "TiB"
+msgstr "TiO"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
+#: glib/gutils.c:2988
+msgid "PiB"
+msgstr "PiO"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
+#: glib/gutils.c:2990
+msgid "EiB"
+msgstr "EiO"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
+#: glib/gutils.c:2994
+msgid "kb"
+msgstr "kb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
+#: glib/gutils.c:2996
+msgid "Mb"
+msgstr "Mb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
+#: glib/gutils.c:2998
+msgid "Gb"
+msgstr "Gb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
+#: glib/gutils.c:3000
+msgid "Tb"
+msgstr "Tb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
+#: glib/gutils.c:3002
+msgid "Pb"
+msgstr "Pb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
+#: glib/gutils.c:3004
+msgid "Eb"
+msgstr "Eb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
+#: glib/gutils.c:3008
+msgid "Kib"
+msgstr "Kib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
+#: glib/gutils.c:3010
+msgid "Mib"
+msgstr "Mib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
+#: glib/gutils.c:3012
+msgid "Gib"
+msgstr "Gib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
+#: glib/gutils.c:3014
+msgid "Tib"
+msgstr "Tib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
+#: glib/gutils.c:3016
+msgid "Pib"
+msgstr "Pib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
+#: glib/gutils.c:3018
+msgid "Eib"
+msgstr "Eib"
+
+#: glib/gutils.c:3056
+msgid "byte"
+msgid_plural "bytes"
+msgstr[0] "octet"
+msgstr[1] "octeți"
+msgstr[2] "de octeți"
+
+#: glib/gutils.c:3060
+msgid "bit"
+msgid_plural "bits"
+msgstr[0] "bit"
+msgstr[1] "biți"
+msgstr[2] "de biți"
+
+#. Translators: The "%u" is replaced with the size value, like "13"; it could
+#. * be part of "13 bytes", but only the number is requested this time.
+#: glib/gutils.c:3068
+#, c-format
+msgctxt "format-size"
+msgid "%u"
+msgstr "%u"
+
+#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
+#: glib/gutils.c:3073
+#, c-format
+msgctxt "format-size"
+msgid "%u %s"
+msgstr "%u %s"
+
+#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
+#. * be part of "13.0 MB", but only the number is requested this time.
+#: glib/gutils.c:3109
+#, c-format
+msgctxt "format-size"
+msgid "%.1f"
+msgstr "%.1f"
+
+#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
+#. * the unit symbol. An example: "13.0 MB"
+#: glib/gutils.c:3115
+#, c-format
+msgctxt "format-size"
+msgid "%.1f %s"
+msgstr "%.1f %s"
+
+#. Translators: the %s in "%s bytes" will always be replaced by a number.
+#: glib/gutils.c:3155
#, c-format
-msgid "%.1f kB"
-msgstr "%.1f kB"
+msgid "%s byte"
+msgid_plural "%s bytes"
+msgstr[0] "%s octet"
+msgstr[1] "%s octeți"
+msgstr[2] "%s de octeți"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2851
+#. Translators: the %s in "%s bits" will always be replaced by a number.
+#: glib/gutils.c:3160
#, c-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
+msgid "%s bit"
+msgid_plural "%s bits"
+msgstr[0] "%s bit"
+msgstr[1] "%s biți"
+msgstr[2] "%s de biți"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2853
+#: glib/gutils.c:3201
#, c-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
+msgid "%u byte"
+msgid_plural "%u bytes"
+msgstr[0] "%u octet"
+msgstr[1] "%u octeți"
+msgstr[2] "%u de octeți"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2855
+#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
+#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
+#. * compatibility. Users will not see this string unless a program is using this deprecated function.
+#. * Please translate as literally as possible.
+#.
+#: glib/gutils.c:3214
#, c-format
-msgid "%.1f TB"
-msgstr "%.1f TB"
+msgid "%.1f KB"
+msgstr "%.1f KB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2857
+#: glib/gutils.c:3219
#, c-format
-msgid "%.1f PB"
-msgstr "%.1f PB"
+msgid "%.1f MB"
+msgstr "%.1f MB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2859
+#: glib/gutils.c:3224
#, c-format
-msgid "%.1f EB"
-msgstr "%.1f EB"
+msgid "%.1f GB"
+msgstr "%.1f GB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2863
+#: glib/gutils.c:3229
#, c-format
-msgid "%.1f KiB"
-msgstr "%.1f KiB"
+msgid "%.1f TB"
+msgstr "%.1f TB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2865
+#: glib/gutils.c:3234
#, c-format
-msgid "%.1f MiB"
-msgstr "%.1f MiB"
+msgid "%.1f PB"
+msgstr "%.1f PB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2867
+#: glib/gutils.c:3239
#, c-format
-msgid "%.1f GiB"
-msgstr "%.1f GiB"
+msgid "%.1f EB"
+msgstr "%.1f EB"
+
+#, fuzzy
+#~| msgid "Use default permissions for the destination"
+#~ msgid "Use default file modification timestamps for the destination"
+#~ msgstr "Utilizează permisiunile implicite pentru destinație"
+
+#~ msgid "backtracking limit reached"
+#~ msgstr "s-a atins limita de backtracking"
+
+#~ msgid "GApplication options"
+#~ msgstr "Opțiuni GApplication"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2869
#, c-format
-msgid "%.1f TiB"
-msgstr "%.1f TiB"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "URI-ul fișierului local „%s” nu poate include un „#”"
+
+#~ msgid "internal error or corrupted object"
+#~ msgstr "eroare internă sau obiect corupt"
+
+#~ msgid "invalid combination of newline flags"
+#~ msgstr "combinație incorectă de indicatori de linie nouă"
+
+#~ msgid "short utf8"
+#~ msgstr "utf8 scurt"
+
+#~ msgid "unexpected repeat"
+#~ msgstr "repetare neașteptată"
+
+#~ msgid "failed to get memory"
+#~ msgstr "nu s-a putut aloca memoria"
+
+#~ msgid ") without opening ("
+#~ msgstr ") fără paranteza de deschidere ("
+
+#~ msgid "unrecognized character after (?<"
+#~ msgstr "caracter nerecunoscut după (?<"
+
+#~ msgid "(?R or (?[+-]digits must be followed by )"
+#~ msgstr "(?R sau (?[+-]digiți trebuie urmați de )"
+
+#~ msgid "invalid condition (?(0)"
+#~ msgstr "condiție nevalidă (?(0)"
+
+#~ msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
+#~ msgstr ""
+#~ "caracterele de eludare \\L, \\l, \\N{nume}, \\U, și \\u nu sunt suportate"
+
+#~ msgid "recursive call could loop indefinitely"
+#~ msgstr "apelul recursiv ar putea intra în buclă infinită"
+
+#~ msgid "digit expected after (?+"
+#~ msgstr "s-a așteptat o cifră după (?+"
+
+#~ msgid "] is an invalid data character in JavaScript compatibility mode"
+#~ msgstr ""
+#~ "] este un caracter de date nevalid în modul de compatibilitate JavaScript"
+
+#~ msgid "too many forward references"
+#~ msgstr "prea multe referințe de înaintare"
+
+#~ msgid "character value in \\u.... sequence is too large"
+#~ msgstr "valoarea caracterului în secvența \\u.... este prea mare"
+
+#~ msgid "PCRE library is compiled without UTF8 properties support"
+#~ msgstr "Biblioteca PCRE este compilată fără suport pentru proprietăți UTF-8"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2871
#, c-format
-msgid "%.1f PiB"
-msgstr "%.1f PiB"
+#~ msgid "Error while optimizing regular expression %s: %s"
+#~ msgstr "Eroare la optimizarea expresiei regulate %s: %s"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2873
#, c-format
-msgid "%.1f EiB"
-msgstr "%.1f EiB"
+#~ msgid "%.1f MB"
+#~ msgstr "%.1f MB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2877
#, c-format
-msgid "%.1f kb"
-msgstr "%.1f kb"
+#~ msgid "%.1f GB"
+#~ msgstr "%.1f GB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2879
#, c-format
-msgid "%.1f Mb"
-msgstr "%.1f Mb"
+#~ msgid "%.1f TB"
+#~ msgstr "%.1f TB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2881
#, c-format
-msgid "%.1f Gb"
-msgstr "%.1f Gb"
+#~ msgid "%.1f PB"
+#~ msgstr "%.1f PB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2883
#, c-format
-msgid "%.1f Tb"
-msgstr "%.1f Tb"
+#~ msgid "%.1f EB"
+#~ msgstr "%.1f EB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2885
#, c-format
-msgid "%.1f Pb"
-msgstr "%.1f Pb"
+#~ msgid "%.1f KiB"
+#~ msgstr "%.1f KiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2887
#, c-format
-msgid "%.1f Eb"
-msgstr "%.1f Eb"
+#~ msgid "%.1f MiB"
+#~ msgstr "%.1f MiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2891
#, c-format
-msgid "%.1f Kib"
-msgstr "%.1f Kib"
+#~ msgid "%.1f GiB"
+#~ msgstr "%.1f GiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2893
#, c-format
-msgid "%.1f Mib"
-msgstr "%.1f Mib"
+#~ msgid "%.1f TiB"
+#~ msgstr "%.1f TiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2895
#, c-format
-msgid "%.1f Gib"
-msgstr "%.1f Gib"
+#~ msgid "%.1f PiB"
+#~ msgstr "%.1f PiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2897
#, c-format
-msgid "%.1f Tib"
-msgstr "%.1f Tib"
+#~ msgid "%.1f EiB"
+#~ msgstr "%.1f EiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2899
#, c-format
-msgid "%.1f Pib"
-msgstr "%.1f Pib"
+#~ msgid "%.1f kb"
+#~ msgstr "%.1f kb"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2901
#, c-format
-msgid "%.1f Eib"
-msgstr "%.1f Eib"
+#~ msgid "%.1f Mb"
+#~ msgstr "%.1f Mb"
-#: glib/gutils.c:2935 glib/gutils.c:3052
#, c-format
-msgid "%u byte"
-msgid_plural "%u bytes"
-msgstr[0] "%u octet"
-msgstr[1] "%u octeți"
-msgstr[2] "%u de octeți"
+#~ msgid "%.1f Gb"
+#~ msgstr "%.1f Gb"
-#: glib/gutils.c:2939
#, c-format
-msgid "%u bit"
-msgid_plural "%u bits"
-msgstr[0] "%u bit"
-msgstr[1] "%u biți"
-msgstr[2] "%u de biți"
+#~ msgid "%.1f Tb"
+#~ msgstr "%.1f Tb"
-#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3006
#, c-format
-msgid "%s byte"
-msgid_plural "%s bytes"
-msgstr[0] "%s octet"
-msgstr[1] "%s octeți"
-msgstr[2] "%s de octeți"
+#~ msgid "%.1f Pb"
+#~ msgstr "%.1f Pb"
-#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3011
#, c-format
-msgid "%s bit"
-msgid_plural "%s bits"
-msgstr[0] "%s bit"
-msgstr[1] "%s biți"
-msgstr[2] "%s de biți"
+#~ msgid "%.1f Eb"
+#~ msgstr "%.1f Eb"
-#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
-#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
-#. * compatibility. Users will not see this string unless a program is using this deprecated function.
-#. * Please translate as literally as possible.
-#.
-#: glib/gutils.c:3065
#, c-format
-msgid "%.1f KB"
-msgstr "%.1f KB"
+#~ msgid "%.1f Kib"
+#~ msgstr "%.1f Kib"
-#: glib/gutils.c:3070
#, c-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
+#~ msgid "%.1f Mib"
+#~ msgstr "%.1f Mib"
-#: glib/gutils.c:3075
#, c-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
+#~ msgid "%.1f Gib"
+#~ msgstr "%.1f Gib"
-#: glib/gutils.c:3080
#, c-format
-msgid "%.1f TB"
-msgstr "%.1f TB"
+#~ msgid "%.1f Tib"
+#~ msgstr "%.1f Tib"
-#: glib/gutils.c:3085
#, c-format
-msgid "%.1f PB"
-msgstr "%.1f PB"
+#~ msgid "%.1f Pib"
+#~ msgstr "%.1f Pib"
-#: glib/gutils.c:3090
#, c-format
-msgid "%.1f EB"
-msgstr "%.1f EB"
+#~ msgid "%.1f Eib"
+#~ msgstr "%.1f Eib"
#~ msgid "Failed to redirect output or input of child process (%s)"
#~ msgstr "Nu s-a putut redirecta ieșirea sau inputul procesului copil (%s)"
diff --git a/po/ru.po b/po/ru.po
index 9f097fbc8..1dc4d396a 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -16,9 +16,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ru\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-05 19:22+0000\n"
-"PO-Revision-Date: 2022-08-05 23:07+0300\n"
-"Last-Translator: Aleksandr Melman <Alexmelman88@gmail.com>\n"
+"POT-Creation-Date: 2023-08-31 14:09+0000\n"
+"PO-Revision-Date: 2023-08-31 18:12+0300\n"
+"Last-Translator: Artur So <arturios2005@mail.ru>\n"
"Language-Team: Русский <gnome-cyr@gnome.org>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
@@ -26,47 +26,47 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Poedit 3.1\n"
+"X-Generator: Poedit 3.3.2\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Установка приложений по умолчанию пока не поддерживается"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Установка приложения как последнего использованного для типа файла, который "
"еще не поддерживается"
-#: gio/gappinfo.c:808
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "Не удалось найти приложение по умолчанию для типа содержимого '%s'"
-#: gio/gappinfo.c:868
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Не удалось найти приложение по умолчанию для схемы URI '%s'"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "Параметры GApplication"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "Параметры GApplication:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Показать параметры GApplication"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
"Запустить GApplication в режиме сервиса (использовать из сервисных файлов D-"
"Bus)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Переопределить идентификатор приложения"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Заменить запущенный экземпляр"
@@ -147,7 +147,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Идентификатор приложения в формате D-Bus (напр.: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "ФАЙЛ"
@@ -246,11 +246,11 @@ msgstr "невозможно подключиться к D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "ошибка отправки сообщения %s приложению: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "имя действия должно указываться после идентификатора приложения\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -259,25 +259,25 @@ msgstr ""
"недопустимое имя действия: «%s»\n"
"имя может состоять только из букв, цифр и символов «-» и «.»\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "ошибка разбора параметра действия: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "действия принимают максимум один параметр\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "команда list-actions принимает только идентификатор приложения"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "невозможно найти desktop-файл для приложения %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -287,9 +287,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Слишком большое значение количества передано в %s"
@@ -303,8 +303,8 @@ msgstr "Переход в базовом потоке не поддержива
msgid "Cannot truncate GBufferedInputStream"
msgstr "Нельзя усечь GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Поток уже закрыт"
@@ -312,7 +312,7 @@ msgstr "Поток уже закрыт"
msgid "Truncate not supported on base stream"
msgstr "Усечение не поддерживается в базовом потоке"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -331,28 +331,28 @@ msgid "Not enough space in destination"
msgstr "Недостаточно места в целевом расположении"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Недопустимая последовательность байтов во входных преобразуемых данных"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Произошла ошибка при преобразовании: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Прерываемая инициализация не поддерживается"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Преобразование из набора символов «%s» в «%s» не поддерживается"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Не удалось открыть преобразователь из «%s» в «%s»"
@@ -395,17 +395,17 @@ msgstr "Спуфинг учётных данных невозможен в эт
msgid "Unexpected early end-of-stream"
msgstr "Неожиданный ранний конец потока"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Неподдерживаемый ключ «%s» в элементе адреса «%s»"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Бессмысленная комбинация ключ/значение в элементе адреса «%s»"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -414,7 +414,7 @@ msgstr ""
"Неправильный адрес «%s» (требуется путь, временный каталог или один из "
"абстрактных ключей)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -545,7 +545,7 @@ msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
"Не удалось определить адрес сеансовой шины (не реализовано для этой ОС)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -554,7 +554,7 @@ msgstr ""
"Не удалось определить адрес шины из значения переменной окружения "
"DBUS_STARTER_BUS_TYPE — неизвестное значение «%s»"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -562,7 +562,7 @@ msgstr ""
"Не удалось определить адрес шины, т. к. значение переменной окружения "
"DBUS_STARTER_BUS_TYPE не установлено"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Неизвестный тип шины %d"
@@ -583,51 +583,55 @@ msgstr ""
"Перепробованы все доступные механизмы аутентификации (проведено: %s) "
"(доступно: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Неожиданное отсутствие содержимого при попытке прочитать байт"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Идентификаторы пользователя должны быть и на клиенте и на сервере"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Отменено через GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Ошибка при получении информации о каталоге «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr "Ошибочные права на каталог «%s». Ожидалось 0700, получено 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Произошла ошибка при создании каталога «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Действие не поддерживается"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Произошла ошибка при открытии связки ключей «%s» на чтение: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "Некорректная строка %d в связке ключей около «%s» с содержимым «%s»"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -635,7 +639,7 @@ msgstr ""
"Некорректная первая лексема в строке %d в связке ключей около «%s» с "
"содержимым «%s»"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -643,160 +647,168 @@ msgstr ""
"Некорректная вторая лексема в строке %d в связке ключей около «%s» с "
"содержимым «%s»"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Не удалось найти куки с идентификатором %d в связке ключей «%s»"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Произошла ошибка при создании файла блокировки «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Произошла ошибка при удалении устаревшего файла блокировки «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Произошла ошибка при закрытии (удалённого) файла блокировки «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Произошла ошибка при удалении файла блокировки «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Произошла ошибка при открытии связки ключей «%s» на запись: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Также, не удалось освободить блокировку для «%s»: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "Соединение закрыто"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Время ожидания истекло"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr "При создании клиентского соединения обнаружены неподдерживаемые флаги"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"Интерфейс «org.freedesktop.DBus.Properties» для пути %s объекта не найден"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Свойство «%s» отсутствует"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Свойство «%s» недоступно для чтения"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Свойство «%s» недоступно для записи"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr "Ошибка установки свойства «%s»: ожидался тип «%s», но получен «%s»"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Интерфейс «%s» отсутствует"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Интерфейс «%s» для пути %s объекта не найден"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Ключ «%s» отсутствует"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Тип сообщения «%s» не совпадает с ожидаемым типом «%s»"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Объект интерфейса %s уже экспортирован как %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Невозможно получить свойство %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Невозможно установить свойство %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Метод «%s» вернул тип «%s», но ожидалось «%s»"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Метод «%s» интерфейса «%s» с сигнатурой «%s» не существует"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Поддерево уже экспортировано для %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Объект по пути «%s» не существует"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "тип является НЕДОПУСТИМЫМ"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "Сообщение METHOD_CALL: отсутствует поле заголовка PATH или MEMBER"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"Сообщение METHOD_CALL: отсутствует или недопустимо поле заголовка PATH или "
+"MEMBER"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "Сообщение METHOD_RETURN: отсутствует поле заголовка REPLY_SERIAL"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"Сообщение METHOD_RETURN: отсутствует или недопустимо поле заголовка "
+"REPLY_SERIAL"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
msgstr ""
-"Сообщение ERROR: отсутствует поле заголовка REPLY_SERIAL или ERROR_NAME"
+"Сообщение ERROR: отсутствует или недопустимо поле заголовка REPLY_SERIAL или "
+"ERROR_NAME"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
msgstr ""
-"Сообщение SIGNAL: отсутствует поле заголовка PATH, INTERFACE или MEMBER"
+"Сообщение SIGNAL: отсутствует или недопустимо поле заголовка PATH, INTERFACE "
+"или MEMBER"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -804,7 +816,7 @@ msgstr ""
"Сообщение SIGNAL: поле заголовка PATH использует зарезервированное значение /"
"org/freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -812,7 +824,7 @@ msgstr ""
"Сообщение SIGNAL: поле заголовка INTERFACE использует зарезервированное "
"значение org.freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
@@ -820,12 +832,12 @@ msgstr[0] "Требовалось прочитать %lu байт, но проч
msgstr[1] "Требовалось прочитать %lu байта, но прочитано только %lu"
msgstr[2] "Требовалось прочитать %lu байт, но прочитано только %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Ожидался байт NUL после строки «%s», но найден байт %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -835,21 +847,21 @@ msgstr ""
"(смещение %d, длина строки %d). Корректная строка UTF-8 вплоть до тех байт: "
"«%s»"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Слишком глубокая иерархия"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Разобранное значение «%s» не является допустимым путём объекта D-Bus"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Разобранное значение «%s» не является допустимой подписью D-Bus"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -865,7 +877,7 @@ msgstr[2] ""
"Обнаружен массив длинной %u байт. Максимальная длина равна 2<<26 байт (64 "
"МиБ)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -874,24 +886,24 @@ msgstr ""
"Получен массив типа «a%c», который должен иметь размер кратный %u (байт), но "
"массив имеет длину %u (байт)"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Пустые структуры (записи) не допускаются в D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr ""
"Разобранное значение «%s» для варианта не является допустимой подписью D-Bus"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr ""
"Ошибка десериализации GVariant с типом строки «%s» из формата D-Bus wire"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -900,27 +912,27 @@ msgstr ""
"Неправильный порядок байтов в значении. Ожидался 0x6c ('l') или 0x42 ('B'), "
"но найдено значение 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Неправильный старший номер версии протокола. Ожидался 1, но найден %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Заголовок подписи найден, но его тип отличается от подписи"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr "Найден заголовок подписи с подписью «%s», но тело сообщения пусто"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr ""
"Разобранное значение «%s» не является допустимой подписью D-Bus (для тела)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -932,17 +944,17 @@ msgstr[1] ""
msgstr[2] ""
"Отсутствует заголовок подписи в сообщении, но тело сообщения занимает %u байт"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Не удалось выполнить извлечение сообщения: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr "Ошибка сериализации GVariant с типом строки «%s» в формат D-Bus wire"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
@@ -950,16 +962,16 @@ msgstr ""
"Количество дескрипторов файлов в сообщении (%d) отличается от указанного в "
"заголовке (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Не удалось сериализовать сообщение: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "Тело сообщения имеет подпись «%s», но нет заголовка подписи"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -968,53 +980,53 @@ msgstr ""
"Тело сообщения имеет тип подписи «%s», но значение подписи в поле заголовка "
"равно «%s»"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
"Тело сообщения пусто, но значение подписи в поле заголовка равно «(%s)»"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Возвращена ошибка с телом типа «%s»"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Возвращена ошибка с пустым телом"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Чтобы закрыть это окно, введите любой символ)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "Сеанс dbus не запущен, и автозапуск не выполнился"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Не удалось получить профиль аппаратуры: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Не удалось загрузить %s или %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Ошибка вызова StartServiceByName для %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Неожиданный ответ %d из метода StartServiceByName(«%s»)"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1023,25 +1035,25 @@ msgstr ""
"Не удалось вызвать метод; у прокси с хорошо известным именем %s нет "
"владельца и прокси создать с флагом G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Абстрактное пространство имён не поддерживается"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Не удалось задать nonce-файл при создании сервера"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Произошла ошибка при записи в nonce-файл у «%s»: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Строка «%s» не является допустимым D-Bus GUID"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Невозможно прослушивать неподдерживаемый транспорт «%s»"
@@ -1069,14 +1081,14 @@ msgstr ""
"\n"
"Для получения справки по команде используйте «%s КОМАНДА --help».\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Ошибка: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Произошла ошибка при разборе интроспекции XML: %s\n"
@@ -1086,50 +1098,50 @@ msgstr "Произошла ошибка при разборе интроспек
msgid "Error: %s is not a valid name\n"
msgstr "Ошибка: %s не является допустимым именем\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Ошибка: %s не является допустимым объектным путём\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Подключиться к системной шине"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Подключиться к пользовательской шине"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Подключиться к заданному адресу D-Bus"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Параметры оконечной точки соединения:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Параметры, определяющие оконечную точку соединения"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Оконечная точка соединения не указана"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Указано несколько оконечных точек соединения"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr ""
"Предупреждение: согласно данным интроспекции, интерфейс «%s» не существует\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1138,164 +1150,164 @@ msgstr ""
"Предупреждение: согласно данным интроспекции, метод «%s» в интерфейсе «%s» "
"не существует\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Необязательный получатель сигнала (уникальное имя)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Объектный путь, для выпуска сигнала"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Название сигнала и интерфейса"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Послать сигнал."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Произошла ошибка при соединении: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Ошибка: %s не является допустимым уникальным именем шины.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Ошибка: не указан объектный путь\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Ошибка: не указано имя сигнала\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Ошибка: неправильное имя сигнала «%s»\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Ошибка: %s не является допустимым именем интерфейса\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Ошибка: %s не является допустимым именем члена\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Произошла ошибка при разборе параметра %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Произошла ошибка при сбросе подключения: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Имя назначения, для которого вызывается метод"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Объектный путь, для которого вызывается метод"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Название метода или интерфейса"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Время ожидания в секундах"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Разрешить интерактивную авторизацию"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Вызывает метод на удалённом объекте."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Ошибка: не указано назначение\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Ошибка: %s не является допустимым именем шины\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Ошибка: не указано имя метода\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Ошибка: неправильное имя метода «%s»\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Произошла ошибка при разборе параметра %d типа «%s»: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Произошла ошибка при добавлении дескриптора %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Имя назначения для интроспекции"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Объектный путь для интроспекции"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Напечатать XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Интроспекция потомка"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Только свойства печати"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Выполнить интроспекцию удалённого объекта."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Имя назначения для наблюдения"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Объектный путь для наблюдения"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Наблюдать за удалённым объектом."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Ошибка: невозможно следить за соединением non-message-bus\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Сервис для активации перед ожиданием другого (хорошо известное имя)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1303,68 +1315,73 @@ msgstr ""
"Срок ожидание до выхода с ошибкой (секунды); 0 для бесконечности (по "
"умолчанию)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[ПАРАМЕТР…] ИМЯ-ШИНЫ"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Дождитесь появления имени шины."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Ошибка: должен быть указан сервис для активации.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Ошибка: должен быть указан сервис для ожидания.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Ошибка: слишком много аргументов.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Ошибка: %s не является допустимым известным именем шины\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Не вправе изменять настройки отладки"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5113
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Без имени"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "В desktop-файле не указано поле Exec"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Не удалось найти терминал, требуемый для приложения"
-#: gio/gdesktopappinfo.c:3631
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Программа '%s' не найдена в $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Не удалось создать пользовательскую папку настроек приложения %s: %s"
-#: gio/gdesktopappinfo.c:3635
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Не удалось создать пользовательскую папку настроек MIME %s: %s"
-#: gio/gdesktopappinfo.c:3877 gio/gdesktopappinfo.c:3901
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "В информации о приложении отсутствует идентификатор"
-#: gio/gdesktopappinfo.c:4137
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Не удалось создать пользовательский desktop-файл %s"
-#: gio/gdesktopappinfo.c:4273
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Особое определение для %s"
@@ -1433,79 +1450,84 @@ msgstr "Для GEmblemedIcon ожидается GEmblem"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Содержащая точка монтирования не существует"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Нельзя скопировать поверх каталога"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Нельзя скопировать каталог поверх каталога"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Целевой файл существует"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Не удалось рекурсивно скопировать каталог"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "Соединение не поддерживается"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Диапазон копируемых файлов не поддерживается"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Произошла ошибка при соединении файла: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Соединение не поддерживается"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr ""
"Копирование (reflink/clone) между точками монтирования не поддерживается"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Копирование (reflink/clone) не поддерживается или некорректно"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Копирование (reflink/clone) не поддерживается или не работает"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Нельзя скопировать специальный файл"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Дано неверное значение символьной ссылки"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Символьные ссылки не поддерживаются"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Корзина не поддерживается"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Имена файлов не могут содержать «%c»"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Не удалось создать временный каталог для шаблона \"%s\": %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "том не поддерживает присоединение"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Нет зарегистрированного приложения для обработки данного файла"
@@ -1514,11 +1536,11 @@ msgid "Enumerator is closed"
msgstr "Перечислитель закрыт"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Перечислитель файлов имеет незавершённое действие"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Перечислитель файлов уже закрыт"
@@ -1531,27 +1553,27 @@ msgstr "Не удалось обработать версию %d текстов
msgid "Malformed input data for GFileIcon"
msgstr "Некорректные входные данные для GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Поток не поддерживает query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Переход по потоку не поддерживается"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Усечение на входном потоке не разрешено"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Усечение не поддерживается на потоке"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Недопустимое имя узла"
@@ -1584,37 +1606,37 @@ msgstr "Ответ HTTP с прокси слишком большой"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "Cервер прокси HTTP неожиданно закрыл соединение."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Неверное число лексем (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Нет типа для класса с именем %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Тип %s не реализует интерфейс GIcon"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Тип %s не является классифицируемым"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Некорректный номер версии: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Тип %s не реализует from_tokens() интерфейса GIcon"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Не удалось обработать данную версию текстового представления значка"
@@ -1655,7 +1677,7 @@ msgstr "Входной поток не поддерживает чтение"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Поток имеет незавершённое действие"
@@ -1761,12 +1783,12 @@ msgid "Error writing to stdout"
msgstr "Ошибка при записи в stdout"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "РАСПОЛОЖЕНИЕ"
@@ -1784,8 +1806,8 @@ msgstr ""
"расположения вместо локальных файлов: например, вы можете использовать что-"
"то вроде smb://server/resource/file.txt в качестве расположения."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Не указаны адреса"
@@ -1882,57 +1904,64 @@ msgstr "Не переходить по символическим ссылкам
msgid "attributes:\n"
msgstr "атрибуты:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "отображаемое имя: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "редактируемое имя: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "имя: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "тип: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "размер: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "скрытый\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "локальный путь: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "подключения unix: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Устанавливаемые атрибуты:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Пространства имён записываемых атрибутов:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Показать информацию о расположениях."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1999,11 +2028,11 @@ msgstr "Вывести отображаемые имена"
msgid "Print full URIs"
msgstr "Выводить полные URI"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Показать содержимое адресов."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2206,19 +2235,19 @@ msgstr "Подключить скрытый том TCRYPT"
msgid "Mount a TCRYPT system volume"
msgstr "Подключить системный том TCRYPT"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Анонимный доступ запрещён"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Нет диска для файла устройства"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Нет тома для указанного идентификатора"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Подключить или отключить адреса."
@@ -2419,11 +2448,11 @@ msgstr "Указанное местоположение не начинаетс
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Следовать символическим ссылкам, точкам монтирования и ярлыкам"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Вывести содержимое каталогов в виде дерева."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Элемент <%s> не может быть внутри <%s>"
@@ -2480,7 +2509,7 @@ msgstr "Ошибка при сжатии файла %s"
msgid "text may not appear inside <%s>"
msgstr "текста не может быть внутри <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Показать версию программы и выйти"
@@ -2496,8 +2525,8 @@ msgstr ""
"Каталоги для загрузки файлов, указанных в параметре FILE (по умолчанию: "
"текущий каталог)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "КАТАЛОГ"
@@ -2553,7 +2582,7 @@ msgstr "Имя C-идентификатора, используемое для
msgid "The target C compiler (default: the CC environment variable)"
msgstr "Целевой компилятор языка C (по умолчанию: переменная окружения CC)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2563,122 +2592,122 @@ msgstr ""
"Файлы спецификации ресурсов имеют расширение .gresource.xml,\n"
"а файл ресурса имеет расширение .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Должно быть указано только одно имя имя файла\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "псевдоним должен содержать хотя бы два символа"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Неверное числовое значение"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> уже задан"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' уже задано"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "значение флага должно содержать хотя бы один установленный бит"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "В <%s> должно содержаться хотя бы одно значение <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> выходит за рамки указанного диапазона"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "Значение <%s> не входит в указанное перечисление"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> содержит строку в формате отличающимся от указанного флагом"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> содержит строку не входящую в <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> уже задан для данного ключа"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "Диапазон <range> не разрешён для ключей типа “%s”"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "Минимум, указанный в <range> превышает максимум"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "неподдерживаемая категория l10n: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "запрошен l10n, но домен gettext не указан"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "дан контекст перевода для значения без включённого l10n"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Не удалось разобрать значение <default> типа “%s”: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> не могут быть указаны для ключей обозначенных как перечисление"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> уже заданы для этого ключа"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> не разрешены для ключей типа “%s”"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> уже задано"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "Хотя бы одно значение <choice> должно содержаться в <choices>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> уже заданы для этого ключа"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2686,7 +2715,7 @@ msgstr ""
"<aliases> могут быть указаны только для перечислений, флагов или вслед за "
"<choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2695,41 +2724,41 @@ msgstr ""
"<alias value='%s'/> указан при том, что значение “%s” уже включено в "
"перечисление"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr "<alias value='%s'/> задан, когда <choice value='%s'/> уже был указан"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> уже задан"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "цель псевдонима «%s» не является перечислением"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "цель псевдонима «%s»не включена в <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> должны содержать хотя бы одно значение <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Пустые имена запрещены"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Неверное имя «%s»: имена должны начинаться со строчной буквы"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2738,36 +2767,36 @@ msgstr ""
"Неверное имя «%s»: неверный символ «%c»; допускаются только строчные буквы, "
"числа и дефис («-»)"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "Неверное имя «%s»: нельзя указывать два дефиса одновременно («--»)"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Неверное имя «%s»: последний символ не может быть дефисом («-»)."
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Неверное имя «%s»: максимальная длина равна 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name=«%s»> уже задан"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Не удалось добавить ключи в схему «list-of»"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name=«%s»> уже задан"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2776,7 +2805,7 @@ msgstr ""
"<key name=«%s»> оттеняет <key name=«%s»> в <schema id=«%s»>; для изменения "
"значения используйте <override>"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2784,56 +2813,56 @@ msgid ""
msgstr ""
"В качестве атрибута <key> можно указать только «type», «enum» или «flags»"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id=«%s»> не определён (пока)."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Недопустимая строка типа GVariant «%s»"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> указан, но схема ничего не расширяет"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Не задан <key name='%s'> для замещения"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> уже задан"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> уже задан"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> расширяет пока не существующую схему «%s»"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> является списком пока не существующей схемы «%s»"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Не может быть списком схемы с путём"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Не удалось расширить схему путём"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2841,7 +2870,7 @@ msgstr ""
"<schema id='%s'> является списком, расширяющим <schema id='%s'>, который не "
"является списком"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2850,19 +2879,19 @@ msgstr ""
"<schema id='%s' list-of='%s'> расширяет <schema id='%s' list-of='%s'>, но "
"«%s» не расширяет «%s»"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr ""
"Если указывается путь, то он должен начинаться и заканчиваться символом "
"косой черты"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Путь в списке должен заканчиваться «:/»"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2871,63 +2900,63 @@ msgstr ""
"Предупреждение: Схема «%s» содержит путь «%s». Пути, начинающиеся с «/"
"apps/», «/desktop/» или «/system/» являются устаревшими."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> уже задан"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Только один <%s> элемент может быть внутри <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Элемент <%s> не может быть самым верхним"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Элемент <default> требуется в <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Текст не может быть внутри <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Предупреждение: не определена ссылка на <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "Был указан параметр --strict; завершение работы."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Всё содержимое файла было проигнорировано."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Этот файл игнорируется."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
"override for this key."
msgstr "Ключ «%s» в схеме «%s» отсутствует, хотя указан в файле замен «%s»."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
"strict was specified; exiting."
msgstr "Ключ «%s» в схеме «%s» отсутствует, хотя указан в файле замен «%s»."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2936,7 +2965,7 @@ msgstr ""
"Не удаётся предоставить замену для локализованного ключа «%s» в схеме "
"«%s» (файл с определениями «%s»); переопределение ключа игнорируется."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2946,7 +2975,7 @@ msgstr ""
"«%s» (файл с определениями «%s»), Кроме того был указан параметр --strict. "
"Процесс прерван."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2955,7 +2984,7 @@ msgstr ""
"Ошибка разбора ключа «%s» в схеме «%s», которая определена в файле замен "
"«%s»: %s."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2964,7 +2993,7 @@ msgstr ""
"Ошибка разбора ключа «%s» в схеме «%s», которая определена в файле замен "
"«%s»: %s."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2973,7 +3002,7 @@ msgstr ""
"Замена ключа «%s» в схеме «%s» согласно файлу замен «%s» лежит вне диапазона "
"данной схемы."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2982,7 +3011,7 @@ msgstr ""
"Замена ключа «%s» в схеме «%s» согласно файлу замен «%s» лежит вне диапазона "
"данной схемы. Кроме того указан ключ --strict. Процесс прерван."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2991,7 +3020,7 @@ msgstr ""
"Замена ключа «%s» в схеме «%s» согласно файлу замен «%s» лежит вне списка "
"допустимых значений. Переопределение ключа игнорируется."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3000,23 +3029,23 @@ msgstr ""
"Замена ключа «%s» в схеме «%s» согласно файлу замен «%s» лежит вне списка "
"допустимых значений. Кроме того указан ключ --strict. Процесс прерван."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Место сохранения файла gschemas.compiled"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Останавливать работу при возникновении ошибок в схемах"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Не записывать файл gschema.compiled"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Не устанавливать ограничения на имя ключа"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3026,24 +3055,24 @@ msgstr ""
"Файлы схемы требуются для расширения .gschema.xml,\n"
"а файл кэша называется gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Должно быть указано только одно имя каталога"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Файлы схемы не найдены: процесс прерван."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "Не найден файл схемы: удалён существующий выходной файл."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Недопустимое имя файла %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Произошла ошибка при получении сведений о файловой системе %s: %s"
@@ -3052,264 +3081,264 @@ msgstr "Произошла ошибка при получении сведени
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Точка монтирования для файла %s не найдена"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Нельзя переименовать корневой каталог"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Произошла ошибка при переименовании файла %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Невозможно переименовать файл, имя файла уже существует"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Недопустимое имя файла"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Произошла ошибка открытия файла %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Произошла ошибка при удалении файла %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Произошла ошибка при удалении файла в корзину %s: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Не удалось создать каталог корзины %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Не удалось найти каталог верхнего уровня для корзины %s"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Удаление в корзину на системных томах не поддерживается"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Не удалось найти или создать каталог корзины %s для удаления %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Не удалось создать запись о файле в корзине %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr ""
"Не удалось удалить файл %s в корзину, из-за ограничений файловой системы"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Не удалось удалить файл в корзину %s: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Не удалось удалить файл в корзину %s"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Произошла ошибка при создании каталога %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Файловая система не поддерживает символьные ссылки"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Произошла ошибка при создании символьной ссылки %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Произошла ошибка при перемещении файла %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Нельзя переместить каталог поверх каталога"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Не удалось создать резервный файл"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Произошла ошибка при удалении целевого файла: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Перемещение между точками монтирования не поддерживается"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Не удалось определить использование диска %s: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Значение атрибута не должно быть NULL"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr ""
"Недопустимый тип атрибута ( ожидалась строка или недопустимое значение)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Недопустимое имя расширенного атрибута"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Произошла ошибка при установке расширенного атрибута «%s»: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (неверная кодировка)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Ошибка при получении информации о файле «%s»: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Ошибка при получении информации о файловом дескрипторе: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Неверный тип атрибута (ожидался uint32)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Неверный тип атрибута (ожидался uint64)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Неверный тип атрибута (ожидалась строка byte)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Не удалось установить права на символические ссылки"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Произошла ошибка при установке прав: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Произошла ошибка при установке владельца: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "символьная ссылка не должна быть NULL"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Произошла ошибка при установке символьной ссылки: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"Произошла ошибка при установке символьной ссылки: файл не является "
"символьной ссылкой"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr ""
"Дополнительные нано-секунды %d во временной метке UNIX %lld имеют "
"отрицательное значение"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"Дополнительные нано-секунды %d во временной метке UNIX %lld достигли одной "
"секунды"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "Временная метка UNIX %lld не помещается в 64 бита"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "Временная метка UNIX %lld не входит в диапазон, поддерживаемый Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Не удалось преобразовать имя файла «%s» в строку UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Не удалось открыть файл «%s»: ошибка Windows %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr ""
"Произошла ошибка при установке времени модификации или доступа файла «%s»: "
"%lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Произошла ошибка при установке времени модификации или доступа: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "Контекст SELinux не должен быть равен NULL"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "В этой системе не включён SELinux"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Произошла ошибка при установке контекста SELinux: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Установка атрибута %s не поддерживается"
@@ -3356,13 +3385,13 @@ msgstr "Произошла ошибка при создании резервно
msgid "Error renaming temporary file: %s"
msgstr "Произошла ошибка при переименовании временного файла: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Произошла ошибка при усечении файла: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Произошла ошибка при открытии файла «%s»: %s"
@@ -3379,7 +3408,7 @@ msgstr "Целевой файл не является обычным файло
msgid "The file was externally modified"
msgstr "Файл был изменён извне"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Произошла ошибка при удалении старого файла: %s"
@@ -3516,42 +3545,42 @@ msgstr "Версия NetworkManager слишком старая"
msgid "Output stream doesn’t implement write"
msgstr "Выходной поток не поддерживает запись"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Сумма массивов, переданных в «%s» слишком велика"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Исходный поток уже закрыт"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Неуказанный сбой поиска прокси-сервера"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Ошибка разрешения «%s»: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "«%s» не реализовано"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Недопустимый домен"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Ресурс из «%s» не существует"
@@ -3561,16 +3590,16 @@ msgstr "Ресурс из «%s» не существует"
msgid "The resource at “%s” failed to decompress"
msgstr "Не удалось распаковать ресурс из «%s»"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Файлы ресурсов нельзя переименовать"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "Ресурс из «%s» не является каталогом"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "По входному потоку перемещение не поддерживается"
@@ -3937,7 +3966,8 @@ msgstr "Недопустимый сокет, инициализация не у
msgid "Socket is already closed"
msgstr "Сокет уже закрыт"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "Превышено время ожидания ввода-вывода сокета"
@@ -3946,162 +3976,162 @@ msgstr "Превышено время ожидания ввода-вывода
msgid "creating GSocket from fd: %s"
msgstr "создаётся GSocket из fd: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Не удалось создать сокет: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Указано неизвестное семейство"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Указан неизвестный протокол"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr ""
"Невозможно использовать дейтаграммные операции на не-дейтаграммном сокете."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Невозможно использовать дейтаграммные операции на сокете с установленным "
"тайм-аутом."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "не удалось получить локальный адрес: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "не удалось получить удаленный адрес: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "не удалось слушать: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Произошла ошибка при связывании к адресу %s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Ошибка при вступлении в мультикастовую группу: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Ошибка при выходе из мультикастовой группы: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Отсутствует поддержка мультикаста по источнику"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Неподдерживаемое семейство сокетов"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "специфичный источник, не адрес IP4"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Имя интерфейса слишком длинное"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Интерфейс не найден: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Отсутствует поддержка IPv4 мультикаста по источнику"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Отсутствует поддержка IPv6 мультикаста по источнику"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Ошибка приёма подключения: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Выполняется соединение"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Не удалось получить ошибку ожидания: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Ошибка при получении данных: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Ошибка при отправлении данных: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Не удалось выключить сокет: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Произошла ошибка при закрытии сокета: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Ожидание состояния сокета: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Не удалось отправить сообщение: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Слишком большие массивы сообщения"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Произошла ошибка при отправлении сообщения: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage не поддерживается в Windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Произошла ошибка при получении сообщения: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Не удалось прочитать полномочия сокета: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials не реализован для данной ОС"
@@ -4225,7 +4255,7 @@ msgstr "Прокси SOCKSv5 не поддерживает предложенн
msgid "Unknown SOCKSv5 proxy error."
msgstr "Неизвестная ошибка прокси SOCKSv5."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "Не удалось создать канал для сообщения с процессом-потомком (%s)"
@@ -4240,46 +4270,46 @@ msgstr "Каналы не поддерживаются на этой платф
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Не удалось обработать версию %d текстового представления GThemedIcon"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Не найдено ни одного допустимого адреса"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Ошибка обратного разрешения «%s»: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Ошибка при разборе записи DNS %s: некорректный DNS-пакет"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Запись DNS с запрашиваемым типом «%s» отсутствует"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Временно невозможно разрешить «%s»"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Произошла ошибка разрешения «%s»"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Некорректный DNS-пакет"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Не удалось разобрать ответ DNS для \"%s\": "
@@ -4338,7 +4368,7 @@ msgstr "Введённый пароль неверен."
msgid "Sending FD is not supported"
msgstr "Отправка дескриптора файла не поддерживается"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
@@ -4346,11 +4376,11 @@ msgstr[0] "Ожидается 1 контрольное сообщение, по
msgstr[1] "Ожидается 1 контрольное сообщение, получено %d"
msgstr[2] "Ожидается 1 контрольное сообщение, получено %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Неожиданный тип вспомогательных данных"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
@@ -4358,41 +4388,41 @@ msgstr[0] "Ожидается один файловый дескриптор н
msgstr[1] "Ожидается один файловый дескриптор но получено %d\n"
msgstr[2] "Ожидается один файловый дескриптор но получено %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Получен недопустимый файловый дескриптор"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Получение дескриптора файла не поддерживается"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Произошла ошибка при отправлении мандата: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Произошла ошибка при проверке включения SO_PASSCRED для сокета: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Произошла ошибка при включении SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Ожидалось прочитать один байт идентификационной информации (credentials), но "
"не прочитано ни одного байта"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Контрольное сообщение не ожидалось, но получено %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Произошла ошибка при отключении SO_PASSCRED: %s"
@@ -4408,7 +4438,7 @@ msgstr "Ошибка при чтении из файлового дескрип
msgid "Error closing file descriptor: %s"
msgstr "Ошибка при закрытии файлового дескриптора: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Корень файловой системы"
@@ -4491,132 +4521,127 @@ msgstr "Запуск службы dbus"
msgid "Wrong args\n"
msgstr "Неверные параметры\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Неожиданный атрибут «%s» для элемента «%s»"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Не найден атрибут «%s» элемента «%s»"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Неожиданный тэг «%s», ожидался тэг «%s»"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Неожиданный тэг «%s» внутри «%s»"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Неверная дата и время ‘%s’ в файле закладок"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Не удалось найти допустимый файл закладок в каталогах поиска"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Закладка для ресурса URI «%s» уже существует"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Для ресурса URI «%s» закладок не найдено"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "В закладке на ресурс «%s» не определён тип MIME"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Отметка о приватности данных в закладке для URI «%s» не определена"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "В закладке для URI «%s» не определена группа"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Нет приложения с именем «%s», создавшего закладку для «%s»"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Не удалось дополнить строку выполнения «%s» с помощью URI «%s»"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Во входной строке для преобразования обнаружен неотображаемый символ"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr ""
"Неполная символьная последовательность содержится в конце входных данных"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Невозможно корректно преобразовать символ «%s» в символ из набора «%s»"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Байт со значением NUL во входных преобразуемых данных"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Байт со значением NUL в выходных преобразованных данных"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr ""
"URI «%s» не является абсолютным идентификатором при использовании схемы "
"«file»"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "Идентификатор URI локального файла «%s» не может включать символ «#»"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "Недопустимый URI «%s»"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Недопустимое имя узла в URI «%s»"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "URI «%s» содержит недопустимо экранированные символы"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Путь «%s» не является абсолютным"
@@ -5039,7 +5064,7 @@ msgstr "ПП (PM)"
msgid "Error opening directory “%s”: %s"
msgstr "Произошла ошибка при открытии каталога «%s»: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
@@ -5047,74 +5072,74 @@ msgstr[0] "Не удалось выделить %lu байт для чтения
msgstr[1] "Не удалось выделить %lu байта для чтения файла «%s»"
msgstr[2] "Не удалось выделить %lu байт для чтения файла «%s»"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Ошибка при чтении файла «%s»: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Файл «%s» слишком велик"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Не удалось прочитать из файла «%s»: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Не удалось открыть файл «%s»: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Не удалось получить атрибуты файла «%s»: сбой в функции fstat(): %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Не удалось открыть файл «%s»: сбой в функции fdopen(): %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr ""
"Не удалось переименовать файл «%s» в «%s»: сбой в функции g_rename(): %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Не удалось записать файл «%s»: сбой в функции write(): %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Не удалось записать файл «%s»: сбой в функции fsync(): %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Не удалось создать файл «%s»: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr ""
"Не удалось удалить существующий файл «%s»: сбой в функции g_unlink(): %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Шаблон «%s» недопустим: он не должен содержать «%s»"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Шаблон «%s» не содержит XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Не удалось прочитать символьную ссылку «%s»: %s"
@@ -5144,15 +5169,15 @@ msgstr ""
"Невозможно выполнить непосредственное чтение в функции "
"g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "В каталогах поиска не удалось найти допустимый файл ключей"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Не является обычным файлом"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5160,44 +5185,44 @@ msgstr ""
"Файл ключей содержит строку «%s», которая не является парой «ключ-значение», "
"группой или комментарием"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Недопустимое имя группы: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Файл ключей не начинается с группы"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Недопустимое имя ключа: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Файл ключей содержит неподдерживаемую кодировку «%s»"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Файл ключей не содержит группу «%s»"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Файл ключей не содержит ключа «%s» в группе «%s»"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
"Файл ключей содержит ключ «%s», значение которого «%s» не в кодировке UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
@@ -5205,7 +5230,7 @@ msgstr ""
"Файл ключей содержит ключ «%s», значение которого не удалось "
"интерпретировать."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5214,83 +5239,83 @@ msgstr ""
"Файл ключей содержит ключ «%s» в группе «%s», значение которого не удалось "
"интерпретировать."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Значение ключа «%s» в группе «%s» имеет значение «%s», но ожидалось %s"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4356
msgid "Key file contains escape character at end of line"
msgstr "Файл ключей содержит символ escape в конце строки"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4378
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Файл ключей содержит неверную экранирующую последовательность «%s»"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4530
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Не удалось преобразовать значение «%s» в число."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4544
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Целочисленное значение «%s» выходит за пределы"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4577
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Не удалось преобразовать «%s» в число с плавающей запятой."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4616
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Не удалось преобразовать «%s» в булево значение."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"Не удалось получить атрибуты файла «%s%s%s%s»: сбой в функции fstat(): %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Не удалось отобразить файл «%s%s%s%s»: сбой в функции mmap(): %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Не удалось открыть файл «%s»: сбой в функции open(): %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Ошибка в строке %d на символе %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr ""
"Недопустимый UTF-8 текст в имени — неправильная последовательность «%s»"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "Имя «%s» недопустимо"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "Имя «%s» недопустимо: «%c»"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Ошибка в строке %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5299,7 +5324,7 @@ msgstr ""
"Не удалось разобрать строку «%-.*s», которая должна быть числом внутри кода "
"символа (например &#234;) — возможно, число слишком велико"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5308,24 +5333,24 @@ msgstr ""
"Код символа не оканчивается точкой с запятой; похоже, символ «&» был "
"использован не для обозначения начала конструкции — экранируйте его как &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Код «%-.*s» не определяет допустимый символ"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Обнаружена пустая конструкция «&;»; допустимыми конструкциями являются: "
"&amp; &quot; &lt; &gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Имя сущности «%-.*s» неизвестно"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5334,11 +5359,11 @@ msgstr ""
"использован не для обозначения начала конструкции — экранируйте его как "
"«&amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Документ должен начинаться с элемента (например <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5347,7 +5372,7 @@ msgstr ""
"Символ «%s» является недопустимым после символа «<»; этот символ не может "
"начинать имя элемента"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5356,12 +5381,12 @@ msgstr ""
"Встретился лишний символ «%s», ожидался символ «>» для завершения пустого "
"элемента тэга «%s»"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Слишком много атрибутов для элемента «%s»"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5369,7 +5394,7 @@ msgstr ""
"Встретился лишний символ «%s», ожидался символ «=» после имени атрибута «%s» "
"элемента «%s»"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5380,7 +5405,7 @@ msgstr ""
"открывающего тэга элемента «%s», либо, возможно, атрибут; может быть, был "
"использован недопустимый символ в имени атрибута"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5389,7 +5414,7 @@ msgstr ""
"Встретился лишний символ «%s», ожидалась открывающая двойная кавычка после "
"знака равенства при присваивании значения атрибуту «%s» элемента «%s»"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5398,7 +5423,7 @@ msgstr ""
"Символ «%s» недопустим после символов «</»; символ «%s» не может начинать "
"имя элемента"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5407,27 +5432,27 @@ msgstr ""
"Символ «%s» недопустим после закрывающего элемента имени «%s»; допустимым "
"символом является «>»"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Элемент «%s» был закрыт, ни один элемент в настоящий момент не открыт"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr ""
"Элемент «%s» был закрыт, но открытым в настоящий момент является элемент «%s»"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Документ был пуст или содержал только пробелы"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr ""
"Документ неожиданно окончился сразу же после открывающей угловой скобки «<»"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5436,7 +5461,7 @@ msgstr ""
"Документ неожиданно окончился, когда ещё были открыты элементы — «%s» был "
"последним открытым элементом"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5444,19 +5469,19 @@ msgid ""
msgstr ""
"Документ неожиданно окончился, ожидалась закрывающая тэг <%s/> угловая скобка"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Документ неожиданно окончился внутри имени элемента"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Документ неожиданно окончился внутри имени атрибута"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Документ неожиданно окончился внутри открывающего элемент тэга."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5464,21 +5489,21 @@ msgstr ""
"Документ неожиданно окончился после знака равенства, следующего за именем "
"атрибута; значение атрибута не указано"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Документ неожиданно окончился внутри значения атрибута"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "Документ неожиданно окончился внутри тэга, закрывающего элемент «%s»"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr "Документ неожиданно окончился внутри закрывающего элемент тэга"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"Документ неожиданно окончился внутри комментария или инструкции обработки"
@@ -5542,188 +5567,184 @@ msgstr "Отсутствует аргумент для %s"
msgid "Unknown option %s"
msgstr "Неизвестный параметр %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "повреждённый объект"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "закончилась память"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "достигнут предел обратного хода"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "внутренняя ошибка"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr ""
"шаблон содержит элементы, которые не поддерживаются при поиске частичного "
"совпадения"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"условия в виде обратных ссылок при поиске частичного совпадения не "
"поддерживаются"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "достигнут предел рекурсии"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "неправильное смещение"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "зацикливание рекурсии"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "запрашивается режим согласования, который не был скомпилирован для JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "неизвестная ошибка"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ в конце шаблона"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c в конце шаблона"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "неопознанный символ следует за \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "числа в квантификаторе {} в неправильном порядке"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "слишком большое число в квантификаторе {}"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "отсутствует завершающая ] для класса символов"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "неверное экранирование в классе символов"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "диапазон в классе символов в неправильном порядке"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "нечего повторять"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "неопознанный символ после (? или (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "Именованные классы POSIX поддерживаются только внутри класса"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "Сортировочные элементы POSIX не поддерживаются"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "отсутствует завершающая )"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "ссылка на несуществующий подшаблон"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "отсутствует ) после комментария"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "слишком длинное регулярное выражение"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "ошибочное число или имя после (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "lookbehind-утверждение не имеет фиксированную длину"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "условная группа содержит более двух ветвей"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "ожидалось утверждение после (?("
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "номерная ссылка не может быть нулём"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "неизвестное имя класса POSIX"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
-msgstr "слишком большое значение символа в последовательности \\x{…}"
+msgstr "значение символа в последовательности \\x{...} слишком велико"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C запрещено в lookbehind-утверждениях"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "отсутствует завершающий символ в имени подшаблона"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "два именованных подшаблона имеют одинаковое имя"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "ошибочная последовательность \\P или \\p"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "неизвестное имя свойства после \\P или \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "имя подшаблона слишком длинное (не должно превышать 32 символа)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "слишком много именованных подшаблонов (не должно быть больше 10 000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "восьмеричное значение превышает \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "Группа DEFINE содержит более одной ветви"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "противоречивые параметры NEWLINE"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5731,122 +5752,122 @@ msgstr ""
"за \\g не следует имя или число в скобках, угловых скобках или кавычках, или "
"просто число"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "нельзя указать параметр для (*ACCEPT), (*FAIL) или (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "значение (*VERB) не распознано"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "слишком большое число"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "отсутствует имя подшаблона после (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr ""
"не допускаются использовать различные имена для подшаблонов с одинаковым "
"номером"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "для (*MARK) требуется параметр"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "за \\c должен быть символ ASCII"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr "за \\k не следует имя в скобках, угловых скобках или кавычках"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N в классе не поддерживается"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "слишком длинное имя в (*MARK), (*PRUNE), (*SKIP) или (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "переполнение кода"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "неопознанный символ после (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "переполнение рабочего пространства компиляции"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "не найден ранее проверенный подшаблон со ссылкой"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr ""
"Во время поиска совпадений с регулярным выражением %s возникла ошибка: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "Библиотека PCRE собрана без поддержки UTF-8"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "Библиотека PCRE собрана с несовместимыми параметрами"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr ""
"Произошла ошибка при компиляции регулярного выражения '%s' у символа с "
"номером %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "ожидалась шестнадцатеричная цифра или символ «}»"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "ожидалась шестнадцатеричная цифра"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "в символьной ссылке отсутствует «<»"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "незаконченная символьная ссылка"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "символьная ссылка нулевой длины"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "ожидалась цифра"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "недопустимая символьная ссылка"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "лишний «\\» в конце"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "неизвестная экранирующая последовательность"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr ""
@@ -5879,138 +5900,143 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Текст был пуст (или содержал только пробелы)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Не удалось прочитать данные из дочернего процесса (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Неожиданная ошибка при чтении данных из дочернего процесса (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Произошла неожиданная ошибка в функции waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Дочерний процесс завершился с кодом %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Дочерний процесс убит по сигналу %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Дочерний процесс остановлен по сигналу %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Дочерний процесс аварийно завершил работу"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Не удалось выполнить чтение из дочернего канала (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Не удалось запустить дочерний процесс \"%s\" (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Функция fork завершилась неудачно (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Не удалось сменить каталог на «%s» (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Не удалось выполнить дочерний процесс \"%s\" (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Не удалось открыть файл для изменения дескриптора файла (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Не удалось дублировать дескриптор файла для дочернего процесса (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "При создании дочернего процесса функция fork завершилась неудачно (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Не удалось закрыть дескриптор файла для дочернего процесса (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Произошла неизвестная ошибка при выполнении дочернего процесса «%s»"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
"Не удалось прочитать нужное количество данных из канала дочернего процесса "
"(%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Недопустимый аргумент источника FDs"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Не удалось прочитать данные из дочернего процесса"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Не удалось выполнить дочерний процесс (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Не удалось выполнить dup() в дочернем процессе (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Недопустимое имя программы: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Недопустимая строка в векторе аргументов под номером %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Недопустимая строка в окружении: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Недопустимый рабочий каталог: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Не удалось выполнить вспомогательную программу (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6018,228 +6044,228 @@ msgstr ""
"Произошла неожиданная ошибка в функции g_io_channel_win32_poll() при чтении "
"данных из процесса-потомка"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Пустая строка не является числом"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "«%s» не является числом со знаком"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Число «%s» is out of bounds [%s, %s]"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "«%s» не является числом без знака"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "Неверная %-кодировка в URI"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Недопустимый символ в URI"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Не UTF-8 символ в URI"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Недопустимый IPv6 адрес ‘%.*s’ в URI"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Недопустимый закодированный IP адрес ‘%.*s’ в URI"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Недопустимое интернациональное имя хоста ‘%.*s’ в URI"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Невозможно разобрать порт ‘%.*s’ в URI"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Порт ‘%.*s’ в URI выходит за разрешённые границы"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "Путь «%s» не является абсолютным URI"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "URI ‘%s’ не содержит имени или адреса сервера"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "URI не абсолютный, базовый адрес URI не указан"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Не хватает символа ‘=’ и значения параметра"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Не удалось выделить память"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Символ находится вне диапазона для UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr ""
"Во входной строке для преобразования обнаружена недопустимая "
"последовательность"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Символ находится вне диапазона для UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "кБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "МБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "ГБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "ТБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "ПБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "ЭБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "КиБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "МиБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "ГиБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "ТиБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "ПиБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "ЭиБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "кбит"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Мбит"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Гбит"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Тбит"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Пбит"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Эбит"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Кибит"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Мибит"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Гибит"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Тибит"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Пибит"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Эибит"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "байт"
msgstr[1] "байта"
msgstr[2] "байт"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "бит"
@@ -6248,7 +6274,7 @@ msgstr[2] "бит"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6256,7 +6282,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6264,7 +6290,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6273,14 +6299,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6289,7 +6315,7 @@ msgstr[1] "%s байта"
msgstr[2] "%s байт"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
@@ -6297,7 +6323,7 @@ msgstr[0] "%s бит"
msgstr[1] "%s бита"
msgstr[2] "%s бит"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6310,39 +6336,46 @@ msgstr[2] "%u байт"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f КБ"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f МБ"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f ГБ"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f ТБ"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f ПБ"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f ЭБ"
+#~ msgid "backtracking limit reached"
+#~ msgstr "достигнут предел обратного хода"
+
+#~ msgid "GApplication options"
+#~ msgstr "Параметры GApplication"
+
#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "редактируемое имя: %s\n"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr ""
+#~ "Идентификатор URI локального файла «%s» не может включать символ «#»"
#~ msgid "internal error or corrupted object"
#~ msgstr "внутренняя ошибка или повреждённый объект"
diff --git a/po/sk.po b/po/sk.po
index 747ad2715..8fe6e9d31 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -12,146 +12,171 @@ msgid ""
msgstr ""
"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2021-07-19 15:52+0000\n"
-"PO-Revision-Date: 2021-10-05 08:53+0200\n"
+"POT-Creation-Date: 2023-04-14 16:57+0000\n"
+"PO-Revision-Date: 2023-06-14 09:50-0400\n"
"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
"Language-Team: Slovak <gnome-sk-list@gnome.org>\n"
"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0\n"
-"X-Generator: Gtranslator 40.0\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
+"X-Generator: Poedit 3.3.1\n"
-#: gio/gapplication.c:500
+#: gio/gappinfo.c:339
+#, fuzzy
+#| msgid "Setting attribute %s not supported"
+msgid "Setting default applications not supported yet"
+msgstr "Nastavovanie atribútu %s nie je podporované"
+
+#: gio/gappinfo.c:372
+#, fuzzy
+#| msgid "Setting attribute %s not supported"
+msgid "Setting application as last used for type not supported yet"
+msgstr "Nastavovanie atribútu %s nie je podporované"
+
+#: gio/gappinfo.c:814
+#, fuzzy, c-format
+#| msgid "No default applications for “%s”\n"
+msgid "Failed to find default application for content type ‘%s’"
+msgstr "Žiadne predvolené aplikácie pre „%s“\n"
+
+#: gio/gappinfo.c:874
+#, fuzzy, c-format
+#| msgid "No default applications for “%s”\n"
+msgid "Failed to find default application for URI Scheme ‘%s’"
+msgstr "Žiadne predvolené aplikácie pre „%s“\n"
+
+#: gio/gapplication.c:502
msgid "GApplication options"
msgstr "Voľby GApplication"
-#: gio/gapplication.c:500
+#: gio/gapplication.c:502
msgid "Show GApplication options"
msgstr "Zobrazí voľby GApplication"
-#: gio/gapplication.c:545
+#: gio/gapplication.c:547
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
"Vstúpi do režimu služby GApplication (použije súbory zo služby zbernice D-"
"Bus)"
-#: gio/gapplication.c:557
+#: gio/gapplication.c:559
msgid "Override the application’s ID"
msgstr "Preváži ID aplikácie"
-#: gio/gapplication.c:569
+#: gio/gapplication.c:571
msgid "Replace the running instance"
msgstr "Nahradí spustenú inštanciu"
-#: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:494 gio/gsettings-tool.c:572
+#: gio/gapplication-tool.c:47 gio/gapplication-tool.c:48 gio/gio-tool.c:229
+#: gio/gresource-tool.c:496 gio/gsettings-tool.c:586
msgid "Print help"
msgstr "Zobrazí pomocníka"
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:495 gio/gresource-tool.c:563
+#: gio/gapplication-tool.c:49 gio/gresource-tool.c:497 gio/gresource-tool.c:565
msgid "[COMMAND]"
msgstr "[PRÍKAZ]"
-#: gio/gapplication-tool.c:49 gio/gio-tool.c:228
+#: gio/gapplication-tool.c:51 gio/gio-tool.c:230
msgid "Print version"
msgstr "Vypíše verziu"
# MČ: „Vypíše …“, podobne ako nasledujúce reťazce.
-#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:578
+#: gio/gapplication-tool.c:52 gio/gsettings-tool.c:592
msgid "Print version information and exit"
msgstr "Vypíše informácie o verzii a skončí"
-#: gio/gapplication-tool.c:53
+#: gio/gapplication-tool.c:55
msgid "List applications"
msgstr "Vypíše zoznam aplikácií"
-#: gio/gapplication-tool.c:54
+#: gio/gapplication-tool.c:56
msgid "List the installed D-Bus activatable applications (by .desktop files)"
msgstr ""
"Vypíše zoznam nainštalovaných aplikácií aktivovateľných zbernicou D-Bus "
"(podľa súborov typu .desktop)"
# cmd desc
-#: gio/gapplication-tool.c:57
+#: gio/gapplication-tool.c:59
msgid "Launch an application"
msgstr "Spustí aplikáciu"
-#: gio/gapplication-tool.c:58
+#: gio/gapplication-tool.c:60
msgid "Launch the application (with optional files to open)"
msgstr "Spustí aplikáciu (s voliteľnými súbormi na otvorenie)"
-#: gio/gapplication-tool.c:59
+#: gio/gapplication-tool.c:61
msgid "APPID [FILE…]"
msgstr "IDAPLIKÁCIE [SÚBOR…]"
-#: gio/gapplication-tool.c:61
+#: gio/gapplication-tool.c:63
msgid "Activate an action"
msgstr "Aktivuje akciu"
-#: gio/gapplication-tool.c:62
+#: gio/gapplication-tool.c:64
msgid "Invoke an action on the application"
msgstr "Vyvolá akciu na aplikácii"
-#: gio/gapplication-tool.c:63
+#: gio/gapplication-tool.c:65
msgid "APPID ACTION [PARAMETER]"
msgstr "IDAPLIKÁCIE AKCIA [PARAMETER]"
-#: gio/gapplication-tool.c:65
+#: gio/gapplication-tool.c:67
msgid "List available actions"
msgstr "Vypíše zoznam dostupných akcií"
-#: gio/gapplication-tool.c:66
+#: gio/gapplication-tool.c:68
msgid "List static actions for an application (from .desktop file)"
msgstr "Vypíše zoznam statických akcií pre aplikáciu (zo súboru typu .desktop)"
-#: gio/gapplication-tool.c:67 gio/gapplication-tool.c:73
+#: gio/gapplication-tool.c:69 gio/gapplication-tool.c:75
msgid "APPID"
msgstr "IDAPLIKÁCIE"
-#: gio/gapplication-tool.c:72 gio/gapplication-tool.c:135 gio/gdbus-tool.c:106
-#: gio/gio-tool.c:224
+#: gio/gapplication-tool.c:74 gio/gapplication-tool.c:137 gio/gdbus-tool.c:108
+#: gio/gio-tool.c:226
msgid "COMMAND"
msgstr "PRÍKAZ"
-#: gio/gapplication-tool.c:72
+#: gio/gapplication-tool.c:74
msgid "The command to print detailed help for"
msgstr "Príkaz, pre ktorý sa má vypísať podrobný pomocník"
-#: gio/gapplication-tool.c:73
+#: gio/gapplication-tool.c:75
msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr ""
"Identifikátor aplikácie vo formáte zbernice D-Bus (napr.: org.príklad.viewer)"
-#: gio/gapplication-tool.c:74 gio/glib-compile-resources.c:738
-#: gio/glib-compile-resources.c:744 gio/glib-compile-resources.c:772
-#: gio/gresource-tool.c:501 gio/gresource-tool.c:567
+#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "SÚBOR"
-#: gio/gapplication-tool.c:74
+#: gio/gapplication-tool.c:76
msgid "Optional relative or absolute filenames, or URIs to open"
msgstr ""
"Voliteľné relatívne alebo absolútne názvy súborov, alebo URI na otvorenie"
-#: gio/gapplication-tool.c:75
+#: gio/gapplication-tool.c:77
msgid "ACTION"
msgstr "AKCIA"
-#: gio/gapplication-tool.c:75
+#: gio/gapplication-tool.c:77
msgid "The action name to invoke"
msgstr "Názov akcie na vyvolanie"
-#: gio/gapplication-tool.c:76
+#: gio/gapplication-tool.c:78
msgid "PARAMETER"
msgstr "PARAMETER"
-#: gio/gapplication-tool.c:76
+#: gio/gapplication-tool.c:78
msgid "Optional parameter to the action invocation, in GVariant format"
msgstr "Voliteľný parameter pre vyvolanie akcie vo formáte GVariant"
-#: gio/gapplication-tool.c:98 gio/gresource-tool.c:532 gio/gsettings-tool.c:664
+#: gio/gapplication-tool.c:100 gio/gresource-tool.c:534
+#: gio/gsettings-tool.c:678
#, c-format
msgid ""
"Unknown command %s\n"
@@ -160,26 +185,26 @@ msgstr ""
"Neznámy príkaz %s\n"
"\n"
-#: gio/gapplication-tool.c:103
+#: gio/gapplication-tool.c:105
msgid "Usage:\n"
msgstr "Použitie:\n"
-#: gio/gapplication-tool.c:116 gio/gresource-tool.c:557
-#: gio/gsettings-tool.c:699
+#: gio/gapplication-tool.c:118 gio/gresource-tool.c:559
+#: gio/gsettings-tool.c:713
msgid "Arguments:\n"
msgstr "Parametre:\n"
-#: gio/gapplication-tool.c:135 gio/gio-tool.c:224
+#: gio/gapplication-tool.c:137 gio/gio-tool.c:226
msgid "[ARGS…]"
msgstr "[PARAMETRE…]"
-#: gio/gapplication-tool.c:136
+#: gio/gapplication-tool.c:138
#, c-format
msgid "Commands:\n"
msgstr "Príkazy:\n"
#. Translators: do not translate 'help', but please translate 'COMMAND'.
-#: gio/gapplication-tool.c:148
+#: gio/gapplication-tool.c:150
#, c-format
msgid ""
"Use “%s help COMMAND” to get detailed help.\n"
@@ -188,7 +213,7 @@ msgstr ""
"Na získanie podrobnejšieho pomocníka, použite „%s help PRÍKAZ“.\n"
"\n"
-#: gio/gapplication-tool.c:167
+#: gio/gapplication-tool.c:169
#, c-format
msgid ""
"%s command requires an application id to directly follow\n"
@@ -197,13 +222,13 @@ msgstr ""
"príkaz %s vyžaduje, aby ihneď po ňom nasledoval identifikátor aplikácie\n"
"\n"
-#: gio/gapplication-tool.c:173
+#: gio/gapplication-tool.c:175
#, c-format
msgid "invalid application id: “%s”\n"
msgstr "neplatný identifikátor aplikácie: „%s“\n"
#. Translators: %s is replaced with a command name like 'list-actions'
-#: gio/gapplication-tool.c:184
+#: gio/gapplication-tool.c:186
#, c-format
msgid ""
"“%s” takes no arguments\n"
@@ -212,21 +237,21 @@ msgstr ""
"Príkaz „%s“ sa nedá použiť so žiadnymi parametrami\n"
"\n"
-#: gio/gapplication-tool.c:268
+#: gio/gapplication-tool.c:270
#, c-format
msgid "unable to connect to D-Bus: %s\n"
msgstr "nepodarilo sa pripojiť k zbernici D-Bus: %s\n"
-#: gio/gapplication-tool.c:288
+#: gio/gapplication-tool.c:290
#, c-format
msgid "error sending %s message to application: %s\n"
msgstr "chyba pri odosielaní správy %s aplikácii: %s\n"
-#: gio/gapplication-tool.c:319
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "názov akcie musí byť zadaný po identifikátore aplikácie\n"
-#: gio/gapplication-tool.c:327
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -235,25 +260,25 @@ msgstr ""
"neplatný názov akcie: „%s“\n"
"názvy akcií musia pozostávať iba zo znakov, číslic, „-“ a „.“\n"
-#: gio/gapplication-tool.c:346
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "chyba pri spracovaní parametra akcie: %s\n"
-#: gio/gapplication-tool.c:358
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "akcie prijímajú maximálne jeden parameter\n"
-#: gio/gapplication-tool.c:413
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "príkaz list-actions sa dá použiť iba s identifikátorom aplikácie"
-#: gio/gapplication-tool.c:423
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "nepodarilo sa nájsť súbor desktop pre aplikáciu %s\n"
-#: gio/gapplication-tool.c:468
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -262,131 +287,128 @@ msgstr ""
"nerozpoznaný príkaz: %s\n"
"\n"
-#: gio/gbufferedinputstream.c:420 gio/gbufferedinputstream.c:498
-#: gio/ginputstream.c:179 gio/ginputstream.c:379 gio/ginputstream.c:648
-#: gio/ginputstream.c:1050 gio/goutputstream.c:223 gio/goutputstream.c:1049
-#: gio/gpollableinputstream.c:205 gio/gpollableoutputstream.c:277
+#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
+#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Príliš vysoký počet hodnôt predaný do %s"
-#: gio/gbufferedinputstream.c:891 gio/gbufferedoutputstream.c:575
-#: gio/gdataoutputstream.c:562
+#: gio/gbufferedinputstream.c:893 gio/gbufferedoutputstream.c:577
+#: gio/gdataoutputstream.c:564
msgid "Seek not supported on base stream"
msgstr "Presúvanie v základnom prúde nie je podporované"
-#: gio/gbufferedinputstream.c:938
+#: gio/gbufferedinputstream.c:940
msgid "Cannot truncate GBufferedInputStream"
msgstr "GBufferedInputStream sa nedá skrátiť"
-#: gio/gbufferedinputstream.c:983 gio/ginputstream.c:1239 gio/giostream.c:300
-#: gio/goutputstream.c:2198
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
+#: gio/goutputstream.c:2200
msgid "Stream is already closed"
msgstr "Prúd je už zatvorený"
-#: gio/gbufferedoutputstream.c:612 gio/gdataoutputstream.c:592
+#: gio/gbufferedoutputstream.c:614 gio/gdataoutputstream.c:594
msgid "Truncate not supported on base stream"
msgstr "Skrátenie nie je v základnom prúde podporované"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1872 gio/gdbusprivate.c:1416
-#: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1865 gio/gdbusprivate.c:1420
+#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
msgstr "Operácia bola zrušená"
-#: gio/gcharsetconverter.c:260
+#: gio/gcharsetconverter.c:262
msgid "Invalid object, not initialized"
msgstr "Neplatný objekt, neinicializované"
-#: gio/gcharsetconverter.c:281 gio/gcharsetconverter.c:309
+#: gio/gcharsetconverter.c:283 gio/gcharsetconverter.c:311
msgid "Incomplete multibyte sequence in input"
msgstr "Neúplná viacbajtová sekvencia na vstupe"
-#: gio/gcharsetconverter.c:315 gio/gcharsetconverter.c:324
+#: gio/gcharsetconverter.c:317 gio/gcharsetconverter.c:326
msgid "Not enough space in destination"
msgstr "Nedostatok miesta v cieli"
-#: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1266 glib/gconvert.c:449 glib/gconvert.c:879
-#: glib/giochannel.c:1573 glib/giochannel.c:1615 glib/giochannel.c:2470
-#: glib/gutf8.c:875 glib/gutf8.c:1328
+#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:892 glib/gutf8.c:1346
msgid "Invalid byte sequence in conversion input"
msgstr "Neplatná sekvencia bajtov na vstupe prevodu"
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:457 glib/gconvert.c:793
-#: glib/giochannel.c:1580 glib/giochannel.c:2482
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Chyba počas prevodu: %s"
-#: gio/gcharsetconverter.c:445 gio/gsocket.c:1143
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
msgid "Cancellable initialization not supported"
msgstr "Zrušiteľná inicializácia nie je podporovaná"
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:322 glib/giochannel.c:1401
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Prevod zo znakovej sady „%s“ do „%s“ nie je podporovaný"
-#: gio/gcharsetconverter.c:460 glib/gconvert.c:326
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Nepodarilo sa otvoriť program na prevod z „%s“ do „%s“"
-#: gio/gcontenttype.c:454
+#: gio/gcontenttype.c:472
#, c-format
msgid "%s type"
msgstr "typ %s"
-#: gio/gcontenttype-win32.c:192
+#: gio/gcontenttype-win32.c:198
msgid "Unknown type"
msgstr "Neznámy typ"
-#: gio/gcontenttype-win32.c:194
+#: gio/gcontenttype-win32.c:200
#, c-format
msgid "%s filetype"
msgstr "typ súboru %s"
-#: gio/gcredentials.c:323
+#: gio/gcredentials.c:337
msgid "GCredentials contains invalid data"
msgstr "GCredentials obsahuje neplatné údaje"
-#: gio/gcredentials.c:383 gio/gcredentials.c:667
+#: gio/gcredentials.c:397 gio/gcredentials.c:688
msgid "GCredentials is not implemented on this OS"
msgstr "GCredentials nie je implementované v tomto operačnom systéme"
-#: gio/gcredentials.c:538 gio/gcredentials.c:556
+#: gio/gcredentials.c:552 gio/gcredentials.c:570
msgid "There is no GCredentials support for your platform"
msgstr "Neexistuje podpora GCredentials pre vašu platformu"
-#: gio/gcredentials.c:607
+#: gio/gcredentials.c:628
msgid "GCredentials does not contain a process ID on this OS"
msgstr ""
"GCredentials neobsahuje identifikátor procesu v tomto operačnom systéme"
-#: gio/gcredentials.c:661
+#: gio/gcredentials.c:682
msgid "Credentials spoofing is not possible on this OS"
msgstr "Zmena poverení nie je možná v tomto operačnom systéme"
-#: gio/gdatainputstream.c:304
+#: gio/gdatainputstream.c:306
msgid "Unexpected early end-of-stream"
msgstr "Neočakávane skorý koniec prúdu"
-#: gio/gdbusaddress.c:159 gio/gdbusaddress.c:233 gio/gdbusaddress.c:322
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Nepodporovaný kľúč „%s“ v položke adresy „%s“"
-#: gio/gdbusaddress.c:172
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Nezmyselná kombinácia kľúč/hodnota v položke adresy „%s“"
-#: gio/gdbusaddress.c:181
+#: gio/gdbusaddress.c:190
#, c-format
-#| msgid ""
-#| "Address “%s” is invalid (need exactly one of path, tmpdir or abstract "
-#| "keys)"
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
"keys)"
@@ -394,46 +416,43 @@ msgstr ""
"Adresa „%s“ je neplatná (je potrebný práve jeden kľúč path, dir, tmpdir "
"alebo abstract)"
-#: gio/gdbusaddress.c:248 gio/gdbusaddress.c:259 gio/gdbusaddress.c:274
-#: gio/gdbusaddress.c:337 gio/gdbusaddress.c:348
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
+#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
msgstr "Chyba v adrese „%s“ — atribút „%s“ má zlý formát"
# first is transport name
-#: gio/gdbusaddress.c:418 gio/gdbusaddress.c:682
+#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:682
#, c-format
msgid "Unknown or unsupported transport “%s” for address “%s”"
msgstr "Neznámy alebo nepodporovaný transport typu „%s“ pre adresu „%s“"
-#: gio/gdbusaddress.c:462
+#: gio/gdbusaddress.c:467
#, c-format
msgid "Address element “%s” does not contain a colon (:)"
msgstr "Prvok adresy „%s“ neobsahuje dvojbodku (:)"
-#: gio/gdbusaddress.c:471
+#: gio/gdbusaddress.c:476
#, c-format
msgid "Transport name in address element “%s” must not be empty"
msgstr ""
-#: gio/gdbusaddress.c:492
+#: gio/gdbusaddress.c:497
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
"sign"
msgstr "Pár kľúč/hodnota %d, „%s“ v prvku adresy „%s“ neobsahuje znak rovnosti"
-#: gio/gdbusaddress.c:503
+#: gio/gdbusaddress.c:508
#, c-format
-#| msgid ""
-#| "Key/Value pair %d, “%s”, in address element “%s” does not contain an "
-#| "equal sign"
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
msgstr ""
"Pár kľúč/hodnota %d, „%s“ v prvku adresy „%s“ nemôže obsahovať prázdny kľúč"
-#: gio/gdbusaddress.c:517
+#: gio/gdbusaddress.c:522
#, c-format
msgid ""
"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
@@ -442,7 +461,7 @@ msgstr ""
"Chyba kľúča alebo hodnoty s nahradenými špeciálne uvedenými sekvenciami v "
"páre kľúč/hodnota %d, „%s“ v prvku adresy „%s“"
-#: gio/gdbusaddress.c:589
+#: gio/gdbusaddress.c:590
#, c-format
msgid ""
"Error in address “%s” — the unix transport requires exactly one of the keys "
@@ -499,8 +518,9 @@ msgstr "Daná adresa je prázdna"
# MČ: Komentár v kóde: /* Don't run binaries as root if we're setuid. */
# MČ: v tomto prípade „spawn“ znamená: Spustí a posiela dáta, cez stdin a očakáva dáta cez stdout, takže by som skôr dal spustiť.
#: gio/gdbusaddress.c:1101
-#, c-format
-msgid "Cannot spawn a message bus when setuid"
+#, fuzzy, c-format
+#| msgid "Cannot spawn a message bus when setuid"
+msgid "Cannot spawn a message bus when AT_SECURE is set"
msgstr "Zbernica správ sa nedá spustiť pri setuid"
# MČ: v tomto prípade „spawn“ znamená: Spustí a posiela dáta, cez stdin a očakáva dáta cez stdout, takže by som skôr dal spustiť.
@@ -527,7 +547,7 @@ msgstr ""
"Nedá sa určiť adresa relačnej zbernice (nie je implementovaná pre tento "
"operačný systém)"
-#: gio/gdbusaddress.c:1397 gio/gdbusconnection.c:7261
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7324
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -536,7 +556,7 @@ msgstr ""
"Nedá sa určiť adresa zbernice z premennej prostredia DBUS_STARTER_BUS_TYPE — "
"neznáma hodnota „%s“"
-#: gio/gdbusaddress.c:1406 gio/gdbusconnection.c:7270
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7333
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -544,7 +564,7 @@ msgstr ""
"Nedá sa určiť adresa zbernice, pretože premenná prostredia "
"DBUS_STARTER_BUS_TYPE nie je nastavená"
-#: gio/gdbusaddress.c:1416
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Neznámy typ zbernice %d"
@@ -565,20 +585,26 @@ msgstr ""
"Vyčerpané všetky dostupné mechanizmy overenia totožnosti (pokusy: %s) "
"(dostupné: %s)"
-#: gio/gdbusauth.c:1171
+#: gio/gdbusauth.c:1045
+#, fuzzy
+#| msgid "Unexpected lack of content trying to read a line"
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Nečakaný nedostatok obsahu pri pokuse čítať riadok"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Identifikátory používateľa musia byť rovnaké pre partnera a server"
-#: gio/gdbusauth.c:1183
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Zrušené cez GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:298
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Chyba pri získavaní informácií pre adresár „%s“: %s"
-#: gio/gdbusauthmechanismsha1.c:313
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -586,27 +612,27 @@ msgstr ""
"Oprávnenia k adresáru „%s“ sú zle formátované. Očakávaný režim 0700, získaný "
"0%o"
-#: gio/gdbusauthmechanismsha1.c:346 gio/gdbusauthmechanismsha1.c:357
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Chyba pri vytváraní adresára %s: %s"
-#: gio/gdbusauthmechanismsha1.c:359 gio/gfile.c:1062 gio/gfile.c:1300
-#: gio/gfile.c:1438 gio/gfile.c:1676 gio/gfile.c:1731 gio/gfile.c:1789
-#: gio/gfile.c:1873 gio/gfile.c:1930 gio/gfile.c:1994 gio/gfile.c:2049
-#: gio/gfile.c:3754 gio/gfile.c:3809 gio/gfile.c:4102 gio/gfile.c:4572
-#: gio/gfile.c:4983 gio/gfile.c:5068 gio/gfile.c:5158 gio/gfile.c:5255
-#: gio/gfile.c:5342 gio/gfile.c:5443 gio/gfile.c:8153 gio/gfile.c:8243
-#: gio/gfile.c:8327 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1095 gio/gfile.c:1333
+#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
+#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
+#: gio/gfile.c:3797 gio/gfile.c:3937 gio/gfile.c:4349 gio/gfile.c:4819
+#: gio/gfile.c:5230 gio/gfile.c:5315 gio/gfile.c:5405 gio/gfile.c:5502
+#: gio/gfile.c:5589 gio/gfile.c:5690 gio/gfile.c:8819 gio/gfile.c:8909
+#: gio/gfile.c:8993 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Nepodporovaná operácia"
-#: gio/gdbusauthmechanismsha1.c:402
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Chyba pri otváraní zväzku kľúčov „%s“ na čítanie: "
-#: gio/gdbusauthmechanismsha1.c:425 gio/gdbusauthmechanismsha1.c:747
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "Riadok č. %d zväzku kľúčov na „%s“ s obsahom „%s“ je zle formátovaný"
@@ -614,7 +640,7 @@ msgstr "Riadok č. %d zväzku kľúčov na „%s“ s obsahom „%s“ je zle fo
# PK: token nie je nejaky znak? viacX
# PM: token je napríklad "%s" ide o znaky ktoré môžu byt nahradené nejakým textom napr %u - meno používateľa
# PK: token by mal byt string
-#: gio/gdbusauthmechanismsha1.c:439 gio/gdbusauthmechanismsha1.c:761
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -622,7 +648,7 @@ msgstr ""
"Prvý token riadka č. %d zväzku kľúčov na „%s“ s obsahom „%s“ je zle "
"formátovaný"
-#: gio/gdbusauthmechanismsha1.c:453 gio/gdbusauthmechanismsha1.c:775
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -630,122 +656,122 @@ msgstr ""
"Druhý token riadka č. %d zväzku kľúčov na „%s“ s obsahom „%s“ je zle "
"formátovaný"
-#: gio/gdbusauthmechanismsha1.c:477
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Nenašlo sa cookie s identifikátorom %d vo zväzku kľúčov na „%s“"
-#: gio/gdbusauthmechanismsha1.c:523
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Chyba pri vytváraní súboru uzamknutia „%s“: %s"
-#: gio/gdbusauthmechanismsha1.c:587
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Chyba pri odstraňovaní starého súboru uzamknutia „%s“: %s"
# PM: Je to súbor určený na vymazanie ale vymaže sa až vtedy, keď ho zatvorí posledný, kto ho má otvorený
-#: gio/gdbusauthmechanismsha1.c:626
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Chyba pri zatváraní (vymazávaného) súboru uzamknutia „%s“: %s"
-#: gio/gdbusauthmechanismsha1.c:637
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Chyba pri mazaní súboru uzamknutia „%s“: %s"
-#: gio/gdbusauthmechanismsha1.c:714
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Chyba pri otváraní zväzku kľúčov „%s“ na zápis: "
-#: gio/gdbusauthmechanismsha1.c:908
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Okrem toho zlyhalo aj uvoľnenie zámky pre „%s“: %s) "
-#: gio/gdbusconnection.c:603 gio/gdbusconnection.c:2417
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2413
msgid "The connection is closed"
msgstr "Pripojenie je ukončené"
-#: gio/gdbusconnection.c:1902
+#: gio/gdbusconnection.c:1897
msgid "Timeout was reached"
msgstr "Vypršal časový limit"
-#: gio/gdbusconnection.c:2540
+#: gio/gdbusconnection.c:2536
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Pri vytváraní klientského pripojenia boli nájdené nepodporované príznaky"
-#: gio/gdbusconnection.c:4189 gio/gdbusconnection.c:4536
+#: gio/gdbusconnection.c:4265 gio/gdbusconnection.c:4619
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"Rozhranie „org.freedesktop.DBus.Properties“ nie je v objekte na ceste %s"
-#: gio/gdbusconnection.c:4331
+#: gio/gdbusconnection.c:4410
#, c-format
msgid "No such property “%s”"
msgstr "Neexistuje vlastnosť „%s“"
-#: gio/gdbusconnection.c:4343
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "Property “%s” is not readable"
msgstr "Vlastnosť „%s“ nie je čitateľná"
-#: gio/gdbusconnection.c:4354
+#: gio/gdbusconnection.c:4433
#, c-format
msgid "Property “%s” is not writable"
msgstr "Vlastnosť „%s“ nie je zapisovateľná"
-#: gio/gdbusconnection.c:4374
+#: gio/gdbusconnection.c:4453
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Chyba pri nastavovaní vlastnosti „%s“: Bol očakávaný typ „%s“, no získaný "
"bol „%s“"
-#: gio/gdbusconnection.c:4479 gio/gdbusconnection.c:4687
-#: gio/gdbusconnection.c:6689
+#: gio/gdbusconnection.c:4558 gio/gdbusconnection.c:4773
+#: gio/gdbusconnection.c:6750
#, c-format
msgid "No such interface “%s”"
msgstr "Neexistuje rozhranie „%s“"
-#: gio/gdbusconnection.c:4905 gio/gdbusconnection.c:7201
+#: gio/gdbusconnection.c:4989 gio/gdbusconnection.c:7264
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Rozhranie „%s“ nie je v objekte na ceste %s"
-#: gio/gdbusconnection.c:5003
+#: gio/gdbusconnection.c:5090
#, c-format
msgid "No such method “%s”"
msgstr "Neexistujúca metóda „%s“"
-#: gio/gdbusconnection.c:5034
+#: gio/gdbusconnection.c:5121
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Typ správy „%s“ nezodpovedá očakávanému typu „%s“"
-#: gio/gdbusconnection.c:5237
+#: gio/gdbusconnection.c:5324
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Pre rozhranie %s je už exportovaný objekt na %s"
-#: gio/gdbusconnection.c:5463
+#: gio/gdbusconnection.c:5551
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Nepodarilo sa získať vlastnosť %s.%s"
-#: gio/gdbusconnection.c:5519
+#: gio/gdbusconnection.c:5607
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Nepodarilo sa nastaviť vlastnosť %s.%s"
-#: gio/gdbusconnection.c:5698
+#: gio/gdbusconnection.c:5786
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Metóda „%s“ vrátila typ „%s“, no očakávaný bol „%s“"
@@ -753,43 +779,42 @@ msgstr "Metóda „%s“ vrátila typ „%s“, no očakávaný bol „%s“"
# MČ: mám k tomuto preklady výhrady, ale keď to tak chcete, môže byť. Keď signatúra nevyhovuje, tak skôr značka. Ak sa rozhodnete upraviť, tak pri všetkých výskytoch.
# PK: http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-signatures
# PK: mozno oznacenie
-#: gio/gdbusconnection.c:6800
+#: gio/gdbusconnection.c:6862
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Metóda „%s“ z rozhrania „%s“ s označením „%s“ neexistuje"
-#: gio/gdbusconnection.c:6921
+#: gio/gdbusconnection.c:6983
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Podstrom je už exportovaný do %s"
-#: gio/gdbusconnection.c:7209
+#: gio/gdbusconnection.c:7272
#, c-format
-#| msgid "Key file does not have group “%s”"
msgid "Object does not exist at path “%s”"
msgstr "Objekt neexistuje na ceste „%s“"
-#: gio/gdbusmessage.c:1266
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "typ je INVALID"
-#: gio/gdbusmessage.c:1277
+#: gio/gdbusmessage.c:1317
msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
msgstr "Správa METHOD_CALL: chýba pole hlavičky PATH alebo MEMBER"
-#: gio/gdbusmessage.c:1288
+#: gio/gdbusmessage.c:1328
msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
msgstr "Správa METHOD_RETURN: chýba pole hlavičky REPLY_SERIAL"
-#: gio/gdbusmessage.c:1300
+#: gio/gdbusmessage.c:1340
msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
msgstr "Správa ERROR: chýba pole hlavičky REPLY_SERIAL alebo ERROR_NAME"
-#: gio/gdbusmessage.c:1313
+#: gio/gdbusmessage.c:1353
msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
msgstr "Správa SIGNAL: chýba pole hlavičky PATH, INTERFACE alebo MEMBER"
-#: gio/gdbusmessage.c:1321
+#: gio/gdbusmessage.c:1361
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -797,7 +822,7 @@ msgstr ""
"Správa SIGNAL: pole hlavičky PATH používa vyhradenú hodnotu /org/freedesktop/"
"DBus/Local"
-#: gio/gdbusmessage.c:1329
+#: gio/gdbusmessage.c:1369
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -807,7 +832,7 @@ msgstr ""
# MČ: Asi bude tre dať rozdeliť reťazec, nenapadá mi, ako by sa druhá časť dala preložiť neutrálne. Jedna vec je istá, pri druhom reťazci môže byť ozískaných“ len nula, keďže iba to je menej ako jedna. Prípadne všade použiť „získaných“, malo by to narobiť najmenej problémov.
# JK: https://bugzilla.gnome.org/show_bug.cgi?id=695234
-#: gio/gdbusmessage.c:1377 gio/gdbusmessage.c:1437
+#: gio/gdbusmessage.c:1417 gio/gdbusmessage.c:1477
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
@@ -817,12 +842,12 @@ msgstr[2] "Potrebné %lu bajty na čítanie, no získaných iba %lu"
# *https://bugzilla.gnome.org/show_bug.cgi?id=658913
# PM: tu je to hodnota znaku nie smerníka
-#: gio/gdbusmessage.c:1391
+#: gio/gdbusmessage.c:1431
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Očakávaný znak NUL za reťazcom „%s“, no nájdený bajt %d"
-#: gio/gdbusmessage.c:1410
+#: gio/gdbusmessage.c:1450
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -831,22 +856,22 @@ msgstr ""
"Očakávaný platný UTF-8 reťazec, no nájdené neplatné bajty na pozícii %d "
"(dĺžka reťazca je %d). Platný UTF-8 reťazec do toho miesta bol „%s“"
-#: gio/gdbusmessage.c:1474 gio/gdbusmessage.c:1722 gio/gdbusmessage.c:1911
+#: gio/gdbusmessage.c:1514 gio/gdbusmessage.c:1790 gio/gdbusmessage.c:2001
msgid "Value nested too deeply"
msgstr ""
-#: gio/gdbusmessage.c:1620
+#: gio/gdbusmessage.c:1682
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr ""
"Analyzovaná hodnota „%s“ nie je platnou cestou k objektu zbernice D-Bus"
-#: gio/gdbusmessage.c:1642
+#: gio/gdbusmessage.c:1706
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Analyzovaná hodnota „%s“ nie je platným označením zbernice D-Bus"
-#: gio/gdbusmessage.c:1689
+#: gio/gdbusmessage.c:1757
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -859,7 +884,7 @@ msgstr[1] ""
msgstr[2] ""
"Zistené pole s dĺžkou %u bajty. Maximálna dĺžka je 2<<26 bajtov (64 MiB)"
-#: gio/gdbusmessage.c:1709
+#: gio/gdbusmessage.c:1777
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -868,13 +893,17 @@ msgstr ""
"Zistené pole typu „a%c“, ktoré by malo mať dĺžku v násobkoch %u bajtov, ale "
"reálna dĺžka je %u bajtov"
-#: gio/gdbusmessage.c:1895
+#: gio/gdbusmessage.c:1931 gio/gdbusmessage.c:2650
+msgid "Empty structures (tuples) are not allowed in D-Bus"
+msgstr ""
+
+#: gio/gdbusmessage.c:1985
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr ""
"Analyzovaná hodnota „%s“ pre variant nie je platným označením zbernice D-Bus"
-#: gio/gdbusmessage.c:1936
+#: gio/gdbusmessage.c:2026
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -883,7 +912,7 @@ msgstr ""
"formátu zbernice D-Bus"
# tu musia byt taketo uvodzovky, kedze je to tak aj v C alebo Java
-#: gio/gdbusmessage.c:2121
+#: gio/gdbusmessage.c:2211
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -893,29 +922,29 @@ msgstr ""
"nájdená hodnota 0x%02x"
#  protocol version
-#: gio/gdbusmessage.c:2134
+#: gio/gdbusmessage.c:2230
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Neplatná hlavná verzia protokolu. Očakávaná 1, no nájdená %d"
-#: gio/gdbusmessage.c:2188 gio/gdbusmessage.c:2784
+#: gio/gdbusmessage.c:2288 gio/gdbusmessage.c:2886
msgid "Signature header found but is not of type signature"
msgstr ""
-#: gio/gdbusmessage.c:2200
+#: gio/gdbusmessage.c:2300
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Nájdená hlavička označenia s označením „%s“, no nájdené telo správy je "
"prázdne"
-#: gio/gdbusmessage.c:2215
+#: gio/gdbusmessage.c:2315
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr ""
"Analyzovaná hodnota „%s“ nie je platným označením zbernice D-Bus (pre telo)"
-#: gio/gdbusmessage.c:2247
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -926,11 +955,11 @@ msgstr[1] ""
msgstr[2] ""
"V správe nie je žiadna hlavička označenia, no telo správy má %u bajty"
-#: gio/gdbusmessage.c:2257
+#: gio/gdbusmessage.c:2357
msgid "Cannot deserialize message: "
msgstr "Nedá sa deserializovať správa: "
-#: gio/gdbusmessage.c:2601
+#: gio/gdbusmessage.c:2703
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -938,7 +967,7 @@ msgstr ""
"Chyba pri serializovaní Gvariant pomocou reťazca typu „%s“ z prenosového "
"formátu zbernice D-Bus"
-#: gio/gdbusmessage.c:2738
+#: gio/gdbusmessage.c:2840
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
@@ -946,16 +975,16 @@ msgstr ""
"Počet popisovačov súboru v správe (%d) sa odlišuje od počtu v poli hlavička "
"(%d)"
-#: gio/gdbusmessage.c:2746
+#: gio/gdbusmessage.c:2848
msgid "Cannot serialize message: "
msgstr "Nedá sa serializovať správa: "
-#: gio/gdbusmessage.c:2799
+#: gio/gdbusmessage.c:2901
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "Telo správy má označenie „%s“, no neexistuje žiadna hlavička označenia"
-#: gio/gdbusmessage.c:2809
+#: gio/gdbusmessage.c:2911
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -963,54 +992,53 @@ msgid ""
msgstr ""
"Telo správy má označenie typu „%s“, no označenie v poli hlavičky je „%s“"
-#: gio/gdbusmessage.c:2825
+#: gio/gdbusmessage.c:2927
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Telo správy je prázdne, no označenie v poli hlavičky je „(%s)“"
-#: gio/gdbusmessage.c:3380
+#: gio/gdbusmessage.c:3482
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Chyba pri návrate s telom typu „%s“"
-#: gio/gdbusmessage.c:3388
+#: gio/gdbusmessage.c:3490
msgid "Error return with empty body"
msgstr "Chyba pri návrate s prázdnym telom"
# PM: podľa mňa ked ide o zadanie treba na konci stlačiť enter, nie som si istý či je to tento prípad
-#: gio/gdbusprivate.c:2246
+#: gio/gdbusprivate.c:2187
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Toto okno zatvoríte zadaním ľubovolného znaku)\n"
-#: gio/gdbusprivate.c:2420
+#: gio/gdbusprivate.c:2373
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "Relácia dbus nebeží a automatické spustenie zlyhalo"
-#: gio/gdbusprivate.c:2443
+#: gio/gdbusprivate.c:2396
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Nepodarilo sa získať hardvérový profil: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2494
+#: gio/gdbusprivate.c:2447
#, c-format
-#| msgid "Unable to trash file %s: %s"
msgid "Unable to load %s or %s: "
-msgstr "Nie je možné načítať %s alebo %s:"
+msgstr "Nie je možné načítať %s alebo %s: "
-#: gio/gdbusproxy.c:1569
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Chyba pri volaní StartServiceByName pre %s: "
-#: gio/gdbusproxy.c:1592
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Neočakávaná odpoveď %d z metódy StartServiceByName(„%s“)"
-#: gio/gdbusproxy.c:2699 gio/gdbusproxy.c:2834
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, fuzzy, c-format
#| msgid ""
#| "Cannot invoke method; proxy is for a well-known name without an owner and "
@@ -1022,30 +1050,30 @@ msgstr ""
"Nedá sa vyvolať metóda; proxy je pre dobre známy názov bez vlastníka a proxy "
"bol vytvorený s príznakom G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:767
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Abstraktný menný priestor nie je podporovaný"
-#: gio/gdbusserver.c:860
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Pri vytváraní servera sa nedá zadať nonce súbor"
-#: gio/gdbusserver.c:942
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Chyba pri zápise do nonce súboru na „%s“: %s"
-#: gio/gdbusserver.c:1117
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Reťazec „%s“ nie je platný D-Bus GUID"
-#: gio/gdbusserver.c:1157
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Nedá sa počúvať na nepodporovanom transporte „%s“"
-#: gio/gdbus-tool.c:111
+#: gio/gdbus-tool.c:113
#, c-format
msgid ""
"Commands:\n"
@@ -1070,67 +1098,67 @@ msgstr ""
"\n"
"Pomocníka pre každý z príkazov získate zadaním „%s PRÍKAZ --help“.\n"
-#: gio/gdbus-tool.c:201 gio/gdbus-tool.c:273 gio/gdbus-tool.c:345
-#: gio/gdbus-tool.c:369 gio/gdbus-tool.c:859 gio/gdbus-tool.c:1236
-#: gio/gdbus-tool.c:1724
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Chyba: %s\n"
-#: gio/gdbus-tool.c:212 gio/gdbus-tool.c:286 gio/gdbus-tool.c:1740
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Chyba pri analýze XML vútorného preskúmania: %s\n"
-#: gio/gdbus-tool.c:250
+#: gio/gdbus-tool.c:253
#, c-format
msgid "Error: %s is not a valid name\n"
msgstr "Chyba: %s nie je platný názov\n"
-#: gio/gdbus-tool.c:255 gio/gdbus-tool.c:745 gio/gdbus-tool.c:1060
-#: gio/gdbus-tool.c:1890 gio/gdbus-tool.c:2130
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Chyba: %s nie platná cesta objektu\n"
-#: gio/gdbus-tool.c:403
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Pripojiť k systémovej zbernici"
-#: gio/gdbus-tool.c:404
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Pripojiť k relačnej zbernici"
-#: gio/gdbus-tool.c:405
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Pripojiť k danej adrese zbernice D-Bus"
-#: gio/gdbus-tool.c:415
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Voľby koncového bodu pripojenia:"
-#: gio/gdbus-tool.c:416
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Voľby určujúce koncový bod pripojenia"
-#: gio/gdbus-tool.c:439
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Neurčený žiadny koncový bod pripojenia"
-#: gio/gdbus-tool.c:449
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Určených viacero koncových bodov pripojenia"
-#: gio/gdbus-tool.c:522
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr ""
"Upozornenie: Podľa údajov vnútorného preskúmania rozhranie „%s“ neexistuje\n"
-#: gio/gdbus-tool.c:531
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1139,163 +1167,169 @@ msgstr ""
"Upozornenie: Podľa údajov vnútorného preskúmania metóda „%s“ neexistuje na "
"rozhraní „%s“\n"
-#: gio/gdbus-tool.c:593
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Voliteľný cieľ pre signál (jedinečný názov)"
-#: gio/gdbus-tool.c:594
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Cesta objektu, ktorému vyslať signál"
-#: gio/gdbus-tool.c:595
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Názov signálu a rozhrania"
-#: gio/gdbus-tool.c:628
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Vyslať signál."
-#: gio/gdbus-tool.c:683 gio/gdbus-tool.c:997 gio/gdbus-tool.c:1827
-#: gio/gdbus-tool.c:2059 gio/gdbus-tool.c:2279
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Chyba pri pripájaní: %s\n"
-#: gio/gdbus-tool.c:703
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Chyba: %s nie je platný jedinečný názov zbernice.\n"
-#: gio/gdbus-tool.c:722 gio/gdbus-tool.c:1040 gio/gdbus-tool.c:1870
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Chyba: Cesta objektu nie je určená\n"
-#: gio/gdbus-tool.c:765
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Chyba: Názov signálu nie je určený\n"
-#: gio/gdbus-tool.c:779
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Chyba: Názov signálu „%s“ nie je platný\n"
-#: gio/gdbus-tool.c:791
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Chyba: %s nie je platný názov rozhrania\n"
-#: gio/gdbus-tool.c:797
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Chyba: %s nie je platný názov člena objektu\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:834 gio/gdbus-tool.c:1172
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Chyba pri spracovaní parametra %d: %s\n"
-#: gio/gdbus-tool.c:866
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Chyba pri vyprázdnení pripojenia: %s\n"
-#: gio/gdbus-tool.c:893
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Názov cieľa, na ktorom sa má zavolať metóda"
# PK: Nazov ciela, na ktorom zavolat metodu
-#: gio/gdbus-tool.c:894
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Cesta objektu na zavolanie metódy"
-#: gio/gdbus-tool.c:895
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Názov metódy a rozhrania"
-#: gio/gdbus-tool.c:896
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Časový limit v sekundách"
-#: gio/gdbus-tool.c:942
+#: gio/gdbus-tool.c:900
+#, fuzzy
+#| msgid "Show information about locations"
+msgid "Allow interactive authorization"
+msgstr "Zobrazí informácie o umiestneniach"
+
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Zavolať metódu na vzdialenom objekte."
-#: gio/gdbus-tool.c:1014 gio/gdbus-tool.c:1844 gio/gdbus-tool.c:2084
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Chyba: Cieľ nie je určený\n"
-#: gio/gdbus-tool.c:1025 gio/gdbus-tool.c:1861 gio/gdbus-tool.c:2095
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Chyba: %s nie je platný názov zbernice\n"
-#: gio/gdbus-tool.c:1075
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Chyba: Názov metódy nie je určený\n"
-#: gio/gdbus-tool.c:1086
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Chyba: Názov metódy „%s“ nie je platný\n"
-#: gio/gdbus-tool.c:1164
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Chyba pri spracovaní parametra %d typu „%s“: %s\n"
# PŠ: file handle (win32) je ekvivalent file descriptor - dovolil som si to preložiť rovnako. Keďže používané manipulátor, alebo rukoväť sú oba zlé preklady (obsluha je handler)... A dokonca aj v slovenskom preklade Správcu úloh vo win je použitý popisovač.
-#: gio/gdbus-tool.c:1190
-#, fuzzy, c-format
+#: gio/gdbus-tool.c:1195
+#, c-format
#| msgid "Error reading from handle: %s"
msgid "Error adding handle %d: %s\n"
-msgstr "Chyba pri čítaní z popisovača: %s"
+msgstr "Chyba počas pridávania popisovača %d: %s\n"
-#: gio/gdbus-tool.c:1686
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Názov cieľa na vnútorné preskúmanie"
-#: gio/gdbus-tool.c:1687
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Cesta objektu na vnútorné preskúmanie"
-#: gio/gdbus-tool.c:1688
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Vypísať XML"
-#: gio/gdbus-tool.c:1689
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Vnútorne preskúmať potomka"
-#: gio/gdbus-tool.c:1690
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Iba vypísať vlastnosti"
-#: gio/gdbus-tool.c:1779
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Vnútorne preskúmať vzdialený objekt."
-#: gio/gdbus-tool.c:1985
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Názov cieľa na sledovanie"
-#: gio/gdbus-tool.c:1986
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Cesta objektu na sledovanie"
-#: gio/gdbus-tool.c:2011
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Sledovať vzdialený objekt."
-#: gio/gdbus-tool.c:2069
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr ""
-#: gio/gdbus-tool.c:2193
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Služba, ktorá sa má aktivovať pred čakaním na inú (so známym menom)"
-#: gio/gdbus-tool.c:2196
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1303,126 +1337,136 @@ msgstr ""
"Časový limit (v sekundách) pre čakanie, po uplynutí ktorého sa ukončí "
"chybou; 0 bez limitu (predvolené)"
-#: gio/gdbus-tool.c:2244
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[VOĽBA…] NÁZOV_ZBERNICE"
-#: gio/gdbus-tool.c:2245
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Čakať na zjavenie názvu zbernice."
-#: gio/gdbus-tool.c:2321
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Chyba: Musí byť určená služba, ktorá sa má aktivovať.\n"
-#: gio/gdbus-tool.c:2326
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Chyba: Musí byť určená služba, na ktorú sa má čakať.\n"
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Chyba: Príliš veľa parametrov.\n"
-#: gio/gdbus-tool.c:2339 gio/gdbus-tool.c:2346
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Chyba: %s nie je platný známy názov zbernice.\n"
-#: gio/gdesktopappinfo.c:2106 gio/gdesktopappinfo.c:4932
+#: gio/gdebugcontrollerdbus.c:361
+#, c-format
+msgid "Not authorized to change debug settings"
+msgstr ""
+
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Bez názvu"
-#: gio/gdesktopappinfo.c:2516
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "V súbore desktop nie je určené pole Exec"
-#: gio/gdesktopappinfo.c:2801
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Nepodarilo sa nájsť terminál vyžadovaný pre aplikáciu"
-#: gio/gdesktopappinfo.c:3452
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr ""
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Nedá sa vytvoriť používateľský konfiguračný priečinok aplikácie %s: %s"
-#: gio/gdesktopappinfo.c:3456
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Nedá sa vytvoriť používateľský konfiguračný priečinok MIME %s: %s"
-#: gio/gdesktopappinfo.c:3698 gio/gdesktopappinfo.c:3722
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "V informáciách o aplikácii chýba identifikátor"
-#: gio/gdesktopappinfo.c:3958
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Nedá sa vytvoriť používateľský desktop súbor %s"
-#: gio/gdesktopappinfo.c:4094
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Vlastná definícia pre %s"
-#: gio/gdrive.c:417
+#: gio/gdrive.c:419
msgid "drive doesn’t implement eject"
msgstr "mechanika neimplementuje vysúvanie"
#. Translators: This is an error
#. * message for drive objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gdrive.c:495
+#: gio/gdrive.c:497
msgid "drive doesn’t implement eject or eject_with_operation"
msgstr ""
"mechanika neimplementuje eject (vysunutie) ani eject_with_operation "
"(vysunutie s operáciou)"
-#: gio/gdrive.c:571
+#: gio/gdrive.c:573
msgid "drive doesn’t implement polling for media"
msgstr "mechanika neimplementuje dotazovanie na vložené médium"
-#: gio/gdrive.c:778
+#: gio/gdrive.c:780
msgid "drive doesn’t implement start"
msgstr "mechanika neimplementuje spustenie"
-#: gio/gdrive.c:880
+#: gio/gdrive.c:882
msgid "drive doesn’t implement stop"
msgstr "mechanika neimplementuje zastavenie"
-#: gio/gdtlsconnection.c:1153 gio/gtlsconnection.c:920
+#: gio/gdtlsconnection.c:1188 gio/gtlsconnection.c:957
msgid "TLS backend does not implement TLS binding retrieval"
msgstr ""
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:321
-#: gio/gdummytlsbackend.c:513
+#: gio/gdummytlsbackend.c:197 gio/gdummytlsbackend.c:323
+#: gio/gdummytlsbackend.c:515
msgid "TLS support is not available"
msgstr "Podpora TLS nie je dostupná"
-#: gio/gdummytlsbackend.c:423
+#: gio/gdummytlsbackend.c:425
msgid "DTLS support is not available"
msgstr "Podpora DTLS nie je dostupná"
-#: gio/gemblem.c:323
+#: gio/gemblem.c:325
#, c-format
msgid "Can’t handle version %d of GEmblem encoding"
msgstr "Nedá sa spracovať kódovanie GEmblem verzie %d"
-#: gio/gemblem.c:333
+#: gio/gemblem.c:335
#, c-format
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr "Chybný počet tokenov (%d) v kódovaní GEmblem"
-#: gio/gemblemedicon.c:362
+#: gio/gemblemedicon.c:364
#, c-format
msgid "Can’t handle version %d of GEmblemedIcon encoding"
msgstr "Nedá sa spracovať kódovanie GEmblemedIcon verzie %d"
-#: gio/gemblemedicon.c:372
+#: gio/gemblemedicon.c:374
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr "Chybný počet tokenov (%d) v kódovaní GEmblemedIcon"
-#: gio/gemblemedicon.c:395
+#: gio/gemblemedicon.c:397
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "Očakávaný GEmblem pre GEmblemedIcon"
@@ -1430,200 +1474,204 @@ msgstr "Očakávaný GEmblem pre GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1561
+#: gio/gfile.c:1594
msgid "Containing mount does not exist"
msgstr "Obklopujúce pripojenie neexistuje"
-#: gio/gfile.c:2608 gio/glocalfile.c:2477
+#: gio/gfile.c:2641 gio/glocalfile.c:2515
msgid "Can’t copy over directory"
msgstr "Nedá sa prepísať adresár pri kopírovaní"
-#: gio/gfile.c:2668
+#: gio/gfile.c:2701
msgid "Can’t copy directory over directory"
msgstr "Nedá sa prepísať adresár adresárom pri kopírovaní"
-#: gio/gfile.c:2676
+#: gio/gfile.c:2709
msgid "Target file exists"
msgstr "Cieľový súbor existuje"
-#: gio/gfile.c:2695
+#: gio/gfile.c:2728
msgid "Can’t recursively copy directory"
msgstr "Adresár sa nedá kopírovať rekurzívne"
-#: gio/gfile.c:2996
+#: gio/gfile.c:3029
msgid "Splice not supported"
msgstr "Operácia zreťazovania vstupu s výstupom nie je podporovaná"
# http://developer.gnome.org/gio/2.32/GOutputStream.html#g-output-stream-splice
-#: gio/gfile.c:3000
+#: gio/gfile.c:3033
#, c-format
msgid "Error splicing file: %s"
msgstr "Chyba pri zreťazovaní súboru: %s"
-#: gio/gfile.c:3152
+#: gio/gfile.c:3195
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Kopírovanie (odkaz/klon) medzi pripojeniami nie je podporované"
-#: gio/gfile.c:3156
+#: gio/gfile.c:3199
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr ""
"Kopírovanie (odkaz/klon) medzi pripojeniami nie je podporované alebo je "
"neplatné"
-#: gio/gfile.c:3161
+#: gio/gfile.c:3204
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr ""
"Kopírovanie (odkaz/klon) medzi pripojeniami nie je podporované alebo "
"nefunguje"
-#: gio/gfile.c:3226
+#: gio/gfile.c:3269
msgid "Can’t copy special file"
msgstr "Špeciálny súbor sa nedá kopírovať"
-#: gio/gfile.c:4035
+#: gio/gfile.c:4163
msgid "Invalid symlink value given"
msgstr "Neplatný daný symbolický odkaz"
-#: gio/gfile.c:4045 glib/gfileutils.c:2354
+#: gio/gfile.c:4173 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Symbolické odkazy nie sú podporované"
-#: gio/gfile.c:4213
+#: gio/gfile.c:4460
msgid "Trash not supported"
msgstr "Zahodenie do Koša nie je podporované"
# literal character
-#: gio/gfile.c:4325
+#: gio/gfile.c:4572
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Názvy súborov nemôžu obsahovať „%c“"
-#: gio/gfile.c:6806 gio/gvolume.c:364
+#: gio/gfile.c:7003 gio/gfile.c:7129
+#, fuzzy, c-format
+#| msgid "Failed to change to directory “%s” (%s)"
+msgid "Failed to create a temporary directory for template “%s”: %s"
+msgstr "Zlyhala zmena adresára na „%s“ (%s)"
+
+#: gio/gfile.c:7418 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "zväzok neimplementuje pripojenie"
-#: gio/gfile.c:6920 gio/gfile.c:6968
+#: gio/gfile.c:7532 gio/gfile.c:7609
msgid "No application is registered as handling this file"
msgstr "Žiadna aplikácia nie je zaregistrovaná na spracovanie tohto súboru"
# PK: vymenovavac hodnot, suborov
#  PM: som za zachovanie aktuálneho preklad, iterátor tiež nejako zvlášť neprekladáme
-#: gio/gfileenumerator.c:212
+#: gio/gfileenumerator.c:214
msgid "Enumerator is closed"
msgstr "Enumerátor je uzatvorený"
-#: gio/gfileenumerator.c:219 gio/gfileenumerator.c:278
-#: gio/gfileenumerator.c:377 gio/gfileenumerator.c:476
+#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
+#: gio/gfileenumerator.c:424 gio/gfileenumerator.c:523
msgid "File enumerator has outstanding operation"
msgstr "Enumerátor súborov má nevykonanú operáciu"
-#: gio/gfileenumerator.c:368 gio/gfileenumerator.c:467
+#: gio/gfileenumerator.c:415 gio/gfileenumerator.c:514
msgid "File enumerator is already closed"
msgstr "Enumerátor súborov je už uzatvorený"
-#: gio/gfileicon.c:250
+#: gio/gfileicon.c:252
#, c-format
msgid "Can’t handle version %d of GFileIcon encoding"
msgstr "Nedá sa spracovať kódovanie GFileIcon verzie %d"
-#: gio/gfileicon.c:260
+#: gio/gfileicon.c:262
msgid "Malformed input data for GFileIcon"
msgstr "Zle formátované vstupné údaje pre GFileIcon"
-#: gio/gfileinputstream.c:149 gio/gfileinputstream.c:394
-#: gio/gfileiostream.c:167 gio/gfileoutputstream.c:164
-#: gio/gfileoutputstream.c:497
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
+#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Prúd nepodporuje query_info"
-#: gio/gfileinputstream.c:325 gio/gfileiostream.c:379
-#: gio/gfileoutputstream.c:371
+#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Presúvanie v prúde nie je podporované"
-#: gio/gfileinputstream.c:369
+#: gio/gfileinputstream.c:371
msgid "Truncate not allowed on input stream"
msgstr "Skrátenie vo vstupnom prúde nie je podporované"
-#: gio/gfileiostream.c:455 gio/gfileoutputstream.c:447
+#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Skrátenie nie je v prúde podporované"
-#: gio/ghttpproxy.c:91 gio/gresolver.c:443 gio/gresolver.c:596
-#: glib/gconvert.c:1825
+#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
+#: glib/gconvert.c:1829
msgid "Invalid hostname"
msgstr "Neplatný názov hostiteľa"
-#: gio/ghttpproxy.c:143
+#: gio/ghttpproxy.c:145
msgid "Bad HTTP proxy reply"
msgstr "Nesprávna odpoveď sprostredkovateľa HTTP"
-#: gio/ghttpproxy.c:159
+#: gio/ghttpproxy.c:161
msgid "HTTP proxy connection not allowed"
msgstr "Pripojenie k sprostredkovateľovi HTTP nie je umožnené"
-#: gio/ghttpproxy.c:164
+#: gio/ghttpproxy.c:166
msgid "HTTP proxy authentication failed"
msgstr "Zlyhalo overenie totožnosti sprostredkovateľa HTTP"
-#: gio/ghttpproxy.c:167
+#: gio/ghttpproxy.c:169
msgid "HTTP proxy authentication required"
msgstr "Vyžaduje sa overenie totožnosti sprostredkovateľa HTTP"
-#: gio/ghttpproxy.c:171
+#: gio/ghttpproxy.c:173
#, c-format
msgid "HTTP proxy connection failed: %i"
msgstr "Pripojenie k sprostredkovateľovi HTTP zlyhalo: %i"
-#: gio/ghttpproxy.c:266
-#, fuzzy
-#| msgid "HTTP proxy connection failed: %i"
+#: gio/ghttpproxy.c:268
msgid "HTTP proxy response too big"
-msgstr "Pripojenie k sprostredkovateľovi HTTP zlyhalo: %i"
+msgstr "Odpoveď od sprostredkovateľa HTTP je príliš veľká"
-#: gio/ghttpproxy.c:283
+#: gio/ghttpproxy.c:285
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "Server sprostredkovateľa HTTP neočakávane prerušil pripojenie."
-#: gio/gicon.c:298
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Nesprávny počet tokenov (%d)"
-#: gio/gicon.c:318
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Názov triedy %s nemá typ"
-#: gio/gicon.c:328
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Typ %s neimplementuje rozhranie GIcon"
-#: gio/gicon.c:339
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Typ %s nemá triedu"
-#: gio/gicon.c:353
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Zlé číslo verzie: %s"
-#: gio/gicon.c:367
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Typ %s neimplementuje from_tokens() na rozhraní GIcon"
-#: gio/gicon.c:469
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Nedá sa spracovať poskytnutá verzia kódovania ikon"
-#: gio/ginetaddressmask.c:182
+#: gio/ginetaddressmask.c:184
msgid "No address specified"
msgstr "Nebola zadaná žiadna adresa"
-#: gio/ginetaddressmask.c:190
+#: gio/ginetaddressmask.c:192
#, c-format
msgid "Length %u is too long for address"
msgstr "Dĺžka %u je pre adresu príliš krátka"
@@ -1633,25 +1681,25 @@ msgstr "Dĺžka %u je pre adresu príliš krátka"
# PM: Predpona adresy sa mi zdá úplne zrozumiteľná, skôr som myslel či nepoužiť preklad ako napr. bity adresy presahujú sa hranicu stanovenú pre predponu adresy
# MČ: Skôr tento druhý reťazec, „dĺžka predpony“ by bola osobne pre mňa šialene nepochopiteľná, keby som nemal k dispozícii anglický originál.
# PK: to necham slovensky, lebo pre mna to je spanielska dedina
-#: gio/ginetaddressmask.c:223
+#: gio/ginetaddressmask.c:225
msgid "Address has bits set beyond prefix length"
msgstr "Adresa má bity nastavené za dĺžkou predpony"
-#: gio/ginetaddressmask.c:300
+#: gio/ginetaddressmask.c:302
#, c-format
msgid "Could not parse “%s” as IP address mask"
msgstr "Nepodarilo sa analyzovať „%s“ ako masku adresy IP"
-#: gio/ginetsocketaddress.c:203 gio/ginetsocketaddress.c:220
-#: gio/gnativesocketaddress.c:109 gio/gunixsocketaddress.c:221
+#: gio/ginetsocketaddress.c:205 gio/ginetsocketaddress.c:222
+#: gio/gnativesocketaddress.c:111 gio/gunixsocketaddress.c:230
msgid "Not enough space for socket address"
msgstr "Nie je dostatok miesta pre adresu soketu"
-#: gio/ginetsocketaddress.c:235
+#: gio/ginetsocketaddress.c:237
msgid "Unsupported socket address"
msgstr "Nepodporovaná adresa soketu"
-#: gio/ginputstream.c:188
+#: gio/ginputstream.c:190
msgid "Input stream doesn’t implement read"
msgstr "Vstupný prúd neimplementuje čítanie"
@@ -1661,129 +1709,129 @@ msgstr "Vstupný prúd neimplementuje čítanie"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1249 gio/giostream.c:310 gio/goutputstream.c:2208
+#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
msgid "Stream has outstanding operation"
msgstr "Prúd má nevykonanú operáciu"
-#: gio/gio-tool.c:160
+#: gio/gio-tool.c:162
msgid "Copy with file"
msgstr "Skopíruje so súborom"
-#: gio/gio-tool.c:164
+#: gio/gio-tool.c:166
msgid "Keep with file when moved"
msgstr "Ponechá so súborom pri presunutí"
-#: gio/gio-tool.c:205
+#: gio/gio-tool.c:207
msgid "“version” takes no arguments"
msgstr "Voľba „version“ neprijíma žiadne parametre"
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:869
+#: gio/gio-tool.c:209 gio/gio-tool.c:225 glib/goption.c:871
msgid "Usage:"
msgstr "Použitie:"
# MČ: „Vypíše …“, podobne ako nasledujúce reťazce.
-#: gio/gio-tool.c:210
+#: gio/gio-tool.c:212
msgid "Print version information and exit."
msgstr "Vypíše informácie o verzii a skončí."
-#: gio/gio-tool.c:226
+#: gio/gio-tool.c:228
msgid "Commands:"
msgstr "Príkazy:"
-#: gio/gio-tool.c:229
+#: gio/gio-tool.c:231
msgid "Concatenate files to standard output"
msgstr "Spojí súbory na štandardný výstup"
-#: gio/gio-tool.c:230
+#: gio/gio-tool.c:232
msgid "Copy one or more files"
msgstr "Skopíruje jeden alebo viac súborov"
-#: gio/gio-tool.c:231
+#: gio/gio-tool.c:233
msgid "Show information about locations"
msgstr "Zobrazí informácie o umiestneniach"
-#: gio/gio-tool.c:232
+#: gio/gio-tool.c:234
#, fuzzy
#| msgid "List static actions for an application (from .desktop file)"
msgid "Launch an application from a desktop file"
msgstr "Vypíše zoznam statických akcií pre aplikáciu (zo súboru typu .desktop)"
-#: gio/gio-tool.c:233
+#: gio/gio-tool.c:235
msgid "List the contents of locations"
msgstr "Vypíše obsah umiestnení"
-#: gio/gio-tool.c:234
+#: gio/gio-tool.c:236
msgid "Get or set the handler for a mimetype"
msgstr "Získa alebo nastaví obslužný program pre typ MIME"
-#: gio/gio-tool.c:235
+#: gio/gio-tool.c:237
msgid "Create directories"
msgstr "Vytvorí adresáre"
-#: gio/gio-tool.c:236
+#: gio/gio-tool.c:238
msgid "Monitor files and directories for changes"
msgstr "Sleduje zmeny súborov a adresárov"
-#: gio/gio-tool.c:237
+#: gio/gio-tool.c:239
msgid "Mount or unmount the locations"
msgstr "Pripojí alebo odpojí umiestnenia"
-#: gio/gio-tool.c:238
+#: gio/gio-tool.c:240
msgid "Move one or more files"
msgstr "Presunie jeden alebo viac súborov"
-#: gio/gio-tool.c:239
+#: gio/gio-tool.c:241
msgid "Open files with the default application"
msgstr "Otvorí súbory predvolenou aplikáciou"
-#: gio/gio-tool.c:240
+#: gio/gio-tool.c:242
msgid "Rename a file"
msgstr "Premenuje súbor"
-#: gio/gio-tool.c:241
+#: gio/gio-tool.c:243
msgid "Delete one or more files"
msgstr "Odstráni jeden alebo viac súborov"
-#: gio/gio-tool.c:242
+#: gio/gio-tool.c:244
msgid "Read from standard input and save"
msgstr "Číta z predvoleného vstupu a ukladá"
-#: gio/gio-tool.c:243
+#: gio/gio-tool.c:245
msgid "Set a file attribute"
msgstr "Nastaví atribút súboru"
-#: gio/gio-tool.c:244
+#: gio/gio-tool.c:246
msgid "Move files or directories to the trash"
msgstr "Presunie súbory alebo adresáre do Koša"
-#: gio/gio-tool.c:245
+#: gio/gio-tool.c:247
msgid "Lists the contents of locations in a tree"
msgstr "Vypíše obsah umiestnení v stromovom zobrazení"
-#: gio/gio-tool.c:247
+#: gio/gio-tool.c:249
#, c-format
msgid "Use %s to get detailed help.\n"
msgstr "Na získanie podrobnejšieho pomocníka, použite %s.\n"
-#: gio/gio-tool-cat.c:87
+#: gio/gio-tool-cat.c:89
msgid "Error writing to stdout"
msgstr "Chyba pri zápise na štandardný výstup"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:133 gio/gio-tool-info.c:340 gio/gio-tool-list.c:172
-#: gio/gio-tool-mkdir.c:48 gio/gio-tool-monitor.c:37 gio/gio-tool-monitor.c:39
-#: gio/gio-tool-monitor.c:41 gio/gio-tool-monitor.c:43
-#: gio/gio-tool-monitor.c:204 gio/gio-tool-mount.c:1199 gio/gio-tool-open.c:70
-#: gio/gio-tool-remove.c:48 gio/gio-tool-rename.c:45 gio/gio-tool-set.c:89
-#: gio/gio-tool-trash.c:220 gio/gio-tool-tree.c:239
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
+#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1210 gio/gio-tool-open.c:72
+#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "UMIESTNENIE"
-#: gio/gio-tool-cat.c:138
+#: gio/gio-tool-cat.c:140
msgid "Concatenate files and print to standard output."
msgstr "Spojí súbory a vypíše na štandardný výstup."
-#: gio/gio-tool-cat.c:140
+#: gio/gio-tool-cat.c:142
msgid ""
"gio cat works just like the traditional cat utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1794,60 +1842,60 @@ msgstr ""
"použiť niečo ako \n"
"smb://server/resource/file.txt ako umiestnenie."
-#: gio/gio-tool-cat.c:162 gio/gio-tool-info.c:371 gio/gio-tool-mkdir.c:76
-#: gio/gio-tool-monitor.c:229 gio/gio-tool-mount.c:1250 gio/gio-tool-open.c:96
-#: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:303
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1261 gio/gio-tool-open.c:98
+#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Neposkytnuté žiadne umiestnenia"
-#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:38
+#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
msgid "No target directory"
msgstr "Bez cieľového adresára"
-#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:39
+#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41
msgid "Show progress"
msgstr "Zobrazí priebeh"
-#: gio/gio-tool-copy.c:45 gio/gio-tool-move.c:40
+#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:42
msgid "Prompt before overwrite"
msgstr "Pýta sa pred prepísaním"
-#: gio/gio-tool-copy.c:46
+#: gio/gio-tool-copy.c:48
msgid "Preserve all attributes"
msgstr "Zachová všetky atribúty"
-#: gio/gio-tool-copy.c:47 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
+#: gio/gio-tool-copy.c:49 gio/gio-tool-move.c:43 gio/gio-tool-save.c:51
msgid "Backup existing destination files"
msgstr "Zálohuje existujúce cieľové súbory"
-#: gio/gio-tool-copy.c:48
+#: gio/gio-tool-copy.c:50
msgid "Never follow symbolic links"
msgstr "Nikdy nenasleduje symbolické odkazy"
-#: gio/gio-tool-copy.c:49
+#: gio/gio-tool-copy.c:51
msgid "Use default permissions for the destination"
msgstr ""
-#: gio/gio-tool-copy.c:74 gio/gio-tool-move.c:67
+#: gio/gio-tool-copy.c:76 gio/gio-tool-move.c:69
#, c-format
msgid "Transferred %s out of %s (%s/s)"
msgstr "Prenesených %s z %s (%s/s)"
#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96
msgid "SOURCE"
msgstr "ZDROJ"
#. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:100 gio/gio-tool-move.c:94 gio/gio-tool-save.c:160
+#: gio/gio-tool-copy.c:102 gio/gio-tool-move.c:96 gio/gio-tool-save.c:162
msgid "DESTINATION"
msgstr "CIEĽ"
-#: gio/gio-tool-copy.c:105
+#: gio/gio-tool-copy.c:107
msgid "Copy one or more files from SOURCE to DESTINATION."
msgstr "Skopíruje jeden alebo viaceré súbory zo ZDROJA do CIEĽA."
-#: gio/gio-tool-copy.c:107
+#: gio/gio-tool-copy.c:109
msgid ""
"gio copy is similar to the traditional cp utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1859,98 +1907,91 @@ msgstr ""
"smb://server/resource/file.txt ako umiestnenie."
# %s je cesta
-#: gio/gio-tool-copy.c:149
+#: gio/gio-tool-copy.c:151
#, c-format
msgid "Destination %s is not a directory"
msgstr "Cieľ %s nie je adresárom"
-#: gio/gio-tool-copy.c:196 gio/gio-tool-move.c:186
+#: gio/gio-tool-copy.c:198 gio/gio-tool-move.c:188
#, c-format
msgid "%s: overwrite “%s”? "
msgstr "%s: prepísať „%s“? "
-#: gio/gio-tool-info.c:37
+#: gio/gio-tool-info.c:39
msgid "List writable attributes"
msgstr "Vypíše zapisovateľné atribúty"
-#: gio/gio-tool-info.c:38
+#: gio/gio-tool-info.c:40
msgid "Get file system info"
msgstr "Získa informácie o súborovom systéme"
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
msgid "The attributes to get"
msgstr "Atribúty, ktoré sa majú získať"
-#: gio/gio-tool-info.c:39 gio/gio-tool-list.c:36
+#: gio/gio-tool-info.c:41 gio/gio-tool-list.c:37
msgid "ATTRIBUTES"
msgstr "ATRIBÚTY"
-#: gio/gio-tool-info.c:40 gio/gio-tool-list.c:39 gio/gio-tool-set.c:34
+#: gio/gio-tool-info.c:42 gio/gio-tool-list.c:40 gio/gio-tool-set.c:37
msgid "Don’t follow symbolic links"
msgstr "Nenasleduje symbolické odkazy"
-#: gio/gio-tool-info.c:78
+#: gio/gio-tool-info.c:105
msgid "attributes:\n"
msgstr "atribúty:\n"
-#. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:134
+#: gio/gio-tool-info.c:166 gio/gio-tool-info.c:176
#, c-format
msgid "display name: %s\n"
msgstr "názov na zobrazenie: %s\n"
-#. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:139
-#, c-format
-msgid "edit name: %s\n"
-msgstr "názov na úpravu: %s\n"
-
-#: gio/gio-tool-info.c:145
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "názov: %s\n"
-#: gio/gio-tool-info.c:152
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "typ: %s\n"
-#: gio/gio-tool-info.c:158
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "veľkosť: "
-#: gio/gio-tool-info.c:163
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "skrytý\n"
-#: gio/gio-tool-info.c:166
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:172
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "miestna cesta: %s\n"
-#: gio/gio-tool-info.c:205
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr ""
-#: gio/gio-tool-info.c:286
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Nastaviteľné atribúty:\n"
-#: gio/gio-tool-info.c:310
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Menné priestory zapisovateľného atribútu:\n"
-#: gio/gio-tool-info.c:345
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Zobrazí informácie o umiestneniach."
-#: gio/gio-tool-info.c:347
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1967,69 +2008,65 @@ msgstr ""
"vlastnosti"
#. Translators: commandline placeholder
-#: gio/gio-tool-launch.c:54
+#: gio/gio-tool-launch.c:56
msgid "DESKTOP-FILE [FILE-ARG …]"
msgstr ""
-#: gio/gio-tool-launch.c:57
+#: gio/gio-tool-launch.c:59
msgid ""
"Launch an application from a desktop file, passing optional filename "
"arguments to it."
msgstr ""
-#: gio/gio-tool-launch.c:77
+#: gio/gio-tool-launch.c:79
#, fuzzy
#| msgid "No files given"
msgid "No desktop file given"
msgstr "Neposkytnuté žiadne súbory"
-#: gio/gio-tool-launch.c:85
-#, fuzzy
-#| msgid "There is no GCredentials support for your platform"
+#: gio/gio-tool-launch.c:87
msgid "The launch command is not currently supported on this platform"
-msgstr "Neexistuje podpora GCredentials pre vašu platformu"
+msgstr "Príkaz spustenia nie je momentálne podporovaný na tejto platforme"
-#: gio/gio-tool-launch.c:98
-#, fuzzy, c-format
-#| msgid "Unable to trash file %s: %s"
+#: gio/gio-tool-launch.c:100
+#, c-format
msgid "Unable to load ‘%s‘: %s"
-msgstr "Nepodarilo sa zahodiť súbor %s do Koša: %s"
+msgstr "Nie je možné načítať „%s“: %s"
-#: gio/gio-tool-launch.c:107
-#, fuzzy, c-format
-#| msgid "Failed to load info for handler “%s”"
+#: gio/gio-tool-launch.c:109
+#, c-format
msgid "Unable to load application information for ‘%s‘"
-msgstr "Zlyhalo načítanie informácii pre obslužný program „%s“"
+msgstr "Nie je možné načítať informácie o aplikácii pre „%s“"
-#: gio/gio-tool-launch.c:119
+#: gio/gio-tool-launch.c:121
#, fuzzy, c-format
#| msgid "Default application for “%s”: %s\n"
msgid "Unable to launch application ‘%s’: %s"
msgstr "Predvolená aplikácia pre „%s“: %s\n"
-#: gio/gio-tool-list.c:37 gio/gio-tool-tree.c:32
+#: gio/gio-tool-list.c:38 gio/gio-tool-tree.c:34
msgid "Show hidden files"
msgstr "Zobrazí skryté súbory"
-#: gio/gio-tool-list.c:38
+#: gio/gio-tool-list.c:39
msgid "Use a long listing format"
msgstr "Použije dlhý formát výpisu"
-#: gio/gio-tool-list.c:40
+#: gio/gio-tool-list.c:41
#, fuzzy
#| msgid "display name: %s\n"
msgid "Print display names"
msgstr "názov na zobrazenie: %s\n"
-#: gio/gio-tool-list.c:41
+#: gio/gio-tool-list.c:42
msgid "Print full URIs"
msgstr "Vypíše celé URI"
-#: gio/gio-tool-list.c:177
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Vypíše obsah umiestnení."
-#: gio/gio-tool-list.c:179
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2045,19 +2082,19 @@ msgstr ""
"vlastnosti"
#. Translators: commandline placeholder
-#: gio/gio-tool-mime.c:71
+#: gio/gio-tool-mime.c:73
msgid "MIMETYPE"
msgstr "TYP_MIME"
-#: gio/gio-tool-mime.c:71
+#: gio/gio-tool-mime.c:73
msgid "HANDLER"
msgstr "OBSLUŽNÝ_PROGRAM"
-#: gio/gio-tool-mime.c:76
+#: gio/gio-tool-mime.c:78
msgid "Get or set the handler for a mimetype."
msgstr "Získať alebo nastaviť obslužný program pre typ MIME."
-#: gio/gio-tool-mime.c:78
+#: gio/gio-tool-mime.c:80
msgid ""
"If no handler is given, lists registered and recommended applications\n"
"for the mimetype. If a handler is given, it is set as the default\n"
@@ -2068,56 +2105,56 @@ msgstr ""
"pre typ mime. Ak je zadaný obslužný program, je nastavený ako predvolený\n"
"obslužný program pre zadaný typ mime."
-#: gio/gio-tool-mime.c:100
+#: gio/gio-tool-mime.c:102
msgid "Must specify a single mimetype, and maybe a handler"
msgstr "Je potrebné zadať jeden typ mime a možno tiež obslužný program"
-#: gio/gio-tool-mime.c:116
+#: gio/gio-tool-mime.c:118
#, c-format
msgid "No default applications for “%s”\n"
msgstr "Žiadne predvolené aplikácie pre „%s“\n"
-#: gio/gio-tool-mime.c:122
+#: gio/gio-tool-mime.c:124
#, c-format
msgid "Default application for “%s”: %s\n"
msgstr "Predvolená aplikácia pre „%s“: %s\n"
-#: gio/gio-tool-mime.c:127
+#: gio/gio-tool-mime.c:129
msgid "Registered applications:\n"
msgstr "Registrované aplikácie:\n"
-#: gio/gio-tool-mime.c:129
+#: gio/gio-tool-mime.c:131
msgid "No registered applications\n"
msgstr "Neregistrované aplikácie\n"
-#: gio/gio-tool-mime.c:140
+#: gio/gio-tool-mime.c:142
msgid "Recommended applications:\n"
msgstr "Odporúčané aplikácie:\n"
-#: gio/gio-tool-mime.c:142
+#: gio/gio-tool-mime.c:144
msgid "No recommended applications\n"
msgstr "Žiadne odporúčané aplikácie\n"
-#: gio/gio-tool-mime.c:162
+#: gio/gio-tool-mime.c:164
#, c-format
msgid "Failed to load info for handler “%s”"
msgstr "Zlyhalo načítanie informácii pre obslužný program „%s“"
-#: gio/gio-tool-mime.c:168
+#: gio/gio-tool-mime.c:170
#, c-format
msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
msgstr ""
"Zlyhalo nastavenie „%s“ ako predvoleného obslužného programu pre „%s“: %s\n"
-#: gio/gio-tool-mkdir.c:31
+#: gio/gio-tool-mkdir.c:33
msgid "Create parent directories"
msgstr "Vytvorí nadradené adresáre"
-#: gio/gio-tool-mkdir.c:52
+#: gio/gio-tool-mkdir.c:54
msgid "Create directories."
msgstr "Vytvoriť adresáre."
-#: gio/gio-tool-mkdir.c:54
+#: gio/gio-tool-mkdir.c:56
msgid ""
"gio mkdir is similar to the traditional mkdir utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2128,140 +2165,138 @@ msgstr ""
"použiť niečo ako \n"
"smb://server/resource/mydir ako umiestnenie."
-#: gio/gio-tool-monitor.c:37
+#: gio/gio-tool-monitor.c:39
msgid "Monitor a directory (default: depends on type)"
msgstr "Sledovať adresár (predvolené: závisí od typu)"
-#: gio/gio-tool-monitor.c:39
+#: gio/gio-tool-monitor.c:41
msgid "Monitor a file (default: depends on type)"
msgstr "Sledovať súbor (predvolené: závisí od typu)"
-#: gio/gio-tool-monitor.c:41
+#: gio/gio-tool-monitor.c:43
msgid "Monitor a file directly (notices changes made via hardlinks)"
msgstr "Sledovať súbor priamo (zaznamenáva tiež zmeny cez hardlink)"
-#: gio/gio-tool-monitor.c:43
+#: gio/gio-tool-monitor.c:45
msgid "Monitors a file directly, but doesn’t report changes"
msgstr "Sleduje súbor priamo, ale oznamuje zmeny"
-#: gio/gio-tool-monitor.c:45
+#: gio/gio-tool-monitor.c:47
msgid "Report moves and renames as simple deleted/created events"
msgstr ""
"Oznamovať premenovanie a presunutie ako jednoduché udalosti odstrániť a "
"vytvoriť"
-#: gio/gio-tool-monitor.c:47
+#: gio/gio-tool-monitor.c:49
msgid "Watch for mount events"
msgstr "Sleduje udalosti pripojení"
-#: gio/gio-tool-monitor.c:209
+#: gio/gio-tool-monitor.c:211
msgid "Monitor files or directories for changes."
msgstr "Sledovať zmeny súborov a adresárov."
-#: gio/gio-tool-mount.c:63
+#: gio/gio-tool-mount.c:65
msgid "Mount as mountable"
msgstr "Pripojí ako pripojiteľné"
-#: gio/gio-tool-mount.c:64
+#: gio/gio-tool-mount.c:66
#, fuzzy
#| msgid "Mount volume with device file"
msgid "Mount volume with device file, or other identifier"
msgstr "Pripojí zväzok so súborom zariadenia"
-#: gio/gio-tool-mount.c:64
+#: gio/gio-tool-mount.c:66
msgid "ID"
msgstr ""
-#: gio/gio-tool-mount.c:65
+#: gio/gio-tool-mount.c:67
msgid "Unmount"
msgstr "Odpojí"
-#: gio/gio-tool-mount.c:66
+#: gio/gio-tool-mount.c:68
msgid "Eject"
msgstr "Vysunie"
-#: gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:69
#, fuzzy
#| msgid "Mount volume with device file"
msgid "Stop drive with device file"
msgstr "Pripojí zväzok so súborom zariadenia"
-#: gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:69
msgid "DEVICE"
msgstr "ZARIADENIE"
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:70
msgid "Unmount all mounts with the given scheme"
msgstr "Odpojí všetky pripojenia s danou schémou"
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:70
msgid "SCHEME"
msgstr "SCHÉMA"
-#: gio/gio-tool-mount.c:69
+#: gio/gio-tool-mount.c:71
msgid "Ignore outstanding file operations when unmounting or ejecting"
msgstr "Ignoruje nedokončené operácie so súbormi pri odpájaní alebo vysúvaní"
-#: gio/gio-tool-mount.c:70
+#: gio/gio-tool-mount.c:72
msgid "Use an anonymous user when authenticating"
msgstr "Použije anonymného používateľa pri autorizovaní"
#. Translator: List here is a verb as in 'List all mounts'
-#: gio/gio-tool-mount.c:72
+#: gio/gio-tool-mount.c:74
msgid "List"
msgstr "Zoznam"
-#: gio/gio-tool-mount.c:73
+#: gio/gio-tool-mount.c:75
msgid "Monitor events"
msgstr "Sleduje udalosti"
-#: gio/gio-tool-mount.c:74
+#: gio/gio-tool-mount.c:76
msgid "Show extra information"
msgstr "Zobrazí ďalšie informácie"
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:77
msgid "The numeric PIM when unlocking a VeraCrypt volume"
msgstr ""
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:77
msgid "PIM"
msgstr "PIM"
-#: gio/gio-tool-mount.c:76
+#: gio/gio-tool-mount.c:78
msgid "Mount a TCRYPT hidden volume"
msgstr ""
-#: gio/gio-tool-mount.c:77
+#: gio/gio-tool-mount.c:79
msgid "Mount a TCRYPT system volume"
msgstr ""
-#: gio/gio-tool-mount.c:265 gio/gio-tool-mount.c:297
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Anonymný prístup zamietnutý"
-#: gio/gio-tool-mount.c:522
+#: gio/gio-tool-mount.c:533
msgid "No drive for device file"
msgstr "Pre súbor zariadenia neexistuje jednotka"
-#: gio/gio-tool-mount.c:1014
-#, fuzzy
-#| msgid "No volume for device file"
+#: gio/gio-tool-mount.c:1025
msgid "No volume for given ID"
-msgstr "Pre súbor zariadenia neexistuje zväzok"
+msgstr "Pre zadaný identifikátor neexistuje zväzok"
-#: gio/gio-tool-mount.c:1203
+#: gio/gio-tool-mount.c:1214
msgid "Mount or unmount the locations."
msgstr "Pripojí alebo odpojí umiestnenia."
-#: gio/gio-tool-move.c:42
+#: gio/gio-tool-move.c:44
msgid "Don’t use copy and delete fallback"
msgstr "Nepoužije sa záložný režim pri kopírovaní a odstraňovaní"
-#: gio/gio-tool-move.c:99
+#: gio/gio-tool-move.c:101
msgid "Move one or more files from SOURCE to DEST."
msgstr "Presunúť jeden alebo viac súborov zo ZDROJA do CIEĽA."
-#: gio/gio-tool-move.c:101
+#: gio/gio-tool-move.c:103
msgid ""
"gio move is similar to the traditional mv utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2272,12 +2307,12 @@ msgstr ""
"použiť niečo ako \n"
"smb://server/resource/file.txt ako umiestnenie"
-#: gio/gio-tool-move.c:143
+#: gio/gio-tool-move.c:145
#, c-format
msgid "Target %s is not a directory"
msgstr "Cieľ %s nie je adresárom"
-#: gio/gio-tool-open.c:75
+#: gio/gio-tool-open.c:77
msgid ""
"Open files with the default application that\n"
"is registered to handle files of this type."
@@ -2285,204 +2320,204 @@ msgstr ""
"Otvára súbory predvolenou aplikáciou, ktorá\n"
"je zaregistrovanou na obsluhu súborov zadaného typu."
-#: gio/gio-tool-remove.c:31 gio/gio-tool-trash.c:33
+#: gio/gio-tool-remove.c:33 gio/gio-tool-trash.c:35
msgid "Ignore nonexistent files, never prompt"
msgstr "Ignoruje neexistujúce súbory, nepýta sa"
-#: gio/gio-tool-remove.c:52
+#: gio/gio-tool-remove.c:54
msgid "Delete the given files."
msgstr "Odstraňuje zadané súbory."
-#: gio/gio-tool-rename.c:45
+#: gio/gio-tool-rename.c:47
msgid "NAME"
msgstr "NÁZOV"
-#: gio/gio-tool-rename.c:50
+#: gio/gio-tool-rename.c:52
msgid "Rename a file."
msgstr "Premenuje súbor."
-#: gio/gio-tool-rename.c:70
+#: gio/gio-tool-rename.c:72
msgid "Missing argument"
msgstr "Chýbajúci parameter"
-#: gio/gio-tool-rename.c:76 gio/gio-tool-save.c:190 gio/gio-tool-set.c:137
+#: gio/gio-tool-rename.c:78 gio/gio-tool-save.c:192 gio/gio-tool-set.c:150
msgid "Too many arguments"
msgstr "Príliš veľa parametrov"
-#: gio/gio-tool-rename.c:95
+#: gio/gio-tool-rename.c:97
#, c-format
msgid "Rename successful. New uri: %s\n"
msgstr "Premenovanie úspešné. Nové uri: %s\n"
-#: gio/gio-tool-save.c:50
+#: gio/gio-tool-save.c:52
msgid "Only create if not existing"
msgstr "Vytvorí len ak neexistuje"
-#: gio/gio-tool-save.c:51
+#: gio/gio-tool-save.c:53
msgid "Append to end of file"
msgstr "Pripojí na koniec súboru"
-#: gio/gio-tool-save.c:52
+#: gio/gio-tool-save.c:54
msgid "When creating, restrict access to the current user"
msgstr "Pri vytváraní súboru obmedzí prístup len na aktuálneho používateľa"
-#: gio/gio-tool-save.c:53
+#: gio/gio-tool-save.c:55
msgid "When replacing, replace as if the destination did not exist"
msgstr "Pri nahradení uskutoční nahradenie ako keby cieľ neexistoval"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:55
+#: gio/gio-tool-save.c:57
msgid "Print new etag at end"
msgstr "Na konci vypíše nový etag"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:59
msgid "The etag of the file being overwritten"
msgstr "Etag prepisovaného súboru"
-#: gio/gio-tool-save.c:57
+#: gio/gio-tool-save.c:59
msgid "ETAG"
msgstr "ETAG"
# PŠ: file handle (win32) je ekvivalent file descriptor - dovolil som si to preložiť rovnako. Keďže používané manipulátor, alebo rukoväť sú oba zlé preklady (obsluha je handler)... A dokonca aj v slovenskom preklade Správcu úloh vo win je použitý popisovač.
-#: gio/gio-tool-save.c:113
+#: gio/gio-tool-save.c:115
msgid "Error reading from standard input"
msgstr "Chyba pri čítaní zo štandardného vstupu"
#. Translators: The "etag" is a token allowing to verify whether a file has been modified
-#: gio/gio-tool-save.c:139
+#: gio/gio-tool-save.c:141
msgid "Etag not available\n"
msgstr "Etag nie je k dispozícii\n"
-#: gio/gio-tool-save.c:163
+#: gio/gio-tool-save.c:165
msgid "Read from standard input and save to DEST."
msgstr "Číta z predvoleného vstupu a ukladá do CIEĽA."
-#: gio/gio-tool-save.c:183
+#: gio/gio-tool-save.c:185
msgid "No destination given"
msgstr "Neposkytnutý žiadny cieľ"
-#: gio/gio-tool-set.c:33
+#: gio/gio-tool-set.c:36
msgid "Type of the attribute"
msgstr "Typ atribútu"
-#: gio/gio-tool-set.c:33
+#: gio/gio-tool-set.c:36
msgid "TYPE"
msgstr "TYP"
-#: gio/gio-tool-set.c:89
+#: gio/gio-tool-set.c:38
+#, fuzzy
+#| msgid "Set a file attribute"
+msgid "Unset given attribute"
+msgstr "Nastaví atribút súboru"
+
+#: gio/gio-tool-set.c:95
msgid "ATTRIBUTE"
msgstr "ATRIBÚT"
-#: gio/gio-tool-set.c:89
+#: gio/gio-tool-set.c:95
msgid "VALUE"
msgstr "HODNOTA"
-#: gio/gio-tool-set.c:93
+#: gio/gio-tool-set.c:99
msgid "Set a file attribute of LOCATION."
msgstr "Nastavuje atribút súboru z UMIESTNENIA."
-#: gio/gio-tool-set.c:113
+#: gio/gio-tool-set.c:119
msgid "Location not specified"
msgstr "Umiestnenie neurčené"
-#: gio/gio-tool-set.c:120
+#: gio/gio-tool-set.c:126
msgid "Attribute not specified"
msgstr "Atribút neurčený"
-#: gio/gio-tool-set.c:130
+#: gio/gio-tool-set.c:143
msgid "Value not specified"
msgstr "Hodnota neurčená"
-#: gio/gio-tool-set.c:180
+#: gio/gio-tool-set.c:193
#, c-format
msgid "Invalid attribute type “%s”"
msgstr "Neplatný typ atribútu „%s“"
-#: gio/gio-tool-trash.c:34
+#: gio/gio-tool-trash.c:36
msgid "Empty the trash"
msgstr "Vyprázdni Kôš"
-#: gio/gio-tool-trash.c:35
+#: gio/gio-tool-trash.c:37
#, fuzzy
#| msgid "List the contents of the locations."
msgid "List files in the trash with their original locations"
msgstr "Vypíše obsah umiestnení."
-#: gio/gio-tool-trash.c:36
+#: gio/gio-tool-trash.c:38
msgid ""
"Restore a file from trash to its original location (possibly recreating the "
"directory)"
msgstr ""
-#: gio/gio-tool-trash.c:106
-#, fuzzy
-#| msgid "Unable to find terminal required for application"
+#: gio/gio-tool-trash.c:108
msgid "Unable to find original path"
-msgstr "Nepodarilo sa nájsť terminál vyžadovaný pre aplikáciu"
+msgstr "Nie je možné nájsť pôvodnú cestu"
-#: gio/gio-tool-trash.c:123
-#, fuzzy
-#| msgid "Unable to create socket: %s"
+#: gio/gio-tool-trash.c:125
msgid "Unable to recreate original location: "
-msgstr "Nepodarilo sa vytvoriť soket: %s"
+msgstr "Nie je možné opätovne vytvoriť pôvodné umiestnenie: "
-#: gio/gio-tool-trash.c:136
-#, fuzzy
-#| msgid "unable to find desktop file for application %s\n"
+#: gio/gio-tool-trash.c:138
msgid "Unable to move file to its original location: "
-msgstr "nepodarilo sa nájsť súbor desktop pre aplikáciu %s\n"
+msgstr "Nie je možné presunúť súbor do jeho pôvodného umiestnenia: "
-#: gio/gio-tool-trash.c:225
+#: gio/gio-tool-trash.c:227
#, fuzzy
#| msgid "Move files or directories to the trash."
msgid "Move/Restore files or directories to the trash."
msgstr "Presúva súbory alebo adresáre do Koša."
-#: gio/gio-tool-trash.c:227
+#: gio/gio-tool-trash.c:229
msgid ""
"Note: for --restore switch, if the original location of the trashed file \n"
"already exists, it will not be overwritten unless --force is set."
msgstr ""
-#: gio/gio-tool-trash.c:258
+#: gio/gio-tool-trash.c:260
msgid "Location given doesn't start with trash:///"
-msgstr ""
+msgstr "Zadané umiestnenie nezačína s predponou trash:///"
-#: gio/gio-tool-tree.c:33
+#: gio/gio-tool-tree.c:35
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Nasleduje symbolické odkazy, pripojenia a skratky"
-#: gio/gio-tool-tree.c:244
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Vypíše obsah adresárov v stromovom zobrazení."
-#: gio/glib-compile-resources.c:140 gio/glib-compile-schemas.c:1514
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1513
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Prvok <%s> nie je dovolený vo vnútri <%s>"
-#: gio/glib-compile-resources.c:144
+#: gio/glib-compile-resources.c:146
#, c-format
msgid "Element <%s> not allowed at toplevel"
msgstr "Prvok <%s> nie je dovolený na najvyššej úrovni"
-#: gio/glib-compile-resources.c:234
+#: gio/glib-compile-resources.c:236
#, c-format
msgid "File %s appears multiple times in the resource"
msgstr "Súbor %s sa v zdroji objavil viackrát"
-#: gio/glib-compile-resources.c:245
+#: gio/glib-compile-resources.c:247
#, c-format
msgid "Failed to locate “%s” in any source directory"
msgstr "Nepodarilo sa nájsť „%s“ v žiadnom zdrojovom adresári"
-#: gio/glib-compile-resources.c:256
+#: gio/glib-compile-resources.c:258
#, c-format
msgid "Failed to locate “%s” in current directory"
msgstr "Zlyhalo hľadanie „%s“ v aktuálnom adresári"
-#: gio/glib-compile-resources.c:290
+#: gio/glib-compile-resources.c:292
#, c-format
msgid "Unknown processing option “%s”"
msgstr "Neznáma voľba spracovania „%s“"
@@ -2491,38 +2526,38 @@ msgstr "Neznáma voľba spracovania „%s“"
#. * the second %s is an environment variable, and the third
#. * %s is a command line tool
#.
-#: gio/glib-compile-resources.c:310 gio/glib-compile-resources.c:367
-#: gio/glib-compile-resources.c:424
+#: gio/glib-compile-resources.c:312 gio/glib-compile-resources.c:369
+#: gio/glib-compile-resources.c:426
#, c-format
msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
msgstr ""
-#: gio/glib-compile-resources.c:457
+#: gio/glib-compile-resources.c:459
#, c-format
msgid "Error reading file %s: %s"
msgstr "Chyba pri čítaní súboru %s: %s"
-#: gio/glib-compile-resources.c:477
+#: gio/glib-compile-resources.c:479
#, c-format
msgid "Error compressing file %s"
msgstr "Chyba pri komprimovaní súboru %s"
-#: gio/glib-compile-resources.c:541
+#: gio/glib-compile-resources.c:543
#, c-format
msgid "text may not appear inside <%s>"
msgstr "text sa nemôže nachádzať vo vnútri <%s>"
-#: gio/glib-compile-resources.c:737 gio/glib-compile-schemas.c:2172
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2171
msgid "Show program version and exit"
msgstr "Zobrazí verziu programu a skončí"
# cmd desc
-#: gio/glib-compile-resources.c:738
+#: gio/glib-compile-resources.c:822
msgid "Name of the output file"
msgstr "Názov výstupného súboru"
# cmd desc
-#: gio/glib-compile-resources.c:739
+#: gio/glib-compile-resources.c:823
msgid ""
"The directories to load files referenced in FILE from (default: current "
"directory)"
@@ -2530,53 +2565,53 @@ msgstr ""
"Adresáre odkiaľ sa majú čítať súbory odkazované v SÚBORe (predvolené: "
"aktuálny adresár)"
-#: gio/glib-compile-resources.c:739 gio/glib-compile-schemas.c:2173
-#: gio/glib-compile-schemas.c:2202
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2172
+#: gio/glib-compile-schemas.c:2201
msgid "DIRECTORY"
msgstr "ADRESÁR"
# cmd desc
-#: gio/glib-compile-resources.c:740
+#: gio/glib-compile-resources.c:824
msgid ""
"Generate output in the format selected for by the target filename extension"
msgstr "Vygeneruje výstup vo formáte stanovenom podľa prípony cieľového súboru"
#  cmd desc
-#: gio/glib-compile-resources.c:741
+#: gio/glib-compile-resources.c:825
msgid "Generate source header"
msgstr "Vygeneruje zdrojové hlavičky"
# cmd desc
-#: gio/glib-compile-resources.c:742
+#: gio/glib-compile-resources.c:826
msgid "Generate source code used to link in the resource file into your code"
msgstr ""
"Vygeneruje zdrojový kód použitý na prepojenie súboru zdrojov s vaším kódom"
# cmd desc
-#: gio/glib-compile-resources.c:743
+#: gio/glib-compile-resources.c:827
msgid "Generate dependency list"
msgstr "Vygeneruje zoznam závislostí"
-#: gio/glib-compile-resources.c:744
+#: gio/glib-compile-resources.c:828
msgid "Name of the dependency file to generate"
msgstr "Názov súboru závislostí na vygenerovanie"
# cmd line desc
-#: gio/glib-compile-resources.c:745
+#: gio/glib-compile-resources.c:829
msgid "Include phony targets in the generated dependency file"
msgstr "Zahrnie fiktívne ciele do vygenerovaného súboru závislosti"
# cmd desc
-#: gio/glib-compile-resources.c:746
+#: gio/glib-compile-resources.c:830
msgid "Don’t automatically create and register resource"
msgstr "Nebude vytvárať a registrovať zdroj automaticky"
# cmd desc
-#: gio/glib-compile-resources.c:747
+#: gio/glib-compile-resources.c:831
msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
msgstr "Nebude exportovať funkcie; deklaruje ich pomocou G_GNUC_INTERNAL"
-#: gio/glib-compile-resources.c:748
+#: gio/glib-compile-resources.c:832
msgid ""
"Don’t embed resource data in the C file; assume it's linked externally "
"instead"
@@ -2585,12 +2620,16 @@ msgstr ""
"prepojené externe"
# cmd desc
-#: gio/glib-compile-resources.c:749
+#: gio/glib-compile-resources.c:833
msgid "C identifier name used for the generated source code"
msgstr "Identifikačný názov v jazyku C použitý pre generovaný zdrojový kód"
+#: gio/glib-compile-resources.c:834
+msgid "The target C compiler (default: the CC environment variable)"
+msgstr ""
+
# cmd program desc
-#: gio/glib-compile-resources.c:775
+#: gio/glib-compile-resources.c:860
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2600,121 +2639,121 @@ msgstr ""
"Súbory špecifikácie zdrojov majú príponu .gresource.xml,\n"
"a súbor zdrojov má príponu s názvom .gresource."
-#: gio/glib-compile-resources.c:797
+#: gio/glib-compile-resources.c:882
msgid "You should give exactly one file name\n"
msgstr "Mali by ste zadať práve jeden názov súboru\n"
-#: gio/glib-compile-schemas.c:92
+#: gio/glib-compile-schemas.c:94
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "atribút nick musí mať najmenej 2 znaky"
-#: gio/glib-compile-schemas.c:103
+#: gio/glib-compile-schemas.c:105
#, c-format
msgid "Invalid numeric value"
msgstr "Neplatná číselná hodnota"
-#: gio/glib-compile-schemas.c:111
+#: gio/glib-compile-schemas.c:113
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> je už určený"
-#: gio/glib-compile-schemas.c:119
+#: gio/glib-compile-schemas.c:121
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' je už určený"
-#: gio/glib-compile-schemas.c:133
+#: gio/glib-compile-schemas.c:135
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "hodnoty príznakov musia mať nastavený najviac 1 bit"
-#: gio/glib-compile-schemas.c:158
+#: gio/glib-compile-schemas.c:160
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> musí obsahovať aspoň jednu hodnotu <value>"
-#: gio/glib-compile-schemas.c:314
+#: gio/glib-compile-schemas.c:316
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> sa nenachádza v určenom rozsahu"
-#: gio/glib-compile-schemas.c:326
+#: gio/glib-compile-schemas.c:328
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> nie je platným členom určeného vymenovaného typu"
-#: gio/glib-compile-schemas.c:332
+#: gio/glib-compile-schemas.c:334
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> obsiahnutý reťazec nie je medzi príznakmi určeného typu"
-#: gio/glib-compile-schemas.c:338
+#: gio/glib-compile-schemas.c:340
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> obsiahnutý reťazec sa nenachádza vo výbere <choices>"
-#: gio/glib-compile-schemas.c:372
+#: gio/glib-compile-schemas.c:374
msgid "<range/> already specified for this key"
msgstr "Rozsah <range/> je už pre tento kľúč určený"
-#: gio/glib-compile-schemas.c:390
+#: gio/glib-compile-schemas.c:392
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> nie je povolený pre kľúče typu „%s“"
-#: gio/glib-compile-schemas.c:407
+#: gio/glib-compile-schemas.c:409
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "Minimum určené pomocou <range> je väčšie ako maximum"
-#: gio/glib-compile-schemas.c:432
+#: gio/glib-compile-schemas.c:434
#, c-format
msgid "unsupported l10n category: %s"
msgstr "nepodporovaná kategória l10n: %s"
-#: gio/glib-compile-schemas.c:440
+#: gio/glib-compile-schemas.c:442
msgid "l10n requested, but no gettext domain given"
msgstr "vyžadovaná l10n, no nebola zadaná doména gettext"
-#: gio/glib-compile-schemas.c:452
+#: gio/glib-compile-schemas.c:454
msgid "translation context given for value without l10n enabled"
msgstr "poskytnutý kontext pre prekladateľov pre hodnotu bez povolenej l10n"
-#: gio/glib-compile-schemas.c:474
+#: gio/glib-compile-schemas.c:476
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Zlyhalo spracovanie hodnoty <default> typu „%s“: "
-#: gio/glib-compile-schemas.c:491
+#: gio/glib-compile-schemas.c:493
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr "<choices> nemôžu byť určené pri kľúčoch, ktoré majú vymenovaný typ"
-#: gio/glib-compile-schemas.c:500
+#: gio/glib-compile-schemas.c:502
msgid "<choices> already specified for this key"
msgstr "<choices> je pre tento kľúč už určený"
-#: gio/glib-compile-schemas.c:512
+#: gio/glib-compile-schemas.c:514
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> nie je povolený pre kľúče typu „%s“"
-#: gio/glib-compile-schemas.c:528
+#: gio/glib-compile-schemas.c:530
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> je už zadaný"
-#: gio/glib-compile-schemas.c:543
+#: gio/glib-compile-schemas.c:545
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> musí obsahovať aspoň jeden <choice>"
-#: gio/glib-compile-schemas.c:557
+#: gio/glib-compile-schemas.c:559
msgid "<aliases> already specified for this key"
msgstr "<aliases> je pre tento kľúč už určený"
-#: gio/glib-compile-schemas.c:561
+#: gio/glib-compile-schemas.c:563
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2722,7 +2761,7 @@ msgstr ""
"<aliases> môže byť určený iba pre kľúče s vymenovaným typom, príznakmi alebo "
"za <choices>"
-#: gio/glib-compile-schemas.c:580
+#: gio/glib-compile-schemas.c:582
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2730,42 +2769,42 @@ msgid ""
msgstr ""
"bol zadaný <alias value='%s'/> pričom „%s“ je už členom vymenovaného typu"
-#: gio/glib-compile-schemas.c:586
+#: gio/glib-compile-schemas.c:588
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"bol zadaný <alias value='%s'/> pričom už bol zadaný <choice value='%s'/>"
-#: gio/glib-compile-schemas.c:594
+#: gio/glib-compile-schemas.c:596
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> je už zadaný"
-#: gio/glib-compile-schemas.c:604
+#: gio/glib-compile-schemas.c:606
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "cieľ aliasu „%s“ ne je vymenovaný typ"
-#: gio/glib-compile-schemas.c:605
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "cieľ aliasu „%s“ ne je v <choices>"
-#: gio/glib-compile-schemas.c:620
+#: gio/glib-compile-schemas.c:622
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> musí obsahovať aspoň jeden <alias>"
-#: gio/glib-compile-schemas.c:797
+#: gio/glib-compile-schemas.c:796
msgid "Empty names are not permitted"
msgstr "Prázdne názvy nie sú povolené"
-#: gio/glib-compile-schemas.c:807
+#: gio/glib-compile-schemas.c:806
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Neplatný názov „%s“: názvy musia začínať malým písmenom"
-#: gio/glib-compile-schemas.c:819
+#: gio/glib-compile-schemas.c:818
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2774,38 +2813,38 @@ msgstr ""
"Neplatný názov „%s“: neplatný znak „%c“: povolené sú iba malé písmená, čísla "
"a spojovník („-“)"
-#: gio/glib-compile-schemas.c:828
+#: gio/glib-compile-schemas.c:827
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr ""
"Neplatný názov „%s“: dva za sebou nasledujúce spojovníky („--“) nie sú "
"povolené"
-#: gio/glib-compile-schemas.c:837
+#: gio/glib-compile-schemas.c:836
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Neplatný názov „%s“: posledný znak nesmie byť spojovník („-“)."
-#: gio/glib-compile-schemas.c:845
+#: gio/glib-compile-schemas.c:844
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Neplatný názov „%s“: maximálna dĺžka je 1024"
-#: gio/glib-compile-schemas.c:917
+#: gio/glib-compile-schemas.c:916
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> je už určený"
-#: gio/glib-compile-schemas.c:943
+#: gio/glib-compile-schemas.c:942
msgid "Cannot add keys to a “list-of” schema"
msgstr "Nedajú sa pridať kľúče do schémy „list-of“"
-#: gio/glib-compile-schemas.c:954
+#: gio/glib-compile-schemas.c:953
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> je už určený"
-#: gio/glib-compile-schemas.c:972
+#: gio/glib-compile-schemas.c:971
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2814,7 +2853,7 @@ msgstr ""
"<key name='%s'> zatieni <key name='%s'> v <schema id='%s'>; na úpravu "
"hodnoty použite <override>"
-#: gio/glib-compile-schemas.c:983
+#: gio/glib-compile-schemas.c:982
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2823,56 +2862,56 @@ msgstr ""
"Ako atribút pre <key> musí byť určená práve jedna hodnota z „type“, „enum“ "
"alebo „flags“"
-#: gio/glib-compile-schemas.c:1002
+#: gio/glib-compile-schemas.c:1001
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> nie je (zatiaľ) definovaný."
-#: gio/glib-compile-schemas.c:1017
+#: gio/glib-compile-schemas.c:1016
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Neplatný reťazec typu GVariant „%s“"
-#: gio/glib-compile-schemas.c:1047
+#: gio/glib-compile-schemas.c:1046
msgid "<override> given but schema isn’t extending anything"
msgstr "Zadaný <override>, no schéma nič nerozširuje"
-#: gio/glib-compile-schemas.c:1060
+#: gio/glib-compile-schemas.c:1059
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Žiadny <key name='%s'> na preváženie"
-#: gio/glib-compile-schemas.c:1068
+#: gio/glib-compile-schemas.c:1067
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> je už určený"
-#: gio/glib-compile-schemas.c:1141
+#: gio/glib-compile-schemas.c:1140
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> je už určený"
-#: gio/glib-compile-schemas.c:1153
+#: gio/glib-compile-schemas.c:1152
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> rozširuje zatiaľ neexistujúcu schému „%s“"
-#: gio/glib-compile-schemas.c:1169
+#: gio/glib-compile-schemas.c:1168
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> je zoznamom zatiaľ neexistujúcej schémy „%s“"
-#: gio/glib-compile-schemas.c:1177
+#: gio/glib-compile-schemas.c:1176
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Nemôže byť zoznamom schémy s cestou"
-#: gio/glib-compile-schemas.c:1187
+#: gio/glib-compile-schemas.c:1186
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Nemôže rozšíriť schému s cestou"
-#: gio/glib-compile-schemas.c:1197
+#: gio/glib-compile-schemas.c:1196
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2880,7 +2919,7 @@ msgstr ""
"<schema id='%s'> je zoznamom rozširujúcim <schema id='%s'>, ktorý nie je "
"zoznamom"
-#: gio/glib-compile-schemas.c:1207
+#: gio/glib-compile-schemas.c:1206
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2889,17 +2928,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> rozširuje <schema id='%s' list-of='%s'>, no "
"„%s“ nerozširuje „%s“"
-#: gio/glib-compile-schemas.c:1224
+#: gio/glib-compile-schemas.c:1223
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "Cesta (ak je zadaná) musí začínať a končiť lomkou"
-#: gio/glib-compile-schemas.c:1231
+#: gio/glib-compile-schemas.c:1230
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Cesta zoznamu musí končiť „:/“"
-#: gio/glib-compile-schemas.c:1240
+#: gio/glib-compile-schemas.c:1239
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2908,49 +2947,49 @@ msgstr ""
"Upozornenie: Schéma „%s“ má cestu „%s“. Cesty začínajúce „/apps/“, „/"
"desktop/“ alebo „/system/“ sú zavrhnuté."
-#: gio/glib-compile-schemas.c:1270
+#: gio/glib-compile-schemas.c:1269
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> je už určený"
-#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
+#: gio/glib-compile-schemas.c:1419 gio/glib-compile-schemas.c:1435
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Iba jeden prvok <%s> je dovolený vo vnútri <%s>"
-#: gio/glib-compile-schemas.c:1518
+#: gio/glib-compile-schemas.c:1517
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Prvok <%s> nie je dovolený na najvyššej úrovni"
-#: gio/glib-compile-schemas.c:1536
+#: gio/glib-compile-schemas.c:1535
msgid "Element <default> is required in <key>"
msgstr "Prvok <default> sa v <key> vyžaduje"
-#: gio/glib-compile-schemas.c:1626
+#: gio/glib-compile-schemas.c:1625
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Text sa nemôže nachádzať vo vnútri <%s>"
-#: gio/glib-compile-schemas.c:1694
+#: gio/glib-compile-schemas.c:1693
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Upozornenie: nedefinovaná referencia na <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
+#: gio/glib-compile-schemas.c:1832 gio/glib-compile-schemas.c:1911
msgid "--strict was specified; exiting."
msgstr "Bol určený parameter --strict. Ukončuje sa."
-#: gio/glib-compile-schemas.c:1845
+#: gio/glib-compile-schemas.c:1844
msgid "This entire file has been ignored."
msgstr "Celý tento súbor bol ignorovaný."
-#: gio/glib-compile-schemas.c:1908
+#: gio/glib-compile-schemas.c:1907
msgid "Ignoring this file."
msgstr "Ignoruje sa tento súbor."
-#: gio/glib-compile-schemas.c:1963
+#: gio/glib-compile-schemas.c:1962
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2959,7 +2998,7 @@ msgstr ""
"Kľúč „%s“ neexistuje v schéme „%s“ ako to bolo určené v súbore preváženia "
"„%s“. Ignoruje sa preváženie tohto kľúča."
-#: gio/glib-compile-schemas.c:1971
+#: gio/glib-compile-schemas.c:1970
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2968,7 +3007,7 @@ msgstr ""
"Kľúč „%s“ neexistuje v schéme „%s“ ako to bolo určené v súbore preváženia "
"„%s“ a bol určený parameter --strict. Ukončuje sa."
-#: gio/glib-compile-schemas.c:1993
+#: gio/glib-compile-schemas.c:1992
#, fuzzy, c-format
#| msgid ""
#| "override for key '%s' in schema '%s' in override file '%s' is not in the "
@@ -2980,7 +3019,7 @@ msgstr ""
"preváženie kľúča „%s“ v schéme „%s“ v súbore preváženia „%s“ nie je v "
"zozname platných možností"
-#: gio/glib-compile-schemas.c:2002
+#: gio/glib-compile-schemas.c:2001
#, fuzzy, c-format
#| msgid ""
#| "override for key '%s' in schema '%s' in override file '%s' is not in the "
@@ -2992,7 +3031,7 @@ msgstr ""
"preváženie kľúča „%s“ v schéme „%s“ v súbore preváženia „%s“ nie je v "
"zozname platných možností"
-#: gio/glib-compile-schemas.c:2026
+#: gio/glib-compile-schemas.c:2025
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -3001,7 +3040,7 @@ msgstr ""
"Chyba pri analyzovaní kľúča „%s“ v schéme „%s“ ako bolo určené v súbore "
"preváženia „%s“: %s. Ignoruje sa preváženie tohto kľúča."
-#: gio/glib-compile-schemas.c:2038
+#: gio/glib-compile-schemas.c:2037
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -3010,7 +3049,7 @@ msgstr ""
"Chyba pri analyzovaní kľúča „%s“ v schéme „%s“ ako bolo určené v súbore "
"preváženia „%s“: %s. Bol určený parameter --strict. Ukončuje sa."
-#: gio/glib-compile-schemas.c:2065
+#: gio/glib-compile-schemas.c:2064
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3019,7 +3058,7 @@ msgstr ""
"Preváženie kľúča „%s“ v schéme „%s“ v prevažujúcom súbore „%s“ je mimo "
"rozsah daný schémou. Ignoruje sa preváženie tohto kľúča."
-#: gio/glib-compile-schemas.c:2075
+#: gio/glib-compile-schemas.c:2074
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3028,7 +3067,7 @@ msgstr ""
"Preváženie kľúča „%s“ v schéme „%s“ v prevažujúcom súbore „%s“ je mimo "
"rozsah daný schémou a bol určený parameter --strict. Ukončuje sa."
-#: gio/glib-compile-schemas.c:2101
+#: gio/glib-compile-schemas.c:2100
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3037,7 +3076,7 @@ msgstr ""
"Preváženie kľúča „%s“ v schéme „%s“ v súbore preváženia „%s“ nie je v "
"zozname platných možností. Ignoruje sa preváženie tohto kľúča."
-#: gio/glib-compile-schemas.c:2111
+#: gio/glib-compile-schemas.c:2110
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3047,26 +3086,26 @@ msgstr ""
"zozname platných možností a bol určený parameter --strict. Ukončuje sa."
# cmd desc
-#: gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2172
msgid "Where to store the gschemas.compiled file"
msgstr "Kam sa má uložiť súbor gschemas.compiled"
# cmd desc
-#: gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-schemas.c:2173
msgid "Abort on any errors in schemas"
msgstr "Preruší pri ľubovoľnej chybe v schémach"
# cmd desc
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2174
msgid "Do not write the gschema.compiled file"
msgstr "Nezapíše súbor gschema.compiled"
# cmd desc
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2175
msgid "Do not enforce key name restrictions"
msgstr "Nevynúti obmedzenia pre názvy kľúčov"
-#: gio/glib-compile-schemas.c:2205
+#: gio/glib-compile-schemas.c:2204
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3076,24 +3115,24 @@ msgstr ""
"Súbory schém musia mať príponu .gschema.xml,\n"
"a súbor vyrovnávacej pamäte sa nazýva gschemas.compiled."
-#: gio/glib-compile-schemas.c:2226
+#: gio/glib-compile-schemas.c:2225
msgid "You should give exactly one directory name"
msgstr "Mali by ste zadať práve jeden názov adresára"
-#: gio/glib-compile-schemas.c:2269
+#: gio/glib-compile-schemas.c:2268
msgid "No schema files found: doing nothing."
msgstr "Nenájdené žiadne súbory schém: neurobí sa nič."
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2270
msgid "No schema files found: removed existing output file."
msgstr "Nenájdené žiadne súbory schém: existujúci výstupný súbor odstránený."
-#: gio/glocalfile.c:549 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:567 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Neplatný názov súboru %s"
-#: gio/glocalfile.c:982
+#: gio/glocalfile.c:1009
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Chyba pri získavaní informácií o súborovom systéme pre %s: %s"
@@ -3102,356 +3141,358 @@ msgstr "Chyba pri získavaní informácií o súborovom systéme pre %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1123
+#: gio/glocalfile.c:1145
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Obklopujúce pripojenie pre súbor %s sa nepodarilo nájsť"
-#: gio/glocalfile.c:1146
+#: gio/glocalfile.c:1168
msgid "Can’t rename root directory"
msgstr "Koreňový adresár sa nedá premenovať"
-#: gio/glocalfile.c:1164 gio/glocalfile.c:1187
+#: gio/glocalfile.c:1186 gio/glocalfile.c:1209
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Chyba pri premenovaní súboru %s: %s"
-#: gio/glocalfile.c:1171
+#: gio/glocalfile.c:1193
msgid "Can’t rename file, filename already exists"
msgstr "Nedá sa premenovať súbor, názov súboru už existuje"
-#: gio/glocalfile.c:1184 gio/glocalfile.c:2371 gio/glocalfile.c:2399
-#: gio/glocalfile.c:2538 gio/glocalfileoutputstream.c:656
+#: gio/glocalfile.c:1206 gio/glocalfile.c:2409 gio/glocalfile.c:2437
+#: gio/glocalfile.c:2576 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Neplatný názov súboru"
-#: gio/glocalfile.c:1352 gio/glocalfile.c:1363
+#: gio/glocalfile.c:1374 gio/glocalfile.c:1385
#, c-format
msgid "Error opening file %s: %s"
msgstr "Chyba pri otváraní súboru %s: %s"
-#: gio/glocalfile.c:1488
+#: gio/glocalfile.c:1510
#, c-format
msgid "Error removing file %s: %s"
msgstr "Chyba pri odstraňovaní súboru %s: %s"
-#: gio/glocalfile.c:1982 gio/glocalfile.c:1993
+#: gio/glocalfile.c:2004 gio/glocalfile.c:2015 gio/glocalfile.c:2042
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Chyba pri zahadzovaní súboru %s do Koša: %s"
-#: gio/glocalfile.c:2031
+#: gio/glocalfile.c:2062
#, fuzzy, c-format
#| msgid "Unable to create trash dir %s: %s"
msgid "Unable to create trash directory %s: %s"
msgstr "Nepodarilo sa vytvoriť adresár Kôš %s: %s"
-#: gio/glocalfile.c:2052
+#: gio/glocalfile.c:2083
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Nepodarilo sa nájsť adresár najvyššej úrovne pre Kôš %s"
-#: gio/glocalfile.c:2060
+#: gio/glocalfile.c:2091
#, fuzzy, c-format
#| msgid "Copy (reflink/clone) between mounts is not supported"
msgid "Trashing on system internal mounts is not supported"
msgstr "Kopírovanie (odkaz/klon) medzi pripojeniami nie je podporované"
-#: gio/glocalfile.c:2146 gio/glocalfile.c:2174
+#: gio/glocalfile.c:2177 gio/glocalfile.c:2205
#, fuzzy, c-format
#| msgid "Unable to find or create trash directory for %s"
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Nepodarilo sa nájsť ani vytvoriť adresár Kôš pre %s"
-#: gio/glocalfile.c:2220
+#: gio/glocalfile.c:2249
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr ""
"Nepodarilo sa vytvoriť informačný súbor o zahadzovaní do Koša pre %s: %s"
-#: gio/glocalfile.c:2282
+#: gio/glocalfile.c:2320
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr ""
"Nepodarilo sa zahodiť súbor do Koša cez hranice súborových systémov: %s"
-#: gio/glocalfile.c:2286 gio/glocalfile.c:2342
+#: gio/glocalfile.c:2324 gio/glocalfile.c:2380
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Nepodarilo sa zahodiť súbor %s do Koša: %s"
-#: gio/glocalfile.c:2348
+#: gio/glocalfile.c:2386
#, c-format
msgid "Unable to trash file %s"
msgstr "Nepodarilo sa zahodiť súbor %s do Koša"
-#: gio/glocalfile.c:2374
+#: gio/glocalfile.c:2412
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Chyba pri vytváraní adresára %s: %s"
-#: gio/glocalfile.c:2403
+#: gio/glocalfile.c:2441
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Súborový systém nepodporuje symbolické odkazy"
-#: gio/glocalfile.c:2406
+#: gio/glocalfile.c:2444
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Chyba pri vytváraní symbolického odkazu %s: %s"
-#: gio/glocalfile.c:2449 gio/glocalfile.c:2484 gio/glocalfile.c:2541
+#: gio/glocalfile.c:2487 gio/glocalfile.c:2522 gio/glocalfile.c:2579
#, c-format
msgid "Error moving file %s: %s"
msgstr "Chyba pri presúvaní súboru %s: %s"
-#: gio/glocalfile.c:2472
+#: gio/glocalfile.c:2510
msgid "Can’t move directory over directory"
msgstr "Nedá sa prepísať adresár adresárom počas presúvania"
-#: gio/glocalfile.c:2498 gio/glocalfileoutputstream.c:1108
-#: gio/glocalfileoutputstream.c:1122 gio/glocalfileoutputstream.c:1137
-#: gio/glocalfileoutputstream.c:1154 gio/glocalfileoutputstream.c:1168
+#: gio/glocalfile.c:2536 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
+#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Vytvorenie súboru zálohy zlyhalo"
-#: gio/glocalfile.c:2517
+#: gio/glocalfile.c:2555
#, c-format
msgid "Error removing target file: %s"
msgstr "Chyba pri odstraňovaní cieľového súboru: %s"
-#: gio/glocalfile.c:2531
+#: gio/glocalfile.c:2569
msgid "Move between mounts not supported"
msgstr "Presun medzi pripojeniami nie je podporovaný"
-#: gio/glocalfile.c:2705
+#: gio/glocalfile.c:2745
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Nepodarilo sa určiť využitie disku %s: %s"
-#: gio/glocalfileinfo.c:767
+#: gio/glocalfileinfo.c:779
msgid "Attribute value must be non-NULL"
msgstr "Hodnota atribútu nesmie byť NULL"
-#: gio/glocalfileinfo.c:774
-msgid "Invalid attribute type (string expected)"
+#: gio/glocalfileinfo.c:786
+#, fuzzy
+#| msgid "Invalid attribute type (string expected)"
+msgid "Invalid attribute type (string or invalid expected)"
msgstr "Neplatný typ atribútu (očakávaný reťazec)"
-#: gio/glocalfileinfo.c:781
+#: gio/glocalfileinfo.c:793
msgid "Invalid extended attribute name"
msgstr "Neplatný názov rozšíreného atribútu"
-#: gio/glocalfileinfo.c:821
+#: gio/glocalfileinfo.c:844
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Chyba pri nastavovaní rozšíreného atribútu „%s“: %s"
-#: gio/glocalfileinfo.c:1709 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1823 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (neplatné kódovanie)"
-#: gio/glocalfileinfo.c:1868 gio/glocalfileoutputstream.c:943
-#: gio/glocalfileoutputstream.c:995
+#: gio/glocalfileinfo.c:1982 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Chyba pri získavaní informácií pre súbor „%s“: %s"
-#: gio/glocalfileinfo.c:2134
+#: gio/glocalfileinfo.c:2288
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Chyba pri získavaní informácií pre popisovač súboru: %s"
-#: gio/glocalfileinfo.c:2179
+#: gio/glocalfileinfo.c:2333
msgid "Invalid attribute type (uint32 expected)"
msgstr "Neplatný typ atribútu (očakávané uint32)"
-#: gio/glocalfileinfo.c:2197
+#: gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (uint64 expected)"
msgstr "Neplatný typ atribútu (očakávané uint64)"
-#: gio/glocalfileinfo.c:2216 gio/glocalfileinfo.c:2235
+#: gio/glocalfileinfo.c:2370 gio/glocalfileinfo.c:2389
msgid "Invalid attribute type (byte string expected)"
msgstr "Neplatný typ atribútu (očakávaný bajtový reťazec)"
-#: gio/glocalfileinfo.c:2282
+#: gio/glocalfileinfo.c:2436
msgid "Cannot set permissions on symlinks"
msgstr "Pre symbolické odkazy sa nedajú nastaviť oprávnenia"
-#: gio/glocalfileinfo.c:2298
+#: gio/glocalfileinfo.c:2452
#, c-format
msgid "Error setting permissions: %s"
msgstr "Chyba pri nastavovaní oprávnení: %s"
-#: gio/glocalfileinfo.c:2349
+#: gio/glocalfileinfo.c:2503
#, c-format
msgid "Error setting owner: %s"
msgstr "Chyba pri nastavovaní vlastníka: %s"
-#: gio/glocalfileinfo.c:2372
+#: gio/glocalfileinfo.c:2526
msgid "symlink must be non-NULL"
msgstr "symbolický odkaz nesmie byť NULL"
-#: gio/glocalfileinfo.c:2382 gio/glocalfileinfo.c:2401
-#: gio/glocalfileinfo.c:2412
+#: gio/glocalfileinfo.c:2536 gio/glocalfileinfo.c:2555
+#: gio/glocalfileinfo.c:2566
#, c-format
msgid "Error setting symlink: %s"
msgstr "Chyba pri nastavovaní symbolického odkazu: %s"
-#: gio/glocalfileinfo.c:2391
+#: gio/glocalfileinfo.c:2545
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"Chyba pri nastavovaní symbolického odkazu: súbor nie je symbolický odkaz"
-#: gio/glocalfileinfo.c:2463
+#: gio/glocalfileinfo.c:2637
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "%d nanosekúnd navyše pre UNIXovú časovú značku %lld je záporných"
-#: gio/glocalfileinfo.c:2472
+#: gio/glocalfileinfo.c:2646
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr "%d nanosekúnd navyše pre UNIXovú časovú značku %lld dosiahlo 1 sekundu"
-#: gio/glocalfileinfo.c:2482
+#: gio/glocalfileinfo.c:2656
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "UNIXová časová značka %lld sa nevmestí do 64 bitov"
-#: gio/glocalfileinfo.c:2493
+#: gio/glocalfileinfo.c:2667
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"UNIXová časová značka %lld je mimo rozsahu podporovaného systémom Windows"
-#: gio/glocalfileinfo.c:2570
+#: gio/glocalfileinfo.c:2799
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Názov súboru „%s“ nemôže byť prevedený na kódovanie UTF-16"
-#: gio/glocalfileinfo.c:2589
+#: gio/glocalfileinfo.c:2818
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Súbor „%s“ sa nedá otvoriť: Chyba systému Windows %lu"
-#: gio/glocalfileinfo.c:2602
+#: gio/glocalfileinfo.c:2831
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "Chyba pri nastavovaní času prístupu alebo zmeny súboru „%s“: %lu"
-#: gio/glocalfileinfo.c:2703
+#: gio/glocalfileinfo.c:2988
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Chyba pri nastavovaní času prístupu alebo zmeny: %s"
-#: gio/glocalfileinfo.c:2726
+#: gio/glocalfileinfo.c:3011
msgid "SELinux context must be non-NULL"
msgstr "Kontext pre SELinux nesmie byť NULL"
-#: gio/glocalfileinfo.c:2733
+#: gio/glocalfileinfo.c:3018
msgid "SELinux is not enabled on this system"
msgstr "SELinux nie je na tomto systéme povolený"
-#: gio/glocalfileinfo.c:2743
+#: gio/glocalfileinfo.c:3028
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Chyba pri nastavovaní kontextu pre SELinux: %s"
-#: gio/glocalfileinfo.c:2836
+#: gio/glocalfileinfo.c:3125
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Nastavovanie atribútu %s nie je podporované"
-#: gio/glocalfileinputstream.c:163 gio/glocalfileoutputstream.c:801
+#: gio/glocalfileinputstream.c:165 gio/glocalfileoutputstream.c:803
#, c-format
msgid "Error reading from file: %s"
msgstr "Chyba pri čítaní zo súboru: %s"
-#: gio/glocalfileinputstream.c:194 gio/glocalfileoutputstream.c:353
-#: gio/glocalfileoutputstream.c:447
+#: gio/glocalfileinputstream.c:196 gio/glocalfileoutputstream.c:355
+#: gio/glocalfileoutputstream.c:449
#, c-format
msgid "Error closing file: %s"
msgstr "Chyba pri zatváraní súboru: %s"
-#: gio/glocalfileinputstream.c:272 gio/glocalfileoutputstream.c:563
-#: gio/glocalfileoutputstream.c:1186
+#: gio/glocalfileinputstream.c:274 gio/glocalfileoutputstream.c:565
+#: gio/glocalfileoutputstream.c:1188
#, c-format
msgid "Error seeking in file: %s"
msgstr "Chyba pri presúvaní v súbore: %s"
-#: gio/glocalfilemonitor.c:866
+#: gio/glocalfilemonitor.c:882
msgid "Unable to find default local file monitor type"
msgstr "Nepodarilo sa nájsť predvolený typ sledovania lokálneho súboru"
-#: gio/glocalfileoutputstream.c:220 gio/glocalfileoutputstream.c:298
-#: gio/glocalfileoutputstream.c:334 gio/glocalfileoutputstream.c:822
+#: gio/glocalfileoutputstream.c:222 gio/glocalfileoutputstream.c:300
+#: gio/glocalfileoutputstream.c:336 gio/glocalfileoutputstream.c:824
#, c-format
msgid "Error writing to file: %s"
msgstr "Chyba pri zápise do súboru: %s"
-#: gio/glocalfileoutputstream.c:380
+#: gio/glocalfileoutputstream.c:382
#, c-format
msgid "Error removing old backup link: %s"
msgstr "Chyba pri odstraňovaní starého záložného odkazu: %s"
-#: gio/glocalfileoutputstream.c:394 gio/glocalfileoutputstream.c:407
+#: gio/glocalfileoutputstream.c:396 gio/glocalfileoutputstream.c:409
#, c-format
msgid "Error creating backup copy: %s"
msgstr "Chyba pri vytváraní záložnej kópie: %s"
-#: gio/glocalfileoutputstream.c:425
+#: gio/glocalfileoutputstream.c:427
#, c-format
msgid "Error renaming temporary file: %s"
msgstr "Chyba pri premenúvaní dočasného súboru: %s"
-#: gio/glocalfileoutputstream.c:609 gio/glocalfileoutputstream.c:1237
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Chyba pri skracovaní súboru: %s"
-#: gio/glocalfileoutputstream.c:662 gio/glocalfileoutputstream.c:907
-#: gio/glocalfileoutputstream.c:1218 gio/gsubprocess.c:226
+#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Chyba pri otváraní súboru %s: %s"
-#: gio/glocalfileoutputstream.c:957
+#: gio/glocalfileoutputstream.c:959
msgid "Target file is a directory"
msgstr "Cieľový súbor je adresár"
-#: gio/glocalfileoutputstream.c:971
+#: gio/glocalfileoutputstream.c:973
msgid "Target file is not a regular file"
msgstr "Cieľový súbor nie je obyčajný súbor"
-#: gio/glocalfileoutputstream.c:1013
+#: gio/glocalfileoutputstream.c:1015
msgid "The file was externally modified"
msgstr "Súbor bol externe zmenený"
-#: gio/glocalfileoutputstream.c:1202
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Chyba pri odstraňovaní starého súboru: %s"
-#: gio/gmemoryinputstream.c:474 gio/gmemoryoutputstream.c:772
+#: gio/gmemoryinputstream.c:476 gio/gmemoryoutputstream.c:764
msgid "Invalid GSeekType supplied"
msgstr "Poskytnutý neplatný GSeekType"
-#: gio/gmemoryinputstream.c:484
+#: gio/gmemoryinputstream.c:486
msgid "Invalid seek request"
msgstr "Neplatná požiadavka na presunutie"
-#: gio/gmemoryinputstream.c:508
+#: gio/gmemoryinputstream.c:510
msgid "Cannot truncate GMemoryInputStream"
msgstr "GMemoryInputStream sa nedá skrátiť"
-#: gio/gmemoryoutputstream.c:567
+#: gio/gmemoryoutputstream.c:570
msgid "Memory output stream not resizable"
msgstr "Pamäťový výstupný prúd nepodporuje zmenu veľkosti"
-#: gio/gmemoryoutputstream.c:583
+#: gio/gmemoryoutputstream.c:586
msgid "Failed to resize memory output stream"
msgstr "Zlyhala zmena veľkosti pamäťového výstupného prúdu"
-#: gio/gmemoryoutputstream.c:673
+#: gio/gmemoryoutputstream.c:665
msgid ""
"Amount of memory required to process the write is larger than available "
"address space"
@@ -3459,32 +3500,32 @@ msgstr ""
"Veľkosť pamäte potrebná na vykonanie zápisu je väčšia ako dostupný adresný "
"priestor"
-#: gio/gmemoryoutputstream.c:782
+#: gio/gmemoryoutputstream.c:774
msgid "Requested seek before the beginning of the stream"
msgstr "Požadovaný presun pred začiatok prúdu"
-#: gio/gmemoryoutputstream.c:797
+#: gio/gmemoryoutputstream.c:789
msgid "Requested seek beyond the end of the stream"
msgstr "Požadovaný presun za koniec prúdu"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement unmount.
-#: gio/gmount.c:399
+#: gio/gmount.c:401
msgid "mount doesn’t implement “unmount”"
msgstr "pripojenie neimplementuje „unmount“ (odpojenie)"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement eject.
-#: gio/gmount.c:475
+#: gio/gmount.c:477
msgid "mount doesn’t implement “eject”"
msgstr "pripojenie neimplementuje „eject“ (vysunutie)"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of unmount or unmount_with_operation.
-#: gio/gmount.c:553
+#: gio/gmount.c:555
msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
msgstr ""
"pripojenie neimplementuje „unmount“ (odpojenie) ani "
@@ -3493,7 +3534,7 @@ msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gmount.c:638
+#: gio/gmount.c:640
msgid "mount doesn’t implement “eject” or “eject_with_operation”"
msgstr ""
"pripojenie neimplementuje „eject“ (vysunutie) ani "
@@ -3502,106 +3543,118 @@ msgstr ""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement remount.
-#: gio/gmount.c:726
+#: gio/gmount.c:728
msgid "mount doesn’t implement “remount”"
msgstr "pripojenie neimplementuje „remount“ (opätovné pripojenie)"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:808
+#: gio/gmount.c:810
msgid "mount doesn’t implement content type guessing"
msgstr "pripojenie neimplementuje odhad typu obsahu"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:895
+#: gio/gmount.c:897
msgid "mount doesn’t implement synchronous content type guessing"
msgstr "pripojenie neimplementuje synchrónny odhad typu obsahu"
-#: gio/gnetworkaddress.c:415
+#: gio/gnetworkaddress.c:417
#, c-format
msgid "Hostname “%s” contains “[” but not “]”"
msgstr "Názov hostiteľa „%s“ obsahuje „[“, ale neobsahuje „]“"
-#: gio/gnetworkmonitorbase.c:219 gio/gnetworkmonitorbase.c:323
+#: gio/gnetworkmonitorbase.c:221 gio/gnetworkmonitorbase.c:325
msgid "Network unreachable"
msgstr "Sieť nedostupná"
-#: gio/gnetworkmonitorbase.c:257 gio/gnetworkmonitorbase.c:287
+#: gio/gnetworkmonitorbase.c:259 gio/gnetworkmonitorbase.c:289
msgid "Host unreachable"
msgstr "Hostiteľ nedostupný"
-#: gio/gnetworkmonitornetlink.c:99 gio/gnetworkmonitornetlink.c:111
-#: gio/gnetworkmonitornetlink.c:130
+#: gio/gnetworkmonitornetlink.c:101 gio/gnetworkmonitornetlink.c:113
+#: gio/gnetworkmonitornetlink.c:132
#, c-format
msgid "Could not create network monitor: %s"
msgstr "Nepodarilo sa vytvoriť monitor siete: %s"
-#: gio/gnetworkmonitornetlink.c:120
+#: gio/gnetworkmonitornetlink.c:122
msgid "Could not create network monitor: "
msgstr "Nepodarilo sa vytvoriť monitor siete: "
-#: gio/gnetworkmonitornetlink.c:183
+#: gio/gnetworkmonitornetlink.c:185
msgid "Could not get network status: "
msgstr "Nepodarilo sa získať vzdialenú adresu: "
-#: gio/gnetworkmonitornm.c:348
+#: gio/gnetworkmonitornm.c:313
#, c-format
msgid "NetworkManager not running"
msgstr "Program NetworkManager nie je spustený"
-#: gio/gnetworkmonitornm.c:359
+#: gio/gnetworkmonitornm.c:324
#, c-format
msgid "NetworkManager version too old"
msgstr "Verzia programu NetworkManager je príliš stará"
-#: gio/goutputstream.c:232 gio/goutputstream.c:775
+#: gio/goutputstream.c:234 gio/goutputstream.c:777
msgid "Output stream doesn’t implement write"
msgstr "Výstupný prúd neimplementuje zápis"
-#: gio/goutputstream.c:472 gio/goutputstream.c:1533
+#: gio/goutputstream.c:474 gio/goutputstream.c:1535
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Súčet vektorov predaných funkcii %s je príliš veľký"
-#: gio/goutputstream.c:736 gio/goutputstream.c:1761
+#: gio/goutputstream.c:738 gio/goutputstream.c:1763
msgid "Source stream is already closed"
msgstr "Zdrojový prúd je už zatvorený"
-#: gio/gresolver.c:386 gio/gthreadedresolver.c:150 gio/gthreadedresolver.c:168
+#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+msgid "Unspecified proxy lookup failure"
+msgstr ""
+
+#. Translators: the first placeholder is a domain name, the
+#. * second is an error message
+#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
+#: gio/gthreadedresolver.c:798 gio/gthreadedresolver.c:822
+#: gio/gthreadedresolver.c:847 gio/gthreadedresolver.c:862
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Chyba pri preklade adresy „%s“: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:455 gio/gresolver.c:615
+#: gio/gresolver.c:472 gio/gresolver.c:632
#, c-format
msgid "%s not implemented"
msgstr "Funkcia %s nie je implementovaná"
-#: gio/gresolver.c:984 gio/gresolver.c:1036
+#: gio/gresolver.c:1001 gio/gresolver.c:1053
msgid "Invalid domain"
msgstr "Neplatná doména"
# %s je cesta
-#: gio/gresource.c:681 gio/gresource.c:943 gio/gresource.c:983
-#: gio/gresource.c:1107 gio/gresource.c:1179 gio/gresource.c:1253
-#: gio/gresource.c:1334 gio/gresourcefile.c:476 gio/gresourcefile.c:599
-#: gio/gresourcefile.c:736
+#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
+#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
+#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:602
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Zdroj v „%s“ neexistuje"
# %s je cesta
-#: gio/gresource.c:848
+#: gio/gresource.c:850
#, c-format
msgid "The resource at “%s” failed to decompress"
msgstr "Zdroj v „%s“ sa nepodarilo rozbaliť"
+#: gio/gresourcefile.c:659
+msgid "Resource files cannot be renamed"
+msgstr ""
+
# %s je cesta
-#: gio/gresourcefile.c:732
+#: gio/gresourcefile.c:749
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "Zdroj v „%s“ nie je adresár"
@@ -3609,15 +3662,15 @@ msgstr "Zdroj v „%s“ nie je adresár"
# MČ: všimol som si to na viacerých miestach, ale nepasuje mi to. Nemalo by byť skôr „posúvanie“?
# PM: presúvaš sa na iné miesto posúvanie mi tiez nevadí, ak dalsí kontrolór uzná ze by to malo byt posúvanie môže zmeniť.
# PK: necham presuvanie, lebo presuva sa kurzor, posuvanie mi evokuje ze sa data posuvaju
-#: gio/gresourcefile.c:940
+#: gio/gresourcefile.c:957
msgid "Input stream doesn’t implement seek"
msgstr "Vstupný prúd neimplementuje presúvanie"
-#: gio/gresource-tool.c:500
+#: gio/gresource-tool.c:502
msgid "List sections containing resources in an elf FILE"
msgstr "Zoznam častí obsahujúcich zdroje v SÚBORE vo formáte elf"
-#: gio/gresource-tool.c:506
+#: gio/gresource-tool.c:508
msgid ""
"List resources\n"
"If SECTION is given, only list resources in this section\n"
@@ -3627,15 +3680,15 @@ msgstr ""
"Ak je zadaná ČASŤ, budú to iba zdroje tejto časti\n"
"Ak je zadaná CESTA, bude to iba zoznam zodpovedajúcich zdrojov"
-#: gio/gresource-tool.c:509 gio/gresource-tool.c:519
+#: gio/gresource-tool.c:511 gio/gresource-tool.c:521
msgid "FILE [PATH]"
msgstr "SÚBOR [CESTA]"
-#: gio/gresource-tool.c:510 gio/gresource-tool.c:520 gio/gresource-tool.c:527
+#: gio/gresource-tool.c:512 gio/gresource-tool.c:522 gio/gresource-tool.c:529
msgid "SECTION"
msgstr "ČASŤ"
-#: gio/gresource-tool.c:515
+#: gio/gresource-tool.c:517
msgid ""
"List resources with details\n"
"If SECTION is given, only list resources in this section\n"
@@ -3647,15 +3700,15 @@ msgstr ""
"Ak je zadaná CESTA, bude to iba zoznam zodpovedajúcich zdrojov\n"
"Podrobnosti zahŕňajú časti, veľkosti a kompresie"
-#: gio/gresource-tool.c:525
+#: gio/gresource-tool.c:527
msgid "Extract a resource file to stdout"
msgstr "Extrahuje súbor zdrojov do stdout"
-#: gio/gresource-tool.c:526
+#: gio/gresource-tool.c:528
msgid "FILE PATH"
msgstr "CESTA SÚBORU"
-#: gio/gresource-tool.c:540
+#: gio/gresource-tool.c:542
msgid ""
"Usage:\n"
" gresource [--section SECTION] COMMAND [ARGS…]\n"
@@ -3680,7 +3733,7 @@ msgstr ""
" details Zoznam zdrojov s podrobnosťami\n"
" extract Extrahuje zdroj\n"
-#: gio/gresource-tool.c:554
+#: gio/gresource-tool.c:556
#, c-format
msgid ""
"Usage:\n"
@@ -3696,19 +3749,19 @@ msgstr ""
"\n"
# http://en.wikipedia.org/wiki/Executable_and_Linkable_Format
-#: gio/gresource-tool.c:561
+#: gio/gresource-tool.c:563
msgid " SECTION An (optional) elf section name\n"
msgstr " ČASŤ (voliteľný) názov časti elf\n"
-#: gio/gresource-tool.c:565 gio/gsettings-tool.c:706
+#: gio/gresource-tool.c:567 gio/gsettings-tool.c:720
msgid " COMMAND The (optional) command to explain\n"
msgstr " PRÍKAZ (voliteľný) príkaz na vysvetlenie\n"
-#: gio/gresource-tool.c:571
+#: gio/gresource-tool.c:573
msgid " FILE An elf file (a binary or a shared library)\n"
msgstr " SÚBOR elf súbor (binárny súbor alebo zdieľaná knižnica)\n"
-#: gio/gresource-tool.c:574
+#: gio/gresource-tool.c:576
msgid ""
" FILE An elf file (a binary or a shared library)\n"
" or a compiled resource file\n"
@@ -3716,82 +3769,82 @@ msgstr ""
" SÚBOR Súbor vo formáte elf (binárny súbor alebo zdieľaná knižnica)\n"
" alebo preložený súbor zdrojov\n"
-#: gio/gresource-tool.c:578
+#: gio/gresource-tool.c:580
msgid "[PATH]"
msgstr "[CESTA]"
-#: gio/gresource-tool.c:580
+#: gio/gresource-tool.c:582
msgid " PATH An (optional) resource path (may be partial)\n"
msgstr " CESTA (voliteľná) cesta k súboru zdrojov (môže byť čiastočná)\n"
-#: gio/gresource-tool.c:581
+#: gio/gresource-tool.c:583
msgid "PATH"
msgstr "CESTA"
-#: gio/gresource-tool.c:583
+#: gio/gresource-tool.c:585
msgid " PATH A resource path\n"
msgstr " CESTA Cesta k súboru zdrojov\n"
-#: gio/gsettings-tool.c:49 gio/gsettings-tool.c:70 gio/gsettings-tool.c:911
+#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:925
#, c-format
msgid "No such schema “%s”\n"
msgstr "Neexistuje schéma „%s“\n"
-#: gio/gsettings-tool.c:55
+#: gio/gsettings-tool.c:57
#, c-format
msgid "Schema “%s” is not relocatable (path must not be specified)\n"
msgstr "Schéma „%s“ nie je premiestniteľná (cesta nesmie byť určená)\n"
-#: gio/gsettings-tool.c:76
+#: gio/gsettings-tool.c:78
#, c-format
msgid "Schema “%s” is relocatable (path must be specified)\n"
msgstr "Schéma „%s“ je premiestniteľná (cesta musí byť určená)\n"
-#: gio/gsettings-tool.c:90
+#: gio/gsettings-tool.c:92
msgid "Empty path given.\n"
msgstr "Poskytnutá prázdna cesta.\n"
-#: gio/gsettings-tool.c:96
+#: gio/gsettings-tool.c:98
msgid "Path must begin with a slash (/)\n"
msgstr "Cesta musí začínať lomkou (/)\n"
-#: gio/gsettings-tool.c:102
+#: gio/gsettings-tool.c:104
msgid "Path must end with a slash (/)\n"
msgstr "Cesta musí končiť lomkou (/)\n"
-#: gio/gsettings-tool.c:108
+#: gio/gsettings-tool.c:110
msgid "Path must not contain two adjacent slashes (//)\n"
msgstr "Cesta nesmie obsahovať dve po sebe nasledujúce lomky (//)\n"
-#: gio/gsettings-tool.c:541
+#: gio/gsettings-tool.c:555
msgid "The provided value is outside of the valid range\n"
msgstr "Poskytnutá hodnota nepatrí do platného rozsahu\n"
-#: gio/gsettings-tool.c:548
+#: gio/gsettings-tool.c:562
msgid "The key is not writable\n"
msgstr "Kľúč nie je zapisovateľný\n"
-#: gio/gsettings-tool.c:584
+#: gio/gsettings-tool.c:598
msgid "List the installed (non-relocatable) schemas"
msgstr "Vypíše nainštalované (nepremiestniteľné) schémy"
-#: gio/gsettings-tool.c:590
+#: gio/gsettings-tool.c:604
msgid "List the installed relocatable schemas"
msgstr "Vypíše nainštalované premiestniteľné schémy"
-#: gio/gsettings-tool.c:596
+#: gio/gsettings-tool.c:610
msgid "List the keys in SCHEMA"
msgstr "Vypíše kľúče v SCHÉME"
-#: gio/gsettings-tool.c:597 gio/gsettings-tool.c:603 gio/gsettings-tool.c:646
+#: gio/gsettings-tool.c:611 gio/gsettings-tool.c:617 gio/gsettings-tool.c:660
msgid "SCHEMA[:PATH]"
msgstr "SCHÉMA[:CESTA]"
-#: gio/gsettings-tool.c:602
+#: gio/gsettings-tool.c:616
msgid "List the children of SCHEMA"
msgstr "Vypíše potomkov SCHÉMY"
-#: gio/gsettings-tool.c:608
+#: gio/gsettings-tool.c:622
msgid ""
"List keys and values, recursively\n"
"If no SCHEMA is given, list all keys\n"
@@ -3799,48 +3852,48 @@ msgstr ""
"Vypíše rekurzívne všetky kľúče a hodnoty\n"
"Ak SCHÉMA nie je zadaná, vypíše všetky kľúče\n"
-#: gio/gsettings-tool.c:610
+#: gio/gsettings-tool.c:624
msgid "[SCHEMA[:PATH]]"
msgstr "[SCHÉMA[:CESTA]]"
-#: gio/gsettings-tool.c:615
+#: gio/gsettings-tool.c:629
msgid "Get the value of KEY"
msgstr "Získa hodnotu KĽÚČA"
-#: gio/gsettings-tool.c:616 gio/gsettings-tool.c:622 gio/gsettings-tool.c:628
-#: gio/gsettings-tool.c:640 gio/gsettings-tool.c:652
+#: gio/gsettings-tool.c:630 gio/gsettings-tool.c:636 gio/gsettings-tool.c:642
+#: gio/gsettings-tool.c:654 gio/gsettings-tool.c:666
msgid "SCHEMA[:PATH] KEY"
msgstr "SCHÉMA[:CESTA] KĽÚČ"
-#: gio/gsettings-tool.c:621
+#: gio/gsettings-tool.c:635
msgid "Query the range of valid values for KEY"
msgstr "Spýta sa na platný rozsah hodnôt KĽÚČA"
-#: gio/gsettings-tool.c:627
+#: gio/gsettings-tool.c:641
msgid "Query the description for KEY"
msgstr "Spýta sa na popis KĽÚČA"
-#: gio/gsettings-tool.c:633
+#: gio/gsettings-tool.c:647
msgid "Set the value of KEY to VALUE"
msgstr "Nastaví hodnotu KĽÚČA na HODNOTU"
-#: gio/gsettings-tool.c:634
+#: gio/gsettings-tool.c:648
msgid "SCHEMA[:PATH] KEY VALUE"
msgstr "SCHÉMA[:CESTA] KĽÚČ HODNOTA"
-#: gio/gsettings-tool.c:639
+#: gio/gsettings-tool.c:653
msgid "Reset KEY to its default value"
msgstr "Nastaví KĽÚČ na jeho predvolenú hodnotu"
-#: gio/gsettings-tool.c:645
+#: gio/gsettings-tool.c:659
msgid "Reset all keys in SCHEMA to their defaults"
msgstr "Nastaví všetky kľúče v SCHÉME na ich predvolené hodnoty"
-#: gio/gsettings-tool.c:651
+#: gio/gsettings-tool.c:665
msgid "Check if KEY is writable"
msgstr "Skontroluje, či je KĽÚČ zapisovateľný"
-#: gio/gsettings-tool.c:657
+#: gio/gsettings-tool.c:671
msgid ""
"Monitor KEY for changes.\n"
"If no KEY is specified, monitor all keys in SCHEMA.\n"
@@ -3850,11 +3903,11 @@ msgstr ""
"Ak KĽÚČ nie určený, sleduje všetky kľúče v SCHÉME.\n"
"Sledovanie zastavíte pomocou ^C.\n"
-#: gio/gsettings-tool.c:660
+#: gio/gsettings-tool.c:674
msgid "SCHEMA[:PATH] [KEY]"
msgstr "SCHÉMA[:CESTA] [KĽÚČ]"
-#: gio/gsettings-tool.c:672
+#: gio/gsettings-tool.c:686
msgid ""
"Usage:\n"
" gsettings --version\n"
@@ -3902,7 +3955,7 @@ msgstr ""
"Podrobnejšieho pomocníka získate pomocou „gsettings help PRÍKAZ“.\n"
"\n"
-#: gio/gsettings-tool.c:696
+#: gio/gsettings-tool.c:710
#, c-format
msgid ""
"Usage:\n"
@@ -3917,11 +3970,11 @@ msgstr ""
"%s\n"
"\n"
-#: gio/gsettings-tool.c:702
+#: gio/gsettings-tool.c:716
msgid " SCHEMADIR A directory to search for additional schemas\n"
msgstr " ADRESÁR_SCHÉMY Adresár, v ktorom sa majú hľadať dodatočné schémy\n"
-#: gio/gsettings-tool.c:710
+#: gio/gsettings-tool.c:724
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
@@ -3929,401 +3982,434 @@ msgstr ""
" SCHÉMA Názov schémy\n"
" CESTA Cesta pre premiestniteľné schémy\n"
-#: gio/gsettings-tool.c:715
+#: gio/gsettings-tool.c:729
msgid " KEY The (optional) key within the schema\n"
msgstr " KĽÚČ (voliteľný) kľúč vo vnútri schémy\n"
-#: gio/gsettings-tool.c:719
+#: gio/gsettings-tool.c:733
msgid " KEY The key within the schema\n"
msgstr " KĽÚČ Kľúč vo vnútri schémy\n"
-#: gio/gsettings-tool.c:723
+#: gio/gsettings-tool.c:737
msgid " VALUE The value to set\n"
msgstr " HODNOTA Hodnota, ktorá sa má nastaviť\n"
-#: gio/gsettings-tool.c:778
+#: gio/gsettings-tool.c:792
#, c-format
msgid "Could not load schemas from %s: %s\n"
msgstr "Nepodarilo sa načítať schémy z %s: %s\n"
-#: gio/gsettings-tool.c:790
+#: gio/gsettings-tool.c:804
msgid "No schemas installed\n"
msgstr "Nie sú nainštalované žiadne schémy\n"
-#: gio/gsettings-tool.c:869
+#: gio/gsettings-tool.c:883
msgid "Empty schema name given\n"
msgstr "Poskytnutý prázdny názov schémy\n"
-#: gio/gsettings-tool.c:924
+#: gio/gsettings-tool.c:938
#, c-format
msgid "No such key “%s”\n"
msgstr "Neexistuje kľúč „%s“\n"
-#: gio/gsocket.c:413
+#: gio/gsocket.c:419
msgid "Invalid socket, not initialized"
msgstr "Neplatný soket, neinicializované"
-#: gio/gsocket.c:420
+#: gio/gsocket.c:426
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
msgstr "Neplatný soket, inicializácia zlyhala kvôli: %s"
-#: gio/gsocket.c:428
+#: gio/gsocket.c:434
msgid "Socket is already closed"
msgstr "Soket je už zatvorený"
-#: gio/gsocket.c:443 gio/gsocket.c:3190 gio/gsocket.c:4420 gio/gsocket.c:4478
+#: gio/gsocket.c:449 gio/gsocket.c:3225 gio/gsocket.c:4458 gio/gsocket.c:4516
msgid "Socket I/O timed out"
msgstr "Vypršal časový limit V/V soketu"
-#: gio/gsocket.c:578
+#: gio/gsocket.c:586
#, c-format
msgid "creating GSocket from fd: %s"
msgstr "vytvára sa GSocket z popisovanča súboru: %s"
-#: gio/gsocket.c:607 gio/gsocket.c:671 gio/gsocket.c:678
+#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
#, c-format
msgid "Unable to create socket: %s"
msgstr "Nepodarilo sa vytvoriť soket: %s"
-#: gio/gsocket.c:671
+#: gio/gsocket.c:679
msgid "Unknown family was specified"
msgstr "Bola zadaná neznáma rodina protokolov"
-#: gio/gsocket.c:678
+#: gio/gsocket.c:686
msgid "Unknown protocol was specified"
msgstr "Bol zadaný neznámy protokol"
-#: gio/gsocket.c:1169
+#: gio/gsocket.c:1177
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr ""
"Nedajú sa použiť operácie soketu datagram na sokete nepodporujúcom datagram."
-#: gio/gsocket.c:1186
+#: gio/gsocket.c:1194
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Nedajú sa použiť operácie soketu datagram na sokete s nastavením vypršaním "
"času."
-#: gio/gsocket.c:1993
+#: gio/gsocket.c:2001
#, c-format
msgid "could not get local address: %s"
msgstr "nepodarilo sa získať lokálnu adresu: %s"
-#: gio/gsocket.c:2039
+#: gio/gsocket.c:2047
#, c-format
msgid "could not get remote address: %s"
msgstr "nepodarilo sa získať vzdialenú adresu: %s"
-#: gio/gsocket.c:2105
+#: gio/gsocket.c:2113
#, c-format
msgid "could not listen: %s"
msgstr "nepodarilo sa počúvať: %s"
-#: gio/gsocket.c:2209
+#: gio/gsocket.c:2217
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Chyba pri viazaní sa na adresu %s: %s"
-#: gio/gsocket.c:2385 gio/gsocket.c:2422 gio/gsocket.c:2532 gio/gsocket.c:2557
-#: gio/gsocket.c:2620 gio/gsocket.c:2678 gio/gsocket.c:2696
+#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
+#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Chyba pri pripájaní sa k multicast skupine: %s"
-#: gio/gsocket.c:2386 gio/gsocket.c:2423 gio/gsocket.c:2533 gio/gsocket.c:2558
-#: gio/gsocket.c:2621 gio/gsocket.c:2679 gio/gsocket.c:2697
+#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
+#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Chyba pri odpájaní sa od multicast skupiny: %s"
# PM: SSM je termín neprekladal som to
# http://en.wikipedia.org/wiki/Source-specific_multicast
-#: gio/gsocket.c:2387
+#: gio/gsocket.c:2394
msgid "No support for source-specific multicast"
msgstr "Nie je podpora pre source-specific multicast"
-#: gio/gsocket.c:2534
+#: gio/gsocket.c:2541
msgid "Unsupported socket family"
msgstr "Nepodporovaná rodina soketu"
-#: gio/gsocket.c:2559
+#: gio/gsocket.c:2566
msgid "source-specific not an IPv4 address"
msgstr ""
-#: gio/gsocket.c:2583
+#: gio/gsocket.c:2590
#, c-format
msgid "Interface name too long"
msgstr "Názov rozhrania je príliš dlhý"
-#: gio/gsocket.c:2596 gio/gsocket.c:2646
+#: gio/gsocket.c:2603 gio/gsocket.c:2657
#, c-format
msgid "Interface not found: %s"
msgstr "Nenašlo sa rozhranie: %s"
# PM: SSM je termín neprekladal som to
# http://en.wikipedia.org/wiki/Source-specific_multicast
-#: gio/gsocket.c:2622
+#: gio/gsocket.c:2633
msgid "No support for IPv4 source-specific multicast"
msgstr "Nie je podpora pre IPv4 source-specific multicast"
# PM: SSM je termín neprekladal som to
# http://en.wikipedia.org/wiki/Source-specific_multicast
-#: gio/gsocket.c:2680
+#: gio/gsocket.c:2691
msgid "No support for IPv6 source-specific multicast"
msgstr "Nie je podpora pre IPv6 source-specific multicast"
-#: gio/gsocket.c:2889
+#: gio/gsocket.c:2924
#, c-format
msgid "Error accepting connection: %s"
msgstr "Chyba pri prijímaní pripojenia: %s"
-#: gio/gsocket.c:3015
+#: gio/gsocket.c:3050
msgid "Connection in progress"
msgstr "Prebieha pripájanie"
-#: gio/gsocket.c:3066
+#: gio/gsocket.c:3101
msgid "Unable to get pending error: "
msgstr "Nepodarilo sa získať chybu určenú na spracovanie: "
-#: gio/gsocket.c:3255
+#: gio/gsocket.c:3290
#, c-format
msgid "Error receiving data: %s"
msgstr "Chyba pri prijímaní údajov: %s"
-#: gio/gsocket.c:3452
+#: gio/gsocket.c:3487
#, c-format
msgid "Error sending data: %s"
msgstr "Chyba pri odosielaní údajov: %s"
-#: gio/gsocket.c:3639
+#: gio/gsocket.c:3674
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Nepodarilo sa vypnúť soket: %s"
-#: gio/gsocket.c:3720
+#: gio/gsocket.c:3755
#, c-format
msgid "Error closing socket: %s"
msgstr "Chyba pri zatváraní soketu: %s"
-#: gio/gsocket.c:4413
+#: gio/gsocket.c:4451
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Čaká sa na stav soketu: %s"
-#: gio/gsocket.c:4804 gio/gsocket.c:4820 gio/gsocket.c:4833
-#, fuzzy, c-format
-#| msgid "Error sending message: %s"
+#: gio/gsocket.c:4841 gio/gsocket.c:4857 gio/gsocket.c:4870
+#, c-format
msgid "Unable to send message: %s"
-msgstr "Chyba pri odosielaní správy: %s"
+msgstr "Nie je možné odoslať správu: %s"
-#: gio/gsocket.c:4805 gio/gsocket.c:4821 gio/gsocket.c:4834
+#: gio/gsocket.c:4842 gio/gsocket.c:4858 gio/gsocket.c:4871
msgid "Message vectors too large"
msgstr ""
-#: gio/gsocket.c:4850 gio/gsocket.c:4852 gio/gsocket.c:4999 gio/gsocket.c:5084
-#: gio/gsocket.c:5262 gio/gsocket.c:5302 gio/gsocket.c:5304
+#: gio/gsocket.c:4887 gio/gsocket.c:4889 gio/gsocket.c:5036 gio/gsocket.c:5121
+#: gio/gsocket.c:5299 gio/gsocket.c:5339 gio/gsocket.c:5341
#, c-format
msgid "Error sending message: %s"
msgstr "Chyba pri odosielaní správy: %s"
-#: gio/gsocket.c:5026
+#: gio/gsocket.c:5063
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage nie je podporovaný vo Windows"
-#: gio/gsocket.c:5495 gio/gsocket.c:5571 gio/gsocket.c:5797
+#: gio/gsocket.c:5536 gio/gsocket.c:5612 gio/gsocket.c:5838
#, c-format
msgid "Error receiving message: %s"
msgstr "Chyba pri prijímaní správy: %s"
-#: gio/gsocket.c:6070 gio/gsocket.c:6081 gio/gsocket.c:6127
+#: gio/gsocket.c:6123 gio/gsocket.c:6134 gio/gsocket.c:6197
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Nepodarilo sa prečítať poverenia soketu: %s"
-#: gio/gsocket.c:6136
+#: gio/gsocket.c:6206
msgid "g_socket_get_credentials not implemented for this OS"
msgstr ""
"g_socket_get_credentials nie je pre tento operačný systém implementovaný"
-#: gio/gsocketclient.c:191
+#: gio/gsocketclient.c:193
#, c-format
msgid "Could not connect to proxy server %s: "
msgstr "Nepodarilo sa pripojiť k proxy serveru %s: "
-#: gio/gsocketclient.c:205
+#: gio/gsocketclient.c:207
#, c-format
msgid "Could not connect to %s: "
msgstr "Nepodarilo sa pripojiť k %s: "
-#: gio/gsocketclient.c:207
+#: gio/gsocketclient.c:209
msgid "Could not connect: "
msgstr "Nepodarilo sa pripojiť: "
-#: gio/gsocketclient.c:1162 gio/gsocketclient.c:1749
+#: gio/gsocketclient.c:1204 gio/gsocketclient.c:1807
msgid "Proxying over a non-TCP connection is not supported."
msgstr "Pripojenie cez proxy nepoužívajúce TCP nie je podporované."
-#: gio/gsocketclient.c:1194 gio/gsocketclient.c:1778
+#: gio/gsocketclient.c:1236 gio/gsocketclient.c:1836
#, c-format
msgid "Proxy protocol “%s” is not supported."
msgstr "Protokol proxy „%s“ nie je podporovaný."
-#: gio/gsocketlistener.c:230
+#: gio/gsocketlistener.c:232
msgid "Listener is already closed"
msgstr "Poslucháč je už zatvorený"
-#: gio/gsocketlistener.c:276
+#: gio/gsocketlistener.c:278
msgid "Added socket is closed"
msgstr "Pridaný soket je zatvorený"
-#: gio/gsocks4aproxy.c:118
+#: gio/gsocks4aproxy.c:120
#, c-format
msgid "SOCKSv4 does not support IPv6 address “%s”"
msgstr "SOCKSv4 nepodporuje adresu IPv6 „%s“"
-#: gio/gsocks4aproxy.c:136
+#: gio/gsocks4aproxy.c:138
msgid "Username is too long for SOCKSv4 protocol"
msgstr "Používateľské meno je príliš dlhé pre protokol SOCKSv4"
-#: gio/gsocks4aproxy.c:153
+#: gio/gsocks4aproxy.c:155
#, c-format
msgid "Hostname “%s” is too long for SOCKSv4 protocol"
msgstr "Názov hostiteľa „%s“ je pre protokol SOCKSv4 príliš dlhý"
-#: gio/gsocks4aproxy.c:179
+#: gio/gsocks4aproxy.c:181
msgid "The server is not a SOCKSv4 proxy server."
msgstr "Server nie je proxy serverom SOCKSv4."
-#: gio/gsocks4aproxy.c:186
+#: gio/gsocks4aproxy.c:188
msgid "Connection through SOCKSv4 server was rejected"
msgstr "Pripojenie cez server SOCKSv4 bolo odmietnuté"
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:338 gio/gsocks5proxy.c:348
+#: gio/gsocks5proxy.c:155 gio/gsocks5proxy.c:340 gio/gsocks5proxy.c:350
msgid "The server is not a SOCKSv5 proxy server."
msgstr "Server nie je proxy serverom SOCKSv5."
-#: gio/gsocks5proxy.c:167 gio/gsocks5proxy.c:184
+#: gio/gsocks5proxy.c:169 gio/gsocks5proxy.c:186
msgid "The SOCKSv5 proxy requires authentication."
msgstr "Proxy SOCKSv5 vyžaduje overenie totožnosti."
-#: gio/gsocks5proxy.c:191
+#: gio/gsocks5proxy.c:193
msgid ""
"The SOCKSv5 proxy requires an authentication method that is not supported by "
"GLib."
msgstr ""
"Proxy SOCKSv5 vyžaduje metódu overenia totožnosti, ktorú nepodporuje GLib."
-#: gio/gsocks5proxy.c:220
+#: gio/gsocks5proxy.c:222
msgid "Username or password is too long for SOCKSv5 protocol."
msgstr "Používateľské meno alebo heslo je príliš dlhé pre protokol SOCKSv5."
-#: gio/gsocks5proxy.c:250
+#: gio/gsocks5proxy.c:252
msgid "SOCKSv5 authentication failed due to wrong username or password."
msgstr ""
"Overenie totožnosti SOCKSv5 zlyhalo pre nesprávne používateľské meno alebo "
"heslo."
-#: gio/gsocks5proxy.c:300
+#: gio/gsocks5proxy.c:302
#, c-format
msgid "Hostname “%s” is too long for SOCKSv5 protocol"
msgstr "Názov hostiteľa „%s“ je pre protokol SOCKSv5 príliš dlhý"
-#: gio/gsocks5proxy.c:362
+#: gio/gsocks5proxy.c:364
msgid "The SOCKSv5 proxy server uses unknown address type."
msgstr "Proxy server SOCKSv5 používa neznámy typ adresy."
-#: gio/gsocks5proxy.c:369
+#: gio/gsocks5proxy.c:371
msgid "Internal SOCKSv5 proxy server error."
msgstr "Vnútorná chyba proxy servera SOCKSv5."
-#: gio/gsocks5proxy.c:375
+#: gio/gsocks5proxy.c:377
msgid "SOCKSv5 connection not allowed by ruleset."
msgstr "Pripojenie SOCKSv5 nie je povolené sadou pravidiel."
-#: gio/gsocks5proxy.c:382
+#: gio/gsocks5proxy.c:384
msgid "Host unreachable through SOCKSv5 server."
msgstr "Hostiteľ nie je dostupný cez server SOCKSv5."
-#: gio/gsocks5proxy.c:388
+#: gio/gsocks5proxy.c:390
msgid "Network unreachable through SOCKSv5 proxy."
msgstr "Sieť nie je dostupný cez proxy SOCKSv5."
-#: gio/gsocks5proxy.c:394
+#: gio/gsocks5proxy.c:396
msgid "Connection refused through SOCKSv5 proxy."
msgstr "Pripojenie cez proxy SOCKSv5 je odmietnuté."
-#: gio/gsocks5proxy.c:400
+#: gio/gsocks5proxy.c:402
msgid "SOCKSv5 proxy does not support “connect” command."
msgstr "Proxy SOCKSv5 nepodporuje príkaz „connect“."
-#: gio/gsocks5proxy.c:406
+#: gio/gsocks5proxy.c:408
msgid "SOCKSv5 proxy does not support provided address type."
msgstr "Proxy SOCKSv5 nepodporuje poskytnutý typ adresy."
-#: gio/gsocks5proxy.c:412
+#: gio/gsocks5proxy.c:414
msgid "Unknown SOCKSv5 proxy error."
msgstr "Neznáma chyba proxy SOCKSv5."
-#: gio/gthemedicon.c:595
+#: gio/gtestdbus.c:615 glib/gspawn-win32.c:354
+#, c-format
+msgid "Failed to create pipe for communicating with child process (%s)"
+msgstr "Zlyhalo vytvorenie zreťazenia pre komunikáciu s dcérskym procesom (%s)"
+
+#: gio/gtestdbus.c:622
+#, fuzzy, c-format
+#| msgid "Seek not supported on stream"
+msgid "Pipes are not supported in this platform"
+msgstr "Presúvanie v prúde nie je podporované"
+
+#: gio/gthemedicon.c:597
#, c-format
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Nedá sa spracovať kódovanie GThemedIcon verzie %d"
-#: gio/gthreadedresolver.c:152
+#: gio/gthreadedresolver.c:154
msgid "No valid addresses were found"
msgstr "Nenašli sa žiadne platné adresy"
-#: gio/gthreadedresolver.c:337
+#: gio/gthreadedresolver.c:339
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Chyba pri pri spätnom preklade adresy „%s“: %s"
-#: gio/gthreadedresolver.c:676 gio/gthreadedresolver.c:755
-#: gio/gthreadedresolver.c:853 gio/gthreadedresolver.c:903
+#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
+#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
+#: gio/gthreadedresolver.c:628 gio/gthreadedresolver.c:675
+#: gio/gthreadedresolver.c:704 gio/gthreadedresolver.c:716
+#, c-format
+msgid "Error parsing DNS %s record: malformed DNS packet"
+msgstr ""
+
+#: gio/gthreadedresolver.c:774 gio/gthreadedresolver.c:911
+#: gio/gthreadedresolver.c:1009 gio/gthreadedresolver.c:1059
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Neexistuje DNS záznam požadovaného typu pre „%s“"
# DNS
-#: gio/gthreadedresolver.c:681 gio/gthreadedresolver.c:858
+#: gio/gthreadedresolver.c:779 gio/gthreadedresolver.c:1014
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Služba nie je dočasne schopná preložiť adresu „%s“"
-#: gio/gthreadedresolver.c:686 gio/gthreadedresolver.c:863
-#: gio/gthreadedresolver.c:973
+#: gio/gthreadedresolver.c:784 gio/gthreadedresolver.c:1019
+#: gio/gthreadedresolver.c:1129
#, c-format
msgid "Error resolving “%s”"
msgstr "Chyba pri preklade adresy „%s“"
-#: gio/gtlscertificate.c:419
+#: gio/gthreadedresolver.c:798 gio/gthreadedresolver.c:822
+#: gio/gthreadedresolver.c:847 gio/gthreadedresolver.c:862
+msgid "Malformed DNS packet"
+msgstr "Paket servera DNS má zlý formát"
+
+#: gio/gthreadedresolver.c:904
+#, fuzzy, c-format
+#| msgid "Failed to read from file “%s”: %s"
+msgid "Failed to parse DNS response for “%s”: "
+msgstr "Zlyhalo čítanie zo súboru „%s“: %s"
+
+#: gio/gtlscertificate.c:480
msgid "No PEM-encoded private key found"
msgstr "Nenašiel sa súkromný kľúč v PEM kódovaní"
-#: gio/gtlscertificate.c:429
+#: gio/gtlscertificate.c:490
msgid "Cannot decrypt PEM-encoded private key"
msgstr "Nepodá sa rozšifrovať súkromný kľúč v kódovaní PEM"
-#: gio/gtlscertificate.c:440
+#: gio/gtlscertificate.c:501
msgid "Could not parse PEM-encoded private key"
msgstr "Nepodarilo sa analyzovať súkromný kľúč v kódovaní PEM"
-#: gio/gtlscertificate.c:467
+#: gio/gtlscertificate.c:528
msgid "No PEM-encoded certificate found"
msgstr "Nenašiel sa certifikát v kódovaní PEM"
-#: gio/gtlscertificate.c:476
+#: gio/gtlscertificate.c:537
msgid "Could not parse PEM-encoded certificate"
msgstr "Neporarilo sa analyzovať certifikát v kódovaní PEM"
-#: gio/gtlscertificate.c:832
+#: gio/gtlscertificate.c:800
+msgid "The current TLS backend does not support PKCS #12"
+msgstr ""
+
+#: gio/gtlscertificate.c:1017
msgid "This GTlsBackend does not support creating PKCS #11 certificates"
msgstr ""
-#: gio/gtlspassword.c:111
+#: gio/gtlspassword.c:113
msgid ""
"This is the last chance to enter the password correctly before your access "
"is locked out."
@@ -4333,7 +4419,7 @@ msgstr ""
#. Translators: This is not the 'This is the last chance' string. It is
#. * displayed when more than one attempt is allowed.
-#: gio/gtlspassword.c:115
+#: gio/gtlspassword.c:117
msgid ""
"Several passwords entered have been incorrect, and your access will be "
"locked out after further failures."
@@ -4341,13 +4427,19 @@ msgstr ""
"Niekoľko zadaných hesiel bolo nesprávnych a po ďalších zlyhaniach bude váš "
"prístup uzamknutý."
-#: gio/gtlspassword.c:117
+#: gio/gtlspassword.c:119
msgid "The password entered is incorrect."
msgstr "Zadané heslo je nesprávne."
+#: gio/gunixconnection.c:127
+#, fuzzy
+#| msgid "Setting attribute %s not supported"
+msgid "Sending FD is not supported"
+msgstr "Nastavovanie atribútu %s nie je podporované"
+
# PK: plural forms
# JK: https://bugzilla.gnome.org/show_bug.cgi?id=695233
-#: gio/gunixconnection.c:166 gio/gunixconnection.c:579
+#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
@@ -4355,14 +4447,14 @@ msgstr[0] "Očakávaná jedna riadiaca správa, získaných %d"
msgstr[1] "Očakávaná jedna riadiaca správa, získaná %d"
msgstr[2] "Očakávaná jedna riadiaca správa, získané %d"
-#: gio/gunixconnection.c:182 gio/gunixconnection.c:591
+#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
msgid "Unexpected type of ancillary data"
msgstr "Neočakávaný typ doplnkových údajov"
# PK: plural forms
# JK: https://bugzilla.gnome.org/show_bug.cgi?id=695233
# MČ: Myslím, že by malo byť získaný, keď ide o ten popisovač.
-#: gio/gunixconnection.c:200
+#: gio/gunixconnection.c:214
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
@@ -4370,25 +4462,31 @@ msgstr[0] "Očakávaný jeden popisovač súboru, no získaných %d\n"
msgstr[1] "Očakávaný jeden popisovač súboru, no získaný %d\n"
msgstr[2] "Očakávaný jeden popisovač súboru, no získané %d\n"
-#: gio/gunixconnection.c:219
+#: gio/gunixconnection.c:233
msgid "Received invalid fd"
msgstr "Prijatý neplatný popisovač súboru"
-#: gio/gunixconnection.c:363
+#: gio/gunixconnection.c:240
+#, fuzzy
+#| msgid "URIs not supported"
+msgid "Receiving FD is not supported"
+msgstr "Identifikátory URI nie sú podporované"
+
+#: gio/gunixconnection.c:382
msgid "Error sending credentials: "
msgstr "Chyba pri odosielaní poverení: "
-#: gio/gunixconnection.c:520
+#: gio/gunixconnection.c:539
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Chyba pri kontrole, či je SO_PASSCRED povolené pre soket: %s"
-#: gio/gunixconnection.c:536
+#: gio/gunixconnection.c:555
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Chyba pri povoľovaní SO_PASSCRED: %s"
-#: gio/gunixconnection.c:565
+#: gio/gunixconnection.c:584
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
@@ -4396,86 +4494,86 @@ msgstr ""
"nula bajtov"
# https://bugzilla.gnome.org/show_bug.cgi?id=658713
-#: gio/gunixconnection.c:605
+#: gio/gunixconnection.c:624
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Neočakávala sa riadiaca správa, no získané %d"
-#: gio/gunixconnection.c:630
+#: gio/gunixconnection.c:649
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Chyba počas zakazovania SO_PASSCRED: %s"
-#: gio/gunixinputstream.c:357 gio/gunixinputstream.c:378
+#: gio/gunixinputstream.c:359 gio/gunixinputstream.c:380
#, c-format
msgid "Error reading from file descriptor: %s"
msgstr "Chyba pri čítaní z popisovača súboru: %s"
-#: gio/gunixinputstream.c:411 gio/gunixoutputstream.c:520
-#: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
+#: gio/gunixinputstream.c:413 gio/gunixoutputstream.c:522
+#: gio/gwin32inputstream.c:219 gio/gwin32outputstream.c:206
#, c-format
msgid "Error closing file descriptor: %s"
msgstr "Chyba pri zatváraní popisovača súboru: %s"
-#: gio/gunixmounts.c:2785 gio/gunixmounts.c:2838
+#: gio/gunixmounts.c:2817 gio/gunixmounts.c:2870
msgid "Filesystem root"
msgstr "Koreň súborového systému"
-#: gio/gunixoutputstream.c:357 gio/gunixoutputstream.c:377
-#: gio/gunixoutputstream.c:464 gio/gunixoutputstream.c:484
-#: gio/gunixoutputstream.c:630
+#: gio/gunixoutputstream.c:359 gio/gunixoutputstream.c:379
+#: gio/gunixoutputstream.c:466 gio/gunixoutputstream.c:486
+#: gio/gunixoutputstream.c:632
#, c-format
msgid "Error writing to file descriptor: %s"
msgstr "Chyba pri zápise do popisovača súboru: %s"
-#: gio/gunixsocketaddress.c:244
+#: gio/gunixsocketaddress.c:253
msgid "Abstract UNIX domain socket addresses not supported on this system"
msgstr ""
"V tomto systéme nie sú podporované abstraktné adresy soketov unixových domén"
-#: gio/gvolume.c:438
+#: gio/gvolume.c:440
msgid "volume doesn’t implement eject"
msgstr "zväzok neimplementuje vysunutie"
#. Translators: This is an error
#. * message for volume objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gvolume.c:515
+#: gio/gvolume.c:517
msgid "volume doesn’t implement eject or eject_with_operation"
msgstr ""
"zväzok neimplementuje eject (vysunutie) ani eject_with_operation (vysunutie "
"s operáciou)"
# PŠ: file handle (win32) je ekvivalent file descriptor - dovolil som si to preložiť rovnako. Keďže používané manipulátor, alebo rukoväť sú oba zlé preklady (obsluha je handler)... A dokonca aj v slovenskom preklade Správcu úloh vo win je použitý popisovač.
-#: gio/gwin32inputstream.c:185
+#: gio/gwin32inputstream.c:187
#, c-format
msgid "Error reading from handle: %s"
msgstr "Chyba pri čítaní z popisovača: %s"
-#: gio/gwin32inputstream.c:232 gio/gwin32outputstream.c:219
+#: gio/gwin32inputstream.c:234 gio/gwin32outputstream.c:221
#, c-format
msgid "Error closing handle: %s"
msgstr "Chyba pri zatváraní popisovača: %s"
-#: gio/gwin32outputstream.c:172
+#: gio/gwin32outputstream.c:174
#, c-format
msgid "Error writing to handle: %s"
msgstr "Chyba pri zápise do popisovača: %s"
-#: gio/gzlibcompressor.c:394 gio/gzlibdecompressor.c:347
+#: gio/gzlibcompressor.c:396 gio/gzlibdecompressor.c:349
msgid "Not enough memory"
msgstr "Nedostatok pamäte"
-#: gio/gzlibcompressor.c:401 gio/gzlibdecompressor.c:354
+#: gio/gzlibcompressor.c:403 gio/gzlibdecompressor.c:356
#, c-format
msgid "Internal error: %s"
msgstr "Vnútorná chyba: %s"
-#: gio/gzlibcompressor.c:414 gio/gzlibdecompressor.c:368
+#: gio/gzlibcompressor.c:416 gio/gzlibdecompressor.c:370
msgid "Need more input"
msgstr "Potrebných viac vstupov"
-#: gio/gzlibdecompressor.c:340
+#: gio/gzlibdecompressor.c:342
msgid "Invalid compressed data"
msgstr "Neplatné komprimované údaje"
@@ -4505,160 +4603,160 @@ msgstr "Spustí službu dbus"
msgid "Wrong args\n"
msgstr "Chybné parametre\n"
-#: glib/gbookmarkfile.c:777
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Neočakávaný atribút „%s“ prvku „%s“"
-#: glib/gbookmarkfile.c:788 glib/gbookmarkfile.c:868 glib/gbookmarkfile.c:878
-#: glib/gbookmarkfile.c:991
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Atribút „%s“ prvku „%s“ nenájdený"
-#: glib/gbookmarkfile.c:1200 glib/gbookmarkfile.c:1265
-#: glib/gbookmarkfile.c:1329 glib/gbookmarkfile.c:1339
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Neočakávaná značka „%s“, bola očakávaná značka „%s“"
-#: glib/gbookmarkfile.c:1225 glib/gbookmarkfile.c:1239
-#: glib/gbookmarkfile.c:1307 glib/gbookmarkfile.c:1353
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Neočakávaná značka „%s“ vo vnútri „%s“"
-#: glib/gbookmarkfile.c:1633
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Neplatný dátum alebo čas „%s“ v súbore záložky"
-#: glib/gbookmarkfile.c:1836
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "V dátových adresároch nebol nájdený žiadny platný súbor záložiek"
-#: glib/gbookmarkfile.c:2037
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Záložka pre identifikátor URI „%s“ už existuje"
-#: glib/gbookmarkfile.c:2086 glib/gbookmarkfile.c:2244
-#: glib/gbookmarkfile.c:2329 glib/gbookmarkfile.c:2409
-#: glib/gbookmarkfile.c:2494 glib/gbookmarkfile.c:2628
-#: glib/gbookmarkfile.c:2761 glib/gbookmarkfile.c:2896
-#: glib/gbookmarkfile.c:2938 glib/gbookmarkfile.c:3035
-#: glib/gbookmarkfile.c:3156 glib/gbookmarkfile.c:3350
-#: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3710
-#: glib/gbookmarkfile.c:3799 glib/gbookmarkfile.c:3888
-#: glib/gbookmarkfile.c:4007
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Nebola nájedená záložka pre identifikátor URI „%s“"
-#: glib/gbookmarkfile.c:2418
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "V záložke pre identifikátor URI „%s“ nie je definovaný žiadny typ MIME"
-#: glib/gbookmarkfile.c:2503
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr ""
"V záložke pre identifikátor URI „%s“ nebol definovaný žiadny súkromný príznak"
-#: glib/gbookmarkfile.c:3044
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "V záložke pre identifikátor URI „%s“ neboli nastavené žiadne skupiny"
-#: glib/gbookmarkfile.c:3512 glib/gbookmarkfile.c:3720
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Žiadna aplikácia s názvom „%s“ nezaregistrovala záložku pre „%s“"
-#: glib/gbookmarkfile.c:3743
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Zlyhalo rozvinutie spustiteľného riadka „%s“ o identifikátor URI „%s“"
-#: glib/gconvert.c:468
+#: glib/gconvert.c:470
msgid "Unrepresentable character in conversion input"
msgstr "Nezobraziteľný znak na vstupe prevodu"
-#: glib/gconvert.c:495 glib/gutf8.c:871 glib/gutf8.c:1083 glib/gutf8.c:1220
-#: glib/gutf8.c:1324
+#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
+#: glib/gutf8.c:1342
msgid "Partial character sequence at end of input"
msgstr "Čiastočná sekvencia znakov na konci vstupu"
-#: glib/gconvert.c:764
+#: glib/gconvert.c:768
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Nedá sa previesť náhradné „%s“ do kódovej stránky „%s“"
-#: glib/gconvert.c:936
+#: glib/gconvert.c:940
#, fuzzy
#| msgid "Invalid byte sequence in conversion input"
msgid "Embedded NUL byte in conversion input"
msgstr "Neplatná sekvencia bajtov na vstupe prevodu"
-#: glib/gconvert.c:957
+#: glib/gconvert.c:961
#, fuzzy
#| msgid "Invalid byte sequence in conversion input"
msgid "Embedded NUL byte in conversion output"
msgstr "Neplatná sekvencia bajtov na vstupe prevodu"
-#: glib/gconvert.c:1688
+#: glib/gconvert.c:1692
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr ""
"Identifikátor URI „%s“ nie je absolútny identifikátor URI používajúci schému "
"„file“"
-#: glib/gconvert.c:1698
+#: glib/gconvert.c:1702
#, c-format
msgid "The local file URI “%s” may not include a “#”"
msgstr "Identifikátor URI lokálneho súboru „%s“ nesmie obsahovať „#“"
-#: glib/gconvert.c:1715
+#: glib/gconvert.c:1719
#, c-format
msgid "The URI “%s” is invalid"
msgstr "Identifikátor URI „%s“ je neplatný"
-#: glib/gconvert.c:1727
+#: glib/gconvert.c:1731
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Názov hostiteľa URI „%s“ je neplatný"
-#: glib/gconvert.c:1743
+#: glib/gconvert.c:1747
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "Identifikátor URI „%s“ obsahuje neplatné špeciálne uvedené znaky"
-#: glib/gconvert.c:1815
+#: glib/gconvert.c:1819
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Cesta „%s“ nie je absolútna"
#. Translators: this is the preferred format for expressing the date and the time
-#: glib/gdatetime.c:226
+#: glib/gdatetime.c:228
msgctxt "GDateTime"
msgid "%a %b %e %H:%M:%S %Y"
msgstr "%a %-d. %B %Y, %H:%M:%S %Z"
#. Translators: this is the preferred format for expressing the date
-#: glib/gdatetime.c:229
+#: glib/gdatetime.c:231
msgctxt "GDateTime"
msgid "%m/%d/%y"
msgstr "%d.%m.%Y"
#. Translators: this is the preferred format for expressing the time
-#: glib/gdatetime.c:232
+#: glib/gdatetime.c:234
msgctxt "GDateTime"
msgid "%H:%M:%S"
msgstr "%H:%M:%S"
#. Translators: this is the preferred format for expressing 12 hour time
-#: glib/gdatetime.c:235
+#: glib/gdatetime.c:237
msgctxt "GDateTime"
msgid "%I:%M:%S %p"
msgstr "%H:%M:%S"
@@ -4679,62 +4777,62 @@ msgstr "%H:%M:%S"
#. * non-European) there is no difference between the standalone and
#. * complete date form.
#.
-#: glib/gdatetime.c:274
+#: glib/gdatetime.c:276
msgctxt "full month name"
msgid "January"
msgstr "január"
-#: glib/gdatetime.c:276
+#: glib/gdatetime.c:278
msgctxt "full month name"
msgid "February"
msgstr "február"
-#: glib/gdatetime.c:278
+#: glib/gdatetime.c:280
msgctxt "full month name"
msgid "March"
msgstr "marec"
-#: glib/gdatetime.c:280
+#: glib/gdatetime.c:282
msgctxt "full month name"
msgid "April"
msgstr "apríl"
-#: glib/gdatetime.c:282
+#: glib/gdatetime.c:284
msgctxt "full month name"
msgid "May"
msgstr "máj"
-#: glib/gdatetime.c:284
+#: glib/gdatetime.c:286
msgctxt "full month name"
msgid "June"
msgstr "jún"
-#: glib/gdatetime.c:286
+#: glib/gdatetime.c:288
msgctxt "full month name"
msgid "July"
msgstr "júl"
-#: glib/gdatetime.c:288
+#: glib/gdatetime.c:290
msgctxt "full month name"
msgid "August"
msgstr "august"
-#: glib/gdatetime.c:290
+#: glib/gdatetime.c:292
msgctxt "full month name"
msgid "September"
msgstr "september"
-#: glib/gdatetime.c:292
+#: glib/gdatetime.c:294
msgctxt "full month name"
msgid "October"
msgstr "október"
-#: glib/gdatetime.c:294
+#: glib/gdatetime.c:296
msgctxt "full month name"
msgid "November"
msgstr "november"
-#: glib/gdatetime.c:296
+#: glib/gdatetime.c:298
msgctxt "full month name"
msgid "December"
msgstr "december"
@@ -4756,132 +4854,132 @@ msgstr "december"
#. * other platform. Here are abbreviated month names in a form
#. * appropriate when they are used standalone.
#.
-#: glib/gdatetime.c:328
+#: glib/gdatetime.c:330
msgctxt "abbreviated month name"
msgid "Jan"
msgstr "jan"
-#: glib/gdatetime.c:330
+#: glib/gdatetime.c:332
msgctxt "abbreviated month name"
msgid "Feb"
msgstr "feb"
-#: glib/gdatetime.c:332
+#: glib/gdatetime.c:334
msgctxt "abbreviated month name"
msgid "Mar"
msgstr "mar"
-#: glib/gdatetime.c:334
+#: glib/gdatetime.c:336
msgctxt "abbreviated month name"
msgid "Apr"
msgstr "apr"
-#: glib/gdatetime.c:336
+#: glib/gdatetime.c:338
msgctxt "abbreviated month name"
msgid "May"
msgstr "máj"
-#: glib/gdatetime.c:338
+#: glib/gdatetime.c:340
msgctxt "abbreviated month name"
msgid "Jun"
msgstr "jún"
-#: glib/gdatetime.c:340
+#: glib/gdatetime.c:342
msgctxt "abbreviated month name"
msgid "Jul"
msgstr "júl"
-#: glib/gdatetime.c:342
+#: glib/gdatetime.c:344
msgctxt "abbreviated month name"
msgid "Aug"
msgstr "aug"
-#: glib/gdatetime.c:344
+#: glib/gdatetime.c:346
msgctxt "abbreviated month name"
msgid "Sep"
msgstr "sep"
-#: glib/gdatetime.c:346
+#: glib/gdatetime.c:348
msgctxt "abbreviated month name"
msgid "Oct"
msgstr "okt"
-#: glib/gdatetime.c:348
+#: glib/gdatetime.c:350
msgctxt "abbreviated month name"
msgid "Nov"
msgstr "nov"
-#: glib/gdatetime.c:350
+#: glib/gdatetime.c:352
msgctxt "abbreviated month name"
msgid "Dec"
msgstr "dec"
-#: glib/gdatetime.c:365
+#: glib/gdatetime.c:367
msgctxt "full weekday name"
msgid "Monday"
msgstr "pondelok"
-#: glib/gdatetime.c:367
+#: glib/gdatetime.c:369
msgctxt "full weekday name"
msgid "Tuesday"
msgstr "utorok"
-#: glib/gdatetime.c:369
+#: glib/gdatetime.c:371
msgctxt "full weekday name"
msgid "Wednesday"
msgstr "streda"
-#: glib/gdatetime.c:371
+#: glib/gdatetime.c:373
msgctxt "full weekday name"
msgid "Thursday"
msgstr "štvrtok"
-#: glib/gdatetime.c:373
+#: glib/gdatetime.c:375
msgctxt "full weekday name"
msgid "Friday"
msgstr "piatok"
-#: glib/gdatetime.c:375
+#: glib/gdatetime.c:377
msgctxt "full weekday name"
msgid "Saturday"
msgstr "sobota"
-#: glib/gdatetime.c:377
+#: glib/gdatetime.c:379
msgctxt "full weekday name"
msgid "Sunday"
msgstr "nedela"
-#: glib/gdatetime.c:392
+#: glib/gdatetime.c:394
msgctxt "abbreviated weekday name"
msgid "Mon"
msgstr "po"
-#: glib/gdatetime.c:394
+#: glib/gdatetime.c:396
msgctxt "abbreviated weekday name"
msgid "Tue"
msgstr "ut"
-#: glib/gdatetime.c:396
+#: glib/gdatetime.c:398
msgctxt "abbreviated weekday name"
msgid "Wed"
msgstr "st"
-#: glib/gdatetime.c:398
+#: glib/gdatetime.c:400
msgctxt "abbreviated weekday name"
msgid "Thu"
msgstr "št"
-#: glib/gdatetime.c:400
+#: glib/gdatetime.c:402
msgctxt "abbreviated weekday name"
msgid "Fri"
msgstr "pi"
-#: glib/gdatetime.c:402
+#: glib/gdatetime.c:404
msgctxt "abbreviated weekday name"
msgid "Sat"
msgstr "so"
-#: glib/gdatetime.c:404
+#: glib/gdatetime.c:406
msgctxt "abbreviated weekday name"
msgid "Sun"
msgstr "ne"
@@ -4903,62 +5001,62 @@ msgstr "ne"
#. * (western European, non-European) there is no difference between the
#. * standalone and complete date form.
#.
-#: glib/gdatetime.c:468
+#: glib/gdatetime.c:470
msgctxt "full month name with day"
msgid "January"
msgstr "januára"
-#: glib/gdatetime.c:470
+#: glib/gdatetime.c:472
msgctxt "full month name with day"
msgid "February"
msgstr "februára"
-#: glib/gdatetime.c:472
+#: glib/gdatetime.c:474
msgctxt "full month name with day"
msgid "March"
msgstr "marca"
-#: glib/gdatetime.c:474
+#: glib/gdatetime.c:476
msgctxt "full month name with day"
msgid "April"
msgstr "apríla"
-#: glib/gdatetime.c:476
+#: glib/gdatetime.c:478
msgctxt "full month name with day"
msgid "May"
msgstr "mája"
-#: glib/gdatetime.c:478
+#: glib/gdatetime.c:480
msgctxt "full month name with day"
msgid "June"
msgstr "júna"
-#: glib/gdatetime.c:480
+#: glib/gdatetime.c:482
msgctxt "full month name with day"
msgid "July"
msgstr "júla"
-#: glib/gdatetime.c:482
+#: glib/gdatetime.c:484
msgctxt "full month name with day"
msgid "August"
msgstr "augusta"
-#: glib/gdatetime.c:484
+#: glib/gdatetime.c:486
msgctxt "full month name with day"
msgid "September"
msgstr "septembra"
-#: glib/gdatetime.c:486
+#: glib/gdatetime.c:488
msgctxt "full month name with day"
msgid "October"
msgstr "októbra"
-#: glib/gdatetime.c:488
+#: glib/gdatetime.c:490
msgctxt "full month name with day"
msgid "November"
msgstr "novembra"
-#: glib/gdatetime.c:490
+#: glib/gdatetime.c:492
msgctxt "full month name with day"
msgid "December"
msgstr "decembra"
@@ -4980,85 +5078,85 @@ msgstr "decembra"
#. * month names almost ready to copy and paste here. In other systems
#. * due to a bug the result is incorrect in some languages.
#.
-#: glib/gdatetime.c:555
+#: glib/gdatetime.c:557
msgctxt "abbreviated month name with day"
msgid "Jan"
msgstr "jan"
-#: glib/gdatetime.c:557
+#: glib/gdatetime.c:559
msgctxt "abbreviated month name with day"
msgid "Feb"
msgstr "feb"
-#: glib/gdatetime.c:559
+#: glib/gdatetime.c:561
msgctxt "abbreviated month name with day"
msgid "Mar"
msgstr "mar"
-#: glib/gdatetime.c:561
+#: glib/gdatetime.c:563
msgctxt "abbreviated month name with day"
msgid "Apr"
msgstr "apr"
-#: glib/gdatetime.c:563
+#: glib/gdatetime.c:565
msgctxt "abbreviated month name with day"
msgid "May"
msgstr "máj"
-#: glib/gdatetime.c:565
+#: glib/gdatetime.c:567
msgctxt "abbreviated month name with day"
msgid "Jun"
msgstr "jún"
-#: glib/gdatetime.c:567
+#: glib/gdatetime.c:569
msgctxt "abbreviated month name with day"
msgid "Jul"
msgstr "júl"
-#: glib/gdatetime.c:569
+#: glib/gdatetime.c:571
msgctxt "abbreviated month name with day"
msgid "Aug"
msgstr "aug"
-#: glib/gdatetime.c:571
+#: glib/gdatetime.c:573
msgctxt "abbreviated month name with day"
msgid "Sep"
msgstr "sep"
-#: glib/gdatetime.c:573
+#: glib/gdatetime.c:575
msgctxt "abbreviated month name with day"
msgid "Oct"
msgstr "okt"
-#: glib/gdatetime.c:575
+#: glib/gdatetime.c:577
msgctxt "abbreviated month name with day"
msgid "Nov"
msgstr "nov"
-#: glib/gdatetime.c:577
+#: glib/gdatetime.c:579
msgctxt "abbreviated month name with day"
msgid "Dec"
msgstr "dec"
# PM: ale myslím si ze by to malo byť preložené, lebo ak si niekto v hodinách prepne na 12 hodinový formát tak si potom nebude vedieť nastaviť správny čas
#. Translators: 'before midday' indicator
-#: glib/gdatetime.c:594
+#: glib/gdatetime.c:596
msgctxt "GDateTime"
msgid "AM"
msgstr "Doobeda"
#. Translators: 'after midday' indicator
-#: glib/gdatetime.c:597
+#: glib/gdatetime.c:599
msgctxt "GDateTime"
msgid "PM"
msgstr "Poobede"
-#: glib/gdir.c:156
+#: glib/gdir.c:158
#, c-format
msgid "Error opening directory “%s”: %s"
msgstr "Chyba pri otváraní adresára „%s“: %s"
-#: glib/gfileutils.c:737 glib/gfileutils.c:829
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
@@ -5066,106 +5164,106 @@ msgstr[0] "Nepodarilo sa alokovať %lu bajtov na čítanie súboru „%s“"
msgstr[1] "Nepodarilo sa alokovať %lu bajt na čítanie súboru „%s“"
msgstr[2] "Nepodarilo sa alokovať %lu bajty na čítanie súboru „%s“"
-#: glib/gfileutils.c:754
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Chyba pri čítaní súboru %s: %s"
-#: glib/gfileutils.c:790
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Súbor „%s“ je príliš veľký"
-#: glib/gfileutils.c:854
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Zlyhalo čítanie zo súboru „%s“: %s"
-#: glib/gfileutils.c:904 glib/gfileutils.c:979 glib/gfileutils.c:1468
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Zlyhalo otvorenie súboru „%s“: %s"
-#: glib/gfileutils.c:917
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Zlyhalo získanie atribútov súboru „%s“: fstat() zlyhalo: %s"
-#: glib/gfileutils.c:948
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Zlyhalo otvorenie súboru „%s“: fdopen() zlyhalo: %s"
-#: glib/gfileutils.c:1049
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "Zlyhalo premenovanie súboru „%s“ na „%s“: g_rename() zlyhalo: %s"
-#: glib/gfileutils.c:1175
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Zlyhal zápis súboru „%s“: write() zlyhalo: %s"
-#: glib/gfileutils.c:1196
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Zlyhal zápis súboru „%s“: fsync() zlyhalo: %s"
-#: glib/gfileutils.c:1357 glib/gfileutils.c:1772
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Zlyhalo vytvorenie súboru „%s“: %s"
-#: glib/gfileutils.c:1402
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "Existujúci súbor „%s“ nemohol byť odstránený: g_unlink() zlyhalo: %s"
-#: glib/gfileutils.c:1737
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Šablóna „%s“ je neplatná, nesmie obsahovať „%s“"
-#: glib/gfileutils.c:1750
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Šablóna „%s“ neobsahuje XXXXXX"
-#: glib/gfileutils.c:2310 glib/gfileutils.c:2339
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Zlyhalo načítanie symbolického odkazu „%s“: %s"
-#: glib/giochannel.c:1405
+#: glib/giochannel.c:1408
#, c-format
msgid "Could not open converter from “%s” to “%s”: %s"
msgstr "Nepodarilo sa otvoriť program na prevod z „%s“ do „%s“: %s"
-#: glib/giochannel.c:1758
+#: glib/giochannel.c:1761
msgid "Can’t do a raw read in g_io_channel_read_line_string"
msgstr "Nedá sa urobiť priame čítanie v g_io_channel_read_line_string"
-#: glib/giochannel.c:1805 glib/giochannel.c:2063 glib/giochannel.c:2150
+#: glib/giochannel.c:1808 glib/giochannel.c:2066 glib/giochannel.c:2153
msgid "Leftover unconverted data in read buffer"
msgstr "Zanechané neprevedené údaje v zásobníku na čítanie"
-#: glib/giochannel.c:1886 glib/giochannel.c:1963
+#: glib/giochannel.c:1889 glib/giochannel.c:1966
msgid "Channel terminates in a partial character"
msgstr "Kanál skončil s neúplným znakom"
-#: glib/giochannel.c:1949
+#: glib/giochannel.c:1952
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Nedá sa urobiť priame čítanie v g_io_channel_read_to_end"
-#: glib/gkeyfile.c:790
+#: glib/gkeyfile.c:800
msgid "Valid key file could not be found in search dirs"
msgstr "Nepodarilo sa nájsť platný súbor kľúčov vo vyhľadávacích adresároch"
-#: glib/gkeyfile.c:827
+#: glib/gkeyfile.c:837
msgid "Not a regular file"
msgstr "Nie je bežný súbor"
-#: glib/gkeyfile.c:1282
+#: glib/gkeyfile.c:1295
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5173,49 +5271,49 @@ msgstr ""
"Súbor kľúčov obsahuje riadok „%s“, ktorý nie je párom kľúč-hodnota, "
"skupinou, ani komentárom"
-#: glib/gkeyfile.c:1339
+#: glib/gkeyfile.c:1352
#, c-format
msgid "Invalid group name: %s"
msgstr "Neplatný názov skupiny: %s"
-#: glib/gkeyfile.c:1361
+#: glib/gkeyfile.c:1376
msgid "Key file does not start with a group"
msgstr "Súbor kľúčov nezačína skupinou"
-#: glib/gkeyfile.c:1387
+#: glib/gkeyfile.c:1400
#, c-format
-msgid "Invalid key name: %s"
-msgstr "Neplatný názov kľúča: %s"
+msgid "Invalid key name: %.*s"
+msgstr "Neplatný názov kľúča: %.*s"
-#: glib/gkeyfile.c:1414
+#: glib/gkeyfile.c:1428
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Súbor kľúčov obsahuje nepodporované kódovane „%s“"
-#: glib/gkeyfile.c:1663 glib/gkeyfile.c:1836 glib/gkeyfile.c:3289
-#: glib/gkeyfile.c:3353 glib/gkeyfile.c:3483 glib/gkeyfile.c:3615
-#: glib/gkeyfile.c:3761 glib/gkeyfile.c:3996 glib/gkeyfile.c:4063
+#: glib/gkeyfile.c:1683 glib/gkeyfile.c:1856 glib/gkeyfile.c:3303
+#: glib/gkeyfile.c:3367 glib/gkeyfile.c:3497 glib/gkeyfile.c:3626
+#: glib/gkeyfile.c:3772 glib/gkeyfile.c:4007 glib/gkeyfile.c:4074
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Súbor kľúčov nemá skupinu „%s“"
-#: glib/gkeyfile.c:1791
+#: glib/gkeyfile.c:1811
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Súbor kľúčov nemá kľúč „%s“ v skupine „%s“"
-#: glib/gkeyfile.c:1953 glib/gkeyfile.c:2069
+#: glib/gkeyfile.c:1973 glib/gkeyfile.c:2089
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "Súbor kľúčov obsahuje kľúč „%s“ s hodnotou „%s“, ktorá nie je UTF-8"
-#: glib/gkeyfile.c:1973 glib/gkeyfile.c:2089 glib/gkeyfile.c:2531
+#: glib/gkeyfile.c:1993 glib/gkeyfile.c:2109 glib/gkeyfile.c:2548
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr "Súbor kľúčov obsahuje kľúč „%s“, ktorý má neinterpretovateľnú hodnotu."
-#: glib/gkeyfile.c:2749 glib/gkeyfile.c:3118
+#: glib/gkeyfile.c:2763 glib/gkeyfile.c:3132
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5224,51 +5322,51 @@ msgstr ""
"Súbor kľúčov obsahuje kľúč „%s“ v skupine „%s“, ktorý má neinterpretovateľnú "
"hodnotu."
-#: glib/gkeyfile.c:2827 glib/gkeyfile.c:2904
+#: glib/gkeyfile.c:2841 glib/gkeyfile.c:2918
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Kľúč „%s“ v skupine „%s“ má hodnotu „%s“, pričom bola očakávaná %s"
-#: glib/gkeyfile.c:4306
+#: glib/gkeyfile.c:4327
msgid "Key file contains escape character at end of line"
msgstr "Súbor kľúčov obsahuje znak escape na konci riadku"
-#: glib/gkeyfile.c:4328
+#: glib/gkeyfile.c:4349
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Súbor kľúčov obsahuje neplatnú špeciálnu (escape) sekvenciu „%s“"
-#: glib/gkeyfile.c:4472
+#: glib/gkeyfile.c:4494
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Hodnota „%s“ nemôže byť interpretovaná ako číslo."
-#: glib/gkeyfile.c:4486
+#: glib/gkeyfile.c:4508
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Celočíselná hodnota „%s“ je mimo rozsah"
-#: glib/gkeyfile.c:4519
+#: glib/gkeyfile.c:4541
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Hodnota „%s“ nemôže byť interpretovaná ako reálne číslo."
-#: glib/gkeyfile.c:4558
+#: glib/gkeyfile.c:4580
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Hodnota „%s“ nemôže byť interpretovaná ako logická hodnota."
-#: glib/gmappedfile.c:129
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr "Zlyhalo získanie atribútov súboru „%s%s%s%s“: fstat() zlyhalo: %s"
-#: glib/gmappedfile.c:195
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Zlyhalo mapovanie %s%s%s%s: mmap() zlyhalo: %s"
-#: glib/gmappedfile.c:262
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Zlyhalo otvorenie súboru „%s“: open() zlyhalo: %s"
@@ -5524,301 +5622,247 @@ msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"Dokument neočakávane skončil v komentári alebo inštrukcii pre spracovanie"
-#: glib/goption.c:873
+#: glib/goption.c:875
msgid "[OPTION…]"
msgstr "[VOĽBA…]"
-#: glib/goption.c:989
+#: glib/goption.c:991
msgid "Help Options:"
msgstr "Voľby pomocníka:"
-#: glib/goption.c:990
+#: glib/goption.c:992
msgid "Show help options"
msgstr "Zobrazí voľby pomocníka"
-#: glib/goption.c:996
+#: glib/goption.c:998
msgid "Show all help options"
msgstr "Zobrazí všetky voľby pomocníka"
-#: glib/goption.c:1059
+#: glib/goption.c:1061
msgid "Application Options:"
msgstr "Voľby aplikácie:"
-#: glib/goption.c:1061
+#: glib/goption.c:1063
msgid "Options:"
msgstr "Voľby:"
-#: glib/goption.c:1125 glib/goption.c:1195
+#: glib/goption.c:1127 glib/goption.c:1197
#, c-format
msgid "Cannot parse integer value “%s” for %s"
msgstr "Nedá sa analyzovať celočíselná hodnota „%s“ pre %s"
-#: glib/goption.c:1135 glib/goption.c:1203
+#: glib/goption.c:1137 glib/goption.c:1205
#, c-format
msgid "Integer value “%s” for %s out of range"
msgstr "Celočíselná hodnota „%s“ pre %s je mimo rozsah"
# PŠ: double je dvojitá presnosť (čísla s desatinnou čiarkou)
-#: glib/goption.c:1160
+#: glib/goption.c:1162
#, c-format
msgid "Cannot parse double value “%s” for %s"
msgstr "Nedá sa analyzovať hodnota double „%s“ pre %s"
-#: glib/goption.c:1168
+#: glib/goption.c:1170
#, c-format
msgid "Double value “%s” for %s out of range"
msgstr "Hodnota double „%s“ pre %s je mimo rozsah"
-#: glib/goption.c:1460 glib/goption.c:1539
+#: glib/goption.c:1462 glib/goption.c:1541
#, c-format
msgid "Error parsing option %s"
msgstr "Chyba analyzovania voľby %s"
-#: glib/goption.c:1561 glib/goption.c:1674
+#: glib/goption.c:1563 glib/goption.c:1676
#, c-format
msgid "Missing argument for %s"
msgstr "Chýbajúci parameter pre %s"
-#: glib/goption.c:2185
+#: glib/goption.c:2186
#, c-format
msgid "Unknown option %s"
msgstr "Neznáma voľba %s"
-#: glib/gregex.c:255
+#: glib/gregex.c:479
msgid "corrupted object"
msgstr "poškodený objekt"
-#: glib/gregex.c:257
-msgid "internal error or corrupted object"
-msgstr "vnútorná chyba alebo poškodený objekt"
-
-#: glib/gregex.c:259
+#: glib/gregex.c:481
msgid "out of memory"
msgstr "nedostatok pamäte"
-#: glib/gregex.c:264
+#: glib/gregex.c:487
msgid "backtracking limit reached"
msgstr "dosiahnutý limit spätného hľadania"
-#: glib/gregex.c:276 glib/gregex.c:284
-msgid "the pattern contains items not supported for partial matching"
-msgstr "vzor obsahuje položky nepodporované pri čiastočnom porovnávaní"
-
-#: glib/gregex.c:278
+#: glib/gregex.c:498
msgid "internal error"
msgstr "vnútorná chyba"
-#: glib/gregex.c:286
+#: glib/gregex.c:500
+msgid "the pattern contains items not supported for partial matching"
+msgstr "vzor obsahuje položky nepodporované pri čiastočnom porovnávaní"
+
+#: glib/gregex.c:502
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"spätné odkazy použité ako podmienky nie sú podporované pri čiastočnom "
"porovnávaní"
-#: glib/gregex.c:295
+#: glib/gregex.c:508
msgid "recursion limit reached"
msgstr "dosiahnutý limit rekurzie"
-#: glib/gregex.c:297
-msgid "invalid combination of newline flags"
-msgstr "neplatná kombinácia príznakov nového riadka"
-
-#: glib/gregex.c:299
+#: glib/gregex.c:510
msgid "bad offset"
msgstr "zlý ofset"
-#: glib/gregex.c:301
-msgid "short utf8"
-msgstr "krátke utf8"
-
# Ide o omyl programátora: case PCRE2_ERROR_RECURSELOOP: return _("recursion loop");
-#: glib/gregex.c:303
+#: glib/gregex.c:512
msgid "recursion loop"
msgstr "rekurzívna slučka"
-#: glib/gregex.c:307
+#. should not happen in GRegex since we check modes before each match
+#: glib/gregex.c:515
+msgid "matching mode is requested that was not compiled for JIT"
+msgstr ""
+
+#: glib/gregex.c:536 glib/gregex.c:1838
msgid "unknown error"
msgstr "neznáma chyba"
-#: glib/gregex.c:327
+#: glib/gregex.c:557
msgid "\\ at end of pattern"
msgstr "\\ na konci vzoru"
-#: glib/gregex.c:330
+#: glib/gregex.c:561
msgid "\\c at end of pattern"
msgstr "\\c na konci vzoru"
-#: glib/gregex.c:333
+#: glib/gregex.c:566
msgid "unrecognized character following \\"
msgstr "nerozpoznaný znak nasledujúci za \\"
-#: glib/gregex.c:336
+#: glib/gregex.c:570
msgid "numbers out of order in {} quantifier"
msgstr "nesprávne poradie čísel v kvantifikátore {}"
-#: glib/gregex.c:339
+#: glib/gregex.c:574
msgid "number too big in {} quantifier"
msgstr "príliš veľké číslo v kvantifikátore {}"
-#: glib/gregex.c:342
+#: glib/gregex.c:578
msgid "missing terminating ] for character class"
msgstr "chýbajúca koncová ] pre triedu znakov"
-#: glib/gregex.c:345
+#: glib/gregex.c:582
msgid "invalid escape sequence in character class"
msgstr "neplatná špeciálna (escape) sekvencia v triede znakov"
-#: glib/gregex.c:348
+#: glib/gregex.c:586
msgid "range out of order in character class"
msgstr "nesprávne poradie rozsahu v triede znakov"
-#: glib/gregex.c:351
+#: glib/gregex.c:591
msgid "nothing to repeat"
msgstr "nie je čo opakovať"
-#: glib/gregex.c:355
-msgid "unexpected repeat"
-msgstr "neočakávané opakovanie"
-
-#: glib/gregex.c:358
+#: glib/gregex.c:595
msgid "unrecognized character after (? or (?-"
msgstr "nerozpoznaný znak za (? alebo (?-"
-#: glib/gregex.c:361
+#: glib/gregex.c:599
msgid "POSIX named classes are supported only within a class"
msgstr "triedy s názvami POSIX sú podporované iba v triedach"
-#: glib/gregex.c:364
+#: glib/gregex.c:603
+msgid "POSIX collating elements are not supported"
+msgstr "porovnávacie POSIX prvky nie sú podporované"
+
+#: glib/gregex.c:609
msgid "missing terminating )"
msgstr "chýbajúca koncová )"
-#: glib/gregex.c:367
+#: glib/gregex.c:613
msgid "reference to non-existent subpattern"
msgstr "odkaz na neexistujúci podvzor"
-#: glib/gregex.c:370
+#: glib/gregex.c:617
msgid "missing ) after comment"
msgstr "chýbajúca ) po komentári"
-#: glib/gregex.c:373
+#: glib/gregex.c:621
msgid "regular expression is too large"
msgstr "regulárny výraz je príliš veľký"
-#: glib/gregex.c:376
-msgid "failed to get memory"
-msgstr "nepodarilo sa získať pamäť"
-
-#: glib/gregex.c:380
-msgid ") without opening ("
-msgstr ") bez otváracej ("
-
-#: glib/gregex.c:384
-msgid "code overflow"
-msgstr "pretečenie kódu"
-
-#: glib/gregex.c:388
-msgid "unrecognized character after (?<"
-msgstr "nerozpoznaný znak za (?<"
+#: glib/gregex.c:625
+msgid "malformed number or name after (?("
+msgstr "zle formátované číslo alebo názov za (?("
-#: glib/gregex.c:391
+#: glib/gregex.c:629
msgid "lookbehind assertion is not fixed length"
msgstr "spätné tvrdenie nemá pevnú dĺžku"
-#: glib/gregex.c:394
-msgid "malformed number or name after (?("
-msgstr "zle formátované číslo alebo názov za (?("
-
-#: glib/gregex.c:397
+#: glib/gregex.c:633
msgid "conditional group contains more than two branches"
msgstr "podmienková skupina obsahuje viac ako dve zátvorky"
-#: glib/gregex.c:400
+#: glib/gregex.c:637
msgid "assertion expected after (?("
msgstr "tvrdenie očakávané za (?("
-#. translators: '(?R' and '(?[+-]digits' are both meant as (groups of)
-#. * sequences here, '(?-54' would be an example for the second group.
-#.
-#: glib/gregex.c:407
-msgid "(?R or (?[+-]digits must be followed by )"
-msgstr "za (?R alebo (?[+-]číslice musí nasledovať )"
+#: glib/gregex.c:641
+msgid "a numbered reference must not be zero"
+msgstr "očíslovaný odkaz nesmie byť nula"
-#: glib/gregex.c:410
+#: glib/gregex.c:645
msgid "unknown POSIX class name"
msgstr "neznámy POSIX názov triedy"
-#: glib/gregex.c:413
-msgid "POSIX collating elements are not supported"
-msgstr "porovnávacie POSIX prvky nie sú podporované"
-
-#: glib/gregex.c:416
+#: glib/gregex.c:650
msgid "character value in \\x{...} sequence is too large"
msgstr "hodnota znaku v postupnosti \\x{...} je príliš veľká"
-#: glib/gregex.c:419
-msgid "invalid condition (?(0)"
-msgstr "neplatná podmienka (?(0)"
-
-#: glib/gregex.c:422
+#: glib/gregex.c:654
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C nie je povolené v spätnom tvrdení"
-#: glib/gregex.c:429
-msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
-msgstr "\\L, \\l, \\N{name}, \\U, a \\u nie sú podporované"
-
-#: glib/gregex.c:432
-msgid "recursive call could loop indefinitely"
-msgstr "rekurzívne volanie by sa mohlo donekonečna opakovať"
-
-#: glib/gregex.c:436
-msgid "unrecognized character after (?P"
-msgstr "nerozpoznaný znak za (?P"
-
-#: glib/gregex.c:439
+#: glib/gregex.c:658
msgid "missing terminator in subpattern name"
msgstr "chýba ukončovací člen v názve podvzoru"
-#: glib/gregex.c:442
+#: glib/gregex.c:662
msgid "two named subpatterns have the same name"
msgstr "dva pomenované podvzory majú rovnaký názov"
-#: glib/gregex.c:445
+#: glib/gregex.c:666
msgid "malformed \\P or \\p sequence"
msgstr "zle formátovaná postupnosť \\P alebo \\p"
-#: glib/gregex.c:448
+#: glib/gregex.c:670
msgid "unknown property name after \\P or \\p"
msgstr "neznámy názov vlastnosti za \\P alebo \\p"
-#: glib/gregex.c:451
+#: glib/gregex.c:674
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "názov podvzoru je príliš dlhý (maximum je 32 znakov)"
-#: glib/gregex.c:454
+#: glib/gregex.c:678
msgid "too many named subpatterns (maximum 10,000)"
msgstr "príliš mnoho pomenovaných podvzorov (maximum je 10 000)"
-#: glib/gregex.c:457
+#: glib/gregex.c:682
msgid "octal value is greater than \\377"
msgstr "osmičková hodnota je väčšia ako \\377"
-#: glib/gregex.c:461
-msgid "overran compiling workspace"
-msgstr "pretečený priestor pre preklad"
-
-#: glib/gregex.c:465
-msgid "previously-checked referenced subpattern not found"
-msgstr "predtým kontrolovaný odkazovaný podvzor nenájdený"
-
-#: glib/gregex.c:468
+#: glib/gregex.c:686
msgid "DEFINE group contains more than one branch"
msgstr "skupina DEFINE obsahuje viac ako jednu vetvu"
-#: glib/gregex.c:471
+#: glib/gregex.c:690
msgid "inconsistent NEWLINE options"
msgstr "nekonzistentné voľby NEWLINE"
-#: glib/gregex.c:474
+#: glib/gregex.c:694
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5826,285 +5870,290 @@ msgstr ""
"za \\g nenasleduje názov v guľatých ani lomených zátvorkách, názov alebo "
"číslo v úvodzovkách ani nekódované číslo"
-#: glib/gregex.c:478
-msgid "a numbered reference must not be zero"
-msgstr "očíslovaný odkaz nesmie byť nula"
-
-#: glib/gregex.c:481
+#: glib/gregex.c:699
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "parameter nie je pre (*ACCEPT), (*FAIL) a (*COMMIT) dovolený"
-#: glib/gregex.c:484
+#: glib/gregex.c:703
msgid "(*VERB) not recognized"
msgstr "(*VERB) nebolo rozpoznané"
-#: glib/gregex.c:487
+#: glib/gregex.c:707
msgid "number is too big"
msgstr "číslo je príliš veľké"
-#: glib/gregex.c:490
+#: glib/gregex.c:711
msgid "missing subpattern name after (?&"
msgstr "za (?& chýba názov podvzoru"
-#: glib/gregex.c:493
-msgid "digit expected after (?+"
-msgstr "za (?+ sa očakáva číslica"
-
-#: glib/gregex.c:496
-msgid "] is an invalid data character in JavaScript compatibility mode"
-msgstr ""
-"] nie je platný dátový znak v režime kompatibility s jazykom JavaScript"
-
-#: glib/gregex.c:499
+#: glib/gregex.c:715
msgid "different names for subpatterns of the same number are not allowed"
msgstr "rôzne názvy pre podvzory s rovnakým číslom nie sú povolené"
-#: glib/gregex.c:502
+#: glib/gregex.c:719
msgid "(*MARK) must have an argument"
msgstr "(*MARK) musí mať parameter"
-#: glib/gregex.c:505
+#: glib/gregex.c:723
msgid "\\c must be followed by an ASCII character"
msgstr "za \\c musí nasledovať znak ASCII"
-#: glib/gregex.c:508
+#: glib/gregex.c:727
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"za \\k nenasleduje názov v zátvorkách, lomených zátvorkách alebo úvodzovkách"
-#: glib/gregex.c:511
+#: glib/gregex.c:731
msgid "\\N is not supported in a class"
msgstr "\\N nie je v triede podporované"
-# PM:nie som si istý
-# MČ: Hmm. Musel som pozrieť zdrojáky pcre, aby som sa trošku ztoho vymotal. Pri doprednom vyhľadávaní (lookahead) si stroj regulárneho výrazu odkladá odkazy na už asociované (zjednodušene nájdené) časti textu k regulárnemu výrazu. Ak je ich priveľa, nezmestia sa do pamäte, malloc zlyhá, vráti túto chybovú hlášku. Myslím, že preklad aj originál mi povedali rovnako veľa informácií.
-#: glib/gregex.c:514
-msgid "too many forward references"
-msgstr "príliš mnoho dopredných odkazov"
-
-#: glib/gregex.c:517
+#: glib/gregex.c:735
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "názov v (*MARK), (*PRUNE), (*SKIP) alebo (*THEN) je príliš dlhý"
-#: glib/gregex.c:520
-msgid "character value in \\u.... sequence is too large"
-msgstr "hodnota znaku v postupnosti \\u.... je príliš veľká"
+#: glib/gregex.c:739 glib/gregex.c:875
+msgid "code overflow"
+msgstr "pretečenie kódu"
-#: glib/gregex.c:743 glib/gregex.c:1988
+#: glib/gregex.c:743
+msgid "unrecognized character after (?P"
+msgstr "nerozpoznaný znak za (?P"
+
+#: glib/gregex.c:747
+msgid "overran compiling workspace"
+msgstr "pretečený priestor pre preklad"
+
+#: glib/gregex.c:751
+msgid "previously-checked referenced subpattern not found"
+msgstr "predtým kontrolovaný odkazovaný podvzor nenájdený"
+
+#: glib/gregex.c:874 glib/gregex.c:1121 glib/gregex.c:2444
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Chyba počas porovnávania regulárneho výrazu %s: %s"
-#: glib/gregex.c:1321
+#: glib/gregex.c:1721
msgid "PCRE library is compiled without UTF8 support"
msgstr "Knižnica PCRE je preložená bez podpory UTF8"
-#: glib/gregex.c:1325
-msgid "PCRE library is compiled without UTF8 properties support"
-msgstr "Knižnica PCRE je preložená bez podpory vlastností UTF8"
-
-#: glib/gregex.c:1333
+#: glib/gregex.c:1729
msgid "PCRE library is compiled with incompatible options"
msgstr "Knižnica PCRE je preložená s nekompatibilnými voľbami"
-#: glib/gregex.c:1362
-#, c-format
-msgid "Error while optimizing regular expression %s: %s"
-msgstr "Chyba počas optimalizovania regulárneho výrazu %s: %s"
-
-#: glib/gregex.c:1442
-#, c-format
-msgid "Error while compiling regular expression %s at char %d: %s"
+#: glib/gregex.c:1847
+#, fuzzy, c-format
+#| msgid "Error while compiling regular expression %s at char %d: %s"
+msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Chyba počas prekladu regulárneho výrazu %s pri znaku %d: %s"
-#: glib/gregex.c:2427
+#: glib/gregex.c:2887
msgid "hexadecimal digit or “}” expected"
msgstr "očakávaná šestnástková číslica alebo „}“"
-#: glib/gregex.c:2443
+#: glib/gregex.c:2903
msgid "hexadecimal digit expected"
msgstr "očakávaná šestnástková číslica"
-#: glib/gregex.c:2483
+#: glib/gregex.c:2943
msgid "missing “<” in symbolic reference"
msgstr "chýba „<“ v symbolickom odkaze"
-#: glib/gregex.c:2492
+#: glib/gregex.c:2952
msgid "unfinished symbolic reference"
msgstr "neukončený symbolický odkaz"
-#: glib/gregex.c:2499
+#: glib/gregex.c:2959
msgid "zero-length symbolic reference"
msgstr "symbolický odkaz s nulovou dĺžkou"
-#: glib/gregex.c:2510
+#: glib/gregex.c:2970
msgid "digit expected"
msgstr "očakávaná číslica"
-#: glib/gregex.c:2528
+#: glib/gregex.c:2988
msgid "illegal symbolic reference"
msgstr "neplatný symbolický odkaz"
-#: glib/gregex.c:2591
+#: glib/gregex.c:3051
msgid "stray final “\\”"
msgstr "zabudnuté koncové „\\“"
-#: glib/gregex.c:2595
+#: glib/gregex.c:3055
msgid "unknown escape sequence"
msgstr "neznáma špeciálna (escape) sekvencia"
-#: glib/gregex.c:2605
+#: glib/gregex.c:3065
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Chyba počas analyzovania nahrádzajúceho textu „%s“ pri znaku %lu: %s"
-#: glib/gshell.c:94
+#: glib/gshell.c:98
msgid "Quoted text doesn’t begin with a quotation mark"
msgstr "Citovaný text nezačína úvodzovkami"
-#: glib/gshell.c:184
+#: glib/gshell.c:188
msgid "Unmatched quotation mark in command line or other shell-quoted text"
msgstr ""
"Prebytočné úvodzovky v príkazovom riadku alebo v inom texte shellu v "
"úvodzovkách"
-#: glib/gshell.c:580
+#: glib/gshell.c:594
#, c-format
msgid "Text ended just after a “\\” character. (The text was “%s”)"
msgstr "Text skončil hneď po znaku „\\“. (Text bol „%s“)"
-#: glib/gshell.c:587
+#: glib/gshell.c:601
#, c-format
msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
msgstr ""
"Text skončil pred nájdením zodpovedajúcej úvodzovky znakom %c. (Text bol "
"„%s“)"
-#: glib/gshell.c:599
+#: glib/gshell.c:613
msgid "Text was empty (or contained only whitespace)"
msgstr "Text bol prázdny (alebo obsahoval iba medzery)"
-#: glib/gspawn.c:308
+#: glib/gspawn.c:319
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Zlyhalo čítanie údajov z dcérskeho procesu (%s)"
-#: glib/gspawn.c:458
+#: glib/gspawn.c:471
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Neočakávaná chyba pri čítaní údajov z dcérskeho procesu (%s)"
-#: glib/gspawn.c:543
+#: glib/gspawn.c:556
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Neočakávaná chyba vo waitpid() (%s)"
-#: glib/gspawn.c:1152 glib/gspawn-win32.c:1407
+#: glib/gspawn.c:1175 glib/gspawn-win32.c:1503
#, c-format
msgid "Child process exited with code %ld"
msgstr "Dcérsky proces skončil s kódom %ld"
-#: glib/gspawn.c:1160
+#: glib/gspawn.c:1183
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Dcérsky proces bol zabitý signálom %ld"
-#: glib/gspawn.c:1167
+#: glib/gspawn.c:1190
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Dcérsky proces bol zastavený signálom %ld"
-#: glib/gspawn.c:1174
+#: glib/gspawn.c:1197
#, c-format
msgid "Child process exited abnormally"
msgstr "Dcérsky proces skončil neobvykle"
-#: glib/gspawn.c:1793 glib/gspawn-win32.c:350 glib/gspawn-win32.c:358
+#: glib/gspawn.c:2027 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Zlyhalo čítanie zo zreťazenia s potomkom (%s)"
-#: glib/gspawn.c:2095
+#: glib/gspawn.c:2399
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Zlyhalo vytvorenie dcérskeho procesu „%s“ (%s)"
-#: glib/gspawn.c:2212
+#: glib/gspawn.c:2525
#, c-format
msgid "Failed to fork (%s)"
msgstr "Zlyhalo vytvorenie vetvy (%s)"
-#: glib/gspawn.c:2372 glib/gspawn-win32.c:381
+#: glib/gspawn.c:2685 glib/gspawn-win32.c:424
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Zlyhala zmena adresára na „%s“ (%s)"
-#: glib/gspawn.c:2382
+#: glib/gspawn.c:2695
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Zlyhalo spustenie dcérskeho procesu „%s“ (%s)"
-#: glib/gspawn.c:2392
-#, c-format
-msgid "Failed to redirect output or input of child process (%s)"
+#: glib/gspawn.c:2705
+#, fuzzy, c-format
+#| msgid "Failed to open file “%s”: open() failed: %s"
+msgid "Failed to open file to remap file descriptor (%s)"
+msgstr "Zlyhalo otvorenie súboru „%s“: open() zlyhalo: %s"
+
+#: glib/gspawn.c:2713
+#, fuzzy, c-format
+#| msgid "Failed to redirect output or input of child process (%s)"
+msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Zlyhalo presmerovanie vstupu alebo výstupu dcérskeho procesu (%s)"
-#: glib/gspawn.c:2401
+#: glib/gspawn.c:2722
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Zlyhalo vytvorenie vetvy dcérskeho procesu (%s)"
-#: glib/gspawn.c:2409
+#: glib/gspawn.c:2730
+#, fuzzy, c-format
+#| msgid "Failed to read data from child process (%s)"
+msgid "Failed to close file descriptor for child process (%s)"
+msgstr "Zlyhalo čítanie údajov z dcérskeho procesu (%s)"
+
+#: glib/gspawn.c:2738
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Neznáma chyba pri spúšťaní dcérskeho procesu „%s“"
-#: glib/gspawn.c:2433
+#: glib/gspawn.c:2762
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
"Nepodarilo sa prečítať dostatok údajov zo zreťazenia s dcérskym procesom (%s)"
-#: glib/gspawn-win32.c:294
+#: glib/gspawn-private.h:134
+#, fuzzy, c-format
+#| msgid "Invalid seek request"
+msgid "Invalid source FDs argument"
+msgstr "Neplatná požiadavka na presunutie"
+
+#: glib/gspawn-win32.c:337
msgid "Failed to read data from child process"
msgstr "Zlyhalo čítanie údajov z dcérskeho procesu"
-#: glib/gspawn-win32.c:311
-#, c-format
-msgid "Failed to create pipe for communicating with child process (%s)"
-msgstr "Zlyhalo vytvorenie zreťazenia pre komunikáciu s dcérskym procesom (%s)"
-
-#: glib/gspawn-win32.c:387 glib/gspawn-win32.c:392 glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Zlyhalo spustenie dcérskeho procesu (%s)"
-#: glib/gspawn-win32.c:461
+#: glib/gspawn-win32.c:440
+#, fuzzy, c-format
+#| msgid "Failed to fork child process (%s)"
+msgid "Failed to dup() in child process (%s)"
+msgstr "Zlyhalo vytvorenie vetvy dcérskeho procesu (%s)"
+
+#: glib/gspawn-win32.c:511
#, c-format
msgid "Invalid program name: %s"
msgstr "Neplatný názov programu: %s"
-#: glib/gspawn-win32.c:471 glib/gspawn-win32.c:779
+#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:868
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Neplatný reťazec vo vektore parametra na %d: %s"
-#: glib/gspawn-win32.c:482 glib/gspawn-win32.c:794
+#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:884
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Neplatný reťazec v prostredí: %s"
-#: glib/gspawn-win32.c:775
+#: glib/gspawn-win32.c:864
#, c-format
msgid "Invalid working directory: %s"
msgstr "Neplatný pracovný adresár: %s"
-#: glib/gspawn-win32.c:837
+#: glib/gspawn-win32.c:929
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Zlyhalo spustenie pomocného programu (%s)"
-#: glib/gspawn-win32.c:1064
+#: glib/gspawn-win32.c:1158
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6112,311 +6161,480 @@ msgstr ""
"Neočakávaná chyba v g_io_channel_win32_poll() pri čítaní údajov z dcérskeho "
"procesu"
-#: glib/gstrfuncs.c:3338 glib/gstrfuncs.c:3440
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Prázdny reťazec nie je číslo"
-#: glib/gstrfuncs.c:3362
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "„%s“ nie je číslo so znamienkom"
-#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3476
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Číslo „%s“ je mimo rozsah [%s, %s]"
-#: glib/gstrfuncs.c:3466
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "„%s“ nie je číslo bez znamienka"
-#: glib/guri.c:315
+#: glib/guri.c:317
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "Neplatné kódovanie použitím znaku % v URI"
-#: glib/guri.c:332
+#: glib/guri.c:334
msgid "Illegal character in URI"
msgstr "Neplatný znak v URI"
-#: glib/guri.c:366
+#: glib/guri.c:368
msgid "Non-UTF-8 characters in URI"
msgstr ""
-#: glib/guri.c:546
+#: glib/guri.c:548
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
-msgstr ""
+msgstr "Neplatná adresa IPv6 „%.*s“ v URI"
-#: glib/guri.c:601
+#: glib/guri.c:603
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr ""
-#: glib/guri.c:613
-#, fuzzy, c-format
-#| msgid "Could not parse port ‘%.*s’ in URI"
+#: glib/guri.c:615
+#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
-msgstr "Nepodarilo sa analyzovať port „%.*s“ v URI"
+msgstr "Neplatný zmedzinárodnený názov hostiteľa „%.*s“ v URI"
-#: glib/guri.c:645 glib/guri.c:657
+#: glib/guri.c:647 glib/guri.c:659
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Nepodarilo sa analyzovať port „%.*s“ v URI"
-#: glib/guri.c:664
+#: glib/guri.c:666
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Port „%.*s“ v URI je mimo rozsah"
-#: glib/guri.c:1224 glib/guri.c:1288
+#: glib/guri.c:1226 glib/guri.c:1290
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "URI „%s“ nie je absolútnym URI"
-#: glib/guri.c:1230
+#: glib/guri.c:1232
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr ""
-#: glib/guri.c:1435
+#: glib/guri.c:1462
msgid "URI is not absolute, and no base URI was provided"
msgstr ""
-#: glib/guri.c:2213
+#: glib/guri.c:2248
msgid "Missing ‘=’ and parameter value"
msgstr "Chýba znak „=“ a hodnota parametra"
-#: glib/gutf8.c:817
+#: glib/gutf8.c:834
msgid "Failed to allocate memory"
msgstr "Zlyhalo alokovanie pamäte"
-#: glib/gutf8.c:950
+#: glib/gutf8.c:967
msgid "Character out of range for UTF-8"
msgstr "Znak mimo rozsah UTF-8"
-#: glib/gutf8.c:1051 glib/gutf8.c:1060 glib/gutf8.c:1190 glib/gutf8.c:1199
-#: glib/gutf8.c:1338 glib/gutf8.c:1435
+#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
+#: glib/gutf8.c:1356 glib/gutf8.c:1453
msgid "Invalid sequence in conversion input"
msgstr "Neplatná sekvencia na vstupe prevodu"
-#: glib/gutf8.c:1349 glib/gutf8.c:1446
+#: glib/gutf8.c:1367 glib/gutf8.c:1464
msgid "Character out of range for UTF-16"
msgstr "Znak mimo rozsah UTF-16"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2727
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
+#: glib/gutils.c:2966
+msgid "kB"
+msgstr "kB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
+#: glib/gutils.c:2968
+msgid "MB"
+msgstr "MB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
+#: glib/gutils.c:2970
+msgid "GB"
+msgstr "GB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
+#: glib/gutils.c:2972
+msgid "TB"
+msgstr "TB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
+#: glib/gutils.c:2974
+msgid "PB"
+msgstr "PB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
+#: glib/gutils.c:2976
+msgid "EB"
+msgstr "EB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
+#: glib/gutils.c:2980
+msgid "KiB"
+msgstr "KiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
+#: glib/gutils.c:2982
+msgid "MiB"
+msgstr "MiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
+#: glib/gutils.c:2984
+msgid "GiB"
+msgstr "GiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
+#: glib/gutils.c:2986
+msgid "TiB"
+msgstr "TiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
+#: glib/gutils.c:2988
+msgid "PiB"
+msgstr "PiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
+#: glib/gutils.c:2990
+msgid "EiB"
+msgstr "EiB"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
+#: glib/gutils.c:2994
+msgid "kb"
+msgstr "kb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
+#: glib/gutils.c:2996
+msgid "Mb"
+msgstr "Mb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
+#: glib/gutils.c:2998
+msgid "Gb"
+msgstr "Gb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
+#: glib/gutils.c:3000
+msgid "Tb"
+msgstr "Tb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
+#: glib/gutils.c:3002
+msgid "Pb"
+msgstr "Pb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
+#: glib/gutils.c:3004
+msgid "Eb"
+msgstr "Eb"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
+#: glib/gutils.c:3008
+msgid "Kib"
+msgstr "Kib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
+#: glib/gutils.c:3010
+msgid "Mib"
+msgstr "Mib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
+#: glib/gutils.c:3012
+msgid "Gib"
+msgstr "Gib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
+#: glib/gutils.c:3014
+msgid "Tib"
+msgstr "Tib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
+#: glib/gutils.c:3016
+msgid "Pib"
+msgstr "Pib"
+
+#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
+#: glib/gutils.c:3018
+msgid "Eib"
+msgstr "Eib"
+
+#: glib/gutils.c:3056
+msgid "byte"
+msgid_plural "bytes"
+msgstr[0] "bajtov"
+msgstr[1] "bajt"
+msgstr[2] "bajty"
+
+#: glib/gutils.c:3060
+#| msgid "%u bit"
+#| msgid_plural "%u bits"
+msgid "bit"
+msgid_plural "bits"
+msgstr[0] "bitov"
+msgstr[1] "bit"
+msgstr[2] "bity"
+
+#. Translators: The "%u" is replaced with the size value, like "13"; it could
+#. * be part of "13 bytes", but only the number is requested this time.
+#: glib/gutils.c:3068
+#, c-format
+msgctxt "format-size"
+msgid "%u"
+msgstr "%u"
+
+#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
+#: glib/gutils.c:3073
+#, c-format
+msgctxt "format-size"
+msgid "%u %s"
+msgstr "%u %s"
+
+#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
+#. * be part of "13.0 MB", but only the number is requested this time.
+#: glib/gutils.c:3109
+#, c-format
+#| msgid "%.1f KB"
+msgctxt "format-size"
+msgid "%.1f"
+msgstr "%.1f"
+
+#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
+#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
+#. * the unit symbol. An example: "13.0 MB"
+#: glib/gutils.c:3115
+#, c-format
+#| msgid "%.1f kB"
+msgctxt "format-size"
+msgid "%.1f %s"
+msgstr "%.1f %s"
+
+#. Translators: the %s in "%s bytes" will always be replaced by a number.
+#: glib/gutils.c:3155
#, c-format
-msgid "%.1f kB"
-msgstr "%.1f kB"
+msgid "%s byte"
+msgid_plural "%s bytes"
+msgstr[0] "%s bajtov"
+msgstr[1] "%s bajt"
+msgstr[2] "%s bajty"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2729
+#. Translators: the %s in "%s bits" will always be replaced by a number.
+#: glib/gutils.c:3160
#, c-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
+msgid "%s bit"
+msgid_plural "%s bits"
+msgstr[0] "%s bitov"
+msgstr[1] "%s bit"
+msgstr[2] "%s bity"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2731
+#: glib/gutils.c:3201
#, c-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
+msgid "%u byte"
+msgid_plural "%u bytes"
+msgstr[0] "%u bajtov"
+msgstr[1] "%u bajt"
+msgstr[2] "%u bajty"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2733
+#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
+#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
+#. * compatibility. Users will not see this string unless a program is using this deprecated function.
+#. * Please translate as literally as possible.
+#.
+#: glib/gutils.c:3214
#, c-format
-msgid "%.1f TB"
-msgstr "%.1f TB"
+msgid "%.1f KB"
+msgstr "%.1f kB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2735
+#: glib/gutils.c:3219
#, c-format
-msgid "%.1f PB"
-msgstr "%.1f PB"
+msgid "%.1f MB"
+msgstr "%.1f MB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2737
+#: glib/gutils.c:3224
#, c-format
-msgid "%.1f EB"
-msgstr "%.1f EB"
+msgid "%.1f GB"
+msgstr "%.1f GB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2741
+#: glib/gutils.c:3229
#, c-format
-msgid "%.1f KiB"
-msgstr "%.1f KiB"
+msgid "%.1f TB"
+msgstr "%.1f TB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2743
+#: glib/gutils.c:3234
#, c-format
-msgid "%.1f MiB"
-msgstr "%.1f MiB"
+msgid "%.1f PB"
+msgstr "%.1f PB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2745
+#: glib/gutils.c:3239
#, c-format
-msgid "%.1f GiB"
-msgstr "%.1f GiB"
+msgid "%.1f EB"
+msgstr "%.1f EB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2747
#, c-format
-msgid "%.1f TiB"
-msgstr "%.1f TiB"
+#~ msgid "edit name: %s\n"
+#~ msgstr "názov na úpravu: %s\n"
+
+#~ msgid "internal error or corrupted object"
+#~ msgstr "vnútorná chyba alebo poškodený objekt"
+
+#~ msgid "invalid combination of newline flags"
+#~ msgstr "neplatná kombinácia príznakov nového riadka"
+
+#~ msgid "short utf8"
+#~ msgstr "krátke utf8"
+
+#~ msgid "unexpected repeat"
+#~ msgstr "neočakávané opakovanie"
+
+#~ msgid "failed to get memory"
+#~ msgstr "nepodarilo sa získať pamäť"
+
+#~ msgid ") without opening ("
+#~ msgstr ") bez otváracej ("
+
+#~ msgid "unrecognized character after (?<"
+#~ msgstr "nerozpoznaný znak za (?<"
+
+#~ msgid "(?R or (?[+-]digits must be followed by )"
+#~ msgstr "za (?R alebo (?[+-]číslice musí nasledovať )"
+
+#~ msgid "invalid condition (?(0)"
+#~ msgstr "neplatná podmienka (?(0)"
+
+#~ msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
+#~ msgstr "\\L, \\l, \\N{name}, \\U, a \\u nie sú podporované"
+
+#~ msgid "recursive call could loop indefinitely"
+#~ msgstr "rekurzívne volanie by sa mohlo donekonečna opakovať"
+
+#~ msgid "digit expected after (?+"
+#~ msgstr "za (?+ sa očakáva číslica"
+
+#~ msgid "] is an invalid data character in JavaScript compatibility mode"
+#~ msgstr ""
+#~ "] nie je platný dátový znak v režime kompatibility s jazykom JavaScript"
+
+# PM:nie som si istý
+# MČ: Hmm. Musel som pozrieť zdrojáky pcre, aby som sa trošku ztoho vymotal. Pri doprednom vyhľadávaní (lookahead) si stroj regulárneho výrazu odkladá odkazy na už asociované (zjednodušene nájdené) časti textu k regulárnemu výrazu. Ak je ich priveľa, nezmestia sa do pamäte, malloc zlyhá, vráti túto chybovú hlášku. Myslím, že preklad aj originál mi povedali rovnako veľa informácií.
+#~ msgid "too many forward references"
+#~ msgstr "príliš mnoho dopredných odkazov"
+
+#~ msgid "character value in \\u.... sequence is too large"
+#~ msgstr "hodnota znaku v postupnosti \\u.... je príliš veľká"
+
+#~ msgid "PCRE library is compiled without UTF8 properties support"
+#~ msgstr "Knižnica PCRE je preložená bez podpory vlastností UTF8"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2749
#, c-format
-msgid "%.1f PiB"
-msgstr "%.1f PiB"
+#~ msgid "Error while optimizing regular expression %s: %s"
+#~ msgstr "Chyba počas optimalizovania regulárneho výrazu %s: %s"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2751
#, c-format
-msgid "%.1f EiB"
-msgstr "%.1f EiB"
+#~ msgid "%.1f MB"
+#~ msgstr "%.1f MB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2755
#, c-format
-msgid "%.1f kb"
-msgstr "%.1f kb"
+#~ msgid "%.1f GB"
+#~ msgstr "%.1f GB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2757
#, c-format
-msgid "%.1f Mb"
-msgstr "%.1f Mb"
+#~ msgid "%.1f TB"
+#~ msgstr "%.1f TB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2759
#, c-format
-msgid "%.1f Gb"
-msgstr "%.1f Gb"
+#~ msgid "%.1f PB"
+#~ msgstr "%.1f PB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2761
#, c-format
-msgid "%.1f Tb"
-msgstr "%.1f Tb"
+#~ msgid "%.1f EB"
+#~ msgstr "%.1f EB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2763
#, c-format
-msgid "%.1f Pb"
-msgstr "%.1f Pb"
+#~ msgid "%.1f KiB"
+#~ msgstr "%.1f KiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2765
#, c-format
-msgid "%.1f Eb"
-msgstr "%.1f Eb"
+#~ msgid "%.1f MiB"
+#~ msgstr "%.1f MiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2769
#, c-format
-msgid "%.1f Kib"
-msgstr "%.1f Kib"
+#~ msgid "%.1f GiB"
+#~ msgstr "%.1f GiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2771
#, c-format
-msgid "%.1f Mib"
-msgstr "%.1f Mib"
+#~ msgid "%.1f TiB"
+#~ msgstr "%.1f TiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2773
#, c-format
-msgid "%.1f Gib"
-msgstr "%.1f Gib"
+#~ msgid "%.1f PiB"
+#~ msgstr "%.1f PiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2775
#, c-format
-msgid "%.1f Tib"
-msgstr "%.1f Tib"
+#~ msgid "%.1f EiB"
+#~ msgstr "%.1f EiB"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2777
#, c-format
-msgid "%.1f Pib"
-msgstr "%.1f Pib"
+#~ msgid "%.1f kb"
+#~ msgstr "%.1f kb"
-#. Translators: Keep the no-break space between %.1f and the unit symbol
-#: glib/gutils.c:2779
#, c-format
-msgid "%.1f Eib"
-msgstr "%.1f Eib"
+#~ msgid "%.1f Mb"
+#~ msgstr "%.1f Mb"
-#: glib/gutils.c:2813 glib/gutils.c:2930
#, c-format
-msgid "%u byte"
-msgid_plural "%u bytes"
-msgstr[0] "%u bajtov"
-msgstr[1] "%u bajt"
-msgstr[2] "%u bajty"
+#~ msgid "%.1f Gb"
+#~ msgstr "%.1f Gb"
-#: glib/gutils.c:2817
#, c-format
-msgid "%u bit"
-msgid_plural "%u bits"
-msgstr[0] "%u bitov"
-msgstr[1] "%u bit"
-msgstr[2] "%u bity"
+#~ msgid "%.1f Tb"
+#~ msgstr "%.1f Tb"
-#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:2884
#, c-format
-msgid "%s byte"
-msgid_plural "%s bytes"
-msgstr[0] "%s bajtov"
-msgstr[1] "%s bajt"
-msgstr[2] "%s bajty"
+#~ msgid "%.1f Pb"
+#~ msgstr "%.1f Pb"
-#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:2889
#, c-format
-msgid "%s bit"
-msgid_plural "%s bits"
-msgstr[0] "%s bitov"
-msgstr[1] "%s bit"
-msgstr[2] "%s bity"
+#~ msgid "%.1f Eb"
+#~ msgstr "%.1f Eb"
-#. Translators: this is from the deprecated function g_format_size_for_display() which uses 'KB' to
-#. * mean 1024 bytes. I am aware that 'KB' is not correct, but it has been preserved for reasons of
-#. * compatibility. Users will not see this string unless a program is using this deprecated function.
-#. * Please translate as literally as possible.
-#.
-#: glib/gutils.c:2943
#, c-format
-msgid "%.1f KB"
-msgstr "%.1f kB"
+#~ msgid "%.1f Kib"
+#~ msgstr "%.1f Kib"
-#: glib/gutils.c:2948
#, c-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
+#~ msgid "%.1f Mib"
+#~ msgstr "%.1f Mib"
-#: glib/gutils.c:2953
#, c-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
+#~ msgid "%.1f Gib"
+#~ msgstr "%.1f Gib"
-#: glib/gutils.c:2958
#, c-format
-msgid "%.1f TB"
-msgstr "%.1f TB"
+#~ msgid "%.1f Tib"
+#~ msgstr "%.1f Tib"
-#: glib/gutils.c:2963
#, c-format
-msgid "%.1f PB"
-msgstr "%.1f PB"
+#~ msgid "%.1f Pib"
+#~ msgstr "%.1f Pib"
-#: glib/gutils.c:2968
#, c-format
-msgid "%.1f EB"
-msgstr "%.1f EB"
+#~ msgid "%.1f Eib"
+#~ msgstr "%.1f Eib"
#~ msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
#~ msgstr ""
@@ -6553,9 +6771,6 @@ msgstr "%.1f EB"
#~ "Chyba pri spracovaní vstupného súboru pomocou to-pixdata:\n"
#~ "%s"
-#~ msgid "URIs not supported"
-#~ msgstr "Identifikátory URI nie sú podporované"
-
#~ msgid "Key file does not have key '%s'"
#~ msgstr "Súbor kľúčov neobsahuje kľúč „%s“"
diff --git a/po/sl.po b/po/sl.po
index 0d20da966..ec495edd6 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -3,14 +3,14 @@
# This file is distributed under the same license as the glib package.
#
# Andraž Tori <andraz.tori1@guest.arnes.si> 2000.
-# Matej Urbančič <mateju@src.gnome.org>, 2007–2022 .
+# Matej Urbančič <mateju@src.gnome.org>, 2007–2023.
#
msgid ""
msgstr ""
"Project-Id-Version: glib master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-09-10 09:05+0000\n"
-"PO-Revision-Date: 2022-09-11 21:10+0200\n"
+"POT-Creation-Date: 2023-09-08 13:55+0000\n"
+"PO-Revision-Date: 2023-09-10 22:59+0200\n"
"Last-Translator: Matej Urbančič <mateju@src.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
"Language: sl_SI\n"
@@ -22,42 +22,42 @@ msgstr ""
"X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 3.0.1\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Nastavljanje privzetih programov ni podprto"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Nastavljanje programa kot nazadnje uporabljenega za vrsto datotek ni podprto"
-#: gio/gappinfo.c:810
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "Iskanje privzetega programa za vrsto vsebine »%s« je spodletelo"
-#: gio/gappinfo.c:870
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Iskanje privzetega programa za shemo »%s« je spodletelo"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "Možnosti programa GApplication"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "Možnosti GApplication:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Prikaže možnosti programa"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr "Vstopi v način storitev (uporabi iz storitvenih datotek D-Bus)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Prepiši ID programa"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Zamenjaj trenutno zagnan primerek"
@@ -139,7 +139,7 @@ msgstr ""
"Določila programa v zapisu vodila D-Bus (na primer: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "DATOTEKA"
@@ -237,11 +237,11 @@ msgstr "povezava z vodilom D-Bus ni uspela: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "Napaka pri pošiljanju sporočila %s programu: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "ime dejanja mora biti podano po določilu id programa\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -250,25 +250,25 @@ msgstr ""
"neveljavno ime dejanja: »%s«\n"
"imena dejanj lahko tvorijo le številke in črke, vezaj » - « in pika » . «.\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "napaka razčlenjevanja parametra dejanja: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "dejanja prejemajo največ en parameter\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "ukaz list-actions zahteva le id programa"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "ni mogoče najti datoteke namizja za program %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -278,9 +278,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "Prevelika vrednost štetja poslana na %s"
@@ -294,8 +294,8 @@ msgstr "Iskanje po osnovnem pretoku ni podprto"
msgid "Cannot truncate GBufferedInputStream"
msgstr "Ni mogoče razčleniti GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Pretok je že zaprt"
@@ -303,7 +303,7 @@ msgstr "Pretok je že zaprt"
msgid "Truncate not supported on base stream"
msgstr "Razčlenitev na osnovnem pretoku ni dovoljena"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -322,28 +322,28 @@ msgid "Not enough space in destination"
msgstr "Ni dovolj prostora za cilju"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Neveljavno zaporedje bajtov na vhodu pretvorbe"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Napaka med pretvorbo: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Dejanje prekinitve zagona ni podprto"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Pretvorba iz nabora znakov »%s« v »%s« ni podprta"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Ni mogoče odpreti pretvornika iz »%s« v »%s«"
@@ -386,17 +386,17 @@ msgstr "Na tem OS vohljanje po poverilih ni podprto"
msgid "Unexpected early end-of-stream"
msgstr "Nepričakovan prezgodnji konec pretoka"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Nepodprt ključ »%s« v vnosu naslova »%s«"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Nesmiselna kombinacija za par ključ/vrednost v vnosu naslova »%s«"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -404,7 +404,7 @@ msgid ""
msgstr ""
"Naslov »%s« ni večkavem (zahtevana je pot, začasna mapa ali abstraktni ključ)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -534,7 +534,7 @@ msgstr "Napaka med oživljanjem ukazne vrstice »%s«: "
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr "Ni mogoče določiti naslova vodila seje (ni podprto v tem OS)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -543,7 +543,7 @@ msgstr ""
"Ni mogoče določiti naslova vodila iz okoljske spremenljivke "
"DBUS_STARTER_BUS_TYPE – neznana vrednost »%s«"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -551,7 +551,7 @@ msgstr ""
"Ni mogoče določiti naslova vodila, kajti okoljska spremenljivka "
"DBUS_STARTER_BUS_TYPE ni nastavljena"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Neznana vrsta vodila %d"
@@ -572,20 +572,24 @@ msgstr ""
"Izčrpani so vsi razpoložljivi overitveni mehanizmi (poskusi: %s) "
"(razpoložljivih: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Nepričakovano pomanjkanje vsebine med branjem podatkov"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Uporabniški ID mora biti enak za odjemalca in strežnik"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Prekinjeno s strani GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Napaka med pridobivanjem podrobnosti mape »%s«: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -593,32 +597,32 @@ msgstr ""
"Dovoljenja na mapi »%s« so napačno oblikovana. Pričakovano je dovoljenje "
"0700, pridobljeno pa 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Napaka med ustvarjanjem mape »%s«: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Opravilo ni podprto"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Napaka med odpiranjem zbirke ključev »%s« za branje: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "Vrstica %d zbirke ključev »%s« z vsebino »%s« je neustrezno oblikovana"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -626,7 +630,7 @@ msgstr ""
"Prvi žeton vrstice %d zbirke ključev pri »%s« z vsebino »%s« je neustrezno "
"oblikovan"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -634,162 +638,172 @@ msgstr ""
"Drugi žeton vrstice %d zbirke ključev pri »%s« z vsebino »%s« je neustrezno "
"oblikovana"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Piškotka z ID %d v zbirki ključev »%s« ni mogoče najti"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Napaka med ustvarjanjem datoteke zaklepa »%s«: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Napaka brisanja stare datoteke zaklepa »%s«: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Napaka med zapiranjem (nepovezane) datoteke zaklepa »%s«: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Napaka med razvezovanjem datoteke zaklepa »%s«: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Napaka med odpiranjem zbirke ključev »%s« za branje: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(V nadaljevanju je spodletelo tudi sproščanje zaklepa »%s«: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "Povezava je zaprta"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Čas zakasnitve je potekel"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Med izgrajevanjem povezave s strani odjemalca so bile odkrite nepodprte "
"zastavice"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"Vmesnik »org.freedesktop.DBus.Properties« na predmetu na poti %s ne obstaja"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Lastnost »%s« ne obstaja"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Lastnost »%s« ni berljiva"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Lastnost »%s« ni zapisljiva"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Napaka med nastavljanjem lastnosti »%s«: pričakovana je vrsta »%s«, javljena "
"pa »%s«."
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Vmesnik »%s« ne obstaja"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Vmesnik »%s« na predmetu na poti %s ne obstaja"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Način »%s« ne obstaja"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Vrsta sporočila »%s« se ne sklada s pričakovano vrsto »%s«"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Za vmesnik %s pri %s je predmet že izvožen"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Ni mogoče pridobiti lastnosti %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Ni mogoče določiti lastnosti %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Način »%s« je vrnil vrsto »%s«, pričakovana pa je vrsta »%s«"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Način »%s« na vmesniku »%s« s podpisom »%s« ne obstaja"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Podrejeno drevo je že izvoženo za %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Predmeta na poti »%s« ni mogoče najti."
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "vrsta je neveljavna"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "Sporočilo METHOD_CALL: manjka polje glave PATH ali MEMBER"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"Sporočilo METHOD_CALL: manjka ali pa ni vpisane vrednosti polja glave PATH "
+"ali MEMBER"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "Sporočilo METHOD_RETURN: manjka polje glave REPLY_SERIAL"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"Sporočilo METHOD_RETURN: manjka ali pa ni vpisane vrednosti polja glave "
+"REPLY_SERIAL"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "Sporočilo ERROR: manjka polje glave REPLY_SERIAL ali ERROR_NAME"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"Sporočilo ERROR: manjka ali pa ni vpisane vrednosti polja glave REPLY_SERIAL "
+"ali ERROR_NAME"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "Sporočilo SIGNAL: manjka polje glave PATH, INTERFACE ali MEMBER"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"Sporočilo SIGNAL: manjka ali pa ni vpisane vrednosti polja glave PATH, "
+"INTERFACE ali MEMBER"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -797,7 +811,7 @@ msgstr ""
"Sporočilo SIGNAL: polje glave PATH uporablja rezervirano vrednost /org/"
"freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -806,7 +820,7 @@ msgstr ""
"freedesktop.DBus.Local"
# Double multiple plural?
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
@@ -815,12 +829,12 @@ msgstr[1] "Med poskusom branja %lu bajtov je bil prejet le %lu"
msgstr[2] "Med poskusom branja %lu bajtov sta bila prejeta le %lu"
msgstr[3] "Med poskusom branja %lu bajtov so bili prejeti le %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Po nizu »%s« je pričakovan bajt NUL, vendar je bil zaznan %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -830,21 +844,21 @@ msgstr ""
"bajtov na bajtnem odmiku %d (dolžina niza %d). Do takrat veljaven UTF-8 niz "
"je »%s«"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Vrednost je gnezdene pregloboko"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Razčlenjena vrednost »%s« ni veljavna pot predmeta vodila D-Bus"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Razčlenjena vrednost »%s« ni veljaven podpis vodila D-Bus"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -863,7 +877,7 @@ msgstr[3] ""
"Najdeno je polje dolžine %u bajtov, največja dovoljena pa je 2<<26 bajtov "
"(64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -872,16 +886,16 @@ msgstr ""
"Zaznano je polje vrste »'a%c«, pričakovana pa je vrednost večkratnika %u "
"bajtov, zaznanih pa je %u bajtov dolžine"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "V vodilu D-Bus prazne vrednosti niso dovoljene"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Razčlenjena vrednost »%s« ni veljaven podpis vodila D-Bus"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -889,7 +903,7 @@ msgstr ""
"Napaka med ločevanjem GVariant iz zaporedja z vrsto niza »%s« iz D-Bus žične "
"oblike"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -898,29 +912,29 @@ msgstr ""
"Neveljavna vrednost vrstnega reda zlogov. Pričakovana je ali vrednost 0x6c "
"(» l «) ali 0x42 (» B «), najdena pa je vrednost 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr ""
"Neveljavna večja različica protokola. Pričakovana je 1, najdenih pa jih je "
"več (%d)"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Glava podpisa je najdena, vendar ni ustrezno oblikovana"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Glava podpisa s podpisom »%s« je najdena, vendar je telo sporočila prazno"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Razčlenjena vrednost »%s« ni veljaven podpis vodila D-Bus (za telo)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -933,11 +947,11 @@ msgstr[2] ""
msgstr[3] ""
"V sporočilu ni glave podpisa, vendar je telo sporočila dolgo %u bajte"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Sporočila ni mogoče ločiti iz zaporedja: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -945,22 +959,22 @@ msgstr ""
"Napaka pri združevanju GVariant v zaporedje z vrsto niza »%s« v D-Bus žično "
"obliko"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr "Število opisnikov v sporočilu (%d) se razlikuje od polja glave (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Sporočila ni bilo mogoče združiti v zaporedje: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "Telo sporočila ima podpis »%s«, vendar v glavi ni podpisa"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -968,52 +982,52 @@ msgid ""
msgstr ""
"Telo sporočila ima podpis vrste »%s«, vendar je podpis v polju glave »%s«"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Telo sporočila je prazno, vendar je v polju glave podpis »(%s)«"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Napaka vrnjena s telesom vrste »%s«"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Napaka vrnjena s praznim telesom"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(S pritiskom na katerikoli znak, se okno zapre)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "Vodilo seje DBus ni zagnano, zato je samodejni zagon spodletel"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Ni mogoče pridobiti strojnega profila: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Ni mogoče naložiti %s oziroma %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Napaka med klicanjem predmeta StartServiceByName za %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Nepričakovan odgovor %d iz načina StartServiceByName(»%s«)"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1022,25 +1036,25 @@ msgstr ""
"Ni mogoče sklicati načina; posredniški strežnik za znano ime %s brez "
"lastnika je bil zgrajen z zastavico G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Abstraktni imenski prostor ni podprt"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Med ustvarjanjem strežnika ni mogoče določiti enkratne datoteke"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Napaka med zapisovanjem enkratne datoteke na »%s«: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Niz »%s« ni veljaven D-Bus GUID"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Na nepodprtem načinu prenosa »%s« ni mogoče poslušati"
@@ -1068,14 +1082,14 @@ msgstr ""
"\n"
"Uporabite »%s COMMAND --help« za pomoč o posameznem ukazu.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Napaka: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Napaka med samopreverjanjem XML: %s\n"
@@ -1085,49 +1099,49 @@ msgstr "Napaka med samopreverjanjem XML: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Napaka: %s ni veljavno ime\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Napaka: %s ni veljavna pot predmeta\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Poveži s sistemskim vodilom"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Poveži z vodilom seje"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Poveži s podanim naslovom vodila D-Bus"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Možnosti končnih točk povezave:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Možnosti, ki določajo končne točke povezave"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Ni določene končne točke povezave"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Določenih je več povezav končne točke"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "Opozorilo: na osnovi podatkov samopregleda, vmesnik »%s« ne obstaja\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1136,164 +1150,164 @@ msgstr ""
"Opozorilo: na osnovi podatkov samopregleda, način »%s« ne obstaja na "
"vmesniku »%s«\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Izbirni cilj za signal (enoznačno ime)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Pot predmeta za oddajanje signala"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Ime signala in vmesnika"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Oddaj signal."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Napaka med povezovanjem: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Napaka: %s ni veljavno enoznačno ime vodila.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Napaka: pot predmeta ni določena\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Napaka: ime signala ni določeno\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Napaka: ime signala »%s« ni veljavno\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Napaka: %s ni veljavno ime vmesnika.\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Napaka: %s ni veljavno ime predmeta.\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Napaka med razčlenjevanjem parametra %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Napaka med počiščenjem povezave: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Ime cilja za sklicanje načina"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Pot do predmeta za sklicanje načina"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Ime načina in vmesnika"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Časovni zamik v sekundah"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Dovoli interaktivno overjanje"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Skliči način na oddaljenem predmetu."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Napaka: cilj ni določen\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Napaka: %s ni veljavno ime vodila\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Napaka: ime načina ni določeno\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Napaka: ime načina »%s« ni veljavno\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Napaka med razčlenjevanjem parametra %d vrste »%s«: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Napaka med dodajanjem ročnika: %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Samopreverjanje ciljnega imena"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Samopreverjanje poti predmeta"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Natisni XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Samopreverjanje podrejenih predmetov"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Natisni le lastnosti"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Samopreverjanje oddaljenega predmeta."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Nadzor ciljnega imena"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Nadzor poti predmeta"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Nadzoruj oddaljeni predmet."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Napaka: ni mogoče nadzirati povezav mimo sporočilnega vtiča\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Storitev, ki naj se začne, preden začne program čakati na drugo (ime)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1301,71 +1315,76 @@ msgstr ""
"Časovni zamik, po katerem je program končan z napako (v sekundah); vrednost "
"0 onemogoči zamik (privzeto)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[MOŽNOST …] IME-VODILA"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Počakaj na izpis imena vodila."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Napaka: storitev za omogočanje mora biti določena.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr ""
"Napaka: storitev za čakanje mora biti določena.\n"
"\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Napaka: navedenih je preveč argumentov.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Napaka: %s ni veljavno enoznačno ime vodila.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr ""
"Za spreminjanje nastavitev razhroščevanja so zahtevana posebna dovoljenja"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5119
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Neimenovano"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Namizna datoteka ne vsebuje določenega polja Exec"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Ni mogoče najti terminala, ki ga zahteva program"
-#: gio/gdesktopappinfo.c:3637
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Programa »%s« na poti $PATH ni mogoče najti"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Ni mogoče ustvariti nastavitvene mape uporabnikovega programa %s: %s"
-#: gio/gdesktopappinfo.c:3641
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Ni mogoče ustvariti uporabnikove nastavitvene mape MIME %s: %s"
-#: gio/gdesktopappinfo.c:3883 gio/gdesktopappinfo.c:3907
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Podatki programa so brez določila"
-#: gio/gdesktopappinfo.c:4143
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Ni mogoče ustvariti uporabnikove datoteke namizja %s"
-#: gio/gdesktopappinfo.c:4279
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Določilo po meri za %s"
@@ -1434,79 +1453,84 @@ msgstr "Pričakovan GEmblem za GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Obstoječa enota ne obstaja"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Ni mogoče kopirati prek mape"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Ni mogoče kopirati mape prek mape"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Ciljna datoteka obstaja"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Ni mogoče kopirati drevesne zgradbe map"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "Splice ni podprt"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Kopiranje obsega datotek ni podprto"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Napaka med prepletanjem datoteke: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Splice ni podprt"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr ""
"Kopiranje (sklic povezave/kloniranje) med različnimi priklopi ni podprto"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Kopiranje (sklic povezave/kloniranje) ni podprto ali pa ni veljavno"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Kopiranje (sklic povezave/kloniranje) ni podprto, ali pa ni delovalo"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Ni mogoče kopirati posebne datoteke"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Neveljavna vrednost simbolne povezave"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Simbolne povezave niso podprte"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Smeti niso podprte"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Ni mogoče uporabiti »%c« v imenu datoteke"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Ustvarjanje začasne mape za predlogo »%s« je spodletelo: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "enota ne podpira priklopa"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Na voljo ni programa z a upravljanje s to datoteko"
@@ -1515,11 +1539,11 @@ msgid "Enumerator is closed"
msgstr "Številčnik je zaprt"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Številčnik izvaja izredno dejanje"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Številčnik datotek je že zaprt"
@@ -1532,27 +1556,27 @@ msgstr "Ni mogoče upravljati z različico %d kodiranja GFileIcon"
msgid "Malformed input data for GFileIcon"
msgstr "Nepravilno oblikovani podatki za GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Pretok ne podpira query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Iskanje po pretoku ni podprto"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Razčlenitev ni dovoljena na dovodnem pretoku"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Razčlenitev ni podprta na pretoku"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Neveljavno ime gostitelja"
@@ -1585,37 +1609,37 @@ msgstr "Odziv posredniškegam strežnika HTTP je preobsežen."
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "Povezava s posredniškim strežnikom HTTP je nepričakovano končana."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Napačno število znakov (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Ni določenega imena razreda %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Vrsta %s ne vstavlja vmesnika GIcon"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Vrste %s ni uvrščena v razred"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Nepravilno oblikovana številka različice: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Vrsta %s ne vstavlja from_tokens() vmesnika GIcon"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Ni mogoče ravnati z navedeno različico kodiranja ikone"
@@ -1656,7 +1680,7 @@ msgstr "Vhodni pretok ne podpira branja"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Pretok izvaja izredno dejanje"
@@ -1762,12 +1786,12 @@ msgid "Error writing to stdout"
msgstr "Napaka med pisanjem v standardni odvod"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1210 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "MESTO"
@@ -1785,8 +1809,8 @@ msgstr ""
"oddaljen GIO namesto krajevnih poti do datotek. Primer: kot pot je\n"
"mogoče uporabiti smb://strežnik/vir/datoteka.txt."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1261 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Ni podanih mest"
@@ -1882,57 +1906,64 @@ msgstr "Ne sledi simbolnim povezavam"
msgid "attributes:\n"
msgstr "atributi:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "prikaži ime: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "uredi ime: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "ime: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "vrsta: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "velikost: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "skrito\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "naslov URI: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "Krajevna pot: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "priklopna točka unix: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Nastavljivi atributi:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Imenski prostor zapisljivih atributov:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Pokaže podatke o mestih."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1997,11 +2028,11 @@ msgstr "Izpiši prikazna imena"
msgid "Print full URIs"
msgstr "Izpiši celotne naslove URI"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Izpiši vsebino mest."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2202,15 +2233,15 @@ msgstr "Priklopi sistemski razdelek TCRYPT"
msgid "Anonymous access denied"
msgstr "Brezimen dostop ni dovoljen!"
-#: gio/gio-tool-mount.c:533
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Ni določenega pogona za datoteko naprave"
-#: gio/gio-tool-mount.c:1025
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Ni nosilca za podano določilo ID"
-#: gio/gio-tool-mount.c:1214
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Priklop oziroma odklop različnih nosilcev"
@@ -2410,11 +2441,11 @@ msgstr "Podano mesto se ne začne z trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Sledi simbolnim povezavam, priklopom in bližnjicam map"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Izpiši seznam vsebine map v drevesni obliki."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Predmet <%s> ni dovoljen znotraj predmeta <%s>"
@@ -2471,7 +2502,7 @@ msgstr "Napaka med stiskanjem datoteke %s"
msgid "text may not appear inside <%s>"
msgstr "besedilo se ne sme pojaviti znotraj <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Izpiši podrobnosti različice in končaj"
@@ -2486,8 +2517,8 @@ msgid ""
msgstr ""
"Mape, iz katerih naj bodo prebrane datoteke (privzeto je to trenutna mapa)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "MAPA"
@@ -2538,7 +2569,7 @@ msgstr "Določilo imena jezika C za ustvarjanje izvorne kode"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "Ciljni prevajalnik C (privzeto: okoljska spremenljivka CC)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2548,121 +2579,121 @@ msgstr ""
"Datoteke določil vira imajo pripone .gresource.xml,\n"
"datoteke vira pa pripono .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Podati je treba natanko eno ime datoteke\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "vzdevek mora vsebovati najmanj 2 znaka"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Neveljavna številčna vrednost"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<alias value='%s'/> je že določeno"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "<alias value='%s'/> je že določena"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "zastavice morajo biti nastavljene vsaj kot 1 bitni niz"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> oznaka mora vsebovati vsaj eno <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> ni znotraj določenega obsega"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> ni veljavni član določene oštevilčene vrste"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> vsebuje niz, ki ni med določenimi vrstami zastavic"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> vsebuje niz, ki ni med izbirami <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> je za ta ključ že določen"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> ni dovoljena vrednost vrste »%s«"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "najmanjša vrednost <range> je večja od največje vrednosti"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "nepodprta kategorija l10n: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "zahtevan je predmet l10n, vendar pa ni podana domena gettext"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "podan je prevod, ni pa omogočena podpora za l10n"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Razčlenjevanje vrednosti <default> vrste »%s« je spodletelo: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr "<choices> ni mogoče določiti za ključe, označene kot oštevilčene vrste"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> so za ta ključ že določene"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> ni dovoljena vrednost vrste »%s«"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> je že podano"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "vrednost <choices> mora vsebovati vsaj en <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> je za ta ključ že določen"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2670,7 +2701,7 @@ msgstr ""
"<aliases> je mogoče določiti le za ključe z oštevilčenimi vrednostmi, z "
"vrsto zastavic ali za <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2679,42 +2710,42 @@ msgstr ""
"vrednost <alias value='%s'/> je podana, čeprav je »%s« že veljaven član "
"oštevilčene vrste"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"<alias value='%s'/> je podano, vendar je <choice value='%s'/> že podan given"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> je že določeno"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "cilj vzdevka »%s« ni oštevilčene vrste"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "cilj vzdevka »%s« ni med izbirami <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "vrednost <aliases> mora vsebovati vsaj en <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Prazna polja imen niso dovoljena."
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Neveljavno ime »%s«: imena se morajo začeti z malo črko."
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2723,36 +2754,36 @@ msgstr ""
"Neveljavno ime »%s«: neveljaven znak »%c«; dovoljene so samo male črke, "
"številke in vezaj (» - «)."
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "Neveljavno ime »%s«: zaporedna vezaja (» -- «) nista dovoljena."
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Neveljavno ime »%s«: zadnji znak ne sme biti vezaj (» - «)."
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Neveljavno ime »%s«: največja dolžina je 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name=»%s«> je že določeno"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Shemi »list-of« ni mogoče dodati ključev."
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name=»%s«> je že določeno"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2761,7 +2792,7 @@ msgstr ""
"<key name=»%s«> sence <key name=»%s«> v <schema id=»%s«>; za spreminjanje "
"vrednosti uporabite <override>"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2770,62 +2801,62 @@ msgstr ""
"Natanko ena izmed možnosti »vrste«, »enum« ali »zastavice« mora biti "
"določena kot lastnost ključa <key>"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id=»%s«> (še) ni določen."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Neveljavna vrsta niza GVariant »%s«"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> je podan, vendar shema ne razširja ničesar"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "<key name='%s'> za prepis ni na voljo"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name=»%s«> je že določeno"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id=»%s«> je že določeno"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> razširja še neobstoječo shemo »%s«"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> je seznam še neobstoječe sheme »%s«"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Seznam sheme s potjo ni mogoč"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Sheme ni mogoče razširiti s potjo"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr "<schema id=»%s«> je seznam, ki razširja <schema id=»%s«>, ki ni seznam"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2834,17 +2865,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> razširja <schema id='%s' list-of='%s'> vendar "
"»%s« ne razširja »%s«"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "Pot, če je podana, se mora začeti in končati s poševnico"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Pot seznama se mora končati z » :/ «"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2853,49 +2884,49 @@ msgstr ""
"Opozorilo: shema »%s« ima določeno pot »%s«. Poti, ki se začnejo z »/apps/«, "
"»/desktop/« ali »/system/« so opuščene."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id=»%s«> je že določeno"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Le en predmet <%s> je lahko znotraj predmeta <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Predmet <%s> na vrhnji ravni ni dovoljen"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Predmet <default> mora biti zapisan v ključu <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Besedilo se ne sme pojaviti znotraj <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Opozorilo: neveljaven sklic na <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "določena je zastavica --strict; opravilo bo preklicano."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Celotna datoteka je prezrta."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Datoteka je prezrta."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2904,7 +2935,7 @@ msgstr ""
"Ključ »%s« v shemi »%s« kot je določen v datoteki prepisa »%s« ne obstaja. "
"Prepis za ta ključ bo prezrt."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2913,7 +2944,7 @@ msgstr ""
"Ključ »%s« v shemi »%s« kot je določen v datoteki prepisa »%s« ne obstaja, "
"določena je tudi zastavica --strict. Opravilo je prekinjeno."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2922,7 +2953,7 @@ msgstr ""
"Ni mogoče uporabiti prepisa jezikovno prilagojenega ključa »%s« za namizje v "
"shemi »%s« (prepisna datoteka »%s«). Prepis za ta ključ bo prezrt."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2932,7 +2963,7 @@ msgstr ""
"shemi »%s« (prepisna datoteka »%s«), določena je tudi zastavica --strict. "
"Opravilo je prekinjeno."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2941,7 +2972,7 @@ msgstr ""
"Napaka razčlenjevanja ključa »%s« v shemi »%s« kot je določen v datoteki "
"prepisa »%s«: %s. Prepis za ta ključ bo prezrt."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2951,7 +2982,7 @@ msgstr ""
"prepisa »%s«: %s. Določena je bila zastavica --strict; opravilo je "
"preklicano."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2960,7 +2991,7 @@ msgstr ""
"Prepis za ključ »%s« v shemi »%s« v datoteki prepisa »%s« ni v obsegu, "
"podanem v shemi. Prepis za ta ključ bo prezrt."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2969,7 +3000,7 @@ msgstr ""
"Prepis za ključ »%s« v shemi »%s« v datoteki prepisa »%s« ni v obsegu, "
"podanem v shemi, določena je tudi zastavica --strict. Opravilo je prekinjeno."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2978,7 +3009,7 @@ msgstr ""
"Prepis za ključ »%s« v shemi »%s« v datoteki prepisa »%s« ni v seznamu "
"veljavnih možnosti. Prepis za ta ključ bo prezrt."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2988,23 +3019,23 @@ msgstr ""
"veljavnih možnosti, določena je tudi zastavica --strict. Opravilo je "
"prekinjeno."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Kje naj se shrani datoteka gschemas.compiled"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Prekini ob vsakršni napaki v shemi"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Ne zapiši datoteke gschema.compiled"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Ne vsili omejitev imena ključa"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3014,25 +3045,25 @@ msgstr ""
"sheme. Datoteke shem morajo imeti pripono .gschema.xml,\n"
"datoteka predpomnilnika pa se imenuje gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Podati je treba natanko eno ime mape"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Datotek sheme ni mogoče najti: opravilo bo preklicano."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr ""
"Datotek sheme ni mogoče najti: obstoječa odvodna datoteka je odstranjena."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Neveljavno ime datoteke %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Napaka med pridobivanjem podrobnosti datotečnega sistema za %s: %s"
@@ -3041,258 +3072,258 @@ msgstr "Napaka med pridobivanjem podrobnosti datotečnega sistema za %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Priklopne točke datoteke %s ni mogoče najti"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Ni mogoče preimenovati korenske mape"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Napaka med preimenovanjem datoteke %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Ni mogoče preimenovati datoteke, izbrano ime že obstaja"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Neveljavno ime datoteke"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Napaka med odpiranjem datoteke %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Napaka med odstranjevanjem datoteke %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Napaka med premikanjem datoteke %s v smeti: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Ni mogoče ustvariti mape smeti %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Ni mogoče najti vrhnje ravni smeti %s"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
"Kopiranje (sklic povezave/kloniranje) med različnimi priklopi ni podprto"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Ni mogoče najti oziroma ustvariti mape smeti %s za brisanje %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Ni mogoče ustvariti datoteke podrobnosti smeti za %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr ""
"Datoteke %s ni mogoče premakniti v smeti prek različnih datotečnih sistemov"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Datoteke %s ni mogoče premakniti v smeti: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Datoteke %s ni mogoče premakniti v smeti"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Napaka med ustvarjanjem mape %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Datotečni sistem ne podpira simbolnih povezav"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Napaka med ustvarjanjem simbolne povezave %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Napaka med premikanjem datoteke %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Ni mogoče premakniti mape čez mapo"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Ustvarjanje varnostne kopije je spodletelo."
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Napaka med odstranjevanjem ciljne datoteke: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Premikanje med priklopi ni podprto"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Ni mogoče določiti porabe diska %s: %s."
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Vrednost atributa ni mogoče določiti kot NULL"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Neveljavna vrsta atributa (pričakovan je niz ali neveljavna vrednost)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Neveljavno razširjeno ime atributa"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Napaka med določanjem razširjenega atributa »%s«: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (neveljavni nabor znakov)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Napaka med pridobivanjem podatkov za datoteko »%s«: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Napaka med potrjevanjem opisovalnika datoteke: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Neveljavna vrsta atributa (pričakovan uint32)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Neveljavna vrsta atributa (pričakovan uint64)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Neveljavna vrsta atributa (pričakovan bitni niz)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Ni mogoče določiti dovoljenj simbolnih povezav"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Napaka med določanjem dovoljenj: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Napaka med določanjem lastnika: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "Simbolna povezava ne sme biti določena kot NULL"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Napaka med določanjem simbolne povezave: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"Napaka med določevanjem simbolne povezave; datoteka ni simbolna povezava"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Dodatne nanosekunde %d za časovni žig UNIX %lld so negativne"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr "Dodatne nanosekunde %d za časovni žig UNIX %lld so dosegle 1 sekundo"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "Časovni žig UNIX %lld je prevelik za 64-bitni zapis"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"Časovni žig UNIX %lld je izven obsega, ki je podprt na sistemih MS Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Imena datoteke »%s« ni mogoče pretvoriti v zapis UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Datoteke »%s« ni mogoče odpreti: napaka Windows %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "Napaka med določanjem sprememb ali časa dostopa za datoteko »%s«: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Napaka med določanjem sprememb ali časa dostopa: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "Atributa SELinux ni mogoče določiti kot NULL"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "Na tem sistemu SELinux ni omogočen"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Napaka nastavitve vsebine SELinux: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Določanje atributa %s ni podprto"
@@ -3339,13 +3370,13 @@ msgstr "Napaka med ustvarjanjem varnostne kopije: %s"
msgid "Error renaming temporary file: %s"
msgstr "Napaka med preimenovanjem začasne datoteke: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Napaka med obrezovanjem datoteke: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Napaka med odpiranjem datoteke »%s«: %s"
@@ -3362,7 +3393,7 @@ msgstr "Ciljna datoteka ni običajna datoteka"
msgid "The file was externally modified"
msgstr "Datoteka je bila zunanje spremenjena"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Napaka med odstranjevanjem datoteke: %s"
@@ -3493,42 +3524,42 @@ msgstr "Različica programa NetworkManager je prestara"
msgid "Output stream doesn’t implement write"
msgstr "Odvodni pretok ne podpira pisanja"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Vsota vektorjev, poslanih na %s, je prevelika."
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Izvorni pretok je že zaprt"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Prišlo je do nedoločene napake poizvedbe posredniškega strežnika"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Napaka med razreševanjem »%s«: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "Za funkcijo %s ni zagotovljene podpore."
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Neveljavna domena"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Vir »%s« ne obstaja."
@@ -3538,16 +3569,16 @@ msgstr "Vir »%s« ne obstaja."
msgid "The resource at “%s” failed to decompress"
msgstr "Vira »%s« ni mogoče razširiti"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Izvornih datotek ni mogoče preimenovati"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "Vir »%s« ni mapa."
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Vhodni pretok ne podpira iskanja"
@@ -3912,7 +3943,8 @@ msgstr "Neveljaven vtič, zaganjanje je spodletelo: %s"
msgid "Socket is already closed"
msgstr "Vtič je že zaprt"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "Vtič V/I naprave je časovno potekel"
@@ -3921,161 +3953,161 @@ msgstr "Vtič V/I naprave je časovno potekel"
msgid "creating GSocket from fd: %s"
msgstr "ustvarjanje GSocet preko fd: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Ni mogoče ustvariti vtiča: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Določena je neznana družina"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Določen je neznan protokol"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "Ni mogoče uporabiti opravil datagrama na vtiču, ki jih ne podpira."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Ni mogoče uporabiti opravil datagrama na vtiču z nastavljenim časovnim "
"pretekom"
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "ni mogoče pridobiti krajevnega naslova: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "ni mogoče pridobiti oddaljenega naslova: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "ni mogoče slediti: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Napaka vezave na naslov %s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Napaka povezovanja v skupino za večsmerno oddajanje: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Napaka zapuščanja skupine za večsmerno oddajanje: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Ni podpore za večsmerno oddajanje lastno viru"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Nepodprta skupina vtiča"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "določeno po viru in ne po naslovu IPv4"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Ime vmesnika je predolgo"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Vmesnika ni mogoče najti: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Ni podpore za večsmerno oddajanje v protokolu IPv4"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Ni podpore za večsmerno oddajanje v protokolu IPv6"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Napaka med sprejemanjem povezave: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Povezava v teku"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Ni mogoče pridobiti uvrščene napake:"
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Napaka med prejemanjem podatkov: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Napaka med pošiljanjem podatkov: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Ni mogoče izklopiti vtiča: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Napaka med zapiranjem vtiča: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Čakanje na stanje vtiča: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Ni mogoče poslati sporočila: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Vektorji sporočila so preobsežni."
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Napaka med pošiljanjem sporočila: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "Predmet GSocketControlMessage na sistemih Windows ni podprt"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Napaka med prejemanjem sporočila: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Ni mogoče prebrati poveril vtiča: %s."
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "Operacijski sistem ne podpira možnosti g_socket_get_credentials"
@@ -4197,7 +4229,7 @@ msgstr "SOCKSv5 posredniški strežnik ne podpira ponujene vrste naslova"
msgid "Unknown SOCKSv5 proxy error."
msgstr "Neznana napaka posredniškega strežnika SOCKSv5."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "Ni mogoče ustvariti cevi za stik z opravilom podrejenega predmeta (%s)"
@@ -4212,46 +4244,46 @@ msgstr "Uporaba cevljenja na tem sistemu ni podprta"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Ni mogoče upravljati z različico %d kodiranja GThemedIcon"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Ni mogoče najti veljavnega naslova"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Napaka med obratnim razreševanjem »%s«: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Napaka razčlenjevanja zapisa DNS %s: nepravilno oblikovan paket DNS"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Ni zapisa DNS za zahtevano vrsto »%s«"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Trenutno ni mogoče razrešiti »%s«"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Napaka med razreševanjem »%s«"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Nepravilno oblikovan paket DNS"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Razčlenjevanje odziva DNS za »%s« je spodletelo: "
@@ -4309,7 +4341,7 @@ msgstr "Vneseno geslo je nepravilno."
msgid "Sending FD is not supported"
msgstr "Pošiljanje FD ni podprto"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
@@ -4318,11 +4350,11 @@ msgstr[1] "Pričakovano eno nadzorno sporočilo, prejeto pa je %d sporočilo"
msgstr[2] "Pričakovano eno nadzorno sporočilo, prejeti pa sta %d sporočili"
msgstr[3] "Pričakovano eno nadzorno sporočilo, prejeta pa so %d sporočila"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Nepričakovana vrsta dodatnih podatkov"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
@@ -4331,41 +4363,41 @@ msgstr[1] "Pričakovan en fd, prejet pa je %d\n"
msgstr[2] "Pričakovan en fd, prejeta pa sta %d\n"
msgstr[3] "Pričakovan en fd, prejetih pa so %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Prejet neveljaven fd"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Prejemanje FD ni podprto"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Napaka med pošiljanjem poveril:"
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Napaka med preverjanjem ali je predmet O_PASSCRED omogočen za vtič: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Napaka omogočanja predmeta SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Pri prejemanju poveril je pričakovano branje enega bajta, vendar se je "
"prebralo nič bajtov"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Nadzorno sporočilo ni pričakovano, vendar pa je prejeto %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Napaka med onemogočanjem SO_PASSCRED: %s"
@@ -4381,7 +4413,7 @@ msgstr "Napaka med branjem iz opisovalnika datoteke: %s"
msgid "Error closing file descriptor: %s"
msgstr "Napaka med zapiranjem opisovalnika datoteke: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Koren datotečnega sistema"
@@ -4463,129 +4495,124 @@ msgstr "Zaženi storitev DBus"
msgid "Wrong args\n"
msgstr "Napačni argumenti\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Nepričakovan atribut »%s« za predmet »%s«"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Atributa »%s« predmeta »%s« ni mogoče najti"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Nepričakovana oznaka »%s«, pričakovana je »%s«"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Nepričakovana oznaka »%s« znotraj »%s«"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Neveljaven zapis datuma/časa »%s« v datoteki zaznamka"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Ni veljavne datoteke zaznamkov v podatkovnih mapah"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Zaznamek za naslov URI »%s« že obstaja"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Ni veljavnega zaznamka za naslov URI »%s«"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "V zaznamku za naslov URI »%s« ni določene vrsta MIME"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "V zaznamku za naslov URI »%s« ni določene zasebne zastavice"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "V zaznamku za naslov URI »%s« ni nastavljenih skupin"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Program z imenom »%s« ni ustvaril zaznamka za »%s«"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Razširjanje ukazne vrstice »%s« z naslovom URI »%s« je spodletelo."
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Nepredstavljiv znak na dovodu pretvorbe"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Nedokončano zaporedje znakov na koncu vhoda"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Ni mogoče pretvoriti »%s« v nabor znakov »%s«"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Vstavljeno je prazno zaporedje bajtov na dovod pretvorbe"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Vstavljeno je prazno zaporedje bajtov na odvod pretvorbe"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "Naslov URI »%s« pri uporabi »datotečne« sheme ni absoluten"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "V naslovu URI krajevne datoteke »%s« ni mogoče uporabiti '#'"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "Naslov URI »%s« je neveljaven"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Ime gostitelja naslova URI »%s« ni veljavno"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "Naslov URI »%s« vsebuje neveljavne ubežne znake"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Pot »%s« ni absolutna pot"
@@ -5008,7 +5035,7 @@ msgstr "pop"
msgid "Error opening directory “%s”: %s"
msgstr "Napaka med odpiranjem imenika »%s«: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
@@ -5017,78 +5044,78 @@ msgstr[1] "Ni mogoče dodeliti %lu bajta za branje datoteke »%s«"
msgstr[2] "Ni mogoče dodeliti %lu bajtov za branje datoteke »%s«"
msgstr[3] "Ni mogoče dodeliti %lu bajtov za branje datoteke »%s«"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Napaka med branjem datoteke »%s«: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Datoteka »%s« je prevelika."
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Branje datoteke »%s« je spodletelo: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Odpiranje datoteke »%s« je spodletelo: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr ""
"Pridobivanje atributov datoteke »%s« je spodletelo: ukaz fstat() ni uspešno "
"izveden: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Ni mogoče odpreti datoteke »%s«: ukaz fdopen() ni uspešno izveden: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr ""
"Ni mogoče preimenovati datoteke »%s« v »%s«: ukaz g_rename() ni uspešno "
"izveden: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Ni mogoče zapisati datoteke »%s«: ukaz write() je spodletel: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Ni mogoče zapisati datoteke »%s«: ukaz fsync() ni uspešno izveden: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Ni mogoče ustvariti datoteke »%s«: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr ""
"Obstoječe datoteke »%s« ni mogoče odstraniti: ukaz g_unlink() ni uspešno "
"izveden: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Predloga »%s« je neveljavna, saj ne sme vsebovati »%s«"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Predloga »%s« ne vsebuje XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Branje simbolne povezave »%s« je spodletelo: %s"
@@ -5114,15 +5141,15 @@ msgstr "Kanal je prekinjen v delnem znaku"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Ni mogoče prebrati v g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Veljavnega ključa v iskanih mapah ni mogoče najti"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Ni običajna datoteka"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5130,52 +5157,52 @@ msgstr ""
"Datoteka ključa vsebuje vrstico »%s«, ki ni par ključ-vrednost, skupina ali "
"opomba"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Neveljavno ime skupine: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Datoteka s ključem se ne začne s skupino"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Neveljavno ime ključa: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Datoteka ključa vsebuje nepodprto kodiranje »%s«"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Datoteka s ključem ni del skupine »%s«"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Datoteka s ključem nima ključa »%s« v skupini »%s«"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
"Datoteka ključa vsebuje ključ »%s« z vrednostjo »%s«, ki ni zapisan v naboru "
"UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr ""
"Datoteka ključa vsebuje ključ »%s« z vrednostjo, ki je ni mogoče tolmačiti."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5184,85 +5211,85 @@ msgstr ""
"Datoteka ključa vsebuje ključ »%s« v skupini »%s« z vrednostjo, ki je ni "
"mogoče tolmačiti."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr ""
"Ključ »%s« v skupini »%s« ima vrednost »%s«, pričakovana pa je vrednost %s."
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4357
msgid "Key file contains escape character at end of line"
msgstr "Datoteka s ključem vsebuje ubežni znak na koncu vrstice"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4394
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Datoteka ključa vsebuje neveljavno ubežno zaporedje »%s«"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4545
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Vrednosti »%s« ni mogoče obravnavati kot število."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4559
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Celoštevilska vrednost »%s« je izven obsega"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4592
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Vrednosti »%s« ni mogoče obravnavati kot število s plavajočo vejico."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4631
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Vrednosti »%s« ni mogoče obravnavati kot logično Boolovo vrednost."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"Ni mogoče pridobiti atributov datoteke »%s%s%s%s«: ukaz fstat() je "
"spodletel: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Ni mogoče preslikati %s%s%s%s: ukaz mmap() nje spodletel: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr ""
"Odpiranje datoteke »%s« je spodletelo: ukaz open() ni uspešno izveden: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Napaka v vrstici %d, znak %d:"
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Neveljavno UTF-8 kodirano besedilo imena – neveljaven »%s«"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "»%s« ni veljavno ime"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "»%s« ni veljavno ime: »%c«"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Napaka v vrstici %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5271,7 +5298,7 @@ msgstr ""
"Razčlenjevanje vrste »%-.*s«, ki bi morala določati številko znotraj sklica "
"znaka (na primer &#234;) je spodletelo – morda je številka prevelika"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5280,24 +5307,24 @@ msgstr ""
"Sklic znaka ni končan s podpičjem; najverjetneje je uporabljen znak » & « "
"brez povezave s predmetom – znak » & « mora biti zapisan kot »&amp;«."
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Sklic znaka »%-.*s« ne kodira dovoljenega znaka"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Zaznan je prazen predmet » &; «; veljavne možnosti so: &amp; &quot; &lt; "
"&gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Ime predmeta »%-.*s« ni prepoznano"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5305,11 +5332,11 @@ msgstr ""
"Predmet ni zaključen s podpičjem; najverjetneje je uporabljen znak » & « "
"brez povezave s predmetom – znak » & « mora biti zapisan kot »&amp;«."
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Dokument se mora začeti z predmetom (na primer <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5318,7 +5345,7 @@ msgstr ""
"»%s« ni veljaven znak, ki lahko sledi znaku » < «;. Morda se ne začne z "
"imenom predmeta."
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5327,12 +5354,12 @@ msgstr ""
"Nenavaden znak »%s«; pričakovan znak je » > «, da zaključi oznako predmeta "
"»%s«"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Določenih je preveč atributov za predmet »%s«"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5340,7 +5367,7 @@ msgstr ""
"Nenavaden znak »%s«; za imenom atributa »%s« (predmeta »%s«) je pričakovan "
"znak » = «."
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5351,7 +5378,7 @@ msgstr ""
"predmeta »%s« ali pogojno atribut. Morda je uporabljen neveljaven znak v "
"imenu atributa."
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5360,7 +5387,7 @@ msgstr ""
"Nenavaden znak »%s«; za enačajem je pričakovan narekovaj, znotraj katerega "
"je podana vrednost atributa »%s« predmeta »%s«."
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5369,7 +5396,7 @@ msgstr ""
"»%s« ni veljaven znak za znakoma » </ «; imena predmeta ni mogoče začeti z "
"»%s«"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5378,25 +5405,25 @@ msgstr ""
"Znak »%s« ni veljaven, kadar sledi zaprtju imena predmeta »%s«; dovoljen "
"znak je » > «."
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Predmet »%s« je zaprt, trenutno ni odprtega drugega predmeta"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "Predmet »%s« je zaprt, še vedno pa je odprt predmet »%s«"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Dokument je prazen ali pa vsebuje le presledne znake"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "Dokument je nepričakovano zaključen takoj za odprtjem oznake z » < «"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5405,7 +5432,7 @@ msgstr ""
"Dokument je nepričakovano zaključen s še odprtimi predmeti – »%s« je zadnji "
"odprt predmet"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5414,19 +5441,19 @@ msgstr ""
"Dokument nepričakovano zaključen, pričakovan je zaključni zaklepaj oznake "
"<%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Dokument nepričakovano zaključen sredi imena predmeta"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Dokument nepričakovano zaključen sredi imena atributa"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Dokument nepričakovano zaključen sredi oznake za odprtje predmeta."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5434,23 +5461,23 @@ msgstr ""
"Dokument nepričakovano zaključen za enačajem, ki sledil imenu atributa; ni "
"določena vrednosti atributa"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Dokument nepričakovano zaključen sredi vrednosti atributa"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "Dokument je nepričakovano zaključen sredi oznake zaprtja predmeta »%s«"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Dokument je nepričakovano zaključen sredi oznake zaprtja predmeta za neodprt "
"predmet"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr "Dokument nepričakovano zaključen sredi opombe ali ukaza"
@@ -5513,184 +5540,180 @@ msgstr "Manjka argument za %s"
msgid "Unknown option %s"
msgstr "Neznana možnost %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "pokvarjen predmet"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "primanjkuje pomnilnika"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "dosežena omejitev sledenja nazaj"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "notranja napaka"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "vzorec vsebuje predmete, ki niso podprti za delno iskanje zadetkov"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr "predhodne povezave, kot pogoji, niso podprti za delno primerjavo"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "dosežena omejitev globine drevesne ravni"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "slab odmik"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "rekurzivna zanka"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "zahtevan je način skladnje, ki pa ni vključen v izgradnjo JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "neznana napaka"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ na koncu vzorca"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c na koncu vzorca"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "neprepoznan znak sledi \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "številke niso zapisane pravilno v {} količilniku"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "številke so prevelike v {} količilniku"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "manjkajoč zaključni znak ] za znakovni razred"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "neveljavno ubežno zaporedje v znakovnem razredu"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "nepravilen obseg v znakovnem razredu"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "ni mogoče ponoviti"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "neprepoznan znak za (? ali (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "Imenski razredi POSIX so podprti le znotraj razreda"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "Zbirni predmeti POSIX niso podprti"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "manjka zaključujoči )"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "povezava na neobstoječ podrejen vzorec"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "manjka ) po opombi"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "logični izraz je preobsežen"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "nepravilno oblikovano ime ali številka za (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "povratna trditev ni določene dolžine"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "pogojna skupina vsebuje več kot dve veji"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "trditev pričakovana za (?("
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "oštevilčen sklic ne sme biti ničeln"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "neznano ime razreda POSIX"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "znakovna vrednost v zaporedju \\x{...} je predolga"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C ni dovoljen v povratnih trditvah"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "manjkajoč zaključni znak v imenu podrejenega vzorca"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "dva imenovana podrejena vzorca imata enako ime"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "nepravilno oblikovano \\P ali \\p zaporedje"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "neznano ime lastnosti za \\P ali \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "ime podrejenega vzorca je predolgo (največ 32 znakov)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "preveč imenovanih podrejenih vzorcev (največ 10,000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "osmiška vrednost je večja kot \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "DEFINE skupina vsebuje več kot eno vejo"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "nepopolna NEWLINE možnost"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5698,118 +5721,118 @@ msgstr ""
"\\g ne sledi ime oziroma število v oklepajih, oglatih oklepajih ali "
"narekovajih, niti navadno število"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "argument ni dovoljen za (*ACCEPT), (*FAIL) ali (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) ni prepoznan"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "številka je prevelika"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "manjkajoče ime podrejenega vzorca po (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "različna imena podrejenih vzorcev z isto številko niso dovoljena"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) mora obvezno imeti argument"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c mora slediti znak ASCII"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr "\\k ne sledi ime v oklepajih, oglatih oklepajih ali narekovajih"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N ni podprto v razredu"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "ime je predolgo v (*MARK), (*PRUNE), (*SKIP) ali (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "prekoračitev kode"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "neprepoznan znak za (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "pretečena delovna površina prevajanja kode"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "predhodno preverjene povezave podrejenega vzorca ni mogoče najti"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Napaka med primerjanjem logičnega izraza %s: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "Knjižnica PCRE je pretvorjena brez UTF-8 podpore"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "Knjižnica PCRE je prevedena brez možnosti nezdružljivosti"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr ""
"Prišlo je do napake med rpevajanjem logičnega izraza »%s« pri znaku %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "šestnajstiško število ali pa manjka » } «"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "pričakovano šestnajstiško število"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "manjka znak » < « v simbolni povezavi"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "nedokončana simbolna povezava"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "simbolna povezava nične dolžine"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "pričakovano število"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "neveljavna simbolna povezava"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "obidi končna » \\ «"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "neznano ubežno zaporedje"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Napaka med razčlenjevanjem besedila zamenjave »%s« pri znaku %lu: %s"
@@ -5837,136 +5860,141 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Besedilo je bilo prazno (ali pa vsebuje le presledne znake)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Ni mogoče prebrati podatkov podrejenega procesa (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Nepričakovana napaka branja podatkov podrejenega opravila (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Nepričakovana napaka v waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Podrejeni proces se je zaključil s kodo %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Podrejeni proces je uničen s signalom %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Podrejeni proces se je ustavil s signalom %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Podrejeni proces se je zaključil nenaravno"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Ni mogoče prebrati iz cevi podrejenega procesa (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Ni mogoče ustvariti podrejenega opravila »%s« (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Ni mogoča razvejitev (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Ni mogoče spremeniti v mapo »%s« (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Ni mogoče izvesti podrejenega opravila »%s« (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Ni mogoče odpreti datoteke za preslikavo opisnika datoteke (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Ni mogoče podvojiti opisnika datoteke podrejenega procesa (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Ni mogoče razvejiti podrejenega procesa (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Ni mogoče zapreti opisnika datoteke podrejenega procesa (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Neznana napaka med izvajanjem podrejenega opravila »%s«"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "Ni mogoče prebrati dovolj podatkov iz cevi podrejenega procesa (%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Neveljaven argument FD vira"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Ni mogoče prebrati podatkov iz opravila podrejenega predmeta"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Ni mogoče izvesti podrejenega opravila (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Ni mogoče izvesti ukaza dup() podrejenega procesa (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Neveljavno ime programa: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Neveljaven niz v vektorju argumenta pri %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Neveljaven niz okolja: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Neveljavna delovna mapa: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Napaka med izvajanjem pomožnega programa (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -5974,219 +6002,219 @@ msgstr ""
"Nepričakovana napaka v g_io_channel_win32_poll() med branjem podatkov "
"procesa podrejenega predmeta"
-#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3474
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Prazen niz ni številska vrednost"
-#: glib/gstrfuncs.c:3396
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "»%s« ni podpisano število"
-#: glib/gstrfuncs.c:3406 glib/gstrfuncs.c:3510
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Število »%s« je izven območja [%s, %s]"
-#: glib/gstrfuncs.c:3500
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "»%s« ni nepodpisano število"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "Neveljavni nabor znakov v naslovu URI"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Neveljaven naslov v naslovu URI"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Napačen ne-UTF-8 znak v naslovu URI"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Neveljaven naslov IPv6 »%.*s« v naslovu URI"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Neveljaven kodiran naslov IP »%.*s« v naslovu URI"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Neveljavno internacionalizirano ime gostitelja »%.*s« v naslovu URI."
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Ni mogoče razčleniti vrat »%.*s« v naslovu URI"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Vrednost vrat »%.*s« v naslovu URI je izven obsega"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "Naslov URI »%s« ni absolutna pot"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "Naslov URI »%s« je brez vpisa gostitelja"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "Naslov URI ni absoluten naslov in ni podanega osnovnega naslova URI"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Manjka znak »=« in vrednost parametra"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Ni mogoče dodeliti pomnilnika"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Znak izven območja za UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Neveljavno zaporedje na vhodu pretvorbe"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Znak izven območja za UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "bajtov"
@@ -6194,7 +6222,7 @@ msgstr[1] "bajt"
msgstr[2] "bajta"
msgstr[3] "bajti"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bitov"
@@ -6204,7 +6232,7 @@ msgstr[3] "biti"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6212,7 +6240,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6220,9 +6248,8 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
-#| msgid "%.1f KB"
msgctxt "format-size"
msgid "%.1f"
msgstr "%.1f"
@@ -6230,15 +6257,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
-#| msgid "%.1f kB"
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6248,7 +6274,7 @@ msgstr[2] "%s bajta"
msgstr[3] "%s bajti"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
@@ -6257,7 +6283,7 @@ msgstr[1] "%s bit"
msgstr[2] "%s bita"
msgstr[3] "%s biti"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6271,39 +6297,45 @@ msgstr[3] "%u bajti"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
+#~ msgid "backtracking limit reached"
+#~ msgstr "dosežena omejitev sledenja nazaj"
+
+#~ msgid "GApplication options"
+#~ msgstr "Možnosti programa GApplication"
+
#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "uredi ime: %s\n"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "V naslovu URI krajevne datoteke »%s« ni mogoče uporabiti '#'"
#~ msgid "internal error or corrupted object"
#~ msgstr "notranja napaka ali pokvarjen predmet"
diff --git a/po/sr.po b/po/sr.po
index c5d0d8526..64b078fc4 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -13,38 +13,36 @@ msgid ""
msgstr ""
"Project-Id-Version: 2.8\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-10-16 12:25+0000\n"
-"PO-Revision-Date: 2022-10-26 11:28+0200\n"
-"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
+"POT-Creation-Date: 2023-02-16 03:30+0000\n"
+"PO-Revision-Date: 2023-02-16 10:59+0100\n"
+"Last-Translator: Марко М. Костић <marko.m.kostic@gmail.com>\n"
"Language-Team: Serbian <српски <gnome-sr@googlegroups.org>>\n"
"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n"
-"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n"
+"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Project-Style: gnome\n"
-"X-Generator: Gtranslator 3.36.0\n"
+"X-Generator: Poedit 3.1.1\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Постављање основних програма још није подржано"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Постављање програма као што је последњи пут коришћен за врсту није још "
"подржано"
-#: gio/gappinfo.c:810
+#: gio/gappinfo.c:814
#, c-format
-#| msgid "No default applications for “%s”\n"
msgid "Failed to find default application for content type ‘%s’"
msgstr "Нисам успео да нађем основни програм за садржај врсте „%s“"
-#: gio/gappinfo.c:870
+#: gio/gappinfo.c:874
#, c-format
-#| msgid "No default applications for “%s”\n"
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Нисам успео да нађем основни програм за шему путање „%s“"
@@ -245,11 +243,11 @@ msgstr "не могу да се повежем на Д-сабирницу: „%s
msgid "error sending %s message to application: %s\n"
msgstr "грешка слања %s поруке програму: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "назив радње мора бити дат након иб-а програма\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -258,25 +256,25 @@ msgstr ""
"неисправан назив радње: „%s“\n"
"називи радњи морају да садрже само слова и бројеве, „-“ и „.“\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "грешка обраде параметра радње: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "радње прихватају највише један параметар\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "наредба „list-actions“ прихвата само иб програма"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "не могу да нађем датотеку радне површи за програм „%s“\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -311,7 +309,7 @@ msgstr "Ток је већ затворен"
msgid "Truncate not supported on base stream"
msgstr "Није подржано сасецање основног тока"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -331,13 +329,13 @@ msgstr "Нема довољно места у одредишту"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
#: glib/gutf8.c:892 glib/gutf8.c:1346
msgid "Invalid byte sequence in conversion input"
msgstr "Неисправан низ бајтова у улазу који претварам"
#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Грешка приликом претварања: %s"
@@ -394,17 +392,17 @@ msgstr "Заваравање уверења није могуће на овом
msgid "Unexpected early end-of-stream"
msgstr "Неочекиван, преран крај тока"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:162 gio/gdbusaddress.c:234 gio/gdbusaddress.c:321
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Кључ „%s“ није подржан унутар адресе „%s“"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:175
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Безначајна комбинација кључ/вредност унутар адресе „%s“"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:184
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -413,28 +411,28 @@ msgstr ""
"Адреса „%s“ је неисправна (потребна само једна путања, директоријум, "
"привремени директоријум или апстрактни кључ)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
-#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
+#: gio/gdbusaddress.c:249 gio/gdbusaddress.c:260 gio/gdbusaddress.c:275
+#: gio/gdbusaddress.c:336 gio/gdbusaddress.c:347
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
msgstr "Грешка унутар адресе „%s“ — особина „%s“ није исправна"
-#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:682
+#: gio/gdbusaddress.c:417 gio/gdbusaddress.c:676
#, c-format
msgid "Unknown or unsupported transport “%s” for address “%s”"
msgstr "Непознати или неподржани пренос „%s“ за адресе „%s“"
-#: gio/gdbusaddress.c:467
+#: gio/gdbusaddress.c:461
#, c-format
msgid "Address element “%s” does not contain a colon (:)"
msgstr "Елемент адресе „%s“ не садржи две тачке (:)"
-#: gio/gdbusaddress.c:476
+#: gio/gdbusaddress.c:470
#, c-format
msgid "Transport name in address element “%s” must not be empty"
msgstr "Назив транспорта у елементу адресе „%s“ не сме бити празан"
-#: gio/gdbusaddress.c:497
+#: gio/gdbusaddress.c:491
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
@@ -442,7 +440,7 @@ msgid ""
msgstr ""
"Пар кључ/вредност %d, „%s“, у елементу адресе „%s“ не садржи знак једнакости"
-#: gio/gdbusaddress.c:508
+#: gio/gdbusaddress.c:502
#, c-format
msgid ""
"Key/Value pair %d, “%s”, in address element “%s” must not have an empty key"
@@ -450,7 +448,7 @@ msgstr ""
"Пар кључ/вредност %d, „%s“, у елементу адресе „%s“ не сме задржати празан "
"кључ"
-#: gio/gdbusaddress.c:522
+#: gio/gdbusaddress.c:516
#, c-format
msgid ""
"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
@@ -459,7 +457,7 @@ msgstr ""
"Грешка при неизбегавању кључа или вредности у пару Кључ/Вредности %d, „%s“, "
"у елементу адресе „%s“"
-#: gio/gdbusaddress.c:590
+#: gio/gdbusaddress.c:584
#, c-format
msgid ""
"Error in address “%s” — the unix transport requires exactly one of the keys "
@@ -468,84 +466,84 @@ msgstr ""
"Грешка у адреси „%s“ — Јуниксов пренос захтева постављање кључа "
"„path“ (путања) или „abstract“ (резиме)"
-#: gio/gdbusaddress.c:625
+#: gio/gdbusaddress.c:619
#, c-format
msgid "Error in address “%s” — the host attribute is missing or malformed"
msgstr ""
"Грешка унутар адресе „%s“ — атрибут домаћина недостаје или је неисправан"
-#: gio/gdbusaddress.c:639
+#: gio/gdbusaddress.c:633
#, c-format
msgid "Error in address “%s” — the port attribute is missing or malformed"
msgstr "Грешка унутар адресе „%s“ — порт недостаје или је неисправан"
-#: gio/gdbusaddress.c:653
+#: gio/gdbusaddress.c:647
#, c-format
msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
msgstr ""
"Грешка унутар адресе „%s“ — атрибут датотеке једнократних случајних бројева "
"недостаје или је неисправан"
-#: gio/gdbusaddress.c:674
+#: gio/gdbusaddress.c:668
msgid "Error auto-launching: "
msgstr "Грешка у самопокретању: "
-#: gio/gdbusaddress.c:727
+#: gio/gdbusaddress.c:721
#, c-format
msgid "Error opening nonce file “%s”: %s"
msgstr ""
"Грешка приликом отварања датотеке једнократних случајних бројева „%s“: %s"
-#: gio/gdbusaddress.c:746
+#: gio/gdbusaddress.c:740
#, c-format
msgid "Error reading from nonce file “%s”: %s"
msgstr "Грешка при читању датотеке једнократних случајних бројева „%s“: %s"
-#: gio/gdbusaddress.c:755
+#: gio/gdbusaddress.c:749
#, c-format
msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
msgstr ""
"Грешка при читању датотеке једнократних случајних бројева „%s“, очекивано 16 "
"бајтова, а добијено %d"
-#: gio/gdbusaddress.c:773
+#: gio/gdbusaddress.c:767
#, c-format
msgid "Error writing contents of nonce file “%s” to stream:"
msgstr ""
"Грешка приликом уписа садржаја датотеке једнократних случајних бројева „%s“ "
"у ток:"
-#: gio/gdbusaddress.c:988
+#: gio/gdbusaddress.c:982
msgid "The given address is empty"
msgstr "Дата адреса је празна"
-#: gio/gdbusaddress.c:1101
+#: gio/gdbusaddress.c:1095
#, c-format
msgid "Cannot spawn a message bus when AT_SECURE is set"
msgstr "Не могу да изродим магистралу поруке када је постављено „AT_SECURE“"
-#: gio/gdbusaddress.c:1108
+#: gio/gdbusaddress.c:1102
msgid "Cannot spawn a message bus without a machine-id: "
msgstr "Не могу да покренем магистралу порука без идентификације машине: "
-#: gio/gdbusaddress.c:1115
+#: gio/gdbusaddress.c:1109
#, c-format
msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
msgstr "Не могу да самопокренем Д-сабирницу без „X11 $DISPLAY“"
-#: gio/gdbusaddress.c:1157
+#: gio/gdbusaddress.c:1151
#, c-format
msgid "Error spawning command line “%s”: "
msgstr "Грешка при покретању наредбе „%s“: "
-#: gio/gdbusaddress.c:1226
+#: gio/gdbusaddress.c:1220
#, c-format
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
"Не могу да одредим адресу магистрале сесије (није направљено за овај "
"оперативни систем)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1374 gio/gdbusconnection.c:7316
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -554,7 +552,7 @@ msgstr ""
"Не могу да одредим адресу магистрале сесије из променљиве окружења "
"DBUS_STARTER_BUS_TYPE — непозната вредност „%s“"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1383 gio/gdbusconnection.c:7325
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -562,7 +560,7 @@ msgstr ""
"Не могу да одредим адресу магистрале сесије јер није постављена променљива "
"окружења DBUS_STARTER_BUS_TYPE"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1393
#, c-format
msgid "Unknown bus type %d"
msgstr "Непознат тип магистрале %d"
@@ -583,11 +581,15 @@ msgstr ""
"Истрошени су сви доступни механизми пријављивања (покушано: %s) (доступно: "
"%s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Неочекивани недостатак садржаја при читању бајта"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Кориснички ИБ-ови морају бити исти и за парњака и за сервер"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Поништено преко GDBusAuthObserver::authorize-authenticated-peer"
@@ -679,7 +681,7 @@ msgstr "Грешка приликом отварања привеска кључ
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Додатно, отпуштање кључа са „%s“ такође није успело: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2405
msgid "The connection is closed"
msgstr "Веза је затворена"
@@ -687,118 +689,118 @@ msgstr "Веза је затворена"
msgid "Timeout was reached"
msgstr "Време је истекло"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2528
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr "Наишао сам на неподржане ознаке при изградњи клијентског дела везе"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4257 gio/gdbusconnection.c:4611
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"Нема интерфејса „org.freedesktop.DBus.Properties“ у објекту на путањи %s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4402
#, c-format
msgid "No such property “%s”"
msgstr "Нема особине „%s“"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4414
#, c-format
msgid "Property “%s” is not readable"
msgstr "Особина „%s“ није читљива"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4425
#, c-format
msgid "Property “%s” is not writable"
msgstr "Није могуће писање особине „%s“"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Грешка при постављању особине „%s“: Очекивани тип је био „%s“, а добијен је "
"„%s“"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4550 gio/gdbusconnection.c:4765
+#: gio/gdbusconnection.c:6742
#, c-format
msgid "No such interface “%s”"
msgstr "Нема таквог интерфејса „%s“"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:4981 gio/gdbusconnection.c:7256
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Нема таквог интерфејса „%s“ у објекту на путањи %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5082
#, c-format
msgid "No such method “%s”"
msgstr "Нема таквог метода „%s“"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5113
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Тип поруке, „%s“, не одговара очекиваном типу „%s“"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5316
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Објекат је већ извезен за интерфејс %s на %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5543
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Не могу да добијем особину %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5599
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Не могу да поставим особину %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5778
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Метод „%s“ је вратио тип „%s“, али је био очекиван „%s“"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6854
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Метод „%s“ на интерфејсу „%s“ са потписом „%s“ не постоји"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6975
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Поддрво је већ извезено за %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7264
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Објекат не постоји у путањи „%s“"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "врста је НЕИСПРАВНА"
-#: gio/gdbusmessage.c:1314
+#: gio/gdbusmessage.c:1317
msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
msgstr "Порука ПОЗИВА_МЕТОДА: недостају поља заглавља ПУТАЊА или ЧЛАН"
-#: gio/gdbusmessage.c:1325
+#: gio/gdbusmessage.c:1328
msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
msgstr "Порука РЕЗУЛТАТ_МЕТОДА: недостаје поље заглавља ОДГОВОРИ_СЕРИЈСКИ"
-#: gio/gdbusmessage.c:1337
+#: gio/gdbusmessage.c:1340
msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
msgstr ""
"Порука ГРЕШКЕ: недостају поља заглавља ОДГОВОРИ_СЕРИЈСКИ или НАЗИВ_ГРЕШКЕ"
-#: gio/gdbusmessage.c:1350
+#: gio/gdbusmessage.c:1353
msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
msgstr "Порука СИГНАЛА: недостају поља заглавља ПУТАЊА, СУЧЕЉЕ или ЧЛАН"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1361
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -806,7 +808,7 @@ msgstr ""
"Порука СИГНАЛА: поље заглавља ПУТАЊА користи резервисану вредност „/org/"
"freedesktop/DBus/Local“"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1369
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -814,7 +816,7 @@ msgstr ""
"Порука СИГНАЛА: поље заглавља СУЧЕЉЕ користи резервисану вредност „org."
"freedesktop.DBus.Local“"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1417 gio/gdbusmessage.c:1477
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
@@ -823,12 +825,12 @@ msgstr[1] "Покушах да читам %lu бајта, али добих са
msgstr[2] "Покушах да читам %lu бајтова, али добих само %lu"
msgstr[3] "Покушах да читам један бајт, али добих само %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1431
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Очекивао сам NUL бајт после ниске „%s“, али сам нашао бајт %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1450
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -837,21 +839,21 @@ msgstr ""
"Очекивах исправну УТФ-8 ниску, али нађох неисправне бајтове на бајт померају "
"%d (дужина ниске је %d). Исправна ниска до тог дела је била „%s“"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1514 gio/gdbusmessage.c:1790 gio/gdbusmessage.c:2001
msgid "Value nested too deeply"
msgstr "Вредност је угнеждена предубоко"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1682
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Рашчлањена вредност „%s“ није исправна путања објекта Д-магистрале"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1706
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Рашчлањена вредност „%s“ није исправан потпис Д-магистрале"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1757
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -868,7 +870,7 @@ msgstr[3] ""
"Наишао сам на низ дужине једног бајта. Највећа дужина је 2<<26 бајтова (64 "
"MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1777
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -877,17 +879,17 @@ msgstr ""
"Наиђох на низ врсте „a%c“, очекивах да је дужина умножак од %u бајта, али "
"нађох да је дуг %u бајта"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1931 gio/gdbusmessage.c:2650
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Празне структуре (н-торке) нису дозвољене у Д-сабирници"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:1985
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr ""
"Рашчлањена вредност „%s“ за варијанту није исправан потпис Д-магистрале"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2026
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -895,7 +897,7 @@ msgstr ""
"Грешка при десеријализацији Гваријанта са ниском врсте „%s“ из жичаног "
"формата Д-магистрале"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2211
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -904,27 +906,27 @@ msgstr ""
"Неисправна вредност за крајњост. Очекивао сам 0x6c („l“) или 0x42 („Bд) али "
"сам нашао вредност 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2230
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Неисправна главно издање протокола. Очекивано 1, али нађено %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2288 gio/gdbusmessage.c:2886
msgid "Signature header found but is not of type signature"
msgstr "Потпис заглавља је пронађен али он није врсте потпис"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2300
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr "Потпис заглавља са потписом „%s“ је нађен, али је тело поруке празно"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2315
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr ""
"Рашчлањена вредност „%s“ није исправан потпис Д-магистрале (за тело поруке)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -933,11 +935,11 @@ msgstr[1] "Нема заглавља потписа у поруци, али те
msgstr[2] "Нема заглавља потписа у поруци, али тело поруке има %u бајтова"
msgstr[3] "Нема заглавља потписа у поруци, али тело поруке има један бајт"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2357
msgid "Cannot deserialize message: "
msgstr "Не могу да десеријализујем поруку: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2703
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -945,40 +947,40 @@ msgstr ""
"Грешка при серијализацији Гваријанта са ниском врсте „%s“ из жичаног формата "
"Д-магистрале"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2840
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr ""
"Број описника датотеке у поруци (%d) се разликује од заглавља поља (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2848
msgid "Cannot serialize message: "
msgstr "Не могу да серијализујем поруку: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2901
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "Тело поруке има потпис „%s“, али недостаје заглавље потписа"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2911
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
"“%s”"
msgstr "Тело поруке има тип потписа „%s“, али потпис у пољу заглавља је „%s“"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2927
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Тело поруке је празно,,, али је потпис у пољу заглавља „(%s)“"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3482
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Добијена је грешка са телом поруке типа „%s“"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3490
msgid "Error return with empty body"
msgstr "Добијена је грешка са празним телом поруке"
@@ -1003,17 +1005,17 @@ msgstr "Не могу да добавим профил физичких дело
msgid "Unable to load %s or %s: "
msgstr "Не могу да учитам „%s“ или „%s“: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Грешка при позиву покрени услугу према називу за %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Неочекиван одговор %d од StartServiceByName(„%s“) метода"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1022,28 +1024,28 @@ msgstr ""
"Не могу да позовем метод; посредник је за добро знани назив „%s“ без "
"власника, а направљен је без G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START заставице"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Апстрактни именски простор није подржан"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr ""
"Не могу да наведем датотеку једнократних случајних бројева при повезивању са "
"сервером"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr ""
"Грешка приликом уписа датотеке једнократних случајних бројева на „%s“: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Ниска „%s“ није исправни ГЈИБ Д-сабирнице"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Не могу да слушам на неподржаном преносном механизму „%s“"
@@ -1071,14 +1073,14 @@ msgstr ""
"\n"
"Користите „%s НАРЕДБА --help“ да добијете помоћ за појединачне наредбе.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Грешка: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Грешка при рашчлањивању XML-а добијеног испитивањем: %s\n"
@@ -1088,50 +1090,50 @@ msgstr "Грешка при рашчлањивању XML-а добијеног
msgid "Error: %s is not a valid name\n"
msgstr "Грешка: „%s“ није исправан назив\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Грешка: %s није исправна путања до објеката\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Повезивање на системску магистрали"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Повезивање на магистралу сесије"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Повезивање на задату Д-бас адресу"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Опције крајње тачке везе:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Опције које одређују крајњу тачку везе"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Није наведена крајња тачка везе"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Наведено више крајњих тачака везе"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr ""
"Упозорење: Према подацима добијеним испитивањем, интерфејс „%s“ не постоји\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1140,164 +1142,164 @@ msgstr ""
"Упозорење: Према подацима добијеним испитивањем, метод „%s“ не постоји на "
"интерфејсу „%s“\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Опционална дестинација сигнала (јединствено име)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Путања објекта за емитовање сигнала"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Назив сигнала и сучеља"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Емитује сигнал."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Грешка у повезивању: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Грешка: „%s“ није исправан назив јединствене магистрале.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Грешка: Није изабрана путања до објекта\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Грешка: Име сигнала није одређено\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Грешка: Име сигнала „%s“ није одређено\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Грешка: „%s“ није исправан назив сучеља\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Грешка: „%s“ није исправан назив члана\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Грешка при обради параметра %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Грешка испирања везе: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Назив одредишта на коме треба позвати метод"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Путања објекта на коме треба позвати метод"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Име метода и интерфејса"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Време истека у секундама"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Дозвољава међудејствено овлашћивање"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Позивање метода на удаљеном објекту."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Грешка: Није изабрано одредиште\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Грешка: „%s“ није исправан назив магистрале\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Грешка: Име начина није одређено\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Грешка: Име начина „%s“ није одређено\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Грешка при обради параметра %d врсте „%s“: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Грешка додавања ручке %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Назив одредишта за испитивање"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Путања објекта за испитивање"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Штампа ИксМЛ"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Преиспитује чланове"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Само штампа својства"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Испитајте удаљени објекат."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Назив одредишта за надгледање"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Путања објекта за надгледање"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Надгледање удаљеног објекта."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Грешка: не могу да надгледам везу на сабирници која није за поруке\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Услуга за активирање пре чекања на другу (добро знан назив)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1305,27 +1307,27 @@ msgstr ""
"Време за чекање пре изласка са грешком (секунде); 0 — без временског рока "
"(основно)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[ОПЦИЈА…] НАЗИВ_МАГИСТРАЛЕ"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Чека да се појави назив магистрале."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Грешка: Услуга за активирање мора бити наведена.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Грешка: Услуга за чекање мора бити наведена.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Грешка: Превише аргумената.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Грешка: „%s“ није исправан назив добро знане магистрале.\n"
@@ -1335,38 +1337,43 @@ msgstr "Грешка: „%s“ није исправан назив добро
msgid "Not authorized to change debug settings"
msgstr "Нисте овлашћени да измените поставке прочишћавања"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5119
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5223
msgid "Unnamed"
msgstr "Неименовано"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Датотека за радну површ не садржи Exec унос"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Не могу да нађем терминал ради покретања овог програма"
-#: gio/gdesktopappinfo.c:3637
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Програм „%s“ није пронађен у $PATH"
+
+#: gio/gdesktopappinfo.c:3735
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Не могу да направим фасциклу за корисникова подешавања %s: %s"
-#: gio/gdesktopappinfo.c:3641
+#: gio/gdesktopappinfo.c:3739
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Не могу да направим фасциклу за корисникова МИМЕ подешавања %s: %s"
-#: gio/gdesktopappinfo.c:3883 gio/gdesktopappinfo.c:3907
+#: gio/gdesktopappinfo.c:3981 gio/gdesktopappinfo.c:4005
msgid "Application information lacks an identifier"
msgstr "Подацима о програму недостаје идентификатор"
-#: gio/gdesktopappinfo.c:4143
+#: gio/gdesktopappinfo.c:4241
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Не могу да направим датотеку радне површи %s"
-#: gio/gdesktopappinfo.c:4279
+#: gio/gdesktopappinfo.c:4377
#, c-format
msgid "Custom definition for %s"
msgstr "Произвољне одреднице за %s"
@@ -1439,7 +1446,7 @@ msgstr "Очекивано је ГЕмблем за иконицу ГЕмбле
msgid "Containing mount does not exist"
msgstr "Садржано монтирање не постоји"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2641 gio/glocalfile.c:2511
msgid "Can’t copy over directory"
msgstr "Не могу да умножим преко директоријума"
@@ -1484,7 +1491,7 @@ msgstr "Не могу да умножим специјалну датотеку"
msgid "Invalid symlink value given"
msgstr "Дата је неисправна симболичка веза"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4163 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Симболичке везе нису подржане"
@@ -1499,7 +1506,6 @@ msgstr "Имена датотека не могу да садрже „%c“"
#: gio/gfile.c:6993 gio/gfile.c:7119
#, c-format
-#| msgid "Failed to change to directory “%s” (%s)"
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Нисам успео да направим привремени директоријум за образац „%s“: %s"
@@ -1586,37 +1592,37 @@ msgstr "Одговор ХТТП посредника је превелик"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "Сервер ХТТП посредника је неочекивано прекинуо везу."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Није исправан број токена (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Не постоји врста за назив класе %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Врста %s не подржава сучеље ГИконице"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Врста %s не припада ни једној класи"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Број издања је лоше задат: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "%s врста не подржава „from_tokens()“ на сучељу ГИконице"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Не могу да радим са датим издањем кодирања иконице"
@@ -2333,7 +2339,6 @@ msgid "TYPE"
msgstr "ВРСТА"
#: gio/gio-tool-set.c:38
-#| msgid "Set a file attribute"
msgid "Unset given attribute"
msgstr "Расподешава дати атрибут"
@@ -2418,7 +2423,7 @@ msgstr "Прати симболичке везе, качења и пречице
msgid "List contents of directories in a tree-like format."
msgstr "Исписује садржај директоријума у запису стабла."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1513
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Елемент <%s> није дозвољен унутар <%s>"
@@ -2475,7 +2480,7 @@ msgstr "Грешка при сажимању датотеке „%s“"
msgid "text may not appear inside <%s>"
msgstr "текст не може да се појављује унутар <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2171
msgid "Show program version and exit"
msgstr "Приказује издање програма и излази"
@@ -2491,8 +2496,8 @@ msgstr ""
"Директоријуми из којих ће датотеке дефинисане у ДАТОТЕЦИ бити учитане "
"(подразумевано: тренутни директоријум)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2172
+#: gio/glib-compile-schemas.c:2201
msgid "DIRECTORY"
msgstr "ДИРЕКТОРИЈУМ"
@@ -2710,16 +2715,16 @@ msgstr "мета алијаса „%s“ није у <choices>"
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> мора да садржи барем један <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:796
msgid "Empty names are not permitted"
msgstr "Празни називи нису дозвољени"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:806
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Неисправан назив „%s“: називи морају да почињу малим словом"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:818
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2728,36 +2733,36 @@ msgstr ""
"Неисправан назив „%s“: неисправан знак „%c“; само мала слова, бројеви и "
"цртица („-“) су дозвољени"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:827
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "Неисправан назив „%s“: две узастопне цртице („--“) нису дозвољене"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:836
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Неисправан назив „%s“: последњи знак не може да буде цртиица („-“)"
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:844
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Неисправан назив „%s“: највећа дужина је 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:916
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> је већ наведено"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:942
msgid "Cannot add keys to a “list-of” schema"
msgstr "Не могу да додам кључеве у шему „list-of“"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:953
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> је већ наведено"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:971
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2766,7 +2771,7 @@ msgstr ""
"<key name='%s'> прекрива <key name='%s'> у <schema id='%s'>; користите "
"<override> да измените вредност"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:982
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2775,63 +2780,63 @@ msgstr ""
"Тачно једна ствар од „type“, „enum“ или „flags“ мора бити наведена као "
"атрибут за <key>"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1001
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> није (још) дефинисано."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1016
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Неисправна врста ниске ГВаријанта „%s“"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1046
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> је дато, али шема не проширује ништа"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1059
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Нема <key name='%s'> за преклапање"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1067
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> је већ наведено"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1140
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> је већ наведено"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1152
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> проширује још увек непостојећу шему „%s“"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1168
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> је списак још увек непостојеће шеме „%s“"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1176
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Не може бити списак шеме са путањом"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1186
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Не могу да проширим шему са путањом"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1196
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
"<schema id='%s'> је списак који проширује <schema id='%s'> која није списак"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1206
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2840,17 +2845,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> проширује <schema id='%s' list-of='%s'> али "
"„%s“ не проширује „%s“"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1223
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "Путања, ако се наводи мора да почиње и завршава са косом цртом"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1230
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Путања списка мора да се завршава са „:/“"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1239
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2859,49 +2864,49 @@ msgstr ""
"Упозорење: Шема „%s“ има путању „%s“. Путање које почињу на „/apps/“, „/"
"desktop/“ или „/system/“ су застареле."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1269
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id=„%s“> је већ наведено"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1419 gio/glib-compile-schemas.c:1435
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Само један <%s> елемент је дозвољен унутар <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1517
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Елемент <%s> није дозвољен на највишем нивоу"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1535
msgid "Element <default> is required in <key>"
msgstr "Елемент <default> је затражен у <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1625
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Текст не може да се појављује унутар <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1693
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Упозорење: неодређена упута ка <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1832 gio/glib-compile-schemas.c:1911
msgid "--strict was specified; exiting."
msgstr "„--strict“ је наведено; излазим."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1844
msgid "This entire file has been ignored."
msgstr "Ова читава датотека је занемарена."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1907
msgid "Ignoring this file."
msgstr "Занемарујем ову датотеку."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1962
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2910,7 +2915,7 @@ msgstr ""
"Не постоји кључ „%s“ у шеми „%s“ као што је наведено у датотеци замене „%s“; "
"занемарујем премошћење за овај кључ."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1970
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2919,7 +2924,7 @@ msgstr ""
"Не постоји кључ „%s“ у шеми „%s“ као што је наведено у датотеци замене „%s“ "
"и „--strict“ заставица је дата; излазим."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1992
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2929,7 +2934,7 @@ msgstr ""
"понаособ, у шеми „%s“ (датотека премошћења „%s“); занемарујем премошћење за "
"овај кључ."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2001
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2939,7 +2944,7 @@ msgstr ""
"понаособ, у шеми „%s“ (датотека премошћења „%s“) и заставица „--strict“ је "
"наведена; излазим."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2025
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2948,7 +2953,7 @@ msgstr ""
"Грешка у тумачењу кључа „%s“ у шеми „%s“ као што је наведено у датотеци "
"премошћења „%s“: %s. Занемарујем премошћење за оај кључ."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2037
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2957,7 +2962,7 @@ msgstr ""
"Грешка у тумачењу кључа „%s“ у шеми „%s“ као што је наведено у датотеци "
"премошћења „%s“: %s. Заставица „--strict“ је наведена, излазим."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2064
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2966,7 +2971,7 @@ msgstr ""
"Премошћење за кључ „%s“ у шеми „%s“, у датотеци премошћења „%s“ је изван "
"опсега датог у шеми; занемарујем премошћење за овај кључ."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2074
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2975,7 +2980,7 @@ msgstr ""
"Премошћење за кључ „%s“, у шеми „%s“, у датотеци премошћења „%s“ је изван "
"опсега датог у шеми и заставица „--strict“ је наведена; излазим."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2100
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2984,7 +2989,7 @@ msgstr ""
"Премошћење за кључ „%s“, у шеми „%s“, у датотеци премошћења „%s“ није у "
"списку дозвољених избора; занемарујем премошћење на овај кључ."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2110
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2993,23 +2998,23 @@ msgstr ""
"Премошћење за кључ „%s“, у шеми „%s“, у датотеци премошћења „%s“ није у "
"списку дозвољених избора и заставица „--strict“ је наведена; излазим."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2172
msgid "Where to store the gschemas.compiled file"
msgstr "Где да складиштим „gschemas.compiled“ датотеку"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2173
msgid "Abort on any errors in schemas"
msgstr "Прекини при било којој грешци у шемама"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2174
msgid "Do not write the gschema.compiled file"
msgstr "Не уписуј „gschemas.compiled“ датотеку"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2175
msgid "Do not enforce key name restrictions"
msgstr "Не намеће ограничења назива кључа"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2204
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3019,15 +3024,15 @@ msgstr ""
"Датотеке шема морају да се завршавају са „.gschema.xml“,\n"
"а датотеке кеша имају назив „gschemas.compiled“."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2225
msgid "You should give exactly one directory name"
msgstr "Требате навести тачно један назив фасцикле"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2268
msgid "No schema files found: doing nothing."
msgstr "Ниједна датотека са шемама није нађена: не радим било шта."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2270
msgid "No schema files found: removed existing output file."
msgstr ""
"Ниједна датотека са шемама није нађена: уклањам постојећу излазну датотеку."
@@ -3037,7 +3042,7 @@ msgstr ""
msgid "Invalid filename %s"
msgstr "Неисправан назив датотеке %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1005
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Грешка добављања података о систему датотека за „%s“: %s"
@@ -3046,124 +3051,124 @@ msgstr "Грешка добављања података о систему да
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1141
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Нисам нашао садржано качење за датотеку „%s“"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1164
msgid "Can’t rename root directory"
msgstr "Не могу да преименујем корени директоријум"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1182 gio/glocalfile.c:1205
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Грешка преименовања датотеке „%s“: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1189
msgid "Can’t rename file, filename already exists"
msgstr "Не могу да преименујем датотеку, назив датотеке већ постоји"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1202 gio/glocalfile.c:2405 gio/glocalfile.c:2433
+#: gio/glocalfile.c:2572 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Неисправан назив датотеке"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1370 gio/glocalfile.c:1381
#, c-format
msgid "Error opening file %s: %s"
msgstr "Грешка отварања датотеке „%s“: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1506
#, c-format
msgid "Error removing file %s: %s"
msgstr "Грешка уклањања датотеке „%s“: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2000 gio/glocalfile.c:2011 gio/glocalfile.c:2038
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Грешка премештања датотеке „%s“ у смеће: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2058
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Не могу да направим директоријум за смеће %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2079
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Не могу да нађем корени директоријум да бацим у смеће „%s“"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2087
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Није подржано стварање смећа на системским унутрашњим тачкама качења"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2173 gio/glocalfile.c:2201
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Не могу да нађем или направим директоријум „%s“ за смеће „%s“"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2245
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Не могу да направим датотеку података смећа за „%s“: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2316
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Не могу да бацим у смеће датотеку „%s“ преко граница система датотека"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2320 gio/glocalfile.c:2376
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Не могу да бацим датотеку „%s“ у смеће: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2382
#, c-format
msgid "Unable to trash file %s"
msgstr "Не могу да бацим датотеку „%s“ у смеће"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2408
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Грешка стварања директоријума „%s“: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2437
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Систем датотека не подржава симболичке везе"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2440
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Грешка стварања симболичке везе „%s“: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2483 gio/glocalfile.c:2518 gio/glocalfile.c:2575
#, c-format
msgid "Error moving file %s: %s"
msgstr "Грешка премештања датотеке „%s“: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2506
msgid "Can’t move directory over directory"
msgstr "Не могу да преместим директоријум преко директоријума"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2532 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Није успела израда резервне датотеке"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2551
#, c-format
msgid "Error removing target file: %s"
msgstr "Грешка уклањања циљне датотеке: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2565
msgid "Move between mounts not supported"
msgstr "Није подржано премештање између монтираних уређаја"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2741
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Не могу да одредим искоришћеност диска за „%s“: %s"
@@ -3173,7 +3178,6 @@ msgid "Attribute value must be non-NULL"
msgstr "Вредност особине мора бити различита од NULL"
#: gio/glocalfileinfo.c:782
-#| msgid "Invalid attribute type (string expected)"
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Није исправна врста атрибута (очекивана је ниска или неисправност)"
@@ -3186,116 +3190,116 @@ msgstr "Није исправан назив проширене особине"
msgid "Error setting extended attribute “%s”: %s"
msgstr "Грешка приликом постављања проширене особине „%s“: %s"
-#: gio/glocalfileinfo.c:1732 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1819 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (неисправно кодирање)"
-#: gio/glocalfileinfo.c:1891 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1978 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Грешка приликом добављања података за датотеку „%s“: %s"
-#: gio/glocalfileinfo.c:2157
+#: gio/glocalfileinfo.c:2281
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Грешка приликом добављања података за описника датотеке: %s"
-#: gio/glocalfileinfo.c:2202
+#: gio/glocalfileinfo.c:2326
msgid "Invalid attribute type (uint32 expected)"
msgstr "Није исправна врста особине („uint32“ је очекивано)"
-#: gio/glocalfileinfo.c:2220
+#: gio/glocalfileinfo.c:2344
msgid "Invalid attribute type (uint64 expected)"
msgstr "Није исправна врста особине („uint64“ је очекивано)"
-#: gio/glocalfileinfo.c:2239 gio/glocalfileinfo.c:2258
+#: gio/glocalfileinfo.c:2363 gio/glocalfileinfo.c:2382
msgid "Invalid attribute type (byte string expected)"
msgstr "Није исправна врста особине (очекивана је ниска битова)"
-#: gio/glocalfileinfo.c:2305
+#: gio/glocalfileinfo.c:2429
msgid "Cannot set permissions on symlinks"
msgstr "Не могу да поставим овлашћења за симболичке везе"
-#: gio/glocalfileinfo.c:2321
+#: gio/glocalfileinfo.c:2445
#, c-format
msgid "Error setting permissions: %s"
msgstr "Грешка приликом постављања овлашћења: %s"
-#: gio/glocalfileinfo.c:2372
+#: gio/glocalfileinfo.c:2496
#, c-format
msgid "Error setting owner: %s"
msgstr "Грешка приликом постављања власника: %s"
-#: gio/glocalfileinfo.c:2395
+#: gio/glocalfileinfo.c:2519
msgid "symlink must be non-NULL"
msgstr "симболичке везе морају бити различите од NULL"
-#: gio/glocalfileinfo.c:2405 gio/glocalfileinfo.c:2424
-#: gio/glocalfileinfo.c:2435
+#: gio/glocalfileinfo.c:2529 gio/glocalfileinfo.c:2548
+#: gio/glocalfileinfo.c:2559
#, c-format
msgid "Error setting symlink: %s"
msgstr "Грешка приликом постављања симболичке везе: %s"
-#: gio/glocalfileinfo.c:2414
+#: gio/glocalfileinfo.c:2538
msgid "Error setting symlink: file is not a symlink"
msgstr "Грешка при постављању симболичке везе: датотека није симболичка веза"
-#: gio/glocalfileinfo.c:2486
+#: gio/glocalfileinfo.c:2630
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Додатне наносекунде %d за ЈУНИКС временски жиг %lld су негативне"
-#: gio/glocalfileinfo.c:2495
+#: gio/glocalfileinfo.c:2639
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"Додатне наносекунде %d за ЈУНИКС временски жиг %lld су досегле једну секунду"
-#: gio/glocalfileinfo.c:2505
+#: gio/glocalfileinfo.c:2649
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "ЈУНИКС временски жиг %lld не може стати у 64 бита"
-#: gio/glocalfileinfo.c:2516
+#: gio/glocalfileinfo.c:2660
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "ЈУНИКС временски жиг %lld је ван опсега којег подржава Виндоус"
-#: gio/glocalfileinfo.c:2619
+#: gio/glocalfileinfo.c:2792
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Назив датотеке „%s“ се не може претворити у УТФ-16"
-#: gio/glocalfileinfo.c:2638
+#: gio/glocalfileinfo.c:2811
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Датотека „%s“ се не може отворити: Виндоус грешка %lu"
-#: gio/glocalfileinfo.c:2651
+#: gio/glocalfileinfo.c:2824
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "Грешка при постављању датума измене или приступа за датотеку „%s“: %lu"
-#: gio/glocalfileinfo.c:2825
+#: gio/glocalfileinfo.c:2981
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Грешка при постављању датума измене или приступа: %s"
-#: gio/glocalfileinfo.c:2848
+#: gio/glocalfileinfo.c:3004
msgid "SELinux context must be non-NULL"
msgstr "СЕЛинукс контекст не сме бити NULL"
-#: gio/glocalfileinfo.c:2855
+#: gio/glocalfileinfo.c:3011
msgid "SELinux is not enabled on this system"
msgstr "СЕЛинукс није укључен на вашем систему"
-#: gio/glocalfileinfo.c:2865
+#: gio/glocalfileinfo.c:3021
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Грешка приликом постављања СЕЛинукс контекста: %s"
-#: gio/glocalfileinfo.c:2962
+#: gio/glocalfileinfo.c:3118
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Није подржано постављање особине %s"
@@ -3510,8 +3514,8 @@ msgstr "Неодређени неуспех тражења посредника"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:798 gio/gthreadedresolver.c:822
+#: gio/gthreadedresolver.c:847 gio/gthreadedresolver.c:862
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Грешка у разрешавању „%s“: %s"
@@ -4223,35 +4227,35 @@ msgstr "Грешка у обрнутом разрешавању „%s“: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:628 gio/gthreadedresolver.c:675
+#: gio/gthreadedresolver.c:704 gio/gthreadedresolver.c:716
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Грешка обраде ДНС „%s“ записа: лош ДНС пакет"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:774 gio/gthreadedresolver.c:911
+#: gio/gthreadedresolver.c:1009 gio/gthreadedresolver.c:1059
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Нема ДНС записа затражене врсте за „%s“"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:779 gio/gthreadedresolver.c:1014
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Привремено не могу да разрешим „%s“"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:784 gio/gthreadedresolver.c:1019
+#: gio/gthreadedresolver.c:1129
#, c-format
msgid "Error resolving “%s”"
msgstr "Грешка у разрешивању „%s“"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:798 gio/gthreadedresolver.c:822
+#: gio/gthreadedresolver.c:847 gio/gthreadedresolver.c:862
msgid "Malformed DNS packet"
msgstr "Лош ДНС пакет"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:904
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Нисам успео да обрадим ДНС одговор за „%s“: "
@@ -4383,7 +4387,7 @@ msgstr "Грешка приликом читања из описивача да
msgid "Error closing file descriptor: %s"
msgstr "Грешка приликом затварања описника датотеке: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2817 gio/gunixmounts.c:2870
msgid "Filesystem root"
msgstr "Корени систем датотека"
@@ -4465,79 +4469,79 @@ msgstr "Покреће услугу д-магистрале"
msgid "Wrong args\n"
msgstr "Погрешни аргументи\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Неочекивано својство „%s“ елемента „%s“"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Својство „%s“ елемента „%s“ није пронађено"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Неочекивана ознака „%s“, очекивана је „%s“"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Неочекивана ознака „%s“ унутар „%s“"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Несправно време и датум „%s“ у датотеци обележивача"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr ""
"Не могу да нађем исправну датотеку са обележивачима међу фасциклама са "
"подацима"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Обележивач за путању „%s“ већ постоји"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Није пронађен обележивач за путању „%s“"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "У обележивачу за путању „%s“ није одређена МИМЕ врста"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "У обележивачу за путању „%s“ није одређена приватна заставица"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "У обележивачу за путању „%s“ нису одређене групе"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Програм „%s“ није регистровао обележивач за „%s“"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Нисам успеода проширим комадну линију „%s“ са путањом „%s“"
@@ -5014,7 +5018,7 @@ msgid "Error opening directory “%s”: %s"
msgstr "Грешка при отварању директоријума „%s“: %s"
# bug: plural-forms
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
@@ -5023,81 +5027,81 @@ msgstr[1] "Не могу да доделим %lu бајта за читање д
msgstr[2] "Не могу да доделим %lu бајтова за читање датотеке „%s“"
msgstr[3] "Не могу да доделим %lu бајт за читање датотеке „%s“"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Грешка при читању датотеке „%s“: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Датотека „%s“ је превелика"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Нисам успеода прочитам из датотеке „%s“: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Нисам успео да отворим датотеку „%s“: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr ""
"Нисам успео да сазнам особине датотеке „%s“: није успела функција „fstat()“: "
"%s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr ""
"Нисам успео да отворим датотеку „%s“: није успела функција „fdopen()“: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr ""
"Нисам успео да преименујем датотеку „%s“ у „%s“: није успела функција "
"„g_rename()“: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr ""
"Нисам успео да запишем датотеку „%s“: није успела функција „write()“: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr ""
"Нисам успео да упишем у датотеку „%s“: није успела функција „fsync()“: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Нисам успео да направим датотеку „%s“: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr ""
"Постојећа датотека „%s“ се не може уклонити: није успела функција "
"„g_unlink()“: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Неисправан шаблон „%s“, не сме садржати „%s“"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Шаблон „%s“ не садржи XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Нисам успео да прочитам симболичку везу „%s“: %s"
@@ -5160,8 +5164,8 @@ msgid "Key file contains unsupported encoding “%s”"
msgstr "Датотека са кључевима садржи неподржано кодирање „%s“"
#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3622
+#: glib/gkeyfile.c:3768 glib/gkeyfile.c:4003 glib/gkeyfile.c:4070
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Датотека са кључевима нема групу „%s“"
@@ -5195,31 +5199,31 @@ msgstr ""
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Кључ „%s“ у групи „%s“ има вредност „%s“ где је очекивано %s"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4323
msgid "Key file contains escape character at end of line"
msgstr "Датотека са кључевима садржи знак истицања на крају реда"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4345
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Датотека са кључевима садржи недозвољен низ истицања „%s“"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4490
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Вредност „%s“ се не може сматрати бројем."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4504
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Целобројна вредност „%s“ је изван опсега"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4537
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Вредност „%s“ се не може сматрати реалним бројем једноструке тачности."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4576
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Вредност „%s“ се не може сматрати истинитосном."
@@ -5243,32 +5247,32 @@ msgid "Failed to open file “%s”: open() failed: %s"
msgstr ""
"Нисам успео да отворим датотеку „%s“: није успела функција „open()“: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:393 glib/gmarkup.c:435
#, c-format
msgid "Error on line %d char %d: "
msgstr "Грешка у %d. реду, %d. знак: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:457 glib/gmarkup.c:540
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Неисправан УТФ-8 текст у имену — „%s“ није исправно"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:468
#, c-format
msgid "“%s” is not a valid name"
msgstr "„%s“ није исправан назив"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:484
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "„%s“ није исправан назив: „%c“"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:608
#, c-format
msgid "Error on line %d: %s"
msgstr "Грешка у %d. реду: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:685
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5277,7 +5281,7 @@ msgstr ""
"Нисам успео да рашчланим „%-.*s“, што је требало да представља цифру унутар "
"знаковне референце (на пример &#234;) — можда је цифра превелика"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:697
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5287,24 +5291,24 @@ msgstr ""
"користили амперсанд без намере да започнете ентитет — назначите амперсанд са "
"&amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:723
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Знаковна референца „%-.*s“ не представља дозвољени знак"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:761
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Уочен празан ентитет „&;“; прихватљиви ентитети су &amp; &quot; &lt; &gt; "
"&apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:769
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Име ентитета „%-.*s“ није познато"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:774
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5312,11 +5316,11 @@ msgstr ""
"Ентитет се не завршава тачка-запетом; највероватније сте користили амперсанд "
"без намере да започнете ентитет — назначите амперсанд са &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1188
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Документ мора почети елементом (нпр. <књига>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1228
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5325,7 +5329,7 @@ msgstr ""
"„%s“ не представља исправан знак након знака „<“; назив елемента не може "
"њиме почети"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1271
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5334,19 +5338,19 @@ msgstr ""
"Чудан знак „%s“, а очекиван је „>“ знак ради окончања ознаке празног "
"елемента „%s“"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1341
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Превише особина у елементу „%s“"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1361
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
msgstr ""
"Чудан знак „%s“, очекиван је „=“ после имена атрибута „%s“ елемента „%s“"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1403
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5357,7 +5361,7 @@ msgstr ""
"елемента „%s“, или можда атрибут; можда сте користили неисправан знак у "
"имену атрибута"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1448
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5366,7 +5370,7 @@ msgstr ""
"Чудан знак „%s“, очекиван је почетни наводник након знака једнакости при "
"додели вредности атрибута „%s“ елемента „%s“"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1582
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5374,7 +5378,7 @@ msgid ""
msgstr ""
"„%s“ није исправан знак након низа „</“; „%s“ не може започети назив елемента"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1620
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5383,27 +5387,27 @@ msgstr ""
"„%s“ није исправан знак након имена затвореног елемента „%s“; дозвољени знак "
"је „>“"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1632
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Елемент „%s“ је затворен, нема тренутно отворених елемената"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1641
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "Елемент „%s“ је затворен, а тренутно отворен елемент је „%s“"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1794
msgid "Document was empty or contained only whitespace"
msgstr "Документ је празан или садржи само белине"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1808
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr ""
"Документ je завршен неочекивано непосредно након отворене косоугле заграде "
"„<“"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1816 glib/gmarkup.c:1861
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5412,7 +5416,7 @@ msgstr ""
"Документ je завршен неочекивано са отвореним елементима — „%s“ је последње "
"отворен елемент"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1824
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5421,19 +5425,19 @@ msgstr ""
"Документ је завршен неочекивано, а очекивана је затворена косоугла заграда "
"која затвара ознаку <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1830
msgid "Document ended unexpectedly inside an element name"
msgstr "Документ je завршен неочекивано усред имена елемента"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1836
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Документ je завршен неочекивано усред имена атрибута"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Документ je завршен неочекивано усред почетне ознаке елемента."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1847
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5441,22 +5445,22 @@ msgstr ""
"Документ je завршен неочекивано након знака једнакости после имена атрибута; "
"вредност атрибута није наведена"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1854
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Документ je завршен неочекивано усред вредности атрибута"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1871
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "Документ je завршен неочекивано усред завршне ознаке елемента „%s“"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1875
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Документ je завршен неочекивано унутар завршне ознаке неотвореног елемента"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1881
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr "Документ je завршен неочекивано усред примедбе или упута за обраду"
@@ -5777,7 +5781,6 @@ msgstr "ПЦРЕ библиотека је преведена са несагл
#: glib/gregex.c:1847
#, c-format
-#| msgid "Error while compiling regular expression %s at char %d: %s"
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Грешка при превођењу регуларног израза „%s“ код знака „%s“: %s"
@@ -5846,98 +5849,103 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Садржај празан (или садржи само белине)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:319
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Неуспело читање података од потпроцеса (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:471
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Неочекивана грешка приликом читања података из дете процеса (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:556
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Неочекивана грешка у функцији „waitpid()“ (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1175 glib/gspawn-win32.c:1503
#, c-format
msgid "Child process exited with code %ld"
msgstr "Потпроцес је изашао са шифром %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1183
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Потпроцес је убијен сигналом %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1190
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Потпроцес је заустављен сигналом %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1197
#, c-format
msgid "Child process exited abnormally"
msgstr "Потпроцес је неочекивано прекинут"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2027 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Нисам успео да читам из спојке порода (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2399
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Нисам успео да извршим потпроцес „%s“ (%s)"
# за сада овако, можда гранање, умножавање? виљушкање ;-)
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2525
#, c-format
msgid "Failed to fork (%s)"
msgstr "Нисам успео да исцепим (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2685 glib/gspawn-win32.c:424
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Нисам успео да пређем у директоријум „%s“ (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2695
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Нисам успео да извршим потпроцес „%s“ (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2705
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr ""
"Нисам успео да отворим датотеку да поново мапирам описника датотеке (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2713
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Нисам успео да удвостручим описника датотеке за изрођени процес (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2722
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Нисам успео да исцепим потпроцес (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2730
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Нисам успео да затворим описника датотеке за изрођени процес (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2738
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Непозната грешка при извршавању потпроцеса „%s“"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2762
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "Није успео да прочита довољно података из цевке ка потпроцесу (%s)"
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Неисправан изворни ФД аргумент"
+
#: glib/gspawn-win32.c:337
msgid "Failed to read data from child process"
msgstr "Нисам успео да читам податке из потпроцеса"
@@ -5957,27 +5965,27 @@ msgstr "Нисам успео да „dup()“ у изрођеном проце
msgid "Invalid program name: %s"
msgstr "Није исправан назив програма: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:868
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Није исправна ниска — члан вектора у %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:884
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Није исправна ниска у окружењу: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:864
#, c-format
msgid "Invalid working directory: %s"
msgstr "Није исправна радна фасцикла: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:929
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Нисам успео да извршим помоћнички програм (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1158
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -5985,21 +5993,21 @@ msgstr ""
"Неочекивана грешка док су у „g_io_channel_win32_poll()“ читани подаци из "
"потпроцеса"
-#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3474
+#: glib/gstrfuncs.c:3370 glib/gstrfuncs.c:3472
msgid "Empty string is not a number"
msgstr "Празна ниска није број"
-#: glib/gstrfuncs.c:3396
+#: glib/gstrfuncs.c:3394
#, c-format
msgid "“%s” is not a signed number"
msgstr "„%s“ није потписан број"
-#: glib/gstrfuncs.c:3406 glib/gstrfuncs.c:3510
+#: glib/gstrfuncs.c:3404 glib/gstrfuncs.c:3508
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Број „%s“ је ван граница [%s, %s]"
-#: glib/gstrfuncs.c:3500
+#: glib/gstrfuncs.c:3498
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "„%s“ није непотписан број"
@@ -6078,128 +6086,126 @@ msgid "Character out of range for UTF-16"
msgstr "Знак ван опсега за УТФ-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
-#| msgid "%u byte"
-#| msgid_plural "%u bytes"
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "бајт"
@@ -6207,9 +6213,7 @@ msgstr[1] "бајта"
msgstr[2] "бајтова"
msgstr[3] "бајт"
-#: glib/gutils.c:2951
-#| msgid "%u bit"
-#| msgid_plural "%u bits"
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "%u бит"
@@ -6219,7 +6223,7 @@ msgstr[3] "бит"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6227,7 +6231,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6235,9 +6239,8 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
-#| msgid "%.1f KB"
msgctxt "format-size"
msgid "%.1f"
msgstr "%.1f"
@@ -6245,15 +6248,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
-#| msgid "%.1f kB"
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6263,7 +6265,7 @@ msgstr[2] "%s бајтова"
msgstr[3] "Један бајт"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
@@ -6272,7 +6274,7 @@ msgstr[1] "%s бита"
msgstr[2] "%s битова"
msgstr[3] "Један бит"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6286,32 +6288,32 @@ msgstr[3] "Један бајт"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
diff --git a/po/sv.po b/po/sv.po
index aac4d517f..ba861775d 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,17 +1,17 @@
# Swedish messages for glib.
-# Copyright © 2001-2022 Free Software Foundation, Inc.
+# Copyright © 2001-2023 Free Software Foundation, Inc.
# Christian Rose <menthos@menthos.com>, 2001-2005.
# Daniel Nylander <po@danielnylander.se>, 2006-2012.
# Sebastian Rasmussen <sebras@gmail.com>, 2014, 2015.
-# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022.
+# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023.
# Luna Jernberg <droidbittin@gmail.com>, 2021, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-09-06 17:22+0000\n"
-"PO-Revision-Date: 2022-09-10 11:00+0200\n"
+"POT-Creation-Date: 2023-09-06 14:03+0000\n"
+"PO-Revision-Date: 2023-09-07 01:08+0200\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
@@ -19,43 +19,43 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.1.1\n"
+"X-Generator: Poedit 3.3.2\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Inställning av standardprogram stöds inte ännu"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr "Inställning av program som senast använt för typ stöds inte ännu"
-#: gio/gappinfo.c:810
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "Misslyckades med att hitta standardprogram för innehållstypen ”%s”"
-#: gio/gappinfo.c:870
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Misslyckades med att hitta standardprogram för URI-schemat ”%s”"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "GApplication-alternativ"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "GApplication-flaggor:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
-msgstr "Visa GApplication-alternativ"
+msgstr "Visa GApplication-flaggor"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr "Gå in i GApplication-serviceläge (användning från D-Bus-servicefil)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Åsidosätt programmets ID"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Ersätt den körande instansen"
@@ -135,7 +135,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Programidentifierare i D-Bus-format (t.ex: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "FIL"
@@ -232,11 +232,11 @@ msgstr "kunde inte ansluta till D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "fel vid sändning av meddelande %s till program: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "åtgärdsnamn måste ges efter program-ID\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -245,25 +245,25 @@ msgstr ""
"ogiltigt åtgärdsnamn: ”%s”\n"
"åtgärdsnamn måste bestå av enbart alfanumeriska, ”-” och ”.”\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "fel vid tolkning av åtgärdsparameter: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "åtgärder accepterar maximalt en parameter\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "list-actions-kommandot tar enbart program-ID:t"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "kunde inte hitta desktopfil för programmet %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -273,9 +273,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "För stort räknevärde skickat till %s"
@@ -289,8 +289,8 @@ msgstr "Sökning stöds inte på basströmmen"
msgid "Cannot truncate GBufferedInputStream"
msgstr "Kan inte kapa av GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Strömmen är redan stängd"
@@ -298,7 +298,7 @@ msgstr "Strömmen är redan stängd"
msgid "Truncate not supported on base stream"
msgstr "Kapning stöds inte på basströmmen"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -317,28 +317,28 @@ msgid "Not enough space in destination"
msgstr "Inte tillräckligt med utrymme i målet"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Ogiltig bytesekvens i konverteringsindata"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Fel vid konvertering: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Avbrytningsbar initiering stöds inte"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Konvertering från teckentabellen ”%s” till ”%s” stöds inte"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Kunde inte öppna konverteraren från ”%s” till ”%s”"
@@ -381,17 +381,17 @@ msgstr "Inloggningsuppgiftsspoofning är inte möjligt i detta OS"
msgid "Unexpected early end-of-stream"
msgstr "Oväntat tidig end-of-stream"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Nyckeln ”%s” stöds inte i adressposten ”%s”"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Betydelselös kombination av nyckel/värde-par i adressposten ”%s”"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -400,7 +400,7 @@ msgstr ""
"Adressen ”%s” är ogiltig (behöver exakt en av sökväg, katalog, "
"temporärkatalog eller abstrakta nycklar)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -525,7 +525,7 @@ msgstr ""
"Kan inte fastställa adress för sessionsbuss (inte implementerat för detta "
"operativsystem)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -534,7 +534,7 @@ msgstr ""
"Kan inte fastställa bussadressen från miljövariabeln DBUS_STARTER_BUS_TYPE — "
"okänt värde ”%s”"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -542,7 +542,7 @@ msgstr ""
"Kan inte fastställa bussadress därför att miljövariabeln "
"DBUS_STARTER_BUS_TYPE inte är inställd"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Okänd busstyp %d"
@@ -563,20 +563,24 @@ msgstr ""
"Alla tillgängliga autentiseringsmekanismer har testats (försök: %s) "
"(tillgängliga: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Oväntad avsaknad av innehåll vid försök att läsa en byte"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Användar-ID:n måste vara samma för motpart och server"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Avbröts via GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Fel vid hämtning av information för katalogen ”%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -584,32 +588,32 @@ msgstr ""
"Rättigheter på katalogen ”%s” är felformulerade. Förväntade rättigheten "
"0700, fick 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Fel vid skapandet av katalogen ”%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Åtgärden stöds inte"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Fel vid öppnandet av nyckelringen ”%s” för läsning: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "Rad %d av nyckelringen vid ”%s” med innehåll ”%s” är felformulerad"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -617,7 +621,7 @@ msgstr ""
"Första token på rad %d av nyckelringen i ”%s” med innehållet ”%s” är "
"felformulerad"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -625,57 +629,57 @@ msgstr ""
"Andra token på rad %d av nyckelringen i ”%s” med innehållet ”%s” är "
"felformulerad"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Hittade inte kaka med id %d i nyckelringen vid ”%s”"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Fel vid skapandet av låsfilen ”%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Fel vid borttagning av gamla låsfilen ”%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "Fel vid stängning av (avlänkad) låsfil ”%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Fel vid avlänkning av låsfilen ”%s”: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Fel vid öppning av nyckelringen ”%s” för skrivning: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(I tillägg misslyckades även upplåsningen för ”%s”: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "Anslutningen är stängd"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Tidsgränsen uppnåddes"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Flaggor som inte stöds påträffades vid konstruktion av en anslutning på "
"klientsidan"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -683,104 +687,113 @@ msgstr ""
"Inget sådant gränssnitt ”org.freedesktop.DBus.Properties” på objekt med "
"sökvägen %s"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Ingen sådan egenskap ”%s”"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Egenskapen ”%s” är inte läsbar"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Egenskapen ”%s” är inte skrivbar"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Fel vid inställning av egenskapen ”%s”: Förväntade typen ”%s” men fick ”%s”"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Inget sådan gränssnitt ”%s”"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Inget sådant gränssnitt ”%s” på objekt med sökvägen %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Ingen sådan metod ”%s”"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Typ av meddelande, ”%s”, matchar inte förväntade typen ”%s”"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Ett objekt är redan exporterat för gränssnittet %s vid %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Kunde inte hämta egenskap %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Kunde inte sätta egenskap %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Metoden ”%s” returnerade typen ”%s”, men förväntade ”%s”"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Metoden ”%s” på gränssnittet ”%s” med signaturen ”%s” finns inte"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Ett underträd har redan exporterats för %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Objektet finns inte på sökvägen ”%s”"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "typ är OGILTIG"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "METHOD_CALL-meddelande: rubrikfältet PATH eller MEMBER saknas"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"METHOD_CALL-meddelande: Rubrikfältet PATH eller MEMBER saknas eller är "
+"ogiltigt"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "METHOD_RETURN-meddelande: rubrikfältet REPLY_SERIAL saknas"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"METHOD_RETURN-meddelande: Rubrikfältet REPLY_SERIAL saknas eller är ogiltigt"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "FELmeddelande: rubrikfältet REPLY_SERIAL eller ERROR_NAME saknas"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"FEL-meddelande: Rubrikfältet REPLY_SERIAL eller ERROR_NAME saknas eller är "
+"ogiltigt"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "SIGNAL-meddelande: rubrikfältet PATH, INTERFACE eller MEMBER saknas"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"SIGNAL-meddelande: Rubrikfältet PATH, INTERFACE eller MEMBER saknas eller är "
+"ogiltigt"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -788,7 +801,7 @@ msgstr ""
"SIGNAL-meddelande: Rubrikfältet PATH använder det reserverade värdet /org/"
"freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -796,19 +809,19 @@ msgstr ""
"SIGNAL-meddelande: Rubrikfältet INTERFACE använder det reserverade värdet "
"org.freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "Ville läsa %lu byte men fick bara %lu"
msgstr[1] "Ville läsa %lu byte men fick bara %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Förväntade NUL-byte efter strängen ”%s” men hittade byte %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -818,21 +831,21 @@ msgstr ""
"(längd av strängen är %d). Den giltiga UTF-8-strängen fram till den punkten "
"var ”%s”"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Värde nästlat för djupt"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Tolkat värde ”%s” är inte en giltig D-Bus-objektsökväg"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Tolkat värde ”%s” är inte en giltig D-Bus-signatur"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -843,7 +856,7 @@ msgstr[0] ""
msgstr[1] ""
"Påträffade array med längden %u byte. Maximal längd är 2<<26 byte (64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -852,16 +865,16 @@ msgstr ""
"Påträffade array av typ ”a%c”, förväntad att ha en längd som är en multipel "
"av %u byte, men visade sig vara %u byte lång"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Tomma strukturer (tupler) tillåts inte i D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Tolkat värde ”%s” för variant är inte en giltig D-Bus-signatur"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -869,7 +882,7 @@ msgstr ""
"Fel vid deserialisering av GVariant med typsträngen ”%s” från D-Bus-"
"transportformatet"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -878,38 +891,38 @@ msgstr ""
"Ogiltigt värde för byteordning. Förväntade 0x6c (”l”) eller 0x42 (”B”) men "
"hittade värdet 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Ogiltig större protokollversion. Förväntade 1 men hittade %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "Signaturrubrik hittades men är inte av typen signatur"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Signaturrubrik med signaturen ”%s” hittades men meddelandekroppen är tom"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Tolkat värde ”%s” är inte en giltig D-Bus-signatur (för kropp)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
msgstr[0] "Ingen signaturrubrik i meddelande men meddelandekroppen är %u byte"
msgstr[1] "Ingen signaturrubrik i meddelande men meddelandekroppen är %u byte"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Kan inte deserialisera meddelande: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -917,23 +930,23 @@ msgstr ""
"Fel vid serialisering av GVariant med typsträngen ”%s” till D-Bus-"
"transportformatet"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr "Antal filhandtag i meddelande (%d) skiljer sig från rubrikfältet (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Kan inte serialisera meddelandet: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr ""
"Meddelandekroppen har signaturen ”%s” men det finns ingen signaturrubrik"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -942,52 +955,52 @@ msgstr ""
"Meddelandekroppen har typsignaturen ”%s” men signaturen i rubrikfältet är "
"”%s”"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "Meddelandekroppen är tom men signaturen i rubrikfältet är ”(%s)”"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Fel returnerades med kropp av typen ”%s”"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Fel returnerade med tom kropp"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Skriv vilket tecken som helst för att stänga detta fönster)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "Sessions-dbus kör inte, och autostart misslyckades"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Kunde inte hämta hårdvaruprofil: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Kunde inte läsa in %s eller %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Fel vid anrop av StartServiceByName för %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Oväntat svar %d från StartServiceByName(”%s”)-metod"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -996,25 +1009,25 @@ msgstr ""
"Kan inte anropa metod; proxy är för det välkända namnet %s utan en ägare och "
"proxy konstruerades med flaggan G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Abstrakt namnrymd stöds inte"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Kan inte ange nonce-filen när en server skapas"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Fel vid skrivning av nonce-fil i ”%s”: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Strängen ”%s” är inte ett giltigt D-Bus GUID"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Kan inte lyssna på transport ”%s” som inte stöds"
@@ -1042,14 +1055,14 @@ msgstr ""
"\n"
"Använd ”%s KOMMANDO --help” för hjälp med varje kommando.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Fel: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Fel vid tolkning av introspektions-XML: %s\n"
@@ -1059,49 +1072,49 @@ msgstr "Fel vid tolkning av introspektions-XML: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Fel: %s är inte ett giltigt namn\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Fel: %s är inte en giltig objektsökväg\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Anslut till systembussen"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Anslut till sessionsbussen"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Anslut till angiven D-Bus-adress"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Flaggor för anslutningspunkt:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Flaggor som anger anslutningens ändpunkt"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Ingen anslutningsändpunkt har angivits"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Flera anslutningsändpunkter har angivits"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "Varning: Enligt introspektionsdata finns inte gränssnittet ”%s”\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1110,164 +1123,164 @@ msgstr ""
"Varning: Enligt introspektionsdata finns inte metoden ”%s” på gränssnittet "
"”%s”\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Frivilligt mål för signal (unikt namn)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Objektsökväg att sända signalen på"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Signal- och gränssnittsnamn"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Sänd en signal."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Fel vid anslutning: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Fel: %s är inte ett giltigt unikt bussnamn.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Fel: Objektsökväg har inte angivits\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Fel: Signalnamnet är inte angivet\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Fel: Signalnamnet ”%s” är ogiltigt\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Fel: %s är inte ett giltigt gränssnittsnamn\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Fel: %s är inte ett giltigt medlemsnamn\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Fel vid tolkning av parameter %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Fel vid tömning av anslutning: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Målnamn att anropa metod på"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Objektsökväg att anropa metod på"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Metod- och gränssnittsnamn"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Tidsgräns i sekunder"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Tillåt interaktiv auktorisering"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Anropa en metod på ett fjärrobjekt."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Fel: Mål har inte angivits\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Fel: %s är inte ett giltigt bussnamn\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Fel: Metodnamnet är inte angivet\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Fel: Metodnamnet ”%s” är ogiltigt\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Fel vid tolkning av parameter %d av typen ”%s”: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Fel vid tillägg av handtag %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Målnamn att introspektera"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Objektsökväg att introspektera"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Skriv ut XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Introspektera barn"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Skriv endast ut egenskaper"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Introspektera ett fjärrobjekt."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Målnamn att övervaka"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Objektsökväg att övervaka"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Övervaka ett fjärrobjekt."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Fel: kan inte övervaka en anslutning som ej är på meddelandebuss\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Tjänst att aktivera innan den andra väntas på (välkänt namn)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1275,68 +1288,73 @@ msgstr ""
"Tidsgräns att vänta på innan vi avslutar med ett fel (sekunder); 0 för ingen "
"tidsgräns (standard)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[FLAGGA…] BUSSNAMN"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Vänta på att ett bussnamn ska dyka upp."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Fel: En tjänst att aktivera för måste anges.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Fel: En tjänst att vänta på måste anges.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Fel: För många argument.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Fel: %s är inte ett giltigt välkänt bussnamn.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Inte behörig att ändra felsökningsinställningar"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5119
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Namnlös"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Desktop-filen angav inget Exec-fält"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Kunde inte hitta terminal som krävs för programmet"
-#: gio/gdesktopappinfo.c:3637
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Programmet ”%s” hittades inte i $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Kan inte skapa programkonfigurationsmapp för användare %s: %s"
-#: gio/gdesktopappinfo.c:3641
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Kan inte skapa MIME-konfigurationsmapp för användare %s: %s"
-#: gio/gdesktopappinfo.c:3883 gio/gdesktopappinfo.c:3907
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Programinformation saknar en identifierare"
-#: gio/gdesktopappinfo.c:4143
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Kan inte skapa desktop-fil %s för användare"
-#: gio/gdesktopappinfo.c:4279
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Anpassad definition för %s"
@@ -1405,78 +1423,83 @@ msgstr "Förväntade en GEmblem för GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Innefattande montering finns inte"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Kan inte kopiera över katalog"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Kan inte kopiera katalog över katalog"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Målfilen finns"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Kan inte kopiera katalogen rekursivt"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "Splice stöds inte"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Kopiera filintervall stöds inte"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Fel vid splice av fil: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Splice stöds inte"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Kopiering (reflänk/klon) mellan monteringar stöds inte"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Kopiering (reflänk/klon) stöds inte eller är ogiltigt"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Kopiering (reflänk/klon) stöds inte eller fungerade inte"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Kan inte kopiera specialfil"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Ogiltigt värde för symbolisk länk angivet"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Symboliska länkar stöds inte"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Papperskorgen stöds inte"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Filnamn får inte innehålla ”%c”"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Misslyckades med att skapa en temporär katalog för mallen ”%s”: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "volymen har inte implementerat montering"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Inget program är registrerat för hantering av denna fil"
@@ -1485,11 +1508,11 @@ msgid "Enumerator is closed"
msgstr "Numreraren är stängd"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Filnumreraren har kvarstående åtgärd"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Filnumreraren är redan stängd"
@@ -1502,27 +1525,27 @@ msgstr "Kan inte hantera version %d av GFileIcon-kodning"
msgid "Malformed input data for GFileIcon"
msgstr "Felformaterade inmatningsdata för GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Strömmen saknar stöd för query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Sökning stöds inte på strömmen"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Kapning tillåts inte på inmatningsströmmen"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Kapning stöds inte på strömmen"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Ogiltigt värdnamn"
@@ -1555,37 +1578,37 @@ msgstr "HTTP-proxysvar för stort"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "HTTP-proxyservern stängde oväntat anslutningen."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Fel antal token (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Ingen typ för klassnamnet %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Typen %s implementerar inte GIcon-gränssnittet"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Typen %s är inte klassad"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Felformaterat versionsnummer: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Typen %s implementerar inte from_tokens() på GIcon-gränssnittet"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Kan inte hantera angiven version av ikonkodningen"
@@ -1626,7 +1649,7 @@ msgstr "Inmatningsströmmen har inte implementerat läsning"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Strömmen har kvarstående åtgärd"
@@ -1732,12 +1755,12 @@ msgid "Error writing to stdout"
msgstr "Fel vid skrivning till standard ut"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1210 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "PLATS"
@@ -1755,8 +1778,8 @@ msgstr ""
"använder GIO-platser i stället för lokala filer: exempelvis kan du använda\n"
"något liknande smb://server/resurs/fil.txt som plats."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1261 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Inga platser angivna"
@@ -1852,57 +1875,64 @@ msgstr "Följ inte symboliska länkar"
msgid "attributes:\n"
msgstr "attribut:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "visningsnamn: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "redigeringsnamn: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "namn: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "typ: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "storlek: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "dold\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "lokal sökväg: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "unix-montering: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Inställningsbara attribut:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Skrivbara namnrymder för attribut:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Visa information om platser."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1968,11 +1998,11 @@ msgstr "Skriv ut visningsnamn"
msgid "Print full URIs"
msgstr "Skriv ut fullständiga URI:er"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Lista innehållet för platserna."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2172,15 +2202,15 @@ msgstr "Montera en TCRYPT-systemvolym"
msgid "Anonymous access denied"
msgstr "Anonym åtkomst nekad"
-#: gio/gio-tool-mount.c:533
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Ingen enhet för enhetsfil"
-#: gio/gio-tool-mount.c:1025
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Ingen volym för angivet ID"
-#: gio/gio-tool-mount.c:1214
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Montera eller avmontera platserna."
@@ -2382,11 +2412,11 @@ msgstr "Den angivna platsen börjar inte med trash:///"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Följ symboliska länkar, monteringar och genvägar"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Lista innehållet i kataloger i ett trädliknande format."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Elementet <%s> tillåts inte inuti <%s>"
@@ -2442,7 +2472,7 @@ msgstr "Fel vid komprimering av filen %s"
msgid "text may not appear inside <%s>"
msgstr "text får inte vara inuti <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Visa programversion och avsluta"
@@ -2458,8 +2488,8 @@ msgstr ""
"Katalogerna där filer som hänvisas till i FIL ska läsas från (standard: "
"aktuell katalog)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "KATALOG"
@@ -2511,7 +2541,7 @@ msgstr "C-identifierarnamn som används för den genererade källkoden"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "Mål-C-kompilatorn (standard: CC-miljövariabeln)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2521,123 +2551,123 @@ msgstr ""
"Resursspecifikationsfiler har filändelsen .gresource.xml,\n"
"och resursfilen har filändelsen .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Du bör ange exakt ett filnamn\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "smeknamn måste bestå av minst 2 tecken"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Ogiltigt numeriskt värde"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> redan angivet"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' redan angivet"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "flaggvärden får ha högst 1 bit satt"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> måste innehålla minst ett <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> ligger inte i det angivna intervallet"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> är inte en giltig medlem av den angivna uppräkningstypen"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> innehåller sträng som inte finns i angiven flaggtyp"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> innehåller en sträng som inte finns i <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> redan angivet för denna nyckel"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> inte tillåtet för nycklar av typen ”%s”"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "angivet minimum för <range> är större än maximum"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "l10n-kategori som inte stöds: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n begärt, men ingen gettext-domän angiven"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "översättningskontext angiven för värde utan att l10n är aktiverat"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Misslyckades med att tolka <default>-värde av typen ”%s”: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> kan inte anges för nycklar som taggats som att de är av "
"uppräkningstyp"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> redan angivet för denna nyckel"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> inte tillåtet för nycklar av typen ”%s”"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> redan angivet"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> måste innehålla minst ett <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> redan angivet för denna nyckel"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2645,7 +2675,7 @@ msgstr ""
"<aliases> kan endast anges för nycklar med uppräknings- eller flaggtyp eller "
"efter <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2653,42 +2683,42 @@ msgid ""
msgstr ""
"<alias value='%s'/> angivet då ”%s” redan är en medlem av uppräkningstypen"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"<alias value='%s'/> angavs när <choice value='%s'/> redan hade angivits"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> redan angivet"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "aliasmålet ”%s” finns inte i uppräkningstyp"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "aliasmål ”%s” finns inte <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> måste innehålla minst ett <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Tomma namn tillåts inte"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Ogiltigt namn ”%s”: namn måste börja med en liten bokstav"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2697,36 +2727,36 @@ msgstr ""
"Ogiltigt namn ”%s”: ogiltigt tecken ”%c”; endast gemena bokstäver, siffror "
"och bindestreck (”-”) tillåts"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "Ogiltigt namn ”%s”: två efterföljande bindestreck (”--”) tillåts inte"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Ogiltigt namn ”%s”: sista tecknet får inte vara ett bindestreck (”-”)"
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Ogiltigt namn ”%s”: maximal längd är 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> redan angiven"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Kan inte lägga till nycklar till ett ”list-of”-schema"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> redan angiven"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2735,7 +2765,7 @@ msgstr ""
"<key name='%s'> skuggar <key name='%s'> i <schema id='%s'>; använd "
"<override> för att ändra värdet"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2744,56 +2774,56 @@ msgstr ""
"Exakt en av ”type”, ”enum” eller ”flags” måste anges som ett attribut till "
"<key>"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> inte (ännu) angiven."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Ogiltig GVariant-typsträng ”%s”"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> angavs men schemat utökar inte någonting"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Ingen <key name='%s'> att åsidosätta"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> redan angiven"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> redan angiven"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> utökar ännu inte befintliga schemat ”%s”"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> är lista av ännu inte befintliga schemat ”%s”"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Kan inte vara en lista för ett schema med en sökväg"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Kan inte utöka ett schema med en sökväg"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2801,7 +2831,7 @@ msgstr ""
"<schema id='%s'> är en lista, som utökar <schema id='%s'> vilket inte är en "
"lista"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2810,17 +2840,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> utökar <schema id='%s' list-of='%s'> men ”%s” "
"utökar inte ”%s”"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "En sökväg, om angiven, måste börja och sluta med ett snedstreck"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Sökvägen för en lista måste sluta med ”:/”"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2829,49 +2859,49 @@ msgstr ""
"Varning: Schemat ”%s” har sökvägen ”%s”. Sökvägar som startar med ”/apps/”, "
"”/desktop/” eller ”/system/” är föråldrade."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> redan angiven"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Endast ett <%s>-element tillåts inuti <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Elementet <%s> tillåts inte på toppnivån"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Elementet <default> krävs i <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Text får inte vara inuti <%s>"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Varning: odefinierad referens till <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "--strict angavs; avslutar."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Hela denna fil har ignorerats."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Ignorerar denna fil."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2880,7 +2910,7 @@ msgstr ""
"Ingen sådan nyckel ”%s” i schemat ”%s” som angetts i åsidosättningsfilen "
"”%s”; ignorerar åsidosättning för denna nyckel."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2889,7 +2919,7 @@ msgstr ""
"Ingen sådan nyckel ”%s” i schemat ”%s” som angetts i åsidosättningsfilen "
"”%s” och --strict angavs; avslutar."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2899,7 +2929,7 @@ msgstr ""
"lokaliserade nyckeln ”%s” i schemat ”%s” (åsidosättningsfil ”%s”); ignorerar "
"åsidosättning för denna nyckel."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2909,7 +2939,7 @@ msgstr ""
"lokaliserade nyckeln ”%s” i schemat ”%s” (åsidosättningsfil ”%s”) och --"
"strict angavs; avslutar."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2918,7 +2948,7 @@ msgstr ""
"Fel vid tolkning av nyckeln ”%s” i schemat ”%s” som angetts i "
"åsidosättningsfilen ”%s”: %s. Ignorerar åsidosättning för denna nyckel."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2927,7 +2957,7 @@ msgstr ""
"Fel vid tolkning av nyckeln ”%s” i schemat ”%s” som angetts i "
"åsidosättningsfilen ”%s”: %s. --strict angavs; avslutar."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2937,7 +2967,7 @@ msgstr ""
"utanför intervallet som anges i schemat; ignorerar åsidosättning för denna "
"nyckel."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2946,7 +2976,7 @@ msgstr ""
"Åsidosättning för nyckeln ”%s” i schemat ”%s” i åsidosättningsfilen ”%s” är "
"utanför intervallet som anges i schemat och --strict angavs; avslutar."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2956,7 +2986,7 @@ msgstr ""
"finns inte i listan över giltiga val; ignorerar åsidosättning för denna "
"nyckel."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2965,23 +2995,23 @@ msgstr ""
"Åsidosättning för nyckeln ”%s” i schemat ”%s” i åsidosättningsfilen ”%s” "
"finns inte i listan över giltiga val och --strict angavs; avslutar."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Var filen gschemas.compiled ska lagras"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Avbryt vid alla fel i scheman"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Skriv inte filen gschema.compiled"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Tvinga inte igenom begränsningar för nyckelnamn"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -2991,24 +3021,24 @@ msgstr ""
"Schemafiler måste ha filändelsen .gschema.xml,\n"
"och cachefilen kallas för gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Du bör ange exakt ett katalognamn"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Inga schemafiler hittades: gör ingenting."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "Inga schemafiler hittades: tog bort befintlig utmatningsfil."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Ogiltigt filnamn %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Fel vid hämtning av filsystemsinformation för %s: %s"
@@ -3017,254 +3047,254 @@ msgstr "Fel vid hämtning av filsystemsinformation för %s: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Innefattande montering för filen %s hittades inte"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Kan inte byta namn på rotkatalog"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Fel vid namnbyte av filen %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Kan inte byta namn på filen, filnamnet finns redan"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Ogiltigt filnamn"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Fel vid öppning av filen %s: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Fel vid borttagning av filen %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Fel vid kastande av filen %s: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Kunde inte skapa papperskorgskatalogen %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Kunde inte hitta toppnivåkatalog för att kasta %s"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Att kasta i papperskorg på systeminterna monteringar stöds inte"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Kunde inte hitta eller skapa papperskorgskatalog %s att slänga %s i"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "Kunde inte skapa fil med information om vad som kastats för %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Kunde inte kasta filen %s över filsystemsgränser"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Kunde inte kasta filen %s: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Kunde inte kasta filen %s"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Fel vid skapandet av katalogen %s: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Filsystemet saknar stöd för symboliska länkar"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Fel vid skapande av symboliska länken %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Fel vid flyttning av filen %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Kan inte flytta katalog över katalog"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Misslyckades med att skapa säkerhetskopiefil"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Fel vid borttagning av målfil: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Flyttning mellan monteringar stöds inte"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Kunde inte bestämma diskanvändningen för %s: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Attributvärde måste vara icke-NULL"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Ogiltig attributtyp (sträng eller ogiltig förväntades)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Ogiltigt utökat attributnamn"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Fel vid inställning av utökat attribut ”%s”: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (ogiltig kodning)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Fel vid hämtning av information om filen ”%s”: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Fel vid hämtning av information om filhandtag: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Ogiltig attributtyp (uint32 förväntades)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Ogiltig attributtyp (uint64 förväntades)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Ogiltig attributtyp (bytesträng förväntades)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Kan inte ställa in rättigheter på symboliska länkar"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Fel vid inställning av rättigheter: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Fel vid inställning av ägare: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "symbolisk länk måste vara icke-NULL"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Fel vid inställning av symbolisk länk: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "Fel vid inställning av symbolisk länk: filen är inte en symbolisk länk"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Extra nanosekunder %d för UNIX-tidsstämpeln %lld är negativa"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr "Extra nanosekunder %d för UNIX-tidsstämpeln %lld överstiger 1 sekund"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "UNIX-tidstämpeln %lld ryms inte i 64 bitar"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "UNIX-tidstämpeln %lld är utanför intervallet som stöds av Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Filnamnet ”%s” kan inte konverteras till UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Filen ”%s” kan inte öppnas: Windows-fel %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "Fel vid inställning av ändrings- eller åtkomsttid för filen ”%s”: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Fel vid inställning av ändrings- eller åtkomsttid: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "SELinux-kontext måste vara icke-NULL"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux är inte aktiverat på detta system"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Fel vid inställning av SELinux-kontext: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Inställning av attributet %s stöds inte"
@@ -3311,13 +3341,13 @@ msgstr "Fel vid skapande av säkerhetskopia: %s"
msgid "Error renaming temporary file: %s"
msgstr "Fel vid namnbyte på temporärfil: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Fel vid kapning av fil: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Fel vid öppning av filen ”%s”: %s"
@@ -3334,7 +3364,7 @@ msgstr "Målfilen är inte en vanlig fil"
msgid "The file was externally modified"
msgstr "Filen blev externt ändrad"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Fel vid borttagning av gammal fil: %s"
@@ -3465,42 +3495,42 @@ msgstr "Nätverkshanterare är för gammal"
msgid "Output stream doesn’t implement write"
msgstr "Utmatningsström har inte implementerat skrivning"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Summan av vektorer skickade till %s är för stor"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Källströmmen är redan stängd"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Ospecificerat proxyuppslagningsfel"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Fel vid uppslag av ”%s”: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s inte implementerad"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Ogiltig domän"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Resursen på ”%s” finns inte"
@@ -3510,16 +3540,16 @@ msgstr "Resursen på ”%s” finns inte"
msgid "The resource at “%s” failed to decompress"
msgstr "Resursen på ”%s” gick inte att dekomprimera"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Resursfiler går inte att byta namn på"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "Resursen på ”%s” är inte en katalog"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Inmatningsströmmen har inte implementerat spolning"
@@ -3884,7 +3914,8 @@ msgstr "Ogiltigt uttag, initiering misslyckades på grund av: %s"
msgid "Socket is already closed"
msgstr "Uttaget är redan stängt"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1438
msgid "Socket I/O timed out"
msgstr "Tidsgräns för in/ut på uttaget överstegs"
@@ -3893,159 +3924,159 @@ msgstr "Tidsgräns för in/ut på uttaget överstegs"
msgid "creating GSocket from fd: %s"
msgstr "skapar GSocket från fd: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Kunde inte skapa uttag: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Okänd familj angavs"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Okänt protokoll angavs"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "Kan inte använda datagramåtgärder på ett icke-datagram-uttag."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr "Kan inte använda datagramåtgärder på ett uttag med en satt tidsgräns."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "kunde inte få lokal adress: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "kunde inte få fjärradress: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "kunde inte lyssna: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Fel vid bindning till adressen %s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Fel vid medlemskap i multicast-grupp: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Fel vid lämnande av multicast-grupp: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Inget stöd för källspecifik multicast"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Uttagsfamiljen stöds inte"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "källspecifik är inte en IPv4-adress"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Gränssnittsnamnet är för långt"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Gränssnitt hittades inte: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "Inget stöd för IPv4-källspecifik multicast"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "Inget stöd för IPv6-källspecifik multicast"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Fel vid godkännande av anslutning: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "Anslutningsförsök pågår"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Kunde inte få tag på väntande fel: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Fel vid mottagning av data: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Fel vid sändning av data: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Kunde inte stänga ner uttag: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Fel vid stängning av uttag: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Väntar på uttagstillstånd: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Kunde inte skicka meddelande: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Meddelandevektorerna är för stora"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Fel vid sändning av meddelande: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage stöds inte på Windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Fel vid mottagning av meddelande: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Kunde inte läsa uttagets inloggningsuppgifter: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr ""
"g_socket_get_credentials har inte implementerats för detta operativsystem"
@@ -4168,7 +4199,7 @@ msgstr "SOCKSv5-proxyservern saknar stöd för angiven adresstyp."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Okänt fel i SOCKSv5-proxyserver."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "Misslyckades med att skapa rör för kommunikation med barnprocess (%s)"
@@ -4183,46 +4214,46 @@ msgstr "Rör stöds inte på denna plattform"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Kan inte hantera version %d av GThemedIcon-kodning"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Inga giltiga adresser hittades"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Fel vid omvänt uppslag av ”%s”: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "Fel vid tolkning av DNS %s-post: felformulerat DNS-paket"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Inga DNS-poster av den begärda typen för ”%s”"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Kan för tillfället inte slå upp ”%s”"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Fel vid uppslag av ”%s”"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Felformulerat DNS-paket"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Misslyckades med att tolka DNS-svar för ”%s”: "
@@ -4281,59 +4312,59 @@ msgstr "Det angivna lösenordet är felaktigt."
msgid "Sending FD is not supported"
msgstr "Sändning av FD stöds inte"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "Förväntade 1 kontrollmeddelande, fick %d"
msgstr[1] "Förväntade 1 kontrollmeddelande, fick %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Oväntad typ av underordnade data"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "Förväntade en fd, men fick %d\n"
msgstr[1] "Förväntade en fd, men fick %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Tog emot ogiltig fd"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Mottagning av FD stöds inte"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Fel vid sändning av inloggningsuppgifter: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Fel vid kontroll om SO_PASSCRED har aktiverats för uttaget: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Fel vid aktivering av SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Förväntade att läsa ett enda byte för mottagning av inloggningsuppgifter men "
"läste noll byte"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Förväntade inte kontrollmeddelande, men fick %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Fel vid inaktivering av SO_PASSCRED: %s"
@@ -4349,7 +4380,7 @@ msgstr "Fel vid läsning från filhandtag: %s"
msgid "Error closing file descriptor: %s"
msgstr "Fel vid stängning av filhandtag: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Filsystemsrot"
@@ -4431,130 +4462,125 @@ msgstr "Kör en dbustjänst"
msgid "Wrong args\n"
msgstr "Fel argument\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Oväntat attribut ”%s” för elementet ”%s”"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Attributet ”%s” för elementet ”%s” hittades inte"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Oväntad tagg ”%s”, taggen ”%s” förväntades"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Oväntad tagg ”%s” inom ”%s”"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Ogiltigt datum/tid ”%s” i bokmärkesfil"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Ingen giltig bokmärkesfil hittades i datakataloger"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Ett bokmärke för URI ”%s” finns redan"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Inget bokmärke hittades för URI ”%s”"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Ingen Mime-typ definierad i bokmärket för URI ”%s”"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Ingen privat flagga har definierats i bokmärket för URI ”%s”"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "Inga grupper inställda i bokmärket för URI ”%s”"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Inget program med namnet ”%s” registrerade ett bokmärke för ”%s”"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Misslyckades med att expandera exec-raden ”%s” med URI ”%s”"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Tecken som ej går att uttrycka i konverteringsindata"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Ofullständig teckensekvens vid slutet av indata"
# fallback syftar på en sträng
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Kan inte konvertera reservsträngen ”%s” till kodningen ”%s”"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Inbäddad NUL-byte i konverteringsindata"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Inbäddad NUL-byte i konverteringsutdata"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "URI:n ”%s” är ingen absolut URI som använder ”file”-schemat"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "Lokala fil-URI:n ”%s” får inte innehålla en ”#”"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "URI:n ”%s” är ogiltig"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Värdnamnet i URI:n ”%s” är ogiltigt"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "URI:n ”%s” innehåller ogiltigt kodade tecken"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Sökvägen ”%s” är ingen absolut sökväg"
@@ -4981,83 +5007,83 @@ msgstr "em"
msgid "Error opening directory “%s”: %s"
msgstr "Fel vid öppning av katalogen ”%s”: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "Kunde inte allokera %lu byte för att läsa filen ”%s”"
msgstr[1] "Kunde inte allokera %lu byte för att läsa filen ”%s”"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Fel vid läsning av filen ”%s”: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Filen ”%s” är för stor"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Misslyckades med att läsa från filen ”%s”: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Misslyckades med att öppna filen ”%s”: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr ""
"Misslyckades med att få tag på attributen på filen ”%s”: fstat() "
"misslyckades: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Misslyckades med att öppna filen ”%s”: fdopen() misslyckades: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr ""
"Misslyckades med att byta namn på filen ”%s” till ”%s”: g_rename() "
"misslyckades: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Misslyckades med att skriva filen ”%s”: write() misslyckades: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Misslyckades med att skriva filen ”%s”: fsync() misslyckades: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Misslyckades med att skapa filen ”%s”: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "Befintliga filen ”%s” kunde inte tas bort: g_unlink() misslyckades: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Mallen ”%s” är ogiltig, den får inte innehålla ett ”%s”"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Mallen ”%s” innehåller inte XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Misslyckades med att läsa den symboliska länken ”%s”: %s"
@@ -5083,15 +5109,15 @@ msgstr "Kanalen slutar med ett ofullständigt tecken"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "Kan inte göra en rå läsning i g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Giltig nyckelfil kunde inte hittas i sökkatalogerna"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Inte en vanlig fil"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5099,43 +5125,43 @@ msgstr ""
"Nyckelfilen innehåller raden ”%s” som inte är ett nyckel-värde-par, grupp "
"eller kommentar"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Ogiltigt gruppnamn: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Nyckelfilen börjar inte med en grupp"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Ogiltigt nyckelnamn: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Nyckelfilen innehåller kodningen ”%s” som inte stöds"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Nyckelfilen har inte gruppen ”%s”"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Nyckelfilen har inte nyckeln ”%s” i gruppen ”%s”"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "Nyckelfilen innehåller nyckeln ”%s” med värdet ”%s” som inte är UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
@@ -5143,7 +5169,7 @@ msgstr ""
"Nyckelfilen innehåller nyckeln ”%s” som innehåller ett värde som inte kan "
"tolkas."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5152,83 +5178,83 @@ msgstr ""
"Nyckelfilen innehåller nyckeln ”%s” i gruppen ”%s” vilken innehåller ett "
"värde som inte kan tolkas."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Nyckeln ”%s” i gruppen ”%s” innehåller värdet ”%s” där %s förväntades"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4357
msgid "Key file contains escape character at end of line"
msgstr "Nyckelfilen innehåller kontrolltecken i slutet på en rad"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4394
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Nyckelfilen innehåller ogiltiga kontrollsekvensen ”%s”"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4545
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Värdet ”%s” kan inte tolkas som ett tal."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4559
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Heltalsvärdet ”%s” är utanför intervallet"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4592
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Värdet ”%s” kan inte tolkas som ett flyttal."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4631
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Värdet ”%s” kan inte tolkas som ett booleskt värde."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"Misslyckades med att få attribut för filen ”%s%s%s%s”: fstat() misslyckades: "
"%s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Misslyckades med att mappa %s%s%s%s: mmap() misslyckades: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Misslyckades med att öppna filen ”%s”: open() misslyckades: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Fel på rad %d tecken %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Ogiltig UTF-8-kodad text i namnet — inte giltig ”%s”"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "”%s” är inte ett giltigt namn"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "”%s” är inte ett giltigt namn: ”%c”"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Fel på rad %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5237,7 +5263,7 @@ msgstr ""
"Misslyckades med att tolka ”%-.*s”, som skulle ha varit en siffra inuti en "
"teckenreferens (&#234; till exempel) — siffran är kanske för stor"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5246,24 +5272,24 @@ msgstr ""
"Teckenreferensen slutade inte med ett semikolon. Troligtvis använde du ett &-"
"tecken utan att avse att starta en entitet. Skriv om &-tecknet som &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Teckenreferensen ”%-.*s” kodar inte ett tillåtet tecken"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Tom entitet ”&;” hittades, giltiga entiteter är: &amp; &quot; &lt; &gt; "
"&apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Entitetsnamnet ”%-.*s” är okänt"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5271,11 +5297,11 @@ msgstr ""
"Entiteten slutade inte med ett semikolon. Troligtvis använde du ett &-tecken "
"utan att avse att starta en entitet. Skriv om &-tecknet som &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Dokumentet måste börja med ett element (exempelvis <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5284,7 +5310,7 @@ msgstr ""
"”%s” är inte ett giltigt tecken efter ett ”<”-tecken. Det får inte inleda "
"ett elementnamn"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5293,12 +5319,12 @@ msgstr ""
"Konstigt tecken ”%s”, ett ”>”-tecken förväntades för att avsluta tomma "
"elementtaggen ”%s”"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "För många attribut i elementet ”%s”"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5306,7 +5332,7 @@ msgstr ""
"Konstigt tecken ”%s”, ett ”=” förväntades efter attributnamnet ”%s” till "
"elementet ”%s”"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5317,16 +5343,16 @@ msgstr ""
"starttaggen för elementet ”%s”, eller möjligtvis ett attribut. Du kanske "
"använde ett ogiltigt tecken i ett attributnamn"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
"giving value for attribute “%s” of element “%s”"
msgstr ""
-"Konstigt tecken ”%s”, ett startcitationstecken förväntades efter "
-"likhetstecknet när värdet av attributet ”%s” till elementet ”%s” tilldelades"
+"Konstigt tecken ”%s”, ett startcitattecken förväntades efter likhetstecknet "
+"när värdet av attributet ”%s” till elementet ”%s” tilldelades"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5335,7 +5361,7 @@ msgstr ""
"”%s” är inte ett giltigt tecken efter tecknen ”</”. ”%s” får inte inleda ett "
"elementnamn"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5344,26 +5370,26 @@ msgstr ""
"”%s” är inte ett giltigt tecken efter stängelementnamnet ”%s”. Det tillåtna "
"tecknet är ”>”"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Elementet ”%s” stängdes, inget element är öppet för tillfället"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr ""
"Elementet ”%s” stängdes, men det element som är öppet för tillfället är ”%s”"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Dokumentet var tomt eller innehöll endast tomrum"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "Dokumentet tog oväntat slut efter ett öppningsklammer ”<”"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5372,7 +5398,7 @@ msgstr ""
"Dokumentet tog oväntat slut då element fortfarande var öppna. ”%s” var det "
"senast öppnade elementet"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5381,19 +5407,19 @@ msgstr ""
"Dokumentet tog oväntat slut, en stängningsklammer förväntades för att "
"avsluta taggen <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Dokumentet tog oväntat slut inuti ett elementnamn"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Dokumentet tog oväntat slut inuti ett attributnamn"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Dokumentet tog oväntat slut inuti en elementöppnande tagg."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5401,22 +5427,22 @@ msgstr ""
"Dokumentet tog oväntat slut efter likhetstecknet som följde ett "
"attributnamn. Inget attributvärde"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Dokumentet tog oväntat slut inuti ett attributvärde"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "Dokumentet tog oväntat slut inuti stängningstaggen för elementet ”%s”"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Dokumentet tog oväntat slut inuti stängningstaggen för ett oöppnat element"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"Dokumentet tog oväntat slut inuti en kommentar eller behandlingsinstruktion"
@@ -5480,184 +5506,180 @@ msgstr "Argument saknas för %s"
msgid "Unknown option %s"
msgstr "Okänd flagga %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "skadat objekt"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "slut på minne"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "bakåtspårningsgräns nådd"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "internt fel"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "mönstret innehåller objekt som inte stöds för delvis matchning"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr "bakreferenser som villkor stöds inte för delvis matchning"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "rekursionsgräns nådd"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "felaktig offset"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "rekursionsloop"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "matchningsläge som inte kompilerats för JIT efterfrågas"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "okänt fel"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ på slutet av mönster"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c på slutet av mönster"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "okänt tecken efter \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "tal är inte i ordning i {}-kvantifierare"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "tal för stort i {}-kvantifierare"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "saknar avslutande ] för teckenklass"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "ogiltig escape-sekvens i teckenklass"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "intervall är inte i ordning i teckenklass"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "ingenting att upprepa"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "okänt tecken efter (? eller (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX-namngivna klasser stöds endast inom en klass"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "POSIX-sorteringselement stöds inte"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "saknar avslutande )"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "referens till icke-existerande undermönster"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "saknar ) efter kommentar"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "reguljärt uttryck är för stort"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "felformulerat tal eller namn efter (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "lookbehind-assertion är inte av fast längd"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "villkorsgrupp innehåller fler än två grenar"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "assertion förväntades efter (?("
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "en numrerad referens får inte vara noll"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "okänt POSIX-klassnamn"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "teckenvärde i \\x{…}-sekvens är för stort"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C tillåts inte i lookbehind-assertion"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "saknar avslutstecken i undermönstrets namn"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "två namngivna undermönster har samma namn"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "felformulerad \\P eller \\p-sekvens"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "okänt egenskapsnamn efter \\P eller \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "undermönstrets namn är för långt (maximalt 32 tecken)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "för många namngivna undermönster (maximalt 10 000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "oktalt värde är större än \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "DEFINE-grupp innehåller fler än en gren"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "inkonsistenta NEWLINE-flaggor"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5665,130 +5687,130 @@ msgstr ""
"\\g följs inte av ett namn inom klammerparentes, vinkelparentes eller "
"citattecken eller siffra, eller en enkel siffra"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "ett argument tillåts inte för (*ACCEPT), (*FAIL) eller (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) kändes inte igen"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "tal är för stort"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "saknar undermönsternamn efter (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "olika namn för undermönster för samma siffra är inte tillåtet"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) måste ha ett argument"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c måste följas av ett ASCII-tecken"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"\\k följs inte av ett namn inom klammerparentes, vinkelparentes eller "
"citattecken"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N är saknar stöd i en klass"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "namn är alltför långt i (*MARK), (*PRUNE), (*SKIP) eller (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "överflöde i kod"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "okänt tecken efter (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "fyllde över kompileringsutrymme"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "tidigare kontrollerad refererande undermönster hittades inte"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Fel vid matchning av reguljära uttrycket %s: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "PCRE-biblioteket är byggt utan stöd för UTF8"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "PCRE-biblioteket är byggt med inkompatibla alternativ"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Fel vid kompilering av reguljära uttrycket ”%s” vid tecknet %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "hexadecimal siffra eller ”}” förväntades"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "hexadecimal siffra förväntades"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "saknar ”<” i symbolisk referens"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "oavslutad symbolisk referens"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "symbolisk referens med noll-längd"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "siffra förväntades"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "otillåten symbolisk referens"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "felplacerad avslutande ”\\”"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "okänd escape-sekvens"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Fel vid tolkning av ersättningstexten ”%s” vid tecknet %lu: %s"
#: glib/gshell.c:98
msgid "Quoted text doesn’t begin with a quotation mark"
-msgstr "Citerad text börjar inte med citationstecken"
+msgstr "Citerad text börjar inte med citattecken"
#: glib/gshell.c:188
msgid "Unmatched quotation mark in command line or other shell-quoted text"
-msgstr "Ensamt citationstecken på kommandoraden eller annan skalciterad text"
+msgstr "Ensamt citattecken på kommandoraden eller annan skalciterad text"
#: glib/gshell.c:594
#, c-format
@@ -5799,145 +5821,149 @@ msgstr "Texten slutade efter ett ”\\”-tecken (texten var ”%s”)."
#, c-format
msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
msgstr ""
-"Texten slutade innan matchande citationstecken hittades för %c (texten var "
-"”%s”)."
+"Texten slutade innan matchande citattecken hittades för %c (texten var ”%s”)."
#: glib/gshell.c:613
msgid "Text was empty (or contained only whitespace)"
msgstr "Texten var tom (eller innehöll bara tomrum)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Misslyckades med att läsa data från barnprocess (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Oväntat fel vid läsning av data från en barnprocess (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Oväntat fel i waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Barnprocess avslutades med kod %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Barnprocess dödat av signal %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Barnprocess stoppad av signal %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Barnprocess avslutades onormalt"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Misslyckades med att läsa från rör till barn (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Misslyckades med att starta barnprocessen ”%s” (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "Misslyckades med att grena (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Misslyckades med att byta till katalogen ”%s” (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Misslyckades med att köra barnprocessen ”%s” (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Misslyckades med att öppna fil för att mappa om filhandtag (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Misslyckades med att duplicera filhandtag för barnprocess (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Misslyckades med att skapa barnprocess (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Misslyckades med att stänga filhandtag för barnprocess (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Okänt fel vid körning av barnprocessen ”%s”"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr ""
"Misslyckades med att läsa tillräckligt med data från röret till barnets pid "
"(%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Ogiltigt argument för käll-FD"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Misslyckades med att läsa data från barnprocessen"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Misslyckades med att köra barnprocess (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Misslyckades med att köra dup() i barnprocess (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Ogiltigt programnamn: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Ogiltig sträng i argumentvektorn vid %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Ogiltig sträng i miljön: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Ogiltig arbetskatalog: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Misslyckades med att köra hjälparprogram (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -5945,225 +5971,225 @@ msgstr ""
"Oväntat fel i g_io_channel_win32_poll() vid inläsning av data från en "
"barnprocess"
-#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3474
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Tom sträng är inte ett tal"
-#: glib/gstrfuncs.c:3396
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "”%s” är inte ett tal med tecken"
-#: glib/gstrfuncs.c:3406 glib/gstrfuncs.c:3510
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Talet ”%s” är utanför gränserna [%s, %s]"
-#: glib/gstrfuncs.c:3500
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "”%s” är inte ett teckenlöst tal"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "Ogiltig %-kodning i URI"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Otillåtet tecken i URI"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Tecken som inte är UTF-8 i URI"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Ogiltig IPv6-adress ”%.*s” i URI"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Otillåtet kodad IP-adress ”%.*s” i URI"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Otillåtet internationaliserat värdnamn ”%.*s” i URI"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Kunde inte tolka port ”%.*s” i URI"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Port ”%.*s” i URI är utanför intervallet"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "URI ”%s” är inte en absolut URI"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "URI ”%s” har ingen värdkomponent"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "URI är inte absolut, och ingen bas-URI angavs"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Saknar ”=” och parametervärde"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Misslyckades med att allokera minne"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Tecknet är utanför intervallet för UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Ogiltig sekvens i konverteringsindata"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Tecknet är utanför intervallet för UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "byte"
msgstr[1] "byte"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bit"
@@ -6171,7 +6197,7 @@ msgstr[1] "bitar"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6179,7 +6205,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6187,7 +6213,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6196,14 +6222,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6211,14 +6237,14 @@ msgstr[0] "%s byte"
msgstr[1] "%s byte"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s bit"
msgstr[1] "%s bitar"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6230,39 +6256,45 @@ msgstr[1] "%u byte"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
+#~ msgid "GApplication options"
+#~ msgstr "GApplication-alternativ"
+
#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "redigeringsnamn: %s\n"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "Lokala fil-URI:n ”%s” får inte innehålla en ”#”"
+
+#~ msgid "backtracking limit reached"
+#~ msgstr "bakåtspårningsgräns nådd"
#~ msgid "internal error or corrupted object"
#~ msgstr "internt fel eller skadat objekt"
diff --git a/po/tr.po b/po/tr.po
index 2b7ab6c8b..ce8f35162 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -1,6 +1,6 @@
# Turkish translation of Glib.
# Copyright (C) 2001-2003, 2005, 2007, 2008 Free Software Foundation, Inc.
-# Copyright (C) 2009-2022 glib's COPYRIGHT HOLDER
+# Copyright (C) 2009-2023 glib's COPYRIGHT HOLDER
# This file is distributed under the same license as the glib package.
#
# KEMAL YILMAZ <kyilmaz@uekae.tubitak.gov.tr>, 2001.
@@ -11,60 +11,61 @@
# Kaan Özdinçer <kaanozdincer@gmail.com>, 2015.
# Muhammet Kara <muhammetk@gmail.com>, 2011, 2014, 2015, 2016.
# Serdar Sağlam <teknomobil@yandex.com>, 2019.
-# Emin Tufan Çetin <etcetin@gmail.com>, 2017, 2018, 2019, 2020, 2021, 2022.
+# Sabri Ünal <libreajans@gmail.com>, 2023.
+# Emin Tufan Çetin <etcetin@gmail.com>, 2017-2023.
#
msgid ""
msgstr ""
"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-09-12 05:47+0000\n"
-"PO-Revision-Date: 2022-09-01 21:35+0300\n"
-"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n"
-"Language-Team: Türkçe <gnome-turk@gnome.org>\n"
+"POT-Creation-Date: 2023-09-18 01:28+0000\n"
+"PO-Revision-Date: 2023-09-28 01:19+0300\n"
+"Last-Translator: Sabri Ünal <libreajans@gmail.com>\n"
+"Language-Team: Turkish <takim@gnome.org.tr>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 3.0.1\n"
+"X-Generator: Poedit 3.3.2\n"
"X-POOTLE-MTIME: 1433280446.000000\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Öntanımlı uygulama belirleme henüz desteklenmiyor"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Uygulamayı tür için son kullanılan olarak belirleme henüz desteklenmiyor"
-#: gio/gappinfo.c:810
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "‘%s’ içerik türü için öntanımlı uygulama bulunamadı"
-#: gio/gappinfo.c:870
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "‘%s’ URI Şeması için öntanımlı uygulama bulunamadı"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "GApplication seçenekleri"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "GApplication Seçenekleri:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "GApplication seçeneklerini göster"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
-msgstr "GApplication servis kipi girin (D-Bus servis dosyalarından kullan)"
+msgstr "GApplication hizmet kipi girin (D-Bus hizmet dosyalarından kullan)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Uygulama kimliğini çiğne"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Çalışan örneği değiştir"
@@ -144,7 +145,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "D-Bus biçiminde uygulama tanımlayıcı (örneğin: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "DOSYA"
@@ -241,11 +242,11 @@ msgstr "D-Bus veri yoluna bağlanılamıyor: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "uygulamaya %s iletisi gönderilirken hata: %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "uygulama kimliğinden sonra eylem adı verilmelidir\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -254,25 +255,25 @@ msgstr ""
"geçersiz eylem adı: “%s”\n"
"eylem adları yalnızca “-”, “.”, harfler ve sayılardan oluşmalıdır\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "eylem parametresi ayrıştırılırken hata: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "eylemler maksimum bir parametre kabul eder\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "list-actions komutu yalnızca uygulama kimliği değişkenini alır"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "%s uygulaması için masaüstü dosyası bulunamıyor\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -282,9 +283,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "%s için çok büyük sayaç değeri geçildi"
@@ -298,8 +299,8 @@ msgstr "Taban akış üzerinde arama desteklenmez"
msgid "Cannot truncate GBufferedInputStream"
msgstr "GBufferedInputStreamsonu kesilemiyor"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Akış zaten kapalı"
@@ -307,7 +308,7 @@ msgstr "Akış zaten kapalı"
msgid "Truncate not supported on base stream"
msgstr "Taban akış üzerinde sonunun kesilmesi desteklenmiyor"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -326,28 +327,28 @@ msgid "Not enough space in destination"
msgstr "Hedefte yeterli alan yok"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Dönüşüm girdisinde geçersiz bayt dizisi"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Dönüşüm sırasında hata oluştu: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "İptal edilebilir başlatma desteklenmiyor"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "“%s” karakter kümesinden “%s” karakter kümesine dönüşüm desteklenmiyor"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "“%s”den “%s”e dönüştürücü açılamıyor"
@@ -390,17 +391,17 @@ msgstr "Bu işletim sisteminde kimlik sızdırma olanaksızdır"
msgid "Unexpected early end-of-stream"
msgstr "Beklenmeyen erken akış-sonu"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "“%2$s” adres girdisinde desteklenmeyen anahtar “%1$s”"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "“%s” adres girdisinde anlamsız anahtar/değer çifti birleşimi"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -408,7 +409,7 @@ msgid ""
msgstr ""
"“%s” adresi geçersiz (tam bir yol, dir, tmpdir veya soyut anahtarlar gerekir)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -535,7 +536,7 @@ msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
"Oturum veri yolu adresi saptanamıyor (bu işletim sistemi için uygulanmadı)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -544,7 +545,7 @@ msgstr ""
"DBUS_STARTER_BUS_TYPE ortam değişkeninden veri yolu adresi saptanamıyor — "
"bilinmeyen değer “%s”"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -552,7 +553,7 @@ msgstr ""
"DBUS_STARTER_BUS_TYPE ortam değişkenine değer atanmadığından dolayı veri "
"yolu adresi belirlenemiyor"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Bilinmeyen veriyolu türü %d"
@@ -573,20 +574,24 @@ msgstr ""
"Tüm olası kimlik doğrulama yöntemleri tükendi (denenen: %s) (kullanılabilir: "
"%s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Bayt okunmaya çalışılırken beklenmeyen içerik eksikliği"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Kullanıcı kimlikleri eş ve sunucu için aynı olmalıdır"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "GDBusAuthObserver::authorize-authenticated-peer yolu ile iptal edildi"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "“%s” dizini için bilgi alınırken hata: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -594,200 +599,205 @@ msgstr ""
"“%s” dizini üzerindeki izinler bozulmuştur. 0700 kipi beklenmiştir, ama 0%o "
"alınmıştır"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "“%s” dizini oluşturulurken hata: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "İşlem desteklenmiyor"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Okumak için “%s” anahtarlığı açılırken hata: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "“%3$s” içerikli “%2$s” konumundaki anahtarlığın %1$d. satırı bozulmuş"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
-"“%3$s” içerikli “%2$s” konumundaki anahtarlığın %1$d. satırının ilk "
-"belirteci bozulmuş"
+"“%3$s” içerikli “%2$s” konumundaki anahtarlığın %1$d. satırının ilk jetonu "
+"bozulmuş"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
"“%3$s” içerikli “%2$s” konumundaki anahtarlığın %1$d. satırının ikinci "
-"belirteci bozulmuş"
+"jetonu bozulmuş"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "“%2$s” konumundaki anahtarlıkta %1$d kimlikli çerez bulunamadı"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Kilit dosyası “%s” oluşturulurken hata: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Eski kilit dosyası “%s” silinirken hata: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "(Bağlantısı olmayan) kilit dosyası “%s” kapatılırken hata: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "“%s” kilit dosyasının bağlantısı kaldırılırken hata: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "“%s” anahtarlığını yazma için açarken hata: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
-msgstr "(Ayrıca, “%s” için kilidi açma başarısız oldu: %s) "
+msgstr "(Ayrıca, “%s” için kilit açılamadı: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "Bağlantı kapalı"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Zaman aşımı gerçekleşti"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"İstemci taraflı bağlantı kurulurken desteklenmeyen etiketlerle karşılaşıldı"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"%s yolundaki nesnede “org.freedesktop.DBus.Properties” gibi bir arayüz yok"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "“%s” gibi bir özellik yok"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "“%s” özelliği okunabilir değil"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "“%s” özelliği yazılabilir değil"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr "“%s” özelliği ayarlanırken hata: “%s” türü beklendi, “%s” elde edildi"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "“%s” gibi bir arabirim yok"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "%2$s yolundaki nesnede “%1$s” gibi bir arayüz yok"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "“%s” gibi bir anahtar yok"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "“%s” iletisinin türü, beklenen “%s” türü ile örtüşmüyor"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "%2$s konumundaki %1$s arayüzü için bir nesne zaten dışa aktarıldı"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "%s.%s özelliği alınamadı"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "%s.%s özelliği ayarlanamadı"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "“%s” yöntemi “%s” türü döndürdü, ancak “%s” bekleniyordu"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "“%3$s” imzalı “%2$s” arayüzü üzerinde “%1$s” yöntemi yok"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "%s için bir alt ağaç zaten dışa aktarılmış"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Nesne, “%s” yolunda yok"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "tür GEÇERSİZ"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "METHOD_CALL iletisi: PATH ya da MEMBER başlık alanı eksik"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"METHOD_CALL iletisi: PATH ya da MEMBER başlık alanı eksik veya geçersiz"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "METHOD_RETURN iletisi: REPLY_SERIAL başlık alanı eksik"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr "METHOD_RETURN iletisi: REPLY_SERIAL başlık alanı eksik veya geçersiz"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "ERROR iletisi: REPLY_SERIAL ya da ERROR_NAME başlık alanı eksik"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"ERROR iletisi: REPLY_SERIAL ya da ERROR_NAME başlık alanı eksik veya geçersiz"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "SIGNAL iletisi: PATH, INTERFACE ya da MEMBER başlık alanı eksik"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"SIGNAL iletisi: PATH, INTERFACE ya da MEMBER başlık alanı eksik veya geçersiz"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -795,7 +805,7 @@ msgstr ""
"SIGNAL iletisi: PATH başlık alanı, ayrılmış olan /org/freedesktop/DBus/Local "
"değerini kullanıyor"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -803,18 +813,18 @@ msgstr ""
"SIGNAL iletisi: INTERFACE başlık alanı, ayrılmış olan org.freedesktop.DBus."
"Local değerini kullanıyor"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "%lu bayt okumak istendi ancak yalnızca %lu var"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "“%s” dizgesinden sonra NUL baytı beklendi, ama %d baytı bulundu"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -823,21 +833,21 @@ msgstr ""
"Geçerli bir UTF-8 dizgesi beklendi ama %d bayt konumunda geçersiz baytlar "
"bulundu (dizge uzunluğu %d). Bu noktaya kadar geçerli olan dizge şudur: “%s”"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Değer çok derine yuvalanmış"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Ayrıştırılan değer “%s”, geçerli bir D-Bus nesne yolu değil"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Ayrıştırılan değer “%s”, geçerli bir D-Bus imzası değil"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -847,7 +857,7 @@ msgstr[0] ""
"%u bayt uzunluğunda dizi ile karşılaşıldı. Olabilecek en çok uzunluk 2<<26 "
"bayt (64 MiB)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -856,23 +866,23 @@ msgstr ""
"“a%c” türünde dizi ile karşılaşıldı, birden çok %u bayt uzunluğu "
"beklenmektedir ancak %u bayt uzunluk bulundu"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "D-Bus’ta boş yapılara (demetler) izin verilmez"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Varyant için ayrıştırılmış “%s” değeri geçeriz bir D-Bus imzasıdır"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr ""
"GVariant, D-Bus tel biçiminden “%s” dizge türüyle geri dönüştürülürken hata"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -881,57 +891,57 @@ msgstr ""
"Geçersiz endian değeri. 0x6c (“l”) veya 0x42 (“B”) bekleniyordu ancak 0x%02x "
"değeri bulundu"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "Geçersiz önemli iletişim kuralı sürümü. 1 beklendi, %d bulundu"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "İmza başlığı bulundu, ancak tür imzası değil"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr "“%s” imzalı bir imza başlığı bulundu ama ileti gövdesi boş"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Ayrıştırılan değer “%s” geçerli bir D-Bus imzası değil (gövde için)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
msgstr[0] "İletide imza başlığı yok ancak ileti gövdesi %u bayt"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "İleti geri dönüştürülemiyor: "
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr "GVariant, D-Bus tel biçimine “%s” dizge türüyle dönüştürülürken hata"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr "İletideki dosya açıklayıcı sayısı (%d) başlık alanından (%d) farklı"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "İleti dönüştürülemiyor: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "İleti gövdesi “%s” imzasına sahip ancak imza başlığı yok"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -939,52 +949,52 @@ msgid ""
msgstr ""
"İleti gövdesi “%s” tür imzasına sahip ancak başlık alanındaki imza “%s”"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "İleti gövdesi boş, ancak başlık alanındaki imza “(%s)”"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "“%s” türünden bir gövdeyle dönüş hatası"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Boş gövdeyle dönüş hatası"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Pencereyi kapatmak için herhangi bir karakter girin)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
-msgstr "Dbus oturumu çalışmıyor ve kendiliğinden başlatma başarısız oldu"
+msgstr "Dbus oturumu çalışmıyor ve kendiliğinden başlatılamadı"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Donanım profili alınamıyor: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "%s ya da %s yüklenemedi: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "%s için StartServiceByName çağrısında hata: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "StartServiceByName %d yönteminden beklenmeyen yanıt (\"%s\")"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -993,25 +1003,25 @@ msgstr ""
"Yöntem çağrılamıyor; vekil sunucu, sahibi olmayan bilindik %s adı için ve "
"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START bayrağı ile oluşturuldu"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Soyut ad alanı desteklenmiyor"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Bir sunucu oluşturulurken nonce dosyası belirtilemez"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "“%s” konumundaki tek seferlik dosyaya yazma hatası: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "“%s” dizgesi, geçerli bir D-Bus GUID değil"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "Desteklenmeyen aktarım “%s” üzerinde dinlenemiyor"
@@ -1039,14 +1049,14 @@ msgstr ""
"\n"
"Her komutla ilgili yardım almak için “%s KOMUT --help” kullan.\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Hata: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "İç gözlem XML’ini ayrıştırmada hata: %s\n"
@@ -1056,213 +1066,213 @@ msgstr "İç gözlem XML’ini ayrıştırmada hata: %s\n"
msgid "Error: %s is not a valid name\n"
msgstr "Hata: %s geçerli bir ad değil\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Hata: %s geçerli bir nesne yolu değil\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Sistem veriyoluna bağlan"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Oturum veriyoluna bağlan"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Verilen D-Bus adresine bağlan"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Bağlantı Uç Noktası Seçenekleri:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Bağlantı uç noktasını belirleyen seçenekler"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Bağlantı uç noktası belirtilmedi"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Birden çok bağlantı uç noktası belirtildi"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "Uyarı: İç gözlem verilerine göre, “%s” arayüzü yok\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
"interface “%s”\n"
msgstr "Uyarı: İç gözlem verilerine göre, “%s” yöntemi “%s” arayüzünde yok\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Sinyal için isteğe bağlı hedef nokta (eşsiz ad)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Üzerinde sinyal yaymak için nesne yolu"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Sinyal ve arayüz adı"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Bir sinyal yayınla."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Bağlanırken hata: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Hata: %s geçerli bir özgün veriyolu adı değil\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Hata: Nesne yolu belirtilmedi\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Hata: Sinyal adı belirtilmedi\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Hata: Sinyal adı “%s” geçersiz\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Hata: %s geçerli bir arayüz adı değil\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Hata: %s geçerli bir üye adı değil\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "%d parametresini ayrıştırırken hata oluştu: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Bağlantı boşaltılırken hata: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Üzerinde yöntem çalıştırılacak hedef nokta adı"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Yöntemin üzerinde çalıştırılacağı nesne yolu"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Yöntem ve arayüz adı"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Saniye cinsinden zaman aşımı"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Etkileşimli yetkilendirmeye izin ver"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Uzak bir nesne üzerinde yöntem çalıştır."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Hata: Hedef belirtilmedi\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Hata: %s geçerli bir veri yolu adı değil\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Hata: Yöntem adı belirtilmedi\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Hata: Yöntem adı “%s” geçersiz\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "“%2$s” türünün %1$d parametresi ayrıştırılırken hata: %3$s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "%d işleyici eklenemedi: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "İç gözlem için hedef nokta adı"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "İç gözlem yapılacak nesne yolu"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "XML yazdır"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Alt iç gözlemi"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Yalnızca özellikleri yazdır"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Uzak nesneye iç gözlem yap."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Gözlemlenecek hedefin adı"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Gözlemlenecek nesne yolu"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Uzak nesneyi gözlemle."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "Hata: non-message-bus gözlemlenemiyor\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "Bir diğeri (tanınmış ad) için beklemeden önce aktifleştirilecek hizmet"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1270,68 +1280,73 @@ msgstr ""
"Bir hatayla çıkılmadan önce beklenecek zaman aşımı süresi (saniye); zaman "
"aşımı olmaması için 0 (öntanımlı)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[SEÇENEK…] VERİYOLU-ADI"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Veri yolu adının belirmesini bekle."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Hata: Aktifleştirilecek hizmet belirtilmelidir.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Hata: Beklenecek hizmet belirtilmelidir.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Hata: Çok fazla argüman.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Hata: %s geçerli bilinen bir veri yolu adı değil.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Hata ayıklama ayarlarını değiştirmeye yetkili değil"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5119
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Adlandırılmamış"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "Desktop dosyası Exec alanı belirtmemiş"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Uygulama için gerekli uçbirim bulunamadı"
-#: gio/gdesktopappinfo.c:3637
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "‘%s’ programı $PATH içinde bulunamadı"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Kullanıcı uygulaması yapılandırma klasörü %s oluşturulamıyor: %s"
-#: gio/gdesktopappinfo.c:3641
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Kullanıcı MIME yapılandırma klasörü %s oluşturulamıyor: %s"
-#: gio/gdesktopappinfo.c:3883 gio/gdesktopappinfo.c:3907
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "Uygulama bilgisinde tanımlayıcı eksik"
-#: gio/gdesktopappinfo.c:4143
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Kullanıcı masaüstü dosyası %s oluşturulamıyor"
-#: gio/gdesktopappinfo.c:4279
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "%s için özel tanım"
@@ -1380,7 +1395,7 @@ msgstr "GEmblem kodlamasının %d sürümü işlenemiyor"
#: gio/gemblem.c:335
#, c-format
msgid "Malformed number of tokens (%d) in GEmblem encoding"
-msgstr "GEmblem kodlaması içerisinde bozuk belirteç sayısı (%d)"
+msgstr "GEmblem kodlaması içerisinde bozuk jeton sayısı (%d)"
#: gio/gemblemedicon.c:364
#, c-format
@@ -1390,7 +1405,7 @@ msgstr "GEmblemedIcon kodlamasının %d sürümü işlenemiyor"
#: gio/gemblemedicon.c:374
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
-msgstr "GEmblemedIcon kodlaması içerisinde bozuk belirteç sayısı (%d)"
+msgstr "GEmblemedIcon kodlaması içerisinde bozuk jeton sayısı (%d)"
#: gio/gemblemedicon.c:397
msgid "Expected a GEmblem for GEmblemedIcon"
@@ -1400,80 +1415,85 @@ msgstr "GEmblemedIcon için bir Gemblem beklendi"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Bağlama yok"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Dizin üzerine kopyalanamıyor"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Dizin dizin üzerine kopyalanamıyor"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Hedef dosya var"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Dizin iç içe kopyalanamıyor"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "Splice desteklenmiyor"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Dosya kopyalama kapsamı desteklenmiyor"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Dosya uç uca eklenirken hata: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "Splice desteklenmiyor"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr ""
"Bağlı sistemler arasında kopyalama (referans bağlantı/çoğaltmak) "
"desteklenmiyor"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Kopyalama desteklenmiyor ya da geçersiz"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "Kopyalama (bağlama/klonlama) destenlenmiyor ya da çalışmadı"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Özel dosya kopyalanamıyor"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Geçersiz simgesel bağ değeri verildi"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "Simgesel bağlar desteklenmiyor"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Çöp desteklenmiyor"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Dosya adları “%c” içeremez"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "“%s” şablonu için geçici dizin oluşturulamadı: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "bölüm, bağlamayı yerine getirmiyor"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "Bu dosyayı işleme amacıyla kayıtlı uygulama yok"
@@ -1482,11 +1502,11 @@ msgid "Enumerator is closed"
msgstr "Enumerator kapalı"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Dosya numaralandırıcı sıra dışı işleme sahip"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Dosya numaralandırıcı zaten kapalı"
@@ -1499,27 +1519,27 @@ msgstr "GFileIcon kodlamasının %d sürümü işlenemiyor"
msgid "Malformed input data for GFileIcon"
msgstr "GFileIcon için bozuk girdi verisi"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Akış query_info desteklemiyor"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Atlama akışta desteklenmiyor"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Sonunu kesmeye giriş akışında izin verilmiyor"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Akış üzerinde sonunun kesilmesi desteklenmiyor"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Geçersiz makine adı"
@@ -1552,37 +1572,37 @@ msgstr "HTTP vekil sunucu yanıtı çok büyük"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "HTTP vekil sunucusu bağlantıyı beklenmedik biçimde kesti."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
-msgstr "Yanlış belirteç sayısı (%d)"
+msgstr "Yanlış jeton sayısı (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Sınıf adı %s için tür yok"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "%s türü GIcon arayüzü uygulamıyor"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "%s türü sınıflandırılmış değil"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Bozuk sürüm numarası: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "%s türü GIcon arayüzü üzerinde from_tokens() uygulamıyor"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Simge kodlamasının verilen sürümü işlenemiyor"
@@ -1623,7 +1643,7 @@ msgstr "Giriş akımı okumayı uygulamıyor"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Akışın sıra dışı işlemi var"
@@ -1729,12 +1749,12 @@ msgid "Error writing to stdout"
msgstr "stdout’a yazılırken hata"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1210 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "KONUM"
@@ -1752,8 +1772,8 @@ msgstr ""
"yerine GIO konumlarını kullanır: örneğin, smb://sunucu/kaynak/dosya.txt\n"
"gibi bir şeyi konum olarak kullanabilirsiniz."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1261 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Konum verilmedi"
@@ -1823,7 +1843,7 @@ msgstr "%s konumu bir dizin değildir"
#: gio/gio-tool-copy.c:198 gio/gio-tool-move.c:188
#, c-format
msgid "%s: overwrite “%s”? "
-msgstr "%s: “%s” üzerine yaz? "
+msgstr "%s: “%s” üzerine yazılsın mı? "
#: gio/gio-tool-info.c:39
msgid "List writable attributes"
@@ -1849,57 +1869,64 @@ msgstr "Simgesel bağlantıları takip etme"
msgid "attributes:\n"
msgstr "öznitelikler:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "gösterme adı: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "adı düzenle: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "ad: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "tür: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "boyut: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "gizli\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "yerel yol: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "unix bağlaması: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Belirlenebilir öznitelikler:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Yazılabilir öznitelik ad boşlukları:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Konumlar hakkında bilgi göster."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1965,11 +1992,11 @@ msgstr "Gösterme adlarını yazdır"
msgid "Print full URIs"
msgstr "Tam URI’leri yazdır"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Konumların içeriklerini listele."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2137,7 +2164,7 @@ msgstr ""
#: gio/gio-tool-mount.c:72
msgid "Use an anonymous user when authenticating"
-msgstr "Yetkilendirirken anonim bir kullanıcı kullan"
+msgstr "Kimlik doğrularken anonim kullanıcı kullan"
#. Translator: List here is a verb as in 'List all mounts'
#: gio/gio-tool-mount.c:74
@@ -2172,15 +2199,15 @@ msgstr "TCRYPT sistem bölümü bağla"
msgid "Anonymous access denied"
msgstr "Anonim erişim engellendi"
-#: gio/gio-tool-mount.c:533
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Aygıt dosyası için sürücü yok"
-#: gio/gio-tool-mount.c:1025
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Bu kimlik için bölüm yok"
-#: gio/gio-tool-mount.c:1214
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Konumları bağla veya ayır."
@@ -2346,7 +2373,7 @@ msgid ""
"directory)"
msgstr ""
"Bir dosyayı çöpten kendi özgün konumuna geri yükle (büyük olasılıkla dizini "
-"yeniden yaratacak)"
+"yeniden oluşturacak)"
#: gio/gio-tool-trash.c:108
msgid "Unable to find original path"
@@ -2354,7 +2381,7 @@ msgstr "Özgün yol bulunamadı"
#: gio/gio-tool-trash.c:125
msgid "Unable to recreate original location: "
-msgstr "Özgün konum yeniden yaratılamadı: "
+msgstr "Özgün konum yeniden oluşturulamadı: "
#: gio/gio-tool-trash.c:138
msgid "Unable to move file to its original location: "
@@ -2380,11 +2407,11 @@ msgstr "Verilen konum trash:/// ile başlamıyor"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "Simgesel bağlantıları, bağları ve kısayolları takip et"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Dizinlerin içeriklerini ağaç benzeri biçimde listele."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "<%2$s> içinde <%1$s> ögesine izin verilmiyor"
@@ -2439,7 +2466,7 @@ msgstr "%s dosyası sıkıştırma hatası"
msgid "text may not appear inside <%s>"
msgstr "<%s> içinde metin bulunamaz"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Programın sürümünü göster ve çık"
@@ -2455,8 +2482,8 @@ msgstr ""
"DOSYAʼda belirtilen dosyaların yükleneceği dizinler (öntanımlı: geçerli "
"dizin)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "DİZİN"
@@ -2511,7 +2538,7 @@ msgstr "C oluşturulan kaynak kod için kullanılan tanımlayıcı ad"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "Hedef C derleyici (öntanımlı: CC ortam değişkeni)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2521,123 +2548,123 @@ msgstr ""
"Kaynak özellikleri dosyaları .gresource.xml uzantısına sahiptir\n"
"ve kaynak dosyaları uzantısı .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Tam olarak bir adet dosya adı vermelisiniz\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "takma ad en az 2 karakterden oluşmalıdır"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Geçersiz sayısal değer"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> zaten belirtilmiş"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' zaten belirtilmiş"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "bayrak değerlerinin en çok 1 bit seti olmalıdır"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> en az bir <value> içermelidir"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s>, belirlenen aralık içinde değil"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s>, belirtilen numaralandırılmış türün geçerli bir üyesi değildir"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> belirtilen bayrak türlerinden olmayan dizge içeriyor"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s>, <choices> içinde olmayan bir dizge içeriyor"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> bu anahtar için zaten belirtilmiş"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "“%s” türünün anahtarları için <range> izin verilmiyor"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "<range> belirlenen asgari, azamiden büyük"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "desteklenmeyen l10n kategorisi: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "l10n istendi, ama verilen gettext alanı yok"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "l10n etkinleştirilmeden değer için verilen çeviri bağlamı"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "“%s” türünün <default> değeri ayrıştırılamadı: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices>, numaralandırılmış türü olan olarak etiketlenmiş anahatarlar için "
"belirtilemez"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> bu anahtar için zaten belirtilmiş"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "“%s” türünün anahtarları için <choices> izin verilmemektedir"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> zaten verilmiş"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices>, en az bir <choice> içermelidir"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> bu anahtar için zaten belirtilmiş"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2645,7 +2672,7 @@ msgstr ""
"<aliases> yalnızca numaralandırılmış anahtarlar için veya bayrak türleri "
"veya <choices> ardında belirtilebilir"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2654,42 +2681,42 @@ msgstr ""
"“%2$s” zaten numaralandırılmış türün bir üyesiyken <alias value='%1$s'/> "
"verildi"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr ""
"<choice value='%2$s'/> zaten verildiğinde <alias value='%1$s'/> verildi"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> zaten belirtilmiş"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "takma ad hedefi “%s”, numaralandırılmış tür içinde değil"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "takma ad hedefi “%s”, <choices> içinde değil"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> en az bir <alias> içermelidir"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Boş adlara izin verilmiyor"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Geçersiz ad “%s”: adlar küçük harf ile başlamalıdır"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2698,36 +2725,36 @@ msgstr ""
"Geçesiz ad “%s”: geçersiz karakter “%c”; yalnızca küçük harfler, sayılar ve "
"tire (“-”) imi kullanılabilir"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "Geçesiz ad “%s”: birbirini izleyen iki tire (“--”) kullanılamaz"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Geçesiz ad “%s”: son karakter tire (“-”) olamaz."
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Geçesiz ad “%s”: olabilecek azami uzunluk 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> zaten belirtilmiş"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "“list-of” şemasına anahtarlar eklenemiyor"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> zaten belirtilmiş"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2736,7 +2763,7 @@ msgstr ""
"<key name='%1$s'> dizgesi <schema id='%3$s'> içindeki <key name='%2$s'> "
"dizgesini gölgeler; değerleri değiştirmek için <override> kullanın"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2745,63 +2772,63 @@ msgstr ""
"<key>’e “type”, “enum”, ya da “flags” özniteliklerinden bir tanesi "
"kesinlikle belirtilmelidir"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> (henüz) tanımlanmamış."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Geçersiz GVariant tür dizgesi “%s”"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "<override> verildi, ancak şema hiçbir şeyi genişletmiyor"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Üzerine yazılacak hiçbir <key name='%s'> yok"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> zaten belirtilmiş"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> zaten belirtilmiş"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> henüz var olmayan “%s” şemasını genişletir"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> henüz var olmayan “%s” şemasının bir listesidir"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Yolu olan bir şemanın listesi olamaz"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Şema bir yol ile genişletilemez"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
"<schema id='%s'>, liste olmayan <schema id='%s'> 'i genişleten bir listedir"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2810,17 +2837,17 @@ msgstr ""
"<schema id='%s' list-of='%s'>, <schema id='%s' list-of='%s'> ’i genişletir; "
"ancak “%s”, “%s”i genişletemez"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "Eğer verilmişse, yol, mutlaka bir taksim ile başlayıp bitmeli"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Listenin yolu mutlaka “:/” ile bitmelidir"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2829,49 +2856,49 @@ msgstr ""
"Uyarı: “%s” şeması “%s” yoluna sahip. “/apps/”, “/desktop/” veya “/system/” "
"ile başlayan yollar artık kullanılmamaktadır."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> zaten belirtilmiş"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "<%s> içinde yalnızca bir <%s> ögesi bulunabilir"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "<%s> ögesine en üst düzeyde izin verilmez"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "<default> ögesi <key> içinde zorunludur"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "<%s> içinde metin bulunamayabilir"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Uyarı: <schema id='%s'/> ’e tanımlanmamış referans"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "--strict belirtildi; çıkılıyor."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Bu dosyanın tümü görmezden gelindi."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Bu dosya görmezden geliniyor."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2880,7 +2907,7 @@ msgstr ""
"“%3$s” dosyasında üzerine yazılacağı belirtilen “%2$s” şemasında “%1$s” gibi "
"bir anahtar yok; bu anahtar için üstüne yazma görmezden geliniyor."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2889,7 +2916,7 @@ msgstr ""
"“%3$s” dosyasında üzerine yazılacağı belirtilen “%2$s” şemasında “%1$s” gibi "
"bir anahtar yok ve --strict belirtildi; çıkılıyor."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2899,7 +2926,7 @@ msgstr ""
"sağlanamıyor (üstüne yazma dosyası “%s”); bu anahtar için üstüne yazma göz "
"ardı ediliyor."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2908,7 +2935,7 @@ msgstr ""
"“%s” şemasında “%s” yerleşik anahtarı için masaüstü başına üstüne yazma "
"sağlanamıyor (üstüne yazma dosyası “%s”) ve --strict belirtildi; çıkılıyor."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2918,7 +2945,7 @@ msgstr ""
"anahtarı ayrıştırmada hata: %4$s. Bu anahtar için üzerine yazma görmezden "
"geliniyor."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2927,7 +2954,7 @@ msgstr ""
"“%3$s” dosyasında üzerine yazılacağı belirtilen “%2$s” şemasında “%1$s” "
"anahtarı ayrıştırmada hata: %4$s. --strict belirtildi; çıkılıyor."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2937,7 +2964,7 @@ msgstr ""
"üzerine yazma, şemada verilen aralığın dışındadır; bu anahtar için üstüne "
"yazma görmezden geliniyor."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2947,7 +2974,7 @@ msgstr ""
"üzerine yazma, şemada verilen aralığın dışındadır ve --strict belirtildi; "
"çıkılıyor."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2957,7 +2984,7 @@ msgstr ""
"geçerli seçenekler listesinde değildir; bu anahtar için üstüne yazma göz "
"ardı ediliyor."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2966,23 +2993,23 @@ msgstr ""
"“%3$s” dosyasındaki “%2$s” şemasının “%1$s” anahtarının üzerine yazma, "
"geçerli seçenekler listesinde değildir ve --strict belirtildi; çıkılıyor."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "gschemas.compiled dosyasının saklanacağı yer"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Şemalardaki herhangi bir hatada iptal et"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "gschema.compiled dosyasını yazma"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Anahtar adı kısıtlamalarını zorlama"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -2992,24 +3019,24 @@ msgstr ""
"Şema dosyalarının .gschema.xml uzantısına sahip olmaları gerekir,\n"
"ve önbellek dosyası gschemas.compiled olarak anılır."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Tam olarak bir adet dizin adı vermelisiniz"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Hiç şema dosyası bulunamadı: hiçbir şey yapılmıyor."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "Hiç şema dosyası bulunamadı: var olan çıktı dosyası kaldırıldı."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Geçersiz dosya adı %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "%s için dosya sistemi bilgisi alınırken hata: %s"
@@ -3018,255 +3045,255 @@ msgstr "%s için dosya sistemi bilgisi alınırken hata: %s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "%s dosyası için bağlama bulunamadı"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Kök dizini yeniden adlandırılamaz"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "%s dosyası yeniden adlandırılırken hata: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Dosya yeniden adlandırılamıyor, dosya adı zaten var"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Geçersiz dosya adı"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "%s dosyası açılırken hata: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "%s dosyası silinirken hata: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "%s dosyası çöpe atılırken hata: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Çöp dizini %s oluşturulamadı: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "%s çöpe atmak için en üst seviye dizin bulunamıyor"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "Sistem iç bağlarına çöpleme desteklenmiyor"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "%2$s çöpe atılırken %1$s çöp dizini bulunamıyor ya da oluşturulamıyor"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "%s için çöp bilgi dosyası oluşturulamıyor: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "%s dosyası, dosya sistemi sınırları dışına, çöpe atılamıyor"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "%s dosyası çöpe atılamıyor: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "%s dosyası çöpe atılamıyor"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "%s dizini oluşturulurken hata: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Dosya sistemi simgesel bağları desteklemiyor"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "%s simgesel bağlantısı yapılırken hata: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "%s dosyası taşınırken hata: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Dizin dizin üzerine taşınamıyor"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
-msgstr "Yedek dosyası oluşturma başarısız oldu"
+msgstr "Yedek dosyası oluşturulamadı"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Hedef dosya silerken hata: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Bağlı sistemler arasında taşıma desteklenmiyor"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "%s’in disk kullanımı saptanamadı: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Öznitelik değeri NULL olmamalı"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Geçersiz öznitelik türü (dizge veya geçersiz beklendi)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Geçersiz genişletilmiş öznitelik adı"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "“%s” genişletilmiş özniteliği atanırken hata: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (geçersiz kodlama)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "“%s” dosyası için bilgi alınırken hata: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Dosya tanımlayıcı için bilgi alındığında hata: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Geçersiz öznitelik türü (uint32 beklendi)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Geçersiz öznitelik türü (uint64 beklendi)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Geçersiz öznitelik türü (byte dizisi beklendi)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Simgesel bağlar üzerindeki yetkiler ayarlanamıyor"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "İzinler atanırken hata: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Sahip atanırken hata: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "simgesel bağ NULL olmamalı"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Simgesel bağ atanırken hata: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "Simgesel bağ atanırken hata: dosya bir simgesel bağ değil"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "UNIX zaman damgası %2$lld için %1$d ek nanosaniye negatif"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr "UNIX zaman damgası %2$lld için %1$d ek nano saniye 1 saniyeye ulaştı"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "UNIX zaman damgası %lld 64 bit’e sığmıyor"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"UNIX zaman damgası %lld Windows tarafından desteklenen aralığın dışında"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "“%s” dosya adı UTF-16’ya dönüştürülemedi"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "“%s” dosyası açılamadı: Windows Hatası %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "“%s” dosyasına değiştirme veya erişim süresi atanırken hata: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Değiştirme veya erişim süresi atanırken hata: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "SELinux bağlamı NULL olmamalı"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "SELinux bu sistede etkin değil"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "SELinux bağlamı atanırken hata: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Öznitelik %s ataması desteklenmiyor"
@@ -3313,13 +3340,13 @@ msgstr "Yedek kopyası oluşturulurken hata: %s"
msgid "Error renaming temporary file: %s"
msgstr "Geçici dosya yeniden adlandırılırken hata: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Dosyanın sonu kesilirken hata: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "“%s” dosyası açılırken hata: %s"
@@ -3336,7 +3363,7 @@ msgstr "Hedef dosya normal dosya değil"
msgid "The file was externally modified"
msgstr "Dosya dışarıdan değiştirilmiş"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Eski dosya silinirken hata: %s"
@@ -3359,7 +3386,7 @@ msgstr "Bellek çıktı akışı yeniden boyutlandırılamaz"
#: gio/gmemoryoutputstream.c:586
msgid "Failed to resize memory output stream"
-msgstr "Hafız çıktı açışı yeniden boyutlandırma başarısız oldu"
+msgstr "Bellek çıktı akışı yeniden boyutlandırılamadı"
#: gio/gmemoryoutputstream.c:665
msgid ""
@@ -3469,42 +3496,42 @@ msgstr "NetworkManager sürümü çok eski"
msgid "Output stream doesn’t implement write"
msgstr "Çıktı akışı yazmayı yerine getirmiyor"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "%s için geçilen vektörlerin toplamı çok büyük"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Kaynak akışı zaten kapalı"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Belirtilmemiş vekil bakış başarısızlığı"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "“%s” çözülürken hata: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s uygulanmadı"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Geçersiz alan adı"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "“%s” konumundaki kaynak yok"
@@ -3514,16 +3541,16 @@ msgstr "“%s” konumundaki kaynak yok"
msgid "The resource at “%s” failed to decompress"
msgstr "“%s” konumundaki kaynak açılamadı"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Kaynak dosyalar yeniden adlandırılamaz"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "“%s” konumundaki kaynak bir dizin değildir"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "Girdi akışı aramayı yerine getirmiyor"
@@ -3884,13 +3911,14 @@ msgstr "Geçersiz yuva, başlatılmadı"
#: gio/gsocket.c:426
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
-msgstr "Geçersiz yuva, başlatma başarısız oldu: %s"
+msgstr "Geçersiz yuva, başlatılamadı: %s"
#: gio/gsocket.c:434
msgid "Socket is already closed"
msgstr "Yuva zaten kapalı"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1445
msgid "Socket I/O timed out"
msgstr "Yuva G/Ç zaman aşımı"
@@ -3899,160 +3927,160 @@ msgstr "Yuva G/Ç zaman aşımı"
msgid "creating GSocket from fd: %s"
msgstr "fd’den GSocket oluşturuluyor: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Yuva oluşturulamadı: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Bilinmeyen küme belirtildi"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Bilinmeyen iletişim kuralı belirtildi"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "Datagram olmayan bir yuva üzerinde datagram işlemleri kullanılamaz."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Zamanaşımı ayarlanmış bir yuva üzerinde datagram işlemleri kullanılamaz."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "yerel adres alınamadı: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "uzaktaki adres alınamadı: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "dinlenemedi: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "%s adresine bağlanırken hata: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Çok yöne yayın kümesine katılırken hata: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Çok yöne yayın kümesinden ayrılırken hata: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Kaynağa-özgü çok yöne yayın desteklenmiyor"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Desteklenmeyen yuva ailesi"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "kaynağa-özgü bir IPv4 adresi değil"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Arayüz adı çok uzun"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Arayüz bulunamadı: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "IPv4 kaynağa-özgü çok yöne yayın desteklenmiyor"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "IPv6 kaynağa-özgü çok yöne yayın desteklenmiyor"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Bağlantı kabul edilirken hata: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
-msgstr "Bağlantı devam ediyor"
+msgstr "Bağlantı sürüyor"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Bekleyen hata alınamadı: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Veri alırken hata: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Veri gönderirken hata: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Yuva kapatılamadı: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Yuva kapatılırken hata: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Yuva durumu bekleniyor: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "İleti gönderilemedi: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "İleti vektörleri çok geniş"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "İleti gönderme hatası: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage Windows işletim sisteminde desteklenmiyor"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "İleti alma hatası: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Yuva kimliği okunamadı : %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "bu işletim sistemi için g_socket_get_credentials uygulanmadı"
@@ -4132,8 +4160,7 @@ msgstr "Kullanıcı adı ya da parola SOCKSv5 iletişim kuralı için çok uzun.
#: gio/gsocks5proxy.c:252
msgid "SOCKSv5 authentication failed due to wrong username or password."
msgstr ""
-"Yanlış kullanıcı adı ya da paroladan dolayı SOCKSv5 kimlik doğrulaması "
-"başarısız oldu."
+"Yanlış kullanıcı adı ya da paroladan dolayı SOCKSv5 kimlik doğrulanamadı."
#: gio/gsocks5proxy.c:302
#, c-format
@@ -4176,10 +4203,10 @@ msgstr "SOCKSv5 vekil sunucusu verilen adres türünü desteklemiyor."
msgid "Unknown SOCKSv5 proxy error."
msgstr "Bilinmeyen SOCKSv5 vekil hatası."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
-msgstr "Alt süreçle haberleşme için boru yaratılamadı (%s)"
+msgstr "Alt süreçle haberleşme için boru oluşturulamadı (%s)"
#: gio/gtestdbus.c:621
#, c-format
@@ -4191,46 +4218,46 @@ msgstr "Borular bu platformda desteklenmiyor"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "GThemedIcon kodlaması %d sürümü işlenemiyor"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Geçersiz adresler bulundu"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "“%s” tersine çözülürken hata: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "DNS %s kaydı ayrıştırılamadı: kusurlu DNS paketi"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "“%s” için istenen türün DNS kaydı yok"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Geçici olarak “%s” çözülemiyor"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "“%s” çözerken hata"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Kusurlu DNS paketi"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "“%s” için DNS yanıtı ayrıştırılamadı: "
@@ -4261,7 +4288,7 @@ msgstr "Var olan TLS arka ucu PKCS #12 desteklemiyor"
#: gio/gtlscertificate.c:1017
msgid "This GTlsBackend does not support creating PKCS #11 certificates"
-msgstr "GTlsBackend, PKCS #11 sertifikası yaratmayı desteklemiyor"
+msgstr "GTlsBackend, PKCS #11 sertifikası oluşturmayı desteklemiyor"
#: gio/gtlspassword.c:113
msgid ""
@@ -4288,56 +4315,56 @@ msgstr "Girilen parola hatalı."
msgid "Sending FD is not supported"
msgstr "FD gönderimi desteklenmiyor"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "Beklenen 1 denetim iletisi, alınan %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Yardımcı verinin beklenmeyen türü"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "Beklenen bir fd, ancak alınan %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Geçersiz fd alındı"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "FD alımı desteklenmiyor"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Kimlik bilgileri gönderilirken hata oluştu: "
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Yuva için SO_PASSCRED’in etkin olup olmadığını denetleme hatası: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "SO_PASSCRED etkinleştirmede hata: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Kimlik bilgileri almak için bir bayt okunması bekleniyordu, sıfır bayt okundu"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Beklenen denetim iletisi yok ancak %d alındı"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "SO_PASSCRED devre dışı bırakılırken hata: %s"
@@ -4353,7 +4380,7 @@ msgstr "Dosya tanımlayıcıdan okuma hatası: %s"
msgid "Error closing file descriptor: %s"
msgstr "Dosya tanımlayıcı kapatılırken hata: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Dosya sistemi kök dizini"
@@ -4429,136 +4456,131 @@ msgstr "Kabuk kipinde adres yazdır"
#: gio/tests/gdbus-daemon.c:28
msgid "Run a dbus service"
-msgstr "Bir dbus servisi çalıştır"
+msgstr "Bir dbus hizmeti çalıştır"
#: gio/tests/gdbus-daemon.c:42
msgid "Wrong args\n"
msgstr "Yanlış değişkenler\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "“%2$s” ögesi için beklenmeyen “%1$s” özniteliği"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "“%2$s” ögesinde “%1$s” özniteliği bulunamadı"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Beklenmeyen etiket “%s”, “%s” bekleniyordu"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "“%2$s” içinde beklenmeyen etiket “%1$s”"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Yer imi dosyasında geçersiz tarih/saat ‘%s’"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Veri dizinlerinde geçerli bir yer imi dosyası bulunamadı"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "“%s” URI’si için bir yer imi zaten var"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "“%s” URI’si için bir yer imi bulunamadı"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "“%s” URI’si için yer iminde hiçbir MIME türü belirtilmedi"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "“%s” URI’si için yer iminde özel bayrak tanımlanmadı"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "“%s” URI’si için yer iminde küme tanımlanmadı"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "“%s” adında hiçbir uygulama “%s” için yer imi kaydetmedi"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
-msgstr "Exec satırı “%s”, “%s” URI’si ile genişletilirken başarısız olundu"
+msgstr "Exec satırı “%s”, “%s” URI’si ile genişletilemedi"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Dönüşüm girdisi içinde temsil edilemez karakter"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Girdinin sonunda parçalı karakter dizisi"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr ""
"Geridönüş karakter kümesi “%s”, “%s” karakter kümesine dönüştürülemiyor"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Dönüşüm girdisinde gömülü NUL baytı"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Dönüşüm çıktısında gömülü NUL baytı"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "“%s” URI’si, “file” şemasını kullanan kesin bir URI değil"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "Yerel dosya URI’si “%s”, “#” içeremez"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "“%s” URI’si geçersiz"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "“%s” URI’sinin ana makine adı geçersiz"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "“%s” URI’si geçersiz olarak çıkış yapılmış karakterler içeriyor"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Yol adı “%s”, kesin bir yol değil"
@@ -4611,7 +4633,7 @@ msgstr "Ocak"
#: glib/gdatetime.c:278
msgctxt "full month name"
msgid "February"
-msgstr "Şubat"
+msgstr "Şubat"
#: glib/gdatetime.c:280
msgctxt "full month name"
@@ -4835,7 +4857,7 @@ msgstr "Ocak"
#: glib/gdatetime.c:472
msgctxt "full month name with day"
msgid "February"
-msgstr "Şubat"
+msgstr "Şubat"
#: glib/gdatetime.c:474
msgctxt "full month name with day"
@@ -4968,97 +4990,95 @@ msgstr "Ara"
#: glib/gdatetime.c:596
msgctxt "GDateTime"
msgid "AM"
-msgstr "ÖÖ"
+msgstr "ÖÖ"
#. Translators: 'after midday' indicator
#: glib/gdatetime.c:599
msgctxt "GDateTime"
msgid "PM"
-msgstr "ÖS"
+msgstr "ÖS"
#: glib/gdir.c:158
#, c-format
msgid "Error opening directory “%s”: %s"
msgstr "“%s” dizini açılamadı: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "%lu bayt “%s” dosyasını okumak için ayrılamadı"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "“%s” dosyası okuma hatası: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "“%s” dosyası çok büyük"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
-msgstr "“%s” dosyasından okuma başarısız: %s"
+msgstr "“%s” dosyasından okunamadı: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
-msgstr "“%s” dosyasını açma başarısız: %s"
+msgstr "“%s” dosyası açılamadı: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
-msgstr ""
-"“%s” dosyasının özniteliklerini alma başarısız: fstat() başarısızlığı: %s"
+msgstr "“%s” dosyasının öznitelikleri alınamadı: fstat() başarısız: %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
-msgstr "“%s” dosyasını açma başarısız: fdopen() başarısızlığı: %s"
+msgstr "“%s” dosyası açılamadı: fdopen() başarısız: %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr ""
-"“%s” dosyasının adı “%s” olarak değiştirilirken hata: g_rename() "
-"başarısızlığı: %s"
+"“%s” dosyasının adı “%s” olarak değiştirilemedi: g_rename() başarısız: %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "“%s” dosyasına yazılamadı: write() başarısız: %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "“%s” dosyasına yazılamadı: fsync() başarısız: %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
-msgstr "“%s” dosyasını oluşturma başarısız: %s"
+msgstr "“%s” dosyası oluşturulamadı: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "Var olan dosya “%s” kaldırılamadı: g_unlink() başarısızlığı: %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "“%s” şablonu geçersiz, “%s” içermemeli"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "“%s” şablonu XXXXXX içermiyor"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
-msgstr "“%s” simgesel bağını okuma başarısız: %s"
+msgstr "“%s” simgesel bağı okunamadı: %s"
#: glib/giochannel.c:1408
#, c-format
@@ -5081,15 +5101,15 @@ msgstr "Kanal kısmi bir karakterde sonlanıyor"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "g_io_channel_read_to_end içinde ham okuma başarısız"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Arama dizinlerinde geçerli anahtar dosyası bulunamadı"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Normal dosya değil"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5097,50 +5117,50 @@ msgstr ""
"Anahtar dosyası; anahtar-değer çifti, küme veya yorum olmayan “%s” satırını "
"içeriyor"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Geçersiz küme adı: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Anahtar dosyası kümeyle başlamıyor"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Geçersiz anahtar adı: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Anahtar dosya desteklenmeyen “%s” kodlamasını içeriyor"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Anahtar dosyasında “%s” kümesi yok"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Anahtar dosyası, “%2$s” kümesinde “%1$s” anahtarı içermiyor"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "Anahtar dosyası, UTF-8 olmayan “%s” anahtarını “%s” değeriyle içeriyor"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr ""
"Anahtar dosyası yorumlanamayan bir değere sahip olan “%s” anahtarını içerir."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5149,84 +5169,84 @@ msgstr ""
"“%2$s” kümesindeki anahtar dosyası, yorumlanamayan “%1$s” anahtarını "
"içeriyor."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr ""
"“%2$s” kümesindeki “%1$s” anahtarı “%4$s” değerine sahip olması beklenirken "
"“%3$s” değerine sahip"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4357
msgid "Key file contains escape character at end of line"
msgstr "Anahtar dosyası satır sonunda çıkış karakteri içeriyor"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4394
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "“%s” anahtar dosyası geçersiz çıkış dizisi içeriyor"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4545
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "“%s” değeri bir sayı olarak yorumlanamıyor."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4559
#, c-format
msgid "Integer value “%s” out of range"
msgstr "“%s”, tamsayı değeri aralık dışında"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4592
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "“%s” değeri bir gerçel sayı olarak yorumlanamıyor."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4631
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "“%s” değeri mantıksal değer olarak yorumlanamıyor."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
-"“%s%s%s%s” dosyasının özniteliklerini alma başarısız: fstat() hatası: %s"
+"“%s%s%s%s” dosyasının özniteliklerini alma başarısız: fstat() başarısız: %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
-msgstr "%s%s%s%s için eşleme oluşturulamadı: mmap() hatası: %s"
+msgstr "%s%s%s%s için eşleme oluşturulamadı: mmap() başarısız: %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
-msgstr "“%s” dosyası açılamadı: open() başarısızlığı: %s"
+msgstr "“%s” dosyası açılamadı: open() başarısız: %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Satır %d karakter %d hatalı: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Adda geçersiz UTF-8 kodlu metin — geçerli olmayan “%s”"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "“%s” geçerli bir ad değil"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "“%s” geçerli bir ad değil: “%c”"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Satır %d hata içeriyor: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5235,7 +5255,7 @@ msgstr ""
"Karakter referansı içinde bir rakam olması gereken “%-.*s” ayrıştırılamadı, "
"(örneğin; &#234;) — rakam çok büyük olabilir"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5245,23 +5265,23 @@ msgstr ""
"özvarlık başlatmak istemeksizin “ve” imi kullandınız — “ve” imini &amp; "
"olarak kullanabilirsiniz"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Karakter referansı “%-.*s” izin verilen karakteri kodlamıyor"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Boş özvarlık “&;” görüldü; geçerli ögeler: &amp; &quot; &lt; &gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Varlık adı “%-.*s” bilinmiyor"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5270,11 +5290,11 @@ msgstr ""
"başlatmak istemeksizin “ve” imi kullandınız — “ve” imini &amp; olarak "
"kullanabilirsiniz"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Belge bir öge ile başlamalıdır (örneğin <kitap>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5283,7 +5303,7 @@ msgstr ""
"“<” karakterinden sonra gelen “%s” geçerli bir karakter değil; bir öge adı "
"başlatmamalı"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5291,12 +5311,12 @@ msgid ""
msgstr ""
"Tuhaf karakter “%s”, “%s” boş öge etiketinin sonunda “>” karakteri bekledi"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "“%s” ögesinde çok fazla öznitelik var"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5304,7 +5324,7 @@ msgstr ""
"Tuhaf karakter “%1$s”, “%3$s” ögesinin “%2$s” özniteliğinin sonunda “=” "
"karakteri bekledi"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5315,7 +5335,7 @@ msgstr ""
"“>”, “/” karakteri veya bir öznitelik bekledi; öznitelik adında geçersiz bir "
"karakter kullanmış olabilirsiniz"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5324,7 +5344,7 @@ msgstr ""
"Tuhaf karakter “%1$s”, “%3$s” ögesindeki “%2$s” özniteliği için değer "
"verildiğinde eşittir iminden sonra tırnak imi beklendi"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5333,7 +5353,7 @@ msgstr ""
"“</” karakterlerini takip eden “%s” geçerli bir karakter değildir; “%s”, öge "
"adı ile başlamamalı"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5342,27 +5362,27 @@ msgstr ""
"“%s”, kapalı öge adı “%s” ardından gelebilecek bir karakter değil; izin "
"verilen karakter ise “>”"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "“%s” ögesi kapatılmış, hiçbir öge şu anda açık değil"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "“%s” ögesi kapatılmış, ancak “%s” şu an açık olan ögedir"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Belge boş veya yalnızca boşluk karakteri içeriyor"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr ""
"Belge, açık açı parantezi “<” iminden hemen sonra beklenmedik biçimde "
"sonlandı"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5371,7 +5391,7 @@ msgstr ""
"Belge, ögeleri hala açıkken beklenmedik biçimde sonlandı - son açılan öge: "
"“%s”"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5380,19 +5400,19 @@ msgstr ""
"Belge beklenmedik biçimde sonlandı, etiketi bitiren kapalı açı parantezi ile "
"biten <%s/> beklendi"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Belge bir öge adının içinde beklenmedik biçimde sonlandı"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Belge bir öznitelik adı içinde beklenmedik biçimde sonlandı"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Belge bir öge-açma etiketi içinde beklenmedik biçimde sonlandı."
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5400,24 +5420,24 @@ msgstr ""
"Belge öznitelik adını takip eden eşittir iminden sonra beklenmedik biçimde "
"sonlandı; öznitelik değeri yok"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Belge bir öznitelik değeri içinde iken beklenmedik biçimde sonlandı"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr ""
"Belge, “%s” ögesinin kapatma etiketi içinde beklenmedik biçimde sonlandı"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr ""
"Belge, açık olmayan bir öge için kapatma etiketi içinde beklenmedik biçimde "
"sonlandı"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
"Belge bir yorum veya işlem talimatı içindeyken beklenmedik biçimde sonlandı"
@@ -5481,184 +5501,180 @@ msgstr "%s için argüman eksik"
msgid "Unknown option %s"
msgstr "Bilinmeyen seçenek %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "bozuk nesne"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "yetersiz bellek"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "geri takip sınırına ulaşıldı"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "iç hata"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "doku (pattern), kısmi eşleme için desteklenmeyen ögeler içeriyor"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr "koşul olarak geri referanslar kısmi eşleme için desteklenmiyor"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "iç içe yineleme sınırına ulaşıldı"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "geçersiz ofset"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "yineleme döngüsü"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "JIT için derlenmemiş eşleşme kipi istendi"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "bilinmeyen hata"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ desenin sonunda"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c desenin sonunda"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "\\ imini takiben anlaşılamayan karakter"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "sayılar {} niceliği içerisinde sıra dışı"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "sayılar {} niceliği içerisinde çok büyük"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "karakter sınıfı için eksik sonlanan ]"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "karakter sınıfında geçersiz dizi"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "karakter sınıfında sıra dışı kapsam"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "yinelenecek bir şey yok"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "(? ya da (?- sonrası tanınmayan karakter"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX adlandırılmış sınıflar yalnızca bir sınıf içinde desteklenir"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "POSIX karşılaştırma ögeleri desteklenmiyor"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "eksik sonlandıran )"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "var olmayan alt desene referans"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "açıklama sonrası eksik )"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "düzenli ifade çok uzun"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "(?( sonrası bozuk rakam ya da ad"
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "geribakma iddiası sabit uzunlukta değil"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "koşul kümesi ikiden daha çok dal içeriyor"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "(?( sonrası ifade beklendi"
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "numaralandırılmış kaynak sıfır olmamalıdır"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "bilinmeyen POSIX sınıf adı"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "\\x{...} dizisi içerisinde karakter değeri çok büyük"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C geriye bakma iddiası içerisinde izin verilmiyor"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "alt desen adı içerisinde eksik sonlandırıcı"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "iki adlı alt desenler aynı ada sahip"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "bozulmuş \\P ya da \\p dizisi"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "\\P ya da \\p sonrası bilinmeyen özellik adı"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "alt desen adı çok uzun (en çok 32 karakter)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "çok fazla adlandırılmış alt desen (en çok 10.000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "sekizlik değer \\377’den daha büyük"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "DEFINE kümesi birden çok dal içeriyor"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "kararsız NEWLINE seçenekleri"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5666,119 +5682,119 @@ msgstr ""
"\\g bir parantezli ad ya da tercihten parentezli sıfır olmayan sayı "
"tarafından takip edilmiyor"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "(*ACCEPT), (*FAIL) ya da (*COMMIT) için bir argümana izin verilmez"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "(*VERB) tanınamadı"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "sayı çok büyük"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "(?& den sonra eksik alt desen adı"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "aynı sayıya izin verilmeyen alt desenler için farklı adlar"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) bir argüman almalı"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c karakteri ASCII karakterleri tarafından takip edilmelidir"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr ""
"\\k bir parantezli ad ya da tercihten parentezli sıfır olmayan sayı "
"tarafından takip edilmiyor"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N bir sınıfta desteklenmez"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "(*MARK), (*PRUNE), (*SKIP) ya da (*THEN) içinde ad çok uzun"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "kod akış taşması"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "(?P sonrası tanımlanmayan karakter"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "derleme çalışma alanı kaplandı"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "önceden denetlenmiş referanslı alt desen bulunamadı"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Düzenli ifade %s eşleşirken hata: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "PCRE kütüphanesi UTF8 desteği olmadan derlenmiş"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "PCRE kütüphanesi uyuşmayan seçenekler ile derlenmiş"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Düzenli ifade ‘%s’ derlenirken karakter %s hatalı: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "onaltılı rakam ya da “}” beklendi"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "onaltılı rakam beklendi"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "simgesel referansda eksik “<”"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "tamamlanmamış simgesel referans"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "sıfır-uzunlukta simgesel referans"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "rakam beklendi"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "geçersiz simgesel referans"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "son “\\” kayıp"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "geçersiz çıkış dizisi"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "Yerine koyma metni “%s” işlenirken karakter %lu hatalı: %s"
@@ -5806,136 +5822,141 @@ msgstr "%c için eşleşen alıntı bulunmadan metin bitti. (Metin: “%s”)"
msgid "Text was empty (or contained only whitespace)"
msgstr "Metin boştu (veya yalnızca boşluk içeriyordu)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
-msgstr "Alt süreçten bilgi okuma başarısızlığı (%s)"
+msgstr "Alt süreçten bilgi okunamadı (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Alt süreçten bilgi okurken beklenmeyen hata oluştu (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "waitpid() (%s) içinde beklenmeyen hata"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Alt işlem %ld kodu ile sonlandı"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Alt işlem, %ld sinyali ile sonlandı"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Alt işlem %ld sinyali ile durduruldu"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Alt işlem anormal bir biçimde sonlandı"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
-msgstr "Alt süreç borusundan okuma başarısızlığı (%s)"
+msgstr "Alt süreç borusundan okunamadı (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
-msgstr "“%s” alt süreci üretme başarısız (%s)"
+msgstr "“%s” alt süreci üretilemedi (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
-msgstr "Çatallama başarısızlığı (%s)"
+msgstr "Çatallamadı (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
-msgstr "“%s” dizinine değiştirme başarısızlığı (%s)"
+msgstr "“%s” dizinine değiştirilemedi (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
-msgstr "“%s” alt süreci çalıştırılırken hata oluştu (%s)"
+msgstr "“%s” alt süreç çalıştırılamadı (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Dosya tanımlayıcıyı yeniden eşlemek için dosya açılamadı (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Alt süreç için dosya tanımlayıcı çoğaltılamadı (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Alt süreç çatallanamadı (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
-msgstr "Alt süreç için dosya tanımlayıcının kapatılması başarısız (%s)"
+msgstr "Alt süreç için dosya tanımlayıcı kapatılamadı (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Alt süreç “%s” çalıştırılırken bilinmeyen hata oluştu"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "Alt süreç borusundan yeterli bilgi okunamadı (%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Geçersiz kaynak FD argümanı"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
-msgstr "Alt süreçten bilgi okuma başarısızlığı"
+msgstr "Alt süreçten bilgi okunamadı"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
-msgstr "Alt süreç yürütme başarısızlığı (%s)"
+msgstr "Alt süreç çalıştırılamadı (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Alt süreç dup() yapılamadı (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Geçersiz program adı: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
-msgstr "%d konumunda argüman vektörü içinde geçersiz dizgi: %s"
+msgstr "%d konumunda argüman vektörü içinde geçersiz dizge: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
-msgstr "Çevre içinde geçersiz dizgi: %s"
+msgstr "Çevre içinde geçersiz dizge: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Geçersiz çalışma dizini: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Yardımcı program (%s) çalıştırılamadı"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -5943,231 +5964,231 @@ msgstr ""
"Alt süreçten bilgi okurken g_io_channel_win32_poll() işleminde beklenmeyen "
"hata"
-#: glib/gstrfuncs.c:3372 glib/gstrfuncs.c:3474
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Boş dizge bir sayı değildir"
-#: glib/gstrfuncs.c:3396
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "“%s” işaretli bir sayı değil"
-#: glib/gstrfuncs.c:3406 glib/gstrfuncs.c:3510
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "“%s” sayısı sınırların dışındadır [%s, %s]"
-#: glib/gstrfuncs.c:3500
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "“%s” işaretsiz bir sayı değil"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "URI’de geçersiz %-kodlama"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "URI’de kural dışı karakter"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "URI’de UTF-8 olmayan karakterler"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "URI’de geçersiz IPv6 adresi ‘%.*s’"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "URI’de kural dışı kodlanmış IP adresi ‘%.*s’"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "URI’de kural dışı uluslararasılaştırılmış ana makine adı ‘%.*s’"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "URI’deki ‘%.*s’ bağlantı noktası ayrıştırılamadı"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "URI’deki ‘%.*s’ bağlantı noktası kapsam dışında"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "‘%s’ URI’si mutlak URI değil"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "‘%s’ URI’sinin ana makine bileşeni yok"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "URI mutlak değil ve temel URI sağlanmamış"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "‘=’ ve parametre değeri eksik"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Bellek ayrılamadı"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Karakter UTF-8 için sınırlarının dışında"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Dönüşüm girdisi içinde geçersiz dizi"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Karakter UTF-16 sınırlarının dışında"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "bayt"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "bit"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6175,7 +6196,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6183,7 +6204,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6192,27 +6213,27 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
msgstr[0] "%s bayt"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s bit"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6223,32 +6244,42 @@ msgstr[0] "%u bayt"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
+
+#, c-format
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "Yerel dosya URI’si “%s”, “#” içeremez"
+
+#~ msgid "backtracking limit reached"
+#~ msgstr "geri takip sınırına ulaşıldı"
+
+#~ msgid "GApplication options"
+#~ msgstr "GApplication seçenekleri"
diff --git a/po/uk.po b/po/uk.po
index c1b4c1382..9397b2b66 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -5,62 +5,62 @@
# Maxim Dziumanenko <dziumanenko@gmail.com>, 2004-2009.
# wanderlust <wanderlust@ukr.net>, 2009.
# Mykola Tkach <Stuartlittle1970@gmail.com>, 2014.
-# Yuri Chornoivan <yurchor@ukr.net>, 2020, 2021, 2022.
+# Yuri Chornoivan <yurchor@ukr.net>, 2020, 2021, 2022, 2023.
msgid ""
msgstr ""
"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-05 19:22+0000\n"
-"PO-Revision-Date: 2022-08-07 19:07+0300\n"
+"POT-Creation-Date: 2023-10-22 23:29+0000\n"
+"PO-Revision-Date: 2023-08-31 22:09+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 20.12.0\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "Підтримки встановлення типової програми ще не передбачено"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr ""
"Підтримки встановлення програми, як останньої використаної для типу, ще не "
"передбачено"
-#: gio/gappinfo.c:808
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "Не вдалося знайти типову програму для типу даних «%s»"
-#: gio/gappinfo.c:868
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "Не вдалося знайти типову програму для схеми адреси «%s»"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "Параметри GApplication"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "Параметри GApplication:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "Показати параметри GApplication"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr ""
"Запустити GApplication у режимі сервісу (використовувати з сервісних файлів "
"D-Bus)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "Перевизначити ідентифікатор програми"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "Замінити запущений екземпляр"
@@ -141,7 +141,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "Ідентифікатор програми у форматі D-Bus (напр.: org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "ФАЙЛ"
@@ -240,11 +240,11 @@ msgstr "неможливо під'єднатися до D-Bus: %s\n"
msgid "error sending %s message to application: %s\n"
msgstr "помилка надсилання повідомлення %s до програми %s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "назву дії слід вказувати після ідентифікатора програми\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -253,25 +253,25 @@ msgstr ""
"некоректна назва дії: «%s»\n"
"Назва дії може складатися лише з літер, цифр і символів «-» і «.»\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "помилка розбору параметра дії: %s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "дії приймають максимум один параметр\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "команда list-actions приймає лише ідентифікатор програми"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "не вдалося знайти desktop-файл для програми %s\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -281,9 +281,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "До %s передано надто велике значення лічильника"
@@ -297,8 +297,8 @@ msgstr "Перехід у базовому потоці не підтримує
msgid "Cannot truncate GBufferedInputStream"
msgstr "Не вдалося урізати GMemoryInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "Потік вже закрито"
@@ -306,7 +306,7 @@ msgstr "Потік вже закрито"
msgid "Truncate not supported on base stream"
msgstr "Урізання не підтримується у базовому потоці"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -318,36 +318,35 @@ msgstr "Неправильний об'єкт, не ініціалізовани
#: gio/gcharsetconverter.c:283 gio/gcharsetconverter.c:311
msgid "Incomplete multibyte sequence in input"
-msgstr ""
-"Неправильна багатобайтова послідовність у перетворюваних вхідних даних"
+msgstr "Неправильна багатобайтова послідовність у перетворюваних вхідних даних"
#: gio/gcharsetconverter.c:317 gio/gcharsetconverter.c:326
msgid "Not enough space in destination"
msgstr "Бракує простору для результату"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "Неправильна послідовність байтів у перетворюваних вхідних даних"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "Помилка під час перетворення: %s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "Ініціалізація з можливістю скасування не підтримується"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "Підтримки перетворення з набору символів «%s» у «%s» не передбачено"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "Не вдалося відкрити модуль перетворення з «%s» у «%s»"
@@ -390,17 +389,17 @@ msgstr "Спуфінг облікових даних неможливий у ц
msgid "Unexpected early end-of-stream"
msgstr "Неочікуваний передчасний кінець потоку"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "Непідтримуваний ключ «%s» у елементі адреси «%s»"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "Беззмістовна комбінація ключ/значення у елементі адреси «%s»"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
@@ -409,7 +408,7 @@ msgstr ""
"Неправильна адреса «%s» (потрібен шлях, каталог, тимчасовий каталог або один "
"з абстрактних ключів)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -480,8 +479,7 @@ msgstr ""
#: gio/gdbusaddress.c:653
#, c-format
-msgid ""
-"Error in address “%s” — the noncefile attribute is missing or malformed"
+msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
msgstr ""
"Помилка в адресі «%s» — атрибут не вказано атрибут noncefile або помилкове "
"форматування атрибута"
@@ -519,8 +517,7 @@ msgstr "Вказана адреса порожня"
#: gio/gdbusaddress.c:1101
#, c-format
msgid "Cannot spawn a message bus when AT_SECURE is set"
-msgstr ""
-"Неможливо породити процес шини повідомлень, якщо встановлено AT_SECURE"
+msgstr "Неможливо породити процес шини повідомлень, якщо встановлено AT_SECURE"
#: gio/gdbusaddress.c:1108
msgid "Cannot spawn a message bus without a machine-id: "
@@ -542,7 +539,7 @@ msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
"Не вдалося визначити адресу сеансової шини (не реалізовано для цієї ОС)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -551,7 +548,7 @@ msgstr ""
"Не вдалося визначити адресу шини зі значення змінної середовища "
"DBUS_STARTER_BUS_TYPE — невідоме значення «%s»"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -559,7 +556,7 @@ msgstr ""
"Не вдалося визначити адресу шини, оскільки значення змінної середовища "
"DBUS_STARTER_BUS_TYPE не встановлено"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "Невідомий тип шини %d"
@@ -580,53 +577,56 @@ msgstr ""
"Перепробувані усі доступні механізми автентифікації (проведено: %s) "
"(доступно: %s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "Неочікувана відсутність вмісту при читанні байта"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "Ідентифікатори користувача для вузла і сервера мають бути однаковими"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "Скасовано через GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "Помилка при отриманні відомостей для каталогу «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
-msgstr ""
-"Помилкові права на каталог «%s». Очікуваний режим — 0700, отримано 0%o"
+msgstr "Помилкові права на каталог «%s». Очікуваний режим — 0700, отримано 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "Сталася помилка при створенні каталогу «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:8996 gio/gfile.c:9086
+#: gio/gfile.c:9170 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "Операція не підтримується"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "Сталася помилка при відкриванні зв'язки ключів «%s» на читання: "
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr ""
"Некоректне форматування у рядку %d у зв'язці ключів у «%s» з вмістом «%s»"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -634,7 +634,7 @@ msgstr ""
"Некоректне форматування першої лексеми у рядку %d у зв'язці ключів у «%s» з "
"вмістом «%s»"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -642,161 +642,171 @@ msgstr ""
"Некоректне форматування другої лексеми у рядку %d у зв'язці ключів у «%s» з "
"вмістом «%s»"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "Не вдалося знайти куки з ідентифікатором %d у зв'язці ключів «%s»"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "Сталася помилка при створенні файла блокування «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "Сталася помилка при вилученні застарілого файла блокування «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr ""
"Сталася помилка при закриванні (від'єднаного) файла блокування «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "Сталася помилка при вилученні файла блокування «%s»: %s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "Сталася помилка при відкриванні зв'язки ключів «%s» для запису: "
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(Також, не вдалося вивільнити блокування «%s»: %s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "З'єднання закрито"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "Час очікування вичерпано"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr "При створенні клієнтського з'єднання виявлено непідтримувані прапорці"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr ""
"Інтерфейс «org.freedesktop.DBus.Properties» для шляху об'єкта %s не знайдено"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "Немає властивості «%s»"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "Властивість «%s» недоступна для читання"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "Властивість «%s» недоступна для запису"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr ""
"Помилка встановлення властивості «%s». Мало бути використано тип «%s», але "
"отримано «%s»"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "Немає інтерфейсу «%s»"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "Немає інтерфейсу «%s» на об'єкті зі шляхом %s"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "Немає методу «%s»"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "Тип повідомлення «%s» не збігається з очікуваним типом «%s»"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Об'єкт інтерфейсу %s вже експортовано як %s"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "Не вдалося отримати властивість %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "Не вдалося встановити значення властивості %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "Метод «%s» повернув тип «%s», але очікувалося «%s»"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "Методу «%s» інтерфейсу «%s» з підписом «%s» не існує"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Піддерево вже експортовано для %s"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "Об'єкта зі шляхом «%s» не існує"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "НЕПРАВИЛЬНИЙ тип"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "Повідомлення METHOD_CALL: немає поля заголовка PATH або MEMBER"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr ""
+"Повідомлення METHOD_CALL: немає поля заголовка PATH або MEMBER або це поле є "
+"некоректним"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "Повідомлення METHOD_RETURN: немає поля заголовка REPLY_SERIAL"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr ""
+"Повідомлення METHOD_RETURN: немає поля заголовка REPLY_SERIAL або це поле є "
+"некоректним"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "Повідомлення ERROR: немає поля заголовка REPLY_SERIAL або ERROR_NAME"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr ""
+"Повідомлення ERROR: немає поля заголовка REPLY_SERIAL або ERROR_NAME або це "
+"поле є некоректним"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "Повідомлення SIGNAL: немає поля заголовка PATH, INTERFACE або MEMBER"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr ""
+"Повідомлення SIGNAL: немає поля заголовка PATH, INTERFACE або MEMBER або це "
+"поле є некоректним"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
@@ -804,7 +814,7 @@ msgstr ""
"Повідомлення SIGNAL: поле заголовка PATH використовує зарезервоване "
"значення /org/freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
@@ -812,7 +822,7 @@ msgstr ""
"Повідомлення SIGNAL: поле заголовка INTERFACE використовує зарезервоване "
"значення org.freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
@@ -820,12 +830,12 @@ msgstr[0] "Потрібно було прочитати %lu байт, але п
msgstr[1] "Потрібно було прочитати %lu байти, але прочитано лише %lu"
msgstr[2] "Потрібно було прочитати %lu байтів, але прочитано лише %lu"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "Мало бути використано байт NUL після рядка «%s», але знайдено байт %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -835,21 +845,21 @@ msgstr ""
"(зміщення %d, довжина рядка %d). Коректний рядок UTF-8 аж до цієї миті був "
"таким: «%s»"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "Рівень вкладеності значення є надто високим"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "Оброблене значення «%s» не є припустимим шляхом до об'єкта D-Bus"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "Оброблене значення «%s» не є припустимим підписом D-Bus"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -865,7 +875,7 @@ msgstr[2] ""
"Виявлено масив довжиною %u байтів. Максимальна довжина дорівнює 2<<26 байт "
"(64 МіБ)."
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -874,23 +884,23 @@ msgstr ""
"Виявлено масив типу «a%c». Очікувалося, що довжина буде кратною до %u "
"байтів, втім, виявлено довжину %u байтів"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "Не можна використовувати порожні структури (кортежі) у D-Bus"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "Оброблене значення «%s» для варіанта не є припустимим підписом D-Bus"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr ""
"Помилка десеріалізації GVariant з типом рядка «%s» з формату D-Bus wire"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -899,29 +909,29 @@ msgstr ""
"Неправильний порядок байтів у значенні. Мало бути 0x6c («l») або 0x42 («B»), "
"але знайдено значення 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr ""
"Неправильний старший номер версії протоколу. Очікувався 1, але знайдено %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr ""
"Виявлено заголовок підпису, але цей заголовок не належить до типу підписів"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr ""
"Знайдено заголовок підпису з підписом «%s», але вміст повідомлення є порожнім"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "Оброблене значення «%s» не є припустимим підписом D-Bus (для вмісту)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
@@ -935,17 +945,17 @@ msgstr[2] ""
"Відсутній заголовок підпису у повідомленні, але тіло повідомлення займає %u "
"байтів"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "Не вдалося виконати десеріалізацію повідомлення:"
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr "Помилка серіалізації GVariant з типом рядка «%s» у формат D-Bus wire"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
@@ -953,16 +963,16 @@ msgstr ""
"Кількість дескрипторів файлів у повідомленні (%d) відрізняється від значення "
"у полі заголовка (%d)"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "Не вдалося серіалізувати повідомлення: "
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "Вміст повідомлення має підпис «%s», але немає заголовка підпису"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
@@ -971,54 +981,54 @@ msgstr ""
"Вміст повідомлення має тип підпису «%s», але значення підпису у полі "
"заголовка дорівнює «%s»"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr ""
"Вміст повідомлення порожній, але значення підпису у полі заголовка дорівнює "
"«(%s)»"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "Повернуто помилку для вмісту типу «%s»"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "Повернена помилка з порожнім тілом"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(Щоб закрити це вікно, уведіть будь-який символ)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "Сеанс dbus не запущений, і автозапуск не виконався"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "Не вдалося отримати профіль апаратури: %s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "Не вдалося завантажити %s або %s: "
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Помилка виклику StartServiceByName для %s: "
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Неочікувана відповідь %d з методу StartServiceByName(«%s»)"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -1028,29 +1038,28 @@ msgstr ""
"власника і проксі було побудовано із прапорцем "
"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "Підтримки абстрактних просторів назв не передбачено"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "Не вдалося вказати nonce-файл при створенні сервера"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "Сталася помилка при запису до nonce-файла у «%s»: %s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "Рядок «%s» не є припустимим GUID D-Bus"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
-msgstr ""
-"Неможливо очікувати на дані на каналі передавання «%s», якого не існує"
+msgstr "Неможливо очікувати на дані на каналі передавання «%s», якого не існує"
#: gio/gdbus-tool.c:113
#, c-format
@@ -1075,14 +1084,14 @@ msgstr ""
"\n"
"Для отримання довідки за командою використовуйте «%s КОМАНДА --help».\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "Помилка: %s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Сталася помилка під час обробки інтроспекції XML: %s\n"
@@ -1092,50 +1101,49 @@ msgstr "Сталася помилка під час обробки інтрос
msgid "Error: %s is not a valid name\n"
msgstr "Помилка: %s не є припустимою назвою\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Помилка: %s не є припустимим об'єктним шляхом\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "Під'єднатися до системної шини"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "Під'єднатися до користувацької шини"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "Під'єднатися до вказаної адреси D-Bus"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "Параметри кінцевої точки з'єднання:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "Параметри, що визначають кінцеву точку з'єднання"
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "Кінцева точка з'єднання не вказана"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "Вказано декілька кінцевих точок з'єднання"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
-msgstr ""
-"Попередження: згідно з даними інтроспекції, інтерфейсу «%s» не існує\n"
+msgstr "Попередження: згідно з даними інтроспекції, інтерфейсу «%s» не існує\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
@@ -1144,167 +1152,167 @@ msgstr ""
"Попередження: згідно з даними інтроспекції, методу «%s» в інтерфейсі «%s» не "
"існує\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "Необов'язковий отримувач сигналу (унікальна назва)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "Об'єктний шлях, для випуску сигналу"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "Назва сигналу і інтерфейсу"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "Послати сигнал."
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "Сталася помилка при з'єднанні: %s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "Помилка: %s не є припустимою унікальною назвою шини.\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "Помилка: не вказано об'єктний шлях\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "Помилка: не вказано назви сигналу\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "Помилка: некоректна назва сигналу «%s»\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "Помилка: %s не є припустимою назвою інтерфейсу\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "Помилка: %s не є припустимою назвою члену\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "Сталася помилка під час обробки параметра %d: %s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "Сталася помилка при скиданні під'єднання: %s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "Назва призначення, для якого викликається метод"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "Об'єктний шлях, для якого викликається метод"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "Назва методу або інтерфейсу"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "Час очікування у секундах"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "Дозволити інтерактивне уповноваження"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "Викликає метод на віддаленому об'єкті."
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "Помилка: не вказано призначення\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "Помилка: %s не є припустимою назвою шини\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "Помилка: не вказано назви методу\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "Помилка: некоректна назва методу «%s»\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "Сталася помилка під час обробки параметра %d типу «%s»: %s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "Помилка під час додавання елемента керування %d: %s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "Назва призначення для інтроспекції"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "Об'єктний шлях для інтроспекції"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "Надрукувати XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Інтроспекція нащадка"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "Лише властивості друку"
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Виконати інтроспекцію віддаленого об'єкту."
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "Назва призначення для спостерігання"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "Об'єктний шлях для спостерігання"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "Спостерігати за віддаленим об'єктом."
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr ""
"Помилка: спостереження за з'єднанням, яке не належить до типу message-bus, є "
"неможливим\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr ""
"Служба, яку слід активувати, перш ніж очікувати на іншу (добре відома назва)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
@@ -1312,68 +1320,73 @@ msgstr ""
"Час очікування до виходу із станом помилки (у секундах); 0 — не очікувати "
"(типова поведінка)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[ПАРАМЕТР…] НАЗВА-ШИНИ"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "Очікувати на появу назви шини."
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "Помилка: має бути вказано службу для активації.\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "Помилка: має бути вказано службу для очікування.\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "Помилка: забагато аргументів.\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "Помилка: %s не є припустимим добре відомою назвою шини.\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "Не уповноважено змінювати параметри діагностики"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5113
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "Без назви"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "У desktop-файлі не визначено поля Exec"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "Неможливо знайти термінал, що потрібен програмі"
-#: gio/gdesktopappinfo.c:3631
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "Програми «%s» не знайдено у каталогах $PATH"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "Не вдалося створити теку параметрів програми %s: %s"
-#: gio/gdesktopappinfo.c:3635
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "Не вдалося створити теку параметрів MIME %s: %s"
-#: gio/gdesktopappinfo.c:3877 gio/gdesktopappinfo.c:3901
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "У інформації про програму не вказано ідентифікатор"
-#: gio/gdesktopappinfo.c:4137
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "Не вдалося створити для користувача desktop-файл %s"
-#: gio/gdesktopappinfo.c:4273
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "Власне визначення %s"
@@ -1442,79 +1455,84 @@ msgstr "Очікується GEmblem для GEmblemedIcon"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "Вкладена точка монтування не існує"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "Не можна копіювати із заміною каталогу"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "Не можна копіювати каталог поверх іншого каталогу"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "Цільовий файл існує"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "Не вдалося скопіювати каталог рекурсивно"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "З'єднання не підтримується"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "Підтримки копіювання діапазону файлів не передбачено"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "Помилка при розрізанні файла: %s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "З'єднання не підтримується"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "Копіювання (reflink/clone) між точками монтування не підтримується"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "Копіювання (reflink/clone) не підтримується або некоректне"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr ""
"Підтримки копіювання (reflink/clone) не передбачено або копіювання не працює"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "Не вдалося скопіювати спеціальний файл"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "Неправильне значення символьного посилання"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2424
msgid "Symbolic links not supported"
msgstr "Символічні посилання не підтримуються"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "Смітник не підтримується"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "Назви файлів не можуть містити символу «%c»"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7151 gio/gfile.c:7277
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "Не вдалося створити тимчасовий каталог для шаблону «%s»: %s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7595 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "для тому не реалізовано операцію монтування"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7709 gio/gfile.c:7786
msgid "No application is registered as handling this file"
msgstr "Програм для обробки таких файлів не зареєстровано"
@@ -1523,11 +1541,11 @@ msgid "Enumerator is closed"
msgstr "Лічильник закрито"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "Лічильник файлів має невиконані операції"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "Лічильник файлів вже закритий"
@@ -1540,27 +1558,27 @@ msgstr "Підтримки версії %d кодування GFileIcon не п
msgid "Malformed input data for GFileIcon"
msgstr "Неправильні вхідні дані GFileIcon"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "Для потоку не передбачено підтримки query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "Операція встановлення позиції не підтримується для потоків"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "Операція урізання не підтримується для вхідного потоку"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "Операція урізання не підтримується для потоку"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "Неправильна назва вузла"
@@ -1593,37 +1611,37 @@ msgstr "Відповідь HTTP-проксі є надто великою"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "Проксі-сервер HTTP несподівано розірвав з'єднання."
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Неправильна кількість лексем (%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "Відсутній тип назви класу %s"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Для типу %s не реалізовано інтерфейс GIcon"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "Тип %s не класифікований"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "Неправильний номер версії: %s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Для типу %s не реалізовано from_tokens() у інтерфейсі GIcon"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "Не вдалося обробити вказану версію кодування піктограми"
@@ -1664,7 +1682,7 @@ msgstr "Для потоку вхідних даних не реалізован
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "Для потоку є незавершена операція"
@@ -1770,12 +1788,12 @@ msgid "Error writing to stdout"
msgstr "Помилка при записі до стандартного виведення (stdout)"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "МІСЦЕ"
@@ -1793,8 +1811,8 @@ msgstr ""
"GIO замість локальних файлів. Наприклад, ви можете вказати як місце\n"
"щось таке: smb://сервер/ресурс/файл.txt."
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "Не вказано місць"
@@ -1890,57 +1908,64 @@ msgstr "Не переходити за символічними посиланн
msgid "attributes:\n"
msgstr "атрибути:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "показана назва: %s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "редагована назва: %s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "назва: %s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "тип: %s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "розмір: "
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "прихований\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "адреса: %s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "локальний шлях: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "точка монтування unix: %s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "Придатні до встановлення атрибути:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "Придатні до запису простори назв атрибутів:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "Показати відомості щодо місць."
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2009,11 +2034,11 @@ msgstr "Вивести показані назви"
msgid "Print full URIs"
msgstr "Вивести повні адреси"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "Вивести список вмісту місць."
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2212,19 +2237,19 @@ msgstr "Змонтувати прихований том TCRYPT"
msgid "Mount a TCRYPT system volume"
msgstr "Змонтувати системний том TCRYPT"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "Анонімний доступ заборонено"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "Немає диска для файла диска"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "Немає тому із вказаним ідентифікатором"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "Змонтувати або демонтувати місця."
@@ -2345,7 +2370,6 @@ msgid "TYPE"
msgstr "ТИП"
#: gio/gio-tool-set.c:38
-#| msgid "Set a file attribute"
msgid "Unset given attribute"
msgstr "Скасувати встановлення вказаного атрибуту"
@@ -2429,11 +2453,11 @@ msgid "Follow symbolic links, mounts and shortcuts"
msgstr ""
"Переходити за символічними посиланнями, до змонтованих тек та за скороченнями"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "Вивести вміст каталогів у форматі ієрархії."
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Елемент <%s> не може бути всередині <%s>"
@@ -2490,7 +2514,7 @@ msgstr "Помилка при стисненні файла %s"
msgid "text may not appear inside <%s>"
msgstr "текст не може бути всередині <%s>"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "Вивести дані щодо версії програми і завершити роботу"
@@ -2506,8 +2530,8 @@ msgstr ""
"Каталоги для завантаження файлів, на які посилається ФАЙЛ (типово поточний "
"каталог)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "КАТАЛОГ"
@@ -2567,7 +2591,7 @@ msgid "The target C compiler (default: the CC environment variable)"
msgstr ""
"Компілятор C призначення (типове значення: вміст змінної середовища CC)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2577,123 +2601,123 @@ msgstr ""
"Файли специфікації ресурсів мають розширення .gresource.xml,\n"
"а файл ресурсу має розширення .gresource."
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "Вам слід вказати точно одну назву файла\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "псевдонім має складатися принаймні з 2 символів"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "Некоректне значення символічного посилання"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> вже вказано"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' вже вказано"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "у значеннях прапорців має бути встановлено не більше одного біта"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> має містити принаймні один елемент <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> не міститься у вказаному діапазоні"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> не є коректним членом вказаного нумерованого типу"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> містить рядок, якого немає у вказаному типі прапорців"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> містить рядок, якого немає у <choices>"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "<range/> для цього ключа вже вказано"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "<range> не можна використовувати для ключів типу «%s»"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "вказане мінімальне значення <range> перевищує максимальне"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "непідтримувана категорія l10n: %s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "надіслано запит щодо l10n, але не вказано домен gettext"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "вказано контекст перекладу для значення без вмикання l10n"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "Не вдалося обробити значення <default> типу «%s»: "
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr ""
"<choices> не можна вказувати для ключів, які позначено як такі, що мають "
"нумерований тип"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "<choices> для цього ключа вже вказано"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "<choices> не можна використовувати для ключів типу «%s»"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> вже задано"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> має містити принаймні один елемент <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "<aliases> для цього ключа вже вказано"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
@@ -2701,49 +2725,48 @@ msgstr ""
"<aliases> можна вказувати лише для ключів із нумерованими типами або типами "
"прапорців чи після <choices>"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
"type"
msgstr "Вказано <alias value='%s'/>, коли «%s» вже є членом нумерованого типу"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr "Вказано <alias value='%s'/>, коли вже вказано <choice value='%s'/>"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> вже вказано"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
-msgstr ""
-"призначення альтернативної назви «%s» не належить до нумерованого типу"
+msgstr "призначення альтернативної назви «%s» не належить до нумерованого типу"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "призначення альтернативи «%s» немає у <choices>"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> має містити принаймні один елемент <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "Не можна використовувати порожні назви"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "Некоректна назва «%s»: назви мають починатися з малої літери"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2752,37 +2775,36 @@ msgstr ""
"Некоректна назва «%s»: некоректний символ «%c». Можна використовувати лише "
"малі літери, числа і дефіс («-»)."
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
-msgstr ""
-"Некоректна назва «%s»: не можна вказувати два дефіси одночасно («--»)."
+msgstr "Некоректна назва «%s»: не можна вказувати два дефіси одночасно («--»)."
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "Некоректна назва «%s»: останній символ не може бути дефісом («-»)."
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "Некоректна назва «%s»: довжина має бути не більшою за 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> вже вказано"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "Не вдалося додати ключі до схеми «list-of»"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> вже вказано"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2791,63 +2813,63 @@ msgstr ""
"<key name='%s'> відтінює <key name='%s'> у <schema id='%s'>; для змінювання "
"значення використовуйте <override>"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
"to <key>"
msgstr "Як атрибут <key> можна вказати лише «type», «enum» або «flags»"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> не визначено (поки)."
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "Некоректний рядок типу GVariant «%s»"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "Вказано <override>, але схема нічого не розширює"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "Немає <key name='%s'> для перевизначення"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> вже вказано"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> вже вказано"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> розширює схему, якої ще не існує — «%s»"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> є списком схеми, якої ще не існує — «%s»"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "Не може бути списком схеми зі шляхом"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "Не вдалося розширити схему шляхом"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2855,7 +2877,7 @@ msgstr ""
"<schema id='%s'> є переліком, що розширює <schema id='%s'>, який не є "
"переліком"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2864,19 +2886,19 @@ msgstr ""
"<schema id='%s' list-of='%s'> розширює <schema id='%s' list-of='%s'>, але "
"«%s» не розширює «%s»"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr ""
"Якщо вказано шлях, його запис має починатися і закінчуватися символом "
"похилої риски"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "Шлях у переліку має завершуватися на «:/»"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2885,49 +2907,49 @@ msgstr ""
"Попередження: схема «%s» має шлях «%s». Шляхи, що починаються з «/apps/», «/"
"desktop/» та «/system/» вважаються застарілими."
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> вже вказано"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "Можна використовувати лише один елемент <%s> всередині <%s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "Елемент <%s> не може бути самим горішнім"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "Потрібен елемент <default> у <key>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "Текст може не показуватись усередині «%s»"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "Попередження: невизначене посилання на <schema id='%s'/>"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "Було вказано параметр --strict; перериваємо обробку."
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "Увесь вміст файла було проігноровано."
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "Ігноруємо цей файл."
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
@@ -2936,7 +2958,7 @@ msgstr ""
"Ключа «%s» у схемі «%s» немає, хоч вказаний у файлі замін «%s»; ігноруємо "
"перевизначення для цього ключа."
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2945,7 +2967,7 @@ msgstr ""
"Немає ключа «%s» у схемі «%s», яку вказано у файлі замін «%s», а вказано "
"параметр --strict — перериваємо обробку."
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2955,7 +2977,7 @@ msgstr ""
"локалізованого ключа «%s» у схемі «%s» (файл замін «%s»); ігноруємо заміну "
"для цього ключа."
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2964,7 +2986,7 @@ msgstr ""
"Не вдалося надати заміни для локалізованого ключа «%s» у схемі «%s» (файл "
"заміни «%s»), а було задано --strict — перериваємо обробку."
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2973,7 +2995,7 @@ msgstr ""
"Помилка під час обробки ключа «%s» у схемі «%s», яку визначено у файлі замін "
"«%s»: %s. Ігноруємо заміну для цього ключа."
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2982,7 +3004,7 @@ msgstr ""
"Помилка обробки ключа «%s» у схемі «%s», яку визначено у файлі замін «%s»: "
"%s. Було задано --strict — перериваємо обробку."
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2991,7 +3013,7 @@ msgstr ""
"Заміна ключа «%s» у схемі «%s» відповідно до файла замін «%s» не належить до "
"вказаного у схемі діапазону — ігноруємо перевизначення цього ключа."
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -3000,7 +3022,7 @@ msgstr ""
"Заміна ключа «%s» у схемі «%s» відповідно до файла замін «%s» не належить до "
"вказаного у схемі діапазону, а було задано --strict — перериваємо обробку."
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3009,7 +3031,7 @@ msgstr ""
"Заміна ключа «%s» у схемі «%s» відповідно до файла замін «%s» не належить "
"до списку припустимих значень; ігноруємо перевизначення для цього ключа."
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -3018,23 +3040,23 @@ msgstr ""
"Заміна ключа «%s» у схемі «%s» відповідно до файла замін «%s» не належить до "
"списку коректних варіантів, а задано параметр --strict — перериваємо обробку."
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "Місце зберігання файла gschemas.compiled"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "Зупиняти роботу при виникненні помилок у схемах"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "Не записувати файл gschema.compiled"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "Не встановлювати обмеження на назву ключа"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -3044,24 +3066,24 @@ msgstr ""
"Файли схеми потрібні для розширення .gschema.xml,\n"
"а файл кешу зветься gschemas.compiled."
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "Вам слід вказати точно одну назву каталогу"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "Не знайдено файлів схем: нічого не робимо."
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "Не знайдено файлів схеми: вилучено наявний файл виведених даних."
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "Некоректна назва файла %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "Помилка при отриманні відомостей щодо файлової системи для %s: %s"
@@ -3070,263 +3092,263 @@ msgstr "Помилка при отриманні відомостей щодо
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "Вкладена точка монтування для файла %s не існує"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "Не можна перейменовувати кореневий каталог"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "Помилка при перейменуванні файла %s: %s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "Не вдалося перейменувати файл, файл із також назвою вже існує"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "Некоректна назва файла"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "Помилка при відкритті файла «%s»: %s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "Помилка під час спроби вилучити файл %s: %s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "Помилка під час спроби надіслати файл %s до смітника: %s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "Помилка при створенні каталогу смітника %s: %s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "Не вдалося знайти каталог верхнього рівня для смітника %s"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr ""
"Підтримки надсилання до смітника на внутрішніх точках монтування системи не "
"передбачено"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "Не вдалося знайти або створити каталог смітника %s для викидання %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr ""
"Не вдалося створити файл відомостей щодо надсилання до смітника для %s: %s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "Не вдалося надіслати файл %s до смітника за межами файлової системи"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "Не вдалося перемістити файл до смітника %s: %s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "Не вдалося перемістити файл до смітника %s"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "Сталася помилка при створенні каталогу «%s»: %s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Файлова система не підтримує символічні посилання"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "Помилка при створенні символічного посилання %s: %s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "Помилка при переміщенні файла %s: %s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "Не вдалося перемістити каталог поверх каталогу"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "Помилка при створенні файла резервної копії"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "Помилка при зчитуванні файла призначення: %s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "Переміщення між різними точками монтування не підтримується"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "Не вдалося визначити використання диска %s: %s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "Значення атрибута не може бути NULL"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "Некоректний тип атрибута (очікувався рядок або некоректне значення)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "Неправильна назва розширеного атрибута"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "Помилка при встановленні розширеного атрибута «%s»: %s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (неправильне кодування)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "Помилка при отриманні інформації про файл «%s»: %s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "Помилка при отриманні інформації про файловий дескриптор: %s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "Неправильний тип атрибута (очікувався uint32)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "Неправильний тип атрибута (очікувався uint64)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "Неправильний тип атрибута (очікувався рядок байтів)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "Помилка при встановленні прав доступу на символічне посилання"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "Помилка встановлення прав доступу: %s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "Помилка встановлення власник: %s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "символьне посилання не може мати значення NULL"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "Помилка при встановленні символічного посилання: %s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"помилка при встановленні символічного посилання: файл не є символічним "
"посиланням"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "Зайві наносекунди %d у часовій позначці UNIX %lld є від'ємними"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr ""
"Зайві наносекунди %d у часовій позначці UNIX %lld досягли значення у одну "
"секунду"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "Часова позначка UNIX %lld не вкладається у 64 біти"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr ""
"Часова позначка UNIX %lld лежить поза діапазоном, підтримку якого "
"передбачено у Windows"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "Назву файла «%s» неможливо перетворити на назву у кодуванні UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "Не вдалося відкрити файл «%s»: помилка Windows %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "Помилка при встановленні часу зміни або доступу для файла «%s»: %lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2970
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Помилка при встановленні часу зміни або доступу: %s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2993
msgid "SELinux context must be non-NULL"
msgstr "Контекст SELinux не може значення NULL"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:3000
msgid "SELinux is not enabled on this system"
msgstr "SELinux не увімкнено у цій системі"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:3010
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Помилка при встановленні контексту SELinux: %s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3107
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Підтримки встановлення атрибута %s не передбачено"
@@ -3373,13 +3395,13 @@ msgstr "Помилка при створенні резервної копії:
msgid "Error renaming temporary file: %s"
msgstr "Помилка при перейменуванні тимчасового файла: %s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "Помилка при обрізанні файла: %s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "Помилка при відкритті файла «%s»: %s"
@@ -3396,7 +3418,7 @@ msgstr "Цільовий файл не є звичайним файлом"
msgid "The file was externally modified"
msgstr "Файл був змінений іншою програмою"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "Помилка при видаленні старого файла: %s"
@@ -3532,42 +3554,42 @@ msgstr "Версія NetworkManager є надто старою"
msgid "Output stream doesn’t implement write"
msgstr "У потоці виводу не реалізовано операції запису"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "Сума векторів, яку передано до %s, є надто великою"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "Вхідний потік вже закритий"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "Невказана помилка при пошуку проксі"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "Помилка перетворення назви на адресу «%s»: %s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s не реалізовано"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "Некоректний домен"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "Ресурсу у «%s» не існує"
@@ -3577,16 +3599,16 @@ msgstr "Ресурсу у «%s» не існує"
msgid "The resource at “%s” failed to decompress"
msgstr "Не вдалося розпакувати ресурс з «%s»"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "Неможливо перейменувати файли ресурсів"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "Ресурс у «%s» не є каталогом"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "У потоці вхідних даних не передбачено позиціювання"
@@ -3953,7 +3975,8 @@ msgstr "Неправильний сокет, помилка ініціаліза
msgid "Socket is already closed"
msgstr "Сокет вже закритий"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1445
msgid "Socket I/O timed out"
msgstr "Перевищено час очікування вводу-виводу сокета"
@@ -3962,166 +3985,166 @@ msgstr "Перевищено час очікування вводу-виводу
msgid "creating GSocket from fd: %s"
msgstr "створення GSocket з fd: %s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "Не вдалося створити сокет: %s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "Вказано невідому родину"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "Вказано невідомий протокол"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr ""
"Неможливо скористатися операціями із датаграмами на сокеті без датаграм."
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr ""
"Неможливо скористатися операціями із датаграмами на сокеті із встановленим "
"часом очікування."
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "не вдається отримати локальну адресу: %s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "не вдається отримати віддалену адресу: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "не вдається прослухати: %s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "Помилка прив'язування до адреси %s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "Помилка при вступі до мультикастової групи: %s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "Помилка при виході з мультикастової групи: %s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "Відсутня підтримка мультикаста по джерелу"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "Непідтримуване сімейство сокетів"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "source-specific не є адресою IPv4"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "Назва інтерфейсу є надто довгою"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "Не знайдено інтерфейсу: %s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr ""
"Підтримки специфічної для джерела неспрямованої трансляції для IPv4 не "
"передбачено"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr ""
"Підтримки специфічної для джерела неспрямованої трансляції для IPv6 не "
"передбачено"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "Помилка при прийнятті з'єднання: %s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "З'єднання триває"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "Не вдалося отримати помилку очікування: "
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "Помилка при отриманні даних: %s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "Помилка при надсиланні даних: %s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "Не вдалося вимкнути сокет: %s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "Помилка при закриванні сокету: %s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Очікується умова сокету: %s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "Не вдалося надіслати повідомлення: %s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "Вектори повідомлення є надто великими"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "Помилка при надсиланні повідомлення: %s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "GSocketControlMessage не підтримується у windows"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "Помилка при отриманні повідомлення: %s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "Не вдалося прочитати повноваження сокета: %s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "Функція g_socket_get_credentials не реалізована у цій ОС"
@@ -4247,7 +4270,7 @@ msgstr "Проксі SOCKSv5 не підтримує пропонований т
msgid "Unknown SOCKSv5 proxy error."
msgstr "Невідома помилка проксі SOCKSv5."
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "Помилка створення каналу для обміну з дочірнім процесом (%s)"
@@ -4262,48 +4285,48 @@ msgstr "На цій платформі підтримки конвеєрів н
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "Не вдалося обробити версію %d кодування GThemedIcon"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "Не знайдено коректних адрес"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "Помилка зворотного визначення назви за адресою «%s»: %s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr ""
"Помилка під час спроби обробити запис DNS %s: помилкове форматування пакета "
"DNS"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "Немає запису DNS з запитуваним типом «%s»"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "Тимчасово неможливо розв'язати «%s»"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "Помилка при розв'язанні імені «%s»"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "Помилкове форматування пакета DNS"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "Не вдалося обробити відповідь DNS для «%s»: "
@@ -4364,7 +4387,7 @@ msgid "Sending FD is not supported"
msgstr "Підтримки надсилання дескриптора файла не передбачено"
# c-format
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
@@ -4372,11 +4395,11 @@ msgstr[0] "Очікується 1 контрольне повідомлення,
msgstr[1] "Очікується 1 контрольне повідомлення, отримано %d"
msgstr[2] "Очікується 1 контрольне повідомлення, отримано %d"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "Неочікуваний тип допоміжних даних"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
@@ -4384,41 +4407,41 @@ msgstr[0] "Очікується один файловий дескриптор
msgstr[1] "Очікується один файловий дескриптор але отримано %d\n"
msgstr[2] "Очікується один файловий дескриптор але отримано %d\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "Отримано неправильний fd"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "Підтримки отримання дескриптора файла не передбачено"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "Сталася помилка при відправленні мандату:"
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "Сталася помилка при перевірці вмикання SO_PASSCRED для сокета: %s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "Сталася помилка при вмиканні SO_PASSCRED: %s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
"Очікувалося прочитати один байт ідентифікаційної інформації (credentials), "
"але не прочитано жодного байту"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "Контрольне повідомлення не очікувалося, але отримано %d"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Сталася помилка при вимкненні SO_PASSCRED: %s"
@@ -4434,7 +4457,7 @@ msgstr "Помилка при читанні з файлового дескри
msgid "Error closing file descriptor: %s"
msgstr "Помилка при закритті файлового дескриптора: %s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "Корінь файлової системи"
@@ -4519,129 +4542,124 @@ msgstr "Запуск служби dbus"
msgid "Wrong args\n"
msgstr "Неправильні параметри\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "Неочікуваний атрибут «%s» для елемента «%s»"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "Атрибута «%s» для елемента «%s» не існує"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "Неочікуваний теґ «%s», мало бути використано теґ «%s»"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "Неочікуваний теґ «%s» у «%s»"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "Некоректний запис дати і часу «%s» у файлі закладок"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "Не вдалося знайти правильний файл закладок у каталогах даних"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "Файл закладок для адреси «%s» вже існує"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "Не знайдено закладки для адреси «%s»"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "Не визначено тип MIME у закладці для адреси «%s»"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "Не вказано приватну ознаку у закладці для адреси «%s»"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "Не встановлено групи у закладці для адреси «%s»"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "Не зареєстровано програму з назвою «%s» для закладки «%s»"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "Помилка розгортання рядка виконуваного файла «%s» для адреси «%s»"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "Невідтворюваний символ у вхідних даних перетворення"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "Незавершена символьна послідовність на кінці вводу"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "Неможливо коректно перетворити символ «%s» у символ з набору «%s»"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "Вбудований нульовий байт у вхідних даних перетворення"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "Вбудований нульовий байт у результатах перетворення"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "Адреса «%s» не є абсолютною адресою із використанням схеми «file»"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "Адреса «%s» локального файла не може містити символ «#»"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "Некоректна адреса «%s»"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "Неправильна назва вузла в URI «%s»"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "Ідентифікатор URI «%s» містить неправильно екранований символ"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "Шлях «%s» не є абсолютним"
@@ -5064,7 +5082,7 @@ msgstr "PM"
msgid "Error opening directory “%s”: %s"
msgstr "Помилка відкривання каталогу «%s»: %s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
@@ -5072,72 +5090,72 @@ msgstr[0] "Не вдалося виділити %lu байт для зчитув
msgstr[1] "Не вдалося виділити %lu байтів для зчитування файла «%s»"
msgstr[2] "Не вдалося виділити %lu байтів для зчитування файла «%s»"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "Помилка при читанні файла «%s»: %s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "Файл «%s» занадто великий"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "Помилка зчитування з файла «%s»: %s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1502
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "Не вдалося відкрити файл «%s»: %s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "Помилка отримання атрибутів файла «%s»: помилка fstat(): %s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "Помилка відкривання файла «%s»: помилка fdopen(): %s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "Помилка перейменування файла «%s» на «%s»: помилка g_rename(): %s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1209
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "Не вдалося записати файл «%s»: збій у функції write(): %s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1230
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "Помилка запису у файл «%s»: помилка fsync(): %s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1391 glib/gfileutils.c:1808
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "Помилка створення файла «%s»: %s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1436
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "Не вдалося вилучити наявний файл «%s»: помилка g_unlink(): %s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1773
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "Шаблон «%s» неправильний, бо не може містити «%s»"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1786
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "Шаблон «%s» не містить XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2380 glib/gfileutils.c:2409
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "Помилка читання символічного посилання «%s»: %s"
@@ -5167,15 +5185,15 @@ msgstr ""
"Не можна виконувати безпосереднє зчитування у функції "
"g_io_channel_read_to_end"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "Не вдалося знайти правильний ключовий файл у каталогах ключів"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "Не є звичайним файлом"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -5183,52 +5201,52 @@ msgstr ""
"Файл ключа містить рядок «%s», який не є парою ключ-значення, групою або "
"коментарем"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "Неправильна назва групи: %s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "Ключовий файл не починається з групи"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "Неправильна назва ключа: %.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "Файл ключа містить кодування, підтримки якого не передбачено — «%s»"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "Файл ключа не містить групи «%s»"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "Файл ключа не містить ключ «%s» у групі «%s»"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr ""
"Файл ключа містить ключ «%s» зі значенням «%s», кодування якого не є "
"кодуванням UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr ""
"Ключ «%s» з файла ключів містить значення, яке не вдається проаналізувати."
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -5237,82 +5255,82 @@ msgstr ""
"Файл ключів містить ключ «%s» у групі «%s», значення якого не вдалося "
"розпізнати."
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "Значення ключа «%s» у групі «%s» дорівнює «%s», але очікувалося «%s»"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4357
msgid "Key file contains escape character at end of line"
msgstr "Ключовий файл містить escape-символ наприкінці рядка"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4394
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "Файл ключа містить неправильну послідовність екранування «%s»"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4545
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "Не вдалося розібрати значення «%s» як число."
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4559
#, c-format
msgid "Integer value “%s” out of range"
msgstr "Числове ціле значення «%s» поза межами діапазону"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4592
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "Значення «%s» не вдалося перетворити на число з рухомою комою."
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4631
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "Не вдалося обробити значення «%s» як логічне значення."
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr ""
"Не вдалося отримати атрибути файла «%s%s%s%s»: збій у функції fstat(): %s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "Не вдалося показати файл «%s%s%s%s»: збій у функції mmap(): %s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "Помилка відкривання файла «%s»: помилка open(): %s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "Помилка в рядку %d на символі %d: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "Некоректний текст у кодуванні UTF-8 у назві — не є коректним «%s»"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "«%s» не є коректною назвою"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "«%s» не є коректною назвою: «%c»"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "Помилка в рядку %d: %s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5321,7 +5339,7 @@ msgstr ""
"Помилка аналізу виразу «%-.*s», де має бути число у символічному посиланні "
"(наприклад, &#234). Можливо, число є надто великим."
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5330,24 +5348,24 @@ msgstr ""
"Посилання на символ не закінчується крапкою з комою, схоже символ \"&\" було "
"використано не для позначення початку предиката – екрануйте його як &amp;."
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "Посилання на символ «%-.*s» не визначає жоден дозволений символ"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr ""
"Виявлено порожній предикат «&;»; допустимими предикатами є: &amp; &quot; "
"&lt; &gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "Назва предиката «%-.*s» є невідомою програмі"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5355,11 +5373,11 @@ msgstr ""
"Предикат не закінчується крапкою з комою; очевидно, що символ & було "
"використано не для позначення початку предиката – екрануйте його як &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "Документ має починатися з елемента (наприклад, <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5368,7 +5386,7 @@ msgstr ""
"Символ «%s» не можна вживати після символу «<», він не може починати назву "
"елемента"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5377,12 +5395,12 @@ msgstr ""
"Зайвий символ «%s», очікувався символ «>» для закриття теґу порожнього "
"елементу «%s»"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "Забагато атрибутів у елементі «%s»"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5390,7 +5408,7 @@ msgstr ""
"Зайвий символ «%s», очікувався символ «=» після назви ознаки «%s» елемента "
"«%s»"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5401,7 +5419,7 @@ msgstr ""
"теґу елемента «%s», чи додаткова ознака; можливо, було використано "
"неприпустимий символ в назві ознаки"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5410,7 +5428,7 @@ msgstr ""
"Зайвий символ «%s», мало бути вказано початкові лапки після знаку рівності "
"на присвоєнні значення ознаці «%s» елемента «%s»"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5419,7 +5437,7 @@ msgstr ""
"Символ «%s» неприпустимий після символів «</»; символ «%s» не може починати "
"назву елемента"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
@@ -5428,26 +5446,25 @@ msgstr ""
"Символ «%s» неприпустимий на закритті назви елемента «%s»; припустимим "
"символом є «>»"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "Було закрито не відкритий елемент «%s»"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "Було закрито елемент «%s», але зараз відрито елемент «%s»"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "Документ порожній чи містить лише пропуски"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
-msgstr ""
-"Документ раптово закінчився відразу після початкової кутової дужки «<»"
+msgstr "Документ раптово закінчився відразу після початкової кутової дужки «<»"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5456,7 +5473,7 @@ msgstr ""
"Документ раптово закінчився, коли деякі елементи ще були відкритими – «%s» "
"був останнім відкритим елементом"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5465,19 +5482,19 @@ msgstr ""
"Документ раптово закінчився, очікувалась кінцева кутова дужка для закриття "
"теґу <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "Документ раптово закінчився посеред назви елемента"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "Документ раптово закінчився посеред назви ознаки"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "Документ раптово закінчився у середині теґу, що відкривав елемент"
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
@@ -5485,24 +5502,23 @@ msgstr ""
"Документ раптово закінчився після знака рівності, що йшов за назвою ознаки; "
"значення ознаки не вказано"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "Документ раптово закінчився посеред значення ознаки"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "Документ раптово закінчився у середині теґу, що закривав елемент «%s»"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr "Документ раптово закінчився у середині теґу для невідкритого елемента"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
-msgstr ""
-"Документ раптово закінчився у середині коментарю чи інструкції обробки"
+msgstr "Документ раптово закінчився у середині коментарю чи інструкції обробки"
#: glib/goption.c:875
msgid "[OPTION…]"
@@ -5563,189 +5579,184 @@ msgstr "Відсутній аргумент %s"
msgid "Unknown option %s"
msgstr "Невідомий параметр %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "пошкоджений об'єкт"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "недостатньо пам'яті"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "закінчилося обмеження зворотного ходу"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "внутрішня помилка"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr ""
"шаблон містить елементи, які не підтримуються при пошуку часткової "
"відповідності"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr ""
"умови у вигляді зворотних посилань при пошуку часткової відповідності не "
"підтримуються"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "досягнуто межу рекурсії"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "неправильне зміщення"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "зациклювання рекурсії"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
-msgstr ""
-"надійшов запит щодо режиму відповідності, який не було зібрано для JIT"
+msgstr "надійшов запит щодо режиму відповідності, який не було зібрано для JIT"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "невідома помилка"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ наприкінці шаблону"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "\\c наприкінці шаблону"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "нерозпізнаний символ слідує за \\"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "неправильний порядок чисел у специфікаторі {}"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "надто велике число у специфікаторі {}"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "відсутній завершальний символ ] для класу символів"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "Неправильна escape-послідовність у класі символів"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "неправильний порядок у діапазоні у класі символів"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "немає що повторювати"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "нерозпізнаний символ після (? або (?-"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "назви класів у стилі POSIX підтримуються лише у межах класі"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "елементи порівняння у стилі POSIX не підтримуються"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "відсутній завершальний символ )"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "посилання на вкладений шаблон, якого не існує"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "відсутня дужка ) після коментаря"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "задовгий регулярний вираз"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "неправильне число або назва після (?("
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "твердження lookbehind має не фіксовану довжину"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "група умови містить більше ніж дві гілки"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "після (?( очікується твердження"
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "номерне посилання не може бути нулем"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "невідома POSIX-назва класу"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "значення символу у послідовності \\x{...} надто велике"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C неприпустимий у твердженні lookbehind"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "відсутній завершальний символ у назві вкладеного шаблону"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "два іменовані вкладені шаблони мають однакову назву"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "неправильна послідовність \\P чи \\p"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "невідома назва властивості після \\P чи \\p"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "вкладена назва шаблону надто довга (максимум 32 символів)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "надто багато іменованих вкладених шаблонів (максимум 10,000)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "вісімкове значення більше ніж \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "група DEFINE містить більш ніж одну гілку"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "неузгоджені параметри NEWLINE"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
@@ -5753,120 +5764,120 @@ msgstr ""
"\\g не супроводжується назвою або числом у дужках, кутових дужках або "
"лапках, або просто числом"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "не можна вказувати параметр для (*ACCEPT), (*FAIL) або (*COMMIT)"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "значення (*VERB) не розпізнано"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "завелике число"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "немає назви підшаблону після (?&"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr ""
"не припускається використовувати різні імена для підшаблонів з однаковим "
"номером"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "для (*MARK) потрібен параметр"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "за \\з повинен бути символ ASCII"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr "за \\k не слідує назва у дужках, кутових дужках або лапках"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "\\N у класі не підтримується"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "задовга назва у (*MARK), (*PRUNE), (*SKIP) або (*THEN)"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "переповнення коду"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "нерозпізнаний символ після (?P"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "переповнення при компіляції робочого простору"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr ""
"раніше перевірений вкладений шаблон, на який йде посилання не знайдений"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Помилка під час пошуку відповідності регулярному виразу %s: %s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "Бібліотека PCRE не підтримує UTF8"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "Бібліотека PCRE зібрана з несумісними параметрами"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "Помилка при компіляції регулярного виразу «%s» на символі %s: %s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "мало бути використано шістнадцяткову цифру або символ «}»"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "очікується шістнадцяткова цифра"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "у символічному посиланні пропущено «<»"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "незакінчене символьне посилання"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "символьне посилання нульової довжини"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "очікується цифра"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "некоректне символьне посилання"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "відкидати кінцеві «\\»"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "невідома escape-послідовність"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr ""
@@ -5896,136 +5907,141 @@ msgstr ""
msgid "Text was empty (or contained only whitespace)"
msgstr "Текст порожній (чи містить лише пропуски)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "Помилка зчитування даних з дочірнього процесу (%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "Неочікувана помилка під час читання даних з дочірнього процесу (%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "Неочікувана помилка у waitpid() (%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "Дочірній процес закінчився з кодом %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "Дочірній процес вбитий за сигналом %ld"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "Дочірній процес зупинений за сигналом %ld"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "Дочірній процес аварійно закінчив роботу"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2039 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Помилка зчитування з дочірнього каналу (%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2411
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "Не вдалося запустити дочірній процес «%s» (%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2537
#, c-format
msgid "Failed to fork (%s)"
msgstr "Помилка створення процесу (%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2697 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "Не вдалося змінити каталог на «%s» (%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2707
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "Не вдалося виконати дочірній процес «%s» (%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2717
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "Не вдалося відкрити файл для зміни прив'язки дескриптора файла (%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2725
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "Не вдалося здублювати дескриптор файла для дочірнього процесу (%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2734
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "Помилка запуску дочірнього процесу (%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2742
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "Не вдалося закрити дескриптор файла для дочірнього процесу (%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2750
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "Невідома помилка виконання дочірнього процесу «%s»"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2774
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "Не вдалося зчитати достатню кількість даних з дочірнього каналу (%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "Неправильний аргумент дескрипторів файлів джерела"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "Помилка зчитування даних з дочірнього процесу"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Помилка виконання дочірнього процесу (%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "Не вдалося виконати dup() у дочірньому процесі (%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "Неправильна назва програми: %s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "Неправильний рядок у векторі аргументів %d: %s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "Неправильний рядок у середовищі: %s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "Неправильний робочий каталог: %s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "Не вдалося виконати допоміжну програму (%s)"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
@@ -6033,226 +6049,226 @@ msgstr ""
"Неочікувана помилка в зчитуванні даних з дочірнього процесу через "
"g_io_channel_win32_poll() "
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "Порожній рядок не є числом"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "«%s» не є числом зі знаком"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "Число «%s» не належить до діапазону [%s, %s]"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "«%s» не є числом без знаку"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "Некоректне %-eкодування в адресі"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "Некоректний символ в адресі"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "Символи поза UTF-8 в адресі"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "Некоректна IPv6-адреса «%.*s» в адресі"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "Помилкове кодування IP-адреси «%.*s» в адресі"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "Назва вузла із некоректними символами «%.*s» у адресі"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "Не вдалося обробити запис порту «%.*s» в адресі"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "Порт «%.*s» в адресі не належить до припустимого діапазону"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "Адреса «%s» не є абсолютною адресою"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "В адресі «%s» немає компонента вузла"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "Адреса не є абсолютною, і не вказано базової адреси"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "Пропущено «=» і значення параметра"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "Не вдалося виділити пам'ять"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "Символ не входить в набір UTF-8"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "Неправильна послідовність у перетворюваному вводі"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "Символ не входить в набір UTF-16"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
-msgstr "kB"
+msgstr "кБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "МБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "ГБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "ТБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "ПБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "ЕБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "КіБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "МіБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "ГіБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "ТіБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "ПіБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "ЕіБ"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "кб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Мб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
-msgstr "Gb"
+msgstr "Гб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Тб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Пб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Еб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Кіб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Міб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Гіб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Тіб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Піб"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Еіб"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "байт"
msgstr[1] "байти"
msgstr[2] "байтів"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "біт"
@@ -6261,7 +6277,7 @@ msgstr[2] "бітів"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6269,7 +6285,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6277,7 +6293,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6286,14 +6302,14 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@@ -6302,7 +6318,7 @@ msgstr[1] "%s байти"
msgstr[2] "%s байтів"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
@@ -6310,7 +6326,7 @@ msgstr[0] "%s біт"
msgstr[1] "%s біти"
msgstr[2] "%s бітів"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6323,39 +6339,45 @@ msgstr[2] "%u байтів"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f КБ"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f МБ"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f ГБ"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f ТБ"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f ПБ"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f ЕБ"
+#~ msgid "backtracking limit reached"
+#~ msgstr "закінчилося обмеження зворотного ходу"
+
+#~ msgid "GApplication options"
+#~ msgstr "Параметри GApplication"
+
#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "редагована назва: %s\n"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "Адреса «%s» локального файла не може містити символ «#»"
#~ msgid "internal error or corrupted object"
#~ msgstr "внутрішня помилка або пошкоджений об'єкт"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 593a356de..87123aa52 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -17,58 +17,59 @@
# Mingye Wang <arthur2e5@aosc.xyz>, 2015, 2016.
# Mingcong Bai <jeffbai@aosc.xyz>, 2015, 2016, 2018.
# Dingzhong Chen <wsxy162@gmail.com>, 2018-2021.
-# lumingzh <lumingzh@qq.com>, 2022.
+# Nanling <neithern@outlook.com>, 2023.
+# lumingzh <lumingzh@qq.com>, 2022-2023.
#
msgid ""
msgstr ""
"Project-Id-Version: glib master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2022-08-31 23:44+0000\n"
-"PO-Revision-Date: 2022-09-11 07:57+0800\n"
+"POT-Creation-Date: 2023-09-12 10:26+0000\n"
+"PO-Revision-Date: 2023-09-15 10:36+0800\n"
"Last-Translator: lumingzh <lumingzh@qq.com>\n"
"Language-Team: Chinese - China <i18n-zh@googlegroups.com>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0\n"
-"X-Generator: Gtranslator 42.0\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 3.3.2\n"
-#: gio/gappinfo.c:335
+#: gio/gappinfo.c:339
msgid "Setting default applications not supported yet"
msgstr "暂不支持设置默认应用程序"
-#: gio/gappinfo.c:368
+#: gio/gappinfo.c:372
msgid "Setting application as last used for type not supported yet"
msgstr "暂不支持设置上次用来打开文件类型的应用程序"
-#: gio/gappinfo.c:810
+#: gio/gappinfo.c:814
#, c-format
msgid "Failed to find default application for content type ‘%s’"
msgstr "无法找到处理内容类型“%s”的默认应用程序"
-#: gio/gappinfo.c:870
+#: gio/gappinfo.c:874
#, c-format
msgid "Failed to find default application for URI Scheme ‘%s’"
msgstr "无法找到处理 URI Scheme“%s”的默认应用程序"
-#: gio/gapplication.c:502
-msgid "GApplication options"
-msgstr "GApplication 选项"
+#: gio/gapplication.c:506
+msgid "GApplication Options:"
+msgstr "GApplication 选项:"
-#: gio/gapplication.c:502
+#: gio/gapplication.c:506
msgid "Show GApplication options"
msgstr "显示 GApplication 选项"
-#: gio/gapplication.c:547
+#: gio/gapplication.c:551
msgid "Enter GApplication service mode (use from D-Bus service files)"
msgstr "进入 GApplication 服务模式(从 D-Bus 服务文件中调用)"
-#: gio/gapplication.c:559
+#: gio/gapplication.c:563
msgid "Override the application’s ID"
msgstr "覆盖应用程序 ID"
-#: gio/gapplication.c:571
+#: gio/gapplication.c:575
msgid "Replace the running instance"
msgstr "替代运行中的实例"
@@ -147,7 +148,7 @@ msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
msgstr "D-Bus 格式的应用程序标识符(比如:org.example.viewer)"
#: gio/gapplication-tool.c:76 gio/glib-compile-resources.c:822
-#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:857
+#: gio/glib-compile-resources.c:828 gio/glib-compile-resources.c:858
#: gio/gresource-tool.c:503 gio/gresource-tool.c:569
msgid "FILE"
msgstr "文件"
@@ -244,11 +245,11 @@ msgstr "无法连接到 D-Bus:%s\n"
msgid "error sending %s message to application: %s\n"
msgstr "给应用程序发送 %s 消息时出错:%s\n"
-#: gio/gapplication-tool.c:321
+#: gio/gapplication-tool.c:324
msgid "action name must be given after application id\n"
msgstr "操作名必须在应用程序 ID 后给出\n"
-#: gio/gapplication-tool.c:329
+#: gio/gapplication-tool.c:332
#, c-format
msgid ""
"invalid action name: “%s”\n"
@@ -257,25 +258,25 @@ msgstr ""
"无效的操作名:“%s”\n"
"操作名只能由字母数字、“-”和“.”组成\n"
-#: gio/gapplication-tool.c:348
+#: gio/gapplication-tool.c:351
#, c-format
msgid "error parsing action parameter: %s\n"
msgstr "解析操作参数时出错:%s\n"
-#: gio/gapplication-tool.c:360
+#: gio/gapplication-tool.c:363
msgid "actions accept a maximum of one parameter\n"
msgstr "操作最多接受一个参数\n"
-#: gio/gapplication-tool.c:415
+#: gio/gapplication-tool.c:418
msgid "list-actions command takes only the application id"
msgstr "list-actions 命令只能接受应用程序的 ID"
-#: gio/gapplication-tool.c:425
+#: gio/gapplication-tool.c:428
#, c-format
msgid "unable to find desktop file for application %s\n"
msgstr "找不到与应用程序 %s 对应的桌面文件\n"
-#: gio/gapplication-tool.c:470
+#: gio/gapplication-tool.c:473
#, c-format
msgid ""
"unrecognised command: %s\n"
@@ -285,9 +286,9 @@ msgstr ""
"\n"
#: gio/gbufferedinputstream.c:422 gio/gbufferedinputstream.c:500
-#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:650
-#: gio/ginputstream.c:1052 gio/goutputstream.c:225 gio/goutputstream.c:1051
-#: gio/gpollableinputstream.c:207 gio/gpollableoutputstream.c:279
+#: gio/ginputstream.c:181 gio/ginputstream.c:381 gio/ginputstream.c:651
+#: gio/ginputstream.c:1056 gio/goutputstream.c:225 gio/goutputstream.c:1052
+#: gio/gpollableinputstream.c:221 gio/gpollableoutputstream.c:293
#, c-format
msgid "Too large count value passed to %s"
msgstr "传递给 %s 的计数值太大"
@@ -301,8 +302,8 @@ msgstr "基流不支持定位"
msgid "Cannot truncate GBufferedInputStream"
msgstr "无法截断 GBufferedInputStream"
-#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1241 gio/giostream.c:302
-#: gio/goutputstream.c:2200
+#: gio/gbufferedinputstream.c:985 gio/ginputstream.c:1246 gio/giostream.c:302
+#: gio/goutputstream.c:2208
msgid "Stream is already closed"
msgstr "流已经关闭"
@@ -310,7 +311,7 @@ msgstr "流已经关闭"
msgid "Truncate not supported on base stream"
msgstr "基流不支持截断"
-#: gio/gcancellable.c:319 gio/gdbusconnection.c:1859 gio/gdbusprivate.c:1420
+#: gio/gcancellable.c:326 gio/gdbusconnection.c:1867 gio/gdbusprivate.c:1434
#: gio/gsimpleasyncresult.c:873 gio/gsimpleasyncresult.c:899
#, c-format
msgid "Operation was cancelled"
@@ -329,28 +330,28 @@ msgid "Not enough space in destination"
msgstr "目标位置没有足够的空间"
#: gio/gcharsetconverter.c:344 gio/gdatainputstream.c:850
-#: gio/gdatainputstream.c:1268 glib/gconvert.c:451 glib/gconvert.c:883
-#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2473
-#: glib/gutf8.c:892 glib/gutf8.c:1346
+#: gio/gdatainputstream.c:1268 glib/gconvert.c:450 glib/gconvert.c:882
+#: glib/giochannel.c:1576 glib/giochannel.c:1618 glib/giochannel.c:2478
+#: glib/gutf8.c:958 glib/gutf8.c:1412
msgid "Invalid byte sequence in conversion input"
msgstr "转换输入中有无效的字符序列"
-#: gio/gcharsetconverter.c:349 glib/gconvert.c:459 glib/gconvert.c:797
-#: glib/giochannel.c:1583 glib/giochannel.c:2485
+#: gio/gcharsetconverter.c:349 glib/gconvert.c:458 glib/gconvert.c:796
+#: glib/giochannel.c:1583 glib/giochannel.c:2493
#, c-format
msgid "Error during conversion: %s"
msgstr "转换过程中出错:%s"
-#: gio/gcharsetconverter.c:447 gio/gsocket.c:1151
+#: gio/gcharsetconverter.c:447 gio/gsocket.c:1164
msgid "Cancellable initialization not supported"
msgstr "不支持可撤销的初始化"
-#: gio/gcharsetconverter.c:458 glib/gconvert.c:324 glib/giochannel.c:1404
+#: gio/gcharsetconverter.c:458 glib/gconvert.c:323 glib/giochannel.c:1404
#, c-format
msgid "Conversion from character set “%s” to “%s” is not supported"
msgstr "不支持从字符集“%s”到“%s”的转换"
-#: gio/gcharsetconverter.c:462 glib/gconvert.c:328
+#: gio/gcharsetconverter.c:462 glib/gconvert.c:327
#, c-format
msgid "Could not open converter from “%s” to “%s”"
msgstr "无法打开从“%s”到“%s”的转换器"
@@ -393,24 +394,24 @@ msgstr "此操作系统上无法进行证书欺骗"
msgid "Unexpected early end-of-stream"
msgstr "非预期的过早的流结束符"
-#: gio/gdbusaddress.c:164 gio/gdbusaddress.c:238 gio/gdbusaddress.c:327
+#: gio/gdbusaddress.c:168 gio/gdbusaddress.c:240 gio/gdbusaddress.c:327
#, c-format
msgid "Unsupported key “%s” in address entry “%s”"
msgstr "地址条目“%2$s”中有未支持的键“%1$s”"
-#: gio/gdbusaddress.c:177
+#: gio/gdbusaddress.c:181
#, c-format
msgid "Meaningless key/value pair combination in address entry “%s”"
msgstr "地址条目“%s”中有无意义的键/值对组合"
-#: gio/gdbusaddress.c:186
+#: gio/gdbusaddress.c:190
#, c-format
msgid ""
"Address “%s” is invalid (need exactly one of path, dir, tmpdir, or abstract "
"keys)"
msgstr "地址“%s”无效(需要指定一个且仅一个的路径、目录、临时目录或抽象键)"
-#: gio/gdbusaddress.c:253 gio/gdbusaddress.c:264 gio/gdbusaddress.c:279
+#: gio/gdbusaddress.c:255 gio/gdbusaddress.c:266 gio/gdbusaddress.c:281
#: gio/gdbusaddress.c:342 gio/gdbusaddress.c:353
#, c-format
msgid "Error in address “%s” — the “%s” attribute is malformed"
@@ -526,20 +527,20 @@ msgstr "生成并运行命令行“%s”时出错:"
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr "无法确定会话总线地址(尚未在此操作系统上实现)"
-#: gio/gdbusaddress.c:1375 gio/gdbusconnection.c:7321
+#: gio/gdbusaddress.c:1380 gio/gdbusconnection.c:7339
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
"— unknown value “%s”"
msgstr "无法从 DBUS_STARTER_BUS_TYPE 环境变量确定总线地址——未知的值“%s”"
-#: gio/gdbusaddress.c:1384 gio/gdbusconnection.c:7330
+#: gio/gdbusaddress.c:1389 gio/gdbusconnection.c:7348
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
msgstr "无法确定总线地址,因为环境变量 DBUS_STARTER_BUS_TYPE 未设置"
-#: gio/gdbusaddress.c:1394
+#: gio/gdbusaddress.c:1399
#, c-format
msgid "Unknown bus type %d"
msgstr "未知的总线类型 %d"
@@ -558,236 +559,242 @@ msgid ""
"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
msgstr "用尽了所有可用的认证机制(已尝试:%s)(可用的:%s)"
-#: gio/gdbusauth.c:1178
+#: gio/gdbusauth.c:1045
+msgid "Unexpected lack of content trying to read a byte"
+msgstr "试图读取一个字节时异常地缺少内容"
+
+#: gio/gdbusauth.c:1195
msgid "User IDs must be the same for peer and server"
msgstr "对等端和服务器端的用户 ID 必须相同"
-#: gio/gdbusauth.c:1190
+#: gio/gdbusauth.c:1207
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
msgstr "通过 GDBusAuthObserver::authorize-authenticated-peer 取消"
-#: gio/gdbusauthmechanismsha1.c:303
+#: gio/gdbusauthmechanismsha1.c:307
#, c-format
msgid "Error when getting information for directory “%s”: %s"
msgstr "获取目录“%s”信息时发生错误:%s"
-#: gio/gdbusauthmechanismsha1.c:318
+#: gio/gdbusauthmechanismsha1.c:322
#, c-format
msgid ""
"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
msgstr "目录“%s”权限错误。期望 0700,得到 0%o"
-#: gio/gdbusauthmechanismsha1.c:351 gio/gdbusauthmechanismsha1.c:362
+#: gio/gdbusauthmechanismsha1.c:355 gio/gdbusauthmechanismsha1.c:366
#, c-format
msgid "Error creating directory “%s”: %s"
msgstr "创建目录“%s”时出错:%s"
-#: gio/gdbusauthmechanismsha1.c:364 gio/gfile.c:1095 gio/gfile.c:1333
-#: gio/gfile.c:1471 gio/gfile.c:1709 gio/gfile.c:1764 gio/gfile.c:1822
-#: gio/gfile.c:1906 gio/gfile.c:1963 gio/gfile.c:2027 gio/gfile.c:2082
-#: gio/gfile.c:3787 gio/gfile.c:3927 gio/gfile.c:4339 gio/gfile.c:4809
-#: gio/gfile.c:5220 gio/gfile.c:5305 gio/gfile.c:5395 gio/gfile.c:5492
-#: gio/gfile.c:5579 gio/gfile.c:5680 gio/gfile.c:8809 gio/gfile.c:8899
-#: gio/gfile.c:8983 gio/win32/gwinhttpfile.c:453
+#: gio/gdbusauthmechanismsha1.c:368 gio/gfile.c:1102 gio/gfile.c:1340
+#: gio/gfile.c:1478 gio/gfile.c:1716 gio/gfile.c:1771 gio/gfile.c:1829
+#: gio/gfile.c:1913 gio/gfile.c:1970 gio/gfile.c:2034 gio/gfile.c:2089
+#: gio/gfile.c:3949 gio/gfile.c:4088 gio/gfile.c:4500 gio/gfile.c:4970
+#: gio/gfile.c:5382 gio/gfile.c:5467 gio/gfile.c:5557 gio/gfile.c:5654
+#: gio/gfile.c:5741 gio/gfile.c:5842 gio/gfile.c:9000 gio/gfile.c:9090
+#: gio/gfile.c:9174 gio/win32/gwinhttpfile.c:453
msgid "Operation not supported"
msgstr "不支持该操作"
-#: gio/gdbusauthmechanismsha1.c:407
+#: gio/gdbusauthmechanismsha1.c:411
#, c-format
msgid "Error opening keyring “%s” for reading: "
msgstr "打开密钥环“%s”以读取时出错:"
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:771
+#: gio/gdbusauthmechanismsha1.c:434 gio/gdbusauthmechanismsha1.c:775
#, c-format
msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "“%2$s”处的密钥环第 %1$d 行有不符合格式的内容“%3$s”"
-#: gio/gdbusauthmechanismsha1.c:444 gio/gdbusauthmechanismsha1.c:785
+#: gio/gdbusauthmechanismsha1.c:448 gio/gdbusauthmechanismsha1.c:789
#, c-format
msgid ""
"First token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "“%2$s”处的密钥环第 %1$d 行第一个令牌有不符合格式的内容“%3$s”"
-#: gio/gdbusauthmechanismsha1.c:458 gio/gdbusauthmechanismsha1.c:799
+#: gio/gdbusauthmechanismsha1.c:462 gio/gdbusauthmechanismsha1.c:803
#, c-format
msgid ""
"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
msgstr "“%2$s”处的密钥环第 %1$d 行第二个令牌有不符合格式的内容“%3$s”"
-#: gio/gdbusauthmechanismsha1.c:482
+#: gio/gdbusauthmechanismsha1.c:486
#, c-format
msgid "Didn’t find cookie with id %d in the keyring at “%s”"
msgstr "未在“%2$s”处的密钥环中找到 ID 为 %1$d 的 cookie"
-#: gio/gdbusauthmechanismsha1.c:539
+#: gio/gdbusauthmechanismsha1.c:543
#, c-format
msgid "Error creating lock file “%s”: %s"
msgstr "创建锁文件“%s”时出错:%s"
-#: gio/gdbusauthmechanismsha1.c:612
+#: gio/gdbusauthmechanismsha1.c:616
#, c-format
msgid "Error deleting stale lock file “%s”: %s"
msgstr "删除过时的锁文件“%s”时出错:%s"
-#: gio/gdbusauthmechanismsha1.c:651
+#: gio/gdbusauthmechanismsha1.c:655
#, c-format
msgid "Error closing (unlinked) lock file “%s”: %s"
msgstr "关闭(未链接的)锁文件“%s”时出错:%s"
-#: gio/gdbusauthmechanismsha1.c:662
+#: gio/gdbusauthmechanismsha1.c:666
#, c-format
msgid "Error unlinking lock file “%s”: %s"
msgstr "删除(unlink)锁文件“%s”时出错:%s"
-#: gio/gdbusauthmechanismsha1.c:738
+#: gio/gdbusauthmechanismsha1.c:742
#, c-format
msgid "Error opening keyring “%s” for writing: "
msgstr "打开钥匙环“%s”以写入时出错:"
-#: gio/gdbusauthmechanismsha1.c:932
+#: gio/gdbusauthmechanismsha1.c:936
#, c-format
msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
msgstr "(此外,解除“%s”的锁定也失败了:%s) "
-#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2404
+#: gio/gdbusconnection.c:590 gio/gdbusconnection.c:2415
msgid "The connection is closed"
msgstr "连接已关闭"
-#: gio/gdbusconnection.c:1889
+#: gio/gdbusconnection.c:1899
msgid "Timeout was reached"
msgstr "已到超时限制"
-#: gio/gdbusconnection.c:2527
+#: gio/gdbusconnection.c:2538
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr "构建客户端连接时遇到不支持的标志"
-#: gio/gdbusconnection.c:4256 gio/gdbusconnection.c:4610
+#: gio/gdbusconnection.c:4277 gio/gdbusconnection.c:4631
#, c-format
msgid ""
"No such interface “org.freedesktop.DBus.Properties” on object at path %s"
msgstr "路径 %s 的对象上没有“org.freedesktop.DBus.Properties”接口"
-#: gio/gdbusconnection.c:4401
+#: gio/gdbusconnection.c:4422
#, c-format
msgid "No such property “%s”"
msgstr "无此属性“%s”"
-#: gio/gdbusconnection.c:4413
+#: gio/gdbusconnection.c:4434
#, c-format
msgid "Property “%s” is not readable"
msgstr "属性“%s”不可读"
-#: gio/gdbusconnection.c:4424
+#: gio/gdbusconnection.c:4445
#, c-format
msgid "Property “%s” is not writable"
msgstr "属性“%s”不可写"
-#: gio/gdbusconnection.c:4444
+#: gio/gdbusconnection.c:4465
#, c-format
msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
msgstr "设置属性“%s”时出错:期望“%s”类型但得到了“%s”类型"
-#: gio/gdbusconnection.c:4549 gio/gdbusconnection.c:4764
-#: gio/gdbusconnection.c:6747
+#: gio/gdbusconnection.c:4570 gio/gdbusconnection.c:4785
+#: gio/gdbusconnection.c:6762
#, c-format
msgid "No such interface “%s”"
msgstr "无此接口“%s”"
-#: gio/gdbusconnection.c:4986 gio/gdbusconnection.c:7261
+#: gio/gdbusconnection.c:5001 gio/gdbusconnection.c:7279
#, c-format
msgid "No such interface “%s” on object at path %s"
msgstr "在路径 %s 的对象上没有“%s”接口"
-#: gio/gdbusconnection.c:5087
+#: gio/gdbusconnection.c:5102
#, c-format
msgid "No such method “%s”"
msgstr "没有“%s”这个方法"
-#: gio/gdbusconnection.c:5118
+#: gio/gdbusconnection.c:5133
#, c-format
msgid "Type of message, “%s”, does not match expected type “%s”"
msgstr "消息的类型“%s”,与预期的类型“%s”不匹配"
-#: gio/gdbusconnection.c:5321
+#: gio/gdbusconnection.c:5336
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "已为 %2$s 处的接口 %1$s 导出了一个对象"
-#: gio/gdbusconnection.c:5548
+#: gio/gdbusconnection.c:5563
#, c-format
msgid "Unable to retrieve property %s.%s"
msgstr "无法检索属性 %s.%s"
-#: gio/gdbusconnection.c:5604
+#: gio/gdbusconnection.c:5619
#, c-format
msgid "Unable to set property %s.%s"
msgstr "无法设置属性 %s.%s"
-#: gio/gdbusconnection.c:5783
+#: gio/gdbusconnection.c:5798
#, c-format
msgid "Method “%s” returned type “%s”, but expected “%s”"
msgstr "方法“%s”返回类型“%s”,但预期的是“%s”"
-#: gio/gdbusconnection.c:6859
+#: gio/gdbusconnection.c:6874
#, c-format
msgid "Method “%s” on interface “%s” with signature “%s” does not exist"
msgstr "带有“%3$s”签名的接口“%2$s”上不存在“%1$s”方法"
-#: gio/gdbusconnection.c:6980
+#: gio/gdbusconnection.c:6995
#, c-format
msgid "A subtree is already exported for %s"
msgstr "已经为 %s 导出一个子树"
-#: gio/gdbusconnection.c:7269
+#: gio/gdbusconnection.c:7287
#, c-format
msgid "Object does not exist at path “%s”"
msgstr "对象在路径“%s”处不存在"
-#: gio/gdbusmessage.c:1303
+#: gio/gdbusmessage.c:1306
msgid "type is INVALID"
msgstr "类型无效"
-#: gio/gdbusmessage.c:1314
-msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr "METHOD_CALL 消息:PATH 或 MEMBER 首部字段缺失"
+#: gio/gdbusmessage.c:1324
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing or invalid"
+msgstr "METHOD_CALL 消息:PATH 或 MEMBER 首部字段缺失或无效"
-#: gio/gdbusmessage.c:1325
-msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr "METHOD_RETURN 消息:REPLY_SERIAL 首部字段缺失"
+#: gio/gdbusmessage.c:1340
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing or invalid"
+msgstr "METHOD_RETURN 消息:REPLY_SERIAL 首部字段缺失或无效"
-#: gio/gdbusmessage.c:1337
-msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr "错误消息:REPLY_SERIAL 或 ERROR_NAME 首部字段缺失"
+#: gio/gdbusmessage.c:1360
+msgid ""
+"ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing or invalid"
+msgstr "错误消息:REPLY_SERIAL 或 ERROR_NAME 首部字段缺失或无效"
-#: gio/gdbusmessage.c:1350
-msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr "信号消息:PATH、INTERFACE 或 MEMBER METHOD_RETURN缺失"
+#: gio/gdbusmessage.c:1384
+msgid ""
+"SIGNAL message: PATH, INTERFACE or MEMBER header field is missing or invalid"
+msgstr "信号消息:PATH、INTERFACE 或 MEMBER METHOD_RETURN缺失或无效"
-#: gio/gdbusmessage.c:1358
+#: gio/gdbusmessage.c:1392
msgid ""
"SIGNAL message: The PATH header field is using the reserved value /org/"
"freedesktop/DBus/Local"
msgstr "信号消息:PATH 首部字段正在使用保留值 /org/freedesktop/DBus/Local"
-#: gio/gdbusmessage.c:1366
+#: gio/gdbusmessage.c:1400
msgid ""
"SIGNAL message: The INTERFACE header field is using the reserved value org."
"freedesktop.DBus.Local"
msgstr "信号消息:INTERFACE 首部字段正在使用保留值 org.freedesktop.DBus.Local"
-#: gio/gdbusmessage.c:1414 gio/gdbusmessage.c:1474
+#: gio/gdbusmessage.c:1449 gio/gdbusmessage.c:1509
#, c-format
msgid "Wanted to read %lu byte but only got %lu"
msgid_plural "Wanted to read %lu bytes but only got %lu"
msgstr[0] "期望读取 %lu 个字节但只得到 %lu 个"
-#: gio/gdbusmessage.c:1428
+#: gio/gdbusmessage.c:1463
#, c-format
msgid "Expected NUL byte after the string “%s” but found byte %d"
msgstr "期望“%s”后为 NUL 字节但找到了字节 %d"
-#: gio/gdbusmessage.c:1447
+#: gio/gdbusmessage.c:1482
#, c-format
msgid ""
"Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -796,21 +803,21 @@ msgstr ""
"期望得到有效的 UTF-8 字符串,但在字节偏移 %d 处(字符串长度为 %d)找到了无效"
"的字节。该点的有效 UTF-8 字符串曾是“%s”"
-#: gio/gdbusmessage.c:1511 gio/gdbusmessage.c:1787 gio/gdbusmessage.c:1998
+#: gio/gdbusmessage.c:1546 gio/gdbusmessage.c:1822 gio/gdbusmessage.c:2033
msgid "Value nested too deeply"
msgstr "值嵌套过深"
-#: gio/gdbusmessage.c:1679
+#: gio/gdbusmessage.c:1714
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus object path"
msgstr "已解析的值“%s”不是有效的 D-Bus 对象路径"
-#: gio/gdbusmessage.c:1703
+#: gio/gdbusmessage.c:1738
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature"
msgstr "已解析的值“%s”不是有效的 D-Bus 签名"
-#: gio/gdbusmessage.c:1754
+#: gio/gdbusmessage.c:1789
#, c-format
msgid ""
"Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -818,7 +825,7 @@ msgid_plural ""
"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
msgstr[0] "遇到长度为 %u 字节的数组。最大长度应为 2<<26 字节(64 MiB)。"
-#: gio/gdbusmessage.c:1774
+#: gio/gdbusmessage.c:1809
#, c-format
msgid ""
"Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -826,131 +833,131 @@ msgid ""
msgstr ""
"遇到类型为“a%c”的数组,需要长度为 %u 字节的倍数,但是找到的长度为 %u 字节"
-#: gio/gdbusmessage.c:1928 gio/gdbusmessage.c:2647
+#: gio/gdbusmessage.c:1963 gio/gdbusmessage.c:2682
msgid "Empty structures (tuples) are not allowed in D-Bus"
msgstr "D-Bus 中不允许空结构(tuples)"
-#: gio/gdbusmessage.c:1982
+#: gio/gdbusmessage.c:2017
#, c-format
msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
msgstr "变量的已解析值“%s”不是有效的 D-Bus 签名"
-#: gio/gdbusmessage.c:2023
+#: gio/gdbusmessage.c:2058
#, c-format
msgid ""
"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
msgstr "从 D-Bus 线格式以类型字符串“%s”反序列化 GVariant 时发生错误"
-#: gio/gdbusmessage.c:2208
+#: gio/gdbusmessage.c:2243
#, c-format
msgid ""
"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
"0x%02x"
msgstr "无效的字节序值。期望为 0x6c(“l”)或 0x42(“B”)但找到值 0x%02x"
-#: gio/gdbusmessage.c:2227
+#: gio/gdbusmessage.c:2262
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
msgstr "无效的主协议版本。期望 1,但是找到了 %d"
-#: gio/gdbusmessage.c:2285 gio/gdbusmessage.c:2883
+#: gio/gdbusmessage.c:2320 gio/gdbusmessage.c:2918
msgid "Signature header found but is not of type signature"
msgstr "找到了签名首部但不属于类型签名"
-#: gio/gdbusmessage.c:2297
+#: gio/gdbusmessage.c:2332
#, c-format
msgid "Signature header with signature “%s” found but message body is empty"
msgstr "发现签名“%s”的签名首部,但消息主体为空"
-#: gio/gdbusmessage.c:2312
+#: gio/gdbusmessage.c:2347
#, c-format
msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
msgstr "已解析的值“%s”不是有效的 D-Bus 签名(针对消息主体)"
-#: gio/gdbusmessage.c:2344
+#: gio/gdbusmessage.c:2379
#, c-format
msgid "No signature header in message but the message body is %u byte"
msgid_plural "No signature header in message but the message body is %u bytes"
msgstr[0] "消息中没有签名首部,但消息主体为 %u 字节"
-#: gio/gdbusmessage.c:2354
+#: gio/gdbusmessage.c:2389
msgid "Cannot deserialize message: "
msgstr "无法反序列化消息:"
-#: gio/gdbusmessage.c:2700
+#: gio/gdbusmessage.c:2735
#, c-format
msgid ""
"Error serializing GVariant with type string “%s” to the D-Bus wire format"
msgstr "以类型字符串“%s”序列化 GVariant 到 D-Bus 线格式时发生错误"
-#: gio/gdbusmessage.c:2837
+#: gio/gdbusmessage.c:2872
#, c-format
msgid ""
"Number of file descriptors in message (%d) differs from header field (%d)"
msgstr "消息中的文件描述符数量(%d)与首部字段中的(%d)不同"
-#: gio/gdbusmessage.c:2845
+#: gio/gdbusmessage.c:2880
msgid "Cannot serialize message: "
msgstr "无法序列化消息:"
-#: gio/gdbusmessage.c:2898
+#: gio/gdbusmessage.c:2933
#, c-format
msgid "Message body has signature “%s” but there is no signature header"
msgstr "消息主体有签名“%s”但是没有签名首部"
-#: gio/gdbusmessage.c:2908
+#: gio/gdbusmessage.c:2943
#, c-format
msgid ""
"Message body has type signature “%s” but signature in the header field is "
"“%s”"
msgstr "消息主体有类型签名“%s”但首部字段的签名为“%s”"
-#: gio/gdbusmessage.c:2924
+#: gio/gdbusmessage.c:2959
#, c-format
msgid "Message body is empty but signature in the header field is “(%s)”"
msgstr "消息主体为空,但首部字段的签名为“(%s)”"
-#: gio/gdbusmessage.c:3479
+#: gio/gdbusmessage.c:3514
#, c-format
msgid "Error return with body of type “%s”"
msgstr "出错,返回了“%s”类型的主体"
-#: gio/gdbusmessage.c:3487
+#: gio/gdbusmessage.c:3522
msgid "Error return with empty body"
msgstr "出错,返回了空的主体"
-#: gio/gdbusprivate.c:2187
+#: gio/gdbusprivate.c:2201
#, c-format
msgid "(Type any character to close this window)\n"
msgstr "(按任意键关闭本窗口)\n"
-#: gio/gdbusprivate.c:2373
+#: gio/gdbusprivate.c:2387
#, c-format
msgid "Session dbus not running, and autolaunch failed"
msgstr "dbus 会话未运行,自动启动失败"
-#: gio/gdbusprivate.c:2396
+#: gio/gdbusprivate.c:2410
#, c-format
msgid "Unable to get Hardware profile: %s"
msgstr "无法获取硬件配置文件:%s"
#. Translators: Both placeholders are file paths
-#: gio/gdbusprivate.c:2447
+#: gio/gdbusprivate.c:2461
#, c-format
msgid "Unable to load %s or %s: "
msgstr "无法载入 %s 或 %s:"
-#: gio/gdbusproxy.c:1575
+#: gio/gdbusproxy.c:1568
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "为 %s 调用 StartServiceByName 时出错:"
-#: gio/gdbusproxy.c:1598
+#: gio/gdbusproxy.c:1591
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "从 StartServiceByName(\"%2$s\") 方法获得意外回复 %1$d"
-#: gio/gdbusproxy.c:2709 gio/gdbusproxy.c:2844
+#: gio/gdbusproxy.c:2702 gio/gdbusproxy.c:2837
#, c-format
msgid ""
"Cannot invoke method; proxy is for the well-known name %s without an owner, "
@@ -959,25 +966,25 @@ msgstr ""
"无法调用方法;代理名称为常见的无所有者的名称 %s,且代理使用 "
"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START 标记构建"
-#: gio/gdbusserver.c:765
+#: gio/gdbusserver.c:758
msgid "Abstract namespace not supported"
msgstr "不支持抽象命名空间"
-#: gio/gdbusserver.c:857
+#: gio/gdbusserver.c:850
msgid "Cannot specify nonce file when creating a server"
msgstr "创建服务器时无法指定临时文件"
-#: gio/gdbusserver.c:939
+#: gio/gdbusserver.c:932
#, c-format
msgid "Error writing nonce file at “%s”: %s"
msgstr "写入“%s”处的临时文件时出错:%s"
-#: gio/gdbusserver.c:1114
+#: gio/gdbusserver.c:1107
#, c-format
msgid "The string “%s” is not a valid D-Bus GUID"
msgstr "字符串“%s”不是有效 D-Bus GUID"
-#: gio/gdbusserver.c:1152
+#: gio/gdbusserver.c:1145
#, c-format
msgid "Cannot listen on unsupported transport “%s”"
msgstr "无法监听不支持的传输“%s”"
@@ -1006,14 +1013,14 @@ msgstr ""
"\n"
"使用“%s 命令 --help”以获得每一个命令的帮助。\n"
-#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:348
-#: gio/gdbus-tool.c:372 gio/gdbus-tool.c:862 gio/gdbus-tool.c:1247
-#: gio/gdbus-tool.c:1734
+#: gio/gdbus-tool.c:204 gio/gdbus-tool.c:276 gio/gdbus-tool.c:347
+#: gio/gdbus-tool.c:371 gio/gdbus-tool.c:861 gio/gdbus-tool.c:1246
+#: gio/gdbus-tool.c:1733
#, c-format
msgid "Error: %s\n"
msgstr "错误:%s\n"
-#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1750
+#: gio/gdbus-tool.c:215 gio/gdbus-tool.c:289 gio/gdbus-tool.c:1749
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "解析 Introspection XML 时出错:%s\n"
@@ -1023,282 +1030,287 @@ msgstr "解析 Introspection XML 时出错:%s\n"
msgid "Error: %s is not a valid name\n"
msgstr "错误:%s 不是有效的名称\n"
-#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:748 gio/gdbus-tool.c:1066
-#: gio/gdbus-tool.c:1900 gio/gdbus-tool.c:2140
+#: gio/gdbus-tool.c:258 gio/gdbus-tool.c:747 gio/gdbus-tool.c:1065
+#: gio/gdbus-tool.c:1899 gio/gdbus-tool.c:2139
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "错误:%s 不是有效的对象路径\n"
-#: gio/gdbus-tool.c:406
+#: gio/gdbus-tool.c:405
msgid "Connect to the system bus"
msgstr "连接到系统总线"
-#: gio/gdbus-tool.c:407
+#: gio/gdbus-tool.c:406
msgid "Connect to the session bus"
msgstr "连接到会话总线"
-#: gio/gdbus-tool.c:408
+#: gio/gdbus-tool.c:407
msgid "Connect to given D-Bus address"
msgstr "连接到给定的 D-Bus 地址"
-#: gio/gdbus-tool.c:418
+#: gio/gdbus-tool.c:417
msgid "Connection Endpoint Options:"
msgstr "连接端点选项:"
-#: gio/gdbus-tool.c:419
+#: gio/gdbus-tool.c:418
msgid "Options specifying the connection endpoint"
msgstr "指定连接端点的选项"
# 没有>未,消歧义
-#: gio/gdbus-tool.c:442
+#: gio/gdbus-tool.c:441
#, c-format
msgid "No connection endpoint specified"
msgstr "未指定连接的端点"
-#: gio/gdbus-tool.c:452
+#: gio/gdbus-tool.c:451
#, c-format
msgid "Multiple connection endpoints specified"
msgstr "指定了多个连接端点"
-#: gio/gdbus-tool.c:525
+#: gio/gdbus-tool.c:524
#, c-format
msgid ""
"Warning: According to introspection data, interface “%s” does not exist\n"
msgstr "警告:根据 Introspection 数据,接口“%s”不存在\n"
-#: gio/gdbus-tool.c:534
+#: gio/gdbus-tool.c:533
#, c-format
msgid ""
"Warning: According to introspection data, method “%s” does not exist on "
"interface “%s”\n"
msgstr "警告:根据 Introspection 数据,接口“%2$s”中不存在方法“%1$s”\n"
-#: gio/gdbus-tool.c:596
+#: gio/gdbus-tool.c:595
msgid "Optional destination for signal (unique name)"
msgstr "信号的可选目标位置(唯一名称)"
-#: gio/gdbus-tool.c:597
+#: gio/gdbus-tool.c:596
msgid "Object path to emit signal on"
msgstr "要触发信号的对象路径"
-#: gio/gdbus-tool.c:598
+#: gio/gdbus-tool.c:597
msgid "Signal and interface name"
msgstr "信号和接口名称"
-#: gio/gdbus-tool.c:631
+#: gio/gdbus-tool.c:630
msgid "Emit a signal."
msgstr "发射信号。"
-#: gio/gdbus-tool.c:686 gio/gdbus-tool.c:1003 gio/gdbus-tool.c:1837
-#: gio/gdbus-tool.c:2069 gio/gdbus-tool.c:2289
+#: gio/gdbus-tool.c:685 gio/gdbus-tool.c:1002 gio/gdbus-tool.c:1836
+#: gio/gdbus-tool.c:2068 gio/gdbus-tool.c:2288
#, c-format
msgid "Error connecting: %s\n"
msgstr "连接时出错:%s\n"
-#: gio/gdbus-tool.c:706
+#: gio/gdbus-tool.c:705
#, c-format
msgid "Error: %s is not a valid unique bus name.\n"
msgstr "错误:%s 不是有效的唯一总线名。\n"
-#: gio/gdbus-tool.c:725 gio/gdbus-tool.c:1046 gio/gdbus-tool.c:1880
+#: gio/gdbus-tool.c:724 gio/gdbus-tool.c:1045 gio/gdbus-tool.c:1879
msgid "Error: Object path is not specified\n"
msgstr "错误:未指定对象路径\n"
-#: gio/gdbus-tool.c:768
+#: gio/gdbus-tool.c:767
msgid "Error: Signal name is not specified\n"
msgstr "错误:未指定信号名\n"
-#: gio/gdbus-tool.c:782
+#: gio/gdbus-tool.c:781
#, c-format
msgid "Error: Signal name “%s” is invalid\n"
msgstr "错误:信号名“%s”无效\n"
-#: gio/gdbus-tool.c:794
+#: gio/gdbus-tool.c:793
#, c-format
msgid "Error: %s is not a valid interface name\n"
msgstr "错误:%s 不是有效的接口名称。\n"
-#: gio/gdbus-tool.c:800
+#: gio/gdbus-tool.c:799
#, c-format
msgid "Error: %s is not a valid member name\n"
msgstr "错误:%s 不是有效的成员名称。\n"
#. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:837 gio/gdbus-tool.c:1178
+#: gio/gdbus-tool.c:836 gio/gdbus-tool.c:1177
#, c-format
msgid "Error parsing parameter %d: %s\n"
msgstr "解析第 %d 个选项时出错:%s\n"
-#: gio/gdbus-tool.c:869
+#: gio/gdbus-tool.c:868
#, c-format
msgid "Error flushing connection: %s\n"
msgstr "刷新连接时出错:%s\n"
-#: gio/gdbus-tool.c:897
+#: gio/gdbus-tool.c:896
msgid "Destination name to invoke method on"
msgstr "调用方法的目标位置名称"
-#: gio/gdbus-tool.c:898
+#: gio/gdbus-tool.c:897
msgid "Object path to invoke method on"
msgstr "调用方法的对象路径"
-#: gio/gdbus-tool.c:899
+#: gio/gdbus-tool.c:898
msgid "Method and interface name"
msgstr "方法和接口名称"
-#: gio/gdbus-tool.c:900
+#: gio/gdbus-tool.c:899
msgid "Timeout in seconds"
msgstr "超时(以秒计)"
-#: gio/gdbus-tool.c:901
+#: gio/gdbus-tool.c:900
msgid "Allow interactive authorization"
msgstr "允许交互式授权"
-#: gio/gdbus-tool.c:948
+#: gio/gdbus-tool.c:947
msgid "Invoke a method on a remote object."
msgstr "在远程对象上调用一个方法。"
-#: gio/gdbus-tool.c:1020 gio/gdbus-tool.c:1854 gio/gdbus-tool.c:2094
+#: gio/gdbus-tool.c:1019 gio/gdbus-tool.c:1853 gio/gdbus-tool.c:2093
msgid "Error: Destination is not specified\n"
msgstr "错误:未指定目标位置名称\n"
-#: gio/gdbus-tool.c:1031 gio/gdbus-tool.c:1871 gio/gdbus-tool.c:2105
+#: gio/gdbus-tool.c:1030 gio/gdbus-tool.c:1870 gio/gdbus-tool.c:2104
#, c-format
msgid "Error: %s is not a valid bus name\n"
msgstr "错误:%s 不是有效的总线名称\n"
-#: gio/gdbus-tool.c:1081
+#: gio/gdbus-tool.c:1080
msgid "Error: Method name is not specified\n"
msgstr "错误:方法名没有指定\n"
-#: gio/gdbus-tool.c:1092
+#: gio/gdbus-tool.c:1091
#, c-format
msgid "Error: Method name “%s” is invalid\n"
msgstr "错误:方法名“%s”无效\n"
-#: gio/gdbus-tool.c:1170
+#: gio/gdbus-tool.c:1169
#, c-format
msgid "Error parsing parameter %d of type “%s”: %s\n"
msgstr "解析\"%2$s\"类型的第 %1$d 个参数时发生错误:%3$s\n"
-#: gio/gdbus-tool.c:1196
+#: gio/gdbus-tool.c:1195
#, c-format
msgid "Error adding handle %d: %s\n"
msgstr "添加句柄 %d 时出错:%s\n"
-#: gio/gdbus-tool.c:1696
+#: gio/gdbus-tool.c:1695
msgid "Destination name to introspect"
msgstr "要 Introspect 的目标位置名称"
-#: gio/gdbus-tool.c:1697
+#: gio/gdbus-tool.c:1696
msgid "Object path to introspect"
msgstr "要 Introspect 的对象路径"
-#: gio/gdbus-tool.c:1698
+#: gio/gdbus-tool.c:1697
msgid "Print XML"
msgstr "输出 XML"
-#: gio/gdbus-tool.c:1699
+#: gio/gdbus-tool.c:1698
msgid "Introspect children"
msgstr "Introspect 子对象"
-#: gio/gdbus-tool.c:1700
+#: gio/gdbus-tool.c:1699
msgid "Only print properties"
msgstr "只打印属性"
# 跟命令行里的统一翻译
-#: gio/gdbus-tool.c:1789
+#: gio/gdbus-tool.c:1788
msgid "Introspect a remote object."
msgstr "Introspect 一个远程对象。"
-#: gio/gdbus-tool.c:1995
+#: gio/gdbus-tool.c:1994
msgid "Destination name to monitor"
msgstr "要监视的目标位置名称"
-#: gio/gdbus-tool.c:1996
+#: gio/gdbus-tool.c:1995
msgid "Object path to monitor"
msgstr "要监视的对象路径"
-#: gio/gdbus-tool.c:2021
+#: gio/gdbus-tool.c:2020
msgid "Monitor a remote object."
msgstr "监视一个远程对象。"
-#: gio/gdbus-tool.c:2079
+#: gio/gdbus-tool.c:2078
msgid "Error: can’t monitor a non-message-bus connection\n"
msgstr "错误:无法监视 non-message-bus 连接\n"
-#: gio/gdbus-tool.c:2203
+#: gio/gdbus-tool.c:2202
msgid "Service to activate before waiting for the other one (well-known name)"
msgstr "在等待另一服务前要激活的服务(常见名称)"
-#: gio/gdbus-tool.c:2206
+#: gio/gdbus-tool.c:2205
msgid ""
"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
"(default)"
msgstr "出现错误退出前的超时(秒); 0 为无超时(默认)"
-#: gio/gdbus-tool.c:2254
+#: gio/gdbus-tool.c:2253
msgid "[OPTION…] BUS-NAME"
msgstr "[选项…] 总线名称"
-#: gio/gdbus-tool.c:2255
+#: gio/gdbus-tool.c:2254
msgid "Wait for a bus name to appear."
msgstr "等待总线名称出现。"
-#: gio/gdbus-tool.c:2331
+#: gio/gdbus-tool.c:2330
msgid "Error: A service to activate for must be specified.\n"
msgstr "错误:未指定需要激活的服务名称。\n"
-#: gio/gdbus-tool.c:2336
+#: gio/gdbus-tool.c:2335
msgid "Error: A service to wait for must be specified.\n"
msgstr "错误:未指定需要等待的服务名称。\n"
-#: gio/gdbus-tool.c:2341
+#: gio/gdbus-tool.c:2340
msgid "Error: Too many arguments.\n"
msgstr "错误:参数过多。\n"
-#: gio/gdbus-tool.c:2349 gio/gdbus-tool.c:2356
+#: gio/gdbus-tool.c:2348 gio/gdbus-tool.c:2355
#, c-format
msgid "Error: %s is not a valid well-known bus name.\n"
msgstr "错误:%s 不是有效的总线名称。\n"
-#: gio/gdebugcontrollerdbus.c:360
+#: gio/gdebugcontrollerdbus.c:361
#, c-format
msgid "Not authorized to change debug settings"
msgstr "未获认证以更改调试设置"
-#: gio/gdesktopappinfo.c:2182 gio/gdesktopappinfo.c:5112
+#: gio/gdesktopappinfo.c:2242 gio/gdesktopappinfo.c:5226
msgid "Unnamed"
msgstr "未命名"
-#: gio/gdesktopappinfo.c:2592
+#: gio/gdesktopappinfo.c:2652
msgid "Desktop file didn’t specify Exec field"
msgstr "桌面文件未指定 Exec 字段"
-#: gio/gdesktopappinfo.c:2891
+#: gio/gdesktopappinfo.c:2942
msgid "Unable to find terminal required for application"
msgstr "无法找到应用程序需要的终端"
-#: gio/gdesktopappinfo.c:3630
+#: gio/gdesktopappinfo.c:3002
+#, c-format
+msgid "Program ‘%s’ not found in $PATH"
+msgstr "程序 ‘%s’ 未在 $PATH 路径中找到"
+
+#: gio/gdesktopappinfo.c:3738
#, c-format
msgid "Can’t create user application configuration folder %s: %s"
msgstr "无法创建用户应用程序配置文件夹 %s:%s"
-#: gio/gdesktopappinfo.c:3634
+#: gio/gdesktopappinfo.c:3742
#, c-format
msgid "Can’t create user MIME configuration folder %s: %s"
msgstr "无法创建用户 MIME 配置文件夹 %s:%s"
-#: gio/gdesktopappinfo.c:3876 gio/gdesktopappinfo.c:3900
+#: gio/gdesktopappinfo.c:3984 gio/gdesktopappinfo.c:4008
msgid "Application information lacks an identifier"
msgstr "应用程序信息缺少标志符"
-#: gio/gdesktopappinfo.c:4136
+#: gio/gdesktopappinfo.c:4244
#, c-format
msgid "Can’t create user desktop file %s"
msgstr "无法创建用户桌面文件 %s"
-#: gio/gdesktopappinfo.c:4272
+#: gio/gdesktopappinfo.c:4380
#, c-format
msgid "Custom definition for %s"
msgstr "%s 的自定义"
@@ -1367,78 +1379,83 @@ msgstr "GEmblemedIcon 中应为 GEmblem"
#. * trying to find the enclosing (user visible)
#. * mount of a file, but none exists.
#.
-#: gio/gfile.c:1594
+#: gio/gfile.c:1601
msgid "Containing mount does not exist"
msgstr "包含的挂载不存在"
-#: gio/gfile.c:2641 gio/glocalfile.c:2500
+#: gio/gfile.c:2648 gio/glocalfile.c:2518
msgid "Can’t copy over directory"
msgstr "无法跨目录复制"
-#: gio/gfile.c:2701
+#: gio/gfile.c:2708
msgid "Can’t copy directory over directory"
msgstr "无法跨目录复制到目录"
-#: gio/gfile.c:2709
+#: gio/gfile.c:2716
msgid "Target file exists"
msgstr "目标文件已存在"
-#: gio/gfile.c:2728
+#: gio/gfile.c:2735
msgid "Can’t recursively copy directory"
msgstr "无法递归复制目录"
-#: gio/gfile.c:3029
-msgid "Splice not supported"
-msgstr "不支持拼接"
+#: gio/gfile.c:3044 gio/gfile.c:3092
+#, c-format
+msgid "Copy file range not supported"
+msgstr "不支持复制文件范围"
-#: gio/gfile.c:3033
+#: gio/gfile.c:3050 gio/gfile.c:3161
#, c-format
msgid "Error splicing file: %s"
msgstr "拼接文件时出错:%s"
-#: gio/gfile.c:3185
+#: gio/gfile.c:3157
+msgid "Splice not supported"
+msgstr "不支持拼接"
+
+#: gio/gfile.c:3321
msgid "Copy (reflink/clone) between mounts is not supported"
msgstr "不支持在挂载之间复制(reflink/clone)"
-#: gio/gfile.c:3189
+#: gio/gfile.c:3325
msgid "Copy (reflink/clone) is not supported or invalid"
msgstr "复制(reflink/clone)操作不支持或无效"
-#: gio/gfile.c:3194
+#: gio/gfile.c:3330
msgid "Copy (reflink/clone) is not supported or didn’t work"
msgstr "复制(reflink/clone)操作不支持或者失败"
-#: gio/gfile.c:3259
+#: gio/gfile.c:3395
msgid "Can’t copy special file"
msgstr "无法复制特殊文件"
-#: gio/gfile.c:4153
+#: gio/gfile.c:4314
msgid "Invalid symlink value given"
msgstr "给定的符号链接值无效"
-#: gio/gfile.c:4163 glib/gfileutils.c:2335
+#: gio/gfile.c:4324 glib/gfileutils.c:2392
msgid "Symbolic links not supported"
msgstr "不支持符号链接"
-#: gio/gfile.c:4450
+#: gio/gfile.c:4611
msgid "Trash not supported"
msgstr "不支持回收站"
-#: gio/gfile.c:4562
+#: gio/gfile.c:4723
#, c-format
msgid "File names cannot contain “%c”"
msgstr "文件名不能包含“%c”"
-#: gio/gfile.c:6993 gio/gfile.c:7119
+#: gio/gfile.c:7155 gio/gfile.c:7281
#, c-format
msgid "Failed to create a temporary directory for template “%s”: %s"
msgstr "为模板“%s”创建临时目录失败:%s"
-#: gio/gfile.c:7408 gio/gvolume.c:366
+#: gio/gfile.c:7599 gio/gvolume.c:366
msgid "volume doesn’t implement mount"
msgstr "卷未实现挂载"
-#: gio/gfile.c:7522 gio/gfile.c:7599
+#: gio/gfile.c:7713 gio/gfile.c:7790
msgid "No application is registered as handling this file"
msgstr "没有应用程序注册为处理此文件的"
@@ -1447,11 +1464,11 @@ msgid "Enumerator is closed"
msgstr "枚举器已关闭"
#: gio/gfileenumerator.c:221 gio/gfileenumerator.c:280
-#: gio/gfileenumerator.c:379 gio/gfileenumerator.c:478
+#: gio/gfileenumerator.c:425 gio/gfileenumerator.c:525
msgid "File enumerator has outstanding operation"
msgstr "文件枚举器有异常操作"
-#: gio/gfileenumerator.c:370 gio/gfileenumerator.c:469
+#: gio/gfileenumerator.c:416 gio/gfileenumerator.c:516
msgid "File enumerator is already closed"
msgstr "文件枚举器已关闭"
@@ -1464,27 +1481,27 @@ msgstr "无法处理版本为 %d 的 GFileIcon 编码"
msgid "Malformed input data for GFileIcon"
msgstr "GFileIcon 有不正确的输入数据"
-#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:396
+#: gio/gfileinputstream.c:151 gio/gfileinputstream.c:397
#: gio/gfileiostream.c:169 gio/gfileoutputstream.c:166
#: gio/gfileoutputstream.c:499
msgid "Stream doesn’t support query_info"
msgstr "流不支持 query_info"
-#: gio/gfileinputstream.c:327 gio/gfileiostream.c:381
+#: gio/gfileinputstream.c:328 gio/gfileiostream.c:382
#: gio/gfileoutputstream.c:373
msgid "Seek not supported on stream"
msgstr "流不支持定位"
-#: gio/gfileinputstream.c:371
+#: gio/gfileinputstream.c:372
msgid "Truncate not allowed on input stream"
msgstr "输入流不允许截断"
-#: gio/gfileiostream.c:457 gio/gfileoutputstream.c:449
+#: gio/gfileiostream.c:458 gio/gfileoutputstream.c:449
msgid "Truncate not supported on stream"
msgstr "流不支持截断"
-#: gio/ghttpproxy.c:93 gio/gresolver.c:460 gio/gresolver.c:613
-#: glib/gconvert.c:1829
+#: gio/ghttpproxy.c:93 gio/gresolver.c:535 gio/gresolver.c:688
+#: glib/gconvert.c:1842
msgid "Invalid hostname"
msgstr "无效的主机名"
@@ -1517,37 +1534,37 @@ msgstr "HTTP 代理响应过大"
msgid "HTTP proxy server closed connection unexpectedly."
msgstr "HTTP 代理服务器意外关闭连接。"
-#: gio/gicon.c:300
+#: gio/gicon.c:299
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "错误的符号数量(%d)"
-#: gio/gicon.c:320
+#: gio/gicon.c:319
#, c-format
msgid "No type for class name %s"
msgstr "类名 %s 没有类型"
-#: gio/gicon.c:330
+#: gio/gicon.c:329
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "类型 %s 没有实现 GIcon 接口"
-#: gio/gicon.c:341
+#: gio/gicon.c:340
#, c-format
msgid "Type %s is not classed"
msgstr "类型 %s 不是类"
-#: gio/gicon.c:355
+#: gio/gicon.c:354
#, c-format
msgid "Malformed version number: %s"
msgstr "不正确的版本号:%s"
-#: gio/gicon.c:369
+#: gio/gicon.c:368
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "类型 %s 没有实现 GIcon 接口的 from_tokens() 方法"
-#: gio/gicon.c:471
+#: gio/gicon.c:470
msgid "Can’t handle the supplied version of the icon encoding"
msgstr "无法处理提供版本的图标编码"
@@ -1588,7 +1605,7 @@ msgstr "输入流未实现读取"
#. Translators: This is an error you get if there is
#. * already an operation running against this stream when
#. * you try to start one
-#: gio/ginputstream.c:1251 gio/giostream.c:312 gio/goutputstream.c:2210
+#: gio/ginputstream.c:1256 gio/giostream.c:312 gio/goutputstream.c:2218
msgid "Stream has outstanding operation"
msgstr "流有异常操作"
@@ -1694,12 +1711,12 @@ msgid "Error writing to stdout"
msgstr "写入到标准输出时出错"
#. Translators: commandline placeholder
-#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:379 gio/gio-tool-list.c:173
+#: gio/gio-tool-cat.c:135 gio/gio-tool-info.c:382 gio/gio-tool-list.c:176
#: gio/gio-tool-mkdir.c:50 gio/gio-tool-monitor.c:39 gio/gio-tool-monitor.c:41
#: gio/gio-tool-monitor.c:43 gio/gio-tool-monitor.c:45
-#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1202 gio/gio-tool-open.c:72
+#: gio/gio-tool-monitor.c:206 gio/gio-tool-mount.c:1236 gio/gio-tool-open.c:72
#: gio/gio-tool-remove.c:50 gio/gio-tool-rename.c:47 gio/gio-tool-set.c:95
-#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:241
+#: gio/gio-tool-trash.c:222 gio/gio-tool-tree.c:246
msgid "LOCATION"
msgstr "位置"
@@ -1716,8 +1733,8 @@ msgstr ""
"gio cat 如传统 cat 程序那样工作,但使用 GIO 位置而非本地文件:\n"
"例如,你可以指定 smb://server/resource/file.txt 之类的位置。"
-#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:410 gio/gio-tool-mkdir.c:78
-#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1253 gio/gio-tool-open.c:98
+#: gio/gio-tool-cat.c:164 gio/gio-tool-info.c:413 gio/gio-tool-mkdir.c:78
+#: gio/gio-tool-monitor.c:231 gio/gio-tool-mount.c:1287 gio/gio-tool-open.c:98
#: gio/gio-tool-remove.c:74 gio/gio-tool-trash.c:303
msgid "No locations given"
msgstr "未给定位置"
@@ -1812,57 +1829,64 @@ msgstr "不要跟随符号链接"
msgid "attributes:\n"
msgstr "属性:\n"
-#: gio/gio-tool-info.c:165 gio/gio-tool-info.c:174
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:166
#, c-format
msgid "display name: %s\n"
msgstr "显示名称:%s\n"
-#: gio/gio-tool-info.c:182
+#. Translators: This is a noun and represents and attribute of a file
+#: gio/gio-tool-info.c:176
+#, c-format
+msgid "edit name: %s\n"
+msgstr "编辑名称:%s\n"
+
+#: gio/gio-tool-info.c:184
#, c-format
msgid "name: %s\n"
msgstr "名称:%s\n"
-#: gio/gio-tool-info.c:189
+#: gio/gio-tool-info.c:191
#, c-format
msgid "type: %s\n"
msgstr "类型:%s\n"
-#: gio/gio-tool-info.c:195
+#: gio/gio-tool-info.c:197
msgid "size: "
msgstr "大小:"
-#: gio/gio-tool-info.c:200
+#: gio/gio-tool-info.c:203
msgid "hidden\n"
msgstr "隐藏\n"
-#: gio/gio-tool-info.c:203
+#: gio/gio-tool-info.c:206
#, c-format
msgid "uri: %s\n"
msgstr "uri:%s\n"
-#: gio/gio-tool-info.c:210
+#: gio/gio-tool-info.c:213
#, c-format
msgid "local path: %s\n"
msgstr "本地路径: %s\n"
-#: gio/gio-tool-info.c:244
+#: gio/gio-tool-info.c:247
#, c-format
msgid "unix mount: %s%s %s %s %s\n"
msgstr "UNIX 挂载:%s%s %s %s %s\n"
-#: gio/gio-tool-info.c:325
+#: gio/gio-tool-info.c:328
msgid "Settable attributes:\n"
msgstr "可设置的属性:\n"
-#: gio/gio-tool-info.c:349
+#: gio/gio-tool-info.c:352
msgid "Writable attribute namespaces:\n"
msgstr "可写的属性命名空间:\n"
-#: gio/gio-tool-info.c:384
+#: gio/gio-tool-info.c:387
msgid "Show information about locations."
msgstr "显示位置信息。"
-#: gio/gio-tool-info.c:386
+#: gio/gio-tool-info.c:389
msgid ""
"gio info is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -1925,11 +1949,11 @@ msgstr "显示名称"
msgid "Print full URIs"
msgstr "显示完整 URI"
-#: gio/gio-tool-list.c:178
+#: gio/gio-tool-list.c:181
msgid "List the contents of the locations."
msgstr "列出位置中的内容。"
-#: gio/gio-tool-list.c:180
+#: gio/gio-tool-list.c:183
msgid ""
"gio list is similar to the traditional ls utility, but using GIO\n"
"locations instead of local files: for example, you can use something\n"
@@ -2121,19 +2145,19 @@ msgstr "挂载 TCRYPT 隐藏卷"
msgid "Mount a TCRYPT system volume"
msgstr "挂载 TCRYPT 系统卷"
-#: gio/gio-tool-mount.c:268 gio/gio-tool-mount.c:300
+#: gio/gio-tool-mount.c:276 gio/gio-tool-mount.c:308
msgid "Anonymous access denied"
msgstr "匿名访问被拒绝"
-#: gio/gio-tool-mount.c:525
+#: gio/gio-tool-mount.c:559
msgid "No drive for device file"
msgstr "没有对应设备文件的驱动器"
-#: gio/gio-tool-mount.c:1017
+#: gio/gio-tool-mount.c:1051
msgid "No volume for given ID"
msgstr "没有对应ID的卷"
-#: gio/gio-tool-mount.c:1206
+#: gio/gio-tool-mount.c:1240
msgid "Mount or unmount the locations."
msgstr "挂载或卸载位置。"
@@ -2330,11 +2354,11 @@ msgstr "给定的位置没有以 trash:/// 开头"
msgid "Follow symbolic links, mounts and shortcuts"
msgstr "跟踪符号链接、挂载点及快捷方式"
-#: gio/gio-tool-tree.c:246
+#: gio/gio-tool-tree.c:251
msgid "List contents of directories in a tree-like format."
msgstr "使用树状格式列出目录内容。"
-#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1516
+#: gio/glib-compile-resources.c:142 gio/glib-compile-schemas.c:1514
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "在 <%2$s> 中不允许元素 <%1$s>"
@@ -2389,7 +2413,7 @@ msgstr "压缩文件时出错:%s"
msgid "text may not appear inside <%s>"
msgstr "<%s> 内不应出现文本"
-#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2174
+#: gio/glib-compile-resources.c:821 gio/glib-compile-schemas.c:2172
msgid "Show program version and exit"
msgstr "显示程序版本并退出"
@@ -2403,8 +2427,8 @@ msgid ""
"directory)"
msgstr "FILE 中引用的要从其中载入文件的目录(默认为当前目录)"
-#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2175
-#: gio/glib-compile-schemas.c:2204
+#: gio/glib-compile-resources.c:823 gio/glib-compile-schemas.c:2173
+#: gio/glib-compile-schemas.c:2203
msgid "DIRECTORY"
msgstr "目录"
@@ -2455,7 +2479,7 @@ msgstr "用于生成的源代码的 C 标识符名称"
msgid "The target C compiler (default: the CC environment variable)"
msgstr "目标 C 编译器(默认:CC 环境变量)"
-#: gio/glib-compile-resources.c:860
+#: gio/glib-compile-resources.c:861
msgid ""
"Compile a resource specification into a resource file.\n"
"Resource specification files have the extension .gresource.xml,\n"
@@ -2465,204 +2489,204 @@ msgstr ""
"资源规格文件以 .gresource.xml 为扩展名,\n"
"资源文件以 .gresource 为扩展名。"
-#: gio/glib-compile-resources.c:882
+#: gio/glib-compile-resources.c:893
msgid "You should give exactly one file name\n"
msgstr "您应该给定一个且只能一个文件名\n"
-#: gio/glib-compile-schemas.c:94
+#: gio/glib-compile-schemas.c:95
#, c-format
msgid "nick must be a minimum of 2 characters"
msgstr "昵称必须至少 2 个字符"
-#: gio/glib-compile-schemas.c:105
+#: gio/glib-compile-schemas.c:106
#, c-format
msgid "Invalid numeric value"
msgstr "无效的数值"
-#: gio/glib-compile-schemas.c:113
+#: gio/glib-compile-schemas.c:114
#, c-format
msgid "<value nick='%s'/> already specified"
msgstr "<value nick='%s'/> 已指定"
-#: gio/glib-compile-schemas.c:121
+#: gio/glib-compile-schemas.c:122
#, c-format
msgid "value='%s' already specified"
msgstr "value='%s' 已指定"
-#: gio/glib-compile-schemas.c:135
+#: gio/glib-compile-schemas.c:136
#, c-format
msgid "flags values must have at most 1 bit set"
msgstr "标志值最多只能设置 1 位"
-#: gio/glib-compile-schemas.c:160
+#: gio/glib-compile-schemas.c:161
#, c-format
msgid "<%s> must contain at least one <value>"
msgstr "<%s> 必须包含至少一个 <value>"
-#: gio/glib-compile-schemas.c:316
+#: gio/glib-compile-schemas.c:317
#, c-format
msgid "<%s> is not contained in the specified range"
msgstr "<%s> 不在指定的范围内"
-#: gio/glib-compile-schemas.c:328
+#: gio/glib-compile-schemas.c:329
#, c-format
msgid "<%s> is not a valid member of the specified enumerated type"
msgstr "<%s> 不是指定枚举类型的有效成员"
-#: gio/glib-compile-schemas.c:334
+#: gio/glib-compile-schemas.c:335
#, c-format
msgid "<%s> contains string not in the specified flags type"
msgstr "<%s> 包含了不在指定标志类型里的字符串"
-#: gio/glib-compile-schemas.c:340
+#: gio/glib-compile-schemas.c:341
#, c-format
msgid "<%s> contains a string not in <choices>"
msgstr "<%s> 包含了不在 <choices> 里的字符串"
-#: gio/glib-compile-schemas.c:374
+#: gio/glib-compile-schemas.c:375
msgid "<range/> already specified for this key"
msgstr "此键已被指定为 <range/>"
-#: gio/glib-compile-schemas.c:392
+#: gio/glib-compile-schemas.c:393
#, c-format
msgid "<range> not allowed for keys of type “%s”"
msgstr "“%s”类型的键不允许 <range>"
-#: gio/glib-compile-schemas.c:409
+#: gio/glib-compile-schemas.c:410
#, c-format
msgid "<range> specified minimum is greater than maximum"
msgstr "<range> 指定的最小值比最大值还大"
-#: gio/glib-compile-schemas.c:434
+#: gio/glib-compile-schemas.c:435
#, c-format
msgid "unsupported l10n category: %s"
msgstr "不支持的 l10n 目录:%s"
-#: gio/glib-compile-schemas.c:442
+#: gio/glib-compile-schemas.c:443
msgid "l10n requested, but no gettext domain given"
msgstr "已请求 l10n,但未给定 gettext 域"
-#: gio/glib-compile-schemas.c:454
+#: gio/glib-compile-schemas.c:455
msgid "translation context given for value without l10n enabled"
msgstr "值给定的翻译上下文未启用 l10n"
-#: gio/glib-compile-schemas.c:476
+#: gio/glib-compile-schemas.c:477
#, c-format
msgid "Failed to parse <default> value of type “%s”: "
msgstr "解析类型“%s”的 <default> 值失败:"
-#: gio/glib-compile-schemas.c:493
+#: gio/glib-compile-schemas.c:494
msgid ""
"<choices> cannot be specified for keys tagged as having an enumerated type"
msgstr "无法为标记为枚举类型的键指定 <choices>"
-#: gio/glib-compile-schemas.c:502
+#: gio/glib-compile-schemas.c:503
msgid "<choices> already specified for this key"
msgstr "此键已被指定为 <choices>"
-#: gio/glib-compile-schemas.c:514
+#: gio/glib-compile-schemas.c:515
#, c-format
msgid "<choices> not allowed for keys of type “%s”"
msgstr "“%s”类型的键不允许 <choices>"
-#: gio/glib-compile-schemas.c:530
+#: gio/glib-compile-schemas.c:531
#, c-format
msgid "<choice value='%s'/> already given"
msgstr "<choice value='%s'/> 已给定"
-#: gio/glib-compile-schemas.c:545
+#: gio/glib-compile-schemas.c:546
#, c-format
msgid "<choices> must contain at least one <choice>"
msgstr "<choices> 必须包含至少一个 <choice>"
-#: gio/glib-compile-schemas.c:559
+#: gio/glib-compile-schemas.c:560
msgid "<aliases> already specified for this key"
msgstr "此键已被指定为 <aliases>"
-#: gio/glib-compile-schemas.c:563
+#: gio/glib-compile-schemas.c:564
msgid ""
"<aliases> can only be specified for keys with enumerated or flags types or "
"after <choices>"
msgstr "<aliases> 只能被指定在枚举或标志类型的键上,或是在 <choices> 之后的键"
-#: gio/glib-compile-schemas.c:582
+#: gio/glib-compile-schemas.c:583
#, c-format
msgid ""
"<alias value='%s'/> given when “%s” is already a member of the enumerated "
"type"
msgstr "给定了 <alias value='%s'/>,但“%s”已经是枚举类型的成员"
-#: gio/glib-compile-schemas.c:588
+#: gio/glib-compile-schemas.c:589
#, c-format
msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
msgstr "给定了 <alias value='%s'/>,但 <choice value='%s'/> 已给定"
-#: gio/glib-compile-schemas.c:596
+#: gio/glib-compile-schemas.c:597
#, c-format
msgid "<alias value='%s'/> already specified"
msgstr "<alias value='%s'/> 已指定"
-#: gio/glib-compile-schemas.c:606
+#: gio/glib-compile-schemas.c:607
#, c-format
msgid "alias target “%s” is not in enumerated type"
msgstr "别名目标“%s”不在枚举类型内"
-#: gio/glib-compile-schemas.c:607
+#: gio/glib-compile-schemas.c:608
#, c-format
msgid "alias target “%s” is not in <choices>"
msgstr "别名目标“%s”不在 <choices> 内"
-#: gio/glib-compile-schemas.c:622
+#: gio/glib-compile-schemas.c:623
#, c-format
msgid "<aliases> must contain at least one <alias>"
msgstr "<aliases> 必须包含至少一个 <alias>"
-#: gio/glib-compile-schemas.c:799
+#: gio/glib-compile-schemas.c:797
msgid "Empty names are not permitted"
msgstr "不允许空名称"
-#: gio/glib-compile-schemas.c:809
+#: gio/glib-compile-schemas.c:807
#, c-format
msgid "Invalid name “%s”: names must begin with a lowercase letter"
msgstr "无效名称“%s”:名称必须以小写字母开始"
-#: gio/glib-compile-schemas.c:821
+#: gio/glib-compile-schemas.c:819
#, c-format
msgid ""
"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
"and hyphen (“-”) are permitted"
msgstr "无效名称“%s”:无效的字符“%c”;仅允许使用小写字母、数字和连字符(“-”)"
-#: gio/glib-compile-schemas.c:830
+#: gio/glib-compile-schemas.c:828
#, c-format
msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
msgstr "无效名称“%s”:不允许使用连续的连字符(“--”)"
-#: gio/glib-compile-schemas.c:839
+#: gio/glib-compile-schemas.c:837
#, c-format
msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
msgstr "无效名称“%s”:最后一个字符串不应为连字符(“-”)。"
-#: gio/glib-compile-schemas.c:847
+#: gio/glib-compile-schemas.c:845
#, c-format
msgid "Invalid name “%s”: maximum length is 1024"
msgstr "无效名称“%s”:最大长度为 1024"
-#: gio/glib-compile-schemas.c:919
+#: gio/glib-compile-schemas.c:917
#, c-format
msgid "<child name='%s'> already specified"
msgstr "<child name='%s'> 已指定"
-#: gio/glib-compile-schemas.c:945
+#: gio/glib-compile-schemas.c:943
msgid "Cannot add keys to a “list-of” schema"
msgstr "无法添加键到一个“list-of”架构"
-#: gio/glib-compile-schemas.c:956
+#: gio/glib-compile-schemas.c:954
#, c-format
msgid "<key name='%s'> already specified"
msgstr "<key name='%s'> 已指定"
-#: gio/glib-compile-schemas.c:974
+#: gio/glib-compile-schemas.c:972
#, c-format
msgid ""
"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2671,69 +2695,69 @@ msgstr ""
"<key name='%s'> 与 <key name='%s'> 在 <schema id='%s'> 重合; 请使用 "
"<override> 修改其值"
-#: gio/glib-compile-schemas.c:985
+#: gio/glib-compile-schemas.c:983
#, c-format
msgid ""
"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
"to <key>"
msgstr "“type”、“enum”或“flags”中必须有一个被指定为 <key> 的属性"
-#: gio/glib-compile-schemas.c:1004
+#: gio/glib-compile-schemas.c:1002
#, c-format
msgid "<%s id='%s'> not (yet) defined."
msgstr "<%s id='%s'> 尚未定义。"
-#: gio/glib-compile-schemas.c:1019
+#: gio/glib-compile-schemas.c:1017
#, c-format
msgid "Invalid GVariant type string “%s”"
msgstr "无效的 GVariant 类型字符串“%s”"
-#: gio/glib-compile-schemas.c:1049
+#: gio/glib-compile-schemas.c:1047
msgid "<override> given but schema isn’t extending anything"
msgstr "已给定 <override> 但架构并未扩展"
-#: gio/glib-compile-schemas.c:1062
+#: gio/glib-compile-schemas.c:1060
#, c-format
msgid "No <key name='%s'> to override"
msgstr "无 <key name='%s'> 可覆盖"
-#: gio/glib-compile-schemas.c:1070
+#: gio/glib-compile-schemas.c:1068
#, c-format
msgid "<override name='%s'> already specified"
msgstr "<override name='%s'> 已指定"
-#: gio/glib-compile-schemas.c:1143
+#: gio/glib-compile-schemas.c:1141
#, c-format
msgid "<schema id='%s'> already specified"
msgstr "<schema id='%s'> 已指定"
-#: gio/glib-compile-schemas.c:1155
+#: gio/glib-compile-schemas.c:1153
#, c-format
msgid "<schema id='%s'> extends not yet existing schema “%s”"
msgstr "<schema id='%s'> 扩展了尚不存在的架构“%s”"
-#: gio/glib-compile-schemas.c:1171
+#: gio/glib-compile-schemas.c:1169
#, c-format
msgid "<schema id='%s'> is list of not yet existing schema “%s”"
msgstr "<schema id='%s'> 是尚不存在的架构“%s”的列表"
-#: gio/glib-compile-schemas.c:1179
+#: gio/glib-compile-schemas.c:1177
#, c-format
msgid "Cannot be a list of a schema with a path"
msgstr "不能是带有路径架构的列表"
-#: gio/glib-compile-schemas.c:1189
+#: gio/glib-compile-schemas.c:1187
#, c-format
msgid "Cannot extend a schema with a path"
msgstr "无法扩展带有路径的架构"
-#: gio/glib-compile-schemas.c:1199
+#: gio/glib-compile-schemas.c:1197
#, c-format
msgid ""
"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr "<schema id='%s'> 是一个列表,扩展的 <schema id='%s'> 不是列表"
-#: gio/glib-compile-schemas.c:1209
+#: gio/glib-compile-schemas.c:1207
#, c-format
msgid ""
"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2742,17 +2766,17 @@ msgstr ""
"<schema id='%s' list-of='%s'> 扩展 <schema id='%s' list-of='%s'>,但“%s”不扩"
"展“%s”"
-#: gio/glib-compile-schemas.c:1226
+#: gio/glib-compile-schemas.c:1224
#, c-format
msgid "A path, if given, must begin and end with a slash"
msgstr "一个路径,如果给定则必须以斜线(/)开始和结束"
-#: gio/glib-compile-schemas.c:1233
+#: gio/glib-compile-schemas.c:1231
#, c-format
msgid "The path of a list must end with “:/”"
msgstr "一个列表的路径必须以“:/”结束"
-#: gio/glib-compile-schemas.c:1242
+#: gio/glib-compile-schemas.c:1240
#, c-format
msgid ""
"Warning: Schema “%s” has path “%s”. Paths starting with “/apps/”, “/"
@@ -2761,56 +2785,56 @@ msgstr ""
"警告:架构“%s”带有路径“%s”。以“/apps/”、“/desktop/”或“/system/”开头的路径已弃"
"用。"
-#: gio/glib-compile-schemas.c:1272
+#: gio/glib-compile-schemas.c:1270
#, c-format
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> 已指定"
-#: gio/glib-compile-schemas.c:1422 gio/glib-compile-schemas.c:1438
+#: gio/glib-compile-schemas.c:1420 gio/glib-compile-schemas.c:1436
#, c-format
msgid "Only one <%s> element allowed inside <%s>"
msgstr "在 <%2$s> 中仅允许一个成员 <%1$s>"
-#: gio/glib-compile-schemas.c:1520
+#: gio/glib-compile-schemas.c:1518
#, c-format
msgid "Element <%s> not allowed at the top level"
msgstr "顶层中不允许元素 <%s>"
-#: gio/glib-compile-schemas.c:1538
+#: gio/glib-compile-schemas.c:1536
msgid "Element <default> is required in <key>"
msgstr "<key> 里不需要元素 <default>"
-#: gio/glib-compile-schemas.c:1628
+#: gio/glib-compile-schemas.c:1626
#, c-format
msgid "Text may not appear inside <%s>"
msgstr "<%s> 内不应出现文本"
-#: gio/glib-compile-schemas.c:1696
+#: gio/glib-compile-schemas.c:1694
#, c-format
msgid "Warning: undefined reference to <schema id='%s'/>"
msgstr "警告:到 <schema id='%s'/> 的引用未定义"
#. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1835 gio/glib-compile-schemas.c:1914
+#: gio/glib-compile-schemas.c:1833 gio/glib-compile-schemas.c:1912
msgid "--strict was specified; exiting."
msgstr "指定了 --strict;正在退出。"
-#: gio/glib-compile-schemas.c:1847
+#: gio/glib-compile-schemas.c:1845
msgid "This entire file has been ignored."
msgstr "整个文件被忽略。"
-#: gio/glib-compile-schemas.c:1910
+#: gio/glib-compile-schemas.c:1908
msgid "Ignoring this file."
msgstr "正在忽略此文件。"
-#: gio/glib-compile-schemas.c:1965
+#: gio/glib-compile-schemas.c:1963
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s”; ignoring "
"override for this key."
msgstr "覆盖文件“%3$s”中指定的架构“%2$s”中没有键“%1$s”;正在忽略对此键的覆盖。"
-#: gio/glib-compile-schemas.c:1973
+#: gio/glib-compile-schemas.c:1971
#, c-format
msgid ""
"No such key “%s” in schema “%s” as specified in override file “%s” and --"
@@ -2818,7 +2842,7 @@ msgid ""
msgstr ""
"覆盖文件“%3$s”中指定的架构“%2$s”中没有键“%1$s”并且已指定 --strict;正在退出。"
-#: gio/glib-compile-schemas.c:1995
+#: gio/glib-compile-schemas.c:1993
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2827,7 +2851,7 @@ msgstr ""
"无法为架构“%2$s”中的局部键“%1$s”提供每个桌面的覆盖(覆盖文件“%3$s”);正在忽"
"略对此键的覆盖。"
-#: gio/glib-compile-schemas.c:2004
+#: gio/glib-compile-schemas.c:2002
#, c-format
msgid ""
"Cannot provide per-desktop overrides for localized key “%s” in schema "
@@ -2836,7 +2860,7 @@ msgstr ""
"无法为架构“%2$s”中的局部键“%1$s”提供每个桌面的覆盖(覆盖文件“%3$s”)并且已指"
"定 --strict;正在退出。"
-#: gio/glib-compile-schemas.c:2028
+#: gio/glib-compile-schemas.c:2026
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2845,7 +2869,7 @@ msgstr ""
"解析覆盖文件“%3$s”所指定架构“%2$s”中的键“%1$s”时出错:%4$s。正在忽略对此键的"
"覆盖。"
-#: gio/glib-compile-schemas.c:2040
+#: gio/glib-compile-schemas.c:2038
#, c-format
msgid ""
"Error parsing key “%s” in schema “%s” as specified in override file “%s”: "
@@ -2854,7 +2878,7 @@ msgstr ""
"解析覆盖文件“%3$s”所指定架构“%2$s”中的键“%1$s”时出错:%4$s。已指定 --strict;"
"正在退出。"
-#: gio/glib-compile-schemas.c:2067
+#: gio/glib-compile-schemas.c:2065
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2863,7 +2887,7 @@ msgstr ""
"覆盖文件“%3$s”中架构“%2$s”的键“%1$s”的覆盖超出了架构给出的范围;正在忽略对此"
"键的覆盖。"
-#: gio/glib-compile-schemas.c:2077
+#: gio/glib-compile-schemas.c:2075
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is outside the "
@@ -2872,7 +2896,7 @@ msgstr ""
"覆盖文件“%3$s”中架构“%2$s”的键“%1$s”的覆盖超出了架构给出的范围并且已指定 --"
"strict;正在退出。"
-#: gio/glib-compile-schemas.c:2103
+#: gio/glib-compile-schemas.c:2101
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2881,7 +2905,7 @@ msgstr ""
"覆盖文件“%3$s”中架构“%2$s”的键“%1$s”的覆盖的值不在有效值列表内;正在忽略对此"
"键的覆盖。"
-#: gio/glib-compile-schemas.c:2113
+#: gio/glib-compile-schemas.c:2111
#, c-format
msgid ""
"Override for key “%s” in schema “%s” in override file “%s” is not in the "
@@ -2890,23 +2914,23 @@ msgstr ""
"覆盖文件“%3$s”中架构“%2$s”的键“%1$s”的覆盖的值不在有效值列表内并且已指定 --"
"strict;正在退出。"
-#: gio/glib-compile-schemas.c:2175
+#: gio/glib-compile-schemas.c:2173
msgid "Where to store the gschemas.compiled file"
msgstr "gschemas.compiled 文件存储于何处"
-#: gio/glib-compile-schemas.c:2176
+#: gio/glib-compile-schemas.c:2174
msgid "Abort on any errors in schemas"
msgstr "在架构里出现任何错误时中止"
-#: gio/glib-compile-schemas.c:2177
+#: gio/glib-compile-schemas.c:2175
msgid "Do not write the gschema.compiled file"
msgstr "不要对 gschema.compiled 进行写操作"
-#: gio/glib-compile-schemas.c:2178
+#: gio/glib-compile-schemas.c:2176
msgid "Do not enforce key name restrictions"
msgstr "不要强制键名的限制"
-#: gio/glib-compile-schemas.c:2207
+#: gio/glib-compile-schemas.c:2206
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -2916,24 +2940,24 @@ msgstr ""
"要使用扩展 .gschema.xml,需要有架构文件,\n"
"缓存文件被称为 gschemas.compiled。"
-#: gio/glib-compile-schemas.c:2228
+#: gio/glib-compile-schemas.c:2238
msgid "You should give exactly one directory name"
msgstr "您应该给出一个且仅一个的目录名"
-#: gio/glib-compile-schemas.c:2271
+#: gio/glib-compile-schemas.c:2285
msgid "No schema files found: doing nothing."
msgstr "未找到架构文件:无事可做。"
-#: gio/glib-compile-schemas.c:2273
+#: gio/glib-compile-schemas.c:2287
msgid "No schema files found: removed existing output file."
msgstr "未找到架构文件:已删除存在的输出文件。"
-#: gio/glocalfile.c:563 gio/win32/gwinhttpfile.c:436
+#: gio/glocalfile.c:570 gio/win32/gwinhttpfile.c:436
#, c-format
msgid "Invalid filename %s"
msgstr "无效的文件名 %s"
-#: gio/glocalfile.c:996
+#: gio/glocalfile.c:1012
#, c-format
msgid "Error getting filesystem info for %s: %s"
msgstr "读取 %s 文件系统信息时出错:%s"
@@ -2942,254 +2966,254 @@ msgstr "读取 %s 文件系统信息时出错:%s"
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
#.
-#: gio/glocalfile.c:1137
+#: gio/glocalfile.c:1148
#, c-format
msgid "Containing mount for file %s not found"
msgstr "找不到文件 %s 包含的挂载"
-#: gio/glocalfile.c:1160
+#: gio/glocalfile.c:1171
msgid "Can’t rename root directory"
msgstr "无法重命名根目录"
-#: gio/glocalfile.c:1178 gio/glocalfile.c:1201
+#: gio/glocalfile.c:1189 gio/glocalfile.c:1212
#, c-format
msgid "Error renaming file %s: %s"
msgstr "重命名文件 %s 时出错:%s"
-#: gio/glocalfile.c:1185
+#: gio/glocalfile.c:1196
msgid "Can’t rename file, filename already exists"
msgstr "无法重命名文件,该文件名已存在"
-#: gio/glocalfile.c:1198 gio/glocalfile.c:2394 gio/glocalfile.c:2422
-#: gio/glocalfile.c:2561 gio/glocalfileoutputstream.c:658
+#: gio/glocalfile.c:1209 gio/glocalfile.c:2412 gio/glocalfile.c:2440
+#: gio/glocalfile.c:2579 gio/glocalfileoutputstream.c:658
msgid "Invalid filename"
msgstr "无效的文件名"
-#: gio/glocalfile.c:1366 gio/glocalfile.c:1377
+#: gio/glocalfile.c:1377 gio/glocalfile.c:1388
#, c-format
msgid "Error opening file %s: %s"
msgstr "打开文件 %s 时出错:%s"
-#: gio/glocalfile.c:1502
+#: gio/glocalfile.c:1513
#, c-format
msgid "Error removing file %s: %s"
msgstr "删除文件 %s 时出错:%s"
-#: gio/glocalfile.c:1996 gio/glocalfile.c:2007 gio/glocalfile.c:2034
+#: gio/glocalfile.c:2007 gio/glocalfile.c:2018 gio/glocalfile.c:2045
#, c-format
msgid "Error trashing file %s: %s"
msgstr "将文件 %s 丢到回收站时出错:%s"
-#: gio/glocalfile.c:2054
+#: gio/glocalfile.c:2065
#, c-format
msgid "Unable to create trash directory %s: %s"
msgstr "无法创建回收站目录 %s:%s"
-#: gio/glocalfile.c:2075
+#: gio/glocalfile.c:2086
#, c-format
msgid "Unable to find toplevel directory to trash %s"
msgstr "找不到回收站 %s 的顶级目录"
-#: gio/glocalfile.c:2083
+#: gio/glocalfile.c:2094
#, c-format
msgid "Trashing on system internal mounts is not supported"
msgstr "不支持在系统内部挂载上的丢弃到回收站操作"
-#: gio/glocalfile.c:2169 gio/glocalfile.c:2197
+#: gio/glocalfile.c:2180 gio/glocalfile.c:2208
#, c-format
msgid "Unable to find or create trash directory %s to trash %s"
msgstr "无法找到或创建回收站目录 %s 来丢弃 %s"
-#: gio/glocalfile.c:2243
+#: gio/glocalfile.c:2252
#, c-format
msgid "Unable to create trashing info file for %s: %s"
msgstr "为 %s 创建回收站信息文件失败:%s"
-#: gio/glocalfile.c:2305
+#: gio/glocalfile.c:2323
#, c-format
msgid "Unable to trash file %s across filesystem boundaries"
msgstr "无法跨越文件系统边界将文件 %s 丢到回收站"
-#: gio/glocalfile.c:2309 gio/glocalfile.c:2365
+#: gio/glocalfile.c:2327 gio/glocalfile.c:2383
#, c-format
msgid "Unable to trash file %s: %s"
msgstr "无法将文件 %s 丢到回收站:%s"
-#: gio/glocalfile.c:2371
+#: gio/glocalfile.c:2389
#, c-format
msgid "Unable to trash file %s"
msgstr "无法将文件 %s 丢到回收站"
-#: gio/glocalfile.c:2397
+#: gio/glocalfile.c:2415
#, c-format
msgid "Error creating directory %s: %s"
msgstr "创建目录 %s 时出错:%s"
-#: gio/glocalfile.c:2426
+#: gio/glocalfile.c:2444
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "文件系统不支持符号链接"
-#: gio/glocalfile.c:2429
+#: gio/glocalfile.c:2447
#, c-format
msgid "Error making symbolic link %s: %s"
msgstr "创建符号链接 %s 时出错:%s"
-#: gio/glocalfile.c:2472 gio/glocalfile.c:2507 gio/glocalfile.c:2564
+#: gio/glocalfile.c:2490 gio/glocalfile.c:2525 gio/glocalfile.c:2582
#, c-format
msgid "Error moving file %s: %s"
msgstr "移动文件 %s 时出错:%s"
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2513
msgid "Can’t move directory over directory"
msgstr "无法将目录移动到目录"
-#: gio/glocalfile.c:2521 gio/glocalfileoutputstream.c:1110
+#: gio/glocalfile.c:2539 gio/glocalfileoutputstream.c:1110
#: gio/glocalfileoutputstream.c:1124 gio/glocalfileoutputstream.c:1139
#: gio/glocalfileoutputstream.c:1156 gio/glocalfileoutputstream.c:1170
msgid "Backup file creation failed"
msgstr "备份文件创建失败"
-#: gio/glocalfile.c:2540
+#: gio/glocalfile.c:2558
#, c-format
msgid "Error removing target file: %s"
msgstr "移除目标文件出错:%s"
-#: gio/glocalfile.c:2554
+#: gio/glocalfile.c:2572
msgid "Move between mounts not supported"
msgstr "不支持在挂载之间移动"
-#: gio/glocalfile.c:2728
+#: gio/glocalfile.c:2748
#, c-format
msgid "Could not determine the disk usage of %s: %s"
msgstr "无法确定 %s 的磁盘使用情况:%s"
-#: gio/glocalfileinfo.c:775
+#: gio/glocalfileinfo.c:765
msgid "Attribute value must be non-NULL"
msgstr "属性值必须为非空"
-#: gio/glocalfileinfo.c:782
+#: gio/glocalfileinfo.c:772
msgid "Invalid attribute type (string or invalid expected)"
msgstr "无效的属性类型(应为字符串或无效)"
-#: gio/glocalfileinfo.c:789
+#: gio/glocalfileinfo.c:779
msgid "Invalid extended attribute name"
msgstr "无效的扩展属性名"
-#: gio/glocalfileinfo.c:840
+#: gio/glocalfileinfo.c:830
#, c-format
msgid "Error setting extended attribute “%s”: %s"
msgstr "设置扩展属性“%s”时出错:%s"
-#: gio/glocalfileinfo.c:1738 gio/win32/gwinhttpfile.c:191
+#: gio/glocalfileinfo.c:1785 gio/win32/gwinhttpfile.c:191
msgid " (invalid encoding)"
msgstr " (无效的编码)"
-#: gio/glocalfileinfo.c:1897 gio/glocalfileoutputstream.c:945
+#: gio/glocalfileinfo.c:1944 gio/glocalfileoutputstream.c:945
#: gio/glocalfileoutputstream.c:997
#, c-format
msgid "Error when getting information for file “%s”: %s"
msgstr "获取文件“%s”的信息时出错:%s"
-#: gio/glocalfileinfo.c:2163
+#: gio/glocalfileinfo.c:2250
#, c-format
msgid "Error when getting information for file descriptor: %s"
msgstr "获取文件描述符的信息时出错:%s"
-#: gio/glocalfileinfo.c:2208
+#: gio/glocalfileinfo.c:2295
msgid "Invalid attribute type (uint32 expected)"
msgstr "无效的属性类型(应为 uint32)"
-#: gio/glocalfileinfo.c:2226
+#: gio/glocalfileinfo.c:2313
msgid "Invalid attribute type (uint64 expected)"
msgstr "无效的属性类型(应为 uint64)"
-#: gio/glocalfileinfo.c:2245 gio/glocalfileinfo.c:2264
+#: gio/glocalfileinfo.c:2332 gio/glocalfileinfo.c:2351
msgid "Invalid attribute type (byte string expected)"
msgstr "无效的属性类型(应为字节字符串)"
-#: gio/glocalfileinfo.c:2311
+#: gio/glocalfileinfo.c:2398
msgid "Cannot set permissions on symlinks"
msgstr "无法为符号链接设置权限"
-#: gio/glocalfileinfo.c:2327
+#: gio/glocalfileinfo.c:2414
#, c-format
msgid "Error setting permissions: %s"
msgstr "设置访问权限出错:%s"
-#: gio/glocalfileinfo.c:2378
+#: gio/glocalfileinfo.c:2465
#, c-format
msgid "Error setting owner: %s"
msgstr "设置所有者出错:%s"
-#: gio/glocalfileinfo.c:2401
+#: gio/glocalfileinfo.c:2488
msgid "symlink must be non-NULL"
msgstr "符号链接必须是非空"
-#: gio/glocalfileinfo.c:2411 gio/glocalfileinfo.c:2430
-#: gio/glocalfileinfo.c:2441
+#: gio/glocalfileinfo.c:2498 gio/glocalfileinfo.c:2517
+#: gio/glocalfileinfo.c:2528
#, c-format
msgid "Error setting symlink: %s"
msgstr "设置符号链接出错:%s"
-#: gio/glocalfileinfo.c:2420
+#: gio/glocalfileinfo.c:2507
msgid "Error setting symlink: file is not a symlink"
msgstr "设定符号链接出错:文件不是符号链接"
-#: gio/glocalfileinfo.c:2492
+#: gio/glocalfileinfo.c:2599
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld are negative"
msgstr "额外的纳秒数字 %d 在 UNIX 时间戳 %lld 中是负值"
-#: gio/glocalfileinfo.c:2501
+#: gio/glocalfileinfo.c:2608
#, c-format
msgid "Extra nanoseconds %d for UNIX timestamp %lld reach 1 second"
msgstr "额外的纳秒数字 %d 在 UNIX 时间戳 %lld 中长度已达到一秒钟"
-#: gio/glocalfileinfo.c:2511
+#: gio/glocalfileinfo.c:2618
#, c-format
msgid "UNIX timestamp %lld does not fit into 64 bits"
msgstr "UNIX 时间戳 %lld 无法作为 64 比特数据存储"
-#: gio/glocalfileinfo.c:2522
+#: gio/glocalfileinfo.c:2629
#, c-format
msgid "UNIX timestamp %lld is outside of the range supported by Windows"
msgstr "UNIX 时间戳 %lld 位于 Windows 所支持的范围之外"
-#: gio/glocalfileinfo.c:2625
+#: gio/glocalfileinfo.c:2761
#, c-format
msgid "File name “%s” cannot be converted to UTF-16"
msgstr "文件名“%s”不能转换为 UTF-16"
-#: gio/glocalfileinfo.c:2644
+#: gio/glocalfileinfo.c:2780
#, c-format
msgid "File “%s” cannot be opened: Windows Error %lu"
msgstr "无法打开文件“%s”:Windows 错误 %lu"
-#: gio/glocalfileinfo.c:2657
+#: gio/glocalfileinfo.c:2793
#, c-format
msgid "Error setting modification or access time for file “%s”: %lu"
msgstr "设置文件“%s”的修改或访问时间时出错:%lu"
-#: gio/glocalfileinfo.c:2798 gio/glocalfileinfo.c:2810
+#: gio/glocalfileinfo.c:2950
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "设置修改或访问时间时出错:%s"
-#: gio/glocalfileinfo.c:2833
+#: gio/glocalfileinfo.c:2973
msgid "SELinux context must be non-NULL"
msgstr "SELinux 上下文必须是非空"
-#: gio/glocalfileinfo.c:2840
+#: gio/glocalfileinfo.c:2980
msgid "SELinux is not enabled on this system"
msgstr "此系统尚未启用 SELinux"
-#: gio/glocalfileinfo.c:2850
+#: gio/glocalfileinfo.c:2990
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "设置 SELinux 上下文出错:%s"
-#: gio/glocalfileinfo.c:2947
+#: gio/glocalfileinfo.c:3087
#, c-format
msgid "Setting attribute %s not supported"
msgstr "不支持设置属性 %s"
@@ -3236,13 +3260,13 @@ msgstr "创建备份拷贝:%s"
msgid "Error renaming temporary file: %s"
msgstr "重命名临时文件出错:%s"
-#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1241
+#: gio/glocalfileoutputstream.c:611 gio/glocalfileoutputstream.c:1242
#, c-format
msgid "Error truncating file: %s"
msgstr "截断文件出错:%s"
#: gio/glocalfileoutputstream.c:664 gio/glocalfileoutputstream.c:909
-#: gio/glocalfileoutputstream.c:1222 gio/gsubprocess.c:231
+#: gio/glocalfileoutputstream.c:1223 gio/gsubprocess.c:231
#, c-format
msgid "Error opening file “%s”: %s"
msgstr "打开文件“%s”出错:%s"
@@ -3259,7 +3283,7 @@ msgstr "目标文件不是普通文件"
msgid "The file was externally modified"
msgstr "文件已经被其他程序修改"
-#: gio/glocalfileoutputstream.c:1204
+#: gio/glocalfileoutputstream.c:1205
#, c-format
msgid "Error removing old file: %s"
msgstr "移除旧文件出错:%s"
@@ -3388,42 +3412,42 @@ msgstr "NetworkManager 版本太老"
msgid "Output stream doesn’t implement write"
msgstr "输出流未实现写入"
-#: gio/goutputstream.c:474 gio/goutputstream.c:1535
+#: gio/goutputstream.c:474 gio/goutputstream.c:1539
#, c-format
msgid "Sum of vectors passed to %s too large"
msgstr "传递给 %s 的向量和太大"
-#: gio/goutputstream.c:738 gio/goutputstream.c:1763
+#: gio/goutputstream.c:738 gio/goutputstream.c:1769
msgid "Source stream is already closed"
msgstr "源流已经关闭"
-#: gio/gproxyaddressenumerator.c:324 gio/gproxyaddressenumerator.c:342
+#: gio/gproxyaddressenumerator.c:329 gio/gproxyaddressenumerator.c:347
msgid "Unspecified proxy lookup failure"
msgstr "未指定的代理查询失败"
#. Translators: the first placeholder is a domain name, the
#. * second is an error message
-#: gio/gresolver.c:403 gio/gthreadedresolver.c:152 gio/gthreadedresolver.c:170
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gresolver.c:478 gio/gthreadedresolver.c:317 gio/gthreadedresolver.c:338
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
#, c-format
msgid "Error resolving “%s”: %s"
msgstr "解析“%s”时出错:%s"
#. Translators: The placeholder is for a function name.
-#: gio/gresolver.c:472 gio/gresolver.c:632
+#: gio/gresolver.c:547 gio/gresolver.c:707
#, c-format
msgid "%s not implemented"
msgstr "%s 尚未实现"
-#: gio/gresolver.c:1001 gio/gresolver.c:1053
+#: gio/gresolver.c:1076 gio/gresolver.c:1128
msgid "Invalid domain"
msgstr "无效的域"
#: gio/gresource.c:683 gio/gresource.c:945 gio/gresource.c:985
#: gio/gresource.c:1109 gio/gresource.c:1181 gio/gresource.c:1255
-#: gio/gresource.c:1336 gio/gresourcefile.c:478 gio/gresourcefile.c:601
-#: gio/gresourcefile.c:752
+#: gio/gresource.c:1336 gio/gresourcefile.c:482 gio/gresourcefile.c:606
+#: gio/gresourcefile.c:757
#, c-format
msgid "The resource at “%s” does not exist"
msgstr "位于“%s”的资源不存在"
@@ -3433,16 +3457,16 @@ msgstr "位于“%s”的资源不存在"
msgid "The resource at “%s” failed to decompress"
msgstr "解压位于“%s”的资源失败"
-#: gio/gresourcefile.c:658
+#: gio/gresourcefile.c:663
msgid "Resource files cannot be renamed"
msgstr "无法重命名资源文件"
-#: gio/gresourcefile.c:748
+#: gio/gresourcefile.c:753
#, c-format
msgid "The resource at “%s” is not a directory"
msgstr "“%s”处的资源不是一个目录"
-#: gio/gresourcefile.c:956
+#: gio/gresourcefile.c:961
msgid "Input stream doesn’t implement seek"
msgstr "输入流未实现定位"
@@ -3807,7 +3831,8 @@ msgstr "无效的套接字,初始化失败的原因是:%s"
msgid "Socket is already closed"
msgstr "套接字已经关闭"
-#: gio/gsocket.c:449 gio/gsocket.c:3201 gio/gsocket.c:4434 gio/gsocket.c:4492
+#: gio/gsocket.c:449 gio/gsocket.c:3238 gio/gsocket.c:4469 gio/gsocket.c:4527
+#: gio/gthreadedresolver.c:1445
msgid "Socket I/O timed out"
msgstr "套接字 I/O 超时"
@@ -3817,159 +3842,159 @@ msgstr "套接字 I/O 超时"
msgid "creating GSocket from fd: %s"
msgstr "正在从文件描述符创建 GSocket:%s"
-#: gio/gsocket.c:615 gio/gsocket.c:679 gio/gsocket.c:686
+#: gio/gsocket.c:646 gio/gsocket.c:714 gio/gsocket.c:721
#, c-format
msgid "Unable to create socket: %s"
msgstr "无法创建套接字:%s"
-#: gio/gsocket.c:679
+#: gio/gsocket.c:714
msgid "Unknown family was specified"
msgstr "指定了未知协议族"
-#: gio/gsocket.c:686
+#: gio/gsocket.c:721
msgid "Unknown protocol was specified"
msgstr "指定了未知协议"
-#: gio/gsocket.c:1177
+#: gio/gsocket.c:1190
#, c-format
msgid "Cannot use datagram operations on a non-datagram socket."
msgstr "无法在非数据报套接字上使用数据报操作。"
-#: gio/gsocket.c:1194
+#: gio/gsocket.c:1207
#, c-format
msgid "Cannot use datagram operations on a socket with a timeout set."
msgstr "无法在已设置超时的套接字上使用数据报操作。"
-#: gio/gsocket.c:2001
+#: gio/gsocket.c:2014
#, c-format
msgid "could not get local address: %s"
msgstr "无法获取本地地址:%s"
-#: gio/gsocket.c:2047
+#: gio/gsocket.c:2060
#, c-format
msgid "could not get remote address: %s"
msgstr "无法获取远程地址: %s"
-#: gio/gsocket.c:2113
+#: gio/gsocket.c:2126
#, c-format
msgid "could not listen: %s"
msgstr "无法监听:%s"
-#: gio/gsocket.c:2217
+#: gio/gsocket.c:2230
#, c-format
msgid "Error binding to address %s: %s"
msgstr "绑定地址时出错:%s: %s"
-#: gio/gsocket.c:2392 gio/gsocket.c:2429 gio/gsocket.c:2539 gio/gsocket.c:2564
-#: gio/gsocket.c:2631 gio/gsocket.c:2689 gio/gsocket.c:2707
+#: gio/gsocket.c:2405 gio/gsocket.c:2442 gio/gsocket.c:2552 gio/gsocket.c:2577
+#: gio/gsocket.c:2644 gio/gsocket.c:2702 gio/gsocket.c:2720
#, c-format
msgid "Error joining multicast group: %s"
msgstr "加入多播组时出错:%s"
-#: gio/gsocket.c:2393 gio/gsocket.c:2430 gio/gsocket.c:2540 gio/gsocket.c:2565
-#: gio/gsocket.c:2632 gio/gsocket.c:2690 gio/gsocket.c:2708
+#: gio/gsocket.c:2406 gio/gsocket.c:2443 gio/gsocket.c:2553 gio/gsocket.c:2578
+#: gio/gsocket.c:2645 gio/gsocket.c:2703 gio/gsocket.c:2721
#, c-format
msgid "Error leaving multicast group: %s"
msgstr "退出多播组时出错:%s"
-#: gio/gsocket.c:2394
+#: gio/gsocket.c:2407
msgid "No support for source-specific multicast"
msgstr "不支持指定源的多播"
-#: gio/gsocket.c:2541
+#: gio/gsocket.c:2554
msgid "Unsupported socket family"
msgstr "不支持的套接字家族"
-#: gio/gsocket.c:2566
+#: gio/gsocket.c:2579
msgid "source-specific not an IPv4 address"
msgstr "指定源不是 IPv4 地址"
-#: gio/gsocket.c:2590
+#: gio/gsocket.c:2603
#, c-format
msgid "Interface name too long"
msgstr "接口名太长"
-#: gio/gsocket.c:2603 gio/gsocket.c:2657
+#: gio/gsocket.c:2616 gio/gsocket.c:2670
#, c-format
msgid "Interface not found: %s"
msgstr "未找到接口:%s"
-#: gio/gsocket.c:2633
+#: gio/gsocket.c:2646
msgid "No support for IPv4 source-specific multicast"
msgstr "不支持 IPv4 指定源的多播"
-#: gio/gsocket.c:2691
+#: gio/gsocket.c:2704
msgid "No support for IPv6 source-specific multicast"
msgstr "不支持 IPv6 指定源的多播"
-#: gio/gsocket.c:2900
+#: gio/gsocket.c:2937
#, c-format
msgid "Error accepting connection: %s"
msgstr "接受连接时出错:%s"
-#: gio/gsocket.c:3026
+#: gio/gsocket.c:3063
msgid "Connection in progress"
msgstr "连接进行中"
-#: gio/gsocket.c:3077
+#: gio/gsocket.c:3114
msgid "Unable to get pending error: "
msgstr "无法获取未决的错误:"
-#: gio/gsocket.c:3266
+#: gio/gsocket.c:3303
#, c-format
msgid "Error receiving data: %s"
msgstr "接收数据时出错:%s"
-#: gio/gsocket.c:3463
+#: gio/gsocket.c:3500
#, c-format
msgid "Error sending data: %s"
msgstr "发送数据时出错:%s"
-#: gio/gsocket.c:3650
+#: gio/gsocket.c:3687
#, c-format
msgid "Unable to shutdown socket: %s"
msgstr "无法关闭套接字:%s"
-#: gio/gsocket.c:3731
+#: gio/gsocket.c:3768
#, c-format
msgid "Error closing socket: %s"
msgstr "关闭套接字时出错:%s"
-#: gio/gsocket.c:4427
+#: gio/gsocket.c:4462
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "等待套接字状态:%s"
-#: gio/gsocket.c:4817 gio/gsocket.c:4833 gio/gsocket.c:4846
+#: gio/gsocket.c:4852 gio/gsocket.c:4868 gio/gsocket.c:4881
#, c-format
msgid "Unable to send message: %s"
msgstr "无法发送信息:%s"
-#: gio/gsocket.c:4818 gio/gsocket.c:4834 gio/gsocket.c:4847
+#: gio/gsocket.c:4853 gio/gsocket.c:4869 gio/gsocket.c:4882
msgid "Message vectors too large"
msgstr "信息向量过大"
-#: gio/gsocket.c:4863 gio/gsocket.c:4865 gio/gsocket.c:5012 gio/gsocket.c:5097
-#: gio/gsocket.c:5275 gio/gsocket.c:5315 gio/gsocket.c:5317
+#: gio/gsocket.c:4898 gio/gsocket.c:4900 gio/gsocket.c:5047 gio/gsocket.c:5132
+#: gio/gsocket.c:5310 gio/gsocket.c:5350 gio/gsocket.c:5352
#, c-format
msgid "Error sending message: %s"
msgstr "发送信息时出错:%s"
-#: gio/gsocket.c:5039
+#: gio/gsocket.c:5074
msgid "GSocketControlMessage not supported on Windows"
msgstr "Windows 不支持 GSocketControlMessage"
-#: gio/gsocket.c:5512 gio/gsocket.c:5588 gio/gsocket.c:5814
+#: gio/gsocket.c:5547 gio/gsocket.c:5623 gio/gsocket.c:5849
#, c-format
msgid "Error receiving message: %s"
msgstr "接受信息时出错:%s"
-#: gio/gsocket.c:6099 gio/gsocket.c:6110 gio/gsocket.c:6173
+#: gio/gsocket.c:6134 gio/gsocket.c:6145 gio/gsocket.c:6208
#, c-format
msgid "Unable to read socket credentials: %s"
msgstr "无法读取套接字认证信息:%s"
-#: gio/gsocket.c:6182
+#: gio/gsocket.c:6217
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "此操作系统上没有实现 g_socket_get_credentials"
@@ -4089,7 +4114,7 @@ msgstr "SOCKSv5 代理不支持提供的地址类型。"
msgid "Unknown SOCKSv5 proxy error."
msgstr "未知 SOCKSv5 代理错误。"
-#: gio/gtestdbus.c:614 glib/gspawn-win32.c:354
+#: gio/gtestdbus.c:614 glib/gspawn-win32.c:433
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
msgstr "创建与子进程通讯的管道失败(%s)"
@@ -4104,46 +4129,46 @@ msgstr "此平台不支持管道(pipe)"
msgid "Can’t handle version %d of GThemedIcon encoding"
msgstr "无法处理版本为 %d 的 GThemedIcon 编码"
-#: gio/gthreadedresolver.c:154
+#: gio/gthreadedresolver.c:319
msgid "No valid addresses were found"
msgstr "找不到合法的地址"
-#: gio/gthreadedresolver.c:339
+#: gio/gthreadedresolver.c:514
#, c-format
msgid "Error reverse-resolving “%s”: %s"
msgstr "反向解析“%s”时出错:%s"
#. Translators: the placeholder is a DNS record type, such as ‘MX’ or ‘SRV’
-#: gio/gthreadedresolver.c:552 gio/gthreadedresolver.c:574
-#: gio/gthreadedresolver.c:612 gio/gthreadedresolver.c:659
-#: gio/gthreadedresolver.c:688 gio/gthreadedresolver.c:700
+#: gio/gthreadedresolver.c:737 gio/gthreadedresolver.c:759
+#: gio/gthreadedresolver.c:813 gio/gthreadedresolver.c:860
+#: gio/gthreadedresolver.c:889 gio/gthreadedresolver.c:901
#, c-format
msgid "Error parsing DNS %s record: malformed DNS packet"
msgstr "解析 DNS %s 记录时出错:畸形的 DNS 数据包"
-#: gio/gthreadedresolver.c:758 gio/gthreadedresolver.c:895
-#: gio/gthreadedresolver.c:993 gio/gthreadedresolver.c:1043
+#: gio/gthreadedresolver.c:959 gio/gthreadedresolver.c:1096
+#: gio/gthreadedresolver.c:1194 gio/gthreadedresolver.c:1244
#, c-format
msgid "No DNS record of the requested type for “%s”"
msgstr "没有“%s”所请求类型的 DNS 记录"
-#: gio/gthreadedresolver.c:763 gio/gthreadedresolver.c:998
+#: gio/gthreadedresolver.c:964 gio/gthreadedresolver.c:1199
#, c-format
msgid "Temporarily unable to resolve “%s”"
msgstr "暂时无法解析“%s”"
-#: gio/gthreadedresolver.c:768 gio/gthreadedresolver.c:1003
-#: gio/gthreadedresolver.c:1113
+#: gio/gthreadedresolver.c:969 gio/gthreadedresolver.c:1204
+#: gio/gthreadedresolver.c:1300
#, c-format
msgid "Error resolving “%s”"
msgstr "解析“%s”时出错"
-#: gio/gthreadedresolver.c:782 gio/gthreadedresolver.c:806
-#: gio/gthreadedresolver.c:831 gio/gthreadedresolver.c:846
+#: gio/gthreadedresolver.c:983 gio/gthreadedresolver.c:1007
+#: gio/gthreadedresolver.c:1032 gio/gthreadedresolver.c:1047
msgid "Malformed DNS packet"
msgstr "畸形的 DNS 数据包"
-#: gio/gthreadedresolver.c:888
+#: gio/gthreadedresolver.c:1089
#, c-format
msgid "Failed to parse DNS response for “%s”: "
msgstr "解析响应“%s”的 DNS 失败:"
@@ -4198,55 +4223,55 @@ msgstr "输入的密码不正确。"
msgid "Sending FD is not supported"
msgstr "不支持发送 FD"
-#: gio/gunixconnection.c:180 gio/gunixconnection.c:598
+#: gio/gunixconnection.c:181 gio/gunixconnection.c:602
#, c-format
msgid "Expecting 1 control message, got %d"
msgid_plural "Expecting 1 control message, got %d"
msgstr[0] "应为 1 个控件消息,却得到 %d 个"
-#: gio/gunixconnection.c:196 gio/gunixconnection.c:610
+#: gio/gunixconnection.c:197 gio/gunixconnection.c:614
msgid "Unexpected type of ancillary data"
msgstr "非预期的辅助数据类型"
-#: gio/gunixconnection.c:214
+#: gio/gunixconnection.c:216
#, c-format
msgid "Expecting one fd, but got %d\n"
msgid_plural "Expecting one fd, but got %d\n"
msgstr[0] "应为 1 个文件描述符,却得到 %d 个\n"
-#: gio/gunixconnection.c:233
+#: gio/gunixconnection.c:235
msgid "Received invalid fd"
msgstr "收到无效文件描述符"
-#: gio/gunixconnection.c:240
+#: gio/gunixconnection.c:242
msgid "Receiving FD is not supported"
msgstr "不支持接收 FD"
-#: gio/gunixconnection.c:382
+#: gio/gunixconnection.c:384
msgid "Error sending credentials: "
msgstr "发送凭据时出错:"
-#: gio/gunixconnection.c:539
+#: gio/gunixconnection.c:542
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
msgstr "检查套接字是否启用 SO_PASSCRED 时出错:%s"
-#: gio/gunixconnection.c:555
+#: gio/gunixconnection.c:558
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
msgstr "启用 SO_PASSCRED 时出错:%s"
-#: gio/gunixconnection.c:584
+#: gio/gunixconnection.c:587
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr "期望为接收证书读到单个字节但是只读到了 0 字节"
-#: gio/gunixconnection.c:624
+#: gio/gunixconnection.c:628
#, c-format
msgid "Not expecting control message, but got %d"
msgstr "未期望控制信息,却得到 %d 个"
-#: gio/gunixconnection.c:649
+#: gio/gunixconnection.c:653
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "禁用 SO_PASSCRED 时出错:%s"
@@ -4262,7 +4287,7 @@ msgstr "从文件描述符读取时出错:%s"
msgid "Error closing file descriptor: %s"
msgstr "关闭文件描述符时出错:%s"
-#: gio/gunixmounts.c:2815 gio/gunixmounts.c:2868
+#: gio/gunixmounts.c:2826 gio/gunixmounts.c:2879
msgid "Filesystem root"
msgstr "文件系统根目录"
@@ -4344,129 +4369,124 @@ msgstr "运行一个 dbus 服务"
msgid "Wrong args\n"
msgstr "参数错误\n"
-#: glib/gbookmarkfile.c:779
+#: glib/gbookmarkfile.c:861
#, c-format
msgid "Unexpected attribute “%s” for element “%s”"
msgstr "元素“%2$s”的意外属性“%1$s”"
-#: glib/gbookmarkfile.c:790 glib/gbookmarkfile.c:870 glib/gbookmarkfile.c:880
-#: glib/gbookmarkfile.c:993
+#: glib/gbookmarkfile.c:872 glib/gbookmarkfile.c:952 glib/gbookmarkfile.c:962
+#: glib/gbookmarkfile.c:1075
#, c-format
msgid "Attribute “%s” of element “%s” not found"
msgstr "元素“%2$s”的属性“%1$s”未找到"
-#: glib/gbookmarkfile.c:1202 glib/gbookmarkfile.c:1267
-#: glib/gbookmarkfile.c:1331 glib/gbookmarkfile.c:1341
+#: glib/gbookmarkfile.c:1284 glib/gbookmarkfile.c:1349
+#: glib/gbookmarkfile.c:1413 glib/gbookmarkfile.c:1423
#, c-format
msgid "Unexpected tag “%s”, tag “%s” expected"
msgstr "意外标签“%s”,需要标签“%s”"
-#: glib/gbookmarkfile.c:1227 glib/gbookmarkfile.c:1241
-#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1355
+#: glib/gbookmarkfile.c:1309 glib/gbookmarkfile.c:1323
+#: glib/gbookmarkfile.c:1391 glib/gbookmarkfile.c:1437
#, c-format
msgid "Unexpected tag “%s” inside “%s”"
msgstr "“%2$s”中有意外标签“%1$s”"
-#: glib/gbookmarkfile.c:1635
+#: glib/gbookmarkfile.c:1717
#, c-format
msgid "Invalid date/time ‘%s’ in bookmark file"
msgstr "书签文件中有无效的日期/时间“%s”"
-#: glib/gbookmarkfile.c:1838
+#: glib/gbookmarkfile.c:1956
msgid "No valid bookmark file found in data dirs"
msgstr "数据目录中没有找到有效的书签文件"
-#: glib/gbookmarkfile.c:2039
+#: glib/gbookmarkfile.c:2157
#, c-format
msgid "A bookmark for URI “%s” already exists"
msgstr "URI“%s”的书签已经存在"
-#: glib/gbookmarkfile.c:2088 glib/gbookmarkfile.c:2246
-#: glib/gbookmarkfile.c:2331 glib/gbookmarkfile.c:2411
-#: glib/gbookmarkfile.c:2496 glib/gbookmarkfile.c:2630
-#: glib/gbookmarkfile.c:2763 glib/gbookmarkfile.c:2898
-#: glib/gbookmarkfile.c:2940 glib/gbookmarkfile.c:3037
-#: glib/gbookmarkfile.c:3158 glib/gbookmarkfile.c:3352
-#: glib/gbookmarkfile.c:3493 glib/gbookmarkfile.c:3712
-#: glib/gbookmarkfile.c:3801 glib/gbookmarkfile.c:3890
-#: glib/gbookmarkfile.c:4009
+#: glib/gbookmarkfile.c:2206 glib/gbookmarkfile.c:2364
+#: glib/gbookmarkfile.c:2449 glib/gbookmarkfile.c:2529
+#: glib/gbookmarkfile.c:2614 glib/gbookmarkfile.c:2748
+#: glib/gbookmarkfile.c:2881 glib/gbookmarkfile.c:3016
+#: glib/gbookmarkfile.c:3058 glib/gbookmarkfile.c:3155
+#: glib/gbookmarkfile.c:3276 glib/gbookmarkfile.c:3470
+#: glib/gbookmarkfile.c:3611 glib/gbookmarkfile.c:3830
+#: glib/gbookmarkfile.c:3919 glib/gbookmarkfile.c:4008
+#: glib/gbookmarkfile.c:4127
#, c-format
msgid "No bookmark found for URI “%s”"
msgstr "未找到 URI“%s”的书签"
-#: glib/gbookmarkfile.c:2420
+#: glib/gbookmarkfile.c:2538
#, c-format
msgid "No MIME type defined in the bookmark for URI “%s”"
msgstr "URI“%s”的书签未定义 MIME 类型"
-#: glib/gbookmarkfile.c:2505
+#: glib/gbookmarkfile.c:2623
#, c-format
msgid "No private flag has been defined in bookmark for URI “%s”"
msgstr "URI“%s”的书签未定义私有标志"
-#: glib/gbookmarkfile.c:3046
+#: glib/gbookmarkfile.c:3164
#, c-format
msgid "No groups set in bookmark for URI “%s”"
msgstr "URI“%s”的书签未设定组"
-#: glib/gbookmarkfile.c:3514 glib/gbookmarkfile.c:3722
+#: glib/gbookmarkfile.c:3632 glib/gbookmarkfile.c:3840
#, c-format
msgid "No application with name “%s” registered a bookmark for “%s”"
msgstr "没有名为“%s”的应用程序为“%s”注册了书签"
-#: glib/gbookmarkfile.c:3745
+#: glib/gbookmarkfile.c:3863
#, c-format
msgid "Failed to expand exec line “%s” with URI “%s”"
msgstr "用 URI“%2$s”展开 exec 行“%1$s”失败"
-#: glib/gconvert.c:470
+#: glib/gconvert.c:469
msgid "Unrepresentable character in conversion input"
msgstr "转换输入中出现无法表达的字符"
-#: glib/gconvert.c:497 glib/gutf8.c:888 glib/gutf8.c:1101 glib/gutf8.c:1238
-#: glib/gutf8.c:1342
+#: glib/gconvert.c:496 glib/gutf8.c:954 glib/gutf8.c:1167 glib/gutf8.c:1304
+#: glib/gutf8.c:1408
msgid "Partial character sequence at end of input"
msgstr "输入末尾出现未尽字符序列"
-#: glib/gconvert.c:768
+#: glib/gconvert.c:767
#, c-format
msgid "Cannot convert fallback “%s” to codeset “%s”"
msgstr "无法转换后备字符集“%s”到字符集“%s”"
-#: glib/gconvert.c:940
+#: glib/gconvert.c:939
msgid "Embedded NUL byte in conversion input"
msgstr "转换输入中出现嵌入的 NUL 字节"
-#: glib/gconvert.c:961
+#: glib/gconvert.c:960
msgid "Embedded NUL byte in conversion output"
msgstr "转换输出中出现嵌入的 NUL 字节"
-#: glib/gconvert.c:1692
+#: glib/gconvert.c:1698
#, c-format
msgid "The URI “%s” is not an absolute URI using the “file” scheme"
msgstr "URI“%s”不是使用“file”方案的绝对 URI"
-#: glib/gconvert.c:1702
-#, c-format
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "本地文件 URI“%s”不能包含“#”"
-
-#: glib/gconvert.c:1719
+#: glib/gconvert.c:1728
#, c-format
msgid "The URI “%s” is invalid"
msgstr "URI“%s”无效"
-#: glib/gconvert.c:1731
+#: glib/gconvert.c:1741
#, c-format
msgid "The hostname of the URI “%s” is invalid"
msgstr "URI“%s”中的主机名无效"
-#: glib/gconvert.c:1747
+#: glib/gconvert.c:1758
#, c-format
msgid "The URI “%s” contains invalidly escaped characters"
msgstr "URI“%s”中包含无效的转义字符"
-#: glib/gconvert.c:1819
+#: glib/gconvert.c:1832
#, c-format
msgid "The pathname “%s” is not an absolute path"
msgstr "路径名“%s”不是绝对路径"
@@ -4893,78 +4913,78 @@ msgstr "下午"
msgid "Error opening directory “%s”: %s"
msgstr "打开目录“%s”时出错:%s"
-#: glib/gfileutils.c:735 glib/gfileutils.c:827
+#: glib/gfileutils.c:753 glib/gfileutils.c:845
#, c-format
msgid "Could not allocate %lu byte to read file “%s”"
msgid_plural "Could not allocate %lu bytes to read file “%s”"
msgstr[0] "无法分配 %lu 字节以读取文件“%s”"
-#: glib/gfileutils.c:752
+#: glib/gfileutils.c:770
#, c-format
msgid "Error reading file “%s”: %s"
msgstr "读取文件“%s”时出错:%s"
-#: glib/gfileutils.c:788
+#: glib/gfileutils.c:806
#, c-format
msgid "File “%s” is too large"
msgstr "文件“%s”过大"
-#: glib/gfileutils.c:852
+#: glib/gfileutils.c:870
#, c-format
msgid "Failed to read from file “%s”: %s"
msgstr "读取文件“%s”失败:%s"
-#: glib/gfileutils.c:902 glib/gfileutils.c:977 glib/gfileutils.c:1449
+#: glib/gfileutils.c:920 glib/gfileutils.c:995 glib/gfileutils.c:1472
#, c-format
msgid "Failed to open file “%s”: %s"
msgstr "打开文件“%s”失败:%s"
-#: glib/gfileutils.c:915
+#: glib/gfileutils.c:933
#, c-format
msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
msgstr "获得文件“%s”的属性失败:fstat() 失败:%s"
-#: glib/gfileutils.c:946
+#: glib/gfileutils.c:964
#, c-format
msgid "Failed to open file “%s”: fdopen() failed: %s"
msgstr "打开文件“%s”失败:fdopen() 失败:%s"
-#: glib/gfileutils.c:1047
+#: glib/gfileutils.c:1065
#, c-format
msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
msgstr "将文件“%s”重命名为“%s”失败:g_rename() 失败:%s"
-#: glib/gfileutils.c:1156
+#: glib/gfileutils.c:1179
#, c-format
msgid "Failed to write file “%s”: write() failed: %s"
msgstr "写入文件“%s”失败:write() 失败:%s"
-#: glib/gfileutils.c:1177
+#: glib/gfileutils.c:1200
#, c-format
msgid "Failed to write file “%s”: fsync() failed: %s"
msgstr "写入文件“%s”失败:fsync() 失败:%s"
-#: glib/gfileutils.c:1338 glib/gfileutils.c:1753
+#: glib/gfileutils.c:1361 glib/gfileutils.c:1776
#, c-format
msgid "Failed to create file “%s”: %s"
msgstr "创建文件“%s”失败:%s"
-#: glib/gfileutils.c:1383
+#: glib/gfileutils.c:1406
#, c-format
msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
msgstr "无法删除已有文件“%s”:g_unlink() 失败:%s"
-#: glib/gfileutils.c:1718
+#: glib/gfileutils.c:1741
#, c-format
msgid "Template “%s” invalid, should not contain a “%s”"
msgstr "模板“%s”无效,不应该包含“%s”"
-#: glib/gfileutils.c:1731
+#: glib/gfileutils.c:1754
#, c-format
msgid "Template “%s” doesn’t contain XXXXXX"
msgstr "模板“%s”不包含 XXXXXX"
-#: glib/gfileutils.c:2291 glib/gfileutils.c:2320
+#: glib/gfileutils.c:2348 glib/gfileutils.c:2377
#, c-format
msgid "Failed to read the symbolic link “%s”: %s"
msgstr "读取符号链接“%s”失败:%s"
@@ -4990,144 +5010,144 @@ msgstr "通道终止于未尽字符"
msgid "Can’t do a raw read in g_io_channel_read_to_end"
msgstr "g_io_channel_read_to_end 函数无法进行原始读取"
-#: glib/gkeyfile.c:796
+#: glib/gkeyfile.c:802
msgid "Valid key file could not be found in search dirs"
msgstr "在搜索目录中无法找到有效的键文件"
-#: glib/gkeyfile.c:833
+#: glib/gkeyfile.c:839
msgid "Not a regular file"
msgstr "不是普通文件"
-#: glib/gkeyfile.c:1291
+#: glib/gkeyfile.c:1297
#, c-format
msgid ""
"Key file contains line “%s” which is not a key-value pair, group, or comment"
msgstr "键文件包含不是键-值对、组或注释的行“%s”"
-#: glib/gkeyfile.c:1348
+#: glib/gkeyfile.c:1354
#, c-format
msgid "Invalid group name: %s"
msgstr "无效的组名:%s"
-#: glib/gkeyfile.c:1372
+#: glib/gkeyfile.c:1378
msgid "Key file does not start with a group"
msgstr "键文件不以组开始"
-#: glib/gkeyfile.c:1396
+#: glib/gkeyfile.c:1402
#, c-format
msgid "Invalid key name: %.*s"
msgstr "无效的键名:%.*s"
-#: glib/gkeyfile.c:1424
+#: glib/gkeyfile.c:1430
#, c-format
msgid "Key file contains unsupported encoding “%s”"
msgstr "键文件包含不支持的编码“%s”"
-#: glib/gkeyfile.c:1679 glib/gkeyfile.c:1852 glib/gkeyfile.c:3299
-#: glib/gkeyfile.c:3363 glib/gkeyfile.c:3493 glib/gkeyfile.c:3625
-#: glib/gkeyfile.c:3771 glib/gkeyfile.c:4006 glib/gkeyfile.c:4073
+#: glib/gkeyfile.c:1678 glib/gkeyfile.c:1851 glib/gkeyfile.c:3298
+#: glib/gkeyfile.c:3400 glib/gkeyfile.c:3505 glib/gkeyfile.c:3634
+#: glib/gkeyfile.c:3777 glib/gkeyfile.c:4026 glib/gkeyfile.c:4100
#, c-format
msgid "Key file does not have group “%s”"
msgstr "键文件没有组“%s”"
-#: glib/gkeyfile.c:1807
+#: glib/gkeyfile.c:1806
#, c-format
msgid "Key file does not have key “%s” in group “%s”"
msgstr "键文件在组“%2$s”中没有键“%1$s”"
-#: glib/gkeyfile.c:1969 glib/gkeyfile.c:2085
+#: glib/gkeyfile.c:1968 glib/gkeyfile.c:2084
#, c-format
msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
msgstr "键文件包含键“%s”,其值“%s”不是 UTF-8"
-#: glib/gkeyfile.c:1989 glib/gkeyfile.c:2105 glib/gkeyfile.c:2544
+#: glib/gkeyfile.c:1988 glib/gkeyfile.c:2104 glib/gkeyfile.c:2543
#, c-format
msgid ""
"Key file contains key “%s” which has a value that cannot be interpreted."
msgstr "键文件包含键“%s”,其值无法解析。"
-#: glib/gkeyfile.c:2759 glib/gkeyfile.c:3128
+#: glib/gkeyfile.c:2758 glib/gkeyfile.c:3127
#, c-format
msgid ""
"Key file contains key “%s” in group “%s” which has a value that cannot be "
"interpreted."
msgstr "键文件包含组“%2$s”中的键“%1$s”,其值无法解释。"
-#: glib/gkeyfile.c:2837 glib/gkeyfile.c:2914
+#: glib/gkeyfile.c:2836 glib/gkeyfile.c:2913
#, c-format
msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
msgstr "组“%2$s”中的键“%1$s”的值为“%3$s”,应为 %4$s"
-#: glib/gkeyfile.c:4326
+#: glib/gkeyfile.c:4357
msgid "Key file contains escape character at end of line"
msgstr "键文件在行尾含有转义字符"
-#: glib/gkeyfile.c:4348
+#: glib/gkeyfile.c:4394
#, c-format
msgid "Key file contains invalid escape sequence “%s”"
msgstr "键文件中包含无效的转义序列“%s”"
-#: glib/gkeyfile.c:4493
+#: glib/gkeyfile.c:4545
#, c-format
msgid "Value “%s” cannot be interpreted as a number."
msgstr "无法将值“%s”解释为数值。"
-#: glib/gkeyfile.c:4507
+#: glib/gkeyfile.c:4559
#, c-format
msgid "Integer value “%s” out of range"
msgstr "整数值“%s”超出范围"
-#: glib/gkeyfile.c:4540
+#: glib/gkeyfile.c:4592
#, c-format
msgid "Value “%s” cannot be interpreted as a float number."
msgstr "无法将值“%s”解释为浮点数。"
-#: glib/gkeyfile.c:4579
+#: glib/gkeyfile.c:4631
#, c-format
msgid "Value “%s” cannot be interpreted as a boolean."
msgstr "无法将值“%s”解释为布尔值。"
-#: glib/gmappedfile.c:131
+#: glib/gmappedfile.c:135
#, c-format
msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
msgstr "获取文件“%s%s%s%s”的属性失败 : fstat() 失败:%s"
-#: glib/gmappedfile.c:197
+#: glib/gmappedfile.c:201
#, c-format
msgid "Failed to map %s%s%s%s: mmap() failed: %s"
msgstr "映射 %s%s%s%s 失败:mmap() 失败:%s"
-#: glib/gmappedfile.c:264
+#: glib/gmappedfile.c:268
#, c-format
msgid "Failed to open file “%s”: open() failed: %s"
msgstr "打开文件“%s”失败:open() 失败:%s"
-#: glib/gmarkup.c:400 glib/gmarkup.c:442
+#: glib/gmarkup.c:398 glib/gmarkup.c:440
#, c-format
msgid "Error on line %d char %d: "
msgstr "第 %d 行第 %d 个字符出错: "
-#: glib/gmarkup.c:464 glib/gmarkup.c:547
+#: glib/gmarkup.c:462 glib/gmarkup.c:545
#, c-format
msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
msgstr "名称包含无效的 UTF-8 编码文本——无效的“%s”"
-#: glib/gmarkup.c:475
+#: glib/gmarkup.c:473
#, c-format
msgid "“%s” is not a valid name"
msgstr "“%s”不是有效的名称"
-#: glib/gmarkup.c:491
+#: glib/gmarkup.c:489
#, c-format
msgid "“%s” is not a valid name: “%c”"
msgstr "“%s”不是有效的名称:“%c”"
-#: glib/gmarkup.c:615
+#: glib/gmarkup.c:613
#, c-format
msgid "Error on line %d: %s"
msgstr "第 %d 行出错:%s"
-#: glib/gmarkup.c:692
+#: glib/gmarkup.c:690
#, c-format
msgid ""
"Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5135,7 +5155,7 @@ msgid ""
msgstr ""
"解析“%-.*s”失败。它应该是字符引用中的数字(如 &#234;)——可能该数字太大了"
-#: glib/gmarkup.c:704
+#: glib/gmarkup.c:702
msgid ""
"Character reference did not end with a semicolon; most likely you used an "
"ampersand character without intending to start an entity — escape ampersand "
@@ -5144,22 +5164,22 @@ msgstr ""
"字符引用没有以分号结束。很可能您使用了与号(&)字符而又不是一个实体——将这个与"
"号变为 &amp;"
-#: glib/gmarkup.c:730
+#: glib/gmarkup.c:728
#, c-format
msgid "Character reference “%-.*s” does not encode a permitted character"
msgstr "字符引用“%-.*s”没有编码一个允许的字符"
-#: glib/gmarkup.c:768
+#: glib/gmarkup.c:766
msgid ""
"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
msgstr "发现空的实体“&;”。有效的实体为:&amp; &quot; &lt; &gt; &apos;"
-#: glib/gmarkup.c:776
+#: glib/gmarkup.c:774
#, c-format
msgid "Entity name “%-.*s” is not known"
msgstr "未知的实体名“%-.*s”"
-#: glib/gmarkup.c:781
+#: glib/gmarkup.c:779
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity — escape ampersand as &amp;"
@@ -5167,36 +5187,36 @@ msgstr ""
"实体没有以分号结束。很可能您使用了与号(&)字符而又不是一个实体——将这个与号变"
"为 &amp;"
-#: glib/gmarkup.c:1195
+#: glib/gmarkup.c:1193
msgid "Document must begin with an element (e.g. <book>)"
msgstr "文档必须以一个元素开始(例如 <book>)"
-#: glib/gmarkup.c:1235
+#: glib/gmarkup.c:1233
#, c-format
msgid ""
"“%s” is not a valid character following a “<” character; it may not begin an "
"element name"
msgstr "“%s”出现在字符“<”后是无效字符;它不能作为元素名的开头"
-#: glib/gmarkup.c:1278
+#: glib/gmarkup.c:1276
#, c-format
msgid ""
"Odd character “%s”, expected a “>” character to end the empty-element tag "
"“%s”"
msgstr "字符“%s”无效,应该以字符“>”来结束空元素标记“%s”"
-#: glib/gmarkup.c:1348
+#: glib/gmarkup.c:1346
#, c-format
msgid "Too many attributes in element “%s”"
msgstr "元素“%s”中有过多参数"
-#: glib/gmarkup.c:1368
+#: glib/gmarkup.c:1366
#, c-format
msgid ""
"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
msgstr "字符“%s”无效,在属性名“%s”(元素“%s”)的后应该是字符“=”"
-#: glib/gmarkup.c:1410
+#: glib/gmarkup.c:1408
#, c-format
msgid ""
"Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5206,92 +5226,92 @@ msgstr ""
"字符“%s”无效,应该以“>”或“/”结束元素“%s”的起始标记,或紧跟该元素的属性;可能"
"您在属性名中使用了无效字符"
-#: glib/gmarkup.c:1455
+#: glib/gmarkup.c:1453
#, c-format
msgid ""
"Odd character “%s”, expected an open quote mark after the equals sign when "
"giving value for attribute “%s” of element “%s”"
msgstr "字符“%1$s”无效,在给元素“%3$s”的属性“%2$s”赋值时,等号后应该是前引号"
-#: glib/gmarkup.c:1589
+#: glib/gmarkup.c:1587
#, c-format
msgid ""
"“%s” is not a valid character following the characters “</”; “%s” may not "
"begin an element name"
msgstr "“%s”出现在字符“</”后无效;“%s”不能作为元素名的开头"
-#: glib/gmarkup.c:1627
+#: glib/gmarkup.c:1625
#, c-format
msgid ""
"“%s” is not a valid character following the close element name “%s”; the "
"allowed character is “>”"
msgstr "“%s”字符出现在闭合元素名“%s”后无效;允许的字符是“>”"
-#: glib/gmarkup.c:1639
+#: glib/gmarkup.c:1637
#, c-format
msgid "Element “%s” was closed, no element is currently open"
msgstr "元素“%s”已经闭合,当前没有开放的元素"
-#: glib/gmarkup.c:1648
+#: glib/gmarkup.c:1646
#, c-format
msgid "Element “%s” was closed, but the currently open element is “%s”"
msgstr "元素“%s”已经闭合,当前仍开放的元素是“%s”"
-#: glib/gmarkup.c:1801
+#: glib/gmarkup.c:1799
msgid "Document was empty or contained only whitespace"
msgstr "文档为空或仅含空白字符"
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1813
msgid "Document ended unexpectedly just after an open angle bracket “<”"
msgstr "文档在一个左尖括号“<”后意外结束"
-#: glib/gmarkup.c:1823 glib/gmarkup.c:1868
+#: glib/gmarkup.c:1821 glib/gmarkup.c:1866
#, c-format
msgid ""
"Document ended unexpectedly with elements still open — “%s” was the last "
"element opened"
msgstr "文档在元素仍开放处意外结束——最后未结束的元素是“%s”"
-#: glib/gmarkup.c:1831
+#: glib/gmarkup.c:1829
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
"the tag <%s/>"
msgstr "文档意外结束,应该以右尖括号“>”来结束标记 <%s/>"
-#: glib/gmarkup.c:1837
+#: glib/gmarkup.c:1835
msgid "Document ended unexpectedly inside an element name"
msgstr "文档在元素名中意外结束"
-#: glib/gmarkup.c:1843
+#: glib/gmarkup.c:1841
msgid "Document ended unexpectedly inside an attribute name"
msgstr "文档在属性名中意外结束"
-#: glib/gmarkup.c:1848
+#: glib/gmarkup.c:1846
msgid "Document ended unexpectedly inside an element-opening tag."
msgstr "文档在元素仍开放的标记中意外结束。"
-#: glib/gmarkup.c:1854
+#: glib/gmarkup.c:1852
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
msgstr "文档在跟在属性名后的等号后意外结束;没有属性值"
-#: glib/gmarkup.c:1861
+#: glib/gmarkup.c:1859
msgid "Document ended unexpectedly while inside an attribute value"
msgstr "文档在属性值中意外结束"
-#: glib/gmarkup.c:1878
+#: glib/gmarkup.c:1876
#, c-format
msgid "Document ended unexpectedly inside the close tag for element “%s”"
msgstr "文档在元素“%s”的闭合标记中意外结束"
-#: glib/gmarkup.c:1882
+#: glib/gmarkup.c:1880
msgid ""
"Document ended unexpectedly inside the close tag for an unopened element"
msgstr "文档在无起始元素的闭合标记中意外结束"
-#: glib/gmarkup.c:1888
+#: glib/gmarkup.c:1886
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr "文档在注释或处理指令中意外结束"
@@ -5354,300 +5374,296 @@ msgstr "缺少 %s 的参数"
msgid "Unknown option %s"
msgstr "未知选项 %s"
-#: glib/gregex.c:436
+#: glib/gregex.c:480
msgid "corrupted object"
msgstr "无效对象"
-#: glib/gregex.c:438
+#: glib/gregex.c:482
msgid "out of memory"
msgstr "内存不足"
-#: glib/gregex.c:443
-msgid "backtracking limit reached"
-msgstr "达到回溯上限"
-
-#: glib/gregex.c:454 glib/gregex.c:707 glib/gregex.c:736
+#: glib/gregex.c:497
msgid "internal error"
msgstr "内部错误"
-#: glib/gregex.c:456
+#: glib/gregex.c:499
msgid "the pattern contains items not supported for partial matching"
msgstr "表达式包含不被部分匹配支持的项"
-#: glib/gregex.c:458
+#: glib/gregex.c:501
msgid "back references as conditions are not supported for partial matching"
msgstr "不完全匹配时作为条件的后向引用不被支持"
-#: glib/gregex.c:464
+#: glib/gregex.c:507
msgid "recursion limit reached"
msgstr "达到递归上限"
-#: glib/gregex.c:466
+#: glib/gregex.c:509
msgid "bad offset"
msgstr "错误的偏移值"
-#: glib/gregex.c:468
+#: glib/gregex.c:511
msgid "recursion loop"
msgstr "递归循环"
#. should not happen in GRegex since we check modes before each match
-#: glib/gregex.c:471
+#: glib/gregex.c:514
msgid "matching mode is requested that was not compiled for JIT"
msgstr "请求了匹配模式,但它未为 JIT 编译"
-#: glib/gregex.c:475
+#: glib/gregex.c:535 glib/gregex.c:1851
msgid "unknown error"
msgstr "未知错误"
-#: glib/gregex.c:496
+#: glib/gregex.c:556
msgid "\\ at end of pattern"
msgstr "\\ 在表达式末尾"
-#: glib/gregex.c:500
+#: glib/gregex.c:560
msgid "\\c at end of pattern"
msgstr "表达式末尾的 \\c"
-#: glib/gregex.c:505
+#: glib/gregex.c:565
msgid "unrecognized character following \\"
msgstr "\\ 后有无法识别的字符"
-#: glib/gregex.c:509
+#: glib/gregex.c:569
msgid "numbers out of order in {} quantifier"
msgstr "{} 量词里的数字次序颠倒了"
-#: glib/gregex.c:513
+#: glib/gregex.c:573
msgid "number too big in {} quantifier"
msgstr "{} 量词里的数字太大了"
-#: glib/gregex.c:517
+#: glib/gregex.c:577
msgid "missing terminating ] for character class"
msgstr "字符类缺少终结的 ]"
-#: glib/gregex.c:521
+#: glib/gregex.c:581
msgid "invalid escape sequence in character class"
msgstr "字符类包含无效的转义序列"
-#: glib/gregex.c:525
+#: glib/gregex.c:585
msgid "range out of order in character class"
msgstr "字符类的范围次序颠倒"
-#: glib/gregex.c:530
+#: glib/gregex.c:590
msgid "nothing to repeat"
msgstr "没有可以重复的内容"
-#: glib/gregex.c:534
+#: glib/gregex.c:594
msgid "unrecognized character after (? or (?-"
msgstr "(? 或 (?- 后有无法识别的字符"
-#: glib/gregex.c:538
+#: glib/gregex.c:598
msgid "POSIX named classes are supported only within a class"
msgstr "只有类里支持 POSIX 命名的类"
-#: glib/gregex.c:542
+#: glib/gregex.c:602
msgid "POSIX collating elements are not supported"
msgstr "不支持 POSIX 整理元素"
-#: glib/gregex.c:548
+#: glib/gregex.c:608
msgid "missing terminating )"
msgstr "缺少结束的 )"
-#: glib/gregex.c:552
+#: glib/gregex.c:612
msgid "reference to non-existent subpattern"
msgstr "引用了不存在的子表达式"
-#: glib/gregex.c:556
+#: glib/gregex.c:616
msgid "missing ) after comment"
msgstr "注释后缺少 )"
-#: glib/gregex.c:560
+#: glib/gregex.c:620
msgid "regular expression is too large"
msgstr "正则表达式过长"
-#: glib/gregex.c:564
+#: glib/gregex.c:624
msgid "malformed number or name after (?("
msgstr "(?( 后有形式不正确的数字或名称"
-#: glib/gregex.c:568
+#: glib/gregex.c:628
msgid "lookbehind assertion is not fixed length"
msgstr "lookbehind 断言不是定长的"
-#: glib/gregex.c:572
+#: glib/gregex.c:632
msgid "conditional group contains more than two branches"
msgstr "条件组包含了超过两个分支"
-#: glib/gregex.c:576
+#: glib/gregex.c:636
msgid "assertion expected after (?("
msgstr "(?( 后应该有断言"
-#: glib/gregex.c:580
+#: glib/gregex.c:640
msgid "a numbered reference must not be zero"
msgstr "编号引用不能为 0"
-#: glib/gregex.c:584
+#: glib/gregex.c:644
msgid "unknown POSIX class name"
msgstr "未知的 POSIX 类名"
-#: glib/gregex.c:589
+#: glib/gregex.c:649
msgid "character value in \\x{...} sequence is too large"
msgstr "\\x{...} 序列里的字符值太大了"
-#: glib/gregex.c:593
+#: glib/gregex.c:653
msgid "\\C not allowed in lookbehind assertion"
msgstr "lookbehind 断言里不允许使用 \\C"
-#: glib/gregex.c:597
+#: glib/gregex.c:657
msgid "missing terminator in subpattern name"
msgstr "子表达式名里缺少终结符"
-#: glib/gregex.c:601
+#: glib/gregex.c:661
msgid "two named subpatterns have the same name"
msgstr "两个有名子表达式有相同的名称"
-#: glib/gregex.c:605
+#: glib/gregex.c:665
msgid "malformed \\P or \\p sequence"
msgstr "形式不正确的 \\P 或 \\p 序列"
-#: glib/gregex.c:609
+#: glib/gregex.c:669
msgid "unknown property name after \\P or \\p"
msgstr "\\P 或 \\p 后有未知的属性名"
-#: glib/gregex.c:613
+#: glib/gregex.c:673
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "子表达式名太长了(最多 32 个字符)"
-#: glib/gregex.c:617
+#: glib/gregex.c:677
msgid "too many named subpatterns (maximum 10,000)"
msgstr "有名子表达式太多了(最多 10,000 个)"
-#: glib/gregex.c:621
+#: glib/gregex.c:681
msgid "octal value is greater than \\377"
msgstr "八进制值大于 \\377"
-#: glib/gregex.c:625
+#: glib/gregex.c:685
msgid "DEFINE group contains more than one branch"
msgstr "定义组包含多于一个的分支"
-#: glib/gregex.c:629
+#: glib/gregex.c:689
msgid "inconsistent NEWLINE options"
msgstr "不一致的换行选项"
-#: glib/gregex.c:633
+#: glib/gregex.c:693
msgid ""
"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
"or by a plain number"
msgstr "\\g 后没有花括号、尖括号或引号括起来的名称或数字,或纯数字"
-#: glib/gregex.c:638
+#: glib/gregex.c:698
msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
msgstr "(*ACCEPT)、(*FAIL) 和 (*COMMIT) 不允许带参数"
-#: glib/gregex.c:642
+#: glib/gregex.c:702
msgid "(*VERB) not recognized"
msgstr "无法识别 (*VERB)"
-#: glib/gregex.c:646
+#: glib/gregex.c:706
msgid "number is too big"
msgstr "数字太大"
-#: glib/gregex.c:650
+#: glib/gregex.c:710
msgid "missing subpattern name after (?&"
msgstr "(?& 后缺少子表达式名"
-#: glib/gregex.c:654
+#: glib/gregex.c:714
msgid "different names for subpatterns of the same number are not allowed"
msgstr "不允许两个号码相同的子表达式有不同的名称"
-#: glib/gregex.c:658
+#: glib/gregex.c:718
msgid "(*MARK) must have an argument"
msgstr "(*MARK) 必须有一个参数"
-#: glib/gregex.c:662
+#: glib/gregex.c:722
msgid "\\c must be followed by an ASCII character"
msgstr "\\c 后面必须跟一个 ASCII 字符"
-#: glib/gregex.c:666
+#: glib/gregex.c:726
msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
msgstr "\\k 后没有用花括号、尖括号或引号括起来的名称"
-#: glib/gregex.c:670
+#: glib/gregex.c:730
msgid "\\N is not supported in a class"
msgstr "类中不支持 \\N"
-#: glib/gregex.c:674
+#: glib/gregex.c:734
msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
msgstr "在 (*MARK)、(*PRUNE)、(*SKIP) 或者 (*THEN) 中的名称太长"
-#: glib/gregex.c:678 glib/gregex.c:809
+#: glib/gregex.c:738 glib/gregex.c:874
msgid "code overflow"
msgstr "代码溢出"
-#: glib/gregex.c:682
+#: glib/gregex.c:742
msgid "unrecognized character after (?P"
msgstr "(?P 有无法识别的字符"
-#: glib/gregex.c:686
+#: glib/gregex.c:746
msgid "overran compiling workspace"
msgstr "编译工作区超出正常范围"
-#: glib/gregex.c:690
+#: glib/gregex.c:750
msgid "previously-checked referenced subpattern not found"
msgstr "未找到之前检查过的引用过的子表达式"
-#: glib/gregex.c:808 glib/gregex.c:1041 glib/gregex.c:2342
+#: glib/gregex.c:873 glib/gregex.c:1135 glib/gregex.c:2457
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "匹配正则表达式 %s 时出错:%s"
-#: glib/gregex.c:1618
+#: glib/gregex.c:1735
msgid "PCRE library is compiled without UTF8 support"
msgstr "PCRE 库编译时未包含 UTF8 支持"
-#: glib/gregex.c:1626
+#: glib/gregex.c:1743
msgid "PCRE library is compiled with incompatible options"
msgstr "PCRE 库编译时使用了不兼容的选项"
-#: glib/gregex.c:1751
+#: glib/gregex.c:1860
#, c-format
msgid "Error while compiling regular expression ‘%s’ at char %s: %s"
msgstr "编译正则表达式“%s”到字符 %s 处时出错:%s"
-#: glib/gregex.c:2786
+#: glib/gregex.c:2900
msgid "hexadecimal digit or “}” expected"
msgstr "期望十六进制数或“}”"
-#: glib/gregex.c:2802
+#: glib/gregex.c:2916
msgid "hexadecimal digit expected"
msgstr "期望十六进制数"
-#: glib/gregex.c:2842
+#: glib/gregex.c:2956
msgid "missing “<” in symbolic reference"
msgstr "在符号引用中缺少“<”"
-#: glib/gregex.c:2851
+#: glib/gregex.c:2965
msgid "unfinished symbolic reference"
msgstr "未完成的符号引用"
-#: glib/gregex.c:2858
+#: glib/gregex.c:2972
msgid "zero-length symbolic reference"
msgstr "零长符号引用"
-#: glib/gregex.c:2869
+#: glib/gregex.c:2983
msgid "digit expected"
msgstr "期望数字"
-#: glib/gregex.c:2887
+#: glib/gregex.c:3001
msgid "illegal symbolic reference"
msgstr "非法的符号引用"
-#: glib/gregex.c:2950
+#: glib/gregex.c:3064
msgid "stray final “\\”"
msgstr "丢失了最后的“\\”"
-#: glib/gregex.c:2954
+#: glib/gregex.c:3068
msgid "unknown escape sequence"
msgstr "未知的转义序列"
-#: glib/gregex.c:2964
+#: glib/gregex.c:3078
#, c-format
msgid "Error while parsing replacement text “%s” at char %lu: %s"
msgstr "解析替换文本“%s”到字符 %lu 处时出错:%s"
@@ -5674,366 +5690,371 @@ msgstr "在找到为 %c 匹配的引用之前,文本已结束。(文本为
msgid "Text was empty (or contained only whitespace)"
msgstr "文本为空(或仅含空白字符)"
-#: glib/gspawn.c:314
+#: glib/gspawn.c:320
#, c-format
msgid "Failed to read data from child process (%s)"
msgstr "从子进程中读取数据失败(%s)"
-#: glib/gspawn.c:466
+#: glib/gspawn.c:473
#, c-format
msgid "Unexpected error in reading data from a child process (%s)"
msgstr "在从子进程中读取数据时出现异常错误(%s)"
-#: glib/gspawn.c:551
+#: glib/gspawn.c:558
#, c-format
msgid "Unexpected error in waitpid() (%s)"
msgstr "waitpid() 出现异常错误(%s)"
-#: glib/gspawn.c:1170 glib/gspawn-win32.c:1488
+#: glib/gspawn.c:1180 glib/gspawn-win32.c:1575
#, c-format
msgid "Child process exited with code %ld"
msgstr "子进程已退出,代码 %ld"
-#: glib/gspawn.c:1178
+#: glib/gspawn.c:1188
#, c-format
msgid "Child process killed by signal %ld"
msgstr "子进程已由信号 %ld 杀死"
-#: glib/gspawn.c:1185
+#: glib/gspawn.c:1195
#, c-format
msgid "Child process stopped by signal %ld"
msgstr "子进程已由信号 %ld 停止"
-#: glib/gspawn.c:1192
+#: glib/gspawn.c:1202
#, c-format
msgid "Child process exited abnormally"
msgstr "子进程异常中止"
-#: glib/gspawn.c:1885 glib/gspawn-win32.c:393 glib/gspawn-win32.c:401
+#: glib/gspawn.c:2032 glib/gspawn-win32.c:472 glib/gspawn-win32.c:480
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "从子管道中读取失败(%s)"
-#: glib/gspawn.c:2248
+#: glib/gspawn.c:2404
#, c-format
msgid "Failed to spawn child process “%s” (%s)"
msgstr "生成子进程“%s”失败(%s)"
-#: glib/gspawn.c:2365
+#: glib/gspawn.c:2530
#, c-format
msgid "Failed to fork (%s)"
msgstr "fork 失败(%s)"
-#: glib/gspawn.c:2525 glib/gspawn-win32.c:424
+#: glib/gspawn.c:2690 glib/gspawn-win32.c:503
#, c-format
msgid "Failed to change to directory “%s” (%s)"
msgstr "切换到目录“%s”失败(%s)"
-#: glib/gspawn.c:2535
+#: glib/gspawn.c:2700
#, c-format
msgid "Failed to execute child process “%s” (%s)"
msgstr "执行子进程“%s”失败(%s)"
-#: glib/gspawn.c:2545
+#: glib/gspawn.c:2710
#, c-format
msgid "Failed to open file to remap file descriptor (%s)"
msgstr "打开文件以重新映射文件描述符失败(%s)"
-#: glib/gspawn.c:2553
+#: glib/gspawn.c:2718
#, c-format
msgid "Failed to duplicate file descriptor for child process (%s)"
msgstr "为子进程复制文件描述符失败(%s)"
-#: glib/gspawn.c:2562
+#: glib/gspawn.c:2727
#, c-format
msgid "Failed to fork child process (%s)"
msgstr "fork 子进程失败(%s)"
-#: glib/gspawn.c:2570
+#: glib/gspawn.c:2735
#, c-format
msgid "Failed to close file descriptor for child process (%s)"
msgstr "为子进程关闭文件描述符失败(%s)"
-#: glib/gspawn.c:2578
+#: glib/gspawn.c:2743
#, c-format
msgid "Unknown error executing child process “%s”"
msgstr "执行子进程“%s”时出现未知错误"
-#: glib/gspawn.c:2602
+#: glib/gspawn.c:2767
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
msgstr "从子进程管道中读取足够的数据失败(%s)"
-#: glib/gspawn-win32.c:337
+#: glib/gspawn-private.h:134
+#, c-format
+msgid "Invalid source FDs argument"
+msgstr "无效的源文件描述符参数"
+
+#: glib/gspawn-win32.c:416
msgid "Failed to read data from child process"
msgstr "从子进程中读取数据失败"
-#: glib/gspawn-win32.c:430 glib/gspawn-win32.c:435 glib/gspawn-win32.c:561
+#: glib/gspawn-win32.c:509 glib/gspawn-win32.c:514 glib/gspawn-win32.c:640
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "执行子进程失败(%s)"
-#: glib/gspawn-win32.c:440
+#: glib/gspawn-win32.c:519
#, c-format
msgid "Failed to dup() in child process (%s)"
msgstr "在子进程中 dup() 失败(%s)"
-#: glib/gspawn-win32.c:511
+#: glib/gspawn-win32.c:590
#, c-format
msgid "Invalid program name: %s"
msgstr "无效的程序名:%s"
-#: glib/gspawn-win32.c:521 glib/gspawn-win32.c:853
+#: glib/gspawn-win32.c:600 glib/gspawn-win32.c:940
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "%d 处的参数向量中有无效的字符串:%s"
-#: glib/gspawn-win32.c:532 glib/gspawn-win32.c:869
+#: glib/gspawn-win32.c:611 glib/gspawn-win32.c:956
#, c-format
msgid "Invalid string in environment: %s"
msgstr "环境中有无效的字符串:%s"
-#: glib/gspawn-win32.c:849
+#: glib/gspawn-win32.c:936
#, c-format
msgid "Invalid working directory: %s"
msgstr "无效的工作目录:%s"
-#: glib/gspawn-win32.c:914
+#: glib/gspawn-win32.c:1001
#, c-format
msgid "Failed to execute helper program (%s)"
msgstr "执行助手程序(%s)失败"
-#: glib/gspawn-win32.c:1143
+#: glib/gspawn-win32.c:1230
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
msgstr "g_io_channel_win32_poll() 从子进程中读取数据时出现异常错误"
-#: glib/gstrfuncs.c:3366 glib/gstrfuncs.c:3468
+#: glib/gstrfuncs.c:3373 glib/gstrfuncs.c:3475
msgid "Empty string is not a number"
msgstr "空字符串不是数字"
-#: glib/gstrfuncs.c:3390
+#: glib/gstrfuncs.c:3397
#, c-format
msgid "“%s” is not a signed number"
msgstr "“%s”不是有效的有符号数值"
-#: glib/gstrfuncs.c:3400 glib/gstrfuncs.c:3504
+#: glib/gstrfuncs.c:3407 glib/gstrfuncs.c:3511
#, c-format
msgid "Number “%s” is out of bounds [%s, %s]"
msgstr "数字“%s”越界 [%s, %s]"
-#: glib/gstrfuncs.c:3494
+#: glib/gstrfuncs.c:3501
#, c-format
msgid "“%s” is not an unsigned number"
msgstr "“%s”不是有效的无符号数值"
-#: glib/guri.c:317
+#: glib/guri.c:318
#, no-c-format
msgid "Invalid %-encoding in URI"
msgstr "URI 中无效的 %-编码"
-#: glib/guri.c:334
+#: glib/guri.c:335
msgid "Illegal character in URI"
msgstr "URI 中有非法字符"
-#: glib/guri.c:368
+#: glib/guri.c:369
msgid "Non-UTF-8 characters in URI"
msgstr "URI 中存在非 UTF-8 字符"
-#: glib/guri.c:548
+#: glib/guri.c:549
#, c-format
msgid "Invalid IPv6 address ‘%.*s’ in URI"
msgstr "URI 中无效的 IPv6 地址“%.*s”"
-#: glib/guri.c:603
+#: glib/guri.c:604
#, c-format
msgid "Illegal encoded IP address ‘%.*s’ in URI"
msgstr "URI 中有编码方式非法的 IP 地址“%.*s”"
-#: glib/guri.c:615
+#: glib/guri.c:616
#, c-format
msgid "Illegal internationalized hostname ‘%.*s’ in URI"
msgstr "URI 中有非法的国际化主机名“%.*s”"
-#: glib/guri.c:647 glib/guri.c:659
+#: glib/guri.c:648 glib/guri.c:660
#, c-format
msgid "Could not parse port ‘%.*s’ in URI"
msgstr "无法解析 URI 中的端口“%.*s”"
-#: glib/guri.c:666
+#: glib/guri.c:667
#, c-format
msgid "Port ‘%.*s’ in URI is out of range"
msgstr "URI 中的端口“%.*s”超出范围"
-#: glib/guri.c:1226 glib/guri.c:1290
+#: glib/guri.c:1230 glib/guri.c:1294
#, c-format
msgid "URI ‘%s’ is not an absolute URI"
msgstr "URI“%s”不是绝对 URI"
-#: glib/guri.c:1232
+#: glib/guri.c:1236
#, c-format
msgid "URI ‘%s’ has no host component"
msgstr "URI“%s”没有主机部分"
-#: glib/guri.c:1462
+#: glib/guri.c:1466
msgid "URI is not absolute, and no base URI was provided"
msgstr "URI 不是绝对的,且未提供 base URI"
-#: glib/guri.c:2248
+#: glib/guri.c:2252
msgid "Missing ‘=’ and parameter value"
msgstr "缺少“=”和参数值"
-#: glib/gutf8.c:834
+#: glib/gutf8.c:900
msgid "Failed to allocate memory"
msgstr "分配内存失败"
-#: glib/gutf8.c:967
+#: glib/gutf8.c:1033
msgid "Character out of range for UTF-8"
msgstr "字符超出 UTF-8 范围"
-#: glib/gutf8.c:1069 glib/gutf8.c:1078 glib/gutf8.c:1208 glib/gutf8.c:1217
-#: glib/gutf8.c:1356 glib/gutf8.c:1453
+#: glib/gutf8.c:1135 glib/gutf8.c:1144 glib/gutf8.c:1274 glib/gutf8.c:1283
+#: glib/gutf8.c:1422 glib/gutf8.c:1519
msgid "Invalid sequence in conversion input"
msgstr "转换输入中出现无效序列"
-#: glib/gutf8.c:1367 glib/gutf8.c:1464
+#: glib/gutf8.c:1433 glib/gutf8.c:1530
msgid "Character out of range for UTF-16"
msgstr "字符超出 UTF-16 范围"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kB"
-#: glib/gutils.c:2857
+#: glib/gutils.c:2966
msgid "kB"
msgstr "kB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MB"
-#: glib/gutils.c:2859
+#: glib/gutils.c:2968
msgid "MB"
msgstr "MB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GB"
-#: glib/gutils.c:2861
+#: glib/gutils.c:2970
msgid "GB"
msgstr "GB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TB"
-#: glib/gutils.c:2863
+#: glib/gutils.c:2972
msgid "TB"
msgstr "TB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PB"
-#: glib/gutils.c:2865
+#: glib/gutils.c:2974
msgid "PB"
msgstr "PB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EB"
-#: glib/gutils.c:2867
+#: glib/gutils.c:2976
msgid "EB"
msgstr "EB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 KiB"
-#: glib/gutils.c:2871
+#: glib/gutils.c:2980
msgid "KiB"
msgstr "KiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 MiB"
-#: glib/gutils.c:2873
+#: glib/gutils.c:2982
msgid "MiB"
msgstr "MiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 GiB"
-#: glib/gutils.c:2875
+#: glib/gutils.c:2984
msgid "GiB"
msgstr "GiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 TiB"
-#: glib/gutils.c:2877
+#: glib/gutils.c:2986
msgid "TiB"
msgstr "TiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 PiB"
-#: glib/gutils.c:2879
+#: glib/gutils.c:2988
msgid "PiB"
msgstr "PiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 EiB"
-#: glib/gutils.c:2881
+#: glib/gutils.c:2990
msgid "EiB"
msgstr "EiB"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 kb"
-#: glib/gutils.c:2885
+#: glib/gutils.c:2994
msgid "kb"
msgstr "kb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mb"
-#: glib/gutils.c:2887
+#: glib/gutils.c:2996
msgid "Mb"
msgstr "Mb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gb"
-#: glib/gutils.c:2889
+#: glib/gutils.c:2998
msgid "Gb"
msgstr "Gb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tb"
-#: glib/gutils.c:2891
+#: glib/gutils.c:3000
msgid "Tb"
msgstr "Tb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pb"
-#: glib/gutils.c:2893
+#: glib/gutils.c:3002
msgid "Pb"
msgstr "Pb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eb"
-#: glib/gutils.c:2895
+#: glib/gutils.c:3004
msgid "Eb"
msgstr "Eb"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Kib"
-#: glib/gutils.c:2899
+#: glib/gutils.c:3008
msgid "Kib"
msgstr "Kib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Mib"
-#: glib/gutils.c:2901
+#: glib/gutils.c:3010
msgid "Mib"
msgstr "Mib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Gib"
-#: glib/gutils.c:2903
+#: glib/gutils.c:3012
msgid "Gib"
msgstr "Gib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Tib"
-#: glib/gutils.c:2905
+#: glib/gutils.c:3014
msgid "Tib"
msgstr "Tib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Pib"
-#: glib/gutils.c:2907
+#: glib/gutils.c:3016
msgid "Pib"
msgstr "Pib"
#. Translators: A unit symbol for size formatting, showing for example: "13.0 Eib"
-#: glib/gutils.c:2909
+#: glib/gutils.c:3018
msgid "Eib"
msgstr "Eib"
-#: glib/gutils.c:2947
+#: glib/gutils.c:3056
msgid "byte"
msgid_plural "bytes"
msgstr[0] "字节"
-#: glib/gutils.c:2951
+#: glib/gutils.c:3060
msgid "bit"
msgid_plural "bits"
msgstr[0] "位"
#. Translators: The "%u" is replaced with the size value, like "13"; it could
#. * be part of "13 bytes", but only the number is requested this time.
-#: glib/gutils.c:2959
+#: glib/gutils.c:3068
#, c-format
msgctxt "format-size"
msgid "%u"
@@ -6041,7 +6062,7 @@ msgstr "%u"
#. Translators: The first "%u" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1u". An example: "13 bytes"
-#: glib/gutils.c:2964
+#: glib/gutils.c:3073
#, c-format
msgctxt "format-size"
msgid "%u %s"
@@ -6049,7 +6070,7 @@ msgstr "%u %s"
#. Translators: The "%.1f" is replaced with the size value, like "13.0"; it could
#. * be part of "13.0 MB", but only the number is requested this time.
-#: glib/gutils.c:3000
+#: glib/gutils.c:3109
#, c-format
msgctxt "format-size"
msgid "%.1f"
@@ -6058,27 +6079,27 @@ msgstr "%.1f"
#. Translators: The first "%.1f" is replaced with the value, the "%s" with a unit of the value.
#. * The order can be changed with "%$2s %$1.1f". Keep the no-break space between the value and
#. * the unit symbol. An example: "13.0 MB"
-#: glib/gutils.c:3006
+#: glib/gutils.c:3115
#, c-format
msgctxt "format-size"
msgid "%.1f %s"
msgstr "%.1f %s"
#. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:3046
+#: glib/gutils.c:3155
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
msgstr[0] "%s 字节"
#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:3051
+#: glib/gutils.c:3160
#, c-format
msgid "%s bit"
msgid_plural "%s bits"
msgstr[0] "%s 位"
-#: glib/gutils.c:3092
+#: glib/gutils.c:3201
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
@@ -6089,39 +6110,45 @@ msgstr[0] "%u 字节"
#. * compatibility. Users will not see this string unless a program is using this deprecated function.
#. * Please translate as literally as possible.
#.
-#: glib/gutils.c:3105
+#: glib/gutils.c:3214
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gutils.c:3110
+#: glib/gutils.c:3219
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gutils.c:3115
+#: glib/gutils.c:3224
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gutils.c:3120
+#: glib/gutils.c:3229
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gutils.c:3125
+#: glib/gutils.c:3234
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gutils.c:3130
+#: glib/gutils.c:3239
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
+#~ msgid "backtracking limit reached"
+#~ msgstr "达到回溯上限"
+
+#~ msgid "GApplication options"
+#~ msgstr "GApplication 选项"
+
#, c-format
-#~ msgid "edit name: %s\n"
-#~ msgstr "编辑名称:%s\n"
+#~ msgid "The local file URI “%s” may not include a “#”"
+#~ msgstr "本地文件 URI“%s”不能包含“#”"
#~ msgid "internal error or corrupted object"
#~ msgstr "内部错误或者无效对象"
diff --git a/subprojects/libffi.wrap b/subprojects/libffi.wrap
index 00b29d6a2..a8a23bbef 100644
--- a/subprojects/libffi.wrap
+++ b/subprojects/libffi.wrap
@@ -3,3 +3,6 @@ directory=libffi
url=https://gitlab.freedesktop.org/gstreamer/meson-ports/libffi.git
revision=meson
depth=1
+
+[provide]
+libffi = ffi_dep
diff --git a/subprojects/pcre2.wrap b/subprojects/pcre2.wrap
index 6196f1d0c..1e5291498 100644
--- a/subprojects/pcre2.wrap
+++ b/subprojects/pcre2.wrap
@@ -1,15 +1,15 @@
[wrap-file]
-directory = pcre2-10.40
-source_url = https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.40/pcre2-10.40.tar.bz2
-source_filename = pcre2-10.40.tar.bz2
-source_hash = 14e4b83c4783933dc17e964318e6324f7cae1bc75d8f3c79bc6969f00c159d68
-patch_filename = pcre2_10.40-3_patch.zip
-patch_url = https://wrapdb.mesonbuild.com/v2/pcre2_10.40-3/get_patch
-patch_hash = 95391923529b4c1647a2cf88cd3b59cceb4f92393775e011f530e7865de0c7fb
-wrapdb_version = 10.40-3
+directory = pcre2-10.42
+source_url = https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.42/pcre2-10.42.tar.bz2
+source_filename = pcre2-10.42.tar.bz2
+source_hash = 8d36cd8cb6ea2a4c2bb358ff6411b0c788633a2a45dabbf1aeb4b701d1b5e840
+patch_filename = pcre2_10.42-2_patch.zip
+patch_url = https://wrapdb.mesonbuild.com/v2/pcre2_10.42-2/get_patch
+patch_hash = 350dc342b81a1611af43e5cc23f1b10453c7df51d5bb60ab9ee247daf03802bc
+wrapdb_version = 10.42-2
[provide]
-libpcre2-8 = -libpcre2_8
-libpcre2-16 = -libpcre2_16
-libpcre2-32 = -libpcre2_32
-libpcre2-posix = -libpcre2_posix
+libpcre2-8 = libpcre2_8
+libpcre2-16 = libpcre2_16
+libpcre2-32 = libpcre2_32
+libpcre2-posix = libpcre2_posix
diff --git a/subprojects/proxy-libintl.wrap b/subprojects/proxy-libintl.wrap
index 0e6c8529c..dae4adfeb 100644
--- a/subprojects/proxy-libintl.wrap
+++ b/subprojects/proxy-libintl.wrap
@@ -1,5 +1,8 @@
[wrap-git]
-directory=proxy-libintl
-url=https://github.com/frida/proxy-libintl.git
-revision=c03e1a74b17fa7ec467e110130775409e4828a4c
+directory = proxy-libintl
+url = https://github.com/frida/proxy-libintl.git
+revision = 0.4
depth=1
+
+[provide]
+intl = intl_dep
diff --git a/tools/check-abis.sh b/tools/check-abis.sh
deleted file mode 100755
index 5340f317d..000000000
--- a/tools/check-abis.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh -e
-
-list_leaked_symbols () {
- nm -D "$1" | grep ' T ' | cut -f 3 -d ' ' | grep -E -v "$2"
-}
-
-check_symbols () {
- if [ "$(list_leaked_symbols "$1" "$2" | wc -l)" -ne 0 ]; then
- echo File "$1" possibly leaking symbols:
- list_leaked_symbols "$1" "$2"
- exit 1
- fi
-}
-
-allowed="^_init$|^_fini$|^_ftext$|^g_"
-allowed_in_libglib="${allowed}|^glib__private__$|^glib_gettext$|^glib_pgettext$|^glib_check_version$"
-allowed_in_libgthread='^_init$|^_fini$|^_ftext$|^g_thread_init$|^g_thread_init_with_errorcheck_mutexes$'
-
-check_symbols glib/.libs/libglib-2.0.so "$allowed_in_libglib"
-check_symbols gthread/.libs/libgthread-2.0.so "$allowed_in_libgthread"
-for file in gmodule/.libs/libgmodule-2.0.so gobject/.libs/libgobject-2.0.so gio/.libs/libgio-2.0.so; do
- check_symbols "$file" "$allowed"
-done
diff --git a/tools/gen-visibility-macros.py b/tools/gen-visibility-macros.py
new file mode 100755
index 000000000..a7a724816
--- /dev/null
+++ b/tools/gen-visibility-macros.py
@@ -0,0 +1,204 @@
+#!/usr/bin/env python3
+#
+# Copyright © 2022 Collabora Inc.
+#
+# SPDX-License-Identifier: LGPL-2.1-or-later
+#
+# Original author: Xavier Claessens <xclaesse@gmail.com>
+
+import argparse
+import textwrap
+from pathlib import Path
+
+
+# Disable line length warnings as wrapping the C code templates would be hard
+# flake8: noqa: E501
+
+
+def gen_versions_macros(args, current_minor_version):
+ with args.out_path.open("w", encoding="utf-8") as ofile, args.in_path.open(
+ "r", encoding="utf-8"
+ ) as ifile:
+ for line in ifile.readlines():
+ if "@GLIB_VERSIONS@" in line:
+ for minor in range(2, current_minor_version + 2, 2):
+ ofile.write(
+ textwrap.dedent(
+ f"""\
+ /**
+ * GLIB_VERSION_2_{minor}:
+ *
+ * A macro that evaluates to the 2.{minor} version of GLib, in a format
+ * that can be used by the C pre-processor.
+ *
+ * Since: 2.{max(minor, 32)}
+ */
+ #define GLIB_VERSION_2_{minor} (G_ENCODE_VERSION (2, {minor}))
+ """
+ )
+ )
+ else:
+ ofile.write(line)
+
+
+def gen_doc_sections(args, current_minor_version):
+ with args.out_path.open("w", encoding="utf-8") as ofile, args.in_path.open(
+ "r", encoding="utf-8"
+ ) as ifile:
+ for line in ifile.readlines():
+ if "@GLIB_VERSIONS@" in line:
+ for minor in range(2, current_minor_version + 2, 2):
+ ofile.write(
+ textwrap.dedent(
+ f"""\
+ GLIB_VERSION_2_{minor}
+ """
+ )
+ )
+ else:
+ ofile.write(line)
+
+
+def gen_visibility_macros(args, current_minor_version):
+ """
+ Generates a set of macros for each minor stable version of GLib
+
+ - GLIB_VAR
+
+ - GLIB_DEPRECATED
+ - GLIB_DEPRECATED_IN_…
+ - GLIB_DEPRECATED_MACRO_IN_…
+ - GLIB_DEPRECATED_ENUMERATOR_IN_…
+ - GLIB_DEPRECATED_TYPE_IN_…
+
+ - GLIB_AVAILABLE_IN_ALL
+ - GLIB_AVAILABLE_IN_…
+ - GLIB_AVAILABLE_STATIC_INLINE_IN_…
+ - GLIB_AVAILABLE_MACRO_IN_…
+ - GLIB_AVAILABLE_ENUMERATOR_IN_…
+ - GLIB_AVAILABLE_TYPE_IN_…
+
+ - GLIB_UNAVAILABLE(maj,min)
+ - GLIB_UNAVAILABLE_STATIC_INLINE(maj,min)
+
+ The GLIB namespace can be replaced with one of GOBJECT, GIO, GMODULE.
+ """
+
+ ns = args.namespace
+ with args.out_path.open("w", encoding="utf-8") as f:
+ f.write(
+ textwrap.dedent(
+ f"""\
+ #pragma once
+
+ #if (defined(_WIN32) || defined(__CYGWIN__)) && !defined({ns}_STATIC_COMPILATION)
+ # define _{ns}_EXPORT __declspec(dllexport)
+ # define _{ns}_IMPORT __declspec(dllimport)
+ #elif __GNUC__ >= 4
+ # define _{ns}_EXPORT __attribute__((visibility("default")))
+ # define _{ns}_IMPORT
+ #else
+ # define _{ns}_EXPORT
+ # define _{ns}_IMPORT
+ #endif
+ #ifdef {ns}_COMPILATION
+ # define _{ns}_API _{ns}_EXPORT
+ #else
+ # define _{ns}_API _{ns}_IMPORT
+ #endif
+
+ #define _{ns}_EXTERN _{ns}_API extern
+
+ #define {ns}_VAR _{ns}_EXTERN
+ #define {ns}_AVAILABLE_IN_ALL _{ns}_EXTERN
+
+ #ifdef GLIB_DISABLE_DEPRECATION_WARNINGS
+ #define {ns}_DEPRECATED _{ns}_EXTERN
+ #define {ns}_DEPRECATED_FOR(f) _{ns}_EXTERN
+ #define {ns}_UNAVAILABLE(maj,min) _{ns}_EXTERN
+ #define {ns}_UNAVAILABLE_STATIC_INLINE(maj,min)
+ #else
+ #define {ns}_DEPRECATED G_DEPRECATED _{ns}_EXTERN
+ #define {ns}_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _{ns}_EXTERN
+ #define {ns}_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _{ns}_EXTERN
+ #define {ns}_UNAVAILABLE_STATIC_INLINE(maj,min) G_UNAVAILABLE(maj,min)
+ #endif
+ """
+ )
+ )
+ for minor in range(26, current_minor_version + 2, 2):
+ f.write(
+ textwrap.dedent(
+ f"""
+ #if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_{minor}
+ #define {ns}_DEPRECATED_IN_2_{minor} {ns}_DEPRECATED
+ #define {ns}_DEPRECATED_IN_2_{minor}_FOR(f) {ns}_DEPRECATED_FOR (f)
+ #define {ns}_DEPRECATED_MACRO_IN_2_{minor} GLIB_DEPRECATED_MACRO
+ #define {ns}_DEPRECATED_MACRO_IN_2_{minor}_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f)
+ #define {ns}_DEPRECATED_ENUMERATOR_IN_2_{minor} GLIB_DEPRECATED_ENUMERATOR
+ #define {ns}_DEPRECATED_ENUMERATOR_IN_2_{minor}_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f)
+ #define {ns}_DEPRECATED_TYPE_IN_2_{minor} GLIB_DEPRECATED_TYPE
+ #define {ns}_DEPRECATED_TYPE_IN_2_{minor}_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f)
+ #else
+ #define {ns}_DEPRECATED_IN_2_{minor} _{ns}_EXTERN
+ #define {ns}_DEPRECATED_IN_2_{minor}_FOR(f) _{ns}_EXTERN
+ #define {ns}_DEPRECATED_MACRO_IN_2_{minor}
+ #define {ns}_DEPRECATED_MACRO_IN_2_{minor}_FOR(f)
+ #define {ns}_DEPRECATED_ENUMERATOR_IN_2_{minor}
+ #define {ns}_DEPRECATED_ENUMERATOR_IN_2_{minor}_FOR(f)
+ #define {ns}_DEPRECATED_TYPE_IN_2_{minor}
+ #define {ns}_DEPRECATED_TYPE_IN_2_{minor}_FOR(f)
+ #endif
+
+ #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_{minor}
+ #define {ns}_AVAILABLE_IN_2_{minor} {ns}_UNAVAILABLE (2, {minor})
+ #define {ns}_AVAILABLE_STATIC_INLINE_IN_2_{minor} GLIB_UNAVAILABLE_STATIC_INLINE (2, {minor})
+ #define {ns}_AVAILABLE_MACRO_IN_2_{minor} GLIB_UNAVAILABLE_MACRO (2, {minor})
+ #define {ns}_AVAILABLE_ENUMERATOR_IN_2_{minor} GLIB_UNAVAILABLE_ENUMERATOR (2, {minor})
+ #define {ns}_AVAILABLE_TYPE_IN_2_{minor} GLIB_UNAVAILABLE_TYPE (2, {minor})
+ #else
+ #define {ns}_AVAILABLE_IN_2_{minor} _{ns}_EXTERN
+ #define {ns}_AVAILABLE_STATIC_INLINE_IN_2_{minor}
+ #define {ns}_AVAILABLE_MACRO_IN_2_{minor}
+ #define {ns}_AVAILABLE_ENUMERATOR_IN_2_{minor}
+ #define {ns}_AVAILABLE_TYPE_IN_2_{minor}
+ #endif
+ """
+ )
+ )
+
+
+def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("glib_version", help="Current GLib version")
+ subparsers = parser.add_subparsers()
+
+ versions_parser = subparsers.add_parser(
+ "versions-macros", help="Generate versions macros"
+ )
+ versions_parser.add_argument("in_path", help="input file", type=Path)
+ versions_parser.add_argument("out_path", help="output file", type=Path)
+ versions_parser.set_defaults(func=gen_versions_macros)
+
+ doc_parser = subparsers.add_parser(
+ "doc-sections", help="Generate glib-sections.txt"
+ )
+ doc_parser.add_argument("in_path", help="input file", type=Path)
+ doc_parser.add_argument("out_path", help="output file", type=Path)
+ doc_parser.set_defaults(func=gen_doc_sections)
+
+ visibility_parser = subparsers.add_parser(
+ "visibility-macros", help="Generate visibility macros"
+ )
+ visibility_parser.add_argument("namespace", help="Macro namespace")
+ visibility_parser.add_argument("out_path", help="output file", type=Path)
+ visibility_parser.set_defaults(func=gen_visibility_macros)
+
+ args = parser.parse_args()
+ version = [int(i) for i in args.glib_version.split(".")]
+ assert version[0] == 2
+ args.func(args, version[1])
+
+
+if __name__ == "__main__":
+ main()
diff --git a/tools/generate-uac-manifest.py b/tools/generate-uac-manifest.py
new file mode 100644
index 000000000..a99f0a92f
--- /dev/null
+++ b/tools/generate-uac-manifest.py
@@ -0,0 +1,137 @@
+#!/usr/bin/env python3
+#
+# Copyright © 2021 Chun-wei Fan.
+#
+# SPDX-License-Identifier: LGPL-2.1-or-later
+#
+# Original author: Chun-wei Fan <fanc999@yahoo.com.tw>
+
+"""
+This script generates a Windows manifest file and optionally a resource file to
+determine whether a specified program requires UAC elevation
+"""
+
+import os
+import argparse
+
+DOMAIN_NAME = "gnome"
+
+
+def main():
+ parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument(
+ "-p", "--package", required=True, help="package name of the executable"
+ )
+ parser.add_argument("-n", "--name", required=True, help="name of executable")
+ parser.add_argument(
+ "--pkg-version", required=True, dest="version", help="version of package"
+ )
+ parser.add_argument(
+ "--require-admin",
+ action="store_true",
+ dest="admin",
+ default=False,
+ help="require admin access to application",
+ )
+ parser.add_argument(
+ "--input-resource-file",
+ dest="resource",
+ default=None,
+ help="existing .rc file to embed UAC manifest (do not generate a new .rc file), must have included windows.h in it",
+ )
+ parser.add_argument(
+ "--output-dir",
+ dest="outdir",
+ default=None,
+ help="directory to output resulting files",
+ )
+ args = parser.parse_args()
+
+ if args.resource is not None:
+ if not os.path.isfile(args.resource):
+ raise FileNotFoundError(
+ "Specified resource file '%s' does not exist" % args.resource
+ )
+
+ generate_manifest(args.package, args.name, args.version, args.admin, args.outdir)
+ write_rc_file(args.name, args.resource, args.outdir)
+
+
+def generate_manifest(package, name, version, admin, outdir):
+ if version.count(".") == 0:
+ manifest_package_version = version + ".0.0.0"
+ elif version.count(".") == 1:
+ manifest_package_version = version + ".0.0"
+ elif version.count(".") == 2:
+ manifest_package_version = version + ".0"
+ elif version.count(".") == 3:
+ manifest_package_version = version
+ else:
+ parts = version.split(".")
+ manifest_package_version = ""
+ for x in (0, 1, 2, 3):
+ if x == 0:
+ manifest_package_version += parts[x]
+ else:
+ manifest_package_version += "." + parts[x]
+
+ if outdir is not None:
+ output_file_base_name = os.path.join(outdir, name)
+ else:
+ output_file_base_name = name
+
+ outfile = open(output_file_base_name + ".exe.manifest", "w+")
+ outfile.write("<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\n")
+ outfile.write(
+ "<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>\n"
+ )
+ outfile.write(" <assemblyIdentity version='%s'\n" % manifest_package_version)
+ outfile.write(" processorArchitecture='*'\n")
+ outfile.write(" name='%s.%s.%s.exe'\n" % (DOMAIN_NAME, package, name))
+ outfile.write(" type='win32' />\n")
+ outfile.write(" <trustInfo xmlns='urn:schemas-microsoft-com:asm.v3'>\n")
+ outfile.write(" <security>\n")
+ outfile.write(" <requestedPrivileges>\n")
+ outfile.write(" <requestedExecutionLevel\n")
+
+ if admin:
+ outfile.write(" level='requireAdministrator'\n")
+ else:
+ outfile.write(" level='asInvoker'\n")
+
+ outfile.write(" uiAccess='false' />\n")
+ outfile.write(" </requestedPrivileges>\n")
+ outfile.write(" </security>\n")
+ outfile.write(" </trustInfo>\n")
+ outfile.write("</assembly>\n")
+ outfile.close()
+
+
+def write_rc_file(name, resource, outdir):
+ if outdir is not None:
+ output_file_base_name = os.path.join(outdir, name)
+ else:
+ output_file_base_name = name
+
+ if resource is None:
+ outfile = open(output_file_base_name + ".rc", "w+")
+ outfile.write("#define WIN32_LEAN_AND_MEAN\n")
+ outfile.write("#include <windows.h>\n")
+ else:
+ if resource != output_file_base_name + ".rc":
+ outfile = open(output_file_base_name + ".rc", "w+")
+ else:
+ outfile = open(output_file_base_name + ".final.rc", "w+")
+ srcfile = open(resource, "r")
+ outfile.write(srcfile.read())
+ srcfile.close()
+
+ outfile.write("\n")
+ outfile.write(
+ 'CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "%s.exe.manifest"' % name
+ )
+ outfile.close()
+
+
+if __name__ == "__main__":
+ main()
diff --git a/tools/glib.supp b/tools/glib.supp
index 0609db44e..9ff78cc15 100644
--- a/tools/glib.supp
+++ b/tools/glib.supp
@@ -505,7 +505,7 @@
{
g-system-thread-init-malloc
Memcheck:Leak
- match-leak-kinds:possible,reachable
+ match-leak-kinds:possible,reachable,definite
fun:malloc
...
fun:g_system_thread_new
@@ -840,6 +840,29 @@
fun:g_set_user_dirs
}
+# _g_unset_cached_tmp_dir() deliberately leaks the previous cached g_get_tmp_dir() values.
+# These will not all be reachable on exit.
+{
+ g_get_tmp_dir_test_init
+ Memcheck:Leak
+ match-leak-kinds:definite,reachable
+ fun:malloc
+ ...
+ fun:g_get_tmp_dir
+ ...
+ fun:g_test_init
+}
+
+# g_get_tmp_dir() caches a one-time allocation
+{
+ g_get_tmp_dir
+ Memcheck:Leak
+ match-leak-kinds:definite,reachable
+ fun:malloc
+ ...
+ fun:g_get_tmp_dir
+}
+
# g_get_system_data_dirs() caches a one-time allocation
{
g_get_system_data_dirs
diff --git a/tools/meson.build b/tools/meson.build
index e91c8a2f9..257312ebf 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -17,8 +17,18 @@ endif
if host_system != 'windows'
# Install Valgrind suppression file (except on Windows,
# as Valgrind is currently not supported on Windows)
- install_data('glib.supp',
- install_dir : get_option('datadir') / 'glib-2.0' / 'valgrind',
+ install_data(fs.name(valgrind_suppression_file),
+ install_dir : get_option('datadir') / valgrind_suppression_file_install_subdir,
install_tag : 'devel',
)
endif
+
+gen_visibility_macros = find_program('gen-visibility-macros.py')
+
+# This is only needed for 32-bit (x86) Windows builds
+if host_system == 'windows' and host_machine.cpu_family() == 'x86'
+ embed_uac_manifest = true
+ gen_uac_manifest = find_program('generate-uac-manifest.py')
+else
+ embed_uac_manifest = false
+endif